skysight-inc/HackerNews huggingface dataset:
My 2 cents from doing language design is that it is hard because it's hard to avoid making stupid mistakes. A successful language is a way bigger beast than you started out with. Perrone's advice about getting feedback is crucial. Point 5, understanding the theory is mandatory. If you dont, you are wasting everybody's time. However, it is very useful to do a throwaway language to develop your understanding of the theory.

Point 7, dont create new syntax for old semantics, is worth remembering, unless you have a significant simplification. In fact taking an old language and making it simpler is a very good excuse for a new language.

One thing not mentioned in the article is the importance of libraries. A new language doesnt have a lot of chance for success if users have to write everything from scratch. If you can piggyback on top of an existing infrastructure, like java, your chances are better.
I regularly read HN on a Nokia e71 (using the default browser shipped by Nokia) and on a PSP. I only have two issues:

1) comments nested 5+ levels deep get a really narrow column for the text.

2) the 'mouse' cursor positioning on the e71 is just a little too coarse making impossible to click on some of the upvote arrows next to a comment.

Other than that I have no issues with reading HN on a small screen. On the e71 replying is also no problem, the textarea fits on the screen.
Is is fair to judge a developer's performance based on the number of bugs filed against his name?

Don't do this! You will get disastrous results. For example, some programmers have more bugs assigned to them because they care more about fixing things. People know this, so when they want something fixed they will try to assign it accordingly. If you only look at the metric, you won't be able to distinguish this case from a bad programmer who generates more bugs.

It's well known that metrics like this don't work. The moment you settle on one, everybody will begin optimizing for that (instead of, say, getting their job done). This inevitably leads to unintended side-effects.

Your best bet, assuming you're a manager who isn't working on the program directly, is to pay a lot of personal attention to what's happening on your team. Over time, you'll notice patterns.

There is a related pitfall I've seen many people fall into: watch out for the case where someone looks like a star performer because he's cranking out shoddy work. This guy often becomes the manager's favorite because he seems to get features done quickly, when what's really happening is he's getting them half-done and making a mess in the process. Worse, truly good programmers then compensate by taking time to clean up this guy's messes, which makes them appear less productive. One bad programmer like this can easily suck up the value of half a dozen good ones. The solution is to make sure not to take things at face value, but to watch carefully to see what effects someone's work is having on the product and team as a whole. This is hard but doable; everything that's going on in the code is ultimately visible at the human level if you know how to read it.
Should it be faster? Maybe the hydrofoil drag is comparable to the drag of the planing board.
What developers need to know about virtualization
As pointed out here and in the blog's comments, if example.com does a <script src="http://friendfeed.com/api/feed/public?callback=alert%28docum... the code will run in example.com's origin, not friendfeed.com's. This means it's not an XSS in FriendFeed. When testing for this type of issue, using alert(document.domain) makes it clear what origin the JavaScript is running in.

Although the blog did not fully describe a real XSS, developers should not allow characters such as < and > in JSONP callbacks.

