Monday, November 12, 2007

Who "learns" APIs anyway?

This is a sort of after thought and comment on my previous post where I "complained" about learning a new API.

Most of my experience with Java has been not in developing application but rather designing APIs and programming platform (for instance MeTA Studio http://code.google.com/p/metastudio/). Where as, whenever I had used other languages (C, C++, Fortran, Python...) it was mostly for application development. Developing good and usable APIs do require fair amount of thinking and design tactics to be put in. Developing pure application on the other hand is, many a times more faster and easier job. A good API need not be "learned", rather it is apparent form it as to what you can do with it. You do not "learn" a good API, rather you cleverly "use" them to build applications.

In that sense probably Android APIs are "pretty good".

Android is out: But am a bit disappointed.

This is a follow up on my earlier article "speculating on Android". Google has finally released the SDK for Android platform and with a first look at the APIs I am not too happy. Not because my main assumption of inclusion of a scripting interface went entirely for a toss, but because Android has a whole new set of Java libraries (APIs) rather than adopting a standard set of Java APIs. Another claim was that development on Android platform would be easy and fast. But with my experience of using Java from mobile to desktop to server has it that a very strong design and object orientation skills have to go in to develop flexible and robust applications. When you have a "good enough" and many times an evolving design it is not really RAD. RAD is what is been offered by initiatives like, pys60 (python on Nokia S60 phones).

After a bit of pondering over the APIs it does some how feel that many of those are needed but are in no way available in Standard Java libraries. One of such aspects is the touch APIs (http://code.google.com/android/samples/ApiDemos/src/com/google/android/samples/graphics/TouchPaint.html).

But here again I fail to understand as to why the standard Java graphics libraries are not used and instead Android's own libraries are used. This to me feels like introducing more confusion than "helping " the people who develop on Java platform. In essence, I simply do not understand the necessity of learning completely new set of APIs for programming on Android and that too in a "write once and run every where" language.

Saturday, November 10, 2007

Mobilis Crashed!

After months of almost daily use of Mobilis, it has crashed and simply refuses to power on :( Have contacted the Encore staff, but will have to wait till trow for their reply.

Tried to open it up and check for any burned stuff .. but have found nothing that "looks bad". Hope that I am able to get it back working soon...

Friday, November 09, 2007

Speculating on Android Platform

Google and a group of 34 other companies announced the Open Handheld alliance this week (http://www.openembedded.org/). They also announced that a SDK for the "open" platform named Android would be made public on Nov 12,2007. I am just trying to speculate what all this platform might constitute:

1. An embedded Linux kernel, probably built and hardened by Google engineers.

2. A scripting language like Python as an interface for programming. other scripting language that would be included is JavaScript. To Some extent this would be like PyS60 (Nokia's Python implementation for S60 phones - http://wiki.opensource.nokia.com/projects/PyS60), however I feel that this will be the primary mechanism of programming on Android platform. I am not sure it they would provide any native programming support; primarily because of two reasons : cross compiling is difficult and time consuming secondly native code is always a security risk.

3. Large set of APIs for supporting Web 2.0 applications. It will probably support all Google data APIs, however I feel that the platform will it self support integration of other Web 2.0 (or 3.0...) apps. This is what I mean by "open'', and not closed to only Google services.

4. Would have some seamless mechanism to access Internet from all kind of networks supported by the device. This is mostly a hardware feature, but felt like mentioning it.

So these are my speculations! Let us see, what Google and its alliance have out of their hats next week. Turn back to this space to see how poorly I faired ;)



(update: Just forgot to mention in point 2 that Java and JavaFX are also strong contenders here, but with Sun Microsystems currently not officially part of the consortium I wonder whether this is really the central part of the platform).

Sunday, October 28, 2007

OS X Leopard and IPhone Touch

I had a firsthand feel of the new OS from Apple and IPhone touch interface during a visit to apple exclusive showroom. The store called Imagine and is located in Ad Labs mall in Kalayani nagar in Pune. The IPhone  on demo had access to a working Wi-Fi connection that made it possible to check the Safari web browser and the you tube video feature. I was also pleasantly surprised to seethe latest Mac OS which the sure guys had just installed on a big screen Mac. Could also check out other products from Apple, and overall it was a fun experience. This was the first time I ever visited an apple exclusive showroom and frankly I was impressed with the way the store guys allowed to experiment with everything there on display. Only my friend had to pay a price to get in there - Rs. 10 for parking! ...and i am still to get over the hangover of using the Touch interface ;)

Friday, October 26, 2007

Trying to capture moon

IM000515

IM000517

IM000521

After a long time had some stint with photography. These shots were taken during 25/26 th night. I attached my small telescope's (30x magnification) eyepiece to camera lens (with another 3x magnification) to get these photos. Are not really good ones as there is lot of chromatic aberration in these images - Must learn how to correct these. In the last photo there is a strange black spot, that kept on moving in my subsequent shots... looks like some moon satellite ;)

spider!

IM000505

IM000500

One more kind of spider found in Pune University campus.

Friday, October 12, 2007

MeTA Studio update

Update to MeTA Studio is now available with the usual assortment of bug fixes and a few new feature additions. Most notable of the addition is ability to do function interrogation by mouse click when u visualize a scalar field.

I am also formally starting the Issue tracking list at http://code.google.com/p/metastudio/issues/list where you can post Bugs, Issues and Suggestions about MeTA Studio interface and its APIs.

The new version can be downloaded from the usual place at: http://code.google.com/p/metastudio/

Saturday, September 22, 2007

Apple iPhone and HTC Touch

This is being written on the background of using my pen for quite some time now. I have neither used iPhone or HTC touch. So my thoughts may be bit biased. At first thoughts, I had thought iPhone to be a wonderful product with on screen QWERTY keypad. But it now appears to me that typing long text is really problematic and if there would be a stylus with equivalent handwriting recognizing software on HTC it would be really wonderful and easy. If Microsoft can include their handwriting recognizer in Windows Mobile OS, they simply have a killer product. As you can do a lot more with HTC mobile than the Apple's phone. More over HTC is available here in India today at a somewhat affordable price of 14k. And it Microsoft can quickly add some localization support they would land up with something very useful to be used by general public rather than a jazzed up mp3 player.

Quick Review of iBall Pen Tablet with Vista



Lately I have been bored of using a keypad for entering text so finally got an Ball Pen Tablet. One of the first advantages being the product worked on my machine ( Windows Vista UE) without the need to install any additional software. With a bit of configuration I was up and running and writing this review with the pen. One great advantage of using the pen being that, I need not use mouse or keypad fordoing most of the tasks like clicking and entering prose text. Further, the tablet Input panel provided by Vista is really fantastic in handwriting recognition. It also sports a automated spellchecker. I also used the system with GTalk and had no problem text chatting with it. So far have only one complaint about the writing recognition Software, which is not really able to distinguish my I and J properly. In any case its a big boon for papa who are not really comfortable using a keypad. However if you use a Keypad and are good at typing then you may find any the Pen a bit cumbersome at first, but will definitely enjoy using it. Deleting text is as simple as striking off the word. And using it to Paint Some Stuff is another pleasant job. In all I find this product really useful for people with slow typing speed.  And I must also mention that the Vista's inbuilt handwriting recognition is d really fascinating and enjoying tool to use. Which to some extent is not good as even if you have a bad handwriting (like mine) , the Vista tool recognizes the stuff and you hardly try to improve! 

Sunday, September 16, 2007

Digital Library of India

Every one has heard about Google Book and many use it frequently.
The Gov. of India in collaboration with many Institutions is building up a digital library in India http://www.new.dli.ernet.in/ primarily to preserver old manuscripts and make available a number of books (whose copyrights have expired) to the general public.

Only complain i have about the site is that the books are mostly in TIFF format and is not very easy to read. Google Book interface is in contrast searchable and more accessible. For example a search on Astadhyayi on Google books returns many interesting results, but the DLI doesn't return any, though there are atleast two books on DLI on Astadhyayi.

Saturday, September 08, 2007

Apple iPod touch

Though I am not a major fan of apple, largely because of its price factor, I almost always am awe with the kind of products it releases.

When iPhone was released, it was really a WOW product, execpt for the fact that it was tied to a particular operator and a particular country (US...). And the only thing that I didnot like about it was that it would not be available in India for a long, undecided time.

But, now Apple is introducing iPod touch (http://www.apple.com/ipodtouch/) with all the technologies borrowed from iPhone, except you can't do a phone call. The WiFi access is a cool option, but remains to be seen if i can access gtalk or skype on it. I guess with this Apple has really beaten MS's Zune, though the later was never quite near the competetion.

And I see no reason why iPod touch should be available in India as soon as its released in US :)

Widgets in MeTA Studio

Using the MeTA Studio and Java APIs, RK came up with some cool simple widgets (http://chem.unipune.ernet.in/~tcg/members/ritwik.html)

For those of you who had gone through the widgets/ directory in MeTA Studio, you will already have an idea of how to create your own widgets. I give a small description using RKs, Flakes Widget (http://chem.unipune.ernet.in/~tcg/codes/flakes.bsh)

1. Each Widget should have a unique file and function name in a given MeTA Studio installation. In this case it is flakes.bsh and the function name is flakes().

2. The first thing done by the widgets function is to get a shared instance of widgets panel:
panel = getWidgetsPanel();

3. Next a widget is created with a unique string identifier for the widget:
flakes = widget("flakesWidget");

4. Now "flakes" is a panel (just like javax.swing.JPanel) to with components can be added.

5. At the end give a call to :
panel.addWidget(flakes);

is made to finally add the widget to the panel.

6. Finally at the end of this file you give a call to the flakes function:
flakes();


and well here are some cool screen shots taken directly RK's page:

Flakes:


and Plane angles:



Note: There will not be any updates to MeTA Studio in coming 2 weeks ...

Tuesday, August 21, 2007

bug fix release for MeTA Studio

a bug fix release with some small feature additions is available from the usual place:

http://code.google.com/p/metastudio/

small feature additions are:
- lots of beanshell wrapper functions to for UI programming and easier access to MeTA Studio APIs
- the windows installer now includes sample scripts and widgets in the respective directories under the installation directory.

Note: To get a desktop shortcut for MeTA Studio under GNOME (under GNU/Linux, shd work for others too) u will need to create a file called meta.desktop in $HOME/Desktop directory and type:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=MeTA Studio
Type=Application
Exec=/usr/java/jre1.6.0/bin/java -jar /home/ganesh/HotCoffee/meta/bin/MeTA.jar
Name[en_US]=MeTA Studio
GenericName[en_US]=


You will need to appropriately modify the Exec entry to suit your installation directory of JRE and metastudio.

Monday, August 20, 2007

Programming in and for Devanagari

Programming for Devenagari has been largely supported by mordern languages like Java.
However, I have never tried before to program in devanagari. Using the Google's Indic transliteration tool (http://www.google.com/transliterate/indic) and a modified BeanShell editor for MeTA Studio I had some fun (http://tovganesh.googlepages.com/ganak.bsh):


गणक(अ, ब) { print(अ + " और " + ब + " की गणना " + (अ + ब) + " है!"); }


now the function can be called as:

bsh% गणक(5, 6);

the result being:

5 और 6 की गणना 11 है

which was cool. I tried the same trick in JavaFX Pad with the following code (http://tovganesh.googlepages.com/om.fx):


import javafx.ui.*;

var नमो = "ॐ नमो भगवते वासुदेवाय";

Frame {
title: "Hello World JavaFX"
width: 200
height: 50
content: Label {
text: नमो
font: new Font("sans", "PLAIN", 22)
}
visible: true
}



and WOW it worked :)


now finally I used a unicode capable editor to key in the following Java snippet:

public class हेलो {
public static void main(String [] args) {
System.out.println("भो विशव \n");
}
}

and compiled and ran it as shown in the screen shot:


and as u see, this too worked . Only the output is a bit problematic because of some font problem with my Indic font installation on FC6. However, the same is not the case when the code is written in the modified BeanShell editor in MeTA Studio.

In any case I enjoyed this experiment and hope that one day I can write a whole useful software in Sanskrit :)

Friday, August 10, 2007

MeTA Studio updates



The latest version adds multi-view panel to the in-built viewer of MeTA Studio allowing you to have different views (camera views) of the same scene at the same time. Especially useful when handling large molecules and viewing properties. Other improvements include support for interpolaters (see Interpolation APIs in metastudio help) and a new "interp" keyword in Find dialog that allows you to intepolate currently loaded properties. To use this:

dx, dy, dz, prop-number, interp

here dx, dy and dz are values with which the current scalar fields grid step size is devided, prop-number is the index of the property (scalar field) you would like to modify. And also includes the usual list of small improvements and bug fixes ;)

Updated packages are available from the usual place: http://code.google.com/p/metastudio/

Monday, July 30, 2007

MeTA update and recreational programming ;)

New MeTA Studio updates are available at: http://code.google.com/p/metastudio/

Features include:
a) subvolume generation and saving
b) Support for Fuzzy Volume generation
c) function value interpolation APIs
d) lots of improvements to UI and standard set of bug fixes..


