skysight-inc/HackerNews huggingface dataset:
If only they would keep updating the Internet of Things for many years, but I'm more worried most IoT devices will be forgotten within 2 years (although even $500 smartphones don't seem to get that much, so probably less), and you'll need to "buy the new generation device to continue to get software support".

This isn't made any easier by component suppliers, such as chip makers, which also tend to support their chips for very little time. Last I checked, even Qualcomm, the dominant player in the mobile chip maker, was supporting its SKUs for only 18 months. Basically, the whole ecosystem has decided to support their hardware as little as possible.
re reloading modules: I eventually found it easier to simply %run external code, rather than trying to import and reload modules.
The Formlessness of Progressivism
Meet the Lawyer Challenging the Food-Delivery Industry
> 1 - What exactly is arrogance?

Arrogance is the presumption of competence where there is none.

> 2 - How do you detect arrogance?

If you have competence, it's fairly easy to detect incompetence in others. If you want to detect incompetence in yourself ... that's easy. Let yourself fail.

Arrogant people never expose themselves to the possibility of failure. In the rare circumstance when it does happen, they deny it. Anything else would pierce the veil of presumed competence.

Let yourself fail. Over and over again. Acknowledge the failure. Keep exposing yourself to new things and keep pushing outside your comfort zone. That will keep you nice and humble.

> 3 - Why some people become arrogant?

Fear. Fear of failure. Fear of being perceived as a failure.

> 4 - Is it always bad?

Yes.
Top-like PostgreSQL statistics viewer
Levels of Exception Safety in C++
Tanenbaum was vindicated two decades ago, but most people have yet to get the memo. A lot are under the impression that basic software design principles apply to everything besides operating system kernels, for some reason. And the myth is highly persistent.
> flag the test and mark the bug as an issue and at some point, attempt to fix it

But what do you do with the test in the meantime? If you disable it you lose coverage.

The best temporary state might be to re-run the test until it passes. If it fails after allowed re-runs, you have a regression.
It checks the license online before it loads the IDE. Especially worrying when you travel.
One observation I've made over time is that arrogance is, often, a mark of inexperience.

I've observed this in myself as well as countless others - on way up the learning curve you think yourself an expert and become arrogant about it right before you realise that in fact the computing industry (and probably applies to many other industries too) is so complex that it's likely impossible for a single person to understand everything.

Thus, for some people, a good way to combat arrogance is to gently teach them things they don't know - which will hopefully lead them to understand that we all have much to learn. It certainly worked for me.
AI, free money and the end of capitalism
FCC Releases Fifth “Measuring Broadband America” Report (New Report and Data)
Highlight to copy, middle-click to paste. Works every time for me.

Obviously, if you want to paste into vim you have to be in insert mode.
Feedback.

We immediately enjoy entertainment. We clean because we see a mess, clean it, and see a nice clean area. We enjoy food right now.

Even if enough time has gone by to see the ill effects of neglecting health, it's still only a (strained) mental connection. We give up eating junk food and we go to the gym, but we still feel lousy two days later.

The feedback from healthy habits is generally slow, so you need some kind of form of lasting motivation or, more helpful, grit.

Start with grit. Determine that you'll do something miserable for 21 days before giving up. If that thing provides positive feedback within 21 days, you might actually stick to it.

For that reason, a combination of efficient workouts (full body / chain movements with sufficient loads) as well as the necessary sleep and diet improvements can work within 21 days.

We often "pick 1" when it comes to changing habits, but this is a case where you might want to pick 3 or 4 that all work well together, and try to stick to them for 21 days. But it all starts with grit.
Ask HN: Which companies or consultants do you recommend for penetration testing?
A company I work for is currently looking into penetration testing our application:

- Which companies or consultants do you recommend?

- Do you have any advice for penetration testing in general?
> Everyone I've spoken to got into lifting because they think it gets girls.

