skysight-inc/HackerNews huggingface dataset:
There are many times when the objects really do have both data and behavior -- glancing at the real code that was the basis of my example, I see that the LoggingDatabaseConnection has real state (the place to log to) and the pool flushing one has real state (keeps track of open cursors so they can be auto-closed when it is returned to the pool).

Of course, you also could be (and I was) using a deficient language like Java which doesn't HAVE any way to use a function or lambda. But I agree with you: a simple lambda a better solution where it is available.

And this kind of use is quite far from what Alan Kay intended when he designed SmallTalk. The original idea was that the objects would correspond to real-world entities. I would contend that since then OOP has evolved, and now the key idea of an object is the pairing of data and methods. Choosing the abstractions which will make the code most readable is one of the great challenges of programming well, and I find that just going for the nouns every time is NOT the best answer.
Thank you for such a candid post! I know how you feel.

I'm only a little farther along in my journey than you; at 26, I finally feel confident in my abilities, but am still humbled by how much I don't know. Last month I spent hours poring over Linux network programming resources so I could implement a performant, scalable, thread-safe game server [1]. After weeks, I finally got it working--replete with tests, sane coding practices and other Good Things--and it felt so good.

Like you said: "All hard stuff that I'll never need to know in order to build a web store site..." I didn't need to reinvent the wheel--there are tons of pre-existing solutions and frameworks out there that I could pick up and use to hit the ground running. But, like most people on this site, you and I were bit by the same bug: the desire to understand how and why it works.

For me, the hard part isn't dedication to learning or writing dime-a-dozen web apps to pay the bills. The hard part is finding the right balance. I think that's probably something I'll keep learning more about until I finally kick the bucket.

If I can presumptuously offer advice, from barely a half-decade down the line: Don't give up, and learn to see the intimidation for what it is: thrill! Do as the sagacious Derek Sivers commands: whatever scares you or excites you, go do it [2]. If you come upon something that seems insurmountably complex; it could be anything: compilers, emulators, algorithms, low-level network programming... do it. You don't have to learn it in a day, a month, or even a decade, but never fool yourself into believing that it's too hard. It isn't. Take breaks to keep yourself sharp, but never give up.

[1] - http://stackoverflow.com/questions/6849239/how-should-i-arch...

[2] - http://sivers.org/scares-excites-do-it
Slinky drop physics
Nice, though I think static visualizations illustrate the examples more quickly and are easier to compare:

http://corte.si/posts/code/visualisingsorting/index.html

I also love Robert Sedgewick's technique of using angle to encode array value. Animated and static examples here:

http://bl.ocks.org/1243323
http://mbostock.github.com/protovis/ex/sort.html
Well, currently the malware itself is not detected. OK, some anti-virus solutions detect the piece of malware as suspicious or as a packed executable (which is suspicious of course). But those detections are just based on the inner working of the executable or how it behaves. It's not being detected by anti-virus definitions, that will be a matter of time before anti-virus providers will add definitions for this piece of malware.
Did you update all your Java installations – client and server – to at least Java 6 update 26 in June 2011?

There were a dozen "unauthorized Operating System takeover including arbitrary code execution" bugs fixed at that time, some exploitable via untrusted applets, others via tricking server installs to submit certain data to standard APIs:

http://www.oracle.com/technetwork/topics/security/javacpujun...
I agree completely. Is this service farmed out to Mechanical Turk with the supposition that more eye is equal to higher quality? Or do you legitimately have qualified individuals reviewing these submissions?
1. Read code on github.

2. Write lots of code.

3. Repeat steps 1 & 2.

Happy coding!
Blackhatx - A Pure Blackhat SEO Network
These lists are done using a selection algorithm. For instance Sort-Key-Top: http://cpansearch.perl.org/src/SALVA/Sort-Key-Top-0.06/READM...
Testing Atomicity of Composed Concurrent Operations
Very neat, but here's a couple of additions I'd like to see:

1. Allow for the array to contain values outside of the range of [1..length]. Ideally, allow for duplicate values as well. Since you control the swap and insert operations, you can maintain two separate sets, one of the actual numbers, and one of the "normalized" values that you display as your graph.

