skysight-inc/HackerNews huggingface dataset:
I don't remember where (maybe Coders At Work?) but I've read recommendations that API design be thought of as a language design. I certainly believe that thinking about programming language design would help refine the same "taste" that would result in high quality APIs. For instance, the kind of thoughtfulness that Christian Queinnec talks about in Lisp in Small Pieces, talking about type conversion functions like string->number,

"Personally, I don't like names formed like this x->y to indicate a
conversion because this order makes it difficult to understand
compositions: for example, (y->z (x->y ... )) is less straightforward
than (z<-y (y<-x ...)). In contrast x->y is much easier to read than
y<-x. You can see here one of the many difficulties that language
designers come up against." (footnote on p 5)

Also, I think it was in Coders At Work that Joshua Bloch said that APIs should be carefully designed because it's hard to change them, and also designed with public consumption in mind, because by the time your private, in-house API is made public, you can't change it. I think he mentions this repeatedly in Effective Java too.

My painful experience developing for the BlackBerry OS has really brought this point home to me, I think many parts of that API were not thought through, and were never meant to be public.
Happy to help out. FYI you can check out our eng blog at http://engineering.foursquare.com to see other posts about the technical details of foursquare.
Hoping this convinced someone at dropbox to write a three-line release-blocking test to ensure that you can't login with a wrong password... Crosses fingers
There's only one thing that consistently confuses people, it has nothing to do with any of the objections raised in the article, and it's being fixed to be less confusing.
The example shows that the author really doesn't understand what concurrency is for Erlang. A concurrent data structure in Java may be more convenient and have lower overhead and complexity for one OS process on one box. Erlang isn't designed for that sort of problem, but makes it very simple to distribute across many machines. Concurrency in Erlang is a result of the goals of distribution in the pursuit of fault tolerance rather than the endgame.
I don't know anything about those so I can't say. Not everything has a facile real-world analogy, and there may be long chains of dependent concepts to get through first.

Here's the thing, though: if you make an honest effort to explain something like that to a lay audience, you may fail. Or you may not. Or you'll give them a workable, but incomplete and strictly wrong idea. Either way you yourself will end up with a deeper understanding.

A huge part of "real" mathematics is finding isomorphisms. Teaching is more or less finding isomorphisms between new concepts and concepts that the student already has.
> we still have to write to the lowest common denominator.

You have to write to your customers. If your customers are the lowest common denominator I would advice rethinking your business plan.

People around here think it is a perfectly viable business plan to write to only iOS, which has 63 million users, so why isn't a viable business to write only to WebKit (Chrome has 160 million users alone)? And if you write to WebKit it's not much work to make it also work in Firefox and Opera.

The idea that we have to write to the lowest common denominator is the one aspect of web development that I wish would go away. You don't have to, you choose to.
First note:

"I work at Google on Chrome ... I was on Microsoft’s side in the Java lawsuit, the Internet Explorer lawsuit and several others."

I would expect Google to get a demand notice from Oracle to make the poster available for deposition in their suit :-)

Secondly, this bit:

"So imagine my disappointment when I start seeing the FUD from Microsoft about IE9 vs other browsers. Cherry picking benchmarks, cherry picking conformance tests and generally basically lying."

This has been a standard of tech marketing in some circles for so long, its astonishing that you are just now seeing it. From HP claiming memorex disk media would cause disk head erosion (these were flying heads) and invalidate your warranty, to Oracle lying about DB2 performance or the configurations, or storage vendors benchmarking on systems where they used thousands of disk drives so that none of them actually had to seek.

When there are only 'standards' Microsoft's browser team has to out execute other browser development teams. Market share declines suggest that this isn't a 'winning' strategy for them. When there are proprietary 'standards' for which other browser teams have incomplete information, browser dominance is assured. And as Microsoft is fond of saying, "Windows is 'open' because you get Windows based computers from any vendor."

