skysight-inc/HackerNews huggingface dataset:
Well, clearly the display is an addressable register, not merely an output through a latch.(I say that because I assume the design goals of an inexpensive calculator include kaizen-ing the bill of materials down to the absolute minimum. So it's probably a visible register. Similarly, it's probably a digit-serial architecture (maybe BCD), also for parts count reasons, but yielding supplemental advantages when it comes to verification.

Different operations take noticeably different amounts of time; a "timing attack" like those used for cryptanalysis might yield clues to what's in the black box.

The way new digits appear on the display when typed in suggests it might be implemented as a shift register. It would be interesting to look at high speed video of the display when the answer to a long computation appears; do the answer digits appear (rapidly) one at a time? Do they shift in from the left? Three caveats: (1) I've never noticed it happening; (2) LED displays are almost always multiplexed, but you could probably see through that; and (3) probably wouldn't work on an LCD because too slow. I used to have a vacuum fluorescent display calculator, though; IIRC it was not multiplexed.

There are a few articles on the web about the architecture of calculators, including the Busicom [1] and Sinclair [2].
Personally, I want to hear more about zoul's research---how did you do it?

[1] http://www.4004.com/

[2] http://files.righto.com/calculator/sinclair_scientific_simul...
Yeah same here. I wish I had given up on Scala and used something more familiar to me. I kept having my index serialization randomly die and it wasn't very clear what was going on. It was great to get a taste of the language, though.
In my view the passion could be something that you like today, but it could be something totally different tomorrow.

The secret of success in an ability to recognize and follow the passion moment to moment.

That is the big part of the secret of "living in the now".
as a Pole it's so obvious for me I didn't realize it was a thing, and reading the article the 1st thing I thought is why they don't do it so.
Is it also really annoying for you to see people walking around in public and talking (apparently) to themselves, but while they are with one of their friends who is doing the same thing?

I really don't see the difference between me talking to a friend in public when they are next to me, at the end of a phone call mediated by a handset, or a phone call mediated by a bluetooth headset. The volume of my speech is the same in all three cases, so I have to assume some people are upset that they cannot listen to both sides of my conversation, and become annoyed with the phone/headset scenarios when they are unable to eavesdrop?
Bootstrap 3 is much nicer to use than previous versions, if that's what you were using in the past. Each element is more of a barebones styling to it, which makes it easier to get what you want out of them (such as buttons). I spent a lot of time in previous versions of bootstrap just stripping out text-shadows, border-radius, gradients, and more just to get it back to a basic component.

The grid in the Boostrap 3 is pretty useful if your requirements are for a responsive layout. It really makes it pretty simple to get things going, but does pollute your html with a lot of cruft as you sometimes need to define each size within a single class attribute.

One other thing I've found is that it makes the site more maintainable, as it's easier for others to understand your CSS and layouts. It's the equivalent to being able to hire a Java programmer that knows the Spring Framework (they're plentiful, and usually know enough to not break things). The same is the case for Bootstrap. By having a common and popular framework, you have more developers that can jump right into your front-end quickly.

Also, it's easy enough to customize[1] to get only what you need. If all you need is the grids, just remove everything else. No need for the js components.

[1] http://getbootstrap.com/customize/
The problem with this argument is that it ignores the basic contract of power in a (functioning) democratic government:

The people, through their votes, lend their power to a government that aggregates that collective power to accomplish larger societal objectives (financing wars, building bridges, educating generations, enforcing civil society, etc), that would not be possible if the maintenance of society was left to everyone's individual will.

Just as valid: peoples votes in elections after 9/11 gave the government power to compromise civil liberties in the name of security.

Does your city have a street sweeping service (which are usually publicly funded by taxes approved by ... votes)? Without one, in an urban/suburban environment, your street would be full of garbage in no time, probably too much for you or other like-minded people to clean up.

