Flickr Badge

Wednesday, September 29, 2004

Spread Firefox - Ten Days

Results of the first spread firefox campaign are out! The aim was for 1 million downloads of Firefox Preview Release in 10 days. The result ?


  • 10 days.

  • 2 million downloads of the Firefox Preview Release.

  • 10,000 registered users.

  • 100,000+ referrals by our 100 most active participants.



This is great news. The second spread firefox campaign is running. The goal is to get 10,000 new users for the SFX (spread firefox) campaign over the next 10 days. Signing up is as simple as clicking my referral link (it gives me referral points), and entering an username and email address. As an added incentive, you can collect points for everyone else that you refer, by passing others your referral link for others to sign up.

So go join up already!

43 Folders

The hot item going through the blogging community is Merlin Mann's new blog, 43 Folders. The core theme of the blog is David Allen's book Getting Things Done. (The name 43 Folders is itself derived from one of the concepts in the book).

I have been following the blog over the last week or so, and it looks very interesting. I certainly have a problem when it comes to getting things done, and this has made me think about implementing the system. Its all experimental of course, but if it works out reasonably well, I think I'll go out and buy the book.

By the way, 43 Folders is on my Bloglines subsription list and should now appear on my BlogRoll on the sidebar. If you are on Bloglines, I recommend subscribing to 43 Folders. Another good idea would be to read the posts in the archives, as this would form a base for understanding future posts.

In the meantime, I'm going to implement the system over the next month and report the results.

Tuesday, September 28, 2004

The Tao Of Programming

Thus spake the master programmer:

''When the program is being tested, it is too late to make design changes.''

- The Tao Of Programming:

Why specs matter [dive into mark]

Why specs matter - Nice article by Mark Pilgrim. Made me chuckle at the nice categorisation. The thing is that its not only amusing, but quite true. Of course, we dont have specs (!!) for our current project, so we are all morons. I'm working on it, but its always hard to do it retrospectively.

PL People

Programming Languages and their - A nice page with a list of programming languages and their inventors. Be sure to click on the various links :-)

Saturday, September 18, 2004

Yes, you know its true

Ben Goodger (Chief Firefox developer) writes:
"Netscape had it by being first.
Microsoft has it by being everywhere.
Firefox will have it by being best.

We're coming."

Firefox is coming, and its coming big!

Friday, September 17, 2004

It's here!!

Firefox - Preview Release 1.0. The Firefox 1.0 preview release is here !! I'm a devoted Firefoc user, and I highly recommend it. I'm putting a button on the sidebar to promote it. You should too ! Here is another big fat link so that no one misses it.

Get Firefox!

Tuesday, September 07, 2004

Google Code Jam 2004

Google Code Jam 2004 - The Google Code Jam starts in a few days time.

Google is looking for engineers with the programming skill to rewrite the world's information infrastructure. The Google Code Jam 2004 is one way we hope to find them. While we don't impose arbitrary deadlines on our engineers, we do put a premium on well-implemented code. And we appreciate the thought process required to create it. In fact, we appreciate clear thinking in all its forms, from puzzle solving to chess mastery (one of our interns was an International Grand Master).

Friday, September 03, 2004

How to Design Programs - MIT Press

Yesterday I had blogged about the books I couldnt find in Bangalore (Programming Pearls and The Practise of Programming). Today I'm going to blog about one of the books I did find (the rest will be in subsequent posts).

That book is "How to Design Programs" from MIT Press. I had been looking out for the book, having read a part of the online version of the book (available here). Little did I expect that it would be available in India. Well, surprise of surprises, I ran into a single copy of the low cost reprint of the book, and didnt hesitate in snapping it up.

The book is interesting because it uses PLT-Scheme to discuss program design. For those unfamiliar with Scheme, it is one of the Lisp derivatives. Teaching program design in a functional language leads to some interesting approaches. For example, you might expect material on variables and how to use them to appear in the first couple of chapters. In fact, variables are introduced right at the end of the book well after the discussion on recursion, graphs, algorithm analysis and data structures. This is because functional languages, being optimised for recursion and function calling, can often use a function call instead of using variables.

To give an example take the following java snippet -