To get a break of what i generally do, i am (re) learning a bit of windows programming and with it am writing a small set of C++ APIs for doing windows programming on my old Win98 machine. Its called weon and is downloadable from http://tovganesh.googlepages.com/weon.tar.gz

To create and open a window its as simple as:

include "weon.h"

CWeonApp app;

WEON_APP_MAP(app)


weon is under development and right now you cant do much with it. but i promise to make it simple to read and use :)

And with the help of APR and RK we have written a small set of APIs for doing MPI style programming purely using Python. Called pimpi its available from: http://tovganesh.googlepages.com/pimpi.tar.gz


A small test program that uses pimpi looks like this:

import pimpi
import sys

pimpi.init(sys.argv)
noOfProcessors = pimpi.size()
myRank = pimpi.rank()

print "Total number of processors: ", noOfProcessors
print "My rank: ", myRank

if (myRank == 0):
for i in range(1, noOfProcessors):
pimpi.send(i, "hi")
else:
print pimpi.recv()

data = pimpi.bcast(0, "bhello")

print data, myRank

data = pimpi.bcast(0, repr((1,2,3)))

print data, myRank

pimpi.finalize()


To run the above code you use:
python pimpiboot.py test.py

Note that pimpiboot.py reads a file called "node.list" that contains the nodes which you want to use in parallel. You need to setup your cluster environment for password less rsh/ssh access for pimpi to work correctly.

