skysight-inc/HackerNews huggingface dataset:
In "Kingpin" by Kevin Poulsen [1], one of the key players made a lot of money by hacking into POS systems at "mom & pop" locations (restaurants, dry cleaners, etc).

Their surface area was "just enough" - they're online in order to run credit cards and early versions of the POS software kept the card details in local files. Once he was into their system, he had access to thousands of cards... when the cards were used fraudulently, it was very difficult to know how it'd been stolen because it was via lots of small breaches that never made the news.

Appropriately for this post... the POS software vendors eventually rushed to be compliant with new security standards (PCI?) and not store those details locally. But the store owners were reluctant to upgrade because the new software versions had an upgrade fee or, even when the upgrade was free, they'd have to pay thousands to their local consultant to actually perform the upgrade.

[1] - http://amzn.com/0307588696 ... Twitter-sized review: Pretty good book and it read like a technology novel at times. Will definitely get you re-thinking where/when your cards are used.
There's an easy solution to that problem: have two older developers take each other as references....
Here's the odd thing - if I meet a candidate who knows about shellsort, I'd already be impressed. Many people I interview have trouble with much more basic concepts than that.

And of course, it is worth keeping in mind that when you hire an employee that hopefully at some point, the load demands are higher. And it's kind of awkward if your product hits rapid growth, but your engineers are currently busy learning about algorithmic efficiency.

Nobody sane asks about "worst-case efficiency of shell sort" unless you yourself suggest shell sort as an algorithm. But it is expected that you get the general idea of O notation, because it actually does matter for day-to-day work.

And, as a practical interview tip: It's perfectly OK to say "I don't know about this specific case" - just follow it up with "for most sorts, O(n^2) is an upper bound, so if I'd guess, I'd go with O(n^2).", or something like that. It tells the interviewer that you know general principles.

That's the big problem in most interviews - candidates treat it like a test, where there's just the right answer, and nothing else. It's not a test. It's an attempt to somehow, within an hour usually, find out what you know and how you think. Throw the interviewer a bone or two, and help them do that. Silence and short "I don't know" answers really just waste time for everybody.
Forget the hoopla about AngularJS, Node, Ember.. Focus on what makes businesses revenue, and do that, as patio11 once said.
There's actually a lot less commonality in a single production run than you'd think, or so I believe having analyzed Taiyo Yuden disc hub numbers. Different physical machines, I suspect. But of course the "chemistry" will be roughly the same, and thus a whole batch or more could go bad early. Although one might hope they do accelerated aging tests on their production.

You are of course correct about the precautions that have to be used, but there's screw cases for everything you can use to back up your data. I was merely responding to the assertion that CD-Rs are entirely unsuited for archival purposes, and backed it up with my own experiences over a decade and a half.

Me, I live a hair's breath from Tornado Alley, and use multiple means to backup my data, local discs, disks in another room (which got trashed enough to be unreliable in a tornado http://www.ancell-ent.com/1715_Rex_Ave_127B_Joplin/images/) which I've switched to LTO-4 tape, some of which live in a safe deposit box, and the really important stuff offsite to rsync.net (which saved the only important data totally lost locally from the tornado, or at least without $$$ to a data recovery firm). And of course the CD-Rs, which at some point I'll start putting into the disk and LTO bases system.
I am waiting for an API for a specifically designed API-maker software named "Yo dawg".
> registered a domain name Dr <Last Name> back even before they started. Who the heck does that?

It's probably either do that or wait and find someone else has registered it
Software is a craft. Why would we stop practicing our craft as we get older? Do cabinetmakers stop making cabinets? Not as long as their hands can hold the tools. I'm 53 and still a working developer. Over my career I've worked with languages from 8086 assembler and Pascal to C++, C#, and now primarily Python. I am called on now to do more leadership, and my judgement is sought on architectural matters more than when I was in my 20's and 30's, but the primary skill remains my ability to comprehend a set of requirements, and from the infinity of potential implementations distill one that will satisfy those requirements in a robust and maintainable way. It's a valuable skill, and since it has been feeding my family for a couple of decades now I see no reason to let it wither.
I also like their design a lot, that's why I work with Stellan from 1910 on HypedSound.com :)

Oh and I enjoy their blog too. Love their tumblr weare1910.tumblr.com
The Most Innovative, Useful, Realistic Looking 3D Printed Prosthetic Hand Yet
Hydrofoil kiteboard:

