skysight-inc/HackerNews huggingface dataset:
I switched from computer science to English literature halfway through undergrad, mostly due to my CS department being subpar (now dead, I believe) and my math being too weak. I worked at a few startups as a designer and programmer, and am entering an English PhD program in fall.

Financially, I probably would have been much better sticking with a science-based discipline, but, I wouldn't have been as happy in the program. Now I pick up odd gigs writing code to supplement grad school stipends to do what I really want.
I haven't tried Ramaze, but from a cursory look I find the whole `map ...` thing harder to follow than Happy's route method. It also looks like Ramaze makes you write out more things explicitly, like:

Ramaze.start(:root => Ramaze.options.roots, :started => true)

or

Ramaze.options.roots = [__DIR__]
require __DIR__('controller/tutorial')

Also, the URL to method mapping is done with yet another separate method 'trait'? Ramaze doesn't really jive with me right now. I'll have a closer look at it over the weekend.
Personally, I think DHH is following YAGNI as a guideline correctly in this case.

As long as the code is easy to refactor - and in this case, it's a piece of cake - I think you should err on the side of YAGNI.
> Continuing a long string of similar cases, the Supreme Court will review a New York federal court decision that decided, in short, that the first-sale doctrine does not apply to any copyrighted product manufactured abroad.

I can _kinda_ understand manufacturers being upset about gray imports of products that they specifically don't want sold in the local market, and wont make available themselves.

(eg, "You're selling our widget that was designed to work on 110v to people who use 240v, and we're going to look bad when it blows up. Stop selling it!")

But using legal loopholes and trickery to prevent someone (re)selling the exact same thing you're selling in the same market? That doesn't sound right.
Here's a heuristic: Verbs don't belong in class names. Maybe in module names. But even then.

Any good counterexamples?
I also wonder how many people have read it at all, let alone the entire thing. It would seem evident that when you have as many people online as we do, and a rather large chunk finds LOLcats and the like really funny, than studying the phenomenon shouldn't be this off putting to so many people.
Some questions are in response to other questions - some indentation to show this might be handy.
He also brought up http://www.naildrivin5.com/blog/2012/06/10/single-responsibi... - and I had a hard figuring out if it was meant as satire or not.
Postmates Rolls Out Dynamic Pricing
Could SVG become widely used for animated decorations? Like you always see in games and television news programs?
How LinkedIn betrayed a 5-man startup
First change I would suggest is to have some kind of avatar representing the player on the screen. This allows players to identify more strongly with the game.

Second, reward and punish. Add some kind of consequence, perhaps even a game-over state. You can make this easy to avoid but it requires constant attention. Reward. Coins are your "health" not exactly a reward since you need them to continue playing, but add some random rewards (this is primarily where the addiction mechanic comes from). Big, rare rewards make games addicting.

Going further, you might want to add a set-collecting mechanic. Try playing "Ticket to Ride" and see if you could adapt some of those mechanics to your game.

Finally, the interface is not very game-like. It doesn't look like a game.
The only experience I have to offer is at the bottom rung, the smallest possible servers. The one's you use for sandboxes or low-traffic personal sites. I made my decision a week ago, and landed on Rackspace. Their cheapest option is about $12 a month, compared to Linode's $20. Also, if you're new to web administration you'll be helped tremendously by all of the accurate and thorough tutorials they host. However, the two or three people that I know that administer larger sites suggested Linode, so as always your choice should probably depend on your individual needs.
> Not sure why you need to criticize it.

I was criticizing your expression. Amazon had A9 search and other ventures before AWS - they were far from being "an internet shop" even back then.

> I think you cannot deny that Amazon had "less to work with" when they started then Google has today. In terms of experience.

Indeed, but there was also less expectation. There wasn't any real competition, so they could get away with a hell of a lot less than Google can get with today.
Yeah, I had a limiter put in mine as well so that it only made a request every 6 or 8 seconds.

No worries on the suggestion. Those threaded comments can be tricky sometimes.