I think it's common for a lot of guys to start lifting for that reason, especially when they're younger. Lifting helps immensely with posture, confidence, overall happiness, energy levels, etc. etc. which does actually help "get girls", even if you don't get "jacked".

As time goes on, that becomes less important and all the other benefits shine through. The reason I've been lifting for 10 years is because of how it makes me feel - I walk out of the gym feeling a million bucks, I sleep like a rock, and my neck/back never give me trouble.
The man who prints houses
Note that with the Hacker News dataset now on BigQuery, downloading the dataset is unnecessary and the analysis in the post can be done in seconds: https://news.ycombinator.com/item?id=10440502 (although, parsing the domains using that particular dataset is harder since it requires a regex to extract the domain from a URL)

As a side note, I'm sorta annoyed that a data post with so few data and visualizations, but with a linkbait title and selfpromotional startup copy, was far more successful than any of my data posts. Did I miss the part where the OP explained how he used math / how he ranked the Top 50 startups?
Functional programming phrases this as the "make illegal states unrepresentable" maxim.
This guy also recently printed coral reefs to repopulate undersea areas and prevent erosion:
http://www.3ders.org/articles/20140404-enrico-dini-3d-printi...
I half agree. A hammer and a screwdriver are both just tools, but they're good at different things. It's good to know about the variety of available tools and the sorts of tasks they're good at.
In my opinion, this visualization is not particularly compelling if you don't already know what you're looking at, and I can relate to your sentiment of confusion.

This is a tool for analyzing and comparing differences between drivetrain setups. A bicycle drivetrain is typically composed of a single gear, or two or three gearing choices "up front" (on or near the crankset) and either a single-speed "rear", or anywhere from two to 30 (!) [1] selectable gears at the rear hub.

The various "output" modes from this tool are all derived from the Gear Ratio, usually simply the ratio of the number of teeth "up front" to the number of teeth "in back" for any given selected gear.

By entering multiple drivetrain setups, you can quickly compare overall range between different drivetrains. You can also see the "steps" between different gears within a given drivetrain, which tells you how many pedal cadence choices you'll get within a given comfort zone for the bike's intended riding purposes.

[1] SRAM's DualDrive 3x10 internally-geared hub with a standard cassette and derailleur.
Yes, there is a company that will make use of OS.js in a commercial product. More news about that will surface this year, so stay tuned! :)

And the Node backend is pretty much identical to the PHP one now... and PHP will probably be deprecated in the near future (at least from the main repository)
> Some validation only makes sense on a specific operation. The object you constructed, due to some business rule, may be invalid to delete but valid to update for instance.

These are two different concepts I feel you are mixing up. An object may be valid, but that doesn't mean it's valid for all operations. For example there is basic validation that a file object is valid if it exists, but if you only have read access to it .append("foo") will fail on it. But it's still a valid file. Your constructor should be checking for the first kind of validity, and your methods for the second.

> What if you receive, from a webservice or something, a valid object format-wise but invalid from the business rule perspective?