Does anyone know how to contact security at FriendFeed?
[update: there's a bug report form, hopefully someone reads it http://friendfeed.com/about/contact/bug ]
1/2 used to result in integer division, so it would return 0. In Python 3, integer division is spelled "1//2".
Off-topic, but what's a zeroth order functional language? What are the other orders (something reqiring lambdas, closures, etc)? Google and Wikipedia didn't help.
The advantage you have when building a tool like this is that you can "Eat Your Own Dog Food" and thus be your own user!

Might I ask why you're building "yet another" issue tracker? Whenever I think of a decent idea but find out there are already so many implementations, I reject it. Is that unwise?
Absolutely. I've never ever borrowed anything other than my mortgage. Of course living in a country with a well-subsidised higher education system makes that not too hard :-)
Ask HN: What do you think of GitX?
GitX is an OS X GUI for git I've been working on for the past year. Lately more people have been working on it, and we're wondering what direction we should take GitX in.

We've created a small survey at http://www.survs.com/survey?id=DCJKLP2B&channel=BCNI75LXXR for those who have used GitX before. I'd also appreciate any comments left in this discussion.

For those who don't know GitX, the homepage is at http://gitx.frim.nl

Thanks!
AdSense is such a rude awakening.
I would really love a windsurfer version!
Any quantitative metric carries perverse incentives.

My co-workers have a legend that backs this up, from the time before I joined. They had a quarterly bonus system that would be adjusted for defect rate. If you had defects against your code, you'd lose on the bonus.

Needless to say that this resulted in a "black market" for defects, with little gain in quality or productivity resulting.
This reminds me of a business idea that I had about 3 years ago that was essentially a kiosk for downloading iTunes material. I thought it would be particularly popular at airports.

Wi-fi in new iPod models will eventually make this idea obsolete.
What would you paint if you could paint like that?
Yeah, you could go for SICP too, or as the commenter above mentioned, the HTDP.

Both HTDP and conabs inherit their methodologies from SICP.
(in htdp you could even look at The Structure and Interpretation of the Computer Science Curriculum here http://www.cs.brown.edu/~sk/Publications/Papers/Published/ff...)

But it is worth to look at the same thing from different points of view. As Alan Kay says, it is worth 80 IQ points :)
Just broke 60 mph over the weekend, nice.
Although that is about $25k as a starting price, so not all that accessible. You can get a boat for $5k that is close and put in another $5k and get it to foil.
This could be the best opportunity for non-Chinese entrepreneurs to get a feel for doing business in that country. I would be on the next plane.
Princeton lab publications on psychic phenomena
dudes: separate idle time hobby from dream vocation
"..showed that the average founder of a high-growth company launched his venture at age 40."

Have not read the paper but this sounds like survivor-ship bias. The number you'd want is what percentage of old guy companies succeed.
A relatively minor correction to make:

> ... wondering why Apple would change the Mac to match Windows after 25 years of using gamma 1.8 ...

No, the original Mac had only black & white. No gray (or any other colors besides black & white), and thus no gamma. The earliest Mac for which gamma would have had any meaning was the Macintosh II, introduced in 1987, and that's 22 years ago, not 25. This is no big deal, of course, but then he repeats the error:

> Macintosh, in 1984, introduced us to desktop publishing and to displays with shades of grays.

Nope.

Again, no big deal, but seeing that he got the unimportant facts wrong, gives me rather less confidence is his important facts. Caveat lector.
I'd say that because something is open source means that we can have a rational conversation about whether it's well-designed -- because we can look at the source code and evaluate it. It's almost impossible to have a rational conversation about the design of closed-source software, simply because there's no evidence to work with.
so you're going to implement <video> in javascript?
"Quantitative metrics typically fail." Tattoo this on your forehead so that you se it every morning. If you punish bugs, people are going to stop reporting them against themselves or their teammates. I often report bugs against myself so that I have a record more durable than a sticky note.

Another demotivator is management hysteria to get the bug count to zero. Bugs need to be reported no matter what the goal is.

The best way to understand what is is going on is to talk to people informally (definitely not regularly scheduled meetings).
as the article points out photorealism is pointless, except as practice and enjoyment for the craftsperson. What I find interesting in this is that what he has actually painted is not Tica but the imperfections imparted by the little digicam and the inkjet printing technique. That's pretty funny, to reproduce the imperfections of the medium. It's only really interesting from an artistic perspective if the picture were instead titled 'Nikon 8700 Inkjet print'.

Very talented craftsperson.
We have a consensus here :) Thanks all of you !
Ask HN: What are your productivity hacks?
I've been trying to be more productive by taking small, concrete steps. What systems have you set up for yourself?

Here's what I have.

1. Whiteboard tasks for the week, w. daily assignments

2. Check emails once an hour

3. Set default page in FF as a blank page(as opposed to Gmail, Reader, etc.)

