Lately, I've been kept recluse by the very thought of a machine vision application that will let me rapidly develop image processing techniques via a GUI interface. Obviously, now that I've been enlightened by the power of OpenCV, I'd want the GTK based GUI application to stack filters one on top of another so that an image processing pipeline can be quickly and easily established. This also solves the whole issue of writing code for individual pipelines especially when dealing with several images/feeds at once.
Roborealm does exactly what I've described except in a different image processing language, and is currently well documented/established. However, I did want the ability to write my own filters in OpenCV specifically so that I can further understand machine vision like I've always wanted to.
Virtual workspace for optimized performance
Here's a wacky idea that's sort of parallel to the Bumptop project. What if we could interact with our computer the very same way we interact with our environment?
Visualize a virtual workspace if you may, a study room with a desk in front of you. You have your typical items/devices on your desk, an LCD monitor (possibly more than one), a bunch of documents that require your attention for that current day, a trash can to throw out those redundant memos and mails, a shelf on the side to organize your daily reads, a todo cabinet/folder/stack and so on. Now, what if your computer can organize all these items for you so that all you need to worry about is finishing the task at hand.
Some cool features may be:
- You can set the order in which you need certain documents/tasks to be done by physically moving those documents from your "computer directory" to a virtual area such as the todo stack that sits right next to your virtual desk.
- Keep track of what you've accomplished as you see the todo stack growing/diminishing in physical size.
- Have a music player on the other end of the room, all the music can be categorically organized. Visual interaction can be effortless and elegant.
- Design your own workspace to your comfort (possibly using Sketchup, simple and fun to use)
- Share these workspaces between people (shows you how well others organize material, and accomplish tasks)
I'm sure there are plenty more possibilities with such an interface, however making it visually appealing can be a challenge.
Visualize a virtual workspace if you may, a study room with a desk in front of you. You have your typical items/devices on your desk, an LCD monitor (possibly more than one), a bunch of documents that require your attention for that current day, a trash can to throw out those redundant memos and mails, a shelf on the side to organize your daily reads, a todo cabinet/folder/stack and so on. Now, what if your computer can organize all these items for you so that all you need to worry about is finishing the task at hand.
Some cool features may be:
- You can set the order in which you need certain documents/tasks to be done by physically moving those documents from your "computer directory" to a virtual area such as the todo stack that sits right next to your virtual desk.
- Keep track of what you've accomplished as you see the todo stack growing/diminishing in physical size.
- Have a music player on the other end of the room, all the music can be categorically organized. Visual interaction can be effortless and elegant.
- Design your own workspace to your comfort (possibly using Sketchup, simple and fun to use)
- Share these workspaces between people (shows you how well others organize material, and accomplish tasks)
I'm sure there are plenty more possibilities with such an interface, however making it visually appealing can be a challenge.
Useful desktop notifications on Ubuntu
I've been a loyal ubuntu fan for over 2 years now. With every linux distribution comes the power of customization which I recently discovered was my main argument for loathing windows and embracing linux in the form of Ubuntu. Anyways, I've recently been tinkering with the desktop notifications provided via libnotify. The feature of an unintrusive notification system can be taken to great lengths by incorporating some intriguing ideas.
Some interesting tweaks/implementations I currently enjoy with this feature are:
- Listening in on tweets
- IM notifications
Some features that may be fun to implement:
- Messaging between local computers. Technically the message self-destructs in 5 seconds.
- Gmail notification/message previewing
- RSS feed reader (currently I use it in the form of tweets of blogs i.e. engadget, lifehacker, nytimes)
Some interesting tweaks/implementations I currently enjoy with this feature are:
- Listening in on tweets
- IM notifications
Some features that may be fun to implement:
- Messaging between local computers. Technically the message self-destructs in 5 seconds.
- Gmail notification/message previewing
- RSS feed reader (currently I use it in the form of tweets of blogs i.e. engadget, lifehacker, nytimes)
Mini-blogging initiating... this very moment
With twittering doing most of the "long-story-short" talking, I thought I'd just make my blog posts a bit more easy to keep up with. Even listening in on tweets from a bunch of people can be difficult. I leave it to my GNOME-Do to notify me of all the tweets via libnotify. It's simple, uninstrusive and best of all, I can visit the links only if the title of the message is interesting.
Let's face it, no one really has any time these days to read random posts and expect it to be a worthwhile read. Keeping that in mind, all my subsequent posts will hopefully be concise.
P.S. Take a look at who I'm following and those that are following me on my twitter page.

