Wednesday, April 6, 2011

Upgrade issues

Hello world

Yes I know I am freaking lazy for not doing this well in time, but I thought of upgrading to 9.10 from 9.04 just a day ago. However seamless ubuntu people try to make the upgradation process , crap happens. I do not how, but I ran into a major issue with the upgrade. The system was left in an unbootable state after the upgrade, with a failure to mount the filesystems with an mountall error code 127.
Some links which can prove lifesavers as they did for me are:
http://ubuntuforums.org/showthread.php?t=1308203&page=2
http://ubuntuforums.org/showthread.php?t=1297318&page=2
https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/447747

The only simple reason for the failure to boot is broken dependencies. It is always great to have a live cd to boot into and internet connection through wireless or lan. You'll need to mount your required partitions (root, boot, proc, sys, dev) manually using the live cd and correct th dependency issues as well as do a clean upgrade.

In case the method mentioned in the above links leads to mountall error code 1 as it did for me or you dont have a live cd, then you should have wired internet connection. Using the ESC key drop to the maintenance shell and perform the following steps:
1. Sudo and manually mount root as r/w and override the default read only mount happening otherwise.
mount -o remount,rw /
2. Reconfigure you packages
sudo dpkg --configure -a
3. Perform an upgrade
sudo apt-get update
sudo apt-get upgrade


This should pretty much resolve your problem.
Remember next time to create a custom live cd for yourself you never know when you might fall into a hardware failure.
Custom Live CD

Cheers!!

Friday, January 21, 2011

Feature extraction

A better video describing the outcome of the ASL recognition project using opencv and libsvm.

Monday, December 27, 2010

The year that wasnt.

Sometimes your mind enters a state of limbo trapped in a state which incapacitates your thinking powers and forces you into action you otherwise wouldn't have approved of or makes you fall into a situation to take decisions you shouldn't have taken otherwise.
I seem to have stayed in this state for far too long, longer than the time needed to self-destruct a brilliant plan.
I do not know whether this fate or sheer lack of action/impetus, but this has changed how I used to think about myself and my career before 2010 and after 2010.

Well on the whole life had been good, had a nice time on some amazing travels, nice time with mom and dad and bro. Pretty much normal and amazing.
But what disturbing is the effect it had on my outlook, my goals.
Sometimes crap just happens.... You cant control it as such, it is destiny. But there are certain conditions in which crap happens repeatedly. I had a terrible domino effect this year 2010.
The year started on a good note, very enthusiastic about what all big plans I had for my career. And then came a series of bad decisions, ego hassles, random seizures in activity.
I chose to go by the public opinion of the local pseudo-geeks and realised some basic lessons the hard way.
"I don’t know the key to success, but the key to failure is trying to please everyone."

Moving on, the misery doesnt end with learning lessons. Your deeds follow you everywhere, rather they are two steps ahead of you warning people about you even before you arrive.
Bereft of some happiness due to sheer fate, or sometimes by choice, and some times by mistake, hurts like hell. I am not scared of accepting rejection, just recording in this post.

There are lots of lessons to be learnt in life, and one doesn't need to be hassled with pitfalls. Sometimes you lose out on certain things you perceive as happiness because it is actually not happiness. Such points in time mark the change in definition of happiness.

I shall always be in the pursuit of happiness, like all others on this planet. I shall always be a dreamer like some on this planet. But I am still not very sure of what I shall strive to achieve like none on this planet. (<-- pretty much the reason of my frustration with this year)

Happy New Year 2011, may you be unaffected by any limbo-causing stimulus.
Jai Shri Krishna

Friday, October 15, 2010

Aggregated content: Maemo Review on N900

Had written this article for Computer Society of India NSIT Chapter(CSI-NSIT) newsletter.

Before we begin, this is not a blow by blow account on Maemo, nor is this a tutorial on how to use
Maemo/N900. I just intend to describe the way a person would find Maemo on a smart phone.

Nokia recently ditched their old friend for Smart phone operating systems, Symbian(which also
open sourced itself on 3 February this year) for Maemo a blazing Linux based Operating system for
their Internet tablets range. Linux-based Maemo delivers a PC-like experience on a handset-sized
device. It broadens the choice for technology enthusiasts who appreciate the ability to multi task
and browse the Internet like they would on their desktop computer. It is considerably fast and quite
a multitasker.
“With Linux software, Mozilla-based browser technology and now also with cellular connectivity,
the Nokia N900 delivers a powerful mobile experience,” says Anssi Vanjoki, Executive Vice
President, Markets, Nokia.