That is what you need an [anti-corruption layer](http://www.markhneedham.com/blog/2009/07/07/domain-driven-de...) for. The object makes sense within that other services domain but not within yours. That domain may be closely related to yours, but it isn't you. You need a separate object for that (a simple struct ought to suffice usually). Then you act as a gatekeeper only allowing conforming objects into your system. Basically filter out the shit, and make sure if it makes it past your gate it is clean. Otherwise you might want to use the [state pattern](https://en.wikipedia.org/wiki/State_pattern) to allow for different validation rules of the same object (eg legacy accounts might not have an email address but all new ones must).

> What if there's some info in the database that would allow or not you to construct the object the way you need? You would go to the database and check the info in your constructor?

This is touchy. Sometimes, if it's important enough then yes. Sometimes you can code around it (eg having case numbers auto-generated at time of persistence). Other times you bite the bullet. Other times you rearchitect the data (storing it in memory to do the check quickly). Or as a last resort, except it as a compromise and start coding up some roll-back functionality. Aim for the ideal, and know when to step backwards towards the practical: that is the art of software development.
Isn't this already happening? http://www.ubuntu.com/certification/desktop/
Just remember - if you can do it, it is bragging, and you're on your way to avoiding arrogant behavior.
Now that I'm on the functional side of things, I can say confidently to my past self and all the "OOP but never functional" practitioners out there...

Learn more about this concept. Make illegal states unrepresentable in your program.

It will greatly help how you think about programming.
I used to have to wear a brace on my right wrist and had pain in my right shoulder from typing all day. Ergonomic keyboards helped, but the two things that virtually eliminated the problem for me were switching to a rollerball or trackpad, and learning the Dvorak keyboard layout. Using a trackpad eliminated the motions that were causing pain in my shoulder, and learning Dvorak made it so my fingers didn't have to move around as much, which helped my wrists a lot.

Some other ergonomic changes that I have found helpful are to use a standing desk with a monitor arm and placing my monitor so I'm looking slightly up.
My favorite butler book is not a part of the genre, but rather a biographical account of a real butler who lived in America and served James Madison.

http://www.amazon.com/Slave-White-House-Jennings-Madisons/dp...

Another excellent historical account of the servant class, this time in England, is this gem:

http://www.amazon.com/Servants-Downstairs-History-Britain-Ni...

I have not actually read any of the butler novels that I mentioned but the one I hear mentioned every time this topic comes up is The Inimitable Jeeves:

http://www.amazon.com/Inimitable-Jeeves-Wooster-Book-ebook/d...

Articles crop up from time to time about modern butlery, which is enjoying a renaissance as Chinese billionaires search for ever more gaudy ways to spend their vast fortunes, like this recent GQ piece:

http://www.gq.com/story/rich-billionaires-butlers-servants
It's not as though it's impossible to make a secure image. Mistakes can and do happen, though. Better to own up to it and fix it than to hide the problem.
There seems to be a bit of a false dichotomy underpinning this article that companies value feature growth above all else and this directly results in poor operational performance. However, you can get terrible availability without delivering any features whatsoever for months and months.

Two 9s of availability? Half the customers I've had would be ecstatic to have even ONE 9 of availability. And those guys hardly ever ship any code due to how encumbered developers typically are in those places and release maybe once every 6 months to a year perhaps. In fact, this is basically my typical experience with most enterprise customers I've worked with as a consultant - they're unable to execute almost anything materially important and customers put up with them because nobody else is in that niche enterprise market that's keeping people employed by lack of choice / market consolidation (healthcare.gov is just a visible example - plenty more projects are even worse with perhaps even larger budgets with zero media attention).
Don't want to be the negative guy, but sometimes I wonder why people would spend their physical energy on gym equipment while you may just as well learn a construction skill that leaves a tangible result and has some use in the real world - like bricklaying, plastering walls or wiring electricity.

Just my 2 cents, if you enjoy your gym all the better for you. But I also think that many people give up because they find it boring.
> What exactly is arrogance?

Egos constantly need validation. In some people, this need results in certain annoying validation seeking behaviors. A few office examples are: constantly bringing attention to one's abilities or accomplishments, speaking to others in a condescending tone, putting others down, and failing to listen to others. I believe these sorts of validation seeking behaviors are what we collectively call arrogance.

> Is it always bad? If so, how do you avoid being arrogant?

Arrogance is when your ego gets in the way of your daily life. Arrogant people are too focused on themselves to notice that they are annoying others. This hinders their ability to communicate or receive correct information. This makes them less productive in a team environment and a pain to work with.

IMO The best way to avoid arrogance is to be mindful about your interactions with people. If you practice mindfulness and compassion in your daily interactions with others, you will find that people will enjoy interacting with you more. As your mindfulness skills develop, your skills in communication with others increase as well.
I agree, but with a caveat - there's an important time/value tradeoff to going down any particular rabbit hole where you have more tasks than time to expend on them, particularly if you're in a billable or result-oriented area, and it lacks obvious benefit.

There are plenty of times I've seen people think of things as "well, it just does X" because of a lack of depth of knowledge, but you also can't necessarily go down every rabbit hole to the bottom, unfortunately.
Arrogance is a way of pushing others down socially while using that push to lift yourself up above others.

Nerds often come out as arrogant by merely offering unsolicited advice or opinions. It doesn't matter if you actually do know what you think you know: you can still be arrogant even if you're right. This sort of arrogance is basically about stepping onto someone else's lawn.

For the general arrogance, I don't have answers. I haven't much felt the need for setting myself above others outside of a special context where I believe that my skills will benefit everybody so I'm not quite sure what's driving that.

For the nerdy arrogance, there's one thing I do: I usually negotiate responsibilities first before acting, i.e. I claim the territory before I pull out my tools.

If I've agreed with someone that I should take a look at fixing something, then I can rightfully and confidently exercise my knowhow myself because finding the solution has become my own territory. If it turns out to be a problem, I'll just return to negotiating: "I understood you wanted me to fix this so do you want me to continue or do you want to fix it yourself?" Conversely, if there is no agreement about territory I won't step in but just let them know they can contact me if they need me. I might know exactly how to fix something but I realise it's not my place until we've first cleared who's going to do what.

Also, getting into a debate with someone you don't know who actually does like debating, can easily be considered arrogant. Likewise there: while debating can be fun with the right person, however, most of the time with most people it isn't so I'll just skip that unless I specifically know the person.
The revolution in technology that's helping blind people see
I'm guessing you like metal? You're not correct here and plenty of pundits who have listened to a ton more music will agree. Run along now, little green. You don't have a point to make.
Think of the men that women tend to lust after on a large scale e.g. celebrities. How many of those men are more muscular than the average male? How many are much more muscular?
Take a look at the all-time top scoring pics on the "ladyboners" subreddit.
https://www.reddit.com/r/LadyBoners/top/
Of those men whose body is showing in the picture, how many have muscles significantly more developed than the average male? 75%? 85%?
I'm not particularly "built" myself, but I think it's extremely misguided to suggest women don't, on average, prefer muscular men (all other traits being equal). Obviously you don't have to be muscular to attract women, there are very few desirable qualities which are actually necessary to attract a partner. That doesn't mean it doesn't help, all else equal.
Downvoted, and yet - is it not wise to start with a headline that is clear enough to attract a broad audience? If the article really only wants to attract a smaller slice, that's fine, but I asked a valid question (in my opinion.)
Color me surprised.
SL 5x5 recommends a perfectly sane method to deal with stalling - deload, work back up to the stall weight, and repeat until deloading no longer breaks the plateau, and then move to a 5x3 rep scheme like Starting Strength, and then (after another plateau) to 3x3.

Starting with greater volume gives the beginner more time to work on form.

Furthermore, if a lifter already has some training, it can absolutely make sense to increase the weight from the recommended start with the empty bar. Do 5x5, and if you have any left in the tank, add reps to the last set. If you get a set of 10, then increase the weight by 10 lbs on the next workout instead of 5. If you try to estimate an effective working weight, you're apt to overestimate, and end up plateauing too early.
> X.org 2D acceleration technologies and APIs aren't as mature and fast as Direct2D and DirectWrite in Windows.

This complaint is confused. X is the wrong place for that stuff (the failure of XRender to live up to expectations being a testament to this). The windowing server should be multiplexing GPU buffers and that's it.

Direct2D and DirectWrite are user mode, client side libraries on Windows. (Maybe the author has them confused with the legacy GDI, which lives in the kernel?)

What this should say is that Skia-GL/Ganesh and Cairo-GL, which are the open source Direct2D competitors, are not at performance parity with Direct2D. I've heard this in the past, though I don't know how accurate it is anymore. Thanks to the work of Google, which depends on Skia-GL for Chrome and Android, it's made rapid progress lately. In fact, in my experience, Skia-GL is basically at performance parity with CG::OGL (i.e. the Mac/iOS 2D rendering backend)—so if the Mac is your benchmark, Linux has caught up there, if you use the latest Skia and configure it properly. Very few Linux desktop apps use Skia-GL in practice, though, which is a separate, and unfortunate, issue.

(Finally, I should mention that Direct2D and its competitors constitute a really low bar if you compare to the actual state of the art in GPU vector graphics, which is stuff like Scaleform.)
Landscape Photographer of the Week Sean Ensch
In what universe is the Apple Watch a "flop"!? It's definitely had its issues, but to call in a flop seems either ignorant or having an agenda to push. If you read the end of his bullet, you'll see which of those is right. ;)
Sounds like your hard drive is faulty: I recommend you hold down the D key or the Command and D keys while the Mac mini is booting to run the Apple Hardware Test. (One can replace the hard drive on that mini.)
That is all I needed: More resolutions to skip!
MathCortex – Programming with Matrices
(Common) Lisp is a multi-paradign language. It doesn't have any specific logic programming features, no more than any other generic language. Some lisps tend to lean towards functional paradigm. EDIT: OK, maybe Lisps' symbol type helps a bit on logic or AI but there's no built-in resolution algorithm like in Prolog.

