New Camera: Nikon D7000

It’s offi­cial: I’m really into pho­tog­ra­phy as a hobby right now :), proven with my recent pur­chase… I just upgraded my old cam­era, to a Nikon D7000, and WOW, what an upgrade! Now I finally have auto expo­sure brack­et­ing (for much eas­ier HDR images)! Even though  this cam­era makes HDR really eas­ily, I’m sort-of glad my first DSLR(D3100) did not have AEB, as this taught me to really plan out my HDR images; not every­thing should be overly processed. Still, I’m super excited about an easier Read more […]

Taken While Driving

I find it really fun to take pic­tures while dri­ving around in my car — it keeps me enter­tained and the dri­ving more fun :) . I sim­ply hold up my cam­era, point the cam­era out my sun­roof or win­dow, and hope for the best!  I’ve gath­ered up a gallery below: See the gallery [HERE]; it’s made over the past year or two.  Be sure to check back on this album often, as more will definitely come!   Read more […]

Using Gradient Layer Masks in GIMP

Some sim­ple notes on how to seam­lessly blend images in GIMP using gra­di­ent based layer masks. INPUT IMAGES 4 images with only dif­fer­ent shut­ter speeds: PROCESS Open all images as sep­a­rate lay­ers in a new GIMP can­vas: Right click a layer > “Add layer mask” > choose default “White full opac­ity” > Add: Now select the Blend Tool: Click the arrows to “Reverse” the gra­di­ent; choose “Bi-linear” shape mode: In this step I’ll focus on the bot­tom layer Read more […]

Last Post of 2011

Noth­ing impor­tant here, just some last minute ram­blings while reflect­ing back on 2011… Jan­u­ary — Spoke at the ATT Developer’s Con­fer­ence about a few of my Android projects Feb­ru­ary — Bought my first DSLR: a Nikon D3100 March — Dis­cov­ered HDR pho­tog­ra­phy April — Released first ver­sion of View­erCV into the wild (Android Mar­ket) May — Another year of school done; another apart­ment move June — Attended CVPR 2011 July — CUDA pro­gram­ming fun at Accel­erEyes (May-August) August — Pur­chased my Read more […]

Using Topaz Adjust with digiKam in Linux

TL;DR; I just found my new pho­tog­ra­phy work­flow: digiKam for photo man­age­ment, orga­ni­za­tion, and sim­ple batch edit­ing, Topaz Adjust 5 for image enhance­ment, GIMP for ultra-fine tun­ing … and the best part is that all this is in Linux (Ubuntu 11.04 to be exact) — mak­ing this a great birth­day present to myself today! +++ Back­ground I recently pur­chased the amaz­ing Topaz Adjust 5 and fell in love with it! What I do not love though, is that it requires a com­puter run­ning OSX or Read more […]

Mini-Review of Topaz Adjust 5

I recently picked up a copy of Topaz Adjust 5 (released Novem­ber 15th 2011), and fell in love with it! Here is a sim­ple mini-review and some first impres­sions of Adjust 5. Topaz Adjust is a photo-editing plug-in devel­oped by Topaz Labs that inte­grates into edi­tors (such as Pho­to­shop) by adding auto expo­sure, con­trast, and color-correcting tools, along with many tonemap­ping pre­sets for easy one-click image enhance­ment. Topaz Adjust’s biggest strength is def­i­nitely its pow­er­ful pre­set selection Read more […]

GPU Convolutions: OpenCV GPU and LibJacket — Part 2

This is a response to my ear­lier post com­par­ing OpenCV’s gpu::convolve() and LibJacket’s jkt::conv2() con­vo­lu­tion func­tions, at var­i­ous image and ker­nel sizes. That post gen­er­ated a lot of traf­fic, most notably from the OpenCV devel­oper com­mu­nity. Tak­ing note of this, it seems that the folks at Wil­low Garage have re-vamped their GPU con­vo­lu­tions and posted their own set of bench­marks using their updated rou­tines. While the bench­marks I ran high­lighted some per­for­mance issues in OpenCV — which Read more […]

