January 21, 2004

Personal Programming - Requirements

A Personal Programming Platform (P3) is a programming platform, that is built to be a very portable and easy to use programming language/environment. The following are some of the requirements for a language to be called P3.

Small Footprint: This is the most important requirement for a P3 platform. The entire programming and executiong context, including the user files and output directories and any other resources should all be available as a single unit - a single directory tree. And this tree should not in any way be tied to the system on which the platform is executing. User files should be forced into the same directory structure. Installation should be little more than unzipping/installing. There should be no references in the Registry or in the System folder or wherever. The entire P3 platform should work out of a single directory structure - by design, even if that means sacrificing of some flexibility.

The idea of a small footprint is portability. I should be able to take along my entire development, execution and data contexts with me in one move when I go. A single tar or zip command should be enough to allow me to migrate to a new system. A single delete command should remove all traces of me having worked on the system. Simplicity and ease of movement is the hallmark of a small footprint P3 system.

CLI & WIMP enabled: The main execution context of the system should be something like that of MATLAB. When the program is launched, the user will end up in a command line interface (CLI). Here interactively he will try to accomplish tasks that he will want to do. He will be able to run a command or a script, invoke a IDE to develop and edit a script and also bring up a debugger in case the scripts are misbehaving. During and entire session with the programming language, the CLI will be the base for working. The Python CLI is a very good starting point, but of course some changes will be required by it too.

Additionally, there will be a tight integration with the WIMP style of working also. For example, when a script is worked on and perfected, it should be possible to move that as a "macro" to a toolbar button with an simple command. The next time, the script will be available by clicking on the toolbar.

Run Time Database: This is the most important requirement of a powerful P3 environment. During execution of any script, it will have access to a SQL style database. This need not be a true database, but it will automatically be available to any script or program when it is running, without additonal programming effort. This run time database should support SQL style queries, though it need not support the entire command set. A smaller and modified SQL command set, dSQL (dynamic SQL) needs to be supported by this database.

The database is not built for performance, or to support deep nested select statement. Rather, it provides a easy to access database system, which can be use by any executing program. All data that is not hardcoded will be part of this database. All runtime information is best accessed through this database.

Of course, this database needs to be persistent. Shutting down the program should not destroy the data.

The database not only stores information which the program needs for its execution, but it acts as a data source for many other data requirement calls too. The database will define a schema that will allow users to "query" for information like "current date" to a "random" number etc. Most function calls will be reduced to a database calls. Function wrappers for these calls will also be available.

Powerful synchronization: This is another requirement. The P3 is designed to be used by users on the fly, on the move, and not necessarily when they are working out of their base system. As a result, it should be well aware of all changes that are being done to it. When one or more P3 instances are brought together, each to be able to talk about the differences it has with the others. This will include not only the changes to the data and the scripts, but also any changes to the internal scripts etc.

Easy customization: All customizations should be easy to track, package, distribute and incorporate. However, all changes should necessarily be in accordance with the guidelines above.

does it make sense?

- ravi

Personal Programming

This is an idea that has intrigued me for some time. It came to me when I was thinking about doing something to automate my website. It is a pure-html site, and I wanted to do some kind of automation of updation of links of each page when a particular page was altered. A very obvious means would be to use a "content management software". But I was too lazy to search for one that fit my bill. Because my requirement was simple, change a links in each page automatically. Something along the lines of a simple perl hack, rather than anything else.

I am not averse to computing, but at the same time I am lazy. Perl is made for me, but then there are some deficiencies for my purpose. Perl promotes laziness, but after it is up and running. I want something that promotes laziness _always_.

And it should be non intrusive. It should be intelligent. And it should keep everything with it and not make me think. And it should be portable. I will try to come up with a wishlist in the next blog. Do you know anything that provides such a platform?

Anyways, forward the requirements,

- ravi

January 13, 2004


Is a question that has troubled me. Why is that a question? The question is, what is it?

People frequently confuse knowledge with intelligence. People confuse wit with intelligence. Or don't they? Where does knowledge end, and intelligence start?

