I have configured a custom location for photostream on my windows machine, since I don’t want to fill up my C drive. All this while, this seemed to work without any issues. However, recently after updating to iOS 7 and iCloud 3.0.3 my photostream stopped syncing on my windows machine. It was weird because while all my shared photo streams continued to sync, my “My Photostream” didn’t sync at all. I tried various things like re-installing iCloud Control Panel, resetting my phone etc., but nothing seem to work.

I noticed that in the new iCloud Control Panel 3.0.x, the default location for photostream is changed from “[User Documents]\Pictures\Photo Stream” to “[User Documents]\Pictures\iCloud Photos”. I suspected that developers in Cupertino must have overlooked some bugs in iCloud Control Pamel 3.0.x (as they did in iOS 7) which would have crept in because of the change in default location. I therefore tried the following experiment, and voila, my photostream started to sync again.

Basically, I created a junction link between “[User Documents]\Pictures\iCloud Photos” and the custom location where i wanted my photos to sync. Junction link is similar to a hard link in unix/linux machines. To create a junction link you should first sign out of any running instance of iCloud control panel and quit it. Then run the following commands at command prompt, and launch iCloud control panel again.

prompt>mkdir "[custom path]"
prompt>mklink /j "[User Documents]\Pictures\iCloud Photos" "[custom path]"

Problem solved! ūüôā


Atheros 9k series based wireless cards are among the most commonly found wireless networking cards on laptops. While Linux Kernel 2.6 and later provide support for these cards through ath9k module/driver, madwifi is also an option for some.

Despite the card’s popularity and integrated module availability, the driver is not bug-free. Users of all flavors of Linux (to name a few: RHEL 5,6; Centos 5,6; Ubuntu 11.x,12.x; FC 12,13) seem to have had issues with this driver. The two most commonly reported issues are slow wireless connectivity and wireless network disconnecting intermittently – either due to inactivity or after coming out of suspend/hibernate. The latter issue also sometimes manifests itself as the network card refusing to “come up”.

Here is an easy fix that fixes both issues. It has been tried and tested to fix the issues on at least the above mentioned Linux distros and should also work on other distros that use ath9k module.

Run the following commands as root (or prefix sudo)
Add the option nohwcrypt for ath9k: this removes the hardware based encryption and moves it to software

echo "options ath9k nohwcrypt=1" > /etc/modprobe.d/ath9k.conf

Turn off the automatic power management for your wireless card

iwconfig wlan0 power off

Now Reboot.

Alternatively, instead of rebooting you can perform the steps below
Unload the driver and reload it again

modprobe -rv ath9k
modprobe ath9k

Restart the network manager service

service NetworkManager restart

Now you are all set. Have fun!

So finally I was able to defend my M.S. thesis, “Visualizing Digital Collections at Archive-It”.

Archive-It, a subscription service from the Internet Archive, allows users to create, maintain, and view digital collections of web resources. The current interface of Archive-It is largely text-based, supporting drill-down navigation using lists of URIs. While this interface provides good searching capabilities, it is not very efficient for browsing. In the absence of keywords, a user has to spend large amount of time trying to locate a webpage of interest. In order to provide a better visual experience to the user, we have studied the underlying characteristics of Archive-It collections and implemented six different visualizations (treemap, time cloud, bubble chart, image plot, timeline and wordle), each highlighting one or more of the underlying characteristics of the collection. Archive-It supports grouping of webpages into categories, however, it does not enforce its usage. As a result there are many collections with missing or improper grouping. For such collections, we present a method of grouping webpages based on a set of pre-defined rules.

Here are the slides from my defense.

The following are direct links to the videos in the presentation :

Treemap: http://www.youtube.com/watch?v=BJDrxQEEFYM
Timecloud: http://www.youtube.com/watch?v=YYkI6aBO0to
Bubble Chart, Image Plot and Timeline: http://www.youtube.com/watch?v=j94clxqKQk8

Often RDS users trying to import data face this error when they try to create triggers:

ERROR 1419 (HY000) at line 49: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

