2010 Mar 04

FML

== Part I ==

Research scientist 1: You know, Indians are extremely well known for spamming inboxes without any genuine interest in the field. In some labs I worked, we ignored emails from Indians students.

Me (Indian): fsck my life and all those Indian morons.

== Part II ==

Research Scientist 2: oh you did your Bachelors in India? Which IIT?

Me: Nopes. Not the IIT.

Research Scientist 2: Oh! (expression changes)

Me: Fsck my life.

In short, life is throwing at me challenges from which I will be learning a bountiful than actually what I might be learning by doing research.

 
2010 Feb 27

GNUSim8085 development team is pleased to release version 1.3.6 of its 8085 simulator for Linux and Windows platforms. This is the first stable version after moving over to launchpad for our project management. With this release we bring to our users a wide range of new additions. To read the complete release announcement head here. We appreciate your continued support in the form of bug reports (with patches ;) ) and general feedback. Feel free to ask questions and get support through Launchpad’s Answers interface. You can join our development team here - https://launchpad.net/~gnusim8085-devel . We always have some work. Some key highlights of this release are as follows

  • The UI is now internationalized. Translations for Arabic, Asturian, Catalan, Esperanto, French, German, Gujarati, Italian, Kannada and Spanish languages are now in place.
  • Printing support is added.
  • Improved Windows installer with multi-language interface.
  • Several UI modifications to enhance user experience.
  • A dozen bug fixes.

Starting with this release the release files will be available only on Launchpad download page. Please head to https://launchpad.net/gnusim8085 Packages for older Ubuntu releases  are expected to arrive soon and we shall announce once it is in place.

The project management is moved from sourceforge.net to launchpad.net. The work of migrating bugs from sourceforge.net to launchpad.net is in progress. Going forward all project communication will happen only via the launchpad infrastructure.

And oh! We have our own domain now http://www.gnusim8085.org (a redirect to the LP page) and a brand new logo courtesy of Kamaleshwar Morjal

Happy Simulating!!

 
2010 Jan 22

I use Fedora for RTEMS development and Ubuntu for my regular academic, leisure tasks. Fedora 12 is a Qemu image which I run using the linux kvm module. It never struck me until recently to just ssh into the guest machine (Fedora 12) from the host (Ubuntu 9.10) and do my RTEMS development work. I had always started the VM and worked inside it. This made my other applications on my host (Ubuntu 9.10) crawl. By default, both KVM as well as Virtual Box have guest to host communication enabled. On the contrary, the host system cannot communicate with your guests. This can be done by making the guest (your Virtual Machines) to listen to one of the host system’s ports.

In KVM this is achieved by adding the “redir” argument to the command while starting the virtual machine;

kvm -hda fedora.img -hdb swap.img -boot c -m <memory allocation in megabytes> -redir tcp:[host-port]::[guest-port]

Here we would like to make the guest port 22 (default ssh port) listen on some host port, say 2222.

kvm -hda fedora.img -hdb swap.img -boot c -m 384 -redir tcp:2222::22

If you are using Virtual Box then follow this tutorial.

Now your guest machine can be accessed via ssh from your host system as you would do for any remote server. E.g.,

ssh -l rtems -p 2222 localhost

In case you need X forwarding, use the -X flag or the -XC flag for X forwarding with compression enabled.

Emacs with tramp mode on my (host) Ubuntu machine is all I now need. A perfect Fedora 12 “remote” development server is setup. I can now do away with all the jazz of GNOME/KDE on the virtual image ;) .

 
2010 Jan 16