... look back here for more updates on these codes :)

Sunday, July 29, 2007

JavaFX

Some time ago Sun Microsystems announced their plans for JavaFX and now they seem to have many of the tools ready (https://openjfx.dev.java.net/?intcmp=hp2007jul25_javafx_download#downloads). With this, I think Sun is on the verge of creating another revolution in application creation that spans multiple devices based on the same (now ubiquely available) Java platform. Hope I get some time off my writing to try out this new stuff :)

Monday, July 23, 2007

Bharat and India

A few days ago I had to travel by a crowed bus to Viman Nagar. As the bus starts of from Pune station I waited outside till the bus started to get on to it. My mind has already adjusted to the fact that I won't be having a smooth ride back home. And then something really nasty happened. One of the elderly passengers complained to the conductor of the bus that a person sitting on a seat reserved for the senior citizens was adamantly refusing to get up. To my utter surprise this conductor instead shot back to this elderly man and said that he can do nothing about it!! This really angered the elderly fellow and he directed the driver to go to the police station. This action angered the rest of the travellers, instead of expressing solidarity towards his action and his stance (which I rightly feel was 100% correct). Any way I didn't express any great action by the police. By the time the police came the adamant man in question merely got up and walked away from the bus. One of the police officials accompanied the elderly and merely made sure that he got the seat. He had no word of advice to either the conductor, driver or the commuters. And the most terrible part of all this was that I merely remained a mute spectator of the whole incident.

Later when the bus neared Viman Nagar and most of the in between passengers got down, by mere chance I got a seat next to this elderly man. I was just about to speak to him when I saw his trembling hand and could hear his bitter murmuring (surely about what all happened). This observation was so strong to me that I completely forgot as to what should I talk to this guy... was completely clueless and didn't open my mouth till we bot got down at the same stop. He joined his wife back to home. And I still kept wondering about the whole incident made my walk towards my home.

In retrospect, I felt so bad about this incident not because someone didn't get up to give a seat to an elderly person. But because we seem to have forgotten that to be a Bharateeya is to respect and elder. Because we do not seems to have inculcated this bharateeyaness in our new generation and because we are only worried about the economic growth of India and not maintaining Bharat's values and spirituality. And because we seem to be unaffected by suffering of fellow humans and often make fun or criticize those in trouble. And because I seem to have become a more Indian than a Bharateeya. 

Thursday, July 19, 2007

Review of BenQ DeskSaver keyboard with Mobilis



Some time ago I had reviewed the Freedom mini keyboard which I use with my Nokia 6600. I find the form factor of that keyboard very well suited for ultra mobility and convenience. Some time ago I had also got an ultra compact device called the Mobilis and had commented that the inbuilt keypad on Mobilis was more or less useless. I could not use the Freedom mini keypad with this device as it did not have any kernel support for bluetooth and all my attempts to compile my own kernel for this device have not so far been successful. I had gone far to even load the compiled kernel on to Mobilis but alas could not make it run!

And well I connected it to Mobilis and fired up Abiword and was up writing this review :) At 800 INR the keypad seems to be a bit expensive. But its small tablet PC form factor and slim and sleek look appears to tone down the weight on your pockets. This is a full PC style keypad as opposed to a reduced version (QWERTY basic) Freedom mini keypad. Its definitely easier to work and type out documents with this "natural" PC style keypad. Almost all the keypad button except the one specific to Microsoft Windows are usable and work as advertised. Especially I find using the editor, bash terminal and vi was much easier with this keypad. I also found that using this keypad was much easier than using the keypad that comes with most of the laptops. Thus I find that the ergonomics of this keypad are nicely done.

