I recently installed the Ice-cream sandwich flavour of the Ehndroix mod. After hours of scouring the web & bricking my phone multiple times in the process, ICS is up and running on my phone. I’m documenting the exact process here so that it will be useful for everyone.

This post applies only for Samsung Galaxy S Plus GT-I9001. These steps might not work on any other phone. Even, if you are on I9001 phone, proceed at your own risk. No one (including me & God) is responsible if anything happens to you or your phone ;)

Assuming you are running the stock Gingerbread Android OS, here are the steps:

  1. Get all the required software
  2. Enable development mode on your phone
  3. Backup all your existing data
  4. Root your phone
  5. Install ClockworkMod Recovery 5.5.0.4
  6. Reboot your phone in recovery mode
  7. Install Ehndroix
  8. Install S3 style pack
  9. Reboot your phone
Read the rest of this entry »

Buxfer – Automatic Data Backup

February 15th, 2011

A month ago, Buxfer.com went down & took down a month’s worth of data along with it. Thankfully I had a CSV export of my data before the website went down.

After that, I wrote a simple utility script that will automatically do a full CSV export of Buxfer accounts data and email it. At the start of the script, there are couple of PHP variables that you can use to customize it – your buxfer id and password, from email address, to email address, email content etc. To automate it completely, use crontab to schedule its execution and rest in peace :) .

I have hosted the code at GitHub. Do check it out and let me know your feedback. Or better yet, fork it and add your bells and whistles.

You can access the GitHub repository here.

Are you one of those who has this need to ping all your buddies with a message? If so, your search ends here! Here’s what you need to do:

  1. Get Firefox browser.
  2. Get greasemonkey addon.
  3. Grab my greasemonkey script here.
  4. Login to www.meebo.com.

That’s about it. Fill up the textbox and hit send. The message will be sent to all your IM buddies.

If you are savvy enough, you can make some customizations to the script.

  1. Right click on greasemonkey icon and click on “Manage User Scripts”.
  2. Select “meebo all at once” and click “Edit” at the bottom of the window.
  3. The script will be opened for editing in your favourite text editor.
  4. Follow the instructions and make changes to the block marked in the source code.
  5. Then reload www.meebo.com.

That’s pretty much it. I quickly hacked it up in couple of hours so there might be some loose ends. If so, please let me know and I will fix it at the earliest. If you wish to make improvements yourself, you can fork the script at the Github repository.

Summary

  1. Link to the script.
  2. Link to the repository.

If you are even more savvy, you might want to check the Meebo analysis below.

Read the rest of this entry »

Cameras must be WiFi enabled

April 30th, 2010

Few months ago, I purchased a Panasonic Lumix DMC FZ-28 digital camera. It’s a bridge camera and has plenty of features. I’m totally in love with the camera. However, cameras such as this, Canon Powershot SX 20 IS etc. should have a few more features along with wifi enabled so that we amateurs are able to do a lot more easily :)

Here’s a typical work flow for my trek photos:

Go on a trek –> Click nice pictures –> Transfer the photos to the computer –> Make minor modifications such as contrast, brightness, saturation, cropping etc. –> Remove duplicates –> Add signature, copyright notice –> Generate a low resolution version of the final photographs –> Upload them to Flickr/Picasa/Facebook to share them with the world.

With these powerful cameras, much of this can be done on the camera itself. For e.g. my camera already allows adding signatures to pictures through a text stamp feature. It also allows notes to be added to pictures. The pictures can be cropped and frame freezes can be obtained from HD videos shot with this camera. While cropping, a tiny popup containing contrast, saturation and brightness could be displayed. Pictures can be marked with a star so that they can be cycled through while viewing the clicks.

Panasonic Lumix DMC FZ-28

What I want now

Each camera should have a nice file system API, network API and GUI API. Using these APIs, third party applications would be able to fetch photos from the memory card and do the required modifications. More detailed descriptions would be added to the photos and they would be preserved as part of the picture’s EXIF data.

The memory card should be formatted in a special way so that it can hold third party applications in a separate shell. This shell would be accessible through an iTunes like desktop software from which third party applications for the camera can be installed or removed. Once an application is installed, it should be displayed in an Application settings screen on the camera, from where the application can be activated or deactivated.

Once the necessary modifications are done, using the network APIs and WiFi, the application should upload the “starred” photos to flickr, picasa, facebook or any other service the application supports. All these and other services support HTTP APIs. Instead of the camera themselves supporting various services, it could just provide nice APIs and let the developers do the magic. While uploading each picture, a very high resolution picture should be scaled down for the web dynamically.

Geo Tagging

Oh wait! I want to geo-tag the photos as well. So, while clicking each photo, they should be geo-tagged in the background so that the actual speed of clicking a photo isn’t affected. Manually geo-tagging photos are a huge pain in the wrong places.

So, there you go! Click pictures –> Geo tag them in background –> crop them & make other minor modifications –> add text stamp for copyright notice –> Generate low resolution versions dynamically (cache them if required) and upload them!