Microsoft's goal is to make you look stupid, your goal should be to make what they think irrelevant. Complaining about their tactics just wastes time.
I'm not saying it makes for a good lawsuit or that Best Buy aren't dicks for pursuing it, but "God Squad" in a black-and-white car that's the same model as the Geek Squad car is sort of leaning on the brand at least.
Nice work. I can definitely see myself using this.
Yes and no.

It's true that algorithmic traders from Wall Street will be let down when they come to RTB trading and see how simple and undeveloped the ad ecosystem is compared to financial services. Arbitrage is still important but not the driving force for advertisers' success. Reach is more important: being able to show ads to more of the users in your targeting segments.

Google made the Admeld move for reach. It's partially a "publisher relationships" play, certainly not the technology, but mostly just the easiest way to get a giant new chunk of RTB volume.

I thought this blog post summed it up well: "It's the QPS, Stupid" http://jaysears.com/2011/06/10/google-admeld-the-need-for-di...
bear in mind, it's Gina Trapani writing this. She should know how to use an API.
> Well, this got a bunch of upvotes and a bunch of downvotes. Quite honestly, I'm not complaining about the scoring, but I'd like to understand the thinking here. Is it just "I want the shiny new API, stop saying these unpleasant things?"

It's that this article is from a Google employee, and so you're going to get the Google defenders coming out of the woodwork.
This reply makes the most sense in all of the threads here. We don't have enough info to make scientifically correct claims about Bitcoins but everyone keeps talking about it like it is figured out.
Can't you use regexp to differentiate urls from search terms and only send search terms?
It like all languages has pros and cons, and picking one thing about perl that isn't even unique to perl isn't a good example of how perl is so well thought out.

I believe you've misread the intent of the title. I read it as an answer to the question: "Why does Perl have arrays and hashes, even though the language I'm used to does not?" And, this article takes a decent stab at explaining why Perl has arrays and hashes. It does not, as far as I can tell, make any attempt to explain why this proves that Perl is superior to all other languages or is more thought-out than other languages (except perhaps those languages that don't have separate array and hash datatypes).

The way I read it, it's saying in a lot more words, "You'll like it once you get used to it."
Did My Brother Invent E-Mail With Tom Van Vleck? (Part Two)
There are many services around but I guess this could give you a hint

http://aws.amazon.com/cloudfront/#pricing
If anyone would like to see a nice example of how someone who actually knows Erlang would approach the same sort of problem that they OP tried and failed to examine in "the Erlang way" you would be well-advised to check out Jay Nelson' "Concurrent Caching" paper ( http://www.duomark.com/erlang/publications/acm2006.pdf). If one were to do the same thing today there would be a lot more third-party libraries to lean on for additional functionality within the solution-space and to enhance the feature set.
If he dies, he dies.

Screw it, I'm 37 and haven't come close to accomplishing the goals I have for myself... at this point in my life, I don't care if I have to work 168 hours a week, work until my eyeballs bleed, and sacrifice some superficial pleasures for a while... it's now or never, damnit. I'm going to hustle my ass off until I either achieve my goals, die trying, or collapse into a dwibbering, drooling heap who lies in the floor muttering about the giant pink apricot tree aliens who are zapping my brain through my cable box.

I understand that this approach isn't for everyone, and more power to everybody who chooses their own path... but for some of us, the sacrifice can be justified (at the moment, anyway).
Do people really store confidential business data like that in dropbox?
Your second paragraph is interesting. However, the problem I see is that some tools are better based upon your skill. When you have no skill, Emacs is almost useless. When you have great skill, Emacs is unimaginably useful. This is true for many traditional Unix tools.
How to Promote Visionary Thinking
Exactly! I told Jerry we should use "One Step Closer" because Linkin Park makes everything better. :) But honestly, finding the right music and paying for it can be very time and money consuming, so we went with something that we hoped would entertain the senses without being off-putting. But do take Pegby for a spin!
So emotion sways you rather than fact-based rationality, gotcha.
I like the pomodoro technique, obviously, because I created an online tool for it, http://www.pomodorohelper.com.