To test out the usability of this device on a desktop PC (as it is marketed as a DeskSaver keyboard) I connected this keypad to my PC. This also allowed to test other keys which are of non usable on Mobilis. The special Windows keys works as expected. So does the shortcut keys for accessing Internet and Email as well as keys for controlling the volume (Note that you need to install the provided driver software for this to work properly). However, I find that this keypad is a bit constrained if you do heavy coding and would not really recommend it if you intend to replace your standard keyboard with this one. In fact the standard USB keypad that comes with today's branded PCs provide the same softkey experience as this keypad provides.

In conclusion I find that this keypad is only useful if you are looking into using this device in conjunction with a mobile device especially a tablet PC. It also works great with Mobilis, the only drawback being that its a bit bigger than the default carry case provided for Mobilis.

Monday, July 09, 2007

Core Aware MeTA Studio : Early Implementation

A new version of MeTA Studio is available for download. This is the first release of MeTA Studio where some algorithms have started taking advantage of multi core systems. Though MeTA Studio uses a lots of threads to do tasks in background, the multi core (or processor) functionality has never been earlier in algorithms that are compute intensive. As a first step the following algorithms in MeTA Studio use the multi core (processor) features of the system when available:
1) Building molecular connectivity graph.
2) One electron integral evaluation (quantumj implementation in MeTA Studio)
3) Two electron integral evaluation (quantumj implementation in MeTA Studio)