OpenCV vs. LibJacket: GPU Sobel Filtering

Update: Lib­Jacket has been renamed to  Array­Fire. In response to a com­ment on a pre­vi­ous post about inte­grat­ing Lib­Jacket into an OpenCV project, below is just a sim­ple FYI per­for­mance com­par­i­son of OpenCV’s GPU Sobel fil­ter ver­sus LibJacket’s conv2 con­vo­lu­tion fil­ter (with a sobel ker­nel)… This is an evo­lu­tion­ary post, so be sure to scroll all the way down to see more com­par­isons… Update (10/24/2011): Round 2     Test sys­tem: [via /proc/cpuinfo]: Intel® Read more […]

Fix Android Market Update Issues [build.prop]

I have been using a cus­tom build.prop file for a while now on my Droid X. There are sev­eral ben­e­fits [exam­ple] for doing so; the main one for me is a higher vir­tual screen resolution, also known as “LCD den­sity”. This can be done via var­i­ous meth­ods, includ­ing pro­grams such as LCD Den­sity Changer, or man­u­ally with adb by edit­ing the field in ‘/system/build.prop’. My cur­rent favorite set­ting for the ro.sf.lcd_density para­mater is 192 (vs 240 stock). The fol­low­ing shows the improve­ment in screen Read more […]

Image processing with LibJacket + OpenCV

The OpenCV library is the de-facto stan­dard for doing com­puter vision and image pro­cess­ing research projects. OpenCV includes sev­eral hun­dreds of com­puter vision algo­rithms, aimed for use in real-time vision appli­ca­tions. Lib­Jacket is a matrix library built on CUDA. Lib­Jacket offers hun­dreds of gen­eral matrix and image pro­cess­ing func­tions, all run­ning on the GPU. The syn­tax is very MATLAB-like, with the goal of offer­ing easy port­ing of Mat­lab code to C++/LibJacket. Lib­Jacket with OpenCV For Read more […]

Remapping Macbook Pro Keys for Emacs Use

Back­ground: I recently took the $$$ plunge and got a fancy new 15″ Mac­book Pro to replace my 5-year old ASUS lap­top. Though I’m not too fond of Apple’s busi­ness model, I just couldn’t seem to find (hard­ware wise) a more qual­ity built and asceti­cally pleas­ing lap­top than a Mac­book Pro. After 6 years straight of using Linux as my main OS (I despise Win­dows), I’m now learn­ing my way around OS X for the first time. Having never used a Mac before, every­thing about OS X’s GUI is new to me. Once Read more […]

Some inspirational quotes on life

I wish I’d had the courage to live a life true to myself, not the life oth­ers expected of me…, was the most com­mon regret of all. — from regrets of the dying. Change is inevitable. It’s not a ques­tion of if you’re chang­ing. It’s a ques­tion of in which direc­tion are you chang­ing. — source Accept that life brings you pos­si­bil­i­ties. You don’t always know where your life will go. If you go with the flow, it will take you where you need to be. — source The cir­cum­stances of Read more […]

How to use nppiHistogramRange()

This past week I spent way too long try­ing to under­stand the cor­rect way to use Nvidia’s NPP his­togram func­tion for full float­ing point images. While the SDK includes an exam­ple of how to use nppi­His­togramEven, there are no exam­ples (that I could find) on how to use the nppi­His­togram­Range func­tions. The NPP library doc­u­men­ta­tion was not very help­ful either. This is impor­tant to know because the hist ‘even’ func­tions do not sup­port 32 bit float­ing point images, but the ‘range’ func­tions do. After Read more […]

En Nuestro Desafio tribute video: Powerlines