The technique has one major advantage over GTD and other systems (and I tried them all...), it is damn simple. You don't even need a tool, just a kitchen timer is enough for the start.
The only thing I don't like to do in the standard 25 minutes pomodoro mode is programming. You need the tunnel, and a deep tunnel experience can't be achieved if you are interrupted every 25 minutes. My tip: Try 25 minutes first for two weeks, if you can't get into the tunnel, try 50 minutes, if that doesn't work either, try 1 hour 10 minutes. I found this to be the maximum time I can work fully concentrated. And of course, don't even think about checking your mails, reading HN or watching youtube while in a pomodoro.
What it does internally isn't much compensation for the fact that the code I write becomes harder to work with. :(
My payment terms are basically, if PocketLoot is useful, pay me what ever you think is valuable. On top of that if it isn't worth paying for, you just need to send me feedback in lieu of payment.

In this way, I'm trading one valuable thing for another. Also, my hypothesis is that customers will be more likely to give me feedback if they feel it is a payment for something.

I let them pay whatever because it's the easiest/cheapest way to see what cost the market will bare.
Phil Harrison: "Apple will be the games industry"
And in practice, it's much harder than it seems to add resources.

Learn to remove/simplify requirements. That's the best tip I can give you.
Maybe he wanted to give credit to the guy that posted this on his blog and so Straubiz found out about it?
It appears that LulzSec isn't directly responsible for this. Although, since they called for the hacking of every government agency in the world with their "anti-sec" call to arms it's a bit disengeneous for them to rock back on their heels in shock and confusion.
You made my morning, good sir. I could not stop laughing. You have brought mirth and cheer to our workplace.
Thanks for clarifying. Open street map is a cool project.
one page: http://www.next-gen.biz/features/phil-harrison-future?page=s...
You think that's it? OK then, let me state for the record that I'm not on Microsoft's or Google's or anyone else's side in this matter. It's not like Microsoft is making the web safe for us (ActiveX, anyone?). I was making a purely technical point. I have tons of my info online or on my computer, and I'm worried about it.
Agreed. We are planning on having additional demo videos, or more so, just basic functionality videos. Really need to get those done Jerry! And we are working on getting a public demo up so anyone can go in and try it immediately. Thanks for the comment.
> I have a feeling the chrome developers have a better idea about how to sandbox a browser than John Carmack does, as awesome as he is, this is just arguing to authority when there is a long list of points that OP made that havent been refuted.

Carmack is probably more familiar with hardware drivers and 3D APIs than anyone working on Chrome. Plenty of the points made have been refuted in the discussion here.
Thmbs Up Mozilla Team !!
Numbers or strings wasn't the point really. You can do 'order by 1' or 'order by 2' in SQL to order by the first or second selected col etc, but if you used used the number passed directly from the user in the SQL statement, you are open to SQL injection. Feel free to use the number in a case statement to select the order by string to concat into your SQL however.
LinkedIn announces Intern Hack Day 2011
I have to say I was skeptical of EffectCheck until I saw this post. While it's certainly opportunistic in taking advantage of the Dropbox PR situation, it's also a great case study that shows the value of their technology.
aren't those two things the same?
The lack of the One True Concurrency Model is because different models are faster or simpler for solving certain problems, not because some models are incapable of being used to solve some problems.
http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Se...
Show HN: My project PocketLoot (direct link)
It's an attempt to have it both ways, appealing to authority without making the authority publicly responsible for the statements.
I tried UbuntuOne for the first time yesterday, but was awfully slow especially compared to Dropbox
Great post guys, also great to meet you in person at IRCE. We collected a fair amount of data as well (not much as you guys)-- but we'll try to get another IRCE post out there :-)
And most handsets can be rooted/jailbroken to disable said features anyway.
'Jackass' star Ryan Dunn dies in fiery Pa. crash
For the first time as a developer i used firebug today and avoided alerts in my js. Thank you firefox :-).
Right because you'd only ever want to find things that were notable.
> This comment will be downvoted to oblivion without discussion.

