skysight-inc/HackerNews huggingface dataset:
Python being readable is FUD. I've seen tons of horrible Python. Of course, I've also seen tons of horrible Perl (and PHP, and even Lisp).

Basically, in the hands of incompetent programmers, everything is unreadable. If you are disciplined, you can write easily-readable Perl. I (and my coworkers) do it every day.

Oh, one other thing... the linked article is from 2000. In the last 8 years, the Perl community has figured out how to program... so most of his points aren't relevant anymore. Nobody writes 2000-style Perl anymore.
Such as the finite speed at which humans integrate and interpret data and mentally design experiments and technologies.
You won't find any PHP hackers. The good PHP developers realized that PHP was a waste of their time a long time ago. All the novices have significantly lowered the average PHP developer's salary compared to other languages. Basically, there's no skill and no money in PHP, so the good people don't use it.
I also like ExtJS. You can use ExtJS in conjunction with YUI as well.
Proud that two articles on the front page are about Harvard's commencement, I might suggest president Drew Faust's address:

http://www.president.harvard.edu/speeches/faust/080605_comms...

It's long, but argues a controversial point well.
one can write readable anything, but some languages encourage it more, both in the language features and syntax, and also in the community, tutorials, etc
Nim Chimpsky: the chimp who thought he was a boy
> then it becomes so habitual that you forget how to write "regular" javascript.

This is high praise indeed, and suggests to me that a) the standard DOM APIs are poorly designed, and b) that jQuery’s API is very well designed, and meshes much better with the language.
Thanks for the advice.

I've also been learning Lisp (sbcl) over the last six months and have tried out Hunchentoot with elephant, cl-who, and parenscript.

I'd say one of the things keeping me from going with Lisp is the potential pool of developers to pick from when expanding the operation. I think I would have a better chance at enlisting others with PHP or Python than with Common Lisp. Is this line of thinking wrong?
Code Igniter framework for PHP.

Thanks. I'll take a look at that.
I spent a lot of time bellyaching about this when starting my company - looking at PHP, Perl (preferred by the devs), and Python (preferred by the advisers I trust).

In the end, we went PHP, and it was hugely lucky - we were able to hire a couple of devs on very short notice because we were in PHP, even though we use a less popular framework called Qcodo. After they were hired, I asked them what they thought, and there was no way they were going to learn a new language to join us, but they were ok learning a new framework.

My feeling is that PHP has the largest base of developers out there, and that means that you've got the biggest base of potential co-workers. If you yourself are a great hacker, you can prop up whoever else you're working with. If you're building an app/business to scale, you have to have other hackers join you.