The reason for this is that the default DB parameter group doesn’t have the privileges set to create and insert triggers into the database. To get rid of this error, do the following:

  1. Obtain RDS CLI tools from AWS website here, and follow the installation steps.
  2. On your terminal (or command line) create a new parameter group (since we can’t directly modify the default parameter group)
    rds-create-db-parameter-group allow-triggers --db-parameter-group-family mysql5.5 --description "parameter group to allow triggers"
  3. Now modify the parameter group created just now
    rds-modify-db-parameter-group allow-triggers --parameters "name=log_bin_trust_function_creators, value=true, method=immediate"
  4. Apply the new group to the database
    rds-modify-db-instance --db-instance-identifier instance-name --db-parameter-group-name allow-triggers --apply-immediately
  5. Finally, you will need to restart your RDS instance.

After running the above you should be able to import your schema/data and create triggers without problem. In case you receive the following error while using mysqldump

ERROR 1227 (42000) at line 2492: Access denied; you need (at least one of) the SUPER privilege(s) for this operation.

then, the problem is with the definer statement in your trigger. Change it from


to something like


JCDL 2012

I was in Washington, DC the week of June 10, 2012 attending JCDL 2012.

A detailed summary of the conference has been put together on the official WS-DL blog of Web Science and Digital Libraries Research Group from Department of Computer Science, ODU by my colleague Hany SalahEldeen.

Here are my slides from the presentation.

So today my friend posted CNET’s review of Best Cellphones¬†on his Facebook wall and what followed perennial¬†argument between him and one of our friends about iPhone versus Samsung Galaxy. The excerpts of their discussion are below:

  • A:¬†Royal family of phones headed by SGS III :D. I never said iPhone is not a good phone, but SGS II and III have simply outclassed it in every aspect. Agreed that iPhone has a lot more sales, but a lot of it is due to iSheep and the Apple brand’s wow-factor, and not coz its the best phone. Every year, more Nanos are sold as compared to Maybachs, that doesn’t mean that Nano is better. I’m waiting for WWDC 2012 before buying my next phone. It’s gonna be either iPhone 5 or SGS III, and the decision is gonna be purely based on head-to-head comparison.¬†¬†Also, take a look at the growth in numbers witnessed by Samsung, and the way Android has gobbled up iOS market share. I just hope iPhone 5 bumps up the screen size from that tiny 3.5 inches, else it won’t even figure in my consideration list.
  • My friend:¬†¬†But the thing is there are lot better cars than RR but the elegance of RR is unsurpassed. Similarly the cheap plastic Samsung can never compete with the elite iPhone build quality. Don’t know what WWDC says but common public even in India craves for iPhone ūüėõ
  • A: Yup, i agree…dont quite like the back of SGS III, but can live with it, in the larger scheme of things
  • Another Friend:¬†Samsung is giving u all the features at a low cost..But that doesn’t make it better/superior than the iPhone..! Users across the Globe look for the best features at the lowest price… thats why Samsung is zooming ahead..! Who knows the future..May be 10 yrs down the line Samsung will wipe out all the other brands…but at present iPhone redefines Class & is the best Brand in the Market..! “You realise the value of an iPhone only if you own one “…So “A”¬†(Considering the Royal family you belong to ) its high¬†time you own an iPhone now..:D Stop chasing the Galaxy series..!

Here are my two cents on this topic:

what we witnessed on this thread is something i deal with on a constant basis – at work & at home. My 2 cents (on both platform as well as phones):
1. Android has surpassed iOS in market share because the number of handsets that support Android are way greater than iOS. While iOS it completely tied to underlying hardware (as was Mac in its nacent years), Android is more like linux – freely available, easily customizable, runs on any hardware. Hence, the widespread adoption of a mobile OS like Android makes sense once you understand that firmware development is also a contributing factor to BOM for any handset. Hence the numbers really don’t mean anything to me.

2. When Suyash says “more nanos are sold than Maybachs”, does he refer to iPod Nano or Tata Nano? I apologize for being dumb here. In any case his argument is flawed because if nano = iPod then you are comparing apples with oranges, and if nano = Tata Nano, then read my statement 1 above.

