Jaipur, here we come

Uncategorized June 20th, 2009

So it seems Praneeth and I will be off to Jaipur over the next weekend (26-28 July) to lead a 3-day session about linux and open source at a Poornima college. I’m not sure of the details of the logistic such as venue, etc. since my involvement in that part was limited to being asked if I’m up for it by Praneeth and then sending an outline a couple of days later. Most of that work is apparantly being taken care of by the folks from Young Engineers and some people from the host college, so they’re the ones to thank for setting it up.

Edit : It seems the Rajasthan university postponed its exams, due to which the lectures are also being postponed for the moment. We dont know when they will happen now, or even if they ever will. I’m leaving the rest of the post intact because it would apply to other situations as well.

The outline we sent in is largely derived from the talks I gave recently in the Students Gymkhana lecture series, and looks something like this :

Talks only – spread over the three(?) days

Philosophy and Architecture
- Free Software and Software Freedoms
- Free Software Licenses
- Anatomy of the Linux Operating System
- Kernel-space vs user-space
- Files and Filesystems
- User-space Applications
- Application / package management

Linux system administration (or, installing and using linux)
- Decisions you need to make when installing
- Useful config files and commands

Hands-on supported sessions

1 : Dive into the terminal
- Terminals, shells
- Generic command structure
- Basic commands : cd, ls, mv, cp
- Interesting commands : cat, grep, touch
- Piping, redirection

2 : Doing stuff on the terminal
- A text editor
- Writing and running a hello world (python)
- Compiling a small application from svn (./configure, make, make install)
- File permissions and ownership

3 : Open ended, participant driven session

4 : Install fest?

While we’re planning to stick to this as far as possible, there is still scope for some modifications here and there. Thats where this blog post comes in. When I did the lectures last week, there were times when I felt that things were going a tad bit outside of the audience’s comfort zone. Praneeth handled the Hands on sessions in the Young Engineers summer camp on the linux track (which is pretty much what the hands-on sessions planned this time as well will look like), where I dropped in for a while, and there we saw a wide spectrum of responses, from people who could barely handle a terminal to those who were bored after the first hour or so.

The questions that have been picking at me at the back of my head is this :

What sort of audience do we expect at Poornima? Should we simplify the talks, should we make them more comprehensive, or should we just go by the crowd’s reactions?

What would they expect? What would _you_ expect if this sort of thing were happening in your college/school/whatever?

Looking Forward

Uncategorized May 30th, 2009

I haven’t quite been writing much lately (surprise, surprise.. :P ). While I wouldn’t make any promises for the near future either, largely because I am (and have been) in a state of a strange superposition of busy and preoccupied (which are’nt the same thing, by the way), I’m dropping in to say I still exist, I’m alive (mostly), and should be writing a bit more often in a few days.

In the meanwhile, here are the ‘first look’ sort of videos of three web based tools that promise to change the way we do things. Whether either of the three will actually deliver is yet to be seen, but they do have certain potential. Interestingly, I came across them via three channels that, in their respective times, did change the way we communicate and use the internet, although to a slightly lesser degree - IRC, Facebook, and Twitter.

1. Wolfram Alpha

2. Bing

3. Google Wave

False Promises of Usability

Uncategorized February 26th, 2009

I´ve been using computers for a long time now, and I´ve seen the evolution of the modern operating system almost as if it were happening in front of me. Sure, I´m not very old. I havent used the most of the first Unixes and first GUIs. I missed completely the dominance of the mainframe, and never actually saw a punch card, let alone touch one. I wasn´t even around when the first networks were born. By the time I got used to computers and networks as a way of life, usenet was pretty much dead and IM was on its way to being king. The following is an account of usability from my perspective, heavily influenced by things I have been exposed to. In the grand scheme of things, I might be very, very wrong on many counts.

