Saturday, December 23, 2006

Happy Holidays everyone!

I have been under the radar lately, and wanted to get out of my hole and just say "Happy Holidays!"

Be happy or get out!

A study from the University of Toronto says that creativity is improved when people are in a good mood.

This was something that was obvious to me. I have found that I get into the "zone" only when I am really in a good mood. In any work environment, positive karma is a must! If you are ever in an environment that has bad karma, either change it or find a way to get out. Life it too short!

Thursday, October 19, 2006

Amazing Advertising

Found this link that shows some creative advertising campaigns.. My favorite is the lady swimming with sharks..

Been really busy!

I have been really busy with life, work, and family. All is well!

Wednesday, September 27, 2006

The Economics of Open Source Education

Came across the essay The Economics of Open Source Education. It does a good job analyzing the effects of open source on education.

It is only in the past couple of years that we started to see the effects of open source in the software industry. It has created new business models for building and selling software. Now that the world is more connected, I believe its effects will appear in new domains beyond software.

Open source is one of the great innovations that will impact the 21st Century. Enjoy the article!

Thursday, August 10, 2006

Ajax Hangs in Safari

At my recent gig, Zingku, I have been doing some heavy duty AJAX. There was one particular bug in Safari that I wanted to share with folks that took a while to figure out.

Our environment uses Tomcat as its servlet engine and only on Safari we would experience these random hangs in some AJAX based requests. These AJAX requests would never leave the browser and were difficult to reproduce. However, they happened often enough to frustrate us. The lack of debugging tools in Safari made things very difficult.

Well, after a weekend of digging into the problem I figured out the magic URL that caused the hangs to occur. Safari would just hang on AJAX URLs that contained the character ";". The reason it was hard to find was that we do not explicitly generate URLs that contain the ";" character. Tomcat does in the form of a ";JSESSIONID=magic_number" token when it thinks the browser does not have the right session cookie. This is what made it feel random.

The solution was to encode the ";" prior to feeding the URL into the XMLHttpRequest.. Here is how you can do it using a quick localized hack:

url = url.replace( ';', '%3B');

I hope Apple will introduce some better debugging tools for Safari in the future.

Run away from EJBs

I came across this article (Java EE Fallacies: EJBs are too complex, POJOs are easier.).

EJB, at least EJB 2.0, was one of the most over engineered and painful frameworks I have ever used. Given how bad the taste EJBs left with me, there is nothing any updates will do to get me to ever use or consider them for anything.

The author talks about non-functionals such as "real time monitoring (JSR-77), threading, proper load balancing etc" are just plain over engineering again. These requirements should not be solved by the mother of all frameworks. My experience suggests that these requirements need to be hand tuned for the app and by the app, not some advanced solves world peace framework.

Given the EJB experience what I suggest to any developer is to evolve from SIMPLE working systems as opposed to starting a project with the goal to solve everything. Grow into your requirements and iterate furiously.

PS. I can see some previous colleagues telling me, "I told you so" when we first starting using EJBs. Right Bob and Brian :)...

Sunday, August 06, 2006

Volunteer work for an eight-billion-dollar corporation

This is an amazing story of the ultimate skunk works project..


Monday, July 31, 2006

We're hiring

We are a small funded company that is building an exciting consumer site that brings together web, mobile, and IM. We are looking for a junior engineer to join our small growing team.
  • Do you love to code? Does the line between hobby and work feel blurry?
  • Have you been inspired by your own ideas and then get them done?
  • Do you like working in small teams?
  • Do you love working on every layer of the software stack?
  • Are you excited by stuff you can do with mobile phones and IM?
  • Do you like to invent and learn new technologies?
  • Do you like to work with little supervision?
  • Do you love your Unix and Java?
  • Do you debate about programming?
  • Do you obsess over creating beautifully simple code?
  • Do you love to get things done?
  • Do you want to work on a cool consumer Web 2.0 product that will change the world?
  • Do you want to work in the Boston area?
If the answers to these questions is yes then drop us a line (jobs at zingku.com)!

Thursday, July 27, 2006

I need my Web 2.0 logo

Came across this site focused on "Web2ifying" well known corporate logos. Some are just hilarious. Enjoy

Sunday, July 16, 2006

Stay Hungry, Stay Foolish

Found this video of Steve Jobs doing a commencement speech at Stanford... Another wonderful speech from a great visionary about how he lived his life and his advice to the next generation. Watch it...

Monday, July 03, 2006

Art of the Start Video


I read The Art of the Start by Guy Kawasaki a while back. It had wonderful down to earth advice about innovation and entrepreneurship which apply to both startup and corporate settings.

Guy recently posted a video he did that covers a lot of topics in the book. If you do not have time to read the book watch the video... He is a great speaker!

Thursday, June 22, 2006

World Cup Prize Money

I was watching a game the other day and was a little surprised to hear one of the commentators talk about prize money. For all the years I have watched the world cup it was the first time I heard it. So I looked around and found out that a lot of money is set aside for this. In fact it is 332 million Swiss francs ($270 million) that is set aside for prizes. It was hard to find the data since it was distributed in many small articles.

The amount given to teams range from 7 million Swiss francs (currently $5.6 million) for teams beaten in the first round to 25.5 million Swiss francs ($20 million) for the champion.

So the next question is who gets the money? hmm..

Saturday, June 10, 2006

World Cup in ASCII art!

Nice hack for geeky soccer fans.. Reminds me of the matrix.. Watch a live feed of the world cup in ASCII art at http://ascii-wm.net/

All you need to do is telnet ascii-wm.net 2006 and enjoy!

Saturday, June 03, 2006

InquisitorX

Came across inquisitorx today which is a little search aggregator that provides suggestions as you type with one click search engine changes. Additionally, you can download a safari plugin for it. Seems useful and cool. Plan to use it for a couple of days.

Thursday, June 01, 2006

BlogBridge

I have been on the search for a feed reader and really never found something that I liked. Mussie suggested that I try a reader called BlogBridge designed by one of his friends Pito. After a couple of days of using it I really like it. Nice UI, simple, fast, and open source.

Here are a couple of features that I liked:
  • Subscribing to a feed defaults the url in the clipboard
  • Unread marks work well for me
  • Voting on feed is cool
  • Tag integration
  • Feed sync across computers
  • SmartFeeds
  • Works on both Mac and Windows

Wednesday, May 31, 2006

Safari Debugging Tip

Safari has a hidden menu that can be activated by opening up a Terminal and inputting this line:

defaults write com.apple.Safari IncludeDebugMenu 1

Tuesday, May 30, 2006

Loading up the new MacBook Pro

Just received a new MacBook Pro and it is lovely. I spent the day installing software. Here is what I loaded the machine with on day 1:
  • Skype - IM
  • Adium - IM
  • FireFox
  • FireFox Extensions - FireBug, Web Developer Toolkit
  • Xwindows Server
  • Emacs - Editor
  • MySQL 5.0
  • MySQL Administrator
  • Eclipse Web Tools Project (with the intel patch)
  • Eclipse Plugin - Subclipse
  • Eclipse Plugin - Azzurri Clay Database Modeling Plug-in
  • Cyber Duck - FTP Client
  • VNC Viewer
  • Subversion Client - Source Control
  • Tomcat - App Server
  • BlogBridge - RSS Reader (I like this more now)
  • StuffIt Expander
  • Windows Media Player
  • Windows Remote Desktop
  • TextMate - Editor
  • MenuMeters - Perf Monitoring
  • SvnX - SVN GUI
  • XcodeTools
  • info.xhead - Keep track of my passwords
  • GIMPShop - Photoshop
  • NeoOffice - Open Source MS Office
  • WebKit and Drosera - Safari Debugging
  • iWork
  • IPSecuritas - VPN

Monday, May 29, 2006

Play Beautiful

Joga bonito has some amazing soccer videos. Things I did not imagine were possible. My favorite video is Brazilian Ping Pong. Enjoy

My data format is mine!

Ned wrote a wonderful essay titled "Own your data: ad-hoc representations".

I have to totally agree with Ned. I have been involved in a number of projects that applied what we called at the time the Highlander Principle (there shall only be one) to prevent NIH and take advantage of reuse. The end result looked like the standard but not really. This ultimately required a developer using the system to always translate semantics back and forth to figure out what was going on.

The other myth with adopting a related standard is that you get free features. In reality you end up adding new work to address use cases specific to the standard that are not core or valuable to the application. That creates unnecessary complexity and work.

My view is that standards should be used for their purposes. If the semantics of an application are core, then expressing things in the simplest possible representation does more good for the application. If integration is needed with a standard that should be a feature that tests the extensibility of the architecture.

Sunday, May 28, 2006

Go Santiago go!

Just finished reading The Alchemist by Paulo Coelho. I really enjoyed the book. It is a story about an Andalusian shepherd's journey to find a treasure in the Pyramids.

The story is full of little gems about life and how one should pursue their Personal Legend.

This book could not be more timely. As I start working on a new startup it reminded me of the journey I am about to embark on. Like Santiago, I'll be learning, making mistakes, and following a passion. A definite recommendation!

(via Mussie and Julio)

Saturday, May 27, 2006

Javascript inheritance

I have been doing some deep javascript coding recently and doing inheritance with prototype requires that you put your head on sideways. A google search led me to Base.js. It really simplified things for me!

Dual monitor rig is a must have for developers

I heard and read (e.g. Bob's posting) that having 2 monitors for dev was great. I tried it last week and have to say it is SOOO worth it. I felt the productivity boost. Here is my setup:

20' widescreen (for coding) + 19' (for testing)

Total monitor costs <$500 from dell.

SSHD

I have been using sshd to securely connect to my computer in the office. I setup cygwin's sshd on my windows machine, poked a hole on port 22 in the firewall and was ready to rock and roll.. On the client side I used putty to setup the tunnel using the -L option.. Here what the final setup looks like

app1 <-port1-> putty <-ssh port 22-> sshd <-port2-> app2

Wednesday, May 24, 2006

sysinternals

For some folks this might be obvious but Sysinternals has some amazing tools. I liked the process viewer, blue screen screen saver, and the Filemon..

enjoy messing with your system

Saturday, May 20, 2006

Hats off Tabblo!

I just posted my IBM farewell party pictures using Tabblo. The experience was A+. I had 108 pictures in iTunes and 2 in email. Through a few clicks plus some upload time I had a result that I loved. I then pointed tabblo to my blog and puff it was up there...

Congrats Antonio, Ned and team on an A+ job!

Farewell IBM

MacBook Woes

Yesterday I picked up a MacBook Pro from the apple store! Store was beautiful, box was beautiful, sales associate was beautiful :). Got home, the packing was beautiful, power code was beautiful, power up was beautiful. I was in geek heaven.

Loaded up the machine and after installing the dev addons the beautiful mac kept freezing up. So off to the apple store to return it. argg....

Thanks, now the wild west!

Next week I start my adventure in the wild west of consumer tech startups. It is a new startup in the mobile consumer space that is still in stealth mode (more to come later). I do this after spending 8+ years at Iris/IBM. I was so touched by how friends, colleages, and customers bid me farewell.

I want to let you all know that the best part about working for IBM/Iris was all of you! I have found you all to be such an inspiration. Because of you I am a better person and engineer. I could have not asked for a better farewell. I hope we cross paths again and ask all of you to stay in touch.

Here are some highlights of my last week:

Wednesday, May 17, 2006

Google Web Toolkit

Google just released a Web Toolkit. Interesting idea generating JavaScript from Java code. I have yet to play with the library to have some real feedback. It sounds similar to the ROR's RJS. It is great to see the big guys giving back!

I was not able to find any info about what Google apps are using this. I would have loved to see that list.

Thursday, April 20, 2006

Show me which links on my website are worn out!

crazyegg.com appears to be working on cool visualizations of the effectiveness of a website. I really like the heatmaps screen shots...

Want some Web 2.0 Vitamins?

Came across Vitamin the other day via a coworker. It's a site where a bunch of web 2.0 heavy hitters contribute content, interviews, reviews, training, etc.

One of the training podcasts , "Scaling Web Apps on a Budget", caught my attention. It briefly talked about how flickr scaled up and pushes updates to their production env. The 3 stage developer to production appears logical and simple. What surprised me was the lack of formal QA prior to pushing updates to the production servers. Developers appear to fill that role. Kinda cool and is dev on a budget.

Of the projects I have worked on the best bugs I have fixed have always appeared in an eat our own dogfood deployment. There is nothing like using your own product!

Friday, April 07, 2006

Incredible Machines

Amazing videos of Rube Goldberg type machines made in Japan.. enjoy

Sunday, March 19, 2006

Kidney Stones

Had my first kidney stone this week and I have to say it hurt like hell! Luckily the hospital was nearby and they gave me all sorts of fun drugs to mute the pain. The whole ordeal took 6 hours, which I hope to never have to experience again.

For me, this was just sharp reminder that I need to take care of my health. So I joined a gym and hope to be a regular from now on. After my second day of swimming and exercise, I must say I feel great!

Saturday, March 18, 2006

Counting lines of code

I wanted to count the lines of code for a project I was working on and realized that it can be done with some simple regexp and commands. Thought I'd share:

find dir -type f | egrep "(\.xml|\.java|\.jsp|\.tag|\.sql|\.html|\.tld|\.css)$" | xargs cat | egrep -v "^[\s\t]*$" | wc -l


I was surprised that there are companies that sell software to do the above. God I hate over engineering

Wednesday, March 08, 2006

When The Long Tail Wags The Dog

Came across this essay When The Long Tail Wags The Dog.... Found it interesting and generally agree with the ideas proposed. General purpose systems enable things to be huge and can hit unintended sweet spots, but there is a fine line between good general and overly complex general.. This is another important factor for determining the success of things too... Achieving both simplicity and generality in a single system is hard and achieving both requires a lot of discipline and iteration... As Galls Law describes, general systems always need to evolve from simple ones..

Wednesday, January 25, 2006

Plain gauze rabbi person

At Lotusphere 2006 I did a demo of Activities (what I work on at IBM) to members of the Japanese press... Here is the article... To understand what they wrote I translated the article on Bable Fish... To my surprise I was identified as the "plain gauze rabbi person" in the article...

Saturday, January 07, 2006

Blog Awards from iBLOGthere4iM

KBCafe Blog Awards Winners - iBLOGthere4iM

Today is Dress Up a Pet Day

Came across Lesser Known Holidays... My birthday is not on the list :(.... What's interesting about this site is that they implement microformats.. Appears to be a good way to get free publicity..

Thursday, January 05, 2006

tools of the trade at 37signals

Came across this..

explains what 37signals uses for their business... interesting, they develop on macs..

Wednesday, January 04, 2006

Just published an article

Yay.. my article got published. It provides an overview of the IBM Workplace programming model..