4. Tea, not coffee. Cup of water on hand at all times.

5. 7 pull ups each time I use the bathroom.

Equipment-wise, multiple screens tend to help. A good chair too.
Advertising at least is honest about wanting your attention and being straightforward about paying money to get it. Hard to "game" a system that requires real money to play.
The libraries point is interesting. I avoided it because it doesn't really make a lot of sense in the context of domain-specific languages or anything like that.
Seeing a few startups' websites fall over says precisely nothing. They could have been on $20 VPSs for all we know - a twenty dollar VPS being something that is possible with OSS. Or maybe not well tuned - since the vast majority of startups use open source software, it's only natural that you will see a disproportionate number of sites using that software fail.

Anyway, I'm glad your technology choices are working out for you. However, you must understand that a $2k per box markup would be a stroke of death for many lower-margin startups.
I think this article is misleading.

See Figure 1 on page 8 -- only
30.4% of the entrepreneurs surveyed were in software or hardware start ups, the rest were in other 'high technology' industries such as energy and bio-tech. I would love to see the same questions asked of only web-software start up entrepreneurs, I bet the results (age, experience, etc.) would skew differently.
I'd say if you're using quantitative metrics, you shouldn't go for number of bugs he's had. A senior developer will always have more bugs to his name than anyone on a team because he's put more lines of code in. It would be better to do number of bugs per 1,000 lines of code. Even then it'll be relative, one person might have hundreds of single lines in their code, while another might do dense lines.

I've seen this kind of stuff try to be deployed in the literary world and it always falls flat. One guy can say in 100 words what someone else wouldn't be capable of getting out in 10,000. Another might be writing 5 page features and the rest of his team are writing half-pages or less. Then there's creativity and personal voice.

I'm sure there are thousands of developers out there, likely hundreds on HN who are very elegant coders. I'm sure there are many who aren't.

People need to be judged on an equal playing field, if your metrics are bias you're going to be judging someone unfairly, and I don't think anyone here would want to go to trial over an unfair dismissal. A small company wouldn't survive losing to that. So my advice would be to be exceptionally careful in the ways you judge your workers and don't distance yourself from the judging. If you're relying on a computer to decide who is a good worker and who isn't, then you're in risky territory.
I want the bugtracker to become invisible in my usual workflow: I read and edit to-do lists and code in Emacs, and any bugtrackery things happen implicitly.
Excellent point!Add to this the fact that these old guys may well have a better understanding of what the customer wants and perhaps is prepared to pay for any service. Everybody is focusing on Google but how many like them tried and failed? You won't read about them. Someone who starts a business with his family attached to him thinks twice about each move and turn as any mistake may seriously affect not just his personal livelihood but his family's as well.A young twenty something who doesn't make it can always find a career afterwards something which is not necessarily the case for a forty something.
I absolutely agree. Netflix and RedBox are both nothing more than elaborate "hacks" around how restrictive studios are about licensing content to be streamed over the Internet. Its really great to see how these two models are making studios squirm; hopefully it turns up the pressure so they'll just stream content over the web.
I guess I just don't like integrated mega-software like "team studio". Give me some nice, loose tools that work together well. Git is all the collaboration tool I need.

And, for what it's worth, the open source community will give you unlimited seats worth of all the best web development software in the world for $0.00 :D
Of course, qualitative metrics carry perverse incentives as well. Classically, they encourage employees to suck up to whoever makes the qualitative assessment.
Command-line interface and/or API for making such.
Most papers bend over backwards to avoid bias in pure news coverage. The resulting he-said she-said style of reporting is rather comical, and sometimes gives credence to complete nonsense.