I remember still, though, the time when MSDOS was the operating system of choice on the personal computer. I remeber the time Windows 3.1 came out, and everyone appreciated the fact that once you booted into the cold, heartless DOS command prompt you could type in ´win´ and an oh-so-friendly GUI came up, never mind that it did very little. Then, usability did not mean what it does now. The GUI made things easier, nicer to the eye. The assumption was and remained to be that computers were complicated beasts and were respected. The GUIs, although they did very little, did improve the human interface to things so that kids such as myself could do small things without worrying too much about the underlying complexity. Soon, we moved on to Windows95, around the time the Internet was gaining mass adoption. The definition of usability started to change around then. Windows 95 was good, for its time. It tried to eliminate the command line altogether. What it caused was pretty much a shift in the paradigms of computing. A system that required human intervention became a ´bad´ system. Computers, and more specifically, operating systems, had to ´Just Work´. Hardware became infinitely diverse. AMD started beating the crap out of Intel in the decade to come, and then Intel returned the favour. SiS, ATI, nVidia and others started taking graphics to a whole new level. Computing had, for the first time, become something ´for the masses´. This transition, however, started another in the background. The basic assumption about computers being something you respected started to erode. In the 14 years since, people have hurled all sorts of abuse at computers. The fact that they even survive today is testament to the fact that they are something real, something substantial, and that they are not just a child´s toy. They pretty much power the economy and governance of today.

People now dont want to worry about the internals of a computer. They dont give a damn if the processor is made by Intel or AMD. They care even less about who writes their operating systems. Most dont even want to know. All that they care about is that their computers _work_. And not just work, but work the way they expect them to. After windows 95 came 98. Then there were some junk released before XP took the market by storm. By then, we all but forgot about the command line. What you could do with complicated batch files and environment variables could now be done in less than 10 clicks of a mouse. The wonderful complexity of the computing platform was all but hidden away to the user. The most that the slightly-more-than-casual gamer saw was cleaner graphics, enhanced sound and gameplay, and 3D. Oh, 3D. The wonder of walking around in a world filled with objects made of discrenable polygons and killing people at whim without worrying about the consequences. Usability moved from being something people appreciated to something at the back of someone´s mind, and bitched about when something didn´t ¨Just Work¨. Sure, computers could now do much more than before. Paradoxically, they also became less flexible. There were only so many things you could do to customize your computing environment. You couldnt just go in and rewrite your routing rules. You could´nt have different environment variables for different tasks (Actually, you could. But did you ever know that?). The computing market had changed, and since the operating system developers (even the open source ones) were market driven, like all good things in this materialistic world of ours, so did the way operating systems were made. Marketing teams decided what an operating system should do, and the developers became the guys who write the code. Desktop Operating systems were no longer written _for_ the power user. The name given to this transformation was usability. Usability became key. Usability now meant ¨An idiot can use this system without breaking it¨. It didnt matter that it was painfully difficult, if not impossible, for a generally intelligent person to do something that should have been trivial. It didnt matter that the flexibility of the computing platform was being grossly underused. Operating systems and usability driven applications became the primary hogs of computing power. Graphics rendering became the core of high end computing on the desktop, not typical number crunching or data mining.

It was only after I came to IITK that I started taking Linux seriously. Till then, it was just something out there. It wasnt ´usable´. I had no clue what KDE and Gnome were. The first time I installed linux in my 11th(?) I picked KDE because it didnt sound as lame as Gnome. Not having an internet connection then, though, I soon got tired of not having mp3 codecs and decided to ditch the idea. It didnt matter that mp3 was a propietary format and hence was not included in the distribution (Fedora Core 2). MP3 support was something that you needed. It didnt matter that MP3 support was just one command away. Without the internet, that one command can be a very, very difficult one to run.

Today, my definitions of usability have changed. I dont care if an idiot cannot operate my operating system - I need to know that I can. I need to know that I can do with my operating system what I want to do with it, and do it without mucking around in places that are clearly not meant to be messed around with. I dont want to say ¨I Know¨ to a million warnings before I get to the part I want to change. If I want to switch my network from static to dhcp, it takes me whole of 17 keystokes, not counting bash auto completion. If I want to mount a whole bunch of ftp folders into my own filesystem and then let dolphin and gwenview and beagle use them as if they were my on my own harddrive, it takes about 15 keystrokes. I want all my window decorations to look more or less the same, and want my widgets to look uniform as well. I dont care if its a Java application or a Qt one. I want my system to respond instead of freezing and I want to be able to kill the application causing the freeze. I dont care who implements that, I dont care how much it costs. I dont even care if it doesnt have any localization to speak of, as long as its in English.

