skysight-inc/HackerNews huggingface dataset:
I have never got myself into the facebook train, and I haven't lost much.

But what it's starting to annoy me are the widgets. While I'm aware it's a very nice source of traffic, this is getting out of hand and the reason is simple: the iframes.

iframes are one of the slowest elements in HTML (in my personal experience) and while having one or two loading into your site, is not really a bad thing, it really adds up when you load 10 or more
Just check Seth Godin's main page [http://sethgodin.typepad.com/], try to scroll down and look how it blocks your browser for a few seconds.
I think that's a very bad experience.

When I started using Adblock, the web started loading a LOT faster without all the ads (loaded with an iframe).
And now, I'm starting to block these widgets on a site basis (starting with Seth's blog, via adblock), but I'm sure pretty soon I'll have to block them all.

I think this is one of the main reasons Google Reader sucks so much: the Plus One button. It has no keyboard shortcut, it's slow to load, it freezes up the browser-- I had to create a Greasemonkey script to block them all and now the experience is a little bit better. Let me know if you want me to upload this GM user script.

What I'm trying to say is that if you're going to build a professional website/webapp in 2012, you'll have to consider mobile. And if it freezes my browser for a few seconds, imagine what would it be for my smartphone browser.
I think here's a good idea for a startup: widgets without all the lag (and privacy concerns).
+1 for "C++'s type system? not really going for the stars, are you?" Best laugh all day.
That's a very interesting observation. I almost wonder if their focus on physical reality is a symptom of whatever it is that makes them such good business people...
Avoid NGOs or that sort of professional charities; those are businesses, same rules apply.

If I really wanted to do good in 4 hours, I'd start with my neighbours.
I have only quickly dabbled with Racket, but it's Dr.Racket programming environment was pretty nice and it's geared for student/beginner use: http://racket-lang.org/

Very nice feature in Racket: it ships with the Lisp subsets used in the book "How to Design Programs". It introduces new language features bit by bit. Using Dr.Racket this can be enforced upon the student in order to avoid/prevent cargo cult programming by using a feature they don't yet understand (perhaps from a piece of code that's copy&pasted from somewhere) in order to solve a problem in the earlier chapters.
Gillmor Gang 12.24.11 (TCTV)
Oscar snab Corey Heim could not observe his 40th birth anniversary,
Netlix's movie rating prediction contest is a great example of smart teams collaborating. As the contest progressed some teams would join forces forming new hybrid algorithms.
I've used GoDaddy before so I know what you mean by decent UI. Name.com, namecheap.com, and gandi.net get great reviews. I use both name and namecheap and I know if you're switching from godaddy you'll like them a lot.
Thanks. I sent them an email offering to create interactive WebGL lessons. That would be a great match, as I can probably complete a whole lesson tomorrow night, and I have wanted to work more with WebGL for a while.
Having just finished reading Tufte's _Visual Display of Quantitive Information_ today, the example infographics make me want to cry.
Locally a coffee shop is serving free Christmas dinners to the homeless and destitute, they're very grateful for any financial or physical help, maybe there's something like that near you?
And the lesson to be learned is that no matter how much static code analysis you do, nothing beats actually installing and using your application on different hardware to test out common real world use-case scenarios (think Rage + AMD/ATI)
Lisp leaves most things up to the programmer's taste.

I don't entirely disagree, but I think there's more to it than that. While the language certainly does offer some free choices, more often there are advantages and disadvantages to each, so that in any particular situation, some choices are better than others. Becoming an expert Lisp programmer requires learning about these tradeoffs, which takes experience and, usually, guidance from existing experts.

That's true of any language, of course, but some of the facilities Lisp offers are rare among other languages, so that people coming to Lisp from some other language are unlikely to have experience with them.

