Sunday, September 19, 2010

A fresh update of my life

     Since the last post, I have been quite busy with assignments and a final year project. Even though there was a 3-week school break after all these, I have sacrificed it to start my new project called Android Push Contacts.

     This project makes use of the newest feature on Android 2.2 called C2DM which allows Android device to receive push messages from third party applications. Initially I was only planning to push contacts to Android phones from a Chrome Extension, however I ended up having a better idea which is sending SMS from a website. Total period of time I have spent for this project was around 2 weeks thus I was left with only 1 week to enjoy my holidays plus study for the exams.

     In the end the exams weren't that difficult as I expected. I could have performed better if I've gotten more time to prepare for it. As soon as the exams were over, I had to plan for the showcase of RP Open Source Interest Group on Software Freedom Day 2010 which was 2 days ago. Nothing interesting came into my mind so I just decided to showcase my newly-created project which is of course open sourced.

     On the actual day, there were quite a number of visitors who were interested into my project and some have even suggested additional features to be added. The event itself wasn't really that successful as I have imagined it to be like, there was no crowd, there wasn't anything interesting, I couldn't feel the open source atmosphere in the event. Luckily, two of my geek friends (Andrew, Cheng Fu) came to accompany me, I would have died due to boredom without them.

     Today, I've just created my LinkedIn profile which I wanted to do long time ago. You can check it out here. From now on I'm gonna have a really long holiday break, hope I can learn more about node.js, couchDB and Twisted. Besides IT to do list, I have also decided to get myself buffed up during this holiday, guess I gotta go gym frequently and eat some healthy food

Sunday, June 13, 2010

Simple web service with Google App Engine

     It's been a while since I last posted an entry. Nothing much has changed in my life. The two-week holiday has just passed by in a blink of an eye. Has been busy with Android assignment, Cypher IGs camp and Pycon Singapore 2010. Now after Pycon, I'm pretty much convinced about the power of simplicity of Python. Knowing Google App Engine (GAE) quite a while ago, I decided to use GAE to help me out in my assignment (yes, yes, Google to the rescue) by writing a simple GAE web service which stores/retrieves feedbacks in form of JSON. The following tutorial is simple enough for beginners to follow.

Thursday, March 25, 2010

Must have apps on my Google Nexus One

        I just got my brand new Google Nexus One phone this week and I'm really enjoying it right now. Delivering it to Singapore took 4 working days with DHL (by delivering, I mean bringing it over just in front of your doors). I have already installed quite a lot of applications on it and here are some of my favorite ones :

  • Google Translate: as the name suggests, this app let you translate from and to any language via Google Translate service. It has the speech to text input mode (whereby you speak to your phone and it will translate it for you) and text to speech mode (in which the text translated will be spoken out requires a library which you need to install from the Market)
  • Shazam: recognize the music being played by recording within 20sec. This should be familiar to iPhone users
  • Barcode scanner: scans barcode and QR-code
  • Goggles: a fun application to recognize the image taken, doesn't work perfectly on every object but you should try it on brands and logos. Amazing !!!
  • Twidroid: my personal preference for Twitter client, some prefer Seesmic but I don't fancy the redish UI
  • Tweetdeck: includes: Facebook, Twitter, Buzz and Foursquare
  • Gesture search: allows you to search anything on your phone with alphabet gesture input
  • Advanced Task Killer: the name explains it all, fast way to free your memory. You can toggle it from your Notifications Bar which is very convenient
  • ThickButtons: replacement for Android Keyboard specially made for those with fat fingers problem
  • MusicZilla: perfect app to listen to music online and download free music straight to your phone
  • Ringdroid: makes the ringtone from your mp3s with nice UI
  • GDocs Notepad: a notepad which you can sync with your Google Docs account. Useful to those who are used to storing their data on the cloud
  • Voice recorder: record your voice and upload it online to your Gmail account instantly. Includes the widget which you can add to your desktop. Useful for recording lectures or interviews
  • Pingdroid: for Ping.fm users. Allows you to update all social media sites including Twitter, Facebook, Buzz, Meme Yahoo. Need to generate the mobile key before using
  • Flyscreen: it's an unlock screen replacement that attaches RSS feeds from websites you want, you can also check your emails
  • HelixLauncher: a very good Home Launcher replacement made by my friend Faruq Rasid. It allows up to 7 screens, has landscape view and you can add 4 applications to the dock
  • LauncherPro: awesome launcher that has HTC-like widgets
  • QuickDesk: an app for multitasking and task switching made by Faruq
  • Astro: the best file browser, it has SMB support to mount drives
  • ConnectBot: i use it to ssh to my TonidoPlug
  • Dropbox: duhhhh for Dropbox
  • Transdroid: I use it to control my Transmission daemon on TonidoPlug, it has a good support for most of torrent clients