"A house in the XYZ section of Some Town burned down at 11 o'clock last night. Firemen investigated the smoldering ruins and found the remains of an antique gas boiler. Fire Department records show that the boiler has not been inspected since 1923, and a spokesman believes that the boiler exploded. However, Miss Crazy Lady, a homeless person found napping several blocks away, claimed that the alleged explosion is a fabrication. She told this reporter that she clearly saw with her own eyes a demon ascending from the ground and setting the house on fire. 'It was Asmodeus himself,' she said. 'Or maybe Beelzebub.'"
Fozbugz has the rapid-enter ability BTW.
1.

Prioritization. Spending 10 minutes every end-of-day planning the next day.

2.

Scheduling chaos time. Leave spare time every day and every week which is like extra time to get the tasks done. So there is no backlog.

3.

Using leechblock firefox plugin to make sure I don't read google reader, HN etc before lunch.

4.

Making plans public. I used to have an accountability partner where we both used to tell each other what we'll achieve for that day. And then check up on each other at the end of the day.

5.

Scheduling meetings at the end of the day. While there are exceptions because of time conflicts, most of my meetings happen at the end of the day. And sometimes during lunch.
The Startup Death Spiral
also, cross-posted from the comments there:

Hey Philip,

You are right, the code is executed in the context of the CALLERs page. But that is the problem...

Imagine the scenario, where a client-side web application allows arbitrary data sources to be added... it's not too implausible a future where instead of adding RSS feeds to an RSS Reader, one adds JSON feeds to such an application...

In this context, if the user is tricked into adding a maliciously crafted URL, then everything from their identity to their data is accessible... not to mention being able to abuse the account to spread a worm even...

I believe the possibilities of using JSONP haven't been explored much yet, and for it to go further in the context of interesting mashups/applications, it's important that it not be a security hole...

Hope that makes sense!
The decisions he made for the painting go down to a level of detail many of us could not comprehend. It's akin to writing an entire operating system, then showing it to someone who uses computers very rarely in their life. That person may think that the operating system is just like all the others they've used, but it's only the people who are coded the thing that can realize how different it truly is.
Unlimited space for web content. Backups don't count as web content, and will get you smacked down hard.
Using HSDPA here (which you might call 3G or 3.5G or just HSDPA) but the quality is perfect - I have it connected to good quality speakers. Note I'm using the Android version too so that may make a difference.
No, I don't like this article, either. However, buried in it is a worthwhile idea, I think.

In particular, he notes that publishing source code makes vulnerabilities easier to find. True, obviously. I would note that it also makes them easier to fix. Now, we could get into a fight over whether "find" or "fix" is more important. But instead, let's observe that making software open-source, significantly changes the security dynamic.

Thus, we can ask, "What does it take to make closed-source software secure?" and "What does it take to make open-source software secure?" Whatever the answers may be, it is likely that they are different answers.
Thanks for your comment. I agree with you (and roundsquare) that the first point has problems. To give you some idea of what I was getting at:

The way I, and I suspect most gamers, play adventure games is to:

a.) Run through the room graph as far as possible, do everything obvious, and take everything that isn't nailed down
b.) Look at the list of "roadblocks" encountered, and figure out how to get past them
c.) On passing a "roadblock", go to (a.)

To my way of thinking, anything you can grab without solving a puzzle is as good as in your inventory, even if it's in a different part of the room graph.

The post was inspired by Saturday's playthrough of "Leather Goddesses of Phobos" - one of the few Infocom games I hadn't spoiled for myself in my youth, due to Activision's decision to omit it from the "Lost Treasures" collections. Anyway, at one point I was faced with this set of puzzles:

1.) How to get past Thorbast in space
2.) How to get past the ion beam
3.) How to get into the orphanage
4.) How to turn the enchanted frog into a princess
5.) How to capture the mouse
6.) How to get the headlight in Cleveland

