375 karma · joined June 12, 2007
Some of this is just proficiency in the specific language, but it's more about the concepts and idioms of programming in general. I've fixed a bug in an open source python project, and I couldn't write a "Hello World" program in python without a reference.
But do note that "well-written" is mandatory. If the code isn't well-written, it will take you a lot longer to figure out. The code I wrote in high school was pretty bad.
Variables should be named to describe what they represent. You should have a reasonable number of comments, not too many or too few (ironically, this amount changes as you get better). Divide your code into manageable chunks and split them into subroutines. Within subroutines, separate the chunks with at least one blank line.
By the way, the early years of the IMO were very easy, by today's standards (only a few countries were involved at that point). They would probably be approachable to people comfortable with the AIME problems.
I also subscribe to steve yegge's rss feed, raganwald's, jeff atwood's, joel spolsky's, paul graham's, xkcd's, TED's, and so on. It would be ludicrous to try to get people to stop posting links from all the sites I subscribe to.
Also, there are a bunch of contest problems on John Scholes's website: http://www.kalva.demon.co.uk/ . It seems to be down at the moment, but I'm sure it'll be back soon. Of the contests I'm familiar with:
AIME is for fairly advanced high school students (say, on average, one person per high school might take it, and most won't get any of them right)
USAMO is a step up from AIME -- the top ~150 high school students in the US take it each year
IMO is a step up from USAMO -- basically, don't even bother
Putnam is an exam for US university students -- it's generally considered difficult, since the median score is usually 0, even among those willing to take it in the first place, but A1 and B1 are usually pretty easy on every test; I would say it's between AIME and USAMO
I find every ambitious town sends you a message. New York tells you "you should make more money." LA tells you "you should be better looking." Rome tells you "you should dress better." London tells you "you should be hipper." The Bay Area tells you "you should live better." And Cambridge tells you "you should read some of those books you've been meaning to."
Somewhat recently, we switched to git and started hosting ourselves, but you might look into code.google.com .
If you don't actually want your code to be public, just get some free online storage. Do you really need more than 5GB?
But note the first three words: all things equal. You should choose the best person for the job.
http://www.filtermyrss.com looks much more to my liking, although it's a bit low on features. My feeling is that it's about a 10 line perl script: fetch xml with LWP, apply regex, print.
I've actually been looking for something like feedity, but I need control over the code, since I'd want to use it for sites that require authentication. However, my feeling's that this one's about a 20 line perl script with LWP and Algorithm::Diff, so it's not a big deal.
Maybe I'll combine them into a 30 line perl script and get rich!
sync:
rsync -az --progress ./ user@host:public_html/
.PHONY: sync
But for anything significant, I use a VCS, currently svn or git.In the free (as in speech) software world, major versions indicate major changes in the software (e.g. gtk+1 vs. gtk+2). A series of minor features, no matter how long, doesn't warrant a new major release number.
You should name it 0.10, like almost every other project would. How do you think the linux kernel got to 2.6.25?
Interestingly, the "comments" link for it points to http://news.ycombinator.com/item?id=196342 -- the original post without any comments shown!