GNUSim8085 is a simulator environment for the Intel 8085 processor. Like most open source creations, “scratch your itch” resulted in this nifty application. The “itch” was the absence of a 8085 simulator for GNU/Linux platform while Sridhar was preparing for his Micro-processor lab exam and decided to create one. Three days and it was in working shape with which he practiced for his exam. Even today, this processor is used in many educational institutions around the world for introductory courses on microprocessor architecture and assembly level programming. Onkar and myself took over the development from Srid a couple of years back and for the past 6 months or so there was not much activity in there. A casual visit to the SF page shocked each of us. There were a hefty number of feature requests/bug reports and SF happily swallowed them without any email notifications. This was not the first time this has happened, and we decided to move to some other code hosting service. After arguing on several providers, we finally decided to move to Launchpad. So here is the new project site.

A new release with a lot of bug fixes and some useful features is coming soon. With this release, we will have localisation support with strings translated into Gujarati, Arabic, Spanish, French, German, Catalan and Esperanto. If you are translator, head to the translations page and start firing in some translations in your language NOW.

We are happy with Launchpad just for some very inflexible structure that it imposes (but thats a different blog altogether) and the absence of a wiki. We are back to active development and are absolutely excited with the numerous feature and support requests that are coming in via email as well as the trackers. I guess the German Wikipedia page on GNUSim8085 did contribute to the sudden rise in interest. Happy hacking and simulating.

 
2010 Jan 06

Continuing the meme intiated by Sankarshan and started by the ever enthusiastic Kushal Das, here goes my best photo(s) of 2009. I like to categorise it into Best Night Shot, Most memorable trip and Best personal like. If you want to check it out on black background head to the original blog here.

Best Night Photo – I casually took a photo of this scene from over a bridge and upon seeing it on the LCD I saw the reflection of the colours and the beauty. Took out my tripod and spend 15 minutes getting the image according to what I like. Easily my favourite night shot of 2009. Taken in Barcelona.


Memorable – Most difficult one to choose. In the end I preferred this one to this other photo because the other is seen in gazillion of web photo albums. This is unique, simple and potrays the wonderful Swiss landscape.


Adorable – Do I even have to explain? I thank God for this. Best wishes and a very very Happy, Prosperous New Year 2010 to all my readers.

 
2009 Dec 14

For the past 1 month, especially en-route preparations for FOSS.IN 2009 I wanted to have a complete repository on my hard disk from where people can checkout, commit src code, schematics, technology information and do whatever needed without the necessity of INTERNET connectivity. Thats where git drew my attention. I have been a cvs / svn user for long time now and the very fundamental design aspect of git / any distributed version control system makes me happy as it is just what a developer like me needs.

So here goes a quick how-to (more of a note to self) on how I setup a remote git repo on one of the servers I have ssh access to.

1. SSH into your remote server (ssh uname@remoteserver)

2. Say, you are starting off setting up a git setup on this remote server. Create a directory by name say git (In the below example I put it in the home directory). All projects shall go into this directory.

uname@remoteserver$ mkdir ~/git

3. Now, create a project.git directory. If your project name is ledblink then do the following.

uname@remoteserver$ mkdir ~/git/ledblink.git

4. Initialise a bare git directory

uname@remoteserver$ cd ~/git/ledblink.git

uname@remoteserver/git/ledblink.git$ git – -bare init

5. Edit the description file to describe the project [Optional of-course]. Then edit the config file to enable reposharing by adding the line “sharedrepository = 1” under the [core] section.

6. Setup appropriate permissions. In the below example user only rights.

uname@remoteserver/git/ledblink.git$ chmod -R g=u .

uname@remoteserver/git/ledblink.git$ find . -type d | xargs chmod g+s

So all is done on the server side. Go back to your local machine.

7. Go to the folder you want to be version control or create a fresh directory where you will put your project files. Lets say localprojectrepo is the directory name. Change directory into the localprojectrepo and do the following.

uname@localhost/localprojectrepo$ git init

uname@localhost/localprojectrepo$ touch samplefile.txt

uname@localhost/localprojectrepo$ git add .

uname@localhost/localprojectrepo$ git commit -m “First commit”

Your local git repository is created. Now lets add the server as remote so that a push “syncs” the changes to the remote server.