Windows Vista was great. Really. It looked amazing. Aero was a little late in the game, but glass made my day the first time I saw it. Usability wise, it sucked. I still take about 2 minutes to find the window that lets me change my network settings. It had a boatload of cosmetic improvements, but nothing discernable of note in terms of usability improvements. Applications still did random things, modifying system behavior was just as hard, if not harder, than in XP. Vista was by far the worst disappointment than anything else in my short stint with computing, including KDE 4.0. Its not that it was _worse_ than Windows 3.1. It was, obviously, better. The point was that it was supposed to do so much more. We all knew what to expect with windows 3.1, and were happy when we got it. We never got what Windows Vista promised to give us. KDE 4 looks promising now, but still is below the standards that were set for it. It still crashes. It still does strange things occasionally. Applications still break once in a while. But KDE 4 is on the right track, for the long run. The road to KDE 4 was not filled with _just_ usability improvements. It involved rewriting a lot of the underlying mechanics of computing. It fixed gaping flaws in some implementations and exposed some in others. Over time, KDE 4 and its successors can probably achieve the kind of usability that the user of today has been promised. But right now, it is far from it. Windows 7 is something that I havent used yet, so I cannot comment on it. Perhaps in a couple of weeks I´ll find some time (and hardware :P) to try it out on.

At the end of day, usability is something that needs to be defined. Users should know what to expect. We are still atleast a decade away from software that can guess what the user wants. Probably more than a decade, in fact. In the mean time, software usability will continue to evade developers. Usability teams will look at some aspects of usability, and those are, in general, not the parts of usability I care very deeply about. I´m not trying to say that I prefer a heartless terminal to a GUI solution that ¨Just Works¨. What I want is _something_ that ¨Really Just Works¨, to that point that saying it ¨Just Works¨ is having more information about the system than I really need.

I have a feeling I wont get to see that kind of system in my lifetime, though. Do you?

Idiots

Uncategorized February 26th, 2009

So it seems there´s this article about a Supreme Court ruling going around the blogging world scaring the living daylights out of everyone. The TOI article is here.

Now, I´m not really all that interested in the whole affair to go hunting for more information right now, but lets take a look at that news article. It reflects some of the many, many things that plague News reporting in India today, if not the world. The article calls the person a blogger, and then cites his creation of an Orkut community as the cause of the suit. Hello? The two things are very, very different. An orkut community moderator/owner should obviously be held responsible for the randomness in his community. If he cant moderate it, then he should get other people to do so instead. This is not about Freedom of Speech, and this is not about net neutrality. Abusing someone, even verbally, has always been looked down upon. But I digress. What pisses me off the most about the whole affair is that the news people seem to make it their only goal in life to blow news out of proportion, and usually that means that the reported news might have absolutely nothing to do with what actually happened. Reporters seem to be less and less bothered with keeping to the truth and staying unbiased. All they want is to put something that grabs the readers attention. I´ve given up on TV News channels long ago, but newspapers are now going the same way. It doesnt matter to them that the issue was about an orkut community and not a blog.

Rohit Jain writes that courts are stupid for allowing people to hate Sonia Gandhi and cracking down on vulgarism in that regard. I disagree. I am free to hate or love anyone I please, and my freedom of expression lets me say that I hate someone. Vulgarism and verbal abuse of that person, on the other hand, is not something that should be socially tolerated. Its one thing to talk about things among friends in a colorful, its another to put it out there on the web.

EDIT :Apparantly RohitJ didn´t mean that. I apologize for saying he did. If someone else thinks that, though, then my response is still valid.

FOSSkriti 2009

Uncategorized February 21st, 2009

So here´s the long, long put off post. I was supposed to post about it about 3 or 4 time in the last 6 months and never really got around to it. Now that the dust has more or less settled, here is some of the inside story from FOSSkriti 2009.