Consider this, when we sit here, discussing stuff, what part of the discussion is intelligence? If I tell you something you dont know, is that intelligence? Or is that knowledge? When I give you a fresh perspective, is it because I can process stuff faster or because I have had this experience before? And this knowledge itself. How much of it is conscious and how much of it sub-conscious?

If knowledge can be sub-conscious, then where is the line between intelligence and knowledge?

Look at an example. Someone tells you that a deal he is involved in is going well because of something very attractive that the opponent is offering. Suddenly warning bells start ringing. And you try to analyse that something might be wrong.

Why did the warning bells ring. Is it only because you are stupenduously intelligent than he is, that you saw a mole where he did not? Or was it that you have been given a raw deal before? Or is it because you have been brought up in an environment that made it difficult to trust people (knowledge again)? Or was it that you have heard of something like this before? How much of it is original knowledge, and how much is original processing or intelligence.

The reason I am talking about this is because I had taken one general IQ test somewhere. And I scored a 136, which according to the scale meant I was up there with Einstein. Which of course is not true. But many of the questions in the test, I was able to ace through because I had worked with those types of questions before. So for me it was a cakewalk. That does not mean I am a genius.

If it is difficult to separate intelligence from knowledge, why are we trying? What is this IQ test all about? Finally, shouldnt we have different semantics to deal with this difference?

keep thinking :),

- ravi

January 12, 2004

Sony Ericsson T610

I recently bought this piece, and thought I'd introduce you to it. I was seriously considering buying a cell, and of course no Nokia for me. Agree, nokia has quality, but it suffers from the same problem that plagues all industry leaders. The basic technology is cheap, but all bells and whistles are priced out of the world. And frankly Nokia low-to-medium range cell look like rot.

So, the shootout started, between price and features. I was looking at a slightly above base product, and at the same time could not afford a communicator. I landed somewhere around T68i, primary because of the way it looks. Then I was with a friend who had a T810, which had a similar screen if not the looks. And the 256 color screen put me off. It just did not pack the zing I wanted. T68i was out. Then, something else happenned. Some brain cells, which had been hibernating, woke up. And I wanted a camera with the phone.

Enter T610.

Looks could just kill.

The first look at the phone, and it looks like half a phone. It has a gigantic 128 by 160 pixel, 65000 color screen, covering more than half the front of the phone. the key pad starts with four navigational buttons, two for screen prompts and two more as "clear" and "up level up" buttons. Sandwiched between these four buttons is a very small and extremely handy joyclick (it isnt much of a stick, and you can click with it too!). Below the navigation is the regular keypad. However, the keys are really accessible rounded rectangles, small but handy and wide enough to never have a cross clicking of keys. The entire phone weighs just 95g, and is of a block design. The grooved sides provide a nice way to grip the phone when talking. You dont feel that it is just going to drop. The back of the phone has a 3d sony ericsson logo, and an inconspicuous dark circle - your 33mm lens ;)

The screen and the interface

The lively 65000 colors is what catches your attention first. Indoors, the colors are vibrant, and well contrasted. The icons are well constructed and intuitive. The main desktop is a treat to look at. The problem crops up when you try to use the phone out in the sunlight. The visibility of the display drops, and leaves the screen almost useless. Shading the screen, helps, but does not improve matters by much.

The interface is governed by your ability to use the joystick and the navigational keys. Nokia users will find the interface "counter" to what they have been using. The joyclick is also a tad difficult for the first time user. However a few days and a little practice can upgrade your usage speed enough to avoid being the bottleneck.

The icon-driven menu is informative and useful. Navigation starts from icons and has layered menus underneath. Maybe, the icon interface could have be extended to the later layers too, rather than continue with the plain vanilla menu interface. Messages are displayed via a "pop up" screen. Some menu options have a help option too, to provide additional information. The eye-candy is good, usability is better.

One final comment about the interface is the T9 input. They call it "predictive" but it does not. However, it works like the usual one-click input. However, it is slower than that given by Nokia. The T610 makes up in part, by giving a VB IDE style, auto complete popup during text input. It is slow, but it makes up.