uname@localhost/localprojectrepo$ git remote add origin uname@remoteserver:<pathto>/git/ledblink.git

uname@localhost/localprojectrepo$ git push origin master

Life is good! To take backups of your remote git repo, use your favourite means to copy the ~/git directory you create on the remote server. Thanks to good old friend Anurag for helping me through the details.

 
2009 Nov 29

If you are enthusiastic about Free and Open Source Software and you are anywhere near Bangalore (even if you are not, there is nothing stopping to be near Bangalore during this time), make sure you head to FOSS.IN 2009. FOSS.IN is the first conference for Open Source that I attended back in 2005 and was impressed. Since then I have attended all FOSS.INs except the 2006 (away from the country on an official trip). The conference has undergone several changes over the years from being a “Just another Conference” to “Getting things done” event. Project days were introduced in 2007, Workouts in 2008 and this year, team FOSS.IN has decided to take it a little further making it more “hacker” friendly in similar lines with Chaos Computer Congress organised by Chaos Computer Club, arguably one of the most influential hacker groups.

This time around Santosh Vattam and myself are taking leads in having a RTEMS Workout. We have put up the pre-requisites, purpose and general outline on the wiki page here. Currently we are stream lining the objectives into being more specific. If everything goes well, we will be kick starting the workout with a basic introduction to RTEMS, a quick overview of the architecture, a walk through of source code structure and some basic knowledge sharing wrt what might be required during the next 4 days. So Day 1 would mostly be setting up and getting up to base. Day 2, 3 and 4 would be hard days filled with coding, debugging and lots of fun! Day 5 would be more of a wrap up – collecting patches, cleaning up things, sanity checks and reporting!

So, if you want to see your contributions go into NASA and ESA space shuttles then RTEMS workout is the place you need to head to. RTEMS community is a bunch of extremely nice people full of patience and am sure you will have fun hacking with us.

On a sidenote, I am currently at Zurich Airport calculating the probability of missing my connecting flight given that my first flight is delayed, life is full of mathematics. Number never fail to impress me. See you at FOSS.IN 2009!

 
2009 Oct 04

A few days back, my website was defaced by a “(cr)hacker” group. Discomforting pictures of blood and swords were put up. I really wonder why the morons who crack websites have to load some gory pictures of violence. As it is always “All for good”, grabbing up this opportunity, set it up for a battle against my laziness, I *finally* moved my website to a VPS and now I have complete control over my content, more freedom and flexibility. As I was moving the site contents, I figured out the highly outdated content, spammed blog, old WP installation. It felt like my website was living under a rock for all the 4 years. The next few weeks , I will find myself doing self-marketing to a number of folks and hence the decision to re-design everything was taken. A good decision I feel as I write this with the new site launched. My home page looks like the below screen shot.

My homepage

My homepage

Nice, right? It would be a blunder on my part if I don’t mention my good friend Kamaleshwar Morjal for all the efforts he put in over the last two weeks to get a new design running. He has his own design company “Eficacy Designs” and provides design services for the web and lots more. The Wordpress blog theme, was custom made for me. Very few designers have the capability to convert what you think and tell in words into the final product. Believe me, I just had online IRC conversations with him of how I would like my pages to be and thats it! A shameless plug but also a show of gratitude – “Do check up with him for any of your future design needs or consultancies. I highly recommend him”. So in short, the all new tuxmaniac.com is up and running. Check it out!

Aanjhan’s Home on the Web

 
2009 Jul 09

This post does not tutor any specific methodology or design approach to any project but more of a note to self. Its been 4 years since I left undergrad school and since then and before have been involved with several projects of various magnitudes. In most of these projects I found myself get stuck at exactly similar scenarios and recently figured out the reason for that. The reason is “Getting into the Nitty-gritty of things too early”. Thanks to my mentors Dr. Philip Brisk and soon to be (Dr) Theo Kluter  at EPFL and Dr. Joel Sherrill and Thomas Doerfler (he doesn’t blog nor have a page that I know of) as mentors for my Google Summer of Code project for the help they have extended in my path to gain more knowledge in the field. The below thoughts are mostly based on Real Time systems and advanced computer architecture projects I have been involved in.

