Why database should be taught before programming in universities

Learn Database before Coding

Often students from initial semester ask me how do we store our data in our programming project? When students join university to learn about computer science and technology they are usually taught programming first in courses like introduction to programming. As part of coursework students are required to work on a project. Majority of the projects, in fact almost all projects involve data handling and that data needs to be stored somewhere.

Problem students face

As a novice students don’t know how to store data. One option is to store data in plain text files if filing is taught to them but in that case their project becomes too complex for them. In my opinion, file formats is an advanced topic for students that have just started learning how to program. So, students get stuck where and how to store data. They create variables and arrays to store data in memory but that is not very useful until they have option to store their data somewhere permanently that they can retrieve later. Otherwise, every time they run their project they have to feed data from the beginning.

Teach Database before Programming

If universities modify their courses and add database in first semester and replace programming course with it then it would be easier for students to get started in computer science degree. Introduction to database is relatively easier course then programming and students will know what is database, how to store data in database, and how to retrieve it later using SQL. Then in next semester if they do a programming course then it will require only one lecture to teach them how to access database from your code and how to store and retrieve data. That will not only make their projects more valuable but will make more sense to them and they can take it to advance level in forthcoming courses.

Your Take?

What is your opinion? Please, let me know in the comments.

Unlocking HTC Sensation Z710e Bootloader for Android

Take the following steps to Unlock your Device’s Bootloader.

  1. Step 1

     After powering down, press Volume Down and while pressing Volume Down, press Power holding both buttons to start the device into Bootloader mode. If you have difficulty, power up normally, go to Settings->Battery and deselect Fast boot. Power down and try again.

  2. Step 2

    Use the Volume buttons to select up or down. Highlight Fastboot and press the Power button.

  3. Step 3

    Connect the device to the computer via a usb cable

  4. Step 4

    Download the following fastboot binary for your OS using the following links:

    Platform Download Size (bytes) Checksum
    Fastboot binary, Linux
    (Unzip the file before executing)
    fastboot 61887 ffd3b02cdf9aa7609462e3957663d238
    Fastboot binary, OS X
    (Unzip the file before executing)
    fastboot-mac 59071 0b3e2a8c5cfeb7c23b362483b93f7dd6
    Fastboot binary, Windows
    (Unzip the file before executing)
    fastboot-win 83753 a90c25141e306b3062dc8e47e14a1005
    1. Step 5

      Open a command Prompt: Windows: Start->”cmd” Mac: Applications->Utilities->Terminal.app Linux: Terminal

      Type in Command Prompt: fastboot oem get_identifier_token.

    2. Step 6

      You will see a long block of text. Copy and paste this text into the the token field below (in the Windows command prompt: Right Click > Mark > highlight the block of text > Right click to copy. Mac users can use cmd-option to mark and select text.).

      You will see one of the following two screens:

      Ref. 6a

      Ref. 6b

      When copying the token, start with this line:

      <<<< Identifier Token Start >>>> 

      And end with this line:

      <<<<< Identifier Token End >>>>> 

      (Note: Only copy the highlighted sections above. Do not copy the INFO or (bootloader) prefix)

    3. Step 7

      Paste this string of text into the token field and hit Submit in order to receive your unlock code binary file. You will receive this information in your email.


Next you need to go to http://www.htcdev.com/bootloader/unlock-instructions/page-2 and enter you identification token there and click sumbit. HTC Dev will take you further from there.

Were you able to unlock your bootloader? Share with me your experience in comments below.

Android? Too many pattern attempts? Can’t hard reset? Here what to do!

htconexI had pattern screen lock on my HTC One X Android phone. Yesterday my nephew tried to unlock it too many times and it got permanently locked.

Too many pattern attempts

After trying too many attempts phone got locked and asking for my Google username and password. But unfortunately I wasn’t connected to Wifi due to which whenever I enter my login details it says invalid username and/or password. Since it tries to connect to Google server to authenticate and it couldn’t.

Master Reset

