skysight-inc/HackerNews huggingface dataset:
Where I live there's something called 'block driving' (I haven't found a better translation for the Dutch word 'blokrijden'). On busy summer days, when the highway to the coast is jammed, a police car will block the highway, then drive at a constant speed (and slower than the maximum speed), with no one being allowed to pass the police car. Apparently this helps to resolve the traffic waves.
I think there needs to be a more one of book publishing model.

Where I can get the ebook...read it...then if it's something truly valuable, I can spend $10-20-30 to have it printed as an actual hardcover book and shipped to my house.

I know there is on demand publishing now...but most of it is just so cheap. There needs to be a more premium solution where you get something you'd actually feel good with putting on a bookshelf.

Personally I think the only reason to publish traditionally is to get on all of the bestseller lists...which help drive more sales.
Ask HN: What was your first programming milestone?
I've just started my first big (personal) project. What was your first programming milestone, and why?
For the record, I've written an operating system (multi-tasking, multi-user, message passing) a window manager to go with it, a bunch of applications to go with the window manager and a whole pile of commercial software besides that.

And in spite of all that I think I can make the above statement in confidence, that algorithm has something very unique and it exhibits a level of thinking that goes beyond the ordinary world of programming.

> I'd say thinking up Boyer-Moore is nothing special. It's just a logical progression of ideas. If you think about the problem long enough, you would come up with the same solution, or maybe even a better one.

What's stopping you?

I'm sure we'd love to see the Palish algorithm that beats MB by a significant margin and that does not build upon it.
Sorry - yeah - I'm in the UK. We have "high school" from 11-16 or 11-18 depending on whether you take A levels (we did).

UK state school system (at least where I went to school) looks something like:
4 or 5 --> about 8 == infant school
8 --> 10 == junior school
11 --> 18 == secondary school / high school
Ah, cheating. An integral part of playing games. And one of the benefits of having the actual code, in this case. Hooray for JS and Canvas.
I tested string searching algorithms a few years ago[0][1], and Brute Force was surprisingly performant, enough that picking a string searching algorithm becomes an engineering tradeoff. It found a sentence fragment at the end of Moby Dick within 8ms, 7 times slower than Boyer-Moore. But most of us aren't searching Moby Dick, but rather a HTTP header, some user input, or a paragraph of a document. Even long-winded users won't write Moby Dick into your <textarea>. Most languages and libraries use brute force for this reason - initializing and using Boyer-Moore may be slower than brute-forcing the text. Sometimes "practically nothing" is just a brute-force search.

But Boyer-Moore is the perfect choice for Grep! The likely inputs on Unix are all huge: log files, entire directory trees, output pipes from loud programs, etc. The cost of initializing a small skip table is overwhelmed by the cost of I/O and the potential volume of text. It's not surprising that they've gone to some lengths to optimize the core inner loops and the I/O in that context.

[0] http://www.jakevoytko.com/blog/2007/12/11/fun-with-string-se... I've declared bankruptcy on broken TeX and code examples... WordPress mangles them every few updates.

[1] http://www.lysium.de/blog/index.php?/archives/201-Fun-With-S... A few improvements to the code in my post
This article says they were able to find a copy of the original Navy study:

http://www.utdallas.edu/~liebowit/keys1.html

Was anyone able to find an online copy of the studies from Western Electric or Oregon State University that the article referenced?
Actually, if the wave is successfully removed average traffic speed should increase. In fact, the whole post is an argument about ways to improve average traffic speeds.

He basically advocates estimating how fast traffic is really going, and going at that speed. Instead of reaching a bottleneck quickly, you should slow down appropriately in advance so that you never have to actually stop. Note that you (and the people behind you) still get through the bottleneck at the same speed, so there is no cost to you (or them), just less braking and accelerating.