3. Continuing on the discussion of the platform (coming to handsets in a minute), Android has some serious design limitations when it comes to performing certain UI tasks. The concept of 3-4 buttons on the bottom of touch panel is completely obscure, non-intuitive and confusing for any novice to average person since most users are used to working with either buttons or touch but not a combination of both at the same time to complete a task. Lack of mature SDK and APIs makes it harder for developers to develop applications (I develop for both platforms). Lack of a well curated application distribution environment is another issue I identify with Android resulting in mass distribution of below average and unsupported applications. Bear in mind, I am not advocating the tight-fisted ruling of Apple when it comes to distribution on App Store. The costs are often prohibitive and some terms just bizzare. However, the insistence on adhering to quality guidelines makes all the difference.

4. Coming to the handsets. I went through the link that Arjun posted. One thing that I really can’t understand is why do reviewers keep losing focus on what they really want to emphasize. Simply the presence of n-MP camera doesn’t make the handset really good, neither does the support of “Fast 4G-LTE”. One of the most annoying comparisons I have seen is on the T-Mobile website for instance (http://explore.t-mobile.com/verizon-att-sprint/). A clear case of “mis-comparisons” where different phones from different networks are being compared against each other in performance tests like download speeds and streaming. One must understand that we are again comparing “apples with oranges”. When you compare iPhone on ATT with some HTC on T-Mobile, the network conditions as well as the platform changes. A best comparison for handset performance can be achieved only if you compare two handsets (same or different platform) on the same network against each other by running same tests. To compare network performance, use same handset on two different networks and run same tests.

5. The combination of things that make up a good phone are IMHO:
a. Processing speed – High-end Android phones from Samsung and Motorola fare better here
b. RAM
c. Cache
d. Display – Apple’s patented Retina Display provides crispier and better images in any condition than even the lates OLED displays on Samsung phones
e. UI responsiveness – most Android phones continue to be sluggish
f. Usage and navigation ease for performing common tasks
g. Organization of content – Android does a poor job
h. Inutitive UI – Android does a poor job again
i. Peripherals – Any camera more than 5MP on a phone is a waste. We do NOT need those Megapixels. we need a larger sensor.

6. Accessibility features like TTS, STT, C2DM, Google checkout, etc. really dont mean anything while comparison – Apple is catching up with introduction of Siri but still has some way to go. But ask yourself, how often do you use Siri to schedule appointments and search, or how often do you browse the web on your Android phone using voice? The answer will be “almost never” (may be “regularly” or “often” by tech savvy GMs out there – but you are a small bunch :P).

7. Finally going back to where this all started to choose between iPhone(4S/5) or SGS(II/III), I would still prefer iPhone because
a. Competitive processing speed, ram, cache
b. Superior display
c. Nurtured AppStore
d. Better UI responsiveness and more intuitive UI
e. I can still keep my data mine if I choose not to use any Google services on the phone and turn off location
f. Finally the “wow-factor” of owning Apple

Your thoughts, comments are welcome.

So the other day I had to back up all database objects for an Oracle instance i manage and I was looking for some tool that would help me generate DDL for each object in a separate SQL file.

A quick Google search revealed I could backup DDL using TOAD (full version), DB Solo and RazorSQL. I use DBArtisan at work and my organization doesn’t want to move to TOAD yet. I have used DB Solo in the past and I have liked the clean and light interface and the quick ability to back up DDL but I just couldn’t use it this time because I had already expired my trial version and didn’t have enough time to get the folks sign off on purchase of a license (which is not very expensive). So I decided to try RazorSQL, but was disappointed because it dumps all objects in one single SQL file. Also, when I tried to back up stored procedures (over 5000 of them), the program refused to copy.

Out of luck and exhausted, I remembered the good old DBMS_METADATA commands. I quickly created a new directory entry in the database for the location where i wanted to dump my DDL, and executed a procedure that I wrote to perform the DDL backup.

Here are the steps I followed: (one can use SQL PLUS or any DB tool he wants)

–create a new directory in all_directories table. This is important to avoid ORA-29280 invalid_path execption.


–also grant permissions to everyone to read, write (maybe restricted based on your requirement).


–the stored procedure for DDL backup
–note that we are reading from USER_OBJECTS data dictionary, this way it exports only the current user’s objects.
–to export all objects, execute procedure as sys or sysdba and use the table ALL_OBJECTS instead.

             FROM USER_OBJECTS


Now that was simple, wasn’t it? ūüôā