2. Give us an operation to highlight a set of lines and have the highlights persist. I wanted to take mayoff's radix-exchange sort and tweak it to highlight the "working set" that it's currently sorting, but there's no way to do that. I'm thinking here that we just need one function VA.persistHighlight() which takes start and end indices and highlights them, and persists those highlights until a new call to VA.persistHighlight(). The "transient" highlights would be layered on top of the persistent one.
Sleep sort:

pos = [0 ... VA.length]
rpos = [0 ... VA.length]

swap = (i, j) ->
VA.swap i, j
tmp = rpos[j]; rpos[j] = rpos[i]; rpos[i] = tmp
pos[rpos[i]] = i; pos[rpos[j]] = j

j = 0

for i in [0 ... VA.length]
v = VA.get(i)
do (v, i) ->
setTimeout ->
# Move the element that was originally in position i to position j
swap pos[i], j++
VA.play()
, 100 * v
Buy List of Builders Australia
Merge sort w/o using insert (and probably with some bugs...):

tmp = VA.length

merge = (start1, start2, end2) ->
out = start1
end1 = start2 - 1
for x in [tmp+out .. tmp+end2]
if start1 <= end1 && start2 <= end2
if VA.lt(start1, start2)
VA.swap(start1, x)
++start1
else
VA.swap(start2, x)
++start2
else if start1 <= end1
VA.swap(start1, x)
++start1
else
VA.swap(start2, x)
++start2
for x in [out..end2]
VA.swap(x, tmp+x)

mergesort = (left, right) ->
if (right - left) == 1
if VA.gt(left, right)
VA.swap(left, right)
else if (right - left) == 0
/* do nothing */
else
split = Math.floor((right-left)/2) + left;
mergesort(left, split - 1)
mergesort(split, right)
merge(left, split, right)

mergesort(0, VA.length - 1)
Utility companies need to block traffic in order to service the public infrastructure. Film studios need to block traffic because traditionally it's been the only way to get street shots, especially when large film crews and big name actors are involved. Both are special cases that require special consideration.

What is the special needs use case for a shoe manufacturer?
Mysql.com has nowhere near 12m daily uniques.
Were you guys asleep when iPad launched to almost identical criticism, then sold 30 million units?

The game is not about specs anymore. It's about experience.

Amazon has banked a lot of credibility with regard to making great portable hardware and streamlining the content consumption experience. You're seeing this the wrong way around.

People aren't going to buy this because they want a tablet. You and a few hundred thousand other people (technophiles) are the only ones who care about "tablets" that aren't the iPad.

People are going to buy this because they love reading books and love watching movies. And oh, what a convenient and neat way to accomplish that task! What a great gift! etc.

It's going to feel good to use. If that didn't matter to Amazon, it would be running the latest OS they could slap on it, it'd have a spec sheet a mile long, and it would cost a nose more than the iPad.

But that's not their game. They're coming at it from the opposite direction.

And fucking finally – Apple will have a competitor in this space who isn't a complete joke. I'm very, very excited to watch this unfold.
Popular posters
Can there please, please, please be a way to disable the chat sound if I am not on the tab. I understand the experience is supposed to be social, but I may jump back and forth between tabs or not be in that tab at all, yet I keep hearing the swooshing noise. It's unlistenable.
Popular backpacks
The problem with Google is that Google is pro-web as long as the web is pro-Google.

Take Google+ for instance - they could have at least attempted a decentralized social network, but they didn't. Instead they are requiring real names, because apparently pseudonyms are bad for Google ... and yet being anonymous is something which the web (in general) not only allows, but also encourages.

Yes, you can choose not to use Google+ or Facebook, but for how long will this freedom last when absolutely everybody will be on one of these social networks? How long will it last until email will not be the primary means of communicating at work with your customers or colleagues?

It's a pity that the millions of users with accounts on Facebook haven't discovered the advantages of opening up an account on Wordpress.com or similar services, with their own domain name ; or the advantages of using Google Reader to follow your acquaintances.
I'm not sure, but if he said something like that he probably meant AdWords.

You can see their Q4 2010 earnings statement at http://investor.google.com/earnings/2010/Q4_google_earnings.... . Here is the relevant portion for AdSense:

"Google Network Revenues - Google's partner sites generated revenues, through AdSense programs, of $2.50 billion, or 30% of total revenues, in the fourth quarter of 2010. This represents a 22% increase from fourth quarter 2009 network revenues of $2.04 billion."

If publishers are paid 68%, this means Google's share is roughly $650mill for that quarter.
Usability Interview: Jake Rocheleau
CSS-only lightbox
There are a few ways to add folders:

- Drag a folder onto the window from Finder/Explorer

- File/Open Folder to open a folder in a new window

- Project/Add Folder to Project to add an additional folder to the current window

- Via the command line
Stypi founders have a plan to reinvent Google Wave
I started on a purely mechanical, but then, as the course progressed, changed to an electro-mechanical one.
> And if not optimized "prematurely" (ie. written efficiently from the start), then after-the-fact optimization, if happens at all, would shave only a fraction out of the "forever" - thus it frequently doesn't happen at all because of such low projected ROI.

My personal experience completely contradicts what you're saying.

Despite the cushy comforts of server-side scripting languages, I have experienced the occasional performance or scalability problem, and in every single case, I wrote inefficient code on the first pass, discovered unacceptable slowness at a later date, then found the bottleneck and optimized it.

Perhaps I am a brilliant super-coder (unlikely), but I have never ignored a performance problem because I didn't think I could improve it enough to be worth the effort.
Right you are, thanks.
Rather, I think his point aligned with points Jonathan Blow makes in this presentation: http://the-witness.net/news/2011/06/how-to-program-independe...

One of his points - with which he uses an id game as an example - is that sometimes the naive implementation is the best implementation. His example has to do with loading levels at startup. The written code was, from an algorithmic perspective, inefficient. It was written in such a way to optimize for developer time. His point was that in this circumstance, that was the correct thing to do because this was not a performance critical part of the code, and naive implementations are easier to maintain.
Given a choice, 46% of Citrix employees picked Macs
very cool - much cheaper than sliderocket!
really, now, what is the point to all this?
jordan actually could have been a great baseball player. there is a documentary about it and people who were initially very skeptical eventually changed their mind. he would have gone to the majors, but there was a strike. this example is more in the camp of hire great people if you can.
Will Robots Steal Your Job?
Crowdfunding and US competitiveness
ClojureScript IS Clojure. Although support isn't totally complete yet, they're the same language. There is no 'Clojure proper' and 'ClojureScript'.
The list price is actually $100 for a block of steel:
http://shop.cwandt.com/
You can reach me at vidar@getGauss.com http://twitter.com/blacktar http://facebook.com/Blacktar Skype: blacktar gtalk: blacktar iPhone: +4915140133149 Landline DE: +49 (0) 221 3023 9530 Landline US: +1 (408) 533-8042
Algorithms That Govern Our Lives
Need startup legal advice? Talk live to a startup lawyer.
e.g. having a source of neutrinos 1 km away from the receiver, and see if they still detect it 60 ms "before" (perhaps even before they fired them)

Is the cost/technology for doing this kind of quick check prohibitive?

I was wondering if the neutrino detector does have to be directed precisely towards cern or it's omnidirectional. Does anyone know?
Seems like a better title would be "The Cost Of A Long Unhealthy Life". Americans are growing more and more unhealthy. While we have the health care available to extend our lives, it's costing us over the long term. On the individual level, if you eat decent portions and exercise throughout your life, I'm guessing your costs will be much lower.
Tags, as we know them, are flawed
Show HN: Text yourself a question everyday, graph the answers over time
I Am Back
Apple Denied Trademark for Multi-Touch
People invest in hot properties like Tumblr for the same reason people will pay a significant premium for real estate on busy intersections: they have access to tons of "eyeballs" (I know, I know, hackneyed term) and it's a lot easier to figure out how to make $85 million with 10 billion page views then it is to start with $85 million and 0 page views.
How to feel miserable as an entrepreneur.
I never understood why people insist on intentionally crippled specs before jumping on the experience is everything bandwagon.