I was stuck - it seemed that I needed something "extra" to solve any one of these puzzles. In fact 20-YEAR-OLD-SPOILER-ALERT every puzzle on that list can be solved as soon as you encounter it (assuming that you've previously grabbed everything that was lying around in plain sight) with the very possible and partial exception of (4.).

(BTW, how could that list of puzzles not make anyone want to play that game?)

Anyway, thanks again.
Identity Thieves are Sneakier Than You Think
Asus Plans to Enter the eBook Market With Cheap Dual-Screen eReaders
These machines were everywhere in France several years ago. I remember commenting that I was exceptionally disturbed that the French had more innovation in movie rentals than virtually anywhere else. I first noticed one of these machines in a newly opened Wal-Mart this year, hadn't seen one before in Canada.

It's taking so long in Canada to get these new rental means set up, there's little wonder why the RIAA and MPAA are calling Canada a home for piracy. It's the only way to get a movie without paying like $7 to Blockbuster for a half-decent rental time. I've got the choice of constantly running to blockbuster to rent and return a single movie that it's going to end up costing more in gas than to rent the damn thing, because god knows blockbuster never heard of a convenient location.
A quick easy way with python is to mess around in the interpreter 'testing'... then paste those tests in as a 'doc test'. That's the quickest way to test that I know of with python... and suits people who code by trying things out in the interpreter.

Another quick way is to add asserts in. It's a very easy way to sanity check things, and is usually built into the programming language (it's in C/python etc).

cu,
There was talk in Maryland about criminal prosecution of Linda Tripp for recording Monica Lewinski back in the 90s. I said at the time, that laws like that just prove that legislators are crooks, since the only benefit of those types of laws is for liars. There is no law against one party repeating what another party told them, the only thing this type of law does is to prevent proving who is lying.
First hand review for Reddit:

http://www.reddit.com/r/Android/comments/9i5ks/spotify_mobil...
100% premium subscriptions (monthly)
I find it somewhat offensive that he isn't giving any solution to steps.

is this simply to sell his (very good) book?
Real analysis is going to have to wait until there is some way to automate the process, at least partially, unless you want to spend a third of your day analyzing what you did on the other two-thirds.
Actually, a better time would have been a couple of months ago. You're late to the party.
Well, all those points were discussed and there are sound reasons why they are as they are in HTML5

Versioning — it just does not make any sense. Browsers render web content to their abilities, not by spec. Some my not support parts of HTML4 but support other parts from HTML five.

No doctype — creators of HTML5 would be glad to get rid of it, alas, it is required to force browsers to use standards compliant rendering mode. Without doctype they fall back to quirks mode, which is bad.

CSS — unified rendering would be nice, but that's not the subject of HTML spec. And reset stylesheets are just plain stupid.

Self closing <script> — historical reasons… :)

Custom tags — what? You can invent any tags you like and modern browsers will allow you to style them. If you want custom tags, you don't need a spec. The point of the spec to define agreement on what which elements means.

Custom attributes: HTML5 has that in the form of data-* attributes and elements get element.dataset accessor.
Classism, ageism, racism...all prejudices are to be avoided, regardless of the era.
I posted some very simple amendments made to HN HTML that would make life much happier for iPhone users, as a quick (if temporary) remedy. But I think the train got lost after that discussion.

http://news.ycombinator.com/item?id=470863
I don't have to worry about that, my ancestors are all dead; or did you mean descendents?
Gawker offers a personalised news aggregator
Sun, Sand and Startups #3: Meetup in Barcelona for Entrepreneurs
What does the computer industry need saving from?
It would do so if one of the numbers was a float - 1.0/2.0 gave a float answer, 1/2 gave an integer answer.

It was also possible in recent Python versions to switch this behaviour using "from __future__ import division" so they recognised it as a ward, but it's only with the decision to allow Python 3 to make backwards compatibility breaking changes that it could be changed normally.
I run pomodoros: http://www.bestbrains.dk/Blog/2009/02/21/CanATomatoChangeYou...
It's only one article in a series. I'd guess solutions to this specific stage is coming.
I am a BizSpark member and network partner and I agree it's a good program. The problem is that it's only for 3 years, so you still need to keep costs in mind.