The theme this year was ´The Open Web´. I´m not sure how exactly we came up with that theme, and how it stuck. There were many rationalizations for the theme to oppose the expected ´open source is not always about open standards´, and a number of discussions with a whole bunch of other themes thrown around. Once we decided on the theme, though, a lot of ideas for the event were proposed. Some of it we were able to implement, others didn´t quite happen. We had, for example, planned on having a panel discussion on standards compliance with representatives from the various rendering engines there. We also considered doing a PGP key-signing party. Both didn´t happen because of logistical issues.

The things that _did_ happen, though, went great. Just like last year, the participation was far beyond expectations (which makes us wonder if our expectations need to be scaled up for next year). Our sponsor, Mozilla (thanks, Mary) started the conference with Arun Ranganathan leading a workshop of web development with open source software, with Seth Bindernagel helping us out as well. With about 200 people in the lab and a hacked up screen made of chart papers and packing tape, Arun took the participants on a tour of the web, showing off HTML5, Mozilla´s Bespin editor (whose alpha was released to the public later that night) and showed people a glimpse of how the web - and web development - works. When we finally got it wrapped up by about 12:30 AM, we chatted as we walked down to the SAC for a bite to eat. The next morning, Arun delivered a talk on HTML 5 and the standardization process, again to a packed room. Soon after the talk, Arun and Seth had to leave to catch a flight to Pune and GNUnify, and we had to start preparations for the next event. All the folks from Mozilla were terrific during the whole process, right from the first emails about sponsorship and participation to the events to the 200 t-shirts Mary had sent over to give away. Oh, and Seth, thanks for the chocolates :)

The next event on Day 2 was the Drupal Hackfest. Led by Pratul Kalia and Gurpartap Singh (aka Durpal Singh :P), we again started off with a full house (a full house in CS101, and over twice the lab´s capacity). We decided to do a ahort talk first and then move to the hackfest, hoping the attrition in moving from place A to place B will be enough to let us handle the capacity issue. Fortunately, that plan worked out rather well and we had just enough people in the lab. Due to the wide spread of the kind of people there, it turned out to be a workshop for the first hour or so and then a hackfest. All sorts of fun stuff happened because of the network setup and such, but everything got sorted out thanks to Praneeth and Gurpartap´s constant tinkering (which sometimes involved flushing mySQL tables). Again, at well past 1 AM we finally wrapped up and ended up in the SAC, sitting there chatting about random stuff, including the history and concept of Navya and the people who came before us.

The next morning, Zakir went off to pick Ajay Kumar of Sahana from the airport while Praneeth and Naresh worked on a talk they were going to give to fill in for the Yahoo! UI ones that got cancelled due to logistical issues. The talk was about primarily about server administration, and surprisingly went alright. Between Praneeth, Naresh, and myself I think we were able to get the message across. Once that was done, Ajay´s talk on Sahana was up next. A delay in his flight caused a bit on confusion in the schedule and there were only about 20 people in the talk. The hackfest just after, though, was again packed. With about a hundred people in L2, we had to turn a few people away. Fran Boon, satyag, Massimo Del Pierro, and others joined in online via skype and IRC and helped people find their way (quite patiently at that). After a couple of hours of that, once people were able to do their own thing, Zakir and Gurpartap played bzflag while the rest of us sort of strolled around the lab, lending a hand where necessary.

The last day turned out to be the lightest day of FOSSkriti this year. There were just two talks - one on Open Web Standards by Shwetank Dixit of Opera and the other on Webkit by Siraj Razik of Collabora over Skype from Sri Lanka. The attendance in both was less than the other days, about 30-40 people in each talk. We probably need to try to figure out why that was the case and what we can do to avoid this next time. On the other hand, that is about the attendance we expected to begin with in _all_ the events.

On the whole, FOSSkriti 2009 was a success by our standards. Comments and feedback are solicited, though, so that we can make FOSSkriti 2010 even better (they go either here as comments, or via email to fosskriti@techkriti.org). As for next year, we plan on having two tracks - one at the very basic level, and the other in a much more focussed setting (the most likely candidate right now is Open Source in Embedded Development)