Most often when we start a project, we get a very generic picture , read around the project’s required literature background and immediately get into the “details” of the system a bit too fast without “completely” getting a grip on the Functional Overview of the system. Many people do the documentation (including explaining the design structure, functional flow) after coding a basic prototype and this itself in my opinion is a flaw. I found it much better to do the reverse and found most successful “engineers” do that way. There have also been scenarios where people have asked me “You draw a structural representation of your system before implementing??” which I find very amusing. How can one get something done without having a picture on paper first?

So the first thing I do now when starting off on a new project is to get a very high abstract picture of the requirements of the project. Then a bit more digging into the “functionality”. It more or less can be compared to a behavioural modeling of the project. Something like this  . Note that the picture does not have any details of implementation (like which function to call, in what module will the implementation go into, what parameters to pass, which module is reusable etc etc). Its just plain functional diagram. This in my opinion helps one to cover most use cases, error scenarios. Its much easier to handle or think about these scenarios at a high level. Believe me, its just too easy to get into the nitty gritty and start putting down the details. Slap yourself and come out of that once you find yourself doing it. The paradigm is that once you are into the details you lose track of the big picture and hence the wider scope and overlook several scenarios. Yes, of-course there will still be some scenarios overlooked but it would be less in number and much easier to handle.

Once most cases are covered one can now, start digging into the diagram and find out re-usable portions of a module easily by repeating flow diagrams, eliminate conditions etc. And then get into the low level design and coding aspect. Also having such a high level functional diagram in place gives rise to many test cases and ensures you test most common conditions before hand. I use Freemind for these diagrams. A great tool not only for mind mapping but also for such things.

It might sound very trivial, but how many of us have got stuck in the utter complexity of the system and miserably struggled to get ourselves out of the situation? If you have any other suggestions do feel free to leave a comment.

 
2009 May 16

Its been really long since I updated my blog. More or less 2.5 months and I just realised that. May be its a side-effect of doing a lot micro-blogging. If you are’nt following me on twitter or identi.ca , please feel free to do so. It has been very hectic and will continue to be atleast for the foreseeable future and I am loving it.

Google Summer of Code 2009

I am participating in this year’s google summer of code program as a student (yes, you read it right ;) , as a student ).  You can find my proposal to RTEMS here (pdf). The Community Bonding period is almost coming to a close and the work package is getting more clear day by day. My mentor, Thomas Doerfler from Embedded Brains Gmbh has helped me refine and catch up with all the necessary required knowledge to start work. Thank you Thomas. So this summer is already scheduled for me. Oh! You can find the project related wiki page here.

Photography

Whenever I feel like “Its getting on to me”, I take my good friend (now its got some companions like tripod, UV-Filter, Polariser etc) and go shooting. Outcomes are the sets of Tulip Show (one of my favourites), Geneva Autoshow, random pics of my town and nearby areas. The photos I liked the most are in the Masterpieces set. Some preview below.

 

Oh and my cooking skills have improved tremendously. I can now cook Palak Paneer too :-)

Academia

Its been hectic, hectic and hectic. But things are looking good. If everything goes well I should be able to get some experiment results out of my project by July which could be great. I have decided to put all my code that I have written for my assignments on the interweb under the WTFPL. Thanks to Thibault to have suggested it :-) If FEL team accepts we can package it under different sections and provide it along with the FEL Spin for F12. I have a few blog posts to make on some roadblocks I came across which could be really very interesting and informative for fellow Computer Architects, students and in general to anybody interested in Hardware Modeling and Design.

Thats all folks! Later!