Home

Good Bye, Livejournal!

  • Nov. 13th, 2007 at 9:24 PM
pce

This is the last entry on my LiveJournal Blog!

Please welcome The GnuVision Blog

The Death of the chemistry set

  • Nov. 2nd, 2007 at 5:30 PM
pce

Check out Endangered Species - the chemistry set

Read the comments, they are interesting!

Are such chemistry kits available in India? I don't think so. I used to play with chemicals a lot - with material sourced from the medical store and from a chemicals dealer nearby who was unwilling to believe that my requirements were for purely scientific and peaceful purposes. I don't remember how I made my father accompany me to the `Vidyarthymithram' store near the municipal stand to purchase concentrated H2SO4 and HCL - but he did come with me, and the dealer reluctantly gave me the stuff. My first experiment was to find out whether sulphuric acid can *really* burn you - it was a great success - the scar from the experiment remains to this day! Experiments to create fire and boil liquids were extremely satisfying - concentrated acids, bits of cotton, potassium permanganate, small aluminium pieces etc were the usual ingredients.

The most exciting thing about Pre-Degree (plus-two) was that for the first time, I had access to a good chemistry lab. Small amounts of chemicals were smuggled on lab-days from the college lab to my `home lab' so that I could concentrate on my `research' better! I was (and still am) a big fan of Sherlock Holmes; the fact that Holmes too was a great chemist provided further motivation.

Children learn a lot during play - in fact, we can safely say that they learn only when they play. The western world has utilized this knowledge very creatively - the modern Lego robots and the Basic Stamp controllers and the old chemistry and `erector' sets all came out of this understanding that great scientists and engineers are NOT built by stupid B.Tech/BSc/Msc/PhD courses but by instilling the spirit of experimentation and discovery in students at a very young age through the medium of play.

It would be interesting to hear some of my reader's experiments in science during their school days ...

Update: Check out this link! Instituitions like Jodo Gyan are truly doing great work.

pce

Here are some cool projects to try out when you get bored:

Lemon powered AVR!!

Dhananjay's Battery-less digital dice!

How do people get such ideas?

Openmoko update - booting OK

  • Oct. 30th, 2007 at 2:39 PM
pce

Here is how to get the Openmoko based Neo1973 up and running:

Get a root file system/kernel from:

http://buildhost.openmoko.org/snapshots/2007.08/images/

You will see plenty of kernels and rootfs images on the build servers - don't try any two random combinations - it won't work. The kernel/rootfs combination you get from the above link is OK.

screenshotNeo1973 after boot up

Flash the kernel/rootfs:

http://wiki.openmoko.org/wiki/Flashing_openmoko

Erase the existing rootfs before you copy the new image.

The booting process is very slow - most of the time is spent in getting the UI up and running.

If the USB cable is plugged in, you will see a `usb0' interface coming up on the host PC. Assign an IP address of 192.168.0.200 to it. The phone has an IP of 192.168.0.202. You can now do ssh/scp.

It's going to be good bye to LJ!

  • Oct. 28th, 2007 at 5:11 PM
pce

I have decided to `unify' my static home page with my blog - it will take some time, as I have to import entries from LiveJournal to Wordpress and iron out minor formatting issues. Reading PHP/HTML code is boring and an absolute waste of time - but I am beginning to appreciate web applications a bit more after going through some of the Wordpress scripts.

I am looking for a clean, simple Wordpress theme (there seems to be millions out there).

The unified blog/home page will be available at http://pramode.net in a week or two.

FreeBird sings Lua, and gets a Home!

  • Oct. 26th, 2007 at 5:26 PM
pce

The FreeBird gets a new Home!

The Bird can now sing in Lua. Because I don't have shared libs enabled for the avr32, I had to plug the functions statically into the interpreter core. With Lua, this is so sweet and simple!

By the way, what is this GnuVision?

A New Vision, for a New Age!

More to come, later ...

Simplest universal Turing machine proved!

  • Oct. 25th, 2007 at 4:14 AM
pce

It seems bizarre that we should be able to achieve universal computation with a machine as simple as the one above--that we can find just by doing a little searching in the space of possible machines. But that's the new intuition that we get from NKS. That in the computational universe, phenomena like universality are actually quite common--even among systems with very simple rules.

Read more...

Also, check out Wolfram's NKS.

`Brega' on Slashdot!

  • Oct. 24th, 2007 at 4:10 AM