Inspired by [my favorite band] Tristeza’s orig­i­nal video for their song En Nue­stro Desafio, I’ve cre­ated a sim­i­lar video for this song, as a trib­ute to how awe­some this band and their song is. Tristeza’s orig­i­nal video already fits the song quite well, but one day while dri­ving (and lis­ten­ing to this song of course), I hap­pened to look out my sun­roof at the power-lines going by, and was inspired. I thought that a unique vari­ant of a video for their song would be one of look­ing at things Read more […]

My Simple (and Free) Digital Darkroom Workflow

Thanks to my new cam­era and recent inter­est in pho­tog­ra­phy, I’ve been hav­ing fun tak­ing (and edit­ing) lots of pic­tures lately. I’m still new to pho­tog­ra­phy, but I’ve noticed a pat­tern develop when I was snap­ping and post-processing my pho­tos. A sim­ple dig­i­tal pho­tog­ra­phy work­flow rou­tine formed for me — a cycle of: tak­ing pho­tos, import­ing pic­tures into the com­puter, orga­niz­ing and select­ing the “keep­ers”, edit­ing images, and pub­lish­ing the pho­tos. The rest of this post will describe my general, Read more […]

The History and Evolution of GPU Hardware

Here is a paper sur­vey I wrote last semes­ter in my CS6290 class about how the Graph­ics Pro­cess­ing Units (GPUs) hard­ware archi­tec­ture has evolved over time. I found the research quite inter­est­ing, and spent a lot of time doing it. I’m post­ing this here, as I feel that more peo­ple than my pro­fes­sor should read and enjoy it. Abstract: The graph­ics pro­cess­ing unit (GPU) is a spe­cial­ized and highly par­al­lel micro­proces­sor designed to offload and accel­er­ate 2D or 3D ren­der­ing from the cen­tral processing Read more […]

Stupid 1366x768

Well, it seems lap­top LCDs are all going from 16:10 aspect ratio to 16:9, to match the HDTV stan­dard format. The most pop­u­lar 16:9 HD res­o­lu­tion, 1366 x 768, has taken over the lap­top mar­ket and taken away pre­cious ver­ti­cal space on almost every new lap­top LCD screen! I’m sure 16:9 is really con­ve­nient for watch­ing for movies, but I don’t watch movies, ever — espe­cially on my lap­top! 1366x768 sucks because it is too short for any use­ful work, and not wide enough for 2 win­dows side by side. I Read more […]

New Camera: Nikon D3100

Thanks to my sis­ter, I’ve got­ten hooked on pho­tog­ra­phy — so much so, I just made a big invest­ment in a fancy new DSLR! After weeks of com­par­ing var­i­ous DSLR cam­eras, I decided to go with the Nikon D3100, because I felt it was a nice bal­ance of fea­tures, ‘new­ness’ (end of 2010), and price (well, that might be a stretch). The most notable fea­tures that drew me to this cam­era were: full man­ual con­trol (for when I get good), a guided auto mode (while I’m learn­ing), HD video recording, a nice Read more […]

CUDA and Automake

Note: I am by far no expert on this — (I only spent the past few days try­ing to wrap my head around automake, and before that, never opened a configure.ac file before) — just wanted to share my expe­ri­ences. Below is an excerpt from configure.ac and Makefile.am files I mod­i­fied to add CUDA to an exist­ing automake/autoconf setup (the .. .. implies other unmodified/existing lines). # -*- configure.ac -*- # Process this file with auto­conf to pro­duce a con­fig­ure script. .. .. AM_INIT_AUTOMAKE(no-dependencies) AC_CONFIG_HEADER([config.h]) .. .. # Read more […]

Top Chillout Songs