Hey, if you do hear back from them about their stance on this sort of thing, I'd really appreciate if you could let me know what they say. I sort of halted my project after a certain point because I had the fear I'd just have to take it down as soon as I completed it.
He was correct in that posting to Twitter/Facebook should be refactored, but wrong in the way he actually handled it.

I would have approached it by sending a "new comment" signal when a new comment is inserted in the database, and have the specific logic for posting to Twitter and Facebook elsewhere. I don't know if Rails has support for that, and maybe that's the disease because most Rails codebase I've come across seem to just stick to whatever is built-in instead of thinking outside of the box a little for the sake of better design.
> Almost every product made now has a copyright logo on it. That logo, alone, empowers manufacturers to sue people for copyright infringement for unlawful sales.

Logos are not copyrightable (well, you could copyright an image of one...) but fall under trademark law. I have a hard time trusting an article about this stuff that confuses copyright and trademark law; they're two completely unrelated, different beasts.
> tada, no boolean required, no having to "establish the provenance" of any bits. Sure, inside the nil case, the compiler doesn't actually stop you from unsafely attempting to access the fields of x,

But you do have to establish the provenance of your conditional. You have to keep track of whether you compared against nil yourself.

Whether this is expressed as if(x != nil) or as a boolean-blind switch case, the information is lost and it is up to the user to keep track of the meaning of 'x' under all the conditions it is run.

Of course Haskell is capable of expressing boolean blind and unsafe code. But Haskell, unlike go is also capable of expressing non-blind, safe code.

Go is only able to express boolean blind code (again, it is not about a boolean condition but about whether branching buys you type information). When you compare against nil, it is up to you to keep track of the provenance.
I strongly prefer not to deal with Google in a business context. It's great when everything is running smoothly. But if things break down, there's usually not a damn thing you can do about it besides post to your blog and pray.
command objects are usually named as imperative verbs.
Every time you dereference a pointer in any language with a null pointer type, you're implicitly admitting the chance of a failure (panic, exception, ...). With a sum type (like Maybe or option in ML), you never have this possibility; you have to handle the two cases (null and not-null) separately, and the compiler checks to ensure that you can never use the pointer unless you're in the not-null branch. What Bob Harper is talking about is that, in for example Go, you can write this:

if x == nil {
... use x ...
}

Which is of course a bug. What you meant to write is:

if x != nil {
... use x ...
}

But the Go compiler cannot check this in the general case. However, in ML or Haskell, it's easy. This does not compile, because the type of x will be option<T> instead of T:

match x with
| None -> ... (* use x *)
| Some _ -> () (* do nothing *)

But this does compile:

match x with
| None -> () (* do nothing *)
| Some y -> ... (* use y *)

Because the type of y will be T instead of option<T>.
Hi, author here, don't usually [ever] comment on my own work here - but am interested to hear if other devs have had similar or contrasting experiences working with LinkedIn.
How does it compare to Padrino? Which also fills the gap between sinatra and rails.
Hackers Cite 'Idiot Tax,' Release Loan Records
Google sure is great at technology, but I think they're not nearly as great at doing business as Apple or Amazon are.

Cloud computing is all about creating a good blend of technology and business. If you don't get the business off the ground, you won't have the stamina to seriously invest in the technology, particularly in terms of building lean, scalable operations. Building scalable systems is perhaps 1% inspiration (distributed algorithms), and 99% transpiration (cost-effective operations). If you don't get it right, you'll be looking at this big red number below the line and will have to kill it. The fact that Google is already huge does not matter that much, it's not being big that's hard, it's growing fast and staying afloat.

Indeed, Amazon is an Internet shop. They'll sell anything to anyone, anywhere, and they do so for ridiculously low margins. That's a mighty competitor to be up against. Google on the other hand has never been very successful outside of advertising, and have only been a high margin business.