http://vimeo.com/17754852
A regex monster:

http://blog.codinghorror.com/regex-use-vs-regex-abuse/
>Unless he's a complete idiot

Possibly...
Developers should be growing to become bridges between business and technology. Businesses rarely have technology problems. They have business needs that technology might help solve. Even though most businesses are becoming software businesses regardless of industry, it's from the perspective of managing the details of their business.

Learning and delivering strategy is far more valuable than just tactics (latest hip language/framework/stack), because a solution doesn't exist just in programming alone, but a combination with policy and process.

As you grow, you can become a strategic aligner that is not dishonest about using the latest toy at the expense of your customer's growth.

I'm in my early 30's, developed professionally for over 15 years.

The one thing I see over and over now is how secondary development starts appearing the more I interface with upper level management directly. There is a major starvation for developers who can learn to understand a problem and leveraging a solution to magnify competitive advantage.

I spend more time thinking and analyzing the problems (way more) before ever daring to trivialize something to whip up some code.

This ends up with my development work being tremendously more valued, instead of just being a means to an ends. As I get older, the value I add is not just coding, but being able to architect a solution that
Using git – the next level
BitCoin is a threat to a bunch of different industries, not just CA.

I'd be more concerned about a frightened financial industry waging a foolish war on BitCoin.
How to recover from a Google penalty – Penguin, Panda and manual actions
That's an awesome concept. Games this like get me closer and closer to building a steambox.
This actually would be brilliant. But for a different reason! It creates contrast between stripe and a spammy competitor. Makes you hate the spammer and love the company you signed up with.
" That's the big problem in most interviews - candidates treat it like a test, where there's just the right answer, and nothing else. "

Humm no. Google interviews are (or at least were) pretty much right or wrong answers mostly.

The best interviewers could do what you say, but for the most part, no.
The problem with heat maps, like this one, is they end up effectively as maps of population density. To make a heat map informative, consider coloring the map zones proportionately to the population in that area.
Fair enough, it seems I have to do some reading on that proposal.

Still, what happens when a single IdP invalidates their claims? Is the whole token invalidated?
Tweet calling Google scraper goes viral
Ask HN: Should I travel or join hackreactor? 
It is my last summer of freedom after finishing university. In the fall, I will be joining one of the big tech companies in the bay area. I am weighing the options between traveling for a couple of months in southeast asia or learning to code with hackreactor (hackreactor.com). I'd love any input on what would be most valuable!
agreed, which is why I said 'gcc and C'.
Is GCC's IR still called GIMPLE?
I'm sorry that my explanation was so alienating to you. It was intended to be practical, but clearly I missed that mark for people without a certain amount of Haskell experience. Is there anything particularly confusing there that you would like explained?

The reason that I used the phrase "computational context" is because functors are very general. A Functor can be thought of as something that lets you translate functions with nothing special about them, just a function from a value to a value, into functions that operate correctly on non-vanilla values. Some examples of non-vanilla values (values with a computational context) are any value in a data structure (this is regular mapping over lists of values and trees of values), values that depend on external configuration or storing internal state (more useful for pure FP), operating on streaming data with functions that don't know about how you are streaming data, operating on data that might be missing without needing a null check, operating on data that might be actual data or an error code, operating on the results of a parser.

To give a python example, the lift function would be a decorator that made the function it was applied to correctly operate on almost any input value you gave it. If you give it a data structure, it is applied to all values in the data structure. If you give it a generator, it creates a new generator that runs the function over each element as it is generated, something like:

return (f(x) for x in argument_generator)

where f is the function that the decorator was applied to. This isn't as popular in Python, but .then() in promises/futures is a lifting function that lifts functions operating on data to functions operating on data that may asynchronously arrive in the future or fail to arrive at all.

This is very practical because it allows you to write code with very little repetition or boilerplate. When someone makes a data structure or processing technique (streaming, parsing, non-determinism), they write the code to operate on values inside of the data structure or process. This code is now only located in the definition of lift/map instead of being spread between every function that wants to work with that data structure, but not take advantage of anything special about the data structure. This removes boilerplates from functions and makes them easier to read and understand. In addition, this makes functions more extensible with less work. Anyone who comes along with a new data structure or processing technique can use all of the existing functions they have without having to write a new compatibility layer between the new data structure or processing technique and their old functions. Writing lifting functions separates particular data structure or processing techniques from general functions. A function can be lifted into many different contexts without any changes. This decouples specific implementations from general functions.
I'm 48 and ended up moving up, even though I still love to code.