pce

Check out this Slashdot report:

Brazilian pop music scene thrives on piracy

Here is the direct link

Critics would say that this is just a tiny little isolated phenomenon.

Mostly because they *want* this to remain a tiny little isolated phenomenon and are afraid of losing the comforts of Holly/Bolly ... whatever `wood' ... comforts obtained by labeling the public as thieves and `pirates'.

pce

You see, schools must teach not just facts, not just skills but above all the spirit of good will, the habit of helping your neighbour. So every class, at every level should have this rule: "students, if you bring software to class, you may not keep it for yourself, you must share copies with the rest of the class".

However, the school has to practice its own role: it has to set a good example. So every school should bring only Free Software to class, and set an example with its software of the practice of disseminating human knowledge while building a strong, capable, independent and free society. And encouraging the spirit of good will, of helping other people. Every school must migrate to Free Software, and I call on you, those of you who are faculty, or staff, or students of this University, to work together to bring about the migration of this University to Free Software, completely to Free Software, within a few years. It can be done in a few years: it requires taking a substantial step each year.

Read More...

RMS makes a very important point in this lecture:

So when we consider technical progress in computers or in software, the most important question to ask is: "How does this affect our freedom? How does this affect our social solidarity?". Technically speaking it's progress, but is it really progress in social and ethical terms, or is it the opposite?

Think about it ...

The Magic Box!

  • Oct. 20th, 2007 at 12:19 AM
pce

I was creating some LaTeX Beamer slides for a presentation on FreeBird when Mobin and his Google SoC friends came with a box:

The Magic Box! What is inside?

What's inside the magic box? The world's first freed phone, yes, an OpenMoko based Neo 1973!!

The world's first "freed" phone, and the first phone whose developers encourage you to take it apart and have fun!

The phone + other stuff The OpenMoko!

I hear the critics saying: "*hack* a phone - isn't that stupid - we just want a pretty phone which works". I shall ask them to go and read Computer Programming for Everybody (CP4E) . And, think a bit!

Today's kids are growing up with computers - `programming' as we know it today, will no longer be an `elite' activity limited to a profession called `programmers', `scientists' or `software engineers'. The `computer' will no longer be a mysterious box to be worshipped but a dear friend `embedded' in all kinds of appliances. `Programming' will be more of a basic skill like Reading, Writing and Arithmetic - and everybody will be a `programmer', to a certain extend (just like all of us are `writers'!).

Now, imagine such an `Information Society - ver 2.0' full of people who have the power to understand and control the computer (and not just click at pretty icons) surrounded by a sea of devices and software which screams out `change me NOT', `understand me NOT', `modify me NOT', `share me NOT' ... doesn't that sound stupid?

Look at GNU/Linux, the Free Software movement, and the world's first freed phone from this perspective, and you will appreciate it better.

Booting - close up! Booting GNU/Linux!

The interface/debug board OpenMoko Manual!

Thank you, Mobin and friends, for such a wonderful gift!

pce

Passive Infrared detectors are used to sense motion. I am right now experimenting with such a device from Parallax. For once, this is a sensor which works with 3.3V, so the interface with the AVR32 processor is simple. Whenever movement is sensed, the output of the device goes HIGH and then LOW. Placing an LED on the output pin (buffered by a transistor) makes this `sensing' visible! Watching the LED light up and go off in a dark room as you move around the sensor is kind of spooky! Now, what kind of application can this have on a FreeBird?

Watch the PIR sensor in action!

pce

The FreeBird now has `1-bit' vision! I am experimenting with the QRD1114 reflective object sensor. It's a small IR LED and a phototransistor combined in a single 4-pin package. Light reflected from an object placed close to the sensor controls the conductivity of the transistor.

