Tuesday, September 21, 2010

SQL or NOSQL

Over past few days, I have been reading and experimenting with MongoDB, a Non-RDBMS database, aka NOSQL database. NOSQL stands for "Not Only SQL." NOSQL databases offer an alternative to software development scenarios where traditional RDBMS might be too cumbersome to work with. MongoDB falls under what is called a "Document Oriented Database" category. Surprisingly enough, NOSQL has been around for at least a few years now and is already a favorite among the Social Network crowd: FaceBook, Twitter, etc., however, regardless of how simplified definitions on the Internet, it takes a while to completely grasp the concept. Take as much time as you can to read about them before you decide to take a plunge.
I was looking at CouchDB and MongoDB at the same time, and decided, for no particular reason, to use MongoDB for my training exercises. What better way to learn new technology than to use it in one's project (when feasible)?
My development environment comprises of the following: Ubuntu Linux Operating System, PHP setup with Zend framework and h2o template, git for source control, Eclipse IDE with PHP PDT and eGit plugin, and MongoDB and the native drivers for PHP. The idea is to train myself on PHP, Zend framework, h2o, MongoDB, and git at the same time in one big comprehensive development project.

Friday, September 3, 2010

New M-Audio KeyStudio!!!!

I am happy to announce that I am a proud owner of a new M-Audio KeyStudio Midi controller. For those who are curious, a midi controller is a musical keyboard that connects to a midi device or a computer and is used to send musical notes to the device. Midi controller can be used to produce sounds of any number of musical instruments.
I got the keyboard few days ago and have been using is with Linux - Ubuntu Studio. So far its been, um.... Plug and Play!!!!
Here is a picture!!!


Thursday, September 2, 2010

Issue with images....

The picture file urls have seemed to be expired causing most pictures on the blog to not load.

Hopefully its as simple as changing the hosting service. Lets see....

Tuesday, June 15, 2010

Ubuntu LTSP over WIFI - TP-LINK TL-WN422G - Update

After spending weeks researching and days trying to implement it, success may not be too far away after all. This morning, on my VM, I was able to finally get to the login screen. I couldn't login, though. However, that may not be such a big issue. I've had similar issue with a regular LTSP client setup and probably a server restart can fix that. I was also able to load the LTSP client on my Fujitsu Stylistic 3500 tablet till the login screen as well. That was very exciting.


Update: Got past the authentication after restarting server and nbd-server service. I get authenticated but yet to see the desktop. So far, so good.

Update: Seems like I get stuck here and can not proceed any further. However, my VM works fine. I'll try changing certain settings to see if that helps.

Update: I'll continue researching this, however, not as aggressively any more. There are so many other things to try and I've only now begun the LTSP experience.
Here is a picture.




Progress on this topic can be followed on the following pages:
Unfinished business: Ubuntu LTSP over Wifi
Ubuntu LTSP over Wifi (Continued)
Ubuntu LTSP over WIFI - TP-LINK TL-WN422G
Ubuntu LTSP over WIFI - TP-LINK TL-WN422G - Update



Monday, June 14, 2010

Ubuntu LTSP over WIFI - TP-LINK TL-WN422G

Couple days ago, I received the two Wireless USB adapters I had ordered. They are both from the same manufacturer, just different speed specs and model numbers and both came with antennas. The model numbers are TL-WN422G and TL-WN722N. The really fun part began when I attempted to load them on my Linux laptop.

I had bought them because I read somewhere that they used Atheros chipset which was also in my laptop's built-in wifi adapter. I had successfully tested LTSP over wifi on my laptop after customizing the initial ramdisk. So, I thought, eh, should be a piece of cake to repeat the steps using USB adapters. Bad judgment. While the built-in wifi adapter used "ath5k" module to work, these two needed "ath9k_htc" module. Now, "ath9k" was stable and packaged with the Linux distribution, however, at the time of this article, "ath9k_htc" was still under development and was not packaged with the operating system. What more? A firmware binary was needed to be present on the computer in order for the adapters to work, a situation I was hoping to avoid.

I did some researching on www.linuxwireless.org and found the right driver modules. After spending few uneventful hours trying to figure out the driver installation on my laptop and on a VM, I was finally beginning to make some progress. Then I started working on customizing the initial ramdisk by packaging the wireless drivers and activating them during the init process. Again, after spending few more very frustrating hours with it, I was able to load the module, load the firmware, activate the wireless adapter, and join the wireless network with WPA security.

The modified LTSP client now hangs while trying to load the network shares. If I recall correctly, I had encountered this in my prior attempts and should be able to fix the issue without wasting too much time.


Progress on this topic can be followed on the following pages:
Unfinished business: Ubuntu LTSP over Wifi
Ubuntu LTSP over Wifi (Continued)
Ubuntu LTSP over WIFI - TP-LINK TL-WN422G
Ubuntu LTSP over WIFI - TP-LINK TL-WN422G - Update

Tuesday, June 8, 2010

Ubuntu LTSP over Wifi (Continued)

This entry is a continuation of Unfinished business: Ubuntu LTSP over Wifi
I have a laptop with a built-in Atheros wireless adapter and an Belkin wireless usb adapter. After some more testing with the customized initial ramdisk, I realized that, while I could use the custom image and easily start the LTSP client with the Atheros interface, on the other hand, Belkin kept dropping the connection and failed to acquire the IP address. I am probably missing something here. However, since I am only beginning to explore the realm of ramdisk customization, I'll pass on trying to get the Belkin adapter to work for now and search for different inexpensive wifi usb adapters to work with.
I'll write more on this after further testing.
In the mean time, I would also welcome any help with getting the Belkin wireless adapter to work.



Progress on this topic can be followed on the following pages:
Unfinished business: Ubuntu LTSP over Wifi
Ubuntu LTSP over Wifi (Continued)
Ubuntu LTSP over WIFI - TP-LINK TL-WN422G
Ubuntu LTSP over WIFI - TP-LINK TL-WN422G - Update

Sunday, June 6, 2010

Unfinished business: Ubuntu LTSP over Wifi

For some time now, I have been working on figuring out LTSP (Linux Terminal Services Project) over wifi. The idea is simple (aren't they all):
  1. Modify the Initial Ramdisk for the PXE boot image to include the Wifi drivers
  2. Update the start up script to load the driver
  3. Connect to wireless router prior to issuing dhcp request
Since wireless drivers are being loaded at boot time, the true PXE nature is lost. Also, the kernel and the initial ramdisk would reside on the client computer's hard disk. However, the computer would boot directly into the LTSP client, using the LTSP servers resources for storage and processing and only using the client machine's inputs and outputs.

When I added the wifi drivers and all the dependencies, the setup did not work. There was still a "not so obvious" component missing. So, I decided to start with a fully loaded initial ramdisk and work my way backwards from there, by removing modules that seemed not necessary. I replaced the /lib/modules/`uname -r` folder of the LTSP ramdisk with that from my desktop installation. Initial tests resulted in a successful startup of LTSP client on my laptop and in Virtual Machines. This also caused my compressed ramdisk image to increase from 8 MiB to about 30 MiB in size.

Now the real challenging part. My laptop is not the intended target for this test. I want to run the customized LTSP client with wifi enabled on old Fujitsu tablets. They have 128 MB in RAM and 500 MHz processor. Yes, very ancient hardware, but that is where the finalized clients will reside. First trials on the tablets failed. After testing on virtual machines with limited resources, I quickly realized that RAM was the problem. Since I can not increase the RAM in those tablets, I'll have to shrink the ramdisk by a significant size.
I haven't worked on this in past few days. Hopefully, I can pick up from where I left in coming days.

Progress on this topic can be followed on the following pages:
Ubuntu LTSP over Wifi (Continued)
Ubuntu LTSP over WIFI - TP-LINK TL-WN422G
Ubuntu LTSP over WIFI - TP-LINK TL-WN422G - Update

Monday, May 31, 2010

Windows 7 - (K)Ubuntu coexistance nightmare

I had been running Windows and Kubuntu on a dual boot configuration for a long time now. My current Presario CQ60 laptop came with Windows Vista pre-installed. When Windows 7 was launched, I got a copy for the $50 promotional price. I use Grub2 as the default boot manager.

I use Kubuntu as my primary OS and only log into Windows 7 mostly for applying updates, which is why I didn't bother to investigate when windows 7 did not start without restarting the computer 3 - 4 times. Then one day, I decided to install Visual Studio 2010 Express editions. The first part of the installation requires restarting the computer to apply come settings and then continues to complete the rest of the installation. Except, for me, the computer went into a restart frenzy. I tried safe mode with no luck. The 3 - 4 restarts turned into 7 - 8 before letting me log into windows. When starting in Safe Mode, I noticed that the last driver that was loaded before the computer restarted was classpnp.sys. Bing-ing and Google-ing "CLASSPNP.SYS Windows 7" made chills run down my spine.

With no solution available on the Internet, I decided to reinstall Windows 7. I got Windows back, but my home partition (/home) I use with Linux went missing. GParted listed it as "Unallocated." My months and years worth of work went poof! I also noticed some issues with my partition table. I had restructured my HDD earlier to increase the size of the /home partition and ever since, certain partitions in the partition table had overlapping boundary sectors. TestDrive utility bundled with PartedMagic came to the rescue. I got my /home partition, and hence, Linux installation back, but the Windows 7 restarting issue came back as well. And this was a fresh OS install with no additional software installed yet. Moreover, GParted listed the entire 250GB HDD as unallocated. My partition table was messed up.

Next few were some of the most painstaking days of my life. I had an external HDD with not nearly as much space as I needed for my /home partition, not even after tar.gz-ing all the files. I knew that sacrifices would have to be made. After leaving behind all the application configuration files and downloads, I managed to copy my most valuable content to the external HDD. I wiped the 250GB HDD clean and installed Windows 7 64-bit on 100GB partition. Then I reinstalled Linux, and restored my files to the new 100GB /home partition. Linux installation make Grub2 as the default boot loader. The nightmares returned.

Windows 7 was back, and so was the problem with multiple restarts. I decided to install Windows 7 32-bit to see if that resolved the issue. Once installed, I restarted my computer multiple times to see if the issue was still there. To my surprise, Windows behaved this time. Excited about this, I restored Grub2 using the LiveCD of Kubuntu. Soon enough the grin on my face turned into a frown. It appeared that as long as Windows got to hold the MBR with its boot loader, it was happy. However, when Grub2 took over, Windows started throwing a fit.

I decided to let Windows boot loader hold on to the MBR. I followed Method two from:

http://www.sevenforums.com/tutorials/668-system-recovery-options.html

Once on the Command Promt, I browsed to the Windows System32 folder. I issued the following command to restore MBR:

bootsect /nt60 c: /mbr

I now had to figure out how to chain load Grub2 from windows boot loader. I came across this article:

http://ubuntuforums.org/showthread.php?t=208951

Three differences I found with the configuration addressed in the article and mine were:

  1. No separate /boot partitions
  2. Grub2 instead of Grub Legacy.
  3. No boot.ini in Windows 7 which I did not realize until much later

I decided to improvise. I understood that I needed the boot sector with Grub2 installed on it. After installing Grub2 to the external HDD /dev/sdc, I issued the following command:

sudo dd if=/dev/sdc of=/home/{my-user-id}/Desktop/kubuntu.lnx bs=512 count=1

I then copied the kubuntu.lnx to the root directory on the Windows 7 partition and restarted the computer into Windows to rig the boot.ini. Here I ran into the issue with no boot.ini in Windows 7. I research and came across this article:

http://apcmag.com/how_to_dualboot_vista_with_linux_linux_is_already_installed.htm?page=5

EasyBCD tool seemed promising. I promptly installed it and followed the instructions when I ran into another brick wall. EasyBCD was not Grub2 compatible. It only worked with Legacy Grub. However, I noticed that a new entry was added to Windows boot loader options and it referred to NeoGrub.mbr file residing in C:\NST folder. It was time to improvise again. I renamed the original NeoGrub.mbr file to NeoGrub-bak.mbr effectively breaking the reference and renamed my kubuntu.lnx to NeoGrub.mbr. With my fingers crossed, I rebooted the laptop. It worked! I was able to load Kubuntu using the Windows boot loader. I haven't had the restart issues ever since. I've also updated the boot option description from "NeoSmart Linux" to "Kubuntu" and changed the file path from C:\NST\NeoGrub.mbr to C:\kubuntu.lnx.

Few things to note. The restart issue is not limited to dual/multi boot configuration in Windows Vista/7. People have also reported this issue to be related to certain hardware, mainly with NIC and VGA. While the problem seems to be resolved for now, I am not sure if I've seen the end of the multiple restarts.

Sunday, May 30, 2010

Turned to the Dark Side

I've been using Linux, Ubuntu more specifically, as my primary OS since the past few years. KDE has been my favorite Display Manager. I've always preferred bright desktop themes over dark ones and blue has always been my favorite color for wallpaper. Changing desktop themes and color schemes are like making a lifestyle change. Unless one is satisfied with its every aspect, one can not continue with it for too long. Every ones in a while, I would try dark backgrounds and themes but get quickly displeased and switch back to the original "Oxygen" and "Air" themes. One major factor was that one perfect color scheme that would complete the theme.

This past week when I had to rebuild my laptop, I decided to give a dark theme another shot and spent some time on tweaking the colors to see if I could find the right mix. I finally did. I switched from the default "Air" theme and the default color scheme to "Arezzo" theme and "Obsidian Coast" color scheme. I even changed from the default icon set to "OSDark-K" set. And while I was writing this article, I came across the "Obsidian Coast Cursor set."

Note that the above themes and schemes are for KDE based Linux distributions.





Saturday, May 29, 2010

Karim Who???

I am a full time programmer. I primarily work with .Net, Java, and C++ languages. My interests lie in distributed computing, large volume data transformation and migration, applications for handheld devices, and cloud based application hosting.
I use Linux on my computers. I still maintain a Windows partition for those difficult situations.
I am a big fan of Doctor Who series (hence, the Who in title :) ), especially the Tenth Doctor as portrayed by David Tennant. My cell phone rings to the Doctor Who theme song, and it absolutely mesmerizes me every time someone calls me. Apart from being a Doctor Who fanatic, I also enjoy Torchwood, X-Files, Castle, 24, Family Guy, American Dad, and few other TV shows.
I co-founded Infinidigm LLC, based in Murfreesboro, TN. At Infinidigm, we handle data. We transform data for applications and move it from one system to another.
I also work for Wipro Gallagher Solutions, based in Franklin, TN, as an Implementation Specialist for their flagship product - NetOxygen.
Any thoughts or opinions expressed on this blog are solely my own and are not of any of my employers.

and also....

.... my local client works as well

By the way, I use Blogilo blogging client on a Kubuntu 10.04 64bit Compaq CQ60 laptop. And I've had to rebuild my laptop over past week. So, it has also got an Extreme Makeover..... and I am loving it.

Its Alive!!!!!

..... so lets blog :)