Amazon has good specs for the hardware there - it would not have altered their proposition drastically to ship modern OS on it along with support for Email client and many other experience enhancing things that it comes with - UI acceleration, more app compatibility etc. It's nearly free for them. At $300 price point it behooves them to make it a full tablet along with a reader and media player. Without that it's just not a good value in my mind.
Is it just me, or is a monochrome only chart a really bad way to present this information? It requires effort to decode.
No doubt, but that doesn't explain why all these sites have suddenly become vulnerable. Unless someone with unusual hacking capabilities only started trying recently.
Except for the massive speed difference that comes from the JIT which arrived in 2.2
Based on 20 years of experience, lack of fluency in algorithms _is_ a surefire indicator of bad architecture skills. Yes, it gives a few false positives, but the amount of false negatives is pretty much 0.

And since actually getting a new person on-board is an expensive process, you aim for criteria that are a bit too stringent, if you can afford it.

There's also the issue that making a bad algorithmic decision at the center of the problem turns scaling into an insanely hard problem, sometimes. It's not so much about learning about it when you need it, but about avoiding issues in the first place.

True, there are many places where it truly doesn't matter - but if scaling/performance matter for your company, you don't want to head down the garden path because your developers didn't know better.

Not knowing algorithms won't exclude you from all jobs (or even many of them), but there are some jobs where it _will_ bite you. It's your choice if you want to go for those jobs. Personally, I think they are where the cool stuff is happening, but YMMV.
Ask HN: "Lean Startup" by Eric Ries vs. "Four Steps..." by Steven Blank?
Have any of you read both, Four Steps and Lean Startup?

I just ordered Lean Startup yesterday, and someone lent me their Four Steps last week. I was wondering if any of you guys have read them both and think that if I read Lean Startup, then reading Four Steps would be redundant?

Thanks!
They clarified their responsible disclosure policy here in 2010:

http://googleonlinesecurity.blogspot.com/2010/07/rebooting-r...

(tl;dr: 60 days for the vendor to it fix it).

Would like to know if they followed it in this case.
1800GetThin
To learn more information about LAP-BAND® and to find out if it may be able to help you with your weight loss goals, visit our website http://www.800getthin.info.
Live startup legal advice
I'm testing a new concept that lets startup founders get live legal advice over skype. The lawyers on the site are real startup and business lawyers in California and are offering free consultations and discounted rates to startups.

Give it a try at www.lawdingo.com, and then let me know your thoughts here!
Your first sentence is right as far as it goes.

I agree with you that G+ would be better decentralized, and based on open standards. But I think they tried that with Buzz and Wave, both catastrophic failures. And I think the strategy this time is to try to nail down the user experience first. I think the real names policy is a part of that, too (though I agree, too, that this is a bad policy).[0]

Could all be wishful thinking, I suppose.

[0]: Some weak evidence for this being the strategy: http://news.ycombinator.com/item?id=3019052
The Real Problem With College Admissions: It's Not the Rankings
The thing is, it's very easy to end up using a bad algorithm without noticing. If you're doing a linear search over a collection of n elements, fine, but if you end up having to do it n-ish times, suddenly you're up to O(n^2), and if n is ever a few million in reality, your app will enter a loop that's practically infinite. Meanwhile, sorting them would be O(n log2 n) and intersecting two sorted lists is O(n), and n hash table searches is only O(n) if you have enough memory to avoid collisions.
See: Mixins, Traits, Apects. Whatever your language wants to call them, they're fundamentally the same, and solve the issue you're raising.
Don't Mention The E Word (Or TL Or G)
>Just remember, the CIOs have the power to ban technologies that sneak out through the back door. Alienate them at your own peril!

I agree about the general idea of not throwing stones into the sky. They have a tendency to fall back down on one's nose.

However banning tools that were 'snuck in through the back door' because of their efficiency and because nobody had the heart to follow the actual procedure to get them through the front door strikes me as profoundly childish. Especially if it is done as some sort of vengeance, or 'just because we can'. In fact about just as childish as throwing stones into the sky.