Let's face it, no one really has any time these days to read random posts and expect it to be a worthwhile read. Keeping that in mind, all my subsequent posts will hopefully be concise.
P.S. Take a look at who I'm following and those that are following me on my twitter page.

Poor man's GPS (redux) on PyS60
Lately I've been enthusiastic about the idea of scripting on my Nokia-N70 using PyS60. Writing programs on these phones has never been easier once Nokia released python bindings for their Symbian C++APIs. Anyways, I've been thinking of techniques to salvage the most of technology in to the palms of my hand, much like every other mobile software company, and I came up with this.
Among the myriads of technologies out there, I wanted to mimic 'MyLocation' - a recent update by Google Maps for smartphones that approximates your current location based on the cell tower you are currently connected to.
Here's how it works:
1. Your phone is connected to a particular cell tower and has certain cell tower parameters that it can access (here's where the PyS60 API would come in - look for location.gsm_location() in the code)
2. Once these parameters are collected (mcc - Mobile Country Code, mnc - Mobile Network Code, lac - Location Area Code, cellid - Cell Tower Id - read GSM Localization), Google's 'secret' API retrieves the longitude and latitude of that particular cell tower based on the tower parameters.
Note: The longitude/latitude retrieval is accomplished by packing the data in a specific manner (review code for this).
While this is amazingly helpful in a strong network neighborhood such as Manhattan, it usually lacks the accuracy (errors of upto half a mile) in sparsely networked areas. Google claims that they somehow triangulate the positions of the cell towers and provide you with the best estimate of your current location. However, the abilty to retrieve cellid's from different cell towers is purely handset-specific and most handsets only report the cellid of the cell tower that provides the best signal. This seems more of a software ended issue where the phone decides to automatically choose the cell tower that provides the most signal power thereby keeping the phone 'reception' high.
Now here comes the 'hack'; what if we could ping all the cell towers within the neighborhood for a very small period of time until each of their GPS coordinates are retreived. Triangulating these coordinates can further result in a more accurate position estimation, specifically useful in navigating streets etc. This method does however require the phone to drop the connection with its current 'high reception' cell tower in order to ping the rest of the cell towers.
Another 'tweak': It'd be interesting to run this while you are cruising down an interstate especially since there would be only certain towers that provide strong signal strength to those areas. This y we could better approximate our current position and also be certain that we are on the interstate as opposed to 'somewhere in this vicinity'.
Here's the code I used (originally written by Neil Young - slightly modified by me) to retrieve the GPS cooridinates via google maps on my Nokia N-70.
Download
PyS60 project website can be found here. [contains manuals, installer files etc.]
Among the myriads of technologies out there, I wanted to mimic 'MyLocation' - a recent update by Google Maps for smartphones that approximates your current location based on the cell tower you are currently connected to.
MyLocation on Google Maps
Here's how it works:
1. Your phone is connected to a particular cell tower and has certain cell tower parameters that it can access (here's where the PyS60 API would come in - look for location.gsm_location() in the code)
2. Once these parameters are collected (mcc - Mobile Country Code, mnc - Mobile Network Code, lac - Location Area Code, cellid - Cell Tower Id - read GSM Localization), Google's 'secret' API retrieves the longitude and latitude of that particular cell tower based on the tower parameters.
Note: The longitude/latitude retrieval is accomplished by packing the data in a specific manner (review code for this).
While this is amazingly helpful in a strong network neighborhood such as Manhattan, it usually lacks the accuracy (errors of upto half a mile) in sparsely networked areas. Google claims that they somehow triangulate the positions of the cell towers and provide you with the best estimate of your current location. However, the abilty to retrieve cellid's from different cell towers is purely handset-specific and most handsets only report the cellid of the cell tower that provides the best signal. This seems more of a software ended issue where the phone decides to automatically choose the cell tower that provides the most signal power thereby keeping the phone 'reception' high.
Now here comes the 'hack'; what if we could ping all the cell towers within the neighborhood for a very small period of time until each of their GPS coordinates are retreived. Triangulating these coordinates can further result in a more accurate position estimation, specifically useful in navigating streets etc. This method does however require the phone to drop the connection with its current 'high reception' cell tower in order to ping the rest of the cell towers.
Another 'tweak': It'd be interesting to run this while you are cruising down an interstate especially since there would be only certain towers that provide strong signal strength to those areas. This y we could better approximate our current position and also be certain that we are on the interstate as opposed to 'somewhere in this vicinity'.
Here's the code I used (originally written by Neil Young - slightly modified by me) to retrieve the GPS cooridinates via google maps on my Nokia N-70.
Download
PyS60 project website can be found here. [contains manuals, installer files etc.]
Stellated Rhombic Dodecahedrons
This brings together the best of both my worlds - math and geekiness. Enjoy!
If you liked the above, this next video shall also amuse you. It's called a Gömböc. It's a mathematical class of objects with one stable and one unstable point of equilibrium. This means that regardless of how you place it on the ground, it continues to self-right until it reaches a particular orientation.
Happy new year everyone!
If you liked the above, this next video shall also amuse you. It's called a Gömböc. It's a mathematical class of objects with one stable and one unstable point of equilibrium. This means that regardless of how you place it on the ground, it continues to self-right until it reaches a particular orientation.
Happy new year everyone!
Billboard Top 25 of 2008 in '4 minutes'
DJ Earworm brings an interesting mashup of all the popular songs of 2008 condensed in a span of 4 minutes. The best part is that it's legal to download it.
Download: "United State of Pop 2008"
The mash-up currently mixes the following songs in a relatively pleasing fashion:
If you found that interesting, then go ahead and check out the 2007 mash-up.
Download: "United State of Pop 2007"
There's plenty of mash-ups on this website that is worth listening to.
Download: "United State of Pop 2008"
The mash-up currently mixes the following songs in a relatively pleasing fashion:
- Flo Rida Featuring T-Pain - Low
- Leona Lewis - Bleeding Love
- Alicia Keys - No One
- Lil Wayne Featuring Static Major - Lollipop
- Timbaland Featuring OneRepublic - Apologize
- Jordin Sparks Duet With Chris Brown - No Air
- Sara Bareilles - Love Song
- Usher Featuring Young Jeezy - Love in This Club
- Chris Brown - With You
- Chris Brown - Forever
- Ray J & Yung Berg - Sexy Can I
- Rihanna - Take a Bow
- Coldplay - Viva La Vida
- Katy Perry - I Kissed a Girl
- T.I. - Whatever You Like
- Rihanna - Disturbia
- Rihanna - Don’t Stop the Music
- Natasha Bedingfield - Pocketful of Sunshine
- Chris Brown Featuring T-Pain - Kiss Kiss
- Ne-Yo - Closer
- Colbie Caillat - Bubbly
- Mariah Carey - Touch My Body
- Madonna Featuring Justin Timberlake - 4 Minutes
- Pink - So What
- Finger Eleven - Paralyzer
If you found that interesting, then go ahead and check out the 2007 mash-up.
Download: "United State of Pop 2007"
There's plenty of mash-ups on this website that is worth listening to.
Subscribe to:
Posts (Atom)