Oh, one point about macros in particular. If you have to resort to reading the implementation of a macro to understand what it does, the person who wrote it screwed up. Macros should always have documentation strings explaning their syntax and semantics. If you find yourself in that situation, the best thing to do is to go to the REPL and use `macroexpand' interactively to see the expansions of the macro calls you're interested in.
Many of the comments focus on increasing the friendliness of emacs for new users, and how open-minded the maintainers are to this effort, though they realize in their wisdom that this is not necessarily a valuable goal in and of itself.

The newbie issue is a typical red herring and excuse for the maintainers not to face the fact that emacs has huge design problems for all users, not just newbies. For example, the presence of dozens of redundant crappy packages associated to every function, included by default in the distribution (e.g. a dozen word-wrapping packages) means that one is likely to use a substandard tool and have problems. The fact that all add-ons are treated with equal weight means that the command you are looking for is hidden among thousands of commands, most of which are way outside the scope of what I need. The proliferation of buffers, leading to the proliferation of buffer packages used to search through lists of buffers? You have to be kidding me. The customization system in Emacs is not only a throwback to 1980s UI "design" but completely out of control -- all options, no matter how minute, are treated on equal footing even if most of them should be hidden or in subtrees. Not only this, but the customization options themselves are badly named, using quirky terminology which nobody uses except emacs.

In short, emacs is thoroughly polluted and needs an environmental assessment and large-scale cleaning project. This has nothing to do with newbies, it has to do with oldies whose dusty, dried-up packages need to be swept into the dustbin of history.
Don Stewart on undefined vs. null: http://stackoverflow.com/a/3963464/17439
Your book-in-progress looks interesting. Hoping you hit the 2012 publication target.
I want to explore some less traditional causes. I have helped at local organizations in the past, and I want to see if I can help more using my professional skills.
VCs seem to like infographics: http://techcrunch.com/2011/07/13/visually-launches-to-automa...

$2mm to an infographic company - how do they expect to make a return? I have no clue what goes through VCs heads sometimes - I guess they get caught up in hype.

Speaking of hyped companies - what has happened to qwiki, quora, turntable.fm and shaker?
Just as i suspected : http://news.ycombinator.com/item?id=3372821
One of the biggest things that I stumbled over was whether or not I should code straight objective-c or use Interface Builder. In the end, I feel IB just gets in the way of being able to do cool things. I think if you're serious about making cool apps then stick exclusively to building apps with objective-c and avoid IB. (imho)
This is true, whilst you might not expect them build a beautifully layered J2EE or RoR solution with full transactional integrity, a few hours with some basic PHP tutorials would not have gone amiss.

This is especially spooky since MySQL contains a few scary features like System() not to mention that anybody could connect and write a script to do massive crossjoins (as indicated in the original thread) I'm sure any decent game developer would understand the implications of O(n!) but they were probably blissfully unaware that these features even exist.

I doubt that Notch would have made such a schoolboy error :)
Yeah just go here and go nuts:
https://github.com/khan/khan-exercises
Switching to AT&T for this reason doesn't make any sense at all. Although I don't see them on the list of SOPA supporters, their history of sharing data with the NSA shows that they're clearly not on our side. As bad as Comcast is, I would never use AT&T.
There's no way to reduce something like:

runOnUiThread(new Runnable() {
@Optional
public void run() {
// ...
}
});

It's just the nature of the language. I honestly don't mind recent versions of Java all that much but without an IDE I would lose my mind in about 3 seconds.

And once you start writing something significant or that needs to work cross platform say hello to design patterns to work around the straight jacket.

I'll take Lisp, JavaScript, Ruby, or Python any day of the week. All languages have warts but to me it seems that Java has warts by design.
Skype and Microsoft aside - what is there to patent to begin with? They effectively describe mangling the call setup to make the call go through a recording agent. This is obnoxiously trivial.
> I doubt that Notch would have made such a schoolboy error :)

He made an equivalent one: he wrote his own database[1], in the age of SQLite being dumb-as-dirt-simple to use and MySQL almost a no-brainer.

[1] - http://notch.tumblr.com/post/1166302589/this-is-what-im-doin...
This is one of my happiest moments. The gust, wave, kite and board all played together perfectly:

http://www.youtube.com/watch?v=BVDgV7cbNjU
1) By all means write about what you like or what helps you. But please don't tell me what I should do. Worse, don't imply I'm dumb if I don't.

2) In my experience, beginners are best served learning "pure" CSS first. After they get their bearings, I point them to resources like OOCSS or SMACSS. Once they demonstrate a solid appreciation of concepts like specificity, modularity, etc, I feel much better about their prospects using a pre-processor.

3) Power tools like pre-processors amplify bad code. Blanket statements that everyone should use them - particularly "non-experts and geniuses" - is dangerous advice.

disclaimer: I like and use pre-processors myself.
Its always hard to protect free speech. But this requires creative solutions, and censorship is not one of them.
This is an awkward post. I don't know if helping some charity with its website is as in the spirit of Christmas as helping in person like earnubs suggests.
Buffalo Bills vs Denver Broncos live stream
Buffalo Bills vs Denver Broncos
Match schedule:
Week 16 NFL Regular season
Date: SAT, DEC 24 2011
TIME :1:00 PM (ET)
Venu: Ralph Wilson Stadium
watch and enjoy Buffalo Bills vs Denver Broncos live streaming and
also watch NFL full season live streaming online here. Get the best
online sports coverage on the net directly on your PC.
Oh, do go on.
hey! my organization (concrete jungle: http://www.concrete-jungle.org) would love some help. we pick fruit growing on the side of the road and in people's yards all over the atlanta area and we donate it to local homeless shelters and food banks -- we donated over 3200 lbs / 1450 kg of fresh produce this year on basically zero budget and all volunteer efforts.

there's a lot of logistics in managing the various fruit trees and we use a google map for doing so (also have a public google map for showing folks things that are nearby).

off the top of my head, things we would love:
* making the map faster (optimizing the code, showing fewer points at more zoomed-out levels, whatever).

* being able to directly edit/update our sqlite fruit tree database from our google map

* any sort of interesting features for our mobile app (or even making a native android app!)

* making charts of when we have picked certain fruits in the past to illustrate approximate ripeness schedules.

* any sort of way to improve our picking logistics -- doing weekly picks from many trees that all ripen at slightly different times without driving all over the city is hard.

* anything to clean up/secure/speed up our code -- i did it all and am not a coder by training or by trade.
Online PNG Compression and Image Optimization
If you did this then in IOS 5+ you'll be missing out on storyboards which are a great productivity improvement. Not a good idea. Indeed you don't want to use IB all the time, but you should learn when to use it.
I've looked at reverse-engineering xib files in order to be able to produce my own, thinking it would make a pretty neat tool to use. It's a nightmare.

Monotouch seems to have pulled this off somehow.

For some reason, the boss insists we do everything using xibs. :(
This isn't in the Christmas spirit, as I don't celebrate Christmas and I want to help by doing what I do best, not what makes me feel warm and fuzzy.
Elevator algorithms
I'll have to check that out. Although my advice will be free :-) But I'm sure that many many other good debuggers have developed the same basic techniques independently. Still, the vast majority of programmers could use some improvement in this area. "Quit thinking and look" is exactly what I mean by "don't assume." People tend to get wrapped up their own view of things and forget that empiricism really wins the day. There is often even fundamental denial, as in "what bug? I haven't seen it." Clearly if someone saw it, unless they were hitting the crack pipe, it's real.
WTF Google?
In dev teams UI done in an xib will make the UI easier to understand. It's also much faster to do many things with the GUI.
No, that comma before "after" is important. They're giving you a 30 days notice.
That's cool. I'd love to live in the bay. Underwater dwellings are awesome. I've always assumed that I'd have no Internet access down there, though, so I never seriously considered the move until now.
It really is this easy. Every bit of power enjoyed by RIAA, MPAA and the like is given to them by you, the purchaser and victim. You're buying your own prosecution.

Trade CDs with each other. Buy CDs and downloads directly from bands that make them available. Go to live shows of smaller bands, or even to bars/clubs. Go to live plays. Learn to play an instrument. Do anything at all except purchase new media.

The RIAA and MPAA and the companies they represent are merely middlemen who have inserted themselves into the channel. They're only essential insofar as you consider their repackaging essential. You don't need them.
I'm not so sure. I'm reading their testing document (and it's a great read), and it sounds like most of those tests are reactive:

Whenever a bug is reported against SQLite, that bug is not considered fixed until new test cases have been added to the TCL test suite which would exhibit the bug in an unpatched version of SQLite. Over the years, this has resulted in thousands and thousands of new tests being added to the TCL test suite. These regression tests ensure that bugs that have been fixed in the past are not reintroduced into future versions of SQLite.

While this is a great practice, it's reactive. It's the result of particular bugs, not someone asking, "What are the situations we haven't covered?"

The coverage they have for error conditions (file system, out of memory, bit-flips) is impressive. I'm not saying I know you're wrong, but I think there are too many variables to say with confidence either way.
Following the recent HN trend I suggest open-knesset: http://oknesset.org/

They work with Python and Django, and they are trying to make the government more transparent. Their code is on github: https://github.com/ofri/Open-Knesset
So what path have you chosen? I am a Ruby programmer and want to make an iOS app. I'm planning to use the Stanford course on iTunes to get started. Do you know if that's any good?
For normal interfaces XIBs are way easier to maintain and handle then a bunch of addSubView calls.

The only things that should be hard coded are interfaces that are too unique or exotic. Even then, XIBs allow you to place arbitrary UIView elements wherever you wish and you can get the best of both worlds.
It's so much easier when you already know how to program anything.
I was a Perl dev and dabbled in Java. I was forced at my job to learn iOS and produce a specific app in less than 3 weeks.
Wasn't pretty, but working under pressure can be good motivation too.
At my last gig they had that as well, but still ignored it because the culture when I got there was totally full of broken windows.

There was 8000+ warnings and findbugs errors in the codebase that I went through and fixed. Luckily a lot were just white noise, but some >100 were definitely valid bugs that had been in the code for quite some time.

In order to keep things clean after all that work, I turned on warnings as failures as part of the continuous integration build (which I also set up) so that everyone would get an email each time the build failed. Yea public shaming, heh. The hard part was then training people to pay attention to the emails and not filter them to the trash.

As a final step, what I did was built the testing environment into the CI system so that if they wanted to test their code on a virtual machine before getting their branch into the latest iteration, they needed a clean build in order to generate the debian installers. That was the final kicker which really made people start paying attention to this stuff.

So, in order to push code to production, which everyone wants to do, you needed a clean build. Problem solved and it really cleaned up the quality of production releases. ;-)
Are you referring to the author? Megan McArdle is a she
Indeed this is precisely how I do things as well. If I have a custom UIView subclass then I still lay it out in a xib in relation within it's superview. Doing it this way makes refactoring so much easier.
Let's not piss our pants again over this language... Again. That language is what I like to call "cover my ass" language. By that I mean a lot of companies add in clauses that sound real bad but in reality they're just standard legal jargon that lets them cover their ass in the event that they're forced to. This isn't some totalitarian conspiracy and none of the companies using this language actually want to or have any interest in canceling your domains. This is a very insignificant thing. Let's stop getting our panties in a twist over every little clause in every company's TOS and get back to startups and the cool interesting stuff that used to get posted around here.
Ask HN: Know of any good web-based email alternatives [to gmail]?
New gmail hurts my eyes [I know that you may use the old version, but my conception is that they will force everyone to the new one eventually], and google+ circles are creeping their way into my inbox.

Gmail is still the best web-based email I know of. Does anyone know of better or alternative options?

Factors that are particularly important to me are a clean/functional interface and not having a nasty privacy policy.
Forth is a beautiful language. Just like Lisp, Smalltalk, and others have a comeback, I won't be surprised if the same happens soon with Forth as well.
"Fuck TechCrunch" because it didn't send you as much traffic as HN?

Classy...
Or just lie and have someone you know in the industry say you worked for them during that period of time.

Hate the game, not those who must survive within it.
It's a pity that infographics are abused so often, because they're honestly not a terrible way to communicate interesting statistics. I mean, the fact that they're getting ordinary people to look at data and pass it along to friends is pretty impressive. They do have an accountability problem though. Someone should build a platform for making, sourcing, and commenting on them.
What's that? You aren't more interested in the SOPA drama?
Secrets Of The Accidental Entrepreneur
Coming soon: Ubiquitous surveillance from Big Brother's wayback machine
I do agree with your point that 4 hours is not much and that it should not be taken lightly.
However I still admire him for even thinking about it and don't think he is longing for some god like recognition.
View it as a first step for him and maybe, if he realizes how much he is enjoying doing something charitable he will want to do much more.
Hopefully you find a project that allows you to understand what they do within the first day and then can commit some more time to it during 2012!
Too much dead wood, as well as no financial incentive to increase efficiency (with resources of any type).
That's great news. Keep doing it. I was thinking about using finite state machines to generate eye-catching structures. I'm guessing that you are using genetic algorithms to create populations of lurepets and improve them using users' input.

You could build a google app engine web app to do that. Users that will train your genetic algorithms will get discount for their t-shirts. You would use google "in-app" purchases API to sell your t-shirts. If you get enough data from users you can try to personalize, e.g. association rules, if someone bought t-shirt A then he is likely to by t-shirt B.

Note to self: web app that uses genetic algorithms to improve its product and association rules to sell more is also a data mining web app.
The amount of test code and test data is proportional to the number of possible codepaths through your code.

This is generally exponential in number of functions, modules, etc involved. For example, a function with N if statements that are not nested generally needs 2^N testcases to properly exercise it.

So having 1000 times more tests than code may not mean that you have complete coverage at all. It depends on the structure of the tests and the code.
Tell HN: Thank you and here's wishing for a brave new 2012
Dear fellow hackers, I just want to thank you all for your inspiration and help through the years. I've been a long time reader and contributor here. I owe a lot to this community.

2011 has been a difficult year for me professionally. I did manage to publish a book, but I haven't had much success with my startups. I decided to move on from my first startup and have started working on a second one.

I've been meaning to post it here to get your feedback, but I keep shying away from it for various reasons. I'm probably just scared.

In 2012, I want to be more confident and brave with my work. I commit to post my work here for feedback in January.

Working alone has seriously taken its toll. I'm looking to build a team in the new year. So, if you're in the UK and want to work on important problems, do get in touch.

Have a great Christmas and thanks for everything!
3 Chrome bugs I've been bitten by
The first one is definitely a pernicious (and known) bug. The second is probably my own fault but I think Safari handles it smarter. The third is, ok, I just googled around and it's not a bug, but it drove me nuts a couple times and is sort of relevant to the SOPA discussion so I'll leave it on the list!

1. If you paste into a textarea, the newlines get silently stripped when you submit the form.

Documented here:
http://code.google.com/p/chromium/issues/detail?id=104620

But it's more insidious than in that example, because you never find out the newline-stripped version got submitted.

I've sent some embarrassing emails where everything was smashed together into a single block of text.

2. Double-clicking a submit button submits the form twice. Firefox does this too, so I guess it's my app's fault for not handling the duplicate submissions properly, but Safari gets this right.

3. DNS pre-fetching. Make sure it's off before testing your move to a new webhost! http://blog.chromium.org/2008/09/dns-prefetching-or-pre-resolving.html
Yes, thank you for your reasonable comment. I don't get why everyone gets all apocalyptic any time there's something even remotely "bad" sounding in any Internet company TOS. If we read the TOS of every site we ever visited we'd have an HN with nothing but submissions about how every website on the entire web is impinging on user rights. Let's focus less on all this minutia and get back to startups and code, please.