Hardware specs of N900:
A different breed of Internet tablets, it is actually a "brick" like tablet :). 110.9x59.8x18mm, 180
grams, touch screen in the whole of the front part, 800x480 pixel resolution, landscape default.
Powered by OMAP 3430 (ARM Cortex-A8) 600MHz processor, PowerVR SGX with OpenGL
ES2.0 support for graphics and 256MB of physical RAM (plus 768MB virtual memory). It has
1350mAh battery and 32 GB storage.
For a detailed overview see http://maemo.nokia.com/n900/specifications/ .
Overall- not very sleek but hell powerful for its size.

Maemo desktop (remember it is not a desktop it is a smart phone...its performance might make you
forget the fact)

Linux desktop users feel at home with its standard 4-workspace concept, and even if you are not a
techie, you will love the amount of space you will get to multi task.
One very subtle feature it has is that whenever you are not using it as a cellphone (read : using it as
a desktop) the mode of the screen is landscape and when you are using it as a cellphone the screen
comes to the portrait mode, quite the way you are used to using them when they are not together in
the same place.

Applications:

A number of widgets add functionalities to the smart phone. It has an intuitive customization
system which aids its purpose of being "smart". You just have to tap the screen and you would get a
drop down to select the applications you want to add. It has some cool visual effects also, when the
menu pops up the rest of the screen becomes blurred, to get back to the screen just tap anywhere on
the blurred portion. You can move the icons of the applications with your finger and place them at
any convenient location on your desktop (oops...smart phone's desktop).
The desktop also has a dashboard which fits up to 12 applications. Multitasking is cake-walk with
Maemo. With more than 13 applications running at the same time, it doesn't freak out. However it
tends to get a little slow when there are more than 10 applications.
There are hell lot of applications in it. Some basic ones being : PDF reader, RSS reader, Sketching
app, a few games and the X-term (remember its Linux and based on Debian so it couldn't leave out
the terminal ..Yay!).

Internet browser:
Once the Internet connection is set up on it using simple user-friendly gui's what more can an
Internet addict do but browse. It has a Mozilla based full blown browser (Micro B) and feels quite
like a regular desktop browser, and we don't feel the need to go back to Opera Mini. It is pretty
stable, supports flash, video and applets. On top of that there is partial compatibility with older
applications, some things work and some don't. Most sites open their default page and not the
mobile layout, and because it has a good screen resolution and default landscape view one doesn't
need to scroll horizontally to read web pages. Once the web page is loaded it goes to full screen
mode to give you full resolution to view the web page. It has a nice feature for copy pasting from
anywhere to anywhere using shortcuts. If you gently press the screen for some time a pop-up menu
appears with option to open a new window, add a web-page URL or to "save page as" to
somewhere in your file system. And the best part is that you can access Add-ons also. Its great to
have a fully functional and a great interactive browser on a mobile phone.
It has Nokia's OVI service for Maps, File-sharing and e-mail. You need an OVI account to use these
features. For instant communication like IM, SMS, Twitter it has applications to support a wide
variety of protocols.

Multimedia:
You can hot-swap memory cards to add more memory to the device. If you insert a card with
multimedia data already into it, it automatically recognizes them. It also is smart enough to identify
ID3 tags and categories songs under albums, artists, or genres. It also had a decent sound output.
One interesting feature it has is, that it maintains different volume levels between headset and stereo
speakers. It definitely saves you from deafening loud volumes you'll probably face if you are
listening full volume on speakers and then plug in your headset (I thank them for this subtle
feature). Watching videos is also a pleasure due to wide screen high definition screen. On line
services and blue tooth both enable easy multimedia sharing also. It has a 5MP camera with double
LED flash which is comparable to a digital camera. Even though the picture viewer and media
player applications are not integrated yet they are individually brilliant applications. It even comes
with an FM transmitter so you can broadcast what you are listening to .

Contacts and Conversations:
Conversations include IM, SMS, emails. It accumulates contacts from SIM, IM accounts like G
Talk, Skype etc. It has a good feature to allow manual merging multiple entries for the same contact
from different conversations.

Package manager, File system, X-term (all what a desktop user would never miss anymore):

The App-manager is basically apt-get of Debian. Loads of free and open source applications and
Nokia applications are available for download and installation from the package manager. Which
never lets you miss you dear desktop ever while on the go. Even though you wont get that many
Apps for Maemo as you get for Android yet you will find no purpose that wont be solved with this
smart-phone's apps.
The long time users of Linux systems swear by the shell. This box comes with a shell out of the
box. You can SSH into other computers or other N900s or vice-versa. Tab and escape are important
to a shell but due to lack of space it is not present in the keypad. However, the developers didn't
miss it and kept them as taro of the UI of the shell.

Some downsides:

Okay now this is a big one: BATTERY. It has poor battery life. Ruins the funs sometimes. And it is
a major setback when you are on the go (disappointed). And sorry I couldn't find anymore fallacies
as I was dumbstruck by the awesome multitasking it supports.

So, for a Linux user this machine is fun. And for a common user, this machine is like “Powerful”.

Some good links for looking at reviews are:
http://www.wiki.maemo.org/Main_Page
http://talk.maemo.org
http://www.mobile-review.com/review/nokia-maemo5-en.shtml
Agood magazine to pick reviews of Linux and its distributions and releases is Linux For You.
http://www.linuxforu.com
A more critical comparison Maemo and android can be found here
http://jeffhoogland.blogspot.com/2010/04/android-vs-maemo-hands-on-review.html


Monday, August 24, 2009

My Pet Python

This article is one of those I wrote for CSI-NSIT Blog(Computer Society Of India - Netaji Subhas Institute Of Technology).

Python is a high-level, structured, open-source programming language that can be used for a wide variety of programming tasks. It is good for simple quick-and-dirty scripts, as well as complex and intriacate applications. It is an interpreted programming language that is automatically compiled into bytecode before execution (the bytecode is then normally saved to disk, just as automatically, so that compilation need not happen again until and unless the source gets changed). It is also a dynamically typed language that includes (but does not require one to use) object oriented features and constructs. Python is equally powerful language for GUI development. It is easy to understand and grasp for people new to programming in general, and fun for programmers habitual of more masochistic alternatives such as C++ and Java .

One of the reasons why I like Python is that it provides a really nice balance between the practical and the conceptual. Since Python is interpreted, beginners can pick up the language and start doing neat things almost immediately without getting lost in the problems of compilation and linking. Furthermore, Python comes with a large library of modules that can be used to do all sorts of tasks ranging from web-programming to graphics. Having such a practical focus is a great way to engage students and it allows them to complete significant projects. However, Python can also serve as an excellent foundation for introducing important computer science concepts. Since Python fully supports procedures and classes, students can be gradually introduced to topics such as procedural abstraction, data structures, and object-oriented programming—all of which are applicable to later courses on Java or C++. Python even borrows a number of features from functional programming languages and can be used to introduce concepts that would be covered in more detail in courses on Scheme and Lisp.

Python provides a powerful assortment of built-in types (e.g., lists, dictionaries and strings), a number of built-in functions, and a few constructs, mostly statements. For example, loop constructs that can iterate over items in a collection instead of being limited to a simple range of integer values. Python also comes with a powerful standard library, which includes hundreds of modules to provide routines for a wide variety of services including regular expressions and TCP/IP sessions. Python can integrate with COM, .NET, and CORBA objects.

For Java libraries, use Jython, an implementation of Python for the Java Virtual Machine.

For .NET, try IronPython , Microsoft’s new implementation of Python for .NET, or Python for .NET.

Python is also supported for the Internet Communications Engine (ICE) and many other integration technologies.

If you find something that Python cannot do, or if you need the performance advantage of low-level code, you can write extension modules in C or C++, or wrap existing code with SWIG or Boost.Python. Wrapped modules appear to your program exactly like native Python code. That’s language integration made easy. You can also go the opposite route and embed Python in your own application, providing your users with a language they’ll enjoy using. Python is available for all major operating systems: Windows, Linux/Unix, OS/2, Mac, Amiga, among others. There are even versions that run on .NET, the Java virtual machine, and Nokia Series 60 cell phones. You’ll be pleased to know that the same source code will run unchanged across all implementations.

A lot of information on python and its tutorials are available on the official python website: www.python.org

Since it an OSI cerified language it is free to use and develop.

Installing Python in Windows

Go to http://www.python.org/download/ or the ActiveState website[1] (http://activestate.com) and get the proper version for your platform. Download it, read the instructions and get it installed.

In order to run Python from the command line, you will need to have the python directory in your PATH.

Alternatively, you could use an Integrated Development Environment (IDE) for Python like DrPython[2]

Installing Python in Unix

Python is standard equipment in many Unix-like operating systems; just type whichto check for it. If python present, it may not be the latest, but it should be enough to get you started.

If it’s not installed, check your operating system’s web page for the proper package. Failing that, you will need to download the appropriate file from http://www.python.org/download or the ActiveState website (http://activestate.com) . If you decide to compile Python from source, make sure you compile in the tk extension if you want to use IDLE.

On Debian based Linux systems, you can download it by starting the command line, changing to the superuser mode using su – and then by typing apt-get install python.