OK, since my phone wasn’t asking me for pattern and it wasn’t connected to internet so it was also not able to authenticate my logins. So doing a master/hard reset was the only option left. To hard reset phone you have to power off your phone and then turn on in recovery/bootloader mode. To do this you have to follow these steps.

  1. Press and hold the VOLUME DOWN button, and then press and hold the POWER button.
  2. Wait for the screen with the three Android images to appear, and then release the POWER and VOLUME DOWN buttons.
  3. Press VOLUME DOWN to select FACTORY RESET, and then press the POWER button.

But for this to work the Fast boot option in Settings > Battery Manager must not be selected. Oops! I remember I selected that option so I was out of luck and this didn’t work and my phone keep starting in normal mode leaving me on same login screen.

Big Problem!

So, now I was stuck and there were several problems.

  1. I couldn’t enter my pattern since it wasn’t asking due to too many attempts
  2. It wasn’t connected to Wifi neither my phone data plan so no internet due to which it wasn’t authenticating from Google.
  3. Fast boot was selected so I was unable to restart my phone in recovery mode.

Now what? I tried to Google solution but all I was getting is to go in recovery mode to hard reset my phone to make it reusable and I was unable to do that as well. Then suddenly I found  the solution!

The Solution!

Solution to this was when your phone is switched on and you are on login screen do the following:

  • Press and hold both Volume down button as well as power button until the screen goes completely black.
  • Once it is black release the power button only. Do not release the volume down button.
  • You will be booted into the bootloader mode.

Woala! That’s it! Now you can select Factory reset from the menu and wow finally I made my phone reusable again. 🙂

What J talked about in 2013

The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 37,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 14 sold-out performances for that many people to see it.

Click here to see the complete report.


CyanogenMod Unveils New User Accounts for Remote Find and Wipe

The team behind CyanogenMod, one of the most popular Android ROMs available, took the wraps off of their new CyanogenMod Accounts feature last night, where users can update, sign up, and access new features like the ability to remotely track, find, and wipe their device if it’s lost or stolen.

The big new feature now is the ability to find and wipe your device, but the dev team says that they have plans to offer more remote management features in the future, and all of them will be associated with your CM account. They also point out that they’ve built the new account system in a way that prohibits them from touching your device. The whole system is open source, optional, and completely free.

The new accounts feature is available now, but to use it you’ll have to download and build it yourself from the source code, up at Github. The team wants the community to try it out, test it, and poke through it before they start rolling it into the nightly builds. Hit the link below to read more about it.

