2010 in review

The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads Wow.

Crunchy numbers

Featured image

A helper monkey made this abstract painting, inspired by your stats.

The average container ship can carry about 4,500 containers. This blog was viewed about 17,000 times in 2010. If each view were a shipping container, your blog would have filled about 4 fully loaded ships.

In 2010, there were 2 new posts, growing the total archive of this blog to 12 posts. There were 7 pictures uploaded, taking up a total of 256kb.

The busiest day of the year was November 11th with 435 views. The most popular post that day was DSE BULL! Tray.

Where did they come from?

The top referring sites in 2010 were somewhereinblog.net, weaverspark.com, facebook.com, google.com, and search.conduit.com.

Some visitors came searching, mostly for english to bangla dictionary for mobile, dse bull, english to bengali dictionary for mobile, dse bull tray, and bangla dictionary for mobile.

Attractions in 2010

These are the posts and pages that got the most views in 2010.


DSE BULL! Tray March 2010


English to Bengali dictionary for mobile January 2009


Download Yahoo Go or Gmail (YahooGo.jar/Gmail.jar) using Firefox 3.0 October 2008


DSE BULL! January 2010


Activate/Unlock Qualcomm Gobi Mobile Broadband device April 2010


Leave a Comment

Qualcomm Gobi Mobile Broadband device Driver for Mac OS X

Please check my latest blog post for device driver

After two weeks of restless work I could manage to develop Mac OS X device driver and firmware loader for vendor specific usb device (Qualcomm Gobi Mobile Broadband device).

qcserial USB driver for linux directed me to the right direction. First of all, I was trying to upload firmware to the USB device after making some changes to SimpleUSBNotification example shipped with XCode. I had to port the codes of for Mac OS X.

Though I could upload the firmware after few days of work the device were not working as I expected. Because, the device and all its interfaces (class, subclass, protocol) were defined as vendor-specific. As a result none of the existing usb modem driver were recognizing it.