Not saying that Google won't be successful in this space. If they're willing to lose money on it they could achieve a sizeable market share comparable to Microsoft's. They lack Microsoft's gigantic sales network, but make up for in developer goodwill. However, catching up with the lean operations machine of Amazon seems infeasible at this point. What they could do is focus on their core strengths and open up their massive data sets and tools for all to use. So far they have been very reluctant to do so however, afraid to harm their core business.
I'll bite. PHP's automatic type conversion is a severe flaw.

The intent was to make it easier for beginners to pick up the language without worrying about technical details like types, but it violates the "fail fast" principle. It might make it easier for beginners to write code that works some of the time, but at a cost of making it harder to write code that doesn't break in surprising ways later. It's not just that automatic coercion exists, but that the behavior is biased toward returning values that don't produce errors. Treating the string "three" as equal to the number 0 is very unlikely to be the desired behavior. Even if not emitting an error is desired, a contagious NaN value would make a lot more sense.

There are certainly ways for an experienced user to mitigate the problem, but beginners don't know them, using them effectively requires discipline and a great deal of production code doesn't use them. The latter problem is cultural, but the language being tolerant of sloppy code naturally attracts people who write sloppy code to the language.
FakeGrimlock: Best startup advisor ever?
It was only Jack Copeland today. I had to miss that one as well.

The other public (free) lecture is the Penrose lecture on Monday at 20:00. You still have to register online I think.
in 2004 or 2005 i coded an SVG/JS based LOGO++ in-browser IDE and some other nice demos. (sadly the source code is now gone, thx to a corrupted time-machine backup)

i really believed at that time that SVG (at that time only working (in a sane way) via an Adobe Plugin (yeah, you read right)) would be the future. i wanted to be on the forefront of technology - of A technology - and SVG was my choice. every browser and webgraphics-company pledged support for this amazing new technology! i already saw myself talking at conferences about the amazing new webpages (we still called them pages in 2005) we can build with it.

i think i probably achieved that goal - i was an "interactive SVG" ninja, but nothing came out of it. now i will wait a bit longer how the market turns out before i touch it again. fool me once ...

update: year numbers
And probably even more so on one of those new MacBook Pros that I can't afford...

...anyone mind donating one to a poor, deprived Linux PC user? ;)
Looks great, is it bad i'm already wishing it could export to pdf for speakerdeck? Does that defeat the simplicity?
Drivers to DBs

I found this with OCaml too, so I decided to do something about it: http://gaiustech.github.com/ociml/
Why Do We Study Calculus?
In the chart you link, it’s 90.2%. How vast a majority do you need?
In theory yes, although unlikely at cannonball velocities

There is/was an urban myth that the shock wave from the higher velocity rounds introduced in the Vietnam era M16 could kill with a near miss - it's essentialy impossible
Selector engines are clearly not silly abstractions otherwise all major browsers would not have implemented querySelectorAll.
Yes, I agree. Naming a class with a verb is a good signal that you're trying abstract the wrong thing. If you want to move certain responsibilities outside the object, you make a "Handler" class that is in charge of that behavior and listen to appropriate events.

How I would approached it: refactor the logic in FacebookHandler/TwitterHandler, make the Comment object send an event when one is added, make the handlers listen and do their magic. Implement a common interface for grabbing the Tweet/FB post text. Done. Now all your models can post to Twitter/FB with a common interface.

EDIT: For clarity
yeah I'd write my own class/service to handle facebook/twitter/linkedin/etc.
This is much more readable than IAmA's interface though I suggest some work on the font. Great job.
It turns out that if you compile Haskell code, and deploy it with a .py extension, everyone will happily use it and no-one will actually look at it...
I feel your pain.

Russia really has a wonder in intellectuals with science and art to give to the world -- I wish all your oil disappear, so there isn't anything for the politicians to steal anymore :-(

Besides, the problem there is hardly the cathedral, it is the opposition to your thieves of politicians.
Unfixable Computers Are Leading Humanity Down a Perilous Path
Are you doing an update for iOS 6?
Padrino is nice, too. It's definitely more mature than Happy, and a little more complex I guess. Now I'm thinking about trying to port the `def route` style dispatch to Padrino, because I still feel that it's superior to the `method url, options do` pattern. That might just be the Happy excitement talking, however.
Hey even Nokia was not first in phone market, they raise to the top, and look were they are now.