[Ref: http://lifehacker.com/cyanogenmod-unveils-new-user-accounts-for-remote-find-a-1170981365?utm_campaign=socialflow_lifehacker_twitter]


Set up Microsoft Office365 email on an Android

  1. From the Applications menu, select Email. This application may be named Mail on some versions of Android.
  2. Type your full email address, for example [email protected], and your password, and then select Next.
  3. Select Exchange account. This option may be named Exchange ActiveSync on some versions of Android.
  4. Enter the following account information and selectNext.
  • Domain\Username Type your full email address in this box. If Domain and Username are separate text boxes in your version of Android, leave theDomain box empty and type your full email address in the Username box.

NOTE    On some versions of Android, you must use the domain\username format. For example, if your email address is [email protected], type contoso.com\[email protected] Your username is your full email address.

  • Password Use the password that you use to access your account.
  • Exchange Server Use the address of your Exchange server. If you’re connecting to your Office 365 email, use outlook.office365.com for your server name.
  1. As soon as your phone verifies the server settings, the Account Options screen displays. The options available depend on the version of Android on your device. The options may include the following:
  • Email checking frequency The default value is Automatic (push). When you select this option, email messages will be sent to your phone as they arrive. We recommend only selecting this option if you have an unlimited data plan.
  • Amount to synchronize This is the amount of mail you want to keep on your mobile phone. You can choose from several length options, including One day, Three days, and One week.
  • Notify me when email arrives If you select this option, your mobile phone will notify you when you receive a new email message.
  • Sync contacts from this account If you select this option, your contacts will be synchronized between your phone and your account.
  1. Select Next and then type a name for this account and the name you want displayed when you send e-mail to others. Select Done to complete the email setup and start using your account.

NOTE    You may need to wait ten-to-fifteen minutes after you set up your account before you can send or receive e-mail.


How to partition SD Card

If you’ve rooted your phone using Revolutionary you can partition your SD Card from the Recovery menu. After booting into recovery (Revolutionary CWM), you have an optionPartition SD Card. It will ask you how big the EXT partition should be, and how big the Swap partition should be. After selecting the right values, it will automatically partition your SD Card.

If you didn’t used Revolutionary to root your phone, you can still follow the tutorial from here, and after inserting the key, it says that your phone is S-OFF, but it still asks you if you want to install Clockwork Mod. Press y and Enter and wait until the the CMD disappears. Reboot into recovery once again and you should see the Partition SD Card option that I was talking about in the first paragraph.

Note that creating partitions this way will result having an EXT3 partition. If you want an EXT4partition, connect to the phone with adb shell and follow only the 6th step of the following tutorial.

How manually partition SD Card

Don’t be afraid to do something manually. It may be a little bit harder than using a specialized software, but you can learn new things and you know you did it and it worked. For example, partitioning from ROM Manager proved to be a mistake, because I couldn’t select an EXT Partition bigger than 512Mb and it practically messed up my partitions… and using gParted to partition your SD Card is a little bit difficult since you have to install the image on a CD or stick, reboot your PC in gParted and try to get things working from there. From my experience, every time I’ve tried this using a stick to load the image, I couldn’t see the SD Card.

So.. doing something manually is better Smile

Step 1 – Connect to Phone

Restart your phone to recovery mode. Connect your phone to the PC via USB Cable. Use adb shell to connect to the phone

Step 2 – Display the partitions

Open parted (an application from the Android OS) to partition your SD Card
After you connect with adb shell write parted /dev/block/mmcblk0 and then <Enter>. Wait until you see (parted) in the left if your cursor and write print and <Enter>. You should get something like this:


As you can see, I’ve got a 3942MB SD Card. It has 3 partitions

  • Number 1 – 2886MB FAT32
  • Number 2 – 1024MB EXT3
  • Number 3 – 31.6MB linux-swap

I’m going to remove all these partitions in order to repartition the card. Note that you’ll lose all your data from the card.

Step 3 – Remove the existing partitions

You’ll have to remove the existing partitions first. So.. look at how many partitions you have, and then write remove <space> partition number <Enter>. 
For example:
rm 1
rm 2
rm 3


You can run the print command again to make sure everything was deleted. Now I have an empty unpartitioned SD Card

Step 4 – Create the partitions

Ok, let’s start computing the partitions size. For most of the custom ROM, you need an 1GB EXT partition, and a FAT32 partition.. You’ll also need a swap of 32 or 64MB. So, let’s say that you want to create a 1024MB EXT and a 32MB swap partition. Subtract these values from the entire partition size, and you’ll get the needed size of your FAT32 partition. In my case, I have a3942MB card, so 3942-1024-32 = 2886MB for FAT32

In conclusion, we’ll have to create:

  • 2886MB FAT32
  • 1024MB EXT2 (because parted only allows us to create EXT2 partitions, but we’ll convert it to EXT3 or EXT4 at the end of the tutorial)
  • 32MB swap

Now run the following commands in the (parted) shell:

  • mkpartfs primary fat32 0 2886 (first value is 0, second value is the size of FAT32 partition)
  • mkpartfs primary ext2 2886 3910 (first value is the size of FAT32 partition, second value is EXT4 partition> in our case 2886+1024=3910)
  • mkpartfs primary linux-swap 3910 3942 (first value is EXT4 partition>, in our case 2886+1024=3910, second value is the size of the entire SD Card, in our case 3942)

Note that for every command, the first value is the second value from the previous command. The first value from the first command should be 0 and the second value from the last command should be the size of the entire SD Card.

After you finish with creating the partitions, run print again and you’ll see the newly created partitions:


If everything is ok, run quit to exit the parted, and return to the adb shell


Step 5 – convert your EXT2 partition to EXT3 (skip it if you don’t want to do this)

In the adb shell, run the following command to convert your EXT2 partition to EXT3

Note that the last number from the command, 2, refers to the second partition. If your EXT2 partition has another number assigned (you can view the number using the print command), replace the “2” with your number, but if you’ve followed the tutorial and you didn’t create more or less partitions, it should be 2 )

tune2fs -j /dev/block/mmcblk0p2