public int func(int a, int b) {
a = 4+3;
b = 3*a + 7;
return a+b;
}


the equivalent structure using the standard scheme design will be -


private int calcA() {
return 4+3;
}

provate int calcB() {
return 3*calcA() + 7;
}

public int func() {
return calcA() + calcB();
}


Notice the lack of variable use. One of the big advantages of such a design is that the program readability - provided you use good function names - is vastly improved. Its an interesting way of thinking which is not apparant to someone who does not have experience with functional languages. Overall, it is an interesting book, and well worth reading. Since the whole book is available online for free, no one should miss out.

Which brings me to my next point. Every programmer should have at least a passing introduction to the four main programming paradigms - imperative programming, object-oriented programming, functional programming and logic programming. This provides a broad scope with which to solve problems, as often solutions can be applied between paradigms; object-oriented design for C programs being a classic example.

It is a pity that Indian universities often teach only what is required by the software companies. This usually means Java with a touch of C by the side. The end result is that the graduate can do his job, but it is rarely creative. Standard formulae are applied to standard solutions by a mass of programmers (quantity over quality?) resulting in something that works, but is rarely innovative. I would like to say more on this, but thats a topic for another post.

In any case, the point I am trying to make is to urge you to go and read the book online, for free, as a good foundation in functional programming does help a lot.

Wednesday, September 01, 2004

The Practise of Programming - Kernighan & Pike

While I was in India, I thought I might as well pick up Programming Pearls and Practise of Programming. Well, guess what ? Both books are out of print. Every shop I went to assured me that the books are being reprinted, but can give no concrete date as to when they will be available.

In any case, I've downloaded Practise of Programming of Programming (pdf) from the Internet using my elite mad downloading skillz ;-) Its their loss. If and when they do get a reprint out, I'll buy it - provided I'm still in India.

I just finished reading practise of programming. Its a fabulous book. I've read it before of course (about 2 years back), but not very thoroughly. I had just skimmed it and made a mental note to buy it when I left college. I've read it more thoroughly now, and I've really enjoyed it.

The best of web tool sites

These days, things are slowly moving out of the PC and onto the Internet. So what are the coolest tools that are required for daily survival ? I present to you the set of web tool sites that are essential for daily survival -


  • Bloglines - Bloglines is an online RSS news aggregator. I use it to keep track of a number of blogs.

  • Blogger - Use it to blog, what else ?

  • del.icio.us - My online bookmarking site. It can categorise and store your bookmarks online, so they are accessible from any computer. Just drag a link on your toolbar, and anytime you want to bookmark a site, click the link. Thats it! The coolest feature is that you can see other peoples bookmarks and related bookmarks. I use it to bookmark a site and then see who else has bookmarked that site. Then I see the other related bookmarks that they have bookmarked. Great way to discover new sites.

  • furl - Similar to del.icio.us, but allows you to save and search the contents of the site that you bookmarked. I use del.icio.us to save any websites of interest and furl to save the contents of particular pages.

  • mailinator - How many times have you had to register for using some stupid service, and you dont want to give away your email address ? Mailinator to the rescue. Mailinator will recieve mail to any_address@mailinator.com. You can then see the mail that address. Its not password protected, so anybody can see anyones mail, so be sure to use an address that nobody can guess like gyefdiyf@mailinator.com. You can then go there and check the mail. All mail is automatically deleted after a couple of days.

  • dropload - You want to email someone a big file, but you cant attach such a big file; or you dont want to fill up the recipients mailbox. Enter dropload. You can upload anything of any size to dropload, and dropload will send a mail to your recipient with a URL from where they can download the file. Uploads are deleted once someone downloads then, so you cant use this to put up permanent downloads. Also, all uploads are deleted after 48 hours.

  • Bugmenot - You go to a website to read some content, but it asks for registration. Argh, you are in no mood to create an account just to read one article. This is where bugmenot comes in handy. Enter the URL into bugmenot and it supplies you with a dummy username and password that someone else has created to let you enter the site. If no username and password exists, you can create a dummy account and upload the username and password into bugmenot for other people to use. Just be sure that there is no personal information in the account.