Stackoverflow.com: A programmer’s dream

While google has always served me to find answers to a wide array of programming and technical issues, I don’t recall any one tech QA site which was consistently reliable. I regularly dug out answers from google group discussions to some old bulletin board archives to the typical flashy QA sites infested with scammy ads.

Stackoverflow.com provides a spot-on solution to this very precise problem. Not only it is a clean and functional site free of annoying ads, it actually engages the users to help others more. The reputation scoring logic is a feedback loop, which gets a programmer addicted in no time. I think it works marvelously well.

To top it off, Joel Spolsky and Jeff Atwood, the founders of stackoverflow made their software reusable. There is also superuser.com and serverfault.com based on the same platform but geared more towards sysadmin crowd. And slowly, many other sites are adopting this very successful platform, for example: answers.onstartups.com.

I am very happy to be involved with helping the programming community and learning at the same time. I guess I have nearly stopped spending time on facebook and twitter. I recommend all my coworkers and techie friends to start contributing in these platforms already.

No Comments

Epson V500 and coming back to film

First scan from my RB67

I used 35mm film extensively since 2003 till about 2005 when I bought my first digital SLR, a Nikon D70. In those days I was pretty much brainwashed with all the digital hype like everybody else. The film workflow was lengthy. Mail order slides and B/W took about 2 weeks to arrive. Good film scanners were expensive and did not seem worth more than a DSLR. I had to retire film for a while. Back in those days I was doing event and sports photography for the graduate school newspaper and digital was just the right tool for the task.

Fast forward 3 years. I live in the bay area, close to San Francisco and many scenic places. I occasionally photograph events and portraits but other than that I am mostly drawn to making fine art images. Not that digital can’t do it, but film imparts a special character to the process. Anyone who has seen glowing color slides on a light table or made black and white silver gelatin prints in the chemical darkroom, can immediately understand my point. Film is tangible, unlike digital files. You don’t need a computer to have fun with film. To enjoy the photography even more, I picked up a battered Mamiya RB67 medium format film SLR. I like it so much I am going to shoot medium format film for as long as it is available and affordable.

I have right now about 30 boxes of 35mm color slides, countless 35mm color and b/w negatives, and more than a dozen medium format slides and b/w negatives. And this collection is going to grow.

Glad I waited all these years for a good affordable scanner, and the Epson V500 can be considered the home run. Short of 4×5 scanning (I don’t think I have enough patience to go up to 4×5) this one has everything I need. I just did my first few scans and for the first time I was able to appreciate 16 bit black and white images. The tonal gradations are very tolerant of drastic adjustments unlike 8 bit where it would lose detail pretty quickly.

I guess it will be interesting to dig through my old films. Lots of memories from Long Island, and maybe a few surprise images. I will see.

P.S. I can’t deny the evil influence of my coworker Ken (@wirehead) in making me a medium format fanatic, not to mention his showing off velvia 6×7 slides of women in fishnets doing light painting in the middle of nowhere :P

,

2 Comments

Woodwork project: Desk-side shelf

Shelf upgrade equivalent to 10GB from 1GB ! Recessed notches to prevent slip outs

I am not a neat-freak but chaos beyond a certain point seems to hurt my productivity and mental peace. My first serious woodwork project was an utility shelf, barely 6″ deep, 2 ft wide and 6 ft tall, but it served me very well for the last three years.

Recently, easy access to everyday things has been an issue, since Priti loves to do origami and by now we have a lot of them lying around. So I decided it was time to upgrade. Nice excuse to play with the tools for a few hours.

I came up with a 6 ft tall, 2.5 ft wide and about a foot deep storage with 3 fixed shelves and 4 adjustable ones. About 5 hours of back breaking labor but the feeling of extra space is so nice that it makes me compare to an upgrade of 1gb to 10gb of RAM !

For those who want to make one, here is a cut list:
1. 12″ wide white melamine panel with pre-drilled holes for shelving: 6ft x2 (I bought two 8 ft long panels since there was no 12 ft)
2. 12″ wide solid white melamine panel: 30″ x3 (bought one 8 ft panel)
3. 12″ wide pine panel: 30″ x4 (bought two 6 ft panels)
4. 1/8″ thick handypanel for backing board: 3 pieces of 24″x48″, then cut each to 24″x31.5″

I used pocket joinery and glue to fix the 3 melamine shelves first. The structure at this point is not very rigid, it can shear, leading to joint failure since melamine is not very dense. For the extra rigidity, the backing boards are glued and nailed behind. The adjustable shelves got notches cut where it sits on the metal spoons, to prevent an accidental slip out, by an earthquake or otherwise.

Oh and the total cost of wood from home depot: $80. Satisfaction of building a quality storage shelf for our daily use: priceless.

3 Comments

Wordpress fusion theme: twitter widget link problem

The twitter sidebar widget in the fusion theme of wordpress shows weird in Firefox browser, due to the encoding of the double quotes in the href attribute. For example, a link from a twitter post shows like this in source:

  1. <a href=&quot;http://bit.ly/foo123&quot;>bar</a>

Safari in quite intelligent regarding this and displays the links right.

A look in the code revealed that the output from twitter webservice call is not completely decoded. The function fusion_TwitterWidget() in wp-content/themes/fusion/functions.php looks like this after an easy fix:

  1. // theme widget: Twitter
  2. function fusion_TwitterWidget($args){
  3.  extract($args);
  4.  echo $before_widget;
  5.  print $before_title.__(‘Twitter posts’,'fusion’).$after_title; ?>
  6.  
  7.  <?php
  8.  $username = get_option(‘fusion_twitterid’);
  9.  $limit = get_option(‘fusion_twitterentries’);
  10.  if($username<>) {
  11.   $feed = file_get_contents("http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" . $limit);
  12.  
  13.   // joyd: fix for the broken hyperlinks of twitter plugin due to encoded quotes
  14.   // $feed = str_replace("&lt;", "< ", $feed);
  15.   // $feed = str_replace("&gt;", ">", $feed);
  16.   $feed = html_entity_decode($feed);
  17.  
  18.   $clean = explode("<content type=\"html\">", $feed);
  19.   $amount = count($clean) - 1;
  20.   print ‘<ul id="twitterupdates">’;
  21.   for ($i = 1; $i < = $amount; $i++) {
  22.    $cleaner = explode("</content>", $clean[$i]);
  23.    print ‘<li class="entry">’;
  24.    echo $cleaner[0];
  25.    print ‘</li>’;
  26.   }
  27.   print ‘</ul>’;
  28.  }
  29.  
  30.  echo $after_widget;
  31. }

Thanks a lot to Francesco to point this out !

,

2 Comments

Fitness through fun

Priti on a 5.8

As I made clear in a few previous articles, I hate doing boring stuff. Using machines in the gym seems just one of those. Fitness, though necessary should not be a monotonous thing. The reason I don’t like the treadmill or the elliptical or the stationary bicycle is that while the body is getting a nice workout, the mind is sitting completely idle. People take their favorite magazines or look at some lame show on the gym TV. I just can’t afford to idle my mind, even for half an hour a day.

Enter the concept of fitness through fun. My coworker Ken (wirehead) is an excellent example. He hates the gym for the same reasons as mine. He took up bicycling 2 years ago and never looked back. He rides (both commute and fun) so much that sometimes he can’t recall when he last drove his car. He is back in an awesome shape and I now have a healthy dose of jealousy on his achievement. Now my problem is, even though I took up cycling recently, I just can’t get rid of my habit of working late on personal projects. Sleeping at 2am pretty much guarantees a frantic morning of a quick shower followed by dashing off to work on my motorcycle. So, back to square one.

But it changed this week. Quite dramatically.

Priti wanted to try out rock climbing at the local Planet Granite and just to make her happy I agreed to take up a 4-week course during which we could climb as much as we wanted. Looking at all the fit people around, I was more or less sure that it could very well suck for me. Lo and behold, all my assumptions were proven wrong at the first climb. I had no idea how much strength I had in my arms that I could still pull my weight pretty well.

We both bought shoes and harnesses on the next day. No point renting them since we like it so much. Priti did a few successful 5.8 climbs (for the definition of grades, see here: YDS) yesterday and I finished four consecutive climbs on 5.3 to 5.6 today. I just could not believe it.

Anika climbing hard on a 5.8Brad on a 5.11Shannon climbing a 5.10A

My whole body got exercise. I had fun. Looking at the variety of climbing tracks here I don’t think I will get bored anytime soon. And then maybe we will go outdoors for more serious fun, plus photography as well. Now that is what I call fitness as a side effect and has the most ROI I can ever imagine.

More photos: Rock Climbing – 2009

2 Comments

Too many projects, too little time

I renamed my blog again. For the fourth time if I remember right. And I guess this time it is an honest title (title #1 “Motorcycle diary of Joy Dutta” – too specific, title #2 “Joy Dutta’s blog” – too boring, title #3 “Joy Dutta on work|play|life” — too cheesy).

I hate boredom since eternity. To stay productive, I had to make a safety net of hobbies that I can enjoy in a round robin fashion. In other words I simply rotate my activities in convenient intervals. Photography consumes the most of my free time and it is something very hard to be bored with. Despite that sometimes I am full of ideas to build physical objects rather than two dimensional ones. That is when I find the most pleasure using my woodworking tools to convert my 3D visualizations into a product. Those are the good times.

Even outside hobbies, there are many productivity tasks to be done. Too much progress is happening in the internet technology arena and it would be a career suicide if we software engineer folks don’t keep up with the latest ideas and workflows. There is non-stop learning and self-improvement opportunities which we must avail. We are living in exponential times and must deal with the ever shortening times to do even more interesting stuff.

My blog is really an attempt to jot down my productive explorations and life experiences. Tech tips, tutorials, ideas, homemade contraptions. You name it, you can see it here.

In other words, there is simply no time to watch the stupid TV !

3 Comments

The fraud called “Healthcare”

Less than a year. A few regular doctor visits and regular checkup tests. That is what it takes for the healthcare system to unveil its bloody fangs and other dirty secrets.

As the system works, we go to our family physician, pay $10 copay and the rest is taken care of. $20 for a specialist, which is still fine. A few weeks back Priti had to see a specialist for some consulation on a procedure. Desk receptionist checked my insurance card, I paid my copay and we talked to the doctor. After 15 minutes of consultation the doc mentioned some procedures but said she would first verify if my insurance would cover it.

Next day we got a call from her and as we feared, she was not covered under my insurance. So we thought, fine, we would find another specialist who can do the procedure while being covered.

The next bill from the Aetna caught us off guard. $350 charges for that 15 min consultation is NOT APPROVED ! Patients are not told if insurance covers the consultation but fees are anyway charged. Brilliant scheme, I must say. Sounds like the regime of Shylock, huh ?

It will be interesting to see how it unfolds from here. I have sent an email to my Aetna asking an explanation. Maybe I should also ask if they cover injuries caused by severe rectal trauma as well, assuming that is already a “pre-existing” case of most insured people in this country.

Update:
It gets even more interesting. In the words of a friend of mine:

I experienced a slight variation of this. My doctor called up the insurance and asked if the suggested treatment was covered to which they answered in the affirmative. I get a bill from the doctor’s office a year later with the charges. I inquire and they tell me the insurance declined to cover it later. I said that it was absurd to tell the patient that it was covered before the treatment and then shifting the cost to the patient later to which she applied ‘Yes unfortunately that happens all the time and there isn’t anything we can do about it.’

Update:
The doctor’s office called us and said not to worry about the $350 bill, it was taken care of. Cool. This is what I don’t get here. First, there will be bills of obscene amounts. Then the claim history will show that insurance paid a fraction of it or denied it. And the patient will remain confused about the real out-of-pocket cost for anything. So much for a first world health care system.

4 Comments

Woodwork project: Toy riding airplane

Wooden toy airplane

One of the major reasons I love woodworking is to build things of emotional value, in this age of rampant consumerism. Handmade heirloom wooden toys are something no made-in-china plastic electronic gadget can beat in terms of value and the sheer amount of fun a kid can have.

I wanted to build classic toys since I took up this hobby in 2006. I had to wait till my friends started having kids, but in the meantime I made a bunch of furnitures and gizmos to justify my addiction for tools. I did learn enough to design according to my time at hand, and turn it into a product. The hardest part is figuring out the exact sequence of operations. It is not uncommon to do everything well and then glue on the wrong side right before the final assembly !

I got this idea from John Michael Linck’s riding airplane model. I only needed to know the exterior dimensions and I designed the parts according to my own plan. I just hope my friend’s kid finds it comfortable when she starts walking in a few months.

Building a wooden toy airplane Building a wooden toy airplane

For the curious, the wood is softwood pine. The top wing span is 24″ and the fuselage is about 28″. For the wheels I used omnidirectional casters from home depot. A jigsaw was needed to cut the curved fuselage. The round profile of the wood is done in a router after corner rounding on the drill press with a sanding drum. Joinery is mostly glue since I wanted to minimize screws on a toy. I hope it will hold.

Can’t wait to see this toy in action early next year. Maybe I will see a pilot’s logbook with imaginary flight plans very soon.

2 Comments

Speech to Text: the toughest challenge for mankind

The biggest frustration of being partly hearing impaired is the continuous tension in a conversation scenario. It is a daily struggle with failed efforts to reconstruct words and sentences out of fragments of sound. A fraction of the affected people can do lip-reading well (useless in a telephone conversation) and the ones with severe deafness has to resort to sign language which very few hearing people know (or could be bothered to learn).

We are in the age of warp-speed technology right now and this article is an attempt to figure out how today’s technology can be leveraged to provide the single most useful communication tool between the hearing world and the impaired, irrespective of medium or gadgets: The subtitles (closed captions or CC).

Imagine a handheld device with a display screen which can translate any speech to text. Any speaker, any kind of accent. But as fast as a complete sentence is spoken. This gadget alone can change the whole world. It can even be only 80% accurate and the human brain can still decipher the missing parts in a real-time conversation.

Technology in advanced countries like in the US has subtitles in TV programs which is a god-sent for the hearing impaired. For the 25 years I lived in my country, I never understood a movie or a TV show. On the first day in the US when I turned on the TV at a friend’s place, I felt like I was reborn. Movies on TV became an instant addiction for the next few years.

Closed captioning has enormously helped the hearing impaired people, but it still does nothing for the daily struggle. A major part of that is undoubtedly the use of telephone. The existing TTY technology is old, and not scalable. A recent innovation in this arena is brought by CapTel which still needs a dedicated device and plan. They even launched a web based service Web CapTel in Australia which a blogger found really great. This is a service powered by human translators, so still does not solve the fundamental problem of machines converting speech to text.

In this age of smartphones, it will be really really awesome to have a smart speech-to-text app in an handheld phone like the iPhone. Imagine being able to talk either face-to-face or on the phone while reading real-time subtitles. It would be the best app and invention for the mankind, I am petty damn sure.

1 Comment

Woodwork project: flexible platform on tripod

Homemade flexible platform on tripod

My desk at office is raised high because I often like to work standing up. The ergo folks are good and I feel quite comfortable in that setup.

It bites when working from home. My only desk being occupied by my personal laptop, the office macbookpro goes on the bed and I am in a pretty bad ergo position when sitting on my chair. I could make a wooden table specifically for work, but it would take up valuable space, and won’t still be adjustable. There gotta be a simple solution but I kept procrastinating doing anything about it. Till yesterday.

I got a light box for my color slides and got the urge to bring out my projector and enjoy viewing them on the wall. Again I faced the table issue, ‘coz the projector needs to be adjusted at the right height to enjoy a good quality show.

And then it hit me – a wooden plank on top of a sturdy tripod can work as a super flexible platform.

Quickly implemented my design at the woodshop around midnight and after the epoxy dried, it looks like it is working absolutely fine. A small piece of velcro can ensure the laptop does not slip. A bungee cord can secure the projector.

Attaching bogen quick release on a foot square board

The most important construction part here is obviously the attachment of the quick release (QR) plate to the board. Some fairly heavy and expensive gadgets are gonna be on top so I had to design this part carefully. A standard 1/4″ nut is equivalent to a standard tripod socket, and it is pretty small, so it must be installed at the center of a foot square plank very rigidly. I drilled out a 1/4″ hole and then using a forstner bit, drilled a flat bottomed hole just big enough to fit the 1/4″ nut, till just a millimeter from boring through the other side. As a result the nut could sit a mm away from the QR plate, separated by the wood. It is now secured from the bottom and sides and I poured two-part epoxy on top of it to completely lock it in place.

2 Comments