Hell, Apple has a hard time finding Objective C hackers, and they're Apple.
I've used all three of the languages you mention for relatively large web applications. People will say PHP sucks because it is ugly and retarded and only has one namespace. People will say Python sucks because of the whitespace issue and mod_python doesn't work on a $5/m shared hosting plan. Perl sucks of course because "the syntax is crazy!" But, huge sites are built in PHP (Facebook, Hype Machine, Flickr, half of Yahoo!), Python (much of Google) and Perl (craig's list). In my experience they are all about equivalent except for aesthetic reasons.

The headaches in a web app are usually at the user interface level (DOM/CSS/Javascript) and at the systems level (there's a bug in fast cgi! MySQL imploded!) and language choice gluing it all together is mostly a matter of taste. People with taste overestimate its importance. You can get pretty far in the internet biz with no taste (MySpace... originally done in COLD FUSION).

That said, the most tasteful option out of your choices is Python.
When I say "how" I don't mean are you going to use OpenSocial or anything like that. I mean when you implement it, how are you going to make it useful?
Here's an off-the-cuff prediction: Twitter itself, as well as the Twitter community, will be just fine. In a year or two nobody will remember these problems.

Twitter may have scaling problems, but it's not as if their potential competitors are magically immune to those. Meanwhile, Twitter holds a huge marketing advantage -- you can't say "Site X is just like Twitter" without saying "Twitter" -- and a big Metcalfe's Law advantage: Everyone who is remotely interested in Twitter-like sites already has a Twitter account, and those accounts won't magically disappear. Meanwhile, there will be more than one Twitter competitor, all desperately trying to distinguish themselves from each other as well as from the original.

Sooner or later Company X will figure out how to scale Twitter. At which point either Company X buys Twitter for the name and the userbase, Twitter buys Company X for the technology, or Google buys everybody. Or, Twitter eventually reverse-engineers the superior architecture, at which point they will beat Company X over the head with superior name recognition and larger userbase. This is especially true if Company X is actually the open-source community -- if some random Python programmer manages to create a superior, open-source Twitter architecture, Twitter will just install it on a server farm within a month and be right back in the game. The open-source movement has a lot of brilliant techies, but I doubt that its marketing team can outrace Twitter's from a standing start.

The Twitter concept has enough mindshare that I doubt it can just evaporate. They're not being sued out of existence like Napster. I'm not convinced that a scalable Twitter is physically impossible. So I would suggest that rumors of its death are greatly exaggerated. It's just... resting.
If I go with PHP, Apache will be running non-threaded.

To run Apache/PHP as lean as possible, I'll take advantage of thttpd's polling to quickly serve up any static content I have to as many simultaneous connections as possible.

I haven't taken a really deep look at lighttpd nor nginx.

I see what you mean though, why would I use two distinctly different http servers where one would simply do?

Could you give me some hints as to what I'm missing out on if I stay with Apache and thttpd or what I'd gain going to either nginx or lighttpd?

Thanks!
PHP. Why? Because if you ever move your app to a hosted server, you'll have tons of hosting options with PHP. Only a few with Python.
That makes a lot of sense and fits in with some of the experiences I've had. In fact a lot of large companies don't want to be in the business of code development if they can help it. It's just not their core business. What they would want is open source or open apis so that they can integrate into their infrastructure on their own terms.
Only if those top engineers were convinced that landing on the moon would be the turning point for mankind becoming space travellers, and felt the need to prepare humanity for its coming. Actually that sort of thing did happen, but the point is just how far those absurd notions are from reality. No human has been further than the moon 40 years later.

I'm not sure a single bit of the wild speculation that occurred in 1890 will be useful when if we ever do begin large scale space travel.
Perl is more readable to someone who knows Perl, because it gives you indications what type each variable is:

$ for scalars (single values without dimension)

@ for arrays

% for hashes (like python's dictionaries)

With python, you have to guess.

Of course, many people who are intimidated by Perl have made the same statement about readability, and it is often repeated unthinkingly. That doesn't mean it's true.

On the other hand, Perl does make it easier to write unreadable code. Just like any powerful tool -- cars, telephones -- it can be abused.

All that being said, I think Python is a great choice too; I just disagreed on the readability point.
Harvard is neck and neck with columbia as the worst University in America.

I mean, these places are more correctly classified as "re-education camps" than universities.

With that in mind, why in the world would anyone be interested in anything that happened at any of their commencements.
But that's just it, it just "feels" far leaner. jQuery, uncompressed and unminified, is almost as bulky as Prototype (100 KB vs. 124).

Prototype does a lot in that extra 24 KB, is faster on some benchmarks, and I just like the way the code looks. If you just minify and gzip Prototype, you're looking at a much lighter footprint.

In the end, none of the frameworks are very lean: though Mootools and YUI are at least modular.
Coming from a Perl background, you would probably be more comfortable with PHP. Definitely checkout the KohanaPHP framework (www.kohanaphp.com) for a solid, well-designed PHP5 MVC framework, With a good framework, you can write very readable and maintainable code.
I appreciate the advice.

You know, I sometimes feel as though I'm living under a rock. It pains me to expose my naiveté, but I never really heard of (even the word) Drupal until about a month ago and all of a sudden /bam/ I must've overheard Drupal in conversations at least three or four times since then. I never really put two-and-two together on this one; selective hearing perhaps?

I tell ya, I'm always learnin' something new.

Thanks for opening my eyes.
Once again, I appreciate the links. Thanks.
Yes, Perl encourages readability in the language by one of its language features, the helpful prefixes in front of variable names.
Prototype has class-creation helpers galore, whereas jQuery expects you to do things the old-fashioned way.

There's a lot of jQuery love and Prototype hate out there, which I don't quite get. Both are fantastic; both are bloated.
i dont know but I just signed up. I've been doing RoR for almost two years now ( 8 months at a small company, and 11 months at JP Morgan Chase).

see ya there!
Cosmology in Ten Minutes
Another PHP framework: Qcodo. Thanks.

I think, maybe wishfully, that the product will need to scale which means bringing on other hackers to join.
9 Reasons to take Trains
This has fallen off the front page, but this article inspired me to give my own treatment of the state of cosmology, and the results mentioned here.

Read Cosmology in Ten Minutes:

http://einfall.wordpress.com/2008/06/08/cosmology-in-ten-min...

Or on HN:

http://einfall.wordpress.com/2008/06/08/cosmology-in-ten-min...
I'm downmodded because the poster didn't do his research and I pointed it out. Funny.
I can tell ya that reading and understanding some of my own Perl from even 3 or 4 years ago is a real challenge. ;)

All I can say is that I hope I'm getting better.
One approach should be finding out what carriers accept Email2SMS. That's a very (and cheap) approach. That's what RememberTheMilk does.
Ha ha ha, how about Sun open-sourcing Java way too late to be of relevant use to anyone?
You can get pretty far in the internet biz with no taste (MySpace... originally done in COLD FUSION).

And don't forget those non-tasty table/tr/td non-div tags MySpace is also known for. ;)

Anyway, I think you have a point. Thanks for your insight.
Ask YC: agressive non-compete/non-solicitation agreement
I'm about to sign on to a NYC-based startup on Monday, and this part of the non-compete agreement they sent me raises a flag:

Covenant Not to Compete: The Employee agrees that for a period of twenty-four (24) months following termination
of the Employee’s employment with the Company for any reason, the Employee will not, directly or indirectly, own,
manage, control or participate in the ownership, management or control of, or be employed or engaged by or
otherwise affiliated or associated as a consultant, independent contractor or otherwise with any other corporation,
partnership, proprietorship, firm, association, or other business entity that is engaged *in any manner in the
Business of the Company in any market (including the Internet market)* located in the United States as well as
outside the United States in which the Company markets any of its products or services.

Am I right interpreting this as saying that I can't work for internet related companies if I leave the company? Is this unenforceable boilerplate legalese that I shouldn't worry about, or something to discuss?

Another provision which bothers me is one that says I won't (for 24 months) "Employ, assist in employing, recruit or otherwise associate in business with any present, former or future employee". Is this something that's worth challenging?

I don't fully understand some of the other concepts in the agreement - things like definitions of "Reasonableness" and "Toll Period", which seem to be based on particular cases or laws - what is a good place to read up on this?
Thanks for this. I've been looking for something less bloated than jQuery and Prototype. I like native code, but don't always have time to handle every browser incompatibility.

> anything but Mozilla, I think

WebKit also handles things well:

[].map

function map() {
[native code]
}

[].forEach

function forEach() {
[native code]
}
Hopefully, PHP would still be the right choice for me if I then have to move beyond the single hosted server.

That is interesting though; that there does seem to be a ton of hosting options with PHP versus Python.
because it gives you indications what type each variable is:

Not really. Guess what type $foo is in each case:

my $foo = [];
my $foo = {};
my $foo = "Hello, world.";
my $foo = \"Hello, world.";
The question is not 'would' but 'should'. If, as a person, you are 'crashing' routinely and 'bleeding profusely' (users) then, ignoring matters of pride or self efficacy, the answer begins to shift more to the, 'Yes, I should.' side.
Some of his predictions are impressive but others tend to feel quite obvious, particularity with the amount of momentum within those fields already. Sadly, to me, Kurzweil and his works all seem to reek of a man who is just scared to die and attempts to create self fulfilling prophesies to extend his life. He also tends to base many of his predictions off the advancements in technology rather than the human side of A.I. When the number in the amount of transistors chips comes to fruition according to Kurzweil predictions, devices will not magically pass the Turing test. I attempted to read 'The Singularity is Near' and had to stop. Reading and perpetuating his work will inspire and change the worlds path and I would rather it not become self fulfilling.
I don't mean to be coy, but it comes down to giving people something that 1) removes, transfers, or simply defers pain and 2) simply increases happiness.

I would think that's useful in some way to some people at least some of the time.
Religion is based on faith--believing in the impossible, contrary to all empiric evidence. Belief in the Singularity is a simply a prediction based on current technology vectors. If you understand the theories behind artificial intelligence, and believe Moore's law will continue for 10-20 years, the Singularity is a logical conclusion. To call it a religion reveals a deep misunderstanding of the theory, and the motivations of the people who think it is a possibility.
May I ask why you switched from Pylons to Django?
Let's spell "Recommendations on CDN" correctly for the search engines.
Thanks for the link! That's exactly what I was looking for.
I think this is definitely one of those rare times when having fewer candidates will be better for the country.
This is stated as an absolute where there are certainly good PHP developers that work at Yahoo and Facebook... still, a less extremely worded version of your statement is true.
Most fundamentally, PHP combines Perl's array and hash data structures. Although you can access name/value pairs as even and odd array elements, code that doesn't need both sets of properties will run slower and consume more memory because a structure implementing both sets of properties is implemented automatically.

Why use a languge like that when you're already familiar with Perl?
First I read about the code men write to send TO Mars (Phoenix rover) and now I find out that its actually FROM Mars.

It seems as though one of these stories is factual and the other . . .
The deeper problem here is that loosely-coupled CPUs have a value approximating 0. Your unused CPU cycles have absolutely no value to you, so what you are going to see if a fast race to the bottom in terms of price. This sounds great, particularly if you need some sort of embarrassingly parallel task performed, but most of the people providing the CPU cycles will have an artificially inflated sense of their value (e.g. "I paid X for this system and if I participate in this scheme for some period of time I should expect to get X/time back") and are not going to stick around when they learn that in return for the overhead of the cpushare system and bandwidth costs they will incur the CPU provider will end up with diddly-squat in return.
This is a very good speech. Whether or not it happened at a 're-education camp' irrelevant to its merit.
Well said. I'm impressed.
Timed animation isn't that tough.

Just track the actual number of frames an animation has taken so far and the number of frames it needs to take to complete in the time taken. For bonus points re-average your framerate each time an animation ends by keeping track of the number of frames an animation actually was able to take.

And as far as easing goes...

http://www.robertpenner.com/easing/
Intel Premier IT Magazine on "War Gaming"
As a recent Harvard graduate who was disappointed in his University President (Larry Summers) and his commencement speaker (Tim Russert), I can say I was really thrilled to hear both Faust's and Rowling's speech. Both were truly excellent, but Rowling's was particularly relevant to her audience given the tendencies of Harvard seniors to view life as a race to the top of Goldman Sachs. Harry Potter aside, Rowling continues to impress me as an amazing person and a model for entrepreneurs. For example, want to know who gets good contract terms? Look at J.K. Rowling. Want to see someone who knows how to control the media? J.K. Rowling once more. She's very understated, hasn't destroyed anyone's livelihood, and yet she's immensely successful (and still down-to-earth). I hope to be like her one day.
Thanks. I didn't know about PHP's array/hash combo.

Would there be nothing for someone familiar with Perl to learn from using a language like Python?

I appreciate your thoughts.
You could go down the SMS/email gateway route, or use a company like Clickatell to send messages for you (though I don't have any personal experience with them). But seriously, http://www.google.com/search?&q=sms+site:news.ycombinato...
For one reason or another, people have an emotional investment in Twitter. Maybe it's just the cutesy vocabulary and artwork, but I like to think that people are invested in the promise of Twitter (that is, Twitter as a product with attractive features).

That, and also how the spectators and critics are investing in themselves by how much they complain and speculate about how each little thing is being mismanaged. It is Twitter, after all.
Is anyone here interested in buying CPU cycles?

I wonder if there's a market of buyers.
The idea is cool though.
I am a law student, not a lawyer, so this isn't perfect advice.

Non-competes basically contain three elements:

1. Scope - what you can work on. This non-compete says anything that NYC company does.

2. Duration - this one says 24 months

3. Location - this one says anywhere.

Regarding #1, the court will likely hold that this is reasonable. A non-compete can keep you from working on what you know.

Regarding #2, 24 months is on the long side of acceptable duration. It isn't completely unreasonable, but it is long.

Regarding #3, this is a tough one. As a law student I have not dealt with internet non-competes. It makes sense to limit competition in a geographic area. For example, an agreement where a barber cannot open a competing barbershop next door is considered reasonable by the courts. But location doesn't apply easily to the internet. Where the business is matters less.

To research more, try to go to a law library. Go to the 'Hornbook' series. They are summaries of law across the United States. They are not actually law. You will need to see what rule actually applies to your jurisdiction. There are many Hornbooks (ones on contracts, torts, property, etc). You will have to look at the table of contents and index to see which one you need.

Second, in the law library, take a look at American Jurisprudence. It is similar to the hornbook. You will most likely need a law librarian's help with that one.

You can send me an email with more questions on reasonableness and toll if you want. My email is in my profile. I can answer questions much better if I can read the whole agreement and I know the background on the business.
Wifi is such a disaster. The horrible wifi hotspot industry is about to be killed off by 3g/4g technologies. And good riddance.
Get a lawyer to read it for you. Also, negotiate; the contract they gave you to sign is an offer, make a counteroffer.

Do be prepared to walk away from an agreement that makes you uncomfortable, if someone wants to put you into a position where you effectively can't leave the job without suing them; that's a bad sign.

But definitely get a lawyer; if you don't have the right background to understand what the contract is saying, then don't sign it until someone who does can explain it to your satisfaction.
wow. I wrote that same passage down, and this one: "There is an expiration date for blaming your parents for steering you in the wrong direction."
We need to stop measuring the intelligence of computers by how many calculations per second they do. Right now we can put together computing systems that can do the amount of calculation under discussion, but fairly slowly. So what if it takes 10x as long to get a thought out? It's all in the program, and no one has the slightest clue how to program thought for now.

I'm also skeptical that the singularity will really move all that fast -- how do we know how much time it will take for each 1% of improvement? Just because a computer is capable of self-improvement doesn't mean that it will be fast self-improvement. I'd imagine that while the computer is better at each step, each step is also harder.
Best online CSS tutorial/class?
My CSS kung-foo is relatively weak, and I'd like to work on that. Any favorite CSS tutorials out there I should take a look at?
I was told non-competes are 1 year and not enforceable in California. But definitely check before you believe me :)
Or, maybe their bullshit hasn't caught up with them yet.
I don't take their arguments seriously. I am merely annoyed by their posturing.