Ran­dom list of cur­rent top chill-out songs I’m lis­ten­ing to, in no par­tic­u­lar order - (forced to one song per artist to bring vari­ety): Tris­teza — En Nue­stro Desafio (Tris­teza is my favorite band) ZerO One — Noth­ing to Fight About Tycho — Lapse Lack­lus­ter — bkt Big­nic — Charleston Era Leo Der Stepa­ni­ans - In Between Ulrich Schnauss — Between Us and Them Zero 7 — Give it Away Radio­head — Every­thing in its Right Place Mock Orange — Twelve O’Clock Call Pin­back — Bloods on Fire Hyper Read more […]

AT&T Developer Summit Presentation

  I got an incred­i­ble oppor­tu­nity to travel to Las Vegas and give a short talk at the 2011 AT&T Devel­oper Sum­mit on a few of the cool Android projects I’ve done in school. I was given only ~5 min­utes to present 3 of my projects: Road­Bump, Feed­Speak, and SPRIME — giv­ing a student’s per­spec­tive on Android pro­gram­ming. The other 15 min­utes went to Dr. Russ Clark who talked about the GT-RNOC lab, and Shweta Patira, who talked about her iPhone/Android projects. Our session: The Read more […]

Customized Subreddits In Google Reader

News site red­dit offers a nifty way to get the RSS feed for a par­tic­u­lar sub­red­dit: sim­ply add “/.rss” to the url. For exam­ple: http://www.reddit.com/r/technology/.rss is the RSS feed for the tech­nol­ogy sub­red­dit. But, when logged in to red­dit to see your cus­tomized sub­scrip­tion list, adding “/.rss” doesn’t guar­an­tee a cus­tomized RSS feed in Google Reader, since it has no knowl­edge of your red­dit login info. Well, today I stum­bled across the way to view mul­ti­ple sub­red­dits with­out logging Read more […]

Random Quotes and Thoughts on Life

We can’t really change how much time we have – we can only alter where we put our atten­tion. If you have a minute in a day gone wrong, you still have enough time. You are the cre­ator of your real­ity. What you Desire becomes your Real­ity. It takes the whole of life to learn how to live. What story is your life telling? Know your strengths. There are no fail­ures, only lessons. Strive for con­stant improve­ment. Atti­tude, not apti­tude, deter­mines what you can do. There Read more […]

Nature vs. Nurture

I first saw this image (below) about the Reac­tion Range Model in a psy­chol­ogy book years ago. It really struck me, as I felt it some­what explained my path of edu­ca­tion. Basi­cally, it pro­poses that a person’s genetic makeup deter­mines the LIMITS on his or her IQ, and that envi­ron­men­tal fac­tors deter­mine WHERE within this range the person’s IQ will actu­ally fall. Grow­ing up, I would say that I was more like Jack (bot­tom left), but in an Aver­age envi­ron­ment, in an aver­age grade school and high Read more […]

Droid X Links