Features (drool, drool)

Camera: a 1:1 CCD based camera. Means, low quality photography and bad response in low light. But dammit, this is a phone. Takes pics in two sizes, one at 1:1 giving you are 320 by 240, and another one smaller, with marginal improvement in quality. The camera is accessible via a shortcut key on the left edge. A very cool nikon-style click sound when the shutter is hit. Rapid saving of photo, in under 5 seconds. 2 megs of memory, use it as you please.

WAP: Another shortcut key on the right edge. To be frank, I have not yet found the actual link that leads to starting a browsing session. Render of pages is decent, however streaming multimedia is not supported, so you cannot watch video and the like.

Themes: The look on the phone is handled by means of themes. Colors, shades, wallpapers are all part of the theme. Some realyl good themes are bundled.
Connectivity: Bluetooth, Infra red and possible a data cable. Usage is quick and painless.

Games: The days of the snake is over. We now play GOLF, which sounds as if I was potting a ball in a billiards table. Supports JAVA and Morphun games too. But I miss not having a snake handy.

Programs: Do you know what a midi synthesiser looks like? No? Did you have a chace to ever play with a program called the Rave eJay? No? Check out the awesome music composer in the T610. You can choose from like 120 pieces to arrange 4 tracks to build really new pieces. Want to be woken up with the crash of an orchestra - well, make it yourself. Hey, talking about software, you have a paint program in the phone too. You will not be jobless when you wait for your delayed flight.

Others: You get a Outlook sync on a bundled CD. Slow, but it works. And there is a pretty nifty interface to even map fields between the T610 and your Outlook. You also have all your other nifty thingies - voice commands, organiser (nice interface), screen savers, 32 phonic sounds (we will come to that later), personalised rings and pictures etcetera etcetera.

In Use

Memory: You have 2 megs, shared between all your pictures, sounds and themes. You dont want to be caught without memory for the crucial shot of your girlfriend laughing. Swap the existing stuff out. Use bluetooth, or infra red, but clear your desk, you never know what might be coming in.

Battery: This beast of a display drains your battery like crazy. Remember, talking was once the biggest drain, the display just joined it. Add some sessions running JAVA games and you know what that can do to a battery. Keeping a once a day schedule of recharging is not a bad idea. But of course, it charges up pretty quickly.

Heating: A gentle warming during prolonged use (games/charging), but nothing out of the ordinary.

Voice Volume: Get used to low volumes. You may want that louder, louderer option for that concert - you dont have it. However, regular use is pretty workable.
Ring Volume: Is low. Is abysmally low. And the loudest is pretty much half of what a nokia 3315 can whip up. But wait.

Do you know the polyphonic sounds are actually midi files? (oh, the composer also stores its sounds as midi files)

Do you know you can transfer midi files two way between a computer and a phone using bluetooth or infra red?

Do you know there are freeware available that can be used to jackup the volume of your midi files?

Do you know that you can google for almost any midi file you can think of?

Now dont ever crib about not having enough volume, or enough options for ring tones. Dont even tell me that you "paid" to "download" polyphonic ringtones to your phone. :)

I love this phone,

- ravi

January 06, 2004

Nothing works like praise... does it?

Check this out. I am sure a lot of you know about dmoz right? In their own words, it is the largest human-edited directory on the web. Which mean, in simple words, that people, not machines or algorithms, make the entries in this directory. Which also means that quality, has no proxies in this directory. What people feel they say. This is what dmoz says about this blog - "It will be intelligent, and it will make you think."

I have been smiling like an idiot ever since. And know what, I am going to be back - with a vengence now.

There is actually someone out there, who took the time out to read my blog, and put in a kind (read awesome) word for me. Well, this is how praise starved idiots react I guess.

I sure hope I can live up to that - "It will be intelligent, and it will make you think."


Bring forth the end of the post for the season begs to end.

Wish you a happy new year - 2004

- ravi