Step 6 – convert your EXT3 partition to EXT4 (skip it if you don’t want to do this, but you must follow Step 5 if you have an EX2 partition to convert it to EXT3)

In the adb shell, run the following command to convert your EXT2/3 partition to EXT4

Note that the last number from the command, 2, refers to the second partition. If your EXT partition has another number assigned (you can view the number using the print command), replace the “2” with your number, but if you’ve followed the tutorial and you didn’t create more or less partitions, it should be 2 )

tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p2


If you want to check your filesystem too, you should run e2fsck -fpDC0 /dev/block/mmcblk0p2too

Step 7 – Finish

Finished. Check your work with print.

  • command:  parted /dev/block/mmcblk0 (open parted again)
  • command:  print (check all your system partitions and their sizes)
  • command:  quit (exit parted)
  • command:  reboot (reboot your system to the operating system)

Step 8 – Align your SD Card (optional)

In order to increase the access time, write speed and read speed of your SD Card, you may want to follow this tutorial

[Ref: http://android.bytearrays.com/android/how-to-partition-sd-card/]

How to install new ROM on Android phone

Following are the instructions to install new ROM on your Android phone using ClockworkMod recovery touch method.

-Download Appropriate Rom
-Place on root of your sdcard
-Reboot Recovery
-Select “wipe data/factory reset”
-Select “mounts and storage” category
-Select “format /boot”
-Select “format /system”
-Return to main page
-Select “advanced” Category
-Select “wipe dalvik cache”
-Select “wipe battery stats”
-Return to main page
-Select “install zip from sdcard”
-Select “choose zip from sdcard”
-Select “CronMod-3.x.x-x-rc_signed.zip”
-Answer when promted

[Ref: http://forum.xda-developers.com/showthread.php?t=1946517]

2012 in review

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 24,000 views in 2012. If each view were a film, this blog would power 6 Film Festivals

Click here to see the complete report.


Root HTC Desire using REVOLUTIONARY method

Easiest Root Method

– The easiest root method for the HTC Desire

[STEP1]- Check Hboot version. Poweroff, and hold Volume Down & Power (it’s the number after “HBOOT”. Examples are 0.75xxxxx, 0.83xxxxx, 0.93xxxxx, 1.02xxxxx)


[REVOLUTIONARY]- If your HBOOT version is 0.93 or above (NOTE: Version 1.03 is NOT supported) then continue, if it is below then use the Alpharev method.

[REVOLUTIONARY][STEP1]- Go to revolutionary.io and go to the “Downloads” section, Pick your operating system, choose device as HTC Desire, and choose your HBOOT version (you should already know this from STEP1). Then enter your serial number, it can be found in “about phone” or behind the battery.

[REVOLUTIONARY][STEP2]- Read the documentation page and download these fastboot drivers.

[REVOLUTIONARY][STEP3]- Make sure HTC Sync is disabled, if you have it installed on your PC. Plug your phone in via USB and make sure USB debugging is turned ON (settings> applications)

[REVOLUTIONARY][STEP4]- Extract all of the tools from the revolutionary.zip file and run revolutionary.exe. A CMD window should pop up and show you the progress (See [3] for how it should look like).

[REVOLUTIONARY][STEP5]- When the process is almost finished, it will prompt you to flash a custom recovery, type YES or Y. Follow tutorial number [10] if you would like to flash a different recovery – This is optional and not required if you decide to flash recovery during the revolutionary process.

[REVOLUTIONARY][STEP6]- Download superuser.zip, put it anywhere on your sd-card (preferably in a path you can remember). Boot into recovery by holding Volume Down & Power (You will see lines of green text flash, this is normal), then using the volume keys to navigate to RECOVERY, and use POWER to select. The phone will now boot into recovery.

[REVOLUTIONARY][STEP7]- Once you are in recovery, use the trackball (if it’s broken then use volume keys) to navigate to “install zip from sd-card > choose zip from sd-card > #directory where you put superuser.zip# > superuser.zip > yes”

[REVOLUTIONARY][STEP8]- After the process is finished, reboot, and your phone will now be rooted.

[Ref: http://forum.xda-developers.com/showthread.php?t=1275632]