Since most of the work is done by software in digital cameras, I think the stuff mentioned above is very much feasible. At least geo-tagging should be brought in as a feature.

Note: I haven’t yet published some trekking posts since Feb. But this couldn’t wait. So they’ll be up soon.

By now, everyone must have been aware of the recent Facebook announcement of the universal Like button. As probably talked about all over the web, this one button is like giving too much of power to one company. By now the Like button should have appeared on thousands of websites already. Famous press blogs running wordpress should have had the Like button along their standard ‘share this’ toolbar. Facebook’s 400 million+ user base is a huge audience to showcase your content to & everyone wants a piece of the pie!

However, this like button reopens an old problem in a new way… User Privacy. Few years ago, when doubleclick.net installed tracking cookies for sending customized advertisements, it created a huge uproar. Similar stuff happened when Google History came about. But now, Facebook uses a clever way to track users that, you cannot even opt out if you don’t like the process. It makes of full use of the way how the web and ultimately, HTTP(S) works.

I’m not even talking about the case where you are logged in to Facebook and click on a ‘Like’ button on a website. That’s voluntary. You like a piece of content and you spread it to your friends and fans on Facebook. I’m talking about the case where you just visit a certain website containing the Like button and that data will be harvested by Facebook.

Like this on Facebook to understand how it works:

How it works

Let us take it step by step:

  1. Clear cookies on your browser. If you are using Firefox or Chrome, press Ctrl+Shift+Del.
  2. Visit www.facebook.com
  3. Login to Facebook.
  4. Visit other websites to be tracked. So simple isn’t it?

When you first visit Facebook.com, it sets a cookie called “datr”, whose expiry is two years from now. So, if you visit Facebook.com today and never clear your browser’s cookies, you will be tracked for the first two years with “datr”. When that period expires, it will be replaced with a new cookie :) and you will continue to be tracked. After you login to Facebook, it sets some more cookies on your browser along with a cookie called “xs” which is the session cookie for your Facebook session. If you remove this cookie, you will be redirected to Facebook’s login page. After login, “datr” and “xs” cookies will be refreshed.

Sunrise

When you embed the Like button on your website, it loads in an iframe in the Facebook.com domain. When a request is sent to any website by clicking on a link or by typing it on the browser’s address bar, the browser sends all the active (non-expired) cookies to the domain. So, when the Like button loads on a website, it makes a request to http://www.facebook.com/plugins/like.php. Along with this request, it will send the “datr” and “xs” cookies. It will also set the HTTP ‘Referer’ header to the originating website. For example, if you click on a Facebook.com link from my website, the Referer header will be set as ‘www.aswinanand.com’. This is used by other websites to determine where the user is coming from.

Now, when the ‘Like’ button loads on a website inside Facebook’s iframe, the Referer header will be set to your website’s page, “datr” cookie will be sent and if you have already logged in to Facebook, “xs” cookie will also be sent. So, just by loading Facebook’s Like button, Facebook will know what websites you had visited. Since the expiry for “datr” is set to two years, it will associate your Facebook logins to this cookie… which means, even if you logout of Facebook, it will know who the user is. Moreover, when you are logged in and move from one place to another, Facebook will know during what times of the day you are active and during what times you are inactive. When you are active, it will know from where your web browsing occurs and by being able to find location from IP address, they will know where exactly you are moving. Don’t worry, all this data will also be combined with your Facebook mobile usage and a final stat will be arrived at! That’s scary because it could reveal so much about a user & all privacy is gone with the wind.

Targeted Advertisements

This kind of tracking is something the user cannot opt out because sending cookies and setting HTTP Referer headers are part of the protocol. That means, you are tracked by default. Without your knowledge, your online behaviour and all the websites you visit (assuming they have added the Like button) after logging into Facebook are tracked by Facebook. This is useful for a lot of cases. Say you visit IMDB after logging in to Facebook. Each of the movie pages will have the like button. So Facebook will know which movies you are visiting. When you click on the ‘Like’ button for a certain movie, it gets to know your tastes and offer more movies along similar lines when you visit IMDB next. This same technique could also be used by spammers to trick you in to ‘liking’ some random link of their choice.

Like this, through the iframe based ‘Like’ button, Facebook funnels all required data to create a customized and scary experience.

Why not Google?

Ideally speaking, this was something that Google should have done a year or two ago. Most people I know are logged in to Google all their day and web browsing happens simultaneously. Just think of what would would happen if Google had done this. With their already powerful search tracking user behaviour and statistics, adsense would use this data to send specific advertisements to users. Google analytics is already deployed on tons and tons of websites all over the web. This one ‘GLike’ button could also be used to track statistics so easily. Now all of that happens on Facebook. Facebook is luring developers and users alike with its huge user base :) . Combining a utility like ‘Like’ button with Google’s powerful anti-spam, anti-phishing and other anti-* mechanisms, it would indeed become a formidable force on the web.