I got tired of re-searching for all these things when I needed to reset, restore, and re-root my Droid X phone, so here is sim­ply a col­lec­tion of links and ref­er­ences I find use­ful when wiping/resetting my phone: ADB Dri­vers Win­dows Linux Root Instruc­tions Win­dows Easy z4root SBF Flash (Return to stock 2.2) 1KDS Droid X Full 2.2 SBF Gin­ger­bread SBF Instruc­tions Backup/Restore Apps Droid X Recov­ery Boot­strap ROM Man­ager Mount /system/ (read Read more […]

Optimizing GNOME Screen Real Estate

Small screens suck. Even worse, once you get used to a high res­o­lu­tion screen, hav­ing to use any­thing smaller is tor­ture. I find this to be true for desk­top moniors, lap­top screens, and even phones now (I don’t watch or own a TV, but I’m sure it applies there also). Hav­ing wide-screen is cer­tainly nice, but please, don’t take away my ver­ti­cal space, to get it! I spent top dol­lar on my lap­top (back in the day) to get a higher res­o­lu­tion than 1280x800, the gold stan­dard for 15 inch screens at Read more […]

10/10/10

Octo­ber 10th 2010 – a very inter­est­ing date, and a ran­dom day of pro­cras­ti­na­tion from school! Installed Ubuntu 10.10 — so far, so good; it doesn’t seem too dif­fer­ent than 10.04 though. I’ll update my fresh install script for 10.10 soon. Update: v0.3 works pretty well with Ubuntu 10.10; more fea­tures to be added soon! Took part in Flickr’s Help Record 10/10/10 fes­tiv­ity with these pho­tos: (1 ‚ 2). Just search for the tag 101010 on Flickr to see more. Actu­ally, I signed up on Flickr for Read more […]

Comfort Zone

In Star­bucks the other day, I was sit­ting with my lap­top just try­ing to get some work done, and enjoy­ing my morn­ing coffee. I soon noticed there was a cute girl sit­ting alone across from me, on the other side of Star­bucks with her lap­top. Being fairly busy, I didn’t think much of it at first, and con­tin­ued work­ing. It didn’t take long before curios­ity got the bet­ter of my periph­eral vision, which led to peri­odic glanc­ing around the room to look at her. It was then I real­ized she seemed to be Read more […]

GTC 2010 Trip

I just got back from Nvidia’s 2010 GPU Tech­nol­ogy Con­fer­ence in San Jose Cal­i­for­nia. I had an amaz­ing trip, and am thank­ful that I got to go, as it was my first visit to Cal­i­for­nia as well as my first trade show atten­dance. [Side Note: The after­noon before the con­fer­ence, I took Cal­train up to the amaz­ing city of San Fran­sisco to visit a friend. He toured me around the city streets in beau­ti­ful Cal­i­for­nia weather. There is so much to see and do (com­pared to what’s around GaT­ech in Atlanta); I Read more […]

The Shortness of Life

I recently stum­bled upon the read­ing “On The Short­ness of Life,” a famous let­ter by Lucius Seneca. A good overview of the read­ing can be found here. Here are a few pull quotes from the let­ter that hap­pen to relate with some of my thoughts this past week. Present time is very brief, so brief, indeed, that to some there seems to be none; for it is always in motion, it ever flows and hur­ries on; it ceases to be before it has come… The engrossed, there­fore, are con­cerned with present time alone, Read more […]

Awesome National Geographic Script in GIMP

After installing the new plug-in reg­istry for GIMP, I stum­bled upon the amaz­ing National Geo­graphic Script. It is incred­i­ble! This script sim­u­lates high qual­ity, vivid pho­tos — like the ones from the National Geo­graphic mag­a­zine. It uses a con­fig­urable mix­ture of shadow recov­ery, sharp­en­ing, local con­trast, and var­i­ous color over­lay lay­ers. The script is buried under: Filters > Generic > National Geo­graphic. The default set­tings usu­ally work for me, but play around with the opac­ity of the Read more […]

Yet Another Fresh Install of Ubuntu Setup Script

Over the years of installing, updat­ing, re-installing Ubuntu, I have slowly crafted a decent “fresh install” bash script to help setup and con­fig­ure Ubuntu after a clean install. This script is ever evolv­ing, and still doesn’t cap­ture every­thing I want it to, but it does knock out a giant chunk of things to do, auto­mat­i­cally from the start. A related and a bit more pol­ished script can be found here: What to do after installing Ubuntu? Run this script!. This one is more GUI ori­ented, while mine Read more […]

Idle Fuel Consumption | A/C On vs. A/C Off

I was curi­ous about how much gas was actu­ally saved when idling my car with the A/C off, so I gath­ered some fuel effi­ciency num­bers using the MPGuino I made for my 2002 Honda Civic. The MPGuino can dis­play the instant Gal­lons Per Hour (GPH) con­sumed, and this mea­sure­ment was used for these tests. Test­ing Notes: All tests were per­formed on a hot sum­mer day, with the car warmed up after dri­ving around The instant GPH was aver­aged over 10 sec­onds for each test The gear shifter was either Read more […]

Back in my day, music was actually good

I stopped lis­ten­ing to the radio many years ago. I just can’t take it. As a teenager, I had two favorite alter­na­tive rock sta­tions I lis­tened to. I could turn on the radio at any time, and it was almost guar­an­teed that one of those sta­tions would be play­ing a song I liked. Ah, those were the good ol’ days, and it’s amaz­ing how music can trig­ger mem­o­ries. Slowly, it hap­pened that the newer the band to air on one of these sta­tions, the less I liked what I heard. At some point dur­ing my high-school Read more […]

Go the extra mile

These are just a few exam­ples fresh in my head to write about. The Sim­ple Pow­er­line Remote Inter­ac­tive Mon­i­tor and Enforcer (SPRIME) started as a sim­ple open source class project. It turned out to be much more… The GaT­ech Con­ver­gence Inno­va­tion Com­pe­ti­tion hap­pened to be going on at the same time. Our SPRIME project tech­ni­cally could fit in the smart-grid cat­e­gory for the CIC com­pe­ti­tion, but the project would have to be mod­i­fied slightly to be eli­gi­ble for sub­mis­sion. Doing so meant much Read more […]

Droid 1 vs. Droid X | First Impressions

I just upgraded from the orig­i­nal Droid to the Droid X. Since PCWorld’s arti­cle com­par­ing the orig­i­nal Droid and the new Droid X is just sad, I decided to do my own com­par­i­son. I’ll do my best to list some first impres­sions, and high­light the key dif­fer­ences between the phones, based on actu­ally own­ing and using both of them. For all of the feature-comparison-table lovers out there: Droid 1 Droid X OS Android 2.1 (Google Expe­ri­ence) Android 2.1 (Moto­Blur) Bat­tery (yes, Read more […]

15 Minutes of Fame for FeedSpeak

Yes­ter­day, I was stoked about Feed­Speak get­ting posted on the front page of the xda-developers site! This was totally unex­pected and def­i­nitely made my day.   A few days ago, a friend had rec­om­mended that I adver­tise the app in the xda-developers forum, so I cre­ated a sim­ple post for Feed­Speak Pro. After post­ing though, I learned that the forum isn’t really for paid apps — so I sat down and made Feed­Speak Lite, a free ver­sion of Feed­Speak Pro with some fea­tures disabled. At first, I didn’t Read more […]

When my life begins…

I have been hav­ing deep, seri­ous thoughts about life lately. I came to real­ize that for the past few years, I have sim­ply been wait­ing. Wait­ing for my life to begin. Don’t be afraid your life will end; be afraid that it will never begin. ~Grace Hansen I have just been wait­ing around to become some­thing else, some­thing more. Wait­ing around for cer­tain events to hap­pen, or mile­stones to be reached. All the while, think­ing I was on the verge of becom­ing, and only after those moments my life would Read more […]

I Can Haz Root?

A few weeks ago, I finally got around to root­ing my Droid. As tech­nol­ogy freak, I don’t know why I waited this long (since the Novem­ber 6th launch!) to install a cus­tom rooted Android ROM; shame on me! Any­way, I chose the Bug­less Beast series, and have been very impressed. A Froyo build of Bug­less Beast was released just a few days ago, giv­ing power users Android 2.2 a few weeks ear­lier than the offi­cial OTA. I must say, Android 2.2 is really nice and pol­ished. It’s hard to believe that only two Read more […]

Goodbye, Facebook

So I decided it was time to leave Face­book, and deac­ti­vated my account. I never really used it much any­way. Aside from all the recent pri­vacy issues, Face­book just seemed too much of a time sink, plus was get­ting filled with more “friends” (acquain­tances) and crap every day. To me, there was a part of Face­book that just died the day it opened up to any­one and every­one. I guess it was sort of neat to know what “friends” were up to when­ever I logged in, but even­tu­ally I real­ized that it just kept Read more […]