As always the updates are available from http://code.google.com/p/metastudio/

Check back as I add more features that take care of multi core features offered in todays multi core processors.

Other minor changes:
1) Bug fixes related to exporting .list and .key files
2) Updated Java3D system to 1.5.1 so that it works with Windows Vista.
3) And usual set of small bug fixes.

OpenMoko's first "open" mobile phone is up for sale

Yes! Finally OpenMoko has made available their first "open standards" based mobile phone available to be bought online at: https://direct.openmoko.com/ (Warning: if you are using some latest version of browser like IE7 or FireFox 2, you will get a warning on the certificate validity of the HTTPS site. I hope OpenMoko fixes this issue soon!).

From the site:

"OpenMoko is a GNU / Linux based open software development platform. Developers have full access to OpenMoko source and they can tailor their implementations to underlying hardware platforms. "

The current developer edition (Neo Base 1973) is costing 300 USD. The advanced developer edition comes for 100 USD more (which contains tools and stuff to open up the mobile physically).

There is a consumer edition slated to be released in October this year.

I am hopeful of this device, but as of now don't simply have the money to buy this cool stuff :(

Sunday, June 17, 2007

OLPC and Classmate PC

Last week Intel announced that they are finally introducing their "version" of OLPC dubbed the Classmate PC in India for a price of about 10,000 INR. Though as always I take the price tag with a pinch of salt because as always this price appears to be one what is subsidized and not the retail price (as in you can't buy this from a third party vendor or a distribution outlet, at least at the price which is quoted for).

Though it is made to appear that the goals of OLPC and Classmate PC to make available computing resources for those underprivileged to have an access to a full blown desktop or laptop available today are altruistic on the part of the parent sponsoring companies and rivals at the same time (AMD and Intel respectively), I see more selfish motives. Even though it is the OLPC foundation that is spearheading the development of OLPC, Intel sees it as a competition from AMD. In an attempt to make available the computing power to the next billion, the companies (AMD, Intel and Microsoft alike) only seem to be in a mood to capture the larger market share.   

Classmate PC appears to me no different from the Mobilis developed by an Indian company called Encore Software Ltd. Both of these offer compact computing power within the form factor of a very light laptop computer. Even the OLPC project falls in the same category. The only difference that I see is the real hardware and the software combinations used. While Mobilis uses an Intel StrongARM processor with a commercial distribution of GNU/Linux called the MotaVista, Classmate PC uses an Intel Celeron-M processor and possibly Microsoft's $3 software (which is basically a cut down version of Windows and Office). OLPC on the other hand is developing their own version of Linux distribution derived from the Fedora project and uses an AMD processor. But I feel, that none of these "laptops" meant to basically address the larger issue of digital divide seems to serve the real purpose.

Firstly, the foremost criterion of bridging the digital divide is to break the price barrier of a computing device. Mobilis (and its earlier avatar of Simputer) when introduced was touted to be a sub 10K INR device; now it costs 20K INR + extra 2K if you need connectivity options. OLPC was supposed to be $100 device now that is already reached somewhere to $150 (or more?). I do not see a reason why Classmate PC will have the same problem.

Secondly, the basic idea of providing a portable computing device to bridge the digital divide at the cost that is substantially high is flawed. Yes 10K INR or $100 is very expensive for people who can't get even proper schooling, I am not counting the once who do not even manage to feed them properly as I feel that the the digital divide can only be broken in steps.

Thirdly, the idea of providing a portable computing device to a group of kids also seems to be flawed to me. When you have portable computing device, it becomes a personal object, you are tied to it, you start depending on it, you learn to use it and you customize it to your needs and taste. When such a device is used in a group it looses its sheer advantage and appeal. And I feel this is exactly the reason why the Simputer's target audience was a big mistake. You can't expect a PDA form factor device to be shared with the whole village community. You do not share a mobile phone, do you? You also do not share your laptop the same way!

Fourthly, who is responsible for repairing and supporting these devices. I see no indication on the part of the sponsors in this respect.   

Lastly, I feel the refurbished PCs should also be considered as a means to bridge the digital device, rather than generating new e-waste.

All this seriously makes me think hard as to whether there is a better solution to this so-called problem of "digital divide"? Can this be achieved via a community activity and not like what currently appears to be largely spearheaded by big corporations eager to get market share in the next billion? Could the price of a decent personal computing device with connectivity options (which may require un-conventional way of designing these devices) be brought down to 1K INR (roughly $25)? (The mobile phone industry has already come up with such options with Reliance Infocom introducing 770INR (roughly $20) mobile phone in Indian market, of course the goal of phone is different (or is it?) but that is exactly the kind of pricing required of a computing device to make it accessible to the larger lot of us.) And finally as the target is a large mass of people (not millions, but well over a billion), how do we make these computing devices greener?

If you, like me feel that these questions be addressed for a better "digital world" of tomorrow, I would like to know your opinion. And possibly come up with a viable practical "first step" solution...

Tuesday, June 12, 2007

Reviewing Windows Live Writer

I am using the Windows Live Writer on Windows Vista to post this blog entry to my blog. This the first time I am using an offline editor to post the entries on this blog. Though I have used Google Docs to publish entries on this blog, I am starting to love this application from Microsoft as it seems to offer support to a wide range of Weblog services. The one greatest advantage of using Windows Live Writer is editing the blog in a completely offline mode and the post it when ever you get online. Windows Live Writer automatically adapts to the current theme that you are using (including the background images, fonts etc.) so writing on to the blog also gives a different experience :)