Friday, March 12, 2010

Embedding Google Wave to your blog

As you know, Google has released the communication tool called Google Wave. However, it is still in the preview stage thus there might be lots of changes coming out. I have come across the article of this guy named Jason Ragasa who showed the piece of code to embed your waves inside your blog (be it Blogger or Wordpress). In this post, I'll use blogger as an example.

Steps to follow:

  1.  Add a new contact to your wave embeddy@appspot.com
  2.  Create a new wave with embeddy. In will automatically show you a piece of code that you need to embed. Find this line and get your WaveID wave.loadWave('googlewave.com!w+yOuRwAvEID');
  3.  Go to Blogger and edit the layout (Layout > Edit HTML) and paste the code below before tag



And now you can create blog post and put this line in:

Google Chrome extension for school

Since the release of Google Chrome, I have been waiting for its extra features which has known to be extensions (similar to Firefox addons). I have to admit that Google has made the Chrome extension development process very convenient to web developers since there is not much difference between developing web pages and Chrome extensions, all you need to know is HTML, CSS and Javascript and a bit of API. By making such a good decision, Google has indeed opened the gate for millions of developers to contribute and enhance the usability of Chrome browser.

Being interested in web development, I have decided to give it a shot to try coding a simple Chrome extension that might be used in my school. I have come up with the idea to create an extension that makes it easy for students to check the appearance of other students by inputing the name and student ID. The pictures are taken from one of school's website with the URL pattern matching.

The following is what I did:
  1. Create a manifest.json file
  2. Create HTML page that shows the UI of the extension (known as popup)
  3. External javascript file (which will be linked with the HTML
Yes, it's simple as that. Now let's take a look at the code:

manifest.json
{
"name": "Find your classmates",
"version": "1.0.1",
"description": "Created to tackle the issue of classmates knowing their teammates name but not knowing how they look like. Useful for evaluation",
"browser_action": {
"default_icon": "rplogo.jpeg",
"popup": "rpavatar.html"
},
"icons": { "48": "rplogo.jpeg",
"128": "rplogo.jpeg" },
"permissions": [
"tabs"
]
}



Saturday, March 6, 2010

Google Apps Script in managing your work






Currently, I'm running this Interest Group in my school about Open Source and to ease the task of it, I use Google Apps to create forms and broadcast them around school. Students who are interested in joining the group will fill in their personal information and contacts. This data then goes to the spreadsheet and with Google Apps Script, I have automated the task to publish information on the website created with Google sites. There are few tutorials on the Google website which you can check out. In this post I would like to share how I have managed to integrate all these services together.
Note: As until now, Google Script seems to be not available to normal gmail accounts. However, you can easily create your own domain account with the email of your school or company.

The following is my own script to update a ListPage on the Google Sites. Things you need to do before-hand:
  1. Create your own form with basic information (this will automatically create a spreadsheet for you). You can see how my spreadsheet looks like on the above picture.
  2. Create a Google Site and give it a name.
  3. Create a page and choose ListPage as a template.

Now we shall begin coding the script. In order to write scripts, go to Tools > Script > Script Editor. This will bring up a script editor which allows you to execute javascript code on the server. Yes, Javascript as a server-side language. The editor is quite user friendly as it has highlighting and code suggestions.

This is just a basic example of how you can use Google Apps Script. The whole API can be found on Google, it provides access to Google Service such as Calendar, Contacts, Gmail, Google Translate, Spreadsheet. Besides, you can use it with external applications as well (using UrlFetch, XML and SOAP services).