But Prolog is really something different. I only know some basic ideas but definitely want to dig deeper in the future.
Last month I went on a technical canyoneering & rappelling trip through slot canyons in Zion National Park with a bunch of teenagers.

Last week I was moving 150lb barrels of chicken feed.

This month, shoveling snow for myself and multiple elderly neighbors.

Mid-forties, desk job. Weight lifting helped.

The daughter piggyback example is interesting - my initial experience with back pain came when playing with my toddler daughter several years ago. "Threw out my back". Yes, strength helps with everyday tasks.
Haskell actually does allow mutability in pure code using the ST monad.

It's pretty cool; you can use ST to have mutable variables and arrays and such, but the mutable values aren't allowed to escape the ST "context". So you're still guaranteed immutability outside of the ST monad, because the type system locks all mutable values inside the monad.

This is mostly only used in very-high-performance libraries that use algorithms based on array access.
I don't think it was Anonymous. During the operation against ISIS on social media, Anonymous tried to DOS one of the ISIS propaganda websites (Isdarat). They couldn't muster more than a few Mbps.

This attack on Turkey is an example of Russian "active measures."

Edit: By the way, the entire tr TLD is managed by a single DNS server at METU. That was the target of the attack.
That may be, but the application never really seemed reasonable. I say this as someone who loves almost anything robotic.