If you can see the future, I recommend playing the lottery. If you're a snarky ass, I recommend not commenting.

I've been working with PHP for five+ years now, and only started working with Python in the last year or so. You're right - working with PHP's arrayhash isn't too terribly complicated, but having actual arrays and hashes as different types is super convenient. At least once a day, I think fondly of Python and wish I could use it - list comprehensions and negative indices could eliminate the need for half of PHP's array functions and make for cleaner and more readable code.
> array offsets are a matter of convention. Lua chooses 1 as the first element of an array instead of 0. But that is just convention. Your code could use 0 or -100.

Not sure what your point is here. Lua arrays start at 1. If you disobey this rule, your table isn't really an array and the length operator will be undefined starting in Lua 5.2.

Sure you could disobey this rule and create an array that starts at -100. You can do the same in C:

// Array whose indices start at -100:
char *funky_array = (char*)malloc(n * sizeof(char)) + 100;

> It's a cheap hack to conflate everything into one table data structure.

You say "cheap hack" I say "brilliant optimization." Show me an equally-capable language that has a <100kb interpreter and performs as well as Lua. Lua fulfills its design goals brilliantly.
Next time, tell your boss it will be done in 3 months, tell your developers it needs to be done in 6 weeks.

Why do you feel you need to communicate how critical timelines are to your developers? In what way are they critical to them?

For general management: hire the best, then set a goal, then set them loose.
I'm really confused. next billion what?

I swear i understand the words i read on the internet less and less these days.
Perhaps then people would consider rioting. Probably not, seeing as the critical aspect the average person is essentially neutralised if they have been appeased by gadgets and cheap entertainment.
How? Do you start all your URLs with "www"? I know I don't, so a regex couldn't possibly know until I typed either a space or a dot.

On the other hand, if you could make this work, I'd love to see it.
Character Encoding Tricks for Vim
I think it's very possible that Apple could become the casual games industry. I don't think they will have as big of an impact on the hardcore gaming market though.
The name, directions, and phone number are all images. Can't copy and paste them into an email.
With all due respect to you as a human being, Sir, I have sincere urge to punch you in the face. Please, tell me you're trolling.
>"Mt Gox is run in such amateurish way, it's appalling."

I blame hubris. Bitcoin is an enterprise where tech-focused people think they have a better (or at least equivalent) solution than what decades or centuries of economics and finance or whatever have come up with. An over-focus on its legitimate advantages and their own abilities ends up blinding people like this to the lessons of experience from the old model and from domain experts. In a very real sense, because they're convinced it's better and that they know what they need to know from economics and finance and banking, they're going to keep making the mistakes that the people they're replacing solved long ago.
> Chrome is absolutely unusable for the amount of windows I have open

Odd, that's the exact reason I switched from FF to Chrome. I generally have about 20-40 tabs open, and FF is terrible for me with more than just a few open, while Chrome flies along gracefully.

I wonder what the cause for the widely varying performance experiences is?
Thank you for respecting your user's privacy. This is one of the many reasons I use Firefox over Chrome.
What is it that they've done that makes them hit a chord with you?

As an American, I have a demoralizing sense that the country has given up on doing great things and, more specifically, turned its back on underdogs. I could make a more detailed case, starting with my view of human nature and extending to the latest Supreme Court decisions and the drivel I see nosing around Twitter and Facebook, but that would be sort of beside the point here.

Why gamers and book forum readers? I don't have anything against them personally and I agree there are probably more suitable targets. At the same time, obsessive game-players and score-keeping book-readers offer an obvious illustration for the kind of obliviousness and escapism that I can find symptomatic of larger social problems.

I suspect Lulzsec owes part of its style to The Joker from the last Batman movie. Remember that scene when the Joker lights the pile of money on fire? I agree Anonymous is a more constructive example of civil disobedience. But Lulzsec, in its aimlessness, may be the more potent symbol. I see it as a form of satire as much as anything.

Would my attitude would change if, say, they deleted my gmail account? Probably. But then maybe there would be something constructive in that, too.
Javascript does not conflate arrays and hashes.

