The Dude abides.

Posted
11 December 2007

Tagged
Free Software
Technology
Travels

FOSS.in Conference Day 1

This is day 1 of the conference. Reports for previous days are as follows: Project Day 1, Project Day 2.

Conference Day 1 started off with an inaugration by Atul. He mentioned that FOSS.in focuses on all FOSS technologies (and not just Linux). More interestingly, he also mentioned that only an Indian can give a FOSS.in keynote. The event was started off by the lighting ceremony by speakers/volunteers from around the country. Very unique, I must say.

Anjuta Devstudio: present and future

Naba starts off by giving a history about Anjuta. He mentions that when he started off developing Anjuta, there were no integrated development tools and at the start, most of the work was done offline and he only released the tool a year later under GPL. Anjuta was build with goals of segregation in mind (components within the IDE), scalability, extensibility, adaptability and with a plugin architecture.

Naba mentioned that language support is primitive (C++ plugins are broken, Python plugins working with a debugger, languaage bindings are working) and as such, it is a work in progress. Some plugins for editors include Scintilla and Sourceview, debuggers such as gdb, VCS such as CVS and SVN with git being under development.

Future work in this area includes a new symbol database system, full Python support, full C++ plugins support, Vala support, better project management, DevHelp based on Webkit and an online infrastructure for plugins.

There was an interesting point on whether Anjuta will be supporting refactoring. Naba mentioned that no tool does refactoring in C correctly, and therefore Anjuta will not be participating in the agile development hype by providing refactoring support.

Personal thoughts: Good overview on Anjuta.

How and Why You Should Be a Kernel Hacker

James Morris gave an introduction to get started in kernel hacking. He listed three essential requirements for kernel hacking (genuine interest, common sense, a willingness to work hard). He outlined some myths are that kernel hacking is bizarrely difficult and mysterious when the reality is that its just software. He pointed out some areas where newbies can get started on (LKML, books, online resources etc).

Personal thoughts: Fairly basic talk on kernel hacking. I suppose this talk may be useful for beginners.

Meet Hadoop! (Open Source Grid Computing)

I was slightly late to the Hadoop talk. Devaraj Das was speaking on hdfs handling failures and ensuring data correctness by using checksums/CRC32, handling file creations/file access and fscking.

He then started to speak on running a word count on a huge file using map/reduce. The Hadoop map reduce architecture is primarily a master-slave architecture with a map/reduce master jobtracker (accepts jobs, assigns map and reduce tasks to tasktrackers, monitors task and tasktracker status), map/reduce slaves “tast trackers” (which run map reduce tasks, manage storage and transmission of intermediate output). There is a generic reusable framework supporting pluggable user code (and even pluggable filesystems such as DFS, Kosmix, S3 etc).

On a question from the audience whether NFS could be used as a pluggable filesystem, Devaraj said that in Yahoo, the Hadoopo Jar file is on NFS and is later copied unto a local node.

A Hadoop application has to define mapper and reducer classes and a launching program. At this point, language support includes C++ and Java, supports a streaming model (which is allowing the use of any Unix command as long as stdin and stdout is support in that command). Job tracking seems to be via HTTP monitoring.

There were several map/reduce optimizations mentioned including combiner (mappers may generate duplicate keys), minimize data size before transfer, speculative execution (some nodes may be slower and duplicate tasks may be run on other nodes), out of band data access (distributed cache).

Other significant projects in Hadoop included Jute (a way to bridge legacy data into map-reducible data), HOD (for effective cluster sharing) and hbase (equivalent to Google’s BigTable).

Testing at Yahoo! has shown that 20TB sorted on 2000 nodes takes ~2 hours. There were no scalability issues when adding nodes. There is a distributed file system is in daily use with 1.5 PB with millions of files (which also runs on Amazon’s EC2/S3). Certainly, Hadoop makes much sense on the Amazon EC2 with S3 as the store and many startups take advantage of this to use Hadoop to process data on Amazon’s EC2/S3 services.

Personal thoughts: Very informative talk!

QtWebKit

Simon Hausmann spoke on QtWebKit, which is basically a QT wrapper around the WebKit rendering engine. The platform abstraction layer is implemented using QT. This includes text handling, painting, networking and an easy to use public QT-ish API which is part of the WebKit project. QTWebKit is scheduled for inclusion in QT4.4. QTWebKit exposes a core HTML/CSS rendering engine, a platform abstraction layer and client classes to provide a high level API.

There are several components in QTWebKit:

  • qWebView is an easy to use browser widget
  • qWebSettings allows for fine tuned behaviour
  • qWebPageHistory/qWebHistoryItem provides full history and allows for navigation

The WebKit architecture is such that the JavaScript implementation has only few OS dependencies. Simon gave some examples of JavaScript integration in QT:

  • frame->evaluatejavascript(”..”) allows for inject JavaScript from C++, permits document modifications
  • frame->addToJSWindowObject(myObject) -> exposes custom QObject, signals, slots, properties accessible from javascript

Simon then gave a highly impressive demo of QTWebKit. This was the first *bling* we saw at FOSS.in and it much certainly much appreciated.

QTWebKit at this point does not support Flash or ActiveX. In the case of Flash, supporting it in MS-Windows is easy but not on Linux, hence it not being supported in QTWebKit.

The talk wrapped up by Simon outlining areas where people could get involved in the development of QTWebKit.

Personal thoughts: Bling! Great talk, great demos!

Plan 9 from Bell Labs

Anant Narayanan spoke about Plan 9 from Bell Labs. This talk was perhaps the most interesting talk I attended at FOSS.in, as it contained a whole lot of interesting ideas and trivia. Anant started off by listing all the things that are wrong with modern day Unix systems (a huge number of system calls, no innovation in the desktop space, creating bindings of languages for different languages, “everything is a file” moniker no longer being followed etc).

Plan 9 was developed by members of the Computing Science Research Center at Bell Labs, the same chaps who came up with Unix and C. Originally, Rob Pike, Ken Thompson and several others developed it. Dennis Ritchie, Brian Kernighan, Tom Duff, Doug McIlroy and other notable developers have contributed to Plan 9.

Plan 9 offers a uniform interface for access to all resources. No files are more special then others and 9P is Plan 9’s VFS which exposes 13 basic operations (eg read, write etc). 9P is minimalist and lightweight, and can work over any reliable transport (shared memory, TCP, PCI bus etc).

Servers are exposed by Plan 9 which serves resources in terms of files. For example, writing to /dev/draw effectively writes to the screen. Plan 9 also offers per-process namespaces which effectively provides a process view of the filesystem. In other words, processes cannot interfere with another processes’s files. Very cool! In addition, since everything is file based, there is no need for bindings. Just read and write to the filesystem using your favourite programming language.

Anant went through some tools that Plan 9 uses. He also went through security protocols, concurrency support (much like Erlang), text processing (Plan 9 has native UTF-8 support, interesting trivia: UTF-8 was created by Ken Thompson and Rob Pike for Plan 9).

All in all, great talk! I look forward to testing out Plan 9 in a virtual machine soon-ish.

Personal thoughts: Informative talk with lots of useful trivia.


FOSS.in Project Day 2 (Day 2) FOSS.in Conference Day 2