Things to do immediately: (a) Start working with gEDA once again; create PCB's for line sensor and ultrasound module (b) Clean up the code (c) get Python working (d) Integrate with Pyro

Some of my students are working on a sort of `Mini FreeBird' based on an Atmega controller and locally available components. This will be the version which we hope to use in schools.

Save Kannada!

  • Oct. 12th, 2007 at 7:12 PM
pce

Bangalore: The Letter of Intent signed by the Karnataka government with Microsoft to establish paperless offices is drawing criticism from advocates of Free and Open Source Software (Free as in freedom). They have started a campaign against it on the web page, savekannada.googlepages.com

Read more...

Microsoft is not aware of using language appropriately. It strings together different words in an absurd fashion and describes them as directions to perform different actions. These mistakes have been pointed out several times but the mistakes have remained. These mistakes were found in XP’s LIP also. The same mistakes are now found in Vista also. Many Kannada software engineers have spent considerable time and energy in pointing out the errors and have made efforts to make sure that correct Kannada language reaches consumers. Appallingly, Microsoft has refused to acknowledge the blunders and has retained all the mistakes.

Read more...

Ullrich Drepper Writes about "Memory"

  • Oct. 10th, 2007 at 8:33 PM
pce

The title of this paper is an homage to David Goldberg's classic paper “What Every Computer Scientist Should Know About Floating-Point Arithmetic” [goldberg]. Goldberg's paper is still not widely known, although it should be a prerequisite for anybody daring to touch a keyboard for serious programming.

Read What every programmer should know about memory - part 1 and part 2

Read the comments too, they are interesting.

You may wonder whether you need to understand stuff like how a DRAM cell is implemented using a capacitor and a transistor or how a SRAM cell is implemented using six transistors. Here is what one reader says:

There are programmers out there, who write memory controller configuration code for boot loaders. I have done it and knowing the electrical design of memory cells really helped to answer simple questions like why the hell does DRAM need a configurable controller while the onchip SRAM is nicely ready for use right after powerup.

Another reader suggests:

Personally, I think it is useful to have a reasonable knowledge one level of abstraction down, and one level of abstraction up. There are a number of reasons for this:

  • You can often find optimizations that cross abstraction barriers. It is difficult to predict what you'll need to know to do this, so you really need to have a deep understanding of both layers. In some cases, you can also influence the hardware design.
  • You can predict how the technology may evolve.
  • You gain intellectual depth.

This is especially important for systems programmers -- the target of this article. If I'm designing a kernel, or a virtual machine (as in JVM, or .net runtime), or a high-performance systems library, I want to design it in such a way that it can take advantage of possible future underlying technologies.

It's not too difficult get a feel of the impact of memory architecture - here is a simple experiment.

The Song of the FreeBird!

  • Oct. 7th, 2007 at 5:22 PM
pce

Visit the Bird's Home!

See the bird in action! (Google video)

The board is running on a single 9V `Energizer' (similar to Duracell) battery. It works even when the voltage drops to about 7.7V! Some u-boot environment variables have been set so as to make it boot from the SD card and run an init script which loads the PWM driver and sings the following song:


#include "robolib.h"
#include <stdlib.h>

main()
{
        int i;
        robo_init();
        enable_motor(0);
        enable_motor(1);

        while(1) {
                i = 1 + (int)((4.0 * rand())/(RAND_MAX + 1.0));
                if(i == 1) {
                        forward();
                        sleep(3);
                }
                else if(i == 2) {
                        backward();
                        sleep(3);
                }
                else if(i == 3) {
                        left_turn();
                        sleep(1);
                }
                else if(i == 4){
                        right_turn();
                        sleep(1);
                }
                stop();
                sleep(1);
        }

      
}