Technically Javascript does not have hashes at all, and you use bare objects instead, the confusion between objects and Array comes from PHP reprobates.

Lua is an other language with no arrays, and where hashes are used in stead. Additional entrants in the category are ~~Tcl~~ (got corrected, Tcl's associative arrays are called "arrays" but it has a separate "list" type for indexed sequences) and Awk.
Apple has a strong tradition of making the best possible user experience. Imagine the following scenario:

1. Sony Ericsson invents the camera-disabling technology instead of Apple. Pressure from Sony Pictures results in its implementation in a new SE Android phone.

2. The MPAA catches on and begins requiring theaters to install the technology while lobbying for laws that require it to be implemented on phones and cameras sold in the US.

3. Other mobile manufacturers start implementing the technology just in case the MPAA's lobbying succeeds, and to maintain relationships with content providers.

4. Apple, despite really not wanting to damage the user experience of its phones, is forced to implement the technology as well, as the industry has mostly adpoted it and Apple's content partners are using this as leverage in negotiating iTunes deals.

And so here we have the alternative, where Apple has foreseen this and patented the technology to keep the industry from adopting it and forcing Apple to make a less-enjoyable product.
Given Steve Jobs's disdain for games, it'd be funny if he conquered the market. Mobile is certainly capturing the handheld and casual market. I do wonder if it'll ever do something that overtakes or renders obsolete the console market, though. Maybe if Apple TV opens some new doors and has ludicrous penetration.
Mirror of text: http://viewtext.org/article?url=http://games.greggman.com/ga...
IContact Hacked?
Perl 5 has $[ which lets you set the base for every array. eg. $[ = 1; would cause all arrays to be 1-based. Thankfully they've now deprecated this misfeature ...

http://perldoc.perl.org/perlvar.html#Deprecated-and-removed-...
The N9 and Meego will still exist in a limited form. Symbian is whats getting replaced by WP7. They've been giving it a change, Meego development has just been extremely late and riddled with bugs earlier when the decision was made.
> I don't think that allowing you to iterate over a hash as if it were an array is all that unforgivable

it's not even doable in JavaScript: bare objects (~hashes) are iterated with for...in, using that with arrays gives inconsistent results: the array's keys will be iterated as if they were (string) properties, there are no guarantees they'll be iterated in numerical order, and any enumerable property added to the array itself or any of its ancestors will be iterated over as well.

Friends don't let friends iterate over arrays with for...in.
Yes, I would love to see a built-in feature for designating a folder in Dropbox as "super private", e.g. encryption happens on the client side and there is no web interface or ability to share subfolders.

Until that happens, I'm looking for a non-Dropbox alternative for syncing files I would prefer remained private.
I found a way to do this in XP. (Vista or 7 should be similar)

1. Open "Documents and Settings\<user name>\Application Data\Mozilla\Firefox\Profiles\<profile>\extensions

2. Find the folder for the unsupported extension, there should be a file called install.rdf inside.

3. Open the file and change the <em:maxVersion> to 5.*.

Might have missed something, but that did the trick for me.
I've read Estonia has a pretty simple tax system.
when you are moving from Java, everything looks better :) which is probably how you could tlds this post
> JavaScript does it

No, javascript does not.
I meant anything
I struggled to work out what your project does, I think a better screenshot could help. The text in the screen shot looks like it's telling me what my daily budget it is which if tat's what the app is about then it sounds quite good. Maybe if that stood out more? Also, I'd assumed it was a phone app, am I wrong? If so and it is about tracking my expenditure during the day then I think a phone app would be preferrable.

Best of luck.
While some of these metrics are interesting, I completely disagree with the conclusion of this article. Ferdowski's word choice is not the issue here. The issue is how he went about delivering the news. Had he promptly emailed his userbase immediately after fixing the bug, I think there would have been significantly less backlash.
1. Patent something that appeals to government and other control freaks.

2. Watch the technology become mandatory by law.

3. Profit.
tltd