I'm being a bit idealistic here. There will always be turf wars in BigCos. But hey if some people switched from trying to look like the best and brightest to getting stuff done instead, i'd be all for it.
Sales Jobs are Still Flourishing
I agree. To extend the metaphor of the article a little more, we stop worrying about our moms cleaning our rooms when we move out, buy our own furnitures and pay our own rent. The web equivalent would be setting up/coding your own cloud server and paying for the servers.

I don't think that's a realistic proposition for many. I wonder what the author think is the ideal web. Is it where everything stays static? Look at the v1 of Twitter or Facebook. They have changed dramatically since then but I believe they changed for the better.
I built out one of these at work, and while it is indeed pretty neat, it still has a lot of pain points and complexity -- at least in our case -- that could be ameliorated by and is better suited for Puppet/Chef.
ack is a really great search tool in general (and one that I use constantly now that I have "discovered" it)... I had no idea there was an integration of it into TM. I'll def. be taking a look at this, thanks!
How Does Bluetooth Work (13+)
Cool! Is calling necessary? I'd rather just send them a message over Skype.
They out-sourced the design to Quanta, and it's similar to the Playbook. What does this mean? It means RIM must've outsourced the design for the Playbook to Quanta, too, otherwise they'd be all over Amazon with a lawsuit when they launch. That's just sad. RIM is in a worse position in the tech world than we think it is.

Regarding the Kindle Fire, I just hope it's not as heavy and thick as a Playbook. It should be more like the Galaxy Tab 7.7 which is very light (~330 grams) and very thin (7.9 mm)
definitely have the page start with an example.
Scientific reporting also benefits greatly from use of the passive voice.
That's not really what the article is about, but basically, he stops emailing people who respond with OK.
Think conflict of interest. What if GitHub was bought be a competitor or other hostile entity? Now, can you guarantee they never will be?
I like the ability to synch Metro settings between machines.

Shame they're not making that possibility available to non-Metro apps.
Ahh, thanks. I just typed "six sigma" into google and pulled the number off the wikipedia page about that business practice. Should have gone with Mathematica.
But the ability to own my own music isn't going away because I'm paying for Spotify. If I stop, then I'm in the same position that I was before. I've not got music any more, but I'm not paying any more. If I decide to start paying for Grooveshark instead, then I've not lost anything.

Storage isn't expensive, but managing files is a pain. Especially if you have to manage it across multiple devices. I just want to listen to some Nujabes, do I really have to care where it's saved, or whether I'm on my work PC, my laptop, or the media center downstairs? And that's before you get into the pain of syncing stuff onto your phone...

I pay for the convenience of not having to pirate.

(I picked this example because it is both what I am listening to now, and for the irony of it being unavailable on Spotify.)
Those were off the top of my head from my last shopping trip at Albertsons. I'm sure I was wrong about the avocados — the $5 is for a pack of three avocados (though I do think that people would not value even five avocados the same way they would five hamburgers). I'm going again tonight, so I will check if I misremembered the other prices as well, but they don't sound wrong.
I agree with jchonphoenix and groby_b. I'm sure there are a lot of great self-taught genius who don't have the formal training but does a much better job than most, but there are orders of magnitude more in the camp of "half-taught" mediocre programmers, with shiny formal training, that can easily be filtered out using this approach.
Buying Real Estate in College
It wasn't sold for $3K, as far as I can tell. The screenshot linked to reads "Don't bother calling if you don't have $3K". Now that might mean asking price or it might mean an order of magnitude, but it certainly seems like the domain was positioned as on auction.
If you're struggling with algorithms I'd suggest reading the book Programming Pearls (2nd edition). It's a little dated but not enough to matter too much. The big thing it helps with is what I think of as "algorithmic thinking". The various chapters go through different approaches to solving problems and help you get a handle on why a particular approach might be O(n^2) versus O(logn) and why that's important. It's very helpful stuff.
Bogo

shuffle = ->
for x in [0..VA.length]
VA.swap x, Math.floor(Math.random()*VA.length)

sort = ->
VA.play()
if !checkSorted()
shuffle()
setTimeout(sort, 10)

checkSorted = ->
for x in [0..VA.length-1]
if VA.gte(x, x+1)
return false
return true

sort()
I'm sure you're already doing this but you can massively improve the performance of TextMate's search by filtering out unnecessary files like log files - they really will slow it down