Votes aren't a solution for every large problem, but it's far fetched to say that don't have any impact. Much of what we take for granted in modern public conveniences happened because people voted for representatives that in turn supported those endeavors.
For example, http://i.imgur.com/Qti6A9i.png
jQuery or <jQuery-compatible substitute> is one of the few things I don't have to think twice about before including in EVERY WEB PROJECT I EVER WORK ON before doing anything else.

Next up: you might not need <insert abstraction>.

Really?! What does "need" mean? Go write assembly.
Facebook will always need a home page if for no other reason than to manage who you friend and what you are reading. They are interested in creating more stand alone apps ala Messenger. Paper is just another stand alone facebook app - and looks to be a very good one to me.
HTML5 Video Player like YouTube in jQuery plugin
Any exercise is better than no exercise. Short amounts of exercise at high intensity is probably better than medium length exercise at low intensity. Anything that makes more people want to do more exercise is a good thing. Anything that makes it clear that a little exercise is better than no exercise is a good thing (this seems obvious but you'd be surprised how many people think that if they can't get 30-60 minutes in, why bother?).

All that being said, doing this every day for 30 days will eventually result in your body acclimating to the external stress and you will begin to see fewer and fewer benefits. Same thing happens if you run 30 minutes every day or do the exact same lifts for a month. For optimal results (where results might equal strength gains, weight loss, cardiovascular endurance or anything else), you have to regularly vary the training by time, exercise and intensity. I think this is awesome for a whole bunch of people I know who don't do ANY exercise. I'm just not sure it's going to have long term effects because there just isn't enough variability.
I couldn't resist. Moar funky-cool Python:

>>> from string import ascii_letters
>>> ors = ['|'] * (len(ascii_letters) * 2 - 1)
>>> ors[::2] = ascii_letters
>>> ''.join(ors)
'a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z'