The technology is amazing and will no doubt find use elsewhere.
Bah, can't be any worse than the particle board crap at most places.
From one of my favorite movies, The Insider (http://www.imdb.com/title/tt0140352) about Big Tobacco and Dr Jeffrey Wigand:

"I know what you're facing, Jeff. And, I think I know how you're feeling. In the Navy I flew A-6's off carriers. In combat, events have a duration of seconds, sometimes minutes. But what you're going through goes on day in and day out. Whether you're ready for it or not, week in, week out. Month after month after month. Whether you're up or whether you're down. You're assaulted psychologically. You're assaulted financially, which is its own special kind of violence because it's directed at your kids. What school can you afford? How will that affect their lives? You're asking yourself, "Will that limit what they may become?" You feel your whole family's future's compromised, held hostage. I do know how it is."

Not to mention:

"You fought for me? You manipulated me! Into where I am now - staring at the Brown & Williamson building, it's all dark except for the tenth floor. That's the legal department, that's where they fuck with my life!"
Thanks to Jeremy, Aaron, Rafael and all the other hard working Rails people doing great work for next to no recognition. I appreciate it immensely.
Yep: https://xkcd.com/1570/
> Why are they against militarizing robots? It pays the bills.

Because money isn't everything?

> There's not some magic that prevents consumer developed technology from reaching the battlefield.

That doesn't mean you're required to actively help it along.