Interning on FOSS 1: Open Source Development June 23, 2009
Posted by Aditya in Internship, Open Source, Research, Software, Software Development, Technology, Thoughts, Work.add a comment
I’ve been interning at Sun Microsystems in Delhi from May 1st and during this period, I’ve had the opportunity to research a variety of open source applications. My initial project was to explore and research various open source applications suitable for use by students and compare them against each other and with the proprietary alternatives. There are indeed a bunch of alternatives available for the software we use during the course of our day to day work.
I managed to submit a paper on “Components of an Open Source Operating System for Sustainable ICT Education in Schools in Developing Countries” to the HICSS conference, and I’m starting off a multi part post with my learnings on open source software and development.
One of the interesting works that I read on open source development was Eric Raymond’s “The Cathedral and The Bazaar”. This is probably one of the definitive works on open source development, and a number of theories stem from it. In fact, quite a few papers that I referred to during the course of my research cited this work. He has postulated the following principles in the essay:
-
Every good work of software starts by scratching a developer’s personal itch.
-
Good programmers know what to write. Great ones know what to rewrite (and reuse).
-
Plan to throw one away; you will, anyhow.
-
If you have the right attitude, interesting problems will find you.
-
When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
-
Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
-
Release early. Release often. And listen to your customers.
-
Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone. (The full version of Linus’s law – Given enough eyeballs, all bugs are shallow)
-
Smart data structures and dumb code works a lot better than the other way around.
-
If you treat your beta-testers as if they’re your most valuable resource, they will respond by becoming your most valuable resource.
-
The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
-
Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
-
Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.
-
Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
-
When writing gateway software of any kind, take pains to disturb the data stream as little as possible—and never throw away information unless the recipient forces you to!
-
When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
-
A security system is only as secure as its secret. Beware of pseudo-secrets.
-
To solve an interesting problem, start by finding a problem that is interesting to you.
-
Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.
Most of his principles are for software development in general, and so also apply to open source development. The key learnings form his essay are two-fold. First is that it is important to have a working prototype of the project before making it open source, or at least trying to find other developers who’d be interested in it. Second is that open source attracts a wide variety of talent that can be put to various uses, ranging from bug finding, to improvement suggestions to actual coding. Thus, it is essential to treat the participants in the right manner as everyone could make an important contribution.
One of the other observations to be made about open source development is the vital role that the internet has played in creating the synergy that exists between the developers, users and other contributors of any open source project. In fact, Eric Raymond has said as much in his essay:
… Another (in hindsight) was that the Internet wasn’t yet good enough.
Before cheap Internet, there were some geographically compact communities where the culture encouraged Weinberg’s “egoless” programming, and a developer could easily attract a lot of skilled kibitzers and co-developers. Bell Labs, the MIT AI and LCS labs, UC Berkeley—these became the home of innovations that are legendary and still potent.
Linux was the first project for which a conscious and successful effort to use the entire world as its talent pool was made. I don’t think it’s a coincidence that the gestation period of Linux coincided with the birth of the World Wide Web, and that Linux left its infancy during the same period in 1993–1994 that saw the takeoff of the ISP industry and the explosion of mainstream interest in the Internet. Linus was the first person who learned how to play by the new rules that pervasive Internet access made possible.
In essence, open source development has a lot of potential when used in the right manner. In fact, many companies use it quite strategically and couple them with interesting licenses (I’ll cover licenses in another part). There are also quite a few organizations championing free (as in freedom) software with the FSF (Free Software Foundation), headed by Richard Stallman being one of the pioneers. There is also a bit of controversy in the Free/Open Source world with some preferring the term free to open source. This has however not deterred organizations from leveraging open source development strategically. Open source development may not be practicable in every situation, particularly for routine software development in enterprises, but it definitely has its merits and I’ll be looking at other aspects of open source software in subsequent parts.
Revisiting University 2.0 June 18, 2009
Posted by Aditya in Education, Presentation, SJMSOM, University 2.0, Videos, Web 2.0.1 comment so far
It has been a while since I dwelled on the University 2.0 topic. In fact, I had given a presentation in one of the Systematics club (our Systems club) meetings in SJMSOM. We managed to grab a video of the session, and here it is.
Here’s the presentation I used for the session.
Windows Services & ATMs June 17, 2009
Posted by Aditya in ATM, Errors.1 comment so far
I found a nice little error message waiting for me on the ICICI Bank ATM in Basant Lok, Delhi. I found it for the first time last evening and again this afternoon. So, I guess the ATM’s been out of service for almost a day. Somewhat ironically, the SBI ATM in IITD was also having issues due to which I was not able to withdraw any cash.
Below is a quick photo of the ICICI Bank ATM that I grabbed.
OpenOffice Writer, citation & table quirks May 14, 2009
Posted by Aditya in Applications, Citation, Internship, Open Source, OpenOffice, Tips, Tools & Utilities.add a comment
I’m two weeks (out of eight) into my internship with Sun Microsystems in Delhi, and have been using OpenOffice almost exclusively to create & edit documents during this period. Initially I had installed version 3.0 & last week upgraded to the latest 3.1 version. Feature wise, OpenOffice seems to be quite a useful alternative to MS Office, though it is not entirely compatible with the Office 2007 formats, particularly pptx.
There have been a couple of features that I found lacking in the OpenOffice writer. The first was the lack of a proper citation/reference management tool like in Word 2007. The database based feature seemed a bit too complicated. As I was looking around on the OpenOffice wiki, I found a nifty Firefox based utility called Zotero. It allows the collection of reference sources on Firefox & these can later be inserted as references in Writer. It supports a number of citation formats & also allows one to insert a bibliography section that is synced with the main Firefox reference database. There is also a plugin for MS Word in addition to some other word processors. There seems to be one limitation with the reference tool though – it does not support inserting references in tables. Still, it is quite a useful tool to have.
And, talking of tables in OpenOffice Writer, there is a feature turned on by default that seems to be more irritating than handy. This is the auto number formatting in table cells along the lines of a spreadsheet. I found this to be quite a problem when typing in numbers with decimal points (entering “3.0” would get converted to “3”) or date like numbers/phrases that got converted to a different format. This feature while quite handy in a spreadsheet caused me quite a lot of problems initially before I turned it off. Turning it off is quite simple. Just go to Tools->Options->OpenOffice.org Writer->Table and uncheck the “Number recognition” feature (I could have probably just unchecked the “Number format recognition”). I did the same under the OpenOffice.org Writer/Web section too, to be on the safer side.
The Apple Story April 13, 2009
Posted by Aditya in Apple, History, Presentation, SJMSOM, Technology.add a comment
I created a presentation on the history of Apple over this weekend for my Management of Technology course in SJMSOM, IIT Bombay. Unfortunately, the presentation session seems to have been scrapped. So, posting the presentation here. Do let me know how you find it.
Update: Also posted the animated & slightly updated version on youtube:
Filling in the gaps March 21, 2009
Posted by Aditya in Posting, Thoughts.1 comment so far
This post marks the end of my longest gap in posting to my blog since I started it. So, what have I been doing in this period? Well, for one, I was really busy organizing the Systems Continuum 2009 (one part of the rolling seminar series of SJMSOM). In addition to this, there was the usual academic loads. I am also part of my school’s IT team. So, its been pretty busy over the last 3 months
.
I have quite a lot of posts in the pipeline & here’s a list of those that I’m planning (I’ll link to them as I complete):
- Stock market game on Rails – A game I’d developed for our cultural fest (made it open source on rubyforge)
- Follow-up on University 2.0 – I took a session in one of our Systems club meetings
- Experiences using Google Sites & Apps
- Experiences from Continuum 2009
- Online toolkit for college goers – similar to the college goer’s freeware toolkit
That’s a fair number of posts, so let me get started on them.
College goer’s freeware toolkit October 14, 2008
Posted by Aditya in Applications, Education, Freeware, Image editing, Software, Tools & Utilities.4 comments
I’ve been suggesting quite a few software to my classmates over the last few months. So I thought of collating all the recommendations into one post. Here’s the list of different freeware that should be useful for different purposes.
Image editing
GIMP – This is the open source alternative to Photoshop, and the most popular image editor on Linux. It has a variety of features and there are quite a lot of tutorials available on the net for it. It recently underwent an interface overhaul.
Paint.NET – A Windows only image editor that should be powerful enough for most needs while being fairly simple to use.
Picasa – Not a full fledged image editor, but good enough for touching up photos. It serves quite well as a photo organizer, and is the official tool for uploading to Google’s Picasa web album.
Windows Live Gallery – Very similar to Picasa, with slight differences in the interface. It fills the gap for a uploader combined with a photo gallery for Flickr.
Video editing
Virtualdub – A very basic video editor (mainly for AVI files), useful for trimming and clean up.
Windows Live Movie Maker – The Live version of the popular Windows Movie Maker that supports publishing to the MSN online service.
Videospin – A very good alternative to the Windows Movie Maker. It has a host of features, and videos can be created in a variety of formats. I got to know of it from its coverage on the Digital Inspiration blog.
Audio editing
Audacity – One of the best audio editors out there, and a very handy alternative to the paid Sound Forge. Very useful for performing different tasks and processing on audio clips.
Screencast
Camstudio – A decent alternative to the paid Camtasia Studio. It supports the creation of screencast videos, along with the ability to record audio.
Wink – Another screen capture software that records images, but can also be used for making screencasts.
Document creation
OpenOffice – An open source alternative to Microsoft Office – not 100% compatible, but it has some additional features of its own along with support for other formats. The memory usage is on the higher side.
Lotus Symphony – Another alternative to MS Office by IBM. Similar to OpenOffice, but with fewer applications in the suite.
PDF creator – A handy utility to create PDFs from different sources (installs as a PDF printer).
Notepad++ – A must have replacement for notepad. Has a tabbed interface, supports syntax highlighting (useful for editing HTML, XML etc), and recording of macros.
Utilities
7-Zip – Supports most of the commonly used compression formats like zip, rar, cab etc along with its own 7z format which boasts of one of the best compression ratios. A very good alternative to paid software like Winzip and WinRAR. It can also be used to split files which comes in handy when sending large email attachments in batches.
CCleaner – One of the most popular system cleanup utilities. It clears temporary files, browser cache, history etc.
VirtualBox – Useful for creating virtual machines, like say for Linux which can then in turn be used for different purposes. Much more convenient than trying to set up dual boot configurations, especially on laptops.
Fun stuff
ComicRack – Very useful for keeping ones comic/ebook library organized. It supports various formats like pdf, cbr etc. Kind of like a media library for books.
Internet
Pidgin – A popular messaging client that supports most of the major IM networks like MSN, Yahoo!, AIM and GTalk. Definitely more convenient than having a ton of IMs loaded at the same time, granted that none of the advanced features of the networks are being used.
Flock – The social network incarnation of Firefox. It contains built-in tools for posting to blogs, uploading to photo sharing sites like Flickr, checking social networking sites among many other features.
Feed Demon – A powerful feed reader that is integrated with the Newsgator service (similar to Google Reader) to keep feeds in sync across machines.
RSS Bandit – Another feed reader that’s currently under development, but supports integration with Google Reader.
Portable Apps
PortableApps comprises of an entire suite of applications that can be run directly from a removable storage device like USB drives and external hard disks. It contains many of the software mentioned here. Some of them are included by default in the download, while others can be added using the respective installers.
The applications range from browsers and email clients to media players and editors, office applications to virus scanners among many more. Every portable device should include this.




Digg/abaditya
Flickr/ab_aditya
Facebook/Aditya Banerjee
Linkedin/abaditya
Twitter/ab_aditya
YouTube/abaditya
Del.icio.us/ab_aditya
Technorati/abaditya
MyBlogLog/ab_aditya