The reason wasn't age as much as it was simply a desire to do more complicated stuff. To me the real challenge in technology has always been at the intersection of business and tech, that spot where you have people with a need meeting people with capability. The business side alone is pretty boring, and the tech side at the end of the day just amounts to variations on bits and bytes. Puzzle books. (Although, like I said, I love it)

Being a consultant, I see a lot of older developers around. I think there's a significant bias in the industry towards younger guys -- mainly because younger guys are the hotshots moving through development into management, and people like hiring people that look like them. [Insert long discussion here about age bias if you must. I prefer to just acknowledge it and move on.]

The "mistakes" I've seen from older developers come in two flavors: not specializing enough and not moving around enough. Some guys will "float to the top", and become more of a surface-level generalist. This is the path I see my own technical skills leading. That's great, but many times companies specifically want some kind of bullshit new technology because somebody thought it looked hot on HN. In that case, you're at a disadvantage. And after a few years pass like that, sure, you're the guy that can do anything, but only in C. That has real, solid, useful business value -- but it sucks to try to sell in the labor marketplace. I have a feeling there are going to be a lot of older startup founders over the next 30 years that fit into this mold.

The second way to kill yourself is to stay at one company, working on one product and one technology, longer than a couple of years or so. Pretty soon you're the master of C++11 as it applies to real-time embedded weasel-hunting robots -- in other words, you are truly the master of something nobody else on the planet cares about. That works great until they stop making weasel-hunting robots, then it sucks.

I think the problem with age as a developer is the same problem you have at 22: you have to wisely balance the time and energy you spend on learning new things. You can't learn everything and move around every other month, but you can't stagnate either. Instead, you have to carefully watch the market and anticipate where it's going to be in 3-4 years. As you get older, sadly, it's just easy to stop giving a shit as much as you used to. Sure, in five years everybody will be using X, but what will they be doing with it? I'll tell you what. In 99% of cases, they'll be doing the same kinds of things they're doing right now, that's what. So after a couple of dozen rides on the "Gee whiz! Is this cool tech or what!" wagon, it gets tougher to get back on again.
And a compiler that only accepts the 10%.
Taiyo Yuden DVD recordable media as of a few years ago cost 1 cent more than their renown CD-R media. I don't trust it for anything serious, I barely trust MAM-A Gold DVD-RWs.

I played the MO game in the '90s and found them to be rock solid, and durable as well (e.g. I'd throw a disk cartridge in my backpack without problems). Theoretically they looked quite quite solid.
For better or worse, Perl is alive and well in bioinformatics. Lots of people are trying to change this, but at the moment it's a fact. So if you're a Perl programmer, are struggling to find a job that lets you wallow in the Perl pool, and don't mind capping your earnings around £50k, give bioinformatics a whirl.
Justcoin Exchange launches market liquidity rescue pack
Is it common to have your replacement/repair refused unless you bring up the "reklamationstiden" argument?
Reviewing etcd
Cloud-ssh – tiny wrapper for ssh which enchance work with cloud providers
In times of digital clouds, servers come and go, and you barely remember its names and addresses. This tiny tool provide fuzzy search (yeah like SublimeText) for your instances list, based on tags, security groups and names. Can act as ssh replacement.
If all you do is call kids lazy and their work unacceptable, then no, it's probably not going to work.

The essential point is to set clear expectations for performance, and enforce them consistently. There is quite a bit of research along these lines in parenting, coaching, and business management, although I don't have links handy.

It can be hard to stick to this plan in the face of childhood emotional distress. There's a school of thought that the goal of childhood is to relentlessly build up self-esteem so that kids feel good about themselves, and are better equipped to handle hard coaching later. This gives permission to relax performance standards in favor of making kids feel good--e.g. "participation trophies" and "as long as you tried your best."

What this article (and many others recently) argues is that kids are plenty capable of dealing with performance standards, so long as they are perceived as fair and consistent. Kids who learn to persevere and improve are better equipped to continue doing that later in life.

The specific language this coach uses is just window dressing. The important thing is that she does not let her kids off the hook if they fail to meet the standard of performance.
I'm in my mid-30's and was very reluctant to go in to management, wanting to code as I have done since my first job at 16. In the last 18 years I was happy being a developer, but over the course of the last few years I have come to the personal realization that I would need to eventually move in to a different role - I didn't want to wait too long either. I recently got the opportunity to move in to management and don't regret the decision. Sadly, it's brought me to 100% management, 0% development - but I make sure to review every pull request, knowing exactly what is going on. Additionally, I still work on little side projects of my own at night/weekends - it takes care of the itch to want to code, and it's stuff I am really passionate about.