Tuesday, June 05, 2007

using MeTA Studio APIs to construct new applications

As an example of using MeTA Studio API's I have written up an applet to interactively select a grid for scalar field calculations using WebProp.

The code is available from:
http://tovganesh.googlepages.com/MeTApplet.tar.gz

But be warned! it not at all documented ;) .. but i guess its simple enough to understand ;)

To know what is WebProp visit http://chem.unipune.ernet.in/~tcg/webprop/

playing with MeTA Studio renderer and water esp

Playing around with MeTA Studio renderer and water electro static potential (ESP) yields some stunning pictures ... all of these are textured planes of ESP computed using WebProp:




Sunday, June 03, 2007

latest screen shots for MeTA Studio



Full Screen viewer with interactive grid generator.




Improved rendering via JRMan.




and watch the goodness as you fragment manually!

Monday, May 14, 2007

MeTA Studio windows installer

For those of who like the simplicity of installer to check out meta studio, i have built a windows installer using Null Soft installer, and is available at:
http://chem.unipune.ernet.in/~tcg/MeTAv2/MeTAStudioInstaller.exe

The installer needs an installation of JRE, which can be obtained from http://www.java.com, if u do not have it already installed.

I have tested the installer on Windows Vista Ultimate Edition (32-bit) and Windows XP Professional (32-bit) and it seems to work fine. I guess it should work on other versions of Windows too!

If you are looking of sample files to program in MeTA Studio, the scripts and widgets package is now available separately at:
http://chem.unipune.ernet.in/~tcg/MeTAv2/scriptsAndWidgets.tar.gz

Friday, May 04, 2007

revisiting olpc

Well not exactly, but this NY Times article on the schools in US abandoning the "one-to-one" computing programs as it hardly improves the learning abilities of the kids, is something that really needs to be thought about.

The article notes that in the seven or so years it was functional in many schools, the box has more served as distraction in the learning process.

Incidences like these should be taken seriously and probably we need to study a lot before blindly implementing a new technology driven learning scheme.

As of now India has taken a stand of opting out of the OLPC project, possibly because of these very worries?

Sunday, April 15, 2007

Mobilis Review - Part I : The Hardware, Software and Device aspects


What is it?


A hand held device from Encore Software, Bangalore that was introduced in late 2005 by the Indian minister for Science and Technology, Kapil Sibbal, was dubbed as a sub 10K INR laptop for the masses with an aim to bridge the much debated digital divide. However, since its availability, the price of the device seems to be little over double the initial estimated cost. With most of the connectivity options (like WiFi, GPRS and USB Lan) needing extra money, the device at present seems no where near bridging the digital divide. But if we look closer, it might have some promise...



The Hardware


The Mobilis is based on an ARM architecture and uses an Intel PAX processor clocked at 400 MHz. A main memory of 128MB is fair enough to run a number of applications included. However, a flash memory of mere 128MB is just enough for the installed applications. If you want to store data or music it is advised to get a cheap USB pen drive or an MMC card. However make sure that the drive is formatted with FAT16 only as FAT32 seems not supported. I was successfully able to use my old 128MB Lexar pen drive as well as a new 2GB Transdent drive without much problems. But I find certain data integrity issues while using the 2GB drive, and would rather recommend not to use a higher capacity drive with this device. However, I have not been able to use the MMC card that came with my Nokia 6600 on the device.


On the display side, Mobilis comes with an impressive 800x640, 16bit clear TFT display that also acts as a touch screen. I found this screen as well as the touch screen fairly well made as compared to other competing products.


Another piece of hardware that I am currently using to key in the text for this review is the 56 key keyboard that is a bit cumbersome to use. In the small keypad form factor, I am a regular user of Freedom Mini keypad along with my Nokia 6600. I find the ergonomics of Freedom Mini keyboard far better than the one offered with Mobilis. One major complain that I have about the Mobilis keypad is the size of the individual keys is so small that a person with thick figures will have problem using the keys effectively.


Another piece of hardware is the stereo speakers attached to the device and are fairly good quality piezo electric gadget. The device also includes an inbuilt mic, though I found its quality and sensitivity not at par even with cheap microphones available in the market.



The Software


On the software end Mobilis uses a commercial grade MontaVista Linux distribution.The kernel version is fairly dated in the sense it is 2.4.x series. A uname -a indicates the following kernel version:

Linux Mobilis 2.4.20_mvl31_tft_mg1


Mobilis also includes a BuzyBox based shell ash, which provides most of the command line utilities available on a standard Linux distribution. Other productivity applications like E-mail client, Firefox browser, Abiword, Presentation viewer, VLC player (mp3 and video player) and Flash player are also present.



How does it compare with other offerings in the market?


By any means Mobilis was neither released too early in the market neither too late to be run over by its competing devices. As of now I see two major factors in keeping away general public from buying this device. Most of what this device can do can be performed by a high end Nokia smart phone (except of-course the screen form factor). Another feature that this device lacks is a camera, but I don't think the current design can accommodate a camera in it. When compared with other similar form factor devices like the Nokia Internet tablet, Mylo from Sony, I find that two major things are lacking: an out of box integrated WiFi or a bluetooth connectivity and support for VoIP clients like GTalk and Skype. Though one might argue that these are not real target areas for Mobilis, these features really do affect when people are looking out for the device. Another important area where Encore is missing out is marketing. Where as Nokia and Sony have a huge marketing force as well as get fair amount of third party review, the marketing by Encore is vastly limited and has also probably received far less reviews.


In conclusion I find that Mobilis has a great promise if Encore keeps developing and improving over the current design. It a pretty good start from Indian perspective of bridging the digital divide by reliable low powered computing devices.


In the next part of this review I will cover software and programming aspects of Mobilis in more detail.... so look back at this space.


Note: This review was entirely written using Abiword on Mobilis and then transferred to my PC using USB pen drive and finally uploaded to Google Docs and published to Blogger.



Monday, March 26, 2007

mobihf v0.4

mobihf v0.4 is released and available for download from the usual place: http://tovganesh.googlepages.com/s60#mobihf

This version integrates mobihf and mobimol into a single app now bundled as a single SIS file (only for s60 second edition). All this was again done on Linux.
Due to time constraints some of the promised features (like parallel 2e integrals) are still missing and I will take some fare amount of time put in these things in, till then enjoy this version.

Some screen shots:


Tuesday, March 20, 2007

John W. Backus, the creator of FORTRAN is no more

John W. Backus, who is considered to be the creating members of the first ever high level programming language has passed away at 82.

Apart from the more well known contribution to developing Fortran, he has also been a major contributer to a widely used notation for describing the structure of programming languages called as Backus-Naur form (also known as Panini-Backus form; for the closeness with the way Sanskrit language grammer is defined).

New York times has an Obituary for him.

Friday, March 02, 2007

mobiphoto !

Well just trying to make up a little note of things that my mobile camera saw in Pune :)

When Lalu ji makes the next Budget announcement, he should allocate some funds for improving English for the sign boards put around railway station:



Next time you see street lights on Jangli Maharaj road in broad daylight, you can be sure that Pune University is undergoing power problems and safely head on to E-Square or Mangala!



Typical crime scene: Mice ate Mouse! Only was too late to catch the mice red handed!


On some +ve note: reflections

Sunday, February 18, 2007

updates on simputer and mobilis

It has been a long time since I kept track for developments on Simputer and Mobilies, largely so as I got absorbed in other work as well as was seeing a tremendous revolution in the Mobile Smartphone segment. Infact, if you see my previous posts, I have been personally involved in writing many first time applications specifically using the Python port on S60 devices by Nokia.