(Obviously, in this example '|'.join(ascii_letters) would suffice, but if the objects weren't strings...)
Great article, I am really eager to see the solutions in github. I guess there won't be many with c++ solutions.

I only found the challenge two days before the end. My goal with the challenge was not to get the best solution, but rather use it as an exercise to practice the different languages and finding intuitive solutions.

Level 0 as you wrote was really just a two line change.

Level 1 was fun, because I tried to work with the existing bash structure as far as possible and just replaced the hot loop with inline python (something new learned). I found it interesting that this way I could directly inject the variables into the python program without having to load them as env variables (see [1]).

In Level 2 I did too much work, I did not think simple enough. I assumed that the different test cases would differ a lot and that a static divider would not help. My assumption was that the histogram of requests per second across the different IPs would have a bimodal distribution[2], thus I used the excellent "fast-stats" library to get a histogram and ban clients based on that. The library even offers approximate histograms, so even if there would be thousands of requests it would still scale.

To solve Level 3 with the given code required to changes:

-(i) Partitioning the data across the three server. I only loaded a subset of the files based on the server id (which was conveniently already available in the search servers) and

-(ii) Loading the files in memory so that they don't have to be read from disk for every search term. This was enough to pass this level. The code was too long for the gist but I can put it on github if someone wants to take a look at it. No fancy index structure required. I just scanned The files linearly on each request.

Mastering Level 4 was not possible for me, I tried working with the go-raft library and got the integration with unix sockets working, but somehow the system got unstable after a while. Fixing this was really frustrating and in the end I gave up because I could not find the problem and time was running out.

I congratulate all ~200 persons which also passed this last level. This was much more difficult than the other ones!

[1] https://gist.github.com/mkaufmann/8716922
[2] http://en.wikipedia.org/wiki/Bimodal_distribution
Fashion is inconsequential with respect to practical utility. But it's just the opposite when it comes to social signaling.
That's one theory. The evidence doesn't support it. Maybe the rich guy can get back to where he was with his track record and connections to build on (more likely if he earned the money in the first place rather than inheriting it), and of course if you just take cash and not other sources of wealth you probably haven't hurt the rich guy all that much. But when we have given money to poor people, they use it to improve their lives.

http://www.ottawacitizen.com/business/Column+Want+help+poor+...

"In Dauphin, Man., the government gave more than 1,000 families a four-year guaranteed income to help keep them out of poverty. Crime rates and hospital visits dropped. Education enrolment surged. Nobody sat around in sweatpants eating Cheetos. They used the extra resources to make plans. "

Focused on children: http://opinionator.blogs.nytimes.com/2014/01/18/what-happens...

"But just four years after the supplements began, Professor Costello observed marked improvements among those who moved out of poverty. The frequency of behavioral problems declined by 40 percent, nearly reaching the risk of children who had never been poor."

Rural poverty in Kenya: http://www.businessweek.com/articles/2013-10-25/want-to-figh...

"Food consumption increased 20 percent, with a 42 percent reduction in the number of days children go without food. Recipients were also able to increase their ability to earn income. Revenue from raising livestock rose by 48 percent; total revenue from self-employment rose by 38 percent."

Again, for emphasis: total revenue from self-employment rose

And lastly, a large one-time payment to long-term homeless men in London (though an unfortunately small sample size):
http://www.washingtonpost.com/opinions/free-money-might-be-t...

"A year later, 11 of the 13 had roofs over their heads. (Some went to hostels; others to shelters.) They enrolled in classes, learned how to cook, got treatment for drug abuse and made plans for the future."

You need to update your model of how people work.
I use http://www.7-min.com/ as the bare minimum workout on days when there's not time or I'm too lazy to do anything else.

The most important thing I've found in getting more fit is to consistently do something every day. Getting started is the hardest part. Having something that only takes 7 minutes, and requires no more equipment than a chair, takes away a lot of excuses and makes that bare minimum easier. Once that's a habit, throwing in longer workouts isn't so hard.
I am not sure how first case is more explicit. Try Ctrl+click (say we are in Eclipse world) on getCommentById(...) in first case and you will see interface signature - bummer. And while you will be pressing Ctrl+Shift+G and trying to guess (just guess because only Spring knows for sure) which implementation is more likely to be used on this particular line, I will jump straight to getCommentCache(...) implementation (2nd example, non-interface) and move miles ahead.

EDIT: Not to mention, that passing references to cache object along each method call bloats the code. Now you have references to cache not in 50 cases where cache is used (example #2), but in 5000 cases because each method signature needs to include reference to cache (each method along the call hierarchy until you reach the point where you use cache object).
o ok i was taking your comment within the context of the post -- more like "why not allow jQuery as a dependency for an open source lib". sorry for misread
Do we really need to see a front page article for every site that starts accepting BTC?
This looks like a step in the right direction. In previous HN discussions, Facebook's approach to mobile app development hasn't gone over so well:

Dalvik patch for Facebook for Android | https://news.ycombinator.com/item?id=5321634

> I can't believe an app requires 8M RAM just for method names!

> They actually did have the stonkingly huge arrogance to monkey patch the OS

> Basically these engineers decided to be really clever, painted themselves
> into a corner, smashed a hole in the wall so as to escape from said corner,
> and then bragged about how great they are.

Updated Facebook for Android requires "Retrieve Running Apps" permission | https://news.ycombinator.com/item?id=5543363

> Is there any good reason they don't split the functionality to the
> appropriate applications? Then maybe they wouldn't have to hack dalvik to
> run a simple facebook client.
Anything before IE11 is not by any definition a modern browser.
This is nice to see - not just to see that they're accepting Bitcoin, but that they're still undergoing active development.

Despite the fact that to-do apps are literally the "Hello World" of Javascript MVC frameworks[0], Toodledo is literally the only service that fits my requirements:

1. Supports GTD in some sense (subprojects/subtasks is usually where they fail)

2. Is cross-platform (so I can use it both in the browser and on my Android phone

3. Has an open API (so I can fill in any missing details myself[1])

I've tried Remember the Milk, AnyDo, Astrid, and countless others. Every time I've tried another tool, I've come back to Toodledo eventually.

[0] http://todomvc.com/

[1] Unrelated, but offsky, since you're probably reading this, I have a few suggestions for you regarding making the API easier to develop for. Ping me if you're interested in talking.
All of the momentum in the US economy right now is rooted in the natural gas boom (fracking). Nobody is going to touch it.
Are you expecting them not to show the product in its best light with pictures of somewhat attractive people and good content?
Didn't the PostSecret guy lend his name to an app, only to discover that the interaction aspect wound up being used for bullying (and he therefore got it shut down)?
I regularly see tagged photos of myself come up on Facebook and think, "Christ, that's annoying." Enough other people do that they have built a lot of special controls around tagging.

I've also occasionally ended up in the newspaper in crowd shots. That can be fun or irritating, but either way it definitely matters to me.
Although many of them boil down to preferences and philosophical points of view, I find these kinds of idioms useful. Whenever I write code in a new language, I want to "write as a native" so that I can maximize the effect that the language has on how I think about programming.

For Python in particular, Jeff Knupp's "Writing Idiomatic Python"[1] (not free, but not expensive, either) goes into detail on a lot of the concepts in the OP's slides. (I'm not affiliated with Jeff in any way, just a satisfied customer.)

[1] http://www.jeffknupp.com/writing-idiomatic-python-ebook
I think it would be extremely easy for me to identify my friends or for them to identify me based on writing style.

One of my closest friends is dyslexic, several others are in separate countries, and we've all got various tics and tells we might not even be aware of.
They have news sources in the app that are US-centric.
Postsecret is a pretty good counter example.
Yeah, I ran into the same issue on Level 3 (the comment about Github search in the first edition of the readme threw me off since Github search does not do substring search). The worst part was that I knew what needed to be done from the very beginning but the simplest things were kinda hard to do in Scala and playing around with the setup to test things out was pretty frustrating since you had to recompile every time and the recompilation took aeons.

(This is not meant to be a critique of Scala, while working on the level I kind of understood the appeal)
Anybody know of a tool to help generate this?

At Trulia we released something similar for internal documentation of an OOCSS library (think: Generate your own bootstrap-style documentation)

https://github.com/trulia/hologram

Would be great to see a similar tool that can generate a pattern library like this one.
Maybe.

Photovoltaic solar produces lots of waste, more than nuclear. And it requires lots of land.

Solar thermal is much more efficient but it's expensive and no one seems to be doing it in scale. And it too requires lots of land.

And don't say we have lots of land, we do, but it's remote, so you need a lot of infrastructure to make use of it. We can do that (we did for hydrocarbons), but it's not a slam dunk.

Because of that, nuclear produces less waste and is better for the environment.
I'm psyched by the idea that you don't need a bloated framework, but between using Zepto as an alternative, as well as the fact that some of this information is just plain wrong (e.g. they claim that the classList API is supported by IE8+, when in fact it is only supported by IE10+), this won't get you too far.
well to level3 I can tell you, I just used grep embedded in a nodejs server application :D

Everything boiled down to this:
"cd " + data_path + "; grep -rno " + key + " | cut -d: -f1,2 | sort | uniq"

I read the result from stdout and transformed the result into json that was enough to make it. I did not want at that time to spend more time on that level ;)
This reminds me, somewhat tangentially, of a bug I ran into once with Tcl (yes, Tcl) where a function returned an integer in the form "08" and Tcl had a convention that any integer with a 0 prepended would be treated as octal in any arithmetic expressions. Naturally, 8 is not a valid octal digit, so this broke everything when it happened.

Ultimately it was my fault for not being better acquainted with the language, but that one still caught me by surprise.
I don't think anyone will ever refer to this app as simply "Paper"..that already exists with 53's app. My guess is that people will refer to it as "Facebook Paper" as they have with "Facebook Messenger".
Hmm, I didn't think about that. That's probably likely. It's one thing to make a statement and leave it there, another to see how people react to your deep secrets. They are secrets for a reason I suppose and society may not welcome it.

On the other hand, if this is with 'friends' and not completely random audience things may manifest quite differently.
> Python is just so much easier to use (and people are realizing this slowly),

Not really. In fact, PHP is growing at a faster rate now than it ever has, precisely because people are realizing how powerful it can be compared to Python and Ruby.

There aren't any features of Python that make large codebases any inherently easier to manage compared to PHP.
Why don't they just publish the key on the site?
Amazon wants to include peer to peer payments in Paypal competitor
Scheme is the only PL I know that has an explicit #f value.

CL, for all intents and purposes, treats nil as False... but some find the conflation of nil and the empty list runs into the same issue when operating on s-exprs.

CL-USER> (if '() 1 0)
0

vs

scheme> (if '() 1 0)
1
So are you saying that if it was a regular website accessible from a desktop pc you would check against MAC address or some other hardware id to "notify users when someone from a different device tries to log into their account" ?
We would need a significant number of seeders in order for this to become a successfully used product. Perhaps, universities can seed data?
> statistics ... collected from W3Schools' log-files ...

I guess this does not represent a near-perfect sampling. So I wouldn't rely too much on the single-digit aspect (although it makes a nice title) of the stats but the trend is impressive.
i think reactive task (JavaScript style promise) paradigm's are great for the mobile interaction use case. small segmented operations that async update the ui. block style coding mechanism are also nice because you can see the callback code next to the invoke. very interesting . seems like combining this with an JavaScript runtime would be even more powerful
Totally valid, but just to say, jQuery's API is just as arbitrary, you just happen to know it better. If you use the native XHR a couple times, you know what open's parameters are.
> but in that case they could just release a second dataset as an addendum

Or for some data it would make sense to partition the data into smaller chunks instead of one huge archive. That way adding a chunk (the new year's data for a multi-year dataset perhaps) just menas releasing a new torrent with the extra srchive in and a name meaningful enough to indicate the difference. Anyone with the last set could then just download the new partition (and any modified ones).
Yeah, he's actually talked quite a bit about how Facebook constantly takes out startups and you never know when you're going to be next. What tragic luck! Hope he pulls through.
5 wrong ways to store passwords in the database
Ask HN: Why is ExtJS not getting any traction?
It's 2014. I'm looking for a rich-widget JS framework (datagrids, forms, widgets - all the stuff you need for building desktop-equivalent admin focused apps) and all I find is Sencha's ExtJS.

Yet everywhere I turn (esp on HN) people are talking about AngularJS, EmberJS and Backbone-based solutions. While no doubt great, none seem to be focused on back-office tasks. With the rise of building mobile apps in HTML5/JS I'm surprised - I can't be the only person building data-focused apps (and associated CRUD).

So, why do you use these, do they have a sweet spot (custom apps, games, some "I'm a website but I don't want to be" malarkey?) and why not ExtJS? ExtJS sucks, I know that - but it looks the most RAD way to develop admin interfaces, data input etc.
The analogy is even worse because Ruby changes way faster than C :)

But anyway, writing code in any 'lower' layer is very educational.
If you think of it, Bitcoins wild upswings attracts speculators, and some of those speculators happen to sell products themselves, hence they'll gladly trade products and services for Bitcoins. Volatility is driving adoption more than hurting it.
"Note: I’ll add the source once submissions are off."
We recently launched our bug bounty program for Commando.io as well https://commando.io/security.html.
"sister" :-)
Going with a .ly domain is risky, so much so that YC startups are advised not to depend on them.

Source: https://news.ycombinator.com/item?id=1764475
Congrats and best of luck, used your perks to get into LA Fitness. Whippin this butt back into shape! Thanks guys.
Wonderful! That site gives tests that can be performed from the keyboard to distinguish between Casio and non-Casio architectures, mentions the invisible 9th digit of precision, and notes that some calculators get it wrong.

The old Sinclair pocket calculators had some known arithmetic inaccuracies.