What if you don’t want to be tracked?

If you don’t want to be tracked without your explicit approval, I would suggest browsing Facebook in Incognito browsing mode in Chrome, multiple profiles in Firefox or InPrivate browsing mode in Internet Explorer. All these modes will clear cookies and other history data when you close the browser window. So you might not be tracked as efficiently as possible.

I hope Facebook addresses this privacy concern. Facebook, please don’t be evil :-) with our data. I wouldn’t be surprised if Facebook launches a general purpose search engine in the next couple of years!

Update: There seems to be some problem when the API is being accessed from my domain. Kindly try hosting the script in your own domains.

The free SMS web service, that you have come to love and use, has been updated. You can download for the following languages here:

  1. Java
  2. PHP

If you are accessing the service through the URL mentioned here, then be rest assured that it will continue to work. Download the latest versions and enjoy! :)

If you are facing any problems, please do let me know in comments and I will try to address them at the earliest.

Ever since I discovered Opera Mini, I had installed it on my first mobile (K300i) and now the latest Opera Mini 5 beta is present on my Nokia E51. Few months ago a new browser came up for S60 3rd Edition Mobiles named Skyfire. The main selling point of this browser was almost full support for javascript and Adobe Flash with near desktop experience; which enabled us to watch YouTube videos on the mobile!

I had been using both browsers side by side for a few months now & came to feel that Opera Mini is a lot better for daily use and Skyfire is better for those one off toughie websites that must work with javascript and other stuff enabled.

Here’s an example: Recently, I started accessing my twitter account through Dabr from Opera Mini. The mobile UI rocks and zoom in and zoom out is instant. It happens in the client side. Opera Mini has an intelligent mix of client side and server side operations, whereas, all operations from Skyfire require an active internet connection. At best, internet access from mobiles through GPRS still remains patchy & hence, Skyfire should have that intelligent mix of operations and where possible, operations should be done at the client rather than server.

Opera desktop’s goodness of Speed Dial has arrived on Opera Mini 5. It’s awesome and saves you tons of clickety-clicks, which are irritating on a mobile. The whole menu system has been completely revamped. UI is smooth and fast (which is a downside with Skyfire)!

The best feature of Opera Mini of all is tabbed browsing. That blows away any other mobile browser on the planet. Being fast and loading heavy pages on separate tabs is a pretty awesome thing. By long pressing on a link, you can open them in new tabs inside Opera Mini. Hence, the Dabr + Opera Mini seems to beat any other twitter competition. Saved pages are really saved pages. They can be accessed even when there’s no connectivity.

Recently we had to book tickets to watch a movie at Mayajaal and Skyfire displayed the website amazingly well. Opera Mini suffered there. Similarly, Opera Mini rocks in opening popup windows (when clicked explicitly), whereas Skyfire fails. All in all, if you are going on a long journey with conservative power, Opera Mini is the way to go. Or if you want near desktop experience on your mobile for all websites, then Skyfire is the way to go.

Skyfire Gripes:

  1. No tabbed browsing.
  2. No landscape view of web pages and videos.
  3. Phone heats up after about 15 minutes of usage. Doesn’t ever happen with Opera Mini.
  4. Compared to Opera Mini, it is very heavy on battery.
  5. No option to logout from your Skyfire account. You have to manually delete the “Preferences” file to logout.
  6. The assumption that an active internet connection is always available.
  7. Proxy server support and proxy authentication i.e. HTTP code 407. I have been asking this for so long that I’m beginning to feel that this feature won’t come at all.

Opera Mini Gripes:

  1. No flash support.
  2. Javascript should be supported better.
  3. Zoom in to images is dismal. I hope this issue will be corrected when Opera Mini 5 comes out beta.
  4. This browser also doesn’t have support for proxy servers and proxy authentication.

What are your opinions on these two browsers? What browser are you using on your mobile phone?

Webbynode Invites

July 21st, 2009

Update: The invites have been used.

As mentioned in this Webbynode blog post, I happen to be one of the current VIP users having five invites. That’s right… five awesome invites. If you are looking for a VPS with a 15% discount for the rest of your life, this could be your chance to get it.

Post a comment with your email id and I shall send you an invite. First come, first served :)

Enjoy!

Moving Hosts

June 18th, 2009

Hey guys, I will be switching hosts today and in the time that the DNS propogates, you may experience a slight downtime. Kindly bear the same. Thanks.

I’m a big fan of Dev Opera Articles. They have some excellent articles on HTML, javascript and all things web.

The biggest problem is that, their RSS feed doesn’t give the full content. Everytime new articles show up, I have to visit the website by clicking the link on the RSS feed. It soon got very frustrating.

So, here’s the result – http://feeds2.feedburner.com/DevOperaFullFeed. That link contains the RSS feed for Dev Opera Articles in full. That is, there are no one liners any more. This feed will give you the full content of the articles present on the Dev Opera’s original feed. Subscribe to this feed and live happily ever after :P