For what it's worth, some freeway entrances near me (Melbourne, Australia) have traffic lights which rate-limit entry onto the freeway in peak hours. This is exactly the same as what this author is trying to do; by rate-limiting cars at entry, they're not actually slowing them down, since it increases average on-freeway speeds.
Right. Let's not preemptively collect data points. Lets wait for Apple to clarify their mysterious positions just because we asked them to. I'm sure that will happen right away.

I don't see the OP as a "knee jerk reaction" but rather a warning to everyone else saying "hey, things might be changing again, stay alert".
Sort of. I have no problem with core stuff being "C" because I am not using "C" to use that library, I am using the HLL to do what I would normally do. Python does this as well (probably Perl and Tcl too).
Thanks for the recommendation! If anyone else isn't familiar, there is an exceptionally good Wikipedia entry:

http://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_sear...
Yeah, I always thought that the only way to prevent traffic jams would be to remove the human factor entirely. Makes me wonder why people fight so much against this, I would love to be able to read while going to work (when I don't catch the bus as usual).
New Scientist attacks quantum physics
How to search text in O(n) time. (Used in GNU grep)
My first milestone was to write a C+4 basic program alone, without my father's help.

My first program was a little dancing stick figure, which my father helped me to write when I was about 6. I wrote my first program without assistance (it drew a few circles) a year and a half later.

To this day, I believe that's the biggest and most important milestone in my programming career.
Out of curiosity, what else would you consider a good example of a market failure?

Edit: also, why is tome (grandparent) being downvoted? He makes a good point.
Thats OK, toot away! But I'll toot my own as well then :) http://github.com/draegtun/builder

Mine (in perl) is more akin to Ruby's Builder by Jim Weirich (http://builder.rubyforge.org/) than out and out HTML builder.

BTW, other HTML builders have been mentioned on HN before: http://news.ycombinator.com/item?id=1518096
You can't directly achieve happiness, because it's a by-product.
tl;dr

Guy with ten year experience switched from Java to Ruby two years ago. Issues with Rails' threads and performance. ActiveRecord doesn't do what he needs. Adoption of node.js has highlighted issues with Ruby libs that block and folk are jumping ship. Better to fix Ruby libs.

Odd to me, but there's no mention of JRuby in the discussion.
Whoever talked about losing hope?

There are people that are simply better at this stuff than I am, I'm not going to belittle my own work by paying homage to theirs. That does not mean that I can't improve relative to where I am today though, and I strive very hard to do so. Maybe one day I will be that good.

It's the difference between arrogance and objectivity.

I'm more than happy creating the stuff I do, every now and then I come up with something that is new (at least, new to me, see http://news.ycombinator.com/item?id=1353259), but that does not mean that I'm going to see this as anything other than the stroke of genius that it was.

If it really was that easy we could all improve on every major algorithm out there just by staring at it long enough and that's exactly why BM is so neat, it wasn't just a simple incremental improvement on someone else's code.

So, I challenge you, come up with an improvement on the status quo prior to BM that does not use the principles as exposed in BM and that performs on par or better, and that are not part of the current literature.

I'll tip you $250 if you manage to do that, that should be easy money for you. And I'm good for the cash.

You will probably get a nice wikipedia entry to boot.
I suspect this is the case. I just clicked on that Meetup - Nightowls link and there was a meetup for the town in which I work my day job. It'd be a pretty crazy coincidence for that to already exist and to be at the top of the list; this isn't exactly an area brimming with the culture typically associated with meetups.
Too often these types of optimisation ignore the actual real world usage but credit to the author for showing that it can seriously improve ActiveRecord performance (albeit 3-4x speedup rather than 200x). I have some Date-intensive models so I might consider using this.
Persuasive Essay Formatting
Normally, any essay has to follow the introduction, body, conclusion format. In a persuasive essay if you present two or three proofs or arguments you can write one paragraph for each and these paragraphs will make the body. Read this to learn more.
Reinventing E-mail, One Message at a Time
History of world GDP at a glance
Yogi, is that you?
You do realise that Canada, the UK and most of western Europe have Kindles and iPads too right... we're not backwards!
About DSA driving practical test maneuvers/manoeuvres
According to recent telegraph news - one in eight driving instructors are not fully qualified, claimed the AA, which demanded the Government force driving schools to be more transparent.
What's the point of self hosted interpreters like PyPY or Rubinius then ? Shouldn't Ruby core team write MRI all in C to make Ruby faster ?
> ... The focus is on making development easier, faster and more enjoyable. However to get there, they have to somewhat sacrifice some performance.

Tell that to Clojure people.
The only issue I can imagine is that your mistakes might be more likely to form real words. The way dvorak is set up so that the vowels are concentrated means accidentally going one character to the left will probably result in something intelligible looking, if not a real word ("beg"->"bag"), whereas in qwerty you're likely to type gibberish ("beg"->"bwg"). Obviously it's easier for auto-correct to notice gibberish than wrong words.

I see no reason that shorter travel time would impact it though.
Virtualization Through Thick and Thin
The animations are linked at the bottom of the article.
Seems like Io's "forward" is a lot like "did-not-understand" (and similar mechanisms in Ruby/etc. languages), but it takes priority over messages that would've otherwise been understood.

Yes its same as did-not-understand/method_missing/__getattr__/AUTOLOAD but no it doesn't take priority over other defined messages.

For eg, If I change the first line in my code above to:

Builder := Object do (
foo := method (arg, write (arg))
)

And do:

Builder do (
h1 (
foo ("Foo here!")
p ("paragraph")
)
)

I get a untagged "Foo Here!":

<h1>Foo here!<p>paragraph</p></h1>
The case of the disappearing favicon
I wonder why it shouldn't work on Firefox, the only bottleneck I can see is the canvas. (Websockets can be faked multiple ways.)
Also interesting to note is that MySpace does, in fact, segment by regions.

There are seperate MySpaces for each "region".

http://en.wikipedia.org/wiki/Myspace#International_sites
Why would being objective about someone elses achievements relative to your own discourage anybody? That's a motivation to try harder not to give up, after all, it shows you what is possible.

Just like hearing Jehudi Menuhin play should not cause you to burn your violin but to practice.

I'm not putting algorithms on a pedestal, I'm putting that particular example of all the algorithms available up as the one that I ran in to which taught me that I (still!) have a lot to learn.
> But lets not let that get in the way of a good outrage session.

I know it's an old argument and many people don't like to be reminded of it, but for some people, each an every one of these 'total platform rejections' represents an outrage.
The Charitable-Giving Divide
Yes, that's what I meant by short travel time. It would make it a lot harder for auto-correct to understand what you were trying to type.
I recently purchased some Crayola Window Crayons, if something pops into my head I will take a crayon and write it on my mirror, luckily my wardrobes have large mirros on them so got a lot of space to write with. I then leave it up there for a while, where I will always glance at it, then work it slowly out in my head, either remove it completely or add to the idea.
Colin, that is a well-written thesis I have read in a long time! Great work!
I think the critical missing component here is channel surfing from the couch. If I had a set-top box that allowed me to flip through a bunch of pre-made "channels" featuring cleverly grouped internet shows, I would be much more willing to watch internet based stuff. I think even simulating the effect of entering a program already in progress would make sense too. Traditionally, that has been the way we sample content on tv, and having to start fresh at the beginning of every new show is too time consuming.
Customer Development in a Big Company
Hah that sounds pretty cool. You started pretty young then?

I'm just in the process of building a program in ruby inspired by a comment in Learn to Program (Chris Pine). I want to make a interactive 'pet' (or plant, for that matter) with an ascii-art output. It's a big challenge for me, but I'm enjoying doing it!
There are lots of cases where the superior product fails completely and something inferior in most every way ends up becoming standard.

I don't understand why anyone would see this as something that can never happened. The market is made up of people and people are often going to be ignorant about the details of what they're buying. Often they choose purchase price above all even though total cost of ownership is a lot more expensive for the "cheap" product. Then you have to add market hype, incorrect perception, on and on.
Interesting observation is that what TFA calls the "cheaters", ie those who drive to the end of their lane before merging at the last minute, may actually be doing the right thing. See Tom Vanderbilt talk about it here http://www.vimeo.com/6779064.

If you're interested in this there's a nice longer interview with Tom at Streetfilms http://www.streetfilms.org/tom-vanderbilt-talks-traffic or an hour long Google talk.
Cool stuff, but characterizing NOX as "safe" with respect to LOX is crazy, IMHO. Witness the Scaled Composites fatal accident, doing a "cold flow" test.

There's a poor safety culture around nitrous because many people have used it at small scales, or in the racing community, without too many problems.

In part, there's a scaling issue here. If your pipe full of nitrous is less than some (unknown) critical diameter, then spontaneous decomposition that happens in the pipe gets quenched. As you scale things up ... oh, you hit your pipe with a hammer on a hot day. Oops, you're dead.

OTOH, people know LOX can be dangerous, so they treat it with respect. Except for that barbecue quy on Youtube.
What scares me is the other week I sent a Facebook message that should have been an email, largely because a different friend in the same social circle had sent me a Facebook message on a similar subject.

It's really hard to use Facebook without it taking total control of your social interaction.
I don't spend a lot of time typing out my programs but I do spend a log of time thinking them through. I have slight pain in my right wrist that comes and goes.

I narrowed it down to 2 causes:

1: My car has a manual transmission, and all that gear changing in my commute irritates the nerves.

2: Mousing. I spend a lot of time using the mouse to move all those damned windows around. I switched to using my left hand for the mouse. Now the only times my right wrist hurts are driving for extended periods in slow traffic, or using the touchpad on my laptop a lot (I still use my right hand by habit).

Switching to Dvorak might be the most obvious way to reduce RSI, but I don't think it is the one best thing you can do.

Another thing I'm doing to combat #2 above is trying to get as much of my programming done in Emacs as possible. I also have, "learn a decent window manager" on my list of things to do.

Once I can do all programming & code browsing/navigation in Emacs, and also use the keyboard to manage my windows... maybe Dvorak would help me.
Why Doesn't Amazon Sell Mobile Apps?
Facebook buys check-in service Hot Potato
And we should definitely take comments meant in jest as seriously as possible.
I read that one years ago thanks for the repost. I missed it on the submissions, they go by so fast now. I think we're too late to bring it up though, it would need quite a large number of upvotes to come back after dropping down this far.
Ah, ok - I misinterpreted the article.

Actually, the article seems to be wrong? It seems to imply that this shouldn't work:

Io> x := Object clone do( forward := 0; a := 1 )
==> Object_0x1003a2e90:
a = 1
forward = 0

Io> x a
==> 1
Io> x b
==> 0
Io> x b := 2
==> 2
Io> x b
==> 2

(paragraph: There are some things you should know about forward(). It's very powerful. Too powerful. [...])
Most people have 'likes' that years ago were groups that were silently transmuted into pages by the group owners, and since then silently turned into public 'likes' by Facebook.

In other words, it's a very poor trust network, because no one is using it that way. Most people 'like' a lot of stuff in a casual or even joking manner.

Unlike, recommend, and complain might be useful, but Facebook is an advertising platform, not a recommendation engine. I doubt they'll make that transition, because it would cut in on their revenue to let people clearly mark advertisers as unwanted.
It is indeed amazing, but the answer can be simpler. Without pain, there is no such thing as not pain. You need to feel what pain is, so that you know what it feels like to not have pain.

If we all were in some sort of utopia, or heaven, we would be dead bored. Life is good because we keep learning and in pain there is much learning which is different from the learning one acquires when not in pain. If there was only one state of being, there would not be many opportunities for growth. In life however there are many states of being between absolute pain and absolute not pain which gives one so much room for growth and learning and also variety for everyone to be unique in their own way.

Once one stops learning however, everything is familiar, and eventually, boring. Which is why the concept of heaven or hell is attractive at first, but only because we are not in heaven or hell. It is like buying those gorgeous trousers you wanted, or car, which eventually becomes just a pair of trousers or just a car. So too with heaven, if it existed, it would be great in the first days or week or month, but in a year you would get dead bored of it and want to move to America again :P
Heh, I didn't realise that it had such an effect, but this is the exact same game I play when caught up in a heavy traffic: the how-long-can-I-go-before-breaking game! ;-)

It could be related to driving a manual and being lazy, but it helps your concentration no end :)
Neat! They're pretty fun to make; I write them a lot to test a language's flexibility.
I would be interested as well, recently moved to the area. Do you know of any good hacker spaces?
That's true. I think the tricky part is providing segregation where it's needed. That is, the problem is in supporting systems and programs which don't conform to the standard. Process segregation and scheduling is one way of solving this problem. Another is to simply enforce the design uniformly across the entire system. IIRC Plan9 does this slightly, but a better example may be a system which uses e.g., Haskell as the base language and simply requires all programs (modules) to be interfaced with the system with public facing symbols. A 'grep' IO monad may be an interesting way of linking and segregation.
The problem with slowing down miles in front of a traffic jam is that those who normally gets of before that space now has to suffer too.

In addition, most people would cut you of if you drove slower than the maximum speed.
There was recently a series of posts about doing what you described for GTK/X:

http://audidude.com/?p=404

the result is in github:

http://github.com/chergert/uber-graph
Wyclef Jean ruled out of Haiti presidential election
Hmm, facebook mail is absolutely horrid. It's a combination of spam messages and just contact that I will never read. I have 1000+ unread messages.

I actually read a fb message in my normal email box and if it's something actually valuable, ill then respond on FB.
Wow... not surprising but certainly informative. Another case of a software company not bothering to realize that all authentication should be secure no matter if you are "checking in" or managing your Bank Account!
Am I over-engineering this? And the classic WTF?!
HP Makes $1.6 Billion Offer for 3PAR, Trumping Dell Bid
Actually, the fact that people in the middle lane are taking up his 'free' space helps the long term traffic.

The main cause of traffic wave is from someone stopping too abruptly, eg. if someone changes lane in tight traffic, he forces the other person to slow down too fast, which begins the wave.

If you allow more people to get in front of you in a smooth manner because you have given yourself a lot of distance, then there will be less 'cutting off' slow downs from the middle lane guys, which in turn causes less cutting offs in the right lane.

How much does it hurt over your entire commute to let even 100 cars in front of you? You'll be 500 meters later to your destination, what's that at 30kph...1 minute more? That's the worst case scenario. The normal case is you'll get there quicker because you've raised the average speed of the entire traffic wave.
Online games are a gold mine for design ideas
Cleveland "Smart Bins" Will Fine Non-Recyclers $100
Ternary search tries attempt to solve this problem (among others):

http://en.wikipedia.org/wiki/Ternary_search_tree

http://www.strchr.com/ternary_dags
One thing to remember, is that almost all of the unix utility programs were developed for computers that had FAR less horsepower than even a modest desktop PC of today. In the early days, literally every byte of RAM was precious as was every CPU instruction. So in that sense, necessity was the mother of invention, and developers were accustomed to working with that mindset.
Really? Searching for information is a more fundamental desire than interacting with friends?
> I actually read a fb message in my normal email box and if it's something actually valuable, ill then respond on FB

And that's the important bit, people seem to either check FB mail
directly or read it in there own email. Either way you've got more
chance of getting through to them soon if you send via Facebook... I
don't like it either though, it makes me rather uncofortable to have
more comunication going through FB.
Moby Dick is very short compared to a normal server logfile.
We need most of the things defined in this web book - http://www.statsoft.com/textbook.
jacquesm seems like an accomplished guy. I believe he created internet video feeds. I just bookmarked his HN comment feed along with tptacek because it's a great way to find the good technical threads on HN.

When jacquesm is in awe of some developer, I find it inspirational, to think: hey, he's a mortal, maybe I can be that good too one day.