As for salary - I believe I was getting close to plateauing as a developer in my area (for jobs I would want to do), and I have opened up my career and salary path a bit more.

Regarding looking for jobs - I moved from the agency world in my early 30's to the startup world. I am so much happier, even with the perceived risk, I believe it has made me far more marketable for future endeavors. I got to work on far more interesting things, and the people I've met after making the switch has helped me tremendously.
Author here, in case if there are any questions.
Yeah, I saw that and had a good chuckle. It's nice to see that humor isn't completely dead!
Show HN: PotterVerse – Visualizing the Harry Potter character network
A visualization of the Harry Potter character network. Exploring whether it exhibits the same properties as a real social network.
Dutch politicians are using Grindr to connect with voters
Here's how people use it:
http://pandoralive.info/?cat=15
Wow, beautiful!

I'm wondering if there are some uses for this, apart from just having a clock in your browser which is cool enough.
It's very frustrating to be in this position when you don't want to be. It's like 'My pay is good, but my long-term prospects are falling apart.'
Looks nice, but the hour hand is wrong on all the 24 hour clocks.
Binary size! (in my base separated .dbg files were HUGE, compared to the .so files). I don't think it has any impact on performances however (especially as the debug information is put in a separate ELF section, either in a separate file, or mapped but "cold" [ie. not live in memory as the runtime does not touch it])
I'm curious to hear the answer to these questions from a woman's perspective. I met a few lady engineers through IEEE involvement in university who were further along in their careers, but I haven't met very many other lady devs over the age of 35.
I have to ask - is that your personal experience, or what you read about the interviews?
This is not where the money came from, but where it went, right? So how come there are so many countries? Isn't Kickstarter working only in a handful of countries (basically wherever Amazon is)? But I see a lot of other places, too.
I Should Have Had More Guy Friends
Has anybody used these? A 1,000-year DVD/Blu-Ray sounds good. I would use it if it is actually reliable. (Actually just want decades, but centuries is better.)
> Although one might hope they do accelerated aging tests on their production

The experienced storage admins I know share that hope but don't trust vendors not to get it wrong. It's just too easy to miss a factor which turns out to matter.

> I was merely responding to the assertion that CD-Rs are entirely unsuited for archival purposes, and backed it up with my own experiences over a decade and a half.

Question: have you done bit-level checksum validation on that old media or is that just the ability to read without errors? There's a little bit of error correction built into the format but I wouldn't trust it for anything important.
The purple animal thing has the hands render at the wrong place (not the center) on my machine, cool idea though.
There's something to be told about learning stuff that matters. Data-structures, algorithms, statistics, machine learning, math in general doesn't change and will be as relevant 30 years from now as it was 30 years ago. POSIX doesn't change either.

Learning for learning's sake is actually pointless and can do more harm than good if done tastelessly. The best kind of learning happens either when something is cool and you want more just because you get a boner just thinking about it or when facing a real-world problem that you'd like to solve using a different approach.

For an example of pointless learning - learning a language that's similar in concept and popularity to another one that you already know is pointless (e.g. Ruby vs Python), unless you learn it because you've got specific real world needs. For learning new languages, I actually apply the following rule - if learning it doesn't hurt, then I'm waisting time.

Another example of pointless learning - anything proprietary, as proprietary things don't survive as well as open-source stuff or stuff based on standards. Actually, taste is required to pick winners - SOAP will be irrelevant in 30 years from now and anybody with taste could have seen it coming since its inception (speaking of which, Google's Protobuf won't survive either, because simple text-based protocols always win).
Most old (50+) programmers I've worked with have spent most of their time in some variation on theme of management, only to occasionally sit down and write code when their unique expertise (Fortran, Lisp, Cobol, APL etc.) is needed, occasionally to great surprise. A few move on to start highly specialized consulting firms focusing on the sort of things the 'kids' don't know anything about (Fortran, Lisp, Cobol, APL etc.).

The only 50+ programmers I've worked with who where still employed as programmers as their main/only responsibility where those who'd been at the company since "the early days", had written and/or designed all the companies core systems and thus where the ones who understood the system better than anyone.