I think the parent post has a valid point. It is harder to enter market now than it was 4 years ago. Not impossible but much much harder.
> Hopefully it will not be just a half-assed experiment again

And that sentiment is _exactly_ why I won't trust my business to whatever they come up with. There's no knowing how seriously and committed they are. Sure, Amazon could do an about face, but they don't have that history, so I'm more comfortable trusting them.
This post points out the declining VC industry as we understand it today, but they are reinventing themselves (markets are not static). the proliferation of seed funds and the consolidation of LPs into a few outstanding firms is an example of the industry changing how it invests.
I don't know about wrong, but I sure wouldn't do it that way. Adding a new class makes everything more complex for the next guy to figure out, and doesn't actually solve any current problems. It just moves the code somewhere else.

While this example is not an abomination, the desire to "clean up" code like this can be indicator of a compulsive over-builder - and that can extract a heavy price down the road. So the sr dev is right to be cautious.
When we were designing Path of Exile ( http://www.pathofexile.com ) we had an explicit design goal to create a complex barter economy. To that end we decided to remove gold (quite strange for an Online RPG).

We added what we call internally "currency items" which are homogeneous items that have an inherent use. For example, an item that rerolls the magic properties on another item. There are 22 of these types of items of increasing rarity.

Because they all have an inherent use, there is demand for almost all of them. Because there are so many, few people have a true understanding of what the current exchange rates are.

The rest of the items in the game are randomly generated, and are hard to pin down accurate prices on, especially with so many competing currencies. Experts can take advantage of the uninformed to trade up in value and frequently do.

You might ask why do we want to have an economy like that?

There is a large class of players for whom trading becomes a kind of end game. If your economy is complicated and interesting there is room for a huge range of skill levels, room for true expertise in the economy. The feeling of making a trade in which you gained advantage over another player is addictive and really fun.
Clustering algorithms operate on features, which typically have to be designed by hand. The appeal of deep learning is that it discovers good features automatically.
FAIL - apparently the presentation does not work properly for half the commentators here. The world is clearly not ready for HTML5 (not everyone uses chrome's flavor of it either) yet so make it work with other browsers as well.
checkout reddit.com/r/forhire
Responding to inconsistency with more changes seems like trying to regain your balance by making wilder and wilder swings of your arms.

A better solution? Don't make arbitrary changes that will make months of unnecessary work for people for no reason to begin with. If you're going to eat up developer time, you should make it for a good reason.
Alexis Ohanian doing IAMA on reddit right now
The Apps That Came in From the Cold
Are you heavy industrial? Or did you just like the name? I was so disappointed when I discovered Urban Airship didn't actually operate airships...
I know this is about static svg images, but
as a curiosity, about a year ago I did a small experiment with svg animations. You can see it here:
http://et.vaan.osaa.fi/

Translation: "You just can't" (as in, able, skilled)

To my surprise, it actually works on iOS devices too, except that it doesn't automatically refresh the screen. That is, after zooming it was rendered in a different position than before but not animated. As a hack, I force it to redraw with css animations, continously scaling it slightly (less than 1%).

Reading my comments, it seems ie9 didn't scale svg content according to css sizes, but drew them in "original" size.

Writing the smil animation declarations was pretty much trial by error, didn't find any practical tooling support.
I did the original image in inkscape, and then hand edited the xml for the animations. Rotating things was tough, because inkscape didn't leave the element/group centers in any predictable place, so I had to guess good rotation centers.
Does Apple discriminate against Iranian Americans?
Show HN: Pixate - Themeable, scalable, beautiful buttons for iOS
<i>Kingpin: How One Hacker Took Over The Billion-Dollar Cybercrime Underground</i>: This book won't necessarily teach you all that much, but it is a true story and it's both intensely interesting and not lacking in substance. It's written by a past hacker, as well, so there are no irritating mistakes or hand-holding around technical concepts that can sometimes get annoying in general interest books about computers. I highly suggest reading this, it's captivating and it's the kind of book that gets you excited about computers and the potential they give you.
"Google on the other hand has never been very successful outside of advertising"

Android is the most widely-used mobile OS in the world. Shouldn't that count as a success?
>It's an argument for structural and technical rather than merely moral, ethical, or legal impediments to abuse of authority.

I've got to disagree with you there. Every piece of modern technology out there has the potential for abuse of authority - but you don't crap on the tech wholesale simply based on that alone. The moral/ethical/legal impediments are how you rein in abuse, not by hamstringing yourself.
GroupDocs vs Google Drive – Your Next Document Management Solution?
Seriously? Really? C'mon... Is there a way I can see who did that?
"less enterprisey" is a feature.
IMO The right way is to have a slice filled with pointers rather than bare structs: https://gist.github.com/2975397

Btw code that uses range will always be faster than alternative with for loop and indexing (obj[i]) as range-based code can be optimized by Go compiler not to perform any bound checks.
And it protects customers from being able to buy cheap genuine designer jeans.

http://news.bbc.co.uk/2/hi/business/1261829.stm

Apparently this is good for customers by maintaining the brand value of the expensive Levis they are wearing !
I think your logic misses he important factor here.

There must be some serious conflict: Juntas need external enemies, so opposition becomes treachery.

It is a pity, Iran would probably be a really cool place without the theocracy. I just hope those thieves don't get millions of Iranians killed before they are thrown out.
Microsoft Surface tablet said to be wi-fi only for first release
I'm interested in this but your introduction is a little lacking. "Hello, World" isn't really enough to get a feel for a framework, how about "Hello, To-Do App" or "Hello, Blog"?

Regardless, congrats on your release!
You are making stuff up. Nobody is claiming that using Vim over Eclipse allows a product to be delivered earlier and with less bugs.

The Agile crowd makes that kind of claim, some language zealots also do.

The "saving keystrokes" argument is important for programmers because our work is very repetitive and we are lazy. It has nothing to do with the productivity of your team or the release date. Nothing. Because programmers don't care about all that. Chosing Vim over another editor is a matter of personal choice.

If you don't like Vim don't use it. Noone cares.

if you are interested, even remotely, try it in your free time.

But by all means don't project the effects of your delusions on random strangers: nobody is insisting that you use Vim instead of X. All the "Vim is awesome" comments or blog posts you have read are not attempts to bring you to our temple. They are just manifestations of our personal and often unreasonable "love" for Vim. No more, no less.
I believe the author is referring to the copyright symbol (the c with a circle around it). This article could have used more thorough proofreading and editing.
I don't think the Airs will get retina for a while – until a case redesign or the retina display gets thinner. Take a look at this shot from the Ars review of the 15": http://cdn.arstechnica.net//wp-content/uploads/2012/06/rMBP_...

The thickness of the two notebooks are the same, but the MBP has a much thicker display and thinner body. That's fine for the "spine" of the notebook, but I don't think the Air's thin end can get any thinner.

I think next in line for a retina display is the 13" Pro and that Apple might keep a non-retina vs retina distinction between the Airs and the Pro for a little while.
Look at this way: for a 20000 category classification problem, guessing randomly will give you 0.005% accuracy. Compared to chance, this is pretty good.
I disagree. I think it's an easier market to get into - it's a proven market that is about to be commoditised (which is a lot of what Google is about).

No-one needs persuading that they need cloud servers now. If Google can produce a a)better, b)cheaper or even c)different service then they've got customers.
And where is Nokia, again? They have lost 95% of their value since they were on top, and while popular in other markets, have essentially abandoned the US.
Thanks for the breakdown. I haven't used t he service yet but I can see how that would be painful to deal with, especially if one wants to move their service in the future.