Not so long ago I had written a small article on Simputer, mainly questioning its marketing strategy and support for developers (those interested can read this here: http://qbit777.googlepages.com/simputer and a copy at http://tovganesh.googlepages.com/simputer). It appears to me now, that people at PecoPeta (who manufactured Amida Simputer) have probably been thinking the same. PecoPeta (or rather the Amida Simputer) has a new owner, http://geodesiconline.com/, which is a company based in Mumbai. Read this news item for some more info.

Geodesic on its part has taken some important initial steps in reaching out to the developer community as a whole. Like it has GPLed the Alchemy UI framework used in Amida Simputer (see: http://openalchemy.org/), but I feel even this step is not enough to light up the Simputer passion among the developers. To reach a larger mass of developer community, you not only need the software stack open-sourced, but the hardware also needs to be easily accessible (read: can be bought from a local vendor or an online store). And this aspect seem to be still missing in the case of a Simputer.

Another company that has been selling Simputer (largely to Government and Corporate customers) is Bangalore based Encore ltd. Apart from Simputer, Encore had last year introduced a so called "cheap laptop" called as Mobilis, which again seems to be difficult to purchase! However a look at their website (http://www.ncoretech.com/products/ia/mobilis/index.html) indicates that Mobilis has had a substantial software stack + hardware update, providing features like better Linux support, J2ME support, wider connectivity options (WiFi, Ethernet, GPRS, Modem support) etc.

In the end, a feeling of "we have it in us, but can't sell it to others" crosses my mind as I go through the revised product sheet of Mobilis (http://www.ncoretech.com/products/ia/mobilis/pdf/mobilis.pdf).

Friday, February 16, 2007

compiling mobihf python extension module on linux

As Nokia doesn't seem to provide S60 SDK on Linux (largely due to copyright issues), you could do the compilation (generating the Python extension module in my case) by using either gnupoc or using the how to at Simon Woodside.

Somehow, I was not able to get stuff working using Simon Woodside's instructions, neither gnupoc installation worked straight forward. But I was finally able to use gnupoc to get the Python extension modules compiled (for mobihf, see the previous post).

This is what I did. Follow the gnupoc instructions provided at:
http://gnupoc.sourceforge.net/HOWTO/

I used the 2.0 SDK for my work (that what is required to get programs compiled for my Nokia 6600). The only thing I am not so sure about the above instructions is whether Wine is really required to get the stuff working. What appears to me is that only if you need the emulator and a few windows only SDK tools. gnupoc use the gnu-arm cross compiler, which is natively compiled for linux and can be obtained from gnupoc site itself. In any case I have done this installation on an FC6 machine, where Wine refuses to work properly (it simply freezes up any windows program i try to execute, even winecfg). So, I have really not cared about this aspect of the SDK while performing the installation and running the tests.

After following the above procedure, I unzipped the Python SDK files from PyS60 site: http://sourceforge.net/project/showfiles.php?group_id=154155
into $EPOCROOT/. The .bash_profile file had the following entries for PATH and EPOCROOT:

export EPOCROOT=/data/sdk/gnupoc/

PATH=$PATH:/data/sdk/gnupoc/epoc32/tools:/usr/local/er6/bin:$EPOCROOT:$HOME/bin


So my SDK is installed in /data/sdk/gnupoc directory. Note that EPOCROOT needs the last '/'.
Also the GCC-ARM cross compiler is placed in /usr/local/er6/bin directory. Now, make sure that all the files in $EPOCROOT/epoc32 are executable.

You will also need to UNIXify (use dos2unix) all the .h files unzipped from the Python SDK distribution.

Finally, you need to edit bldmake.pl file in $EPOCROOT/epoc32/tools directory to replace:

$Candidate=uc $Candidate;

to :

$Candidate=lc $Candidate;

near the following line:

if ($Section eq 'PLATFORMS') {


This is to allow it to properly find the armi build directory. After this you should be able to use the SDK for compiling Python extension modules as you do in Windows using:

bldmake bldfiles
abld build armi urel
abld freez
abld build armi urel


Hope all this is of some use to somebody! :)

new version of mobihf (v0.3)

a new version of mobihf (along with the C++ compiled module for 2E integral evaluation) is available from: http://tovganesh.googlepages.com/mobihf_ext.tar.gz

this is just a bug fix release. no new "features" are added, except that now mobihf reports time and also indicates if it is using a python or C module for integral evaluation.

after the long expected "retirement" of my windows machine, i needed to fix a few bugs with the C++ module. as i was not planning for investing in a new windows vista machine immediately, i had to use gnupoc (http://gnupoc.sourceforge.net/) with a few modifications (will post soon on how i got the python module compiled for my 6600 on my linux box), till then enjoy the new version ;)


Thursday, February 15, 2007

Putin talks

Hindu has a report on recent speech given by Russian president, an interesting read:
http://www.thehindu.com/2007/02/15/stories/2007021502641000.htm

... and reminds me of revival of cold war, probably with more players this time!

Monday, February 12, 2007

Teraflops on a chip!

Intel has recently announced that their researchers have developed the first programmable chip that can deliver Teraflops computing power!

For more details on this check:
http://www.digitimes.com/mobos/a20070212PR203.html


.... soon you will have gigaflop processors for mobile devices, and then probably things like this:
http://tovganesh.googlepages.com/s60 might make more sense :)

Thursday, February 08, 2007

Tuesday, January 30, 2007

first shots of Java3D in MeTA Studio



Have been working for some time now to seamlessly incorporate Java3D into MeTA Studio... and here is a first screen shot (pictured here is gamma-cyclodextrin).
The basic framework is ready, but still require to fix a lot of things before i can release it into wild. So keep looking back!

Thursday, January 18, 2007

quote

I never see what has been done; I only see what remains to be done -- Marie Curie

Wednesday, January 17, 2007

early fortress implementation

an early implementation of Fortress (termed to be a replacement for FORTRAN for HPC work) has been released by sun and is available at: http://fortress.sunsource.net/

microthreads...

the link to moicrothreads code that i was trying long ago, but didn't do much work:
http://tovganesh.googlepages.com/microthread.py


.. mostly it will be of no use to many as there are far better implementation available on net, just google for microthreads + python!


enjoy!

ps. i won't be updating this code any longer (neither i plan to work on it)! but any one is open to contribute back.

Thursday, January 11, 2007

Get started with HPC on game machines!

IBM developerworks has published an how to on installing linux on PS3 and programming on Cell architecture at here.