Then I was planning to develop a driver for this. My target was to expose a vendor-specific USB Interface (Interface #2) of the Composite USB device to be exposed as a port under /dev/tty.* using the driver and then use that port to connect dial-up internet.

Then I found a usb modem driver called AirPrime. I have been trying to modify this driver so that the modified source codes work for my usb device. And finally the success came to me. I could load the driver during boot which do recognize my usb device after uploading the firmware and then I can connect internet without any problem

Please let me know if you want me to upload the modified source codes. Thanks for your time.

Comments (6)

Activate/Unlock Qualcomm Gobi Mobile Broadband device

I was lucky enough to activate Qualcomm Gobi Mobile Broadband device built-in with Toshiba Satellite M505-S4945. It is now working with GSM network (GrameenPhone/Aktel/Warid) in Bangladesh. I could not test it with CDMA network available here. Loading appropriate firmware should work, I hope.

Please follow the steps below.
1. Load Gobi Firmware onto the device using Toshiba WWAN Connection Manager on Toshiba Mobile Broadband Device.

2. Execute AT+CFUN=1 AT command on the device (****Please do this at your own risk****). I used minicom to connect to the device and execute AT command in Linux environment. Please use similar applications available in Windows platform.

3. The command above will unlock the device. Now configure WWAN Connection Manager for your network and enjoy.

The way I made it work:
1. Uninstall Qualcomm Gobi Download Service.
2. Install Ubuntu 9.10 in virtualbox 3.1.4.
3. Installed qcserial, the device driver for Qualcomm Gobi. Please check this. FYI, I added the following text to the driver code.
{USB_DEVICE(0x0930, 0x130D)}, /* Toshiba Gobi QDL device */
{USB_DEVICE(0x0930, 0x130E)}, /* Toshiba Gobi Modem device */

4. Load Gobi Firmware. You can load any firmware. Check this to load firmware. Please note that the blue light will be turned off automatically once the firmware is loaded.
5. Install and use minicom to execute “AT+CFUN=1” AT command to activate the device. If the device is activated the blue light will be turned on again.
6. Once the device is activated re-install 3g drivers and utility software uninstalled earlier in your Windows platform and enjoy.

I am now experiencing Gobi in Windows Vista Home Premium.

Comments (3)

Software development cycle with version control system

Excerpt taken from svn-book.pdf that ships with Subversion.

Most software has a typical lifecycle: code, test, release, repeat. There are two problems with this process.
First, developers need to keep writing new features while quality-assurance teams take time to test supposedly-stable versions of the software. New work cannot halt while the software is tested. Second, the team almost always needs to support older, released versions of software; if a bug is discovered in the latest code, it most likely exists in released versions as well, and customers will want to get that bugfix without having to wait for a major new release.
Here’s where version control can help. The typical procedure looks like this:

  • Developers commit all new work to the trunk. Day-to-day changes are committed to /trunk: new features, bugfixes, and so on.
  • The trunk is copied to a “release” branch. When the team thinks the software is ready for release (say, a 1.0 release), then /trunk might be copied to /branches/1.0.
  • Teams continue to work in parallel. One team begins rigorous testing of the release branch, while another team continues new work (say, for version 2.0) on /trunk. If bugs are discovered in either location, fixes are ported back and forth as necessary. At some point, however, even that process stops. The branch is “frozen” for final testing right before a release.
  • The branch is tagged and released. When testing is complete, /branches/1.0 is copied to /tags/1.0.0 as a reference snapshot. The tag is packaged and released to customers.
  • The branch is maintained over time. While work continues on /trunk for version 2.0, bugfixes continue to be ported from /trunk to /branches/1.0. When enough bugfixes have accumulated, management may decide to do a 1.0.1 release: /branches/1.0 is copied to /tags/1.0.1, and the tag is packaged and released.

Leave a Comment

Basic guide to Subversion

1. When you port fixes from trunk or branches, make sure your log message mentions that you’re porting a
specific change from one branch to another. For example:
$ svn commit -m “integer.c: ported r344 (spelling fixes) from trunk.”

2. Merge means ‘diff-and-apply’ to local copies. Merge range of revisions, not two different trees.
$ svn commit -m “Merged my-calc-branch changes r406:480 into the trunk.”

3. Specify a reverse difference to ‘svn merge’ command to undo changes and then commit.
$ svn merge -r 303:302 http://svn.example.com/repos/calc/trunk
U integer.c
$ svn commit -m “Undoing change committed in r303.”

4. Resurrect deleted Items using ‘svn copy’ command and then commit.
$ svn copy –revision 807 \
http://svn.example.com/repos/calc/trunk/real.c ./real.c
$ svn commit -m “Resurrected real.c from revision 807, /calc/trunk/real.c.”

Leave a Comment

How to read unicode text data using NIO from a SocketChannel

Please note data.compact(); at the bottom of the method readUTF8(). This will save you from loosing available bytes that were not decoded in previous iteration. I hope the following example code to read large text data using NIO will help beginners to NIO.

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CoderResult;
import java.nio.charset.CodingErrorAction;

public class NIOTextReader {
    public static String readUTF8(SocketChannel sc) 
                throws IOException {
        StringBuffer textRead = new StringBuffer();
        final Charset utf8 = Charset.forName("UTF-8");
        CharsetDecoder decoder = utf8.newDecoder();

        final ByteBuffer data = ByteBuffer.allocate(1024);
        final CharBuffer chBuffer = CharBuffer.allocate(1024);

        while (true) {
            // read the data into the char buffer
            int r = sc.read(data);

            // check for end of data
            if (r == -1) {

            // prepares the data for decoding/read

            CoderResult result = null;
            do {
                // Decode byte data into Character data
                result = decoder.decode(data, chBuffer, false);
                if (result.isUnderflow()) {
            } while (result.isOverflow());

            // moves the remaining bytes to the beginning that were
            // not decoded

        return textRead.toString();

Leave a Comment

Bengali Typing Tutor

“Bengali Typing Tutor” is an application developed for you if you would like to learn/practice typing in Bengali. This “bangla typing tutor” will help you learn typing in bengali fast. It supports multiple popular Bengali keyboard layouts of different bengali typing softwares available. You can choose the one of your choice. To do that, just right click anywhere on the application window and click ‘Select keyboard layout’. This is the initial release of my application and I hope to add more features in the near future. It is developed using “Java SE”. So you will need Java 1.6+ to run this application.

1. Supports “Unijoy”,“Somewherein Phonetic” and “Avro Phonetic” keyboard layout.
2. Allows you to choose different lessons.

Screenshot of Bengali Typing Tutor

You can easily download Java from http://www.java.com/getjava/ if it is not installed already in your pc. Once you have Java installed in your machine just click http://weaverspark.com/java/typingtutor/download.php to install my “bangla typing practice” application.

Enjoy bangla typing…

Note: I started the development of this application long days back when I started learning Java. I could not continue the development of this application after I joined my job. But few days back I decided to work on it again and here is the output.

Comments (21)

« Newer Posts · Older Posts »