Intellectual Antiproperty

  • Oct. 5th, 2007 at 3:02 PM
pce

If closed IP makes a small amount of people a lot of money - does opening the IP make a moderate amount of money for a large amount of people? The latter seems a better outcome to me. It also suggests that open hardware benefits small companies more than large ones.

Read what David Rowe has to say about Open Hardware

Rich Bodo has invented a new terminology to discuss David's theory!

Experiments with the ATNGW100 - Part 10

  • Oct. 3rd, 2007 at 11:22 AM
pce

And finally, it moves!

final1 final2

final3

The servo's are powered by four 1.5V batteries. The main board is still not battery powered - have to test with two 9V batteries after the kernel is recompiled to disable as many power draining units as possible (according to the manual, the ethernet interfaces are the most power hungry - they can be safely disabled).

pce

C, for example, ia a beautiful language in the category of "portable assemblers". In that category C is powerful thanks to its libraries, simple and easily implementable thanks to its syntax and semantics, portable due to very clever and clean hardware abstraction.

I think that Lua is to "high level scripting languages" is what C is to "portable assemblers". Lua has both OO and functional programming very naturally represented in its semantics. All objects are first class (including functions). Lua is small, very fast (in fact fastest scripting language according to http://shootout.alioth.debian.org/ [debian.org]), has very good Virtual Machine, incremental Garbage Collector. As far as fundamantals are concerned, Lua is light-years ahead of Ruby. It still lags behind in library support, but the recent progress is very encouraging.

Read more...

From first impressions, I think I am going to like this language! I got it cross-compiled for the AVR32 cleanly. The statically linked binary is only 200kb in size and still the language supports stuff like coroutines, closures, iterators ...It also does tail call optimization. I feel we have in Lua a Scheme/Lisp with human-friendly syntax! My decision is almost made - I will test drive my robot with Lua instead of Python.

This is The Book to read if you want to know more about Lua ... Some reviewers have even compared it to K&R!

My ATNGW100 now boots from an image on the SD card and runs Lua scripts!

Read more...

pce

Well, this is a different kind of ping; and I have been playing with it for the past two days - the last technical issue to be resolved before I integrate everything and can start dreaming of this!

The Parallax PING sensor has a simple `one-wire' interface - you send a LOW-HIGH-LOW TTL pulse (HIGH around 10us) on its signal line (SIG) and it will wait for some time (about 750us) and then sends a burst of ultrasound. During this wait period, the sensor pulls SIG down to LOW - as soon as it transmits the ultrasound burst, SIG is made HIGH. SIG becomes LOW only when the echo is received. Thus, the width of the HIGH level on SIG gives you the round trip time. The problem here is that the AVR32 IO pins are not 5V tolerant (HIGH is 3.3V and absolute max voltage on an i/p pin is 3.9V). So what is essentially a zero-component connection between an I/O line and SIG becomes a bit more complicated ... Anyway, things are working fine now and I am able to get good measurements.

ping

Imagine how exciting it would be for beginning students if they get to play with a simple robot - studying both its hardware and software - instead of writing `find factorial of N' programs in the programming lab and `inventing' data to fit equations in the electronics lab! Imaginative teaching/learning is not something which only a Stanford or MIT can do - we too can do it. One of my `grand' objectives with this series of experiments is to finally produce enough freely available (GPL'd) course materials for something similar to MIT 6.01: Introduction to EECS 1 - but the trouble is, its going to consume a *lot* of my time. Will any University in India accept such a course? Assuming that I am going to spend a good amount of time on this, is there any chance of getting some funding?

pce

Software Freedom Day celebrations in Thrissur began with a meeting of Free Software Enthusiasts at the Chamber of Commerce. Before I write more about today's events, let me share with you a great document written by Dr.Sasi Kumar:

Story of Free Software in Kerala

To add a bit more history to Dr.Sasi Kumar's story - Prof. Jyothi John was instrumental in creating perhaps the first group of GNU/Linux enthusiasts in an engineering college in Kerala when he gave us (1992 - 96 batch of CS students, Model Engg College) a bunch of floppies containing this `new' OS! A small bookshop under the north overbridge in Ernakulam, `Mindstorm' gave us our first GNU/Linux books (basically a compilation of some HOWTO's) long before bookshops in India started stocking `Linux' books! A bookshop in Trichur, Cosmo books, started using a small network of GNU/Linux machines (with some s/w written by I believe the River Valley people) when the techies in Bangalore were still cleaning viruses from their Windows PC's! (And, a young commerce graduate working in this bookshop - an absolute computer illiterate - was merrily configuring NFS and setting up GNU/Linux networks when `Software Engineers' were still using M$-Windows because it was more `user-friendly')

Here is yet another great news:

In the largest such simultaneous deployment of ‘free-and-open’ software in India, over 15 lakh Kerala schoolchildren on Friday start taking their quarterly practical tests in Information Technology on personal computers using a special Linux version.

Read more...

Coming back to todays events, the meeting was held at the `chamber of commerce', Palace road. Besides the usual gang, there were a few distinguished personalities from the field of language studies and journalism.

sfd1 sfd3

sfd4 sfd2

sfd7 sfd5

One of the objectives of the meeting was to take stock of the activities going on as part of the `Swathanthra Malayalam Computing' effort for the past one year. SMC was started by Baiju M when he was a student at REC Calicut. The project was dormant for a long time until it was woken up by Praveen and friends. A major push came in the form of the project being selected for the Google Summer of Code (I believe it is the only Indian project participating in SoC). A total of seven or eight projects coming under the SMC umbrella had their formal `release' today.

The Malayalam Unicode font, designed by Hussain and Suresh, was released at the function.

sfd14

Santhosh Thottingal released a spell-checker (based on GNU Aspell) for Malayalam. Santhosh is also behind several other interesting language projects including adding Malayalam support for the text-to-speech engine `Dhwani'. He spoke about some of the challenges involved in designing the spell checker, one of which was the creation of a sufficiently large list of `correct' words.

sfd8

Shyam, a student of MES Engg college Kuttippuram, released his Malayalam speech recognition s/w (done as part of SoC).

sfd10

Mobin and friends released Malayalam-enhanced Tux-Type, a typing tutor (SoC project)

sfd11

There are people who doubt the logic behind creating a computing environment with support for a language like Malayalam. After all, almost all of us can read and understand basic English, so what's the point in putting in so much of effort? The answer is to look from a much wider angle. As one of the speakers pointed out, a language has to continuously evolve if it is to be alive. A language like Sanskrit is virtually dead - few people use it. A society and a culture is identified by its language - once the language is dead, the society starts losing its identity. A good way to keep a language alive is to take it to the digital world - the world of the PC/Communication devices and the Internet. This is one context in which developing regional language computing environments and popularising them has great significance.

SFD celebrations will continue tomorrow (Sep 15).

Update:

I was able to attend only the morning session today (Sep 15). But it was very interesting. There was a demonstration of all the packages developed by SMC. Anivar gave a historical sketch of the Malayalam computing effort. Praveen and Hussain sir gave a tutorial introduction to Unicode and the issues behind introducing Malayalam language support. Vimal was distributing GPLv3 buttons to everybody - I couldn't get one because I came to know of it only later :-(. Shyam showed me his Malayalam speech recognition program - the noise in the hall was making it difficult for the tool to work properly. I listened to Santhosh's TTS system reading out Malayalam text in a `robotic' manner. Then there was Sarath Lakshman hacking up a Python program improptu so that he could gather the address/mail id/phone number of all the meeting particpants! Mahesh and Kishore were also there. A good number of S3 CS students were running around enthusiastically ... these guys/girls are our hope!