April 7, 2009

Silverlight Project: Success!

I apologize for the lack of posting during the past week. One of the reasons for this has been that I had been working hard on my cool Silverlight class project. I went to sleep at 10am after a whole night of coding and presented the project in class at 4pm. Almost everyone was impressed! I think we really nailed the layout and look and feel of the application.
Silverlight feels a lot like Adobe's Flex, which I use daily for my research project, Cyclopath. Before this project, I just thought that Silverlight was Microsoft's clone of Adobe's Flash. But after using both, I realize that they are quite different to work with. My main complaint about Silverlight is how hard it is to do dynamic styling and theming. It can be powerful, but it is also overly complicated without the assistance of a theme editor or the like. What I liked best was Microsoft's powerful debugging capabilities. It is a joy to be able to explore almost any value or function at any time during debugging.
At the end of the semester I will post screenshots of all our class projects. Meanwhile, I believe I have an appointment with my bed. Good night and thanks for reading!

March 5, 2009

Playing Around with GWT

I just finished working on my second group project for the Developing the Interactive Web course I am taking. This second project had to be done using the Google Web Toolkit (GWT).

GWT is very different from the first toolkit I used (YUI). YUI was just a collection of code written in Javascript (the programming language used in most web sites to make them interactive on the client side). It can be quite a hassle to work with Javascript, especially because of the difference in how browsers handle it (older Internet Explorers being the biggest pains). That is the reason for creating tools such as YUI to aid the programmer.

Now GWT is not a collection of Javascript. It actually tries to keep the programmer from touching the Javascript. GWT is all Java (a very rich and powerful programming language) and it handles creating the annoying Javascript for you and the communication between the server and the client, which is very useful.

GWT was fun to program in, although it had many inconveniences that I will not get into right now, including complicated setup and Java code that does not translate into Javascript.

As for the project we created, I think I will try to set it up within the next few days so you guys can try it out for yourselves!

February 22, 2009

Extreme Google Maps Paper Tutorial

I love to see extreme examples of paper prototypes or, in this case, paper tutorials. This falls somewhere in between art and giving presentations. These guys take what is supposed to be a simple process and convert it into a painstaking, awesome-looking form of art. This short Google Maps marking tutorial is way more fun to watch than on the real Google Maps. Enjoy!

February 3, 2009

Microsoft. Huh. So It's Pretty Easy to Use?

Microsoft has gotten marketing all wrong for one of their new products called Microsoft Songsmith. Microsoft Songmisth listens to you singing and automatically figures out the chords that go with your song. It's a cool idea, but not a very practical implementation. I think they should have targeted a younger audience only. Instead, this is what they came up with. The title of this post shows my favorite quote of the whole promo. Get ready to laugh. Or cry.

To make matters worse, according to internet sources, the laptop used in the commercial is a Mac (hence the many stickers covering the logo).

What is even funnier is the unexpected use that people have found for Songsmith. There are now a great number of videos on YouTube which have taken famous music videos, left only the vocals and cooked up the music with Songsmith. The results are funny, entertaining, and sometimes just plain weird. Here are a few of them. Enjoy!

Roxanne by The Police

Beat It by Michael Jackson

Eye of the Tiger by Survivor

And, of course, a metal rock version of Never Gonna Give You Up by Rick Astley.

January 31, 2009

Trying Out the YUI Toolkit

My first class project for Programming the Interactive Internet involves the use of the Yahoo! User Interface Library. I can't say too much about it yet as I am still just dipping my feet, but it seems to be a very useful library. We are basically working on a movie-oriented mashup that will bring in data from Flickr, Twitter, Technorati, and more. I'm currently in charge in my project team of getting that data and parsing it. I will use the YUI toolkit to access this information using Javascript and without having to refresh the page or redirect the user to a new page. That means that all this data will be fetched dinamically as the user interacts with the page. It is just awesome to be in a class that requires you to make a mashup!

January 27, 2009

Archiving Our Lives Vs. Living Them

Read/Write Web has a great article by Sarah Perez titled "Technology is Great, but Are We Forgetting to Live?". I think it is very important to understand that we do not have to take every picture, record every moment, instant message every occurrence. Sometimes we just have to enjoy the moment and forget about technology. If not, we may just end up looking at our own life through a "glass".

November 20, 2008

Geocoding Woes

One important part of Cyclopath is geocoding. If you have never heard of geocoding (I hadn't before this project), it means translating an address to latitude and longitude coordinates. Whenever someone uses the route finder, we have to translate those addresses into coordinates, find the nearest intersections, and then have our route finder look for the shortest path between those two points.

Well, as you can imagine, geocoding is not an easy task. That is why we don't implement this part ourselves. There are some great geocoders out there too. We had experimented with Yahoo's geocoder and then moved to Microsoft's MapPoint geocoder. Aside from a few sporadic issues, Microsoft's geocoder worked pretty well. That is, until a few weeks ago. For no obvious reason, addresses that used to work now completely failed. My own home address now dropped me at a location miles away from where I live. This was a problem. And users were starting to complain.

A few email exchanges with some people from Microsoft (which were very prompt by the way) didn't help in finding out what had changed with the geocoder. There was no way to get around it. So we started looking for other options. Google has an excellent geocoder which it uses for Google Maps. Unfortunately, its Terms of Service state that to use it your application must be using Google's maps. We create our own maps (needed to make it as editable and interactive as we need), so we had to scratch Google's geocoder off the list.

We found another geocoder that focuses on the Twin Cities metro area, which is where Cyclopath focuses too. So I was delegated the task of changing the code in order to use this new geocoder. After I finally started making some progress, while testing some code, I decided to try an address on the old geocoder that I knew would fail. To my surprise, it gave the correct location. Perplexed, I tried all other addresses that had been problematic in the past few weeks and to my surprise all of them worked. All of the sudden Microsoft's geocoder was working correctly. After all that brainstorming, sending emails, and looking for alternatives we were back to where we were before.

Well, not exactly. We have decided (although with a little less urgency) to finish implementing the new geocoder and leave it as a backup. That way, if Microsoft ever decides to confuse our users again, we'll be ready. Bring it on!

November 10, 2008

Cyclopath Tutorial Recap

For those of you who missed it, here are the five Cyclopath Tutorials I posted:

Tutorial 1: Getting Around
Tutorial 2: Rating and Finding Routes
Tutorial 3: Editing the Map
Tutorial 4: Revisions
Tutorial 5: Watch Regions

Be sure to give Cyclopath a try and share this with any cyclist friends you have!

October 7, 2008

Computer Security With Bible Verses?

One of the reading references for the Computer Security class is an online book called Secure Programming for Linux and Unix HOWTO, by David A. Wheeler.

One aspect of his book that caught my attention was the fact that he starts each section with a verse from the Bible. It doesn't matter if you're a Bible fan or not, you have to admit that he was very clever. Here are some of my favorite book sections and corresponding verse:

Security Requirements
"You will know that your tent is secure; you will take stock of your property and find nothing missing."
Job 5:24 (NIV)

Avoid Buffer Overflow
"An enemy will overrun the land; he will pull down your strongholds and plunder your fortresses."
Amos 3:11 (NIV)

Structure Program Internals and Approach
"Like a city whose walls are broken down is a man who lacks self-control."
Proverbs 25:28 (NIV)

Send Information Back Judiciously
"Do not answer a fool according to his folly, or you will be like him yourself."
Proverbs 26:4 (NIV)

"The words of the wise are like goads, their collected sayings like firmly embedded nails--given by one Shepherd. Be warned, my son, of anything in addition to them. Of making many books there is no end, and much study wearies the body."
Ecclesiastes 12:11-12 (NIV)

"As iron sharpens iron, so one man sharpens another."
Proverbs 27:17 (NIV)

October 1, 2008

Hacking for Grades

No, I'm not doing anything illegal. I am taking a class called Introduction to Computer Security. It's not a topic that I enjoy very much or that I'm good at, but I believe it's essential in order to be a good programmer.

As part of my first homework, I had to attack a badly written version control system in order to gain access to a shell (that interface to your computer that is just a command line) as root (which means I get top privileges and can modify the system even if I was not allowed to initially).

The most interesting exploit to do was a buffer overflow. It was also the toughest. Basically, what this type of attack tries to do is store a very long piece of code into a section in memory that has a smaller size than that of the code's length. When the computer tries to store that very long piece of code, since it doesn't fit, it ends up overwriting other sections of memory. The fun part is that with this type of attack you can make the victim code jump to your own code and execute whatever you want. It's tricky, but it's possible.

After I was done with this assignment, I at least realized that I don't have zero security skills. Looks like the class is being worth it!

September 14, 2008

Technology Efficiency vs. Lazyness

Does technology make us more efficient or lazier?

I don't think there's supposed to be a simple answer to this question. I believe that most of the time technology works as an aid that really does makes us more efficient. But sometimes, we learn to rely just a little too much on technology.

When I worked as an intern at IBM, the men's restroom had a button that opened the entrance door automatically. This was of course here for people who had trouble opening doors. But everybody used it. Everybody. Was it so hard to open the door with their hands?

I am thankful for having hands that can open doors. That's why I never used the button to enter the restrooms.

When do you think we go too far on relying on technology to do our tasks for us?

August 14, 2008

The Ugly Bike Shop

Today we set out to find a seat for a used bike we bought recently. At the first bike shop we went to, the clerk recommended an alternative shop were we could find the needed parts for very cheap. It is a shop operated by volunteers with used parts which are mostly donated. The idea is awesome. A very cheap store run by bike enthusiasts which are, by the way, very helpful.

Unfortunately, the execution was poor. The place was very run down. People were smoking and drinking everywhere. Not a family-friendly place for sure. So, although the idea was great and the people helpful, this was not a place where we felt comfortable. And that drove us away.

How many websites have you seen or heard of on the internet where the idea is great, but the execution just leaves you uncomfortable? The navigation is confusing, the design is poor, the ads are offensive. There are countless ways to make a good idea suck.

Many great products out there are just old ideas with great design. So pay attention not only to how good your idea is, but also to how well it is implemented.

August 11, 2008

Google Makes Mistakes

Today, Gmail suffered a pretty big outage. People all around the world were really affected by this, especially those that use Gmail for business purposes too. I was in the middle of sending an email when this happened. The almighty Google made a mistake.

Of course, the king of outages is Twitter. But you know what? People still use Twitter. And people won't stop using Gmail just because of today's outage. Because these are tools that people value.

Think about what you are working on. Is it something people will value? Then don't be afraid to make mistakes.

I was watching Batman Begins today and the phrase that stuck with me was: "Do you know why we fall? So that we learn to pick ourselves up".

Make mistakes. Pick yourself up. Learn from it. Create something of value.

July 23, 2008

Imagine Cup: Egypt '09!

Registration has now opened for next year's Imagine Cup! And this time the destination for the finals is in Egypt. In this year's competition, I made it to the second round of the Algorithms competition.

This year the competition categories have changed a bit. The categories are: Software Design, Embedded Development, Game Development, Robotics and Algorithms (this is probably where the category I competed in last time got moved to), IT Challenge, Mashup (new), Photo Story, and Short Film.

I'm thinking Robotics and Algorithms, but Mashup and maybe even Photo Story look interesting. Game Development sounds super interesting, but it feels like it will consume quite some time.

If you are a student, be sure to check out the competition! The prizes are great (thousands of dollars) and the possibility of visiting a new country makes it even more appealing. Even if you don't like Microsoft, you have to agree that it's probably one of the coolest things they do.

July 13, 2008

Paper Week: Usability Evaluation Harmful?

Today is the last day of this week of research papers and comic strips. The paper I chose for today is very different from all the others we read in class. It was described by the authors during the conference it was presented at as the most controversial paper of such conference (CHI 2008). Just to give you a quick background, usability evaluations are a very useful type of experiment used extensively in HCI where interfaces and devices are tested with users to find out how “usable? they are. On to the paper then!

Paper: Usability Evaluation Considered Harmful (Some of the Time) (reference at the bottom of this post)

What in the world did they do?

Usability evaluation has become so important in the HCI field that lately it is very hard to publish any research if you don’t do a usability experiment. The authors of this paper argue that although usability evaluation is very useful, it “can be ineffective and even harmful if naively done ‘by rule’ rather than ‘by thought’?. According to the authors, sometimes usability just isn’t what you need.

What’s so cool about that?

This paper is basically a critique. It was called “controversial? because it is going against the currently accepted notions that good HCI research has to have usability experiments.

Did anything worthwhile come out of it?

They came up with various cases where usability evaluation can be harmful. One of these is when prototyping a really innovative idea. Sometimes, new ideas just aren’t ready for users at first. It takes many iterations to arrive at the final, polished version that really does make a difference in users’ lives. If usability testing is done on these early prototypes, a good idea could be quashed before it has a chance to mature. It’s up to the rest of the research community now to decide if they want to do a better assessment of whether this technique is helpful for their experiments or if they just want to keep going at it with usability evaluations, regardless of its usefulness.

Why should I care?

Although many readers of this blog probably won’t be doing usability evaluations in the near future, this affects all of us. The better HCI researchers do their stuff, the better and faster new technology reaches the rest of us.

We can even take this a bit further. How many times do we follow patterns and methods mindlessly just because they have worked before? Or because we are lazy? Or because it’s what others expect us to do? Take some time to assess why it is that you do things the way you do.

Now, on to today’s comic strip. (Click on the image to enlarge it)


Reference: Greenberg, S., Buxton, B., Usability Evaluation Considered Harmful (Some of the Time), Proceedings of the SIGCHI conference on Human Factors in computing systems, April 5-10, 2008, Florence, Italy

July 12, 2008

Paper Week: Alone Together in World of Warcraft

One cool thing about the HCI field is that we can justify playing games as research. It’s all for the noble goal of understanding how humans interact with computers after all. Today’s paper is about such type of research. Don’t forget the comic strip at the end of this post.

Paper: “Alone Together?? Exploring the Social Dynamics of Massively Multiplayer Online Games (reference at the bottom of this post)

What in the world did they do?

The authors of this paper basically played a lot of World of Warcraft. In their spare time, they studied the social interactions between players, relying more on empirical data than on subjective data.

What’s so cool about that?

Getting research done while playing video games is awesome. It’s also interesting to see how people interact with each other in a virtual world.

Did anything worthwhile come out of it?

They found out some interesting stuff while play… while researching World of Warcraft. Games such as World of Warcraft attract players because of their social aspects. But what these researchers found out was that most players play outside of groups for most of their stay in the game. Still, there were some social aspects that attracted players to the game. The authors of the paper described them as the following:

- Interacting with an audience – Reputation plays a big role in this game. Many players just enjoy the fact that they can show off or have an audience during their play. The authors compare this to playing pinball in a crowded arcade, where spectators gather around the machine to observe the best players.
- Being surrounded by others – People simply enjoy the sense of social presence. It’s sort of like hanging out at a café reading a book, where you barely interact with anybody, but you still enjoy being surrounded by people.
- Laughing at and with others – This is the “spectacle? factor. Other people are simply a constant source of entertainment.

So in the end, what the authors concluded was that players of World of Warcraft like to play “alone together?, by themselves but surrounded by others.

Why should I care?

As online communities become more common, it’s helpful for designers of these communities to understand why it is that people want to be surrounded by others. Sometimes it’s for the socializing, but other times, such as with World of Warcraft, the motivations are different. If designers can understand these differences, they can better understand the needs of the users and can design communities that are a better fit to their members.


I just wanted to show one paragraph of their paper that shows just how much effort they put into playing the game:

“We began our study of WoW by observing the game from the inside and started playing right after its launch in November 2004. All authors created a main character and several “alts? (secondary characters on different servers). We picked different character classes to get as broad an overview of the game as possible. We joined guilds, and participated in the community’s regular activities (quests – alone or in groups, guild raids, player-versus-player combat, etc.). This provided us with a rich qualitative background to frame our analyses.?

Without further ado, the comic strip for today. (Click on the image to enlarge it)


Reference: Nicolas Ducheneaut , Nicholas Yee , Eric Nickell , Robert J. Moore, "Alone together?": exploring the social dynamics of massively multiplayer online games, Proceedings of the SIGCHI conference on Human Factors in computing systems, April 22-27, 2006, Montréal, Québec, Canada

July 11, 2008

Paper Week: Direct Video Manipulation

Today’s paper is one of those papers where you just have to say “awesome?. So I hope you enjoy it together with the new comic strip.

Paper: Video Browsing by Direct Manipulation (reference at the bottom of this post)

What in the world did they do?

These guys wrote an application that allows for direct video manipulation. This is a video browser that lets you navigate through the video not only using the traditional timeline, but also by dragging objects along their course of movement throughout the video.

What’s so cool about that?


Did anything worthwhile come out of it?

Their video browser, called DimP (Direct Manipulation Player).

Why should I care?

As online videos become more and more popular, we start encountering more often situations where a video browser like this one might be useful. Maybe we just want to skip to a specific part of a scene (I’ve seen a few launch videos where I just want to get to the part where the rocket/airplane blasts off). Or maybe we just want to study some complicated motions (like dance moves or a pool shot). Either way, simply having an alternative way of browsing a video is definitely useful.

Now, comic strip time! (click on the image to enlarge it)


Reference: Dragicevic, P., Ramos, G., Bibliowicz, J., Nowrouzezahrai, D., Balakrishnan, R., Singh, K. Video Browsing by Direct Manipulation, Proceedings of the SIGCHI conference on Human factors in computing systems, April 05-April 10, 2008, Florence, Italy

July 9, 2008

Paper Week: Designing for Micro-credit Groups in India

This is the third post on papers that I got to read during my HCI class last semester. Each post is accompanied by a new comic strip at the bottom. I chose today’s paper because the style was very different from most of the other papers we read in class. Enjoy!

Paper: Design Studies for a Financial Management System for Micro-credit Groups in Rural India (reference at the bottom of this post)

What in the world did they do?

These guys wanted to create a system to help micro-credit groups in rural India manage their financial aspects. They did a lot of user interviews, prototyping, and user tests to get their design right.

What’s so cool about that?

There are two cool things about this paper. First, they had one big challenge. Many of the potential users for this system were uneducated, hadn’t used or seen a computer before, and some were even illiterate. So their system had to be easy to use for these people.

Second, the way the paper is written is almost like a story. They went through all the steps of their design process. It reminded me of a User Interface Design class I took, where we had to go through user interviews, paper prototypes and usability testing. It was cool to be able to follow these steps in their paper.

Did anything worthwhile come out of it?

Well, they came up with an interesting design that seemed usable. The only problem was that most of these organizations couldn’t afford the computers anyway. I believe the authors went on to try using mobile devices in future research.

Why should I care?

Okay, there are probably not many reasons why you should care about this paper. I’ll give it a try anyway. Even if the resources are not always there yet, I think it is a noble effort to try and bring technology to where it is needed most. Also, I think this paper is probably an interesting read for those of you who wonder what the design process is like for a user interface.

That’s it for today’s paper. On to the comic strip!


Reference: Tapan Parikh , Kaushik Ghosh , Apala Chavan, Design studies for a financial management system for micro-credit groups in rural india, Proceedings of the 2003 conference on Universal usability, November 10-11, 2003, Vancouver, British Columbia, Canada

June 15, 2008

Get Ready For Firefox 3 and Help Set a World Record

This Tuesday, June 17th is Download Day for Firefox 3. Mozilla will be rolling out their newest version of their top-notch browser and is trying to set a world record for most software downloads in 24 hours. I have to admit, I'm excited. Once I started using Firefox, I have never switched back to Internet Explorer. It is an awesome browser. And knowing that a faster, more efficient version is coming out just pumps me up. If you have never tried using Firefox, then this will be the perfect moment to try it out. Go ahead and download it on Tuesday. I'm sure you'll love it. By the way, you can pledge to get Firefox 3 on Tuesday at their site here.

June 13, 2008

A Music Video With a Web Culture Touch

Weezer really seems to get the Internet culture that has been growing in the last couple of years. One of their latest videos has a mashup of various web celebrities and references to many viral videos. How many can you recognize?

[Note: Embedding has been disabled for this video, so the most I can do is link to it. Enjoy!]

June 8, 2008

Awesome Web Apps: Everything Else

There are so many more awesome web apps out there, many of which I don't use yet or only occasionally for now. Here are a few that come to mind:

Friendfeed: Basically ties in all your accounts together and lets you share that with friends. For example, it will notify them every time you post pictures to Flickr, post videos to YouTube or post on your blog. Nowadays, people have so many accounts that many developers are trying to find ways to join them together. This is one of them.

Digg: One of the most popular news aggregators. I use some of its feeds through my Google Reader.

Flickr: Popular picture sharing site. Site that lets you listen to music and recommends new artists to you based on the music that you like.

Besides these, there are many more awesome web apps out there. Which ones do you use that I did not mention this week? What makes it awesome?

June 6, 2008

Awesome Web Apps: The Google Bunch

Google has a whole bunch of awesome web apps. I use many of these daily. Here are just a few of them that you should be using:

Google Reader


Google Reader has become almost as indispensable as email for me. It is the best way to stay up to date with what's happening in the tech world and in the rest of the world. Also a good way to get updates on my favorite webcomics! You can register RSS feeds, share posts with friends, and see friends' shared items. A lot of websites now offer to send notifications via RSS feeds, which you can read with this app. Google Reader is an excellent companion to email.

Google Maps


I don't have to explain why online maps are so helpful. They speak for themselves. But one of the features that I really like about Google Maps is Street View. I'm lucky enough to be living in a city where Street View is supported. It is immensely helpful to be able to see what a street or a turn looks like before getting there.

Google Docs


I started using Google Docs last year for group projects and it proved to be really useful. Being able to work on the same document at the same time with different people is just very efficient. (Plus, it stores all the revisions so that you can go back to an older version if you don't like a recent edit). I now use it not only for group projects, but also for family planning. Awesome tool!

Google Calendar


This one is especially helpful for families. Google Calendar makes it easy to edit and share many calendars. I share my main calendar with my wife and have a second calendar for sharing with classmates usually for group projects. Really easy to use and very convenient for figuring out scheduling stuff.

Google Analytics


If you have a blog, I highly recommend this app. It is an excellent way to track traffic to your blog or site. It gives you detailed information about users, their browsers, their countries, how they got to your site, how much time they spent, etc. That is how I know that most of the repeat visits to this blog come from Minnesota (where I live), New York (where my sister lives), and Puerto Rico (where the rest of my family lives).

There are many more great Google Apps around, such as Picasa for sharing pictures, Google Scholar for searching for academic papers (very useful for grad students), and even YouTube, which is now part of Google. It is no wonder why Google is loved by so many. And the best part, they're all free!

June 5, 2008

Awesome Web Apps: Animoto

This web app really fits the description of "awesome". Animoto let's you make music videos with pictures, but in an amazing way. Just check their sample video when you enter the main page and be amazed.


It takes very little effort on your part to get your video going. Just upload your pictures, upload the song and let the app do the rest. By the way, no two videos are the same! So you can take the same pictures with the same song and get something different every time. When you're done, you can share the link for the video with your friends and in some cases even download it. There is a small fee to pay for full-length videos, but I think it's totally worth it. I encourage you to play around with the 30-second videos. You will definitely enjoy this awesome web app!

June 4, 2008

Awesome Web Apps: LinkedIn

I don't think I've been using LinkedIn long enough to really take advantage of all its features, but it is slowly becoming more useful. It is gradually becoming my online resume. LinkedIn is basically a social network for professional use. You put resume-style information in your profile and add colleagues and friends as contacts. You can recommend contacts, get introduced to new contacts and even look for jobs. Lots of recruiters actually use LinkedIn as a tool for finding capable employees. It is THE social app for professional networking. You can see my public profile at If you're looking for a job, want to have an online resume or just want to expand your professional network, get over there and make a profile. It won't take you long, especially if you have your resume nearby!

June 3, 2008

Awesome Web Apps: Wikipedia

A list of awesome web apps is not complete without Wikipedia. This encyclopedia that can be edited by anyone is becoming the default place to find information on a vast amount of topics. If Wikipedia was printed, it would contain more than 1000 volumes. Check out this picture which represents what Wikipedia would look like in printed form as of August 2007:


A lot of people have questioned the reliability of an Encyclopedia that anyone, not just "experts", can edit. Surprisingly, the quality of work in Wikipedia is very high. There are always users that spam and vandalize the site, but there are even more users ready to fix these actions. Wikipedia is an excellent example of the power of online collaboration and a very useful application too.

June 2, 2008

Awesome Web Apps: Twitter


Although I'm still not completely convinced of its value yet, I include this app because I've been using it frequently. It's basically a more versatile and complete version of Facebook's status updates. Yet it is used for so much more than just letting people know what you're doing. Ideas get communicated and turn viral. Companies use it to see when people talk about them. Other companies use them to keep their customers informed or even for recruiting. Some have even started novels through it one sentence at a time.

The most characteristic feature of Twitter is its 140-character limit on everything you write. This constraint forces users to focus on writing in a short and concise way. Another aspect I have enjoyed about Twitter is finding authors of some of the blogs I read daily and subscribing to their Twitter feeds. It tends to be interesting to see what they have to say.

Twitter is a form a micro-blogging and does not take up much time (unless you feel obliged to share every minuscule detail of your life). So go ahead and give it a try. Maybe after a week you'll still see it as a useless distraction. But maybe after a week, it will become an important communication tool. Try it out!

June 1, 2008

Awesome Web Apps You Should Be Using

This week I'll be mentioning a few web applications that I think all of you should be using. Most of these will be the daily bread of the more tech-savvy readers of this blog, but for the rest of you, I hope you can get something out of this list. I'll be skipping Facebook and Gmail just because I believe they are too essential to have to convince you of their worth. I know there are readers of this blog that don't use them, but I'll just have to deal with you later (especially my sister, tsk tsk).

Today I'll start with a very general and basic web app. And I say general because I'm actually including a lot of related web apps. I'm referring to blogging platforms. There are a bunch of these out there, but some of the most popular are Wordpress and Six Apart (which includes TypePad and MovableType). I think nowadays blogs are becoming more useful tools and not just online journals. Especially if you are working with online communities, blogs provide a place for you to communicate with these online communities and let people know who you are and how you think. For many companies and non-profit organizations, blogs are one of the best ways to keep customers and members informed. And for families, they are a great way to keep in touch. I personally use Movable Type (because it's the one my university provides), but if you're looking for a free blogging platform, try Wordpress or Blogger. Have fun blogging!

May 29, 2008

Back in Minnesota and With a Lot of Facebook Friends

I just got back from the Bahamas yesterday, so it's back to a more regular blogging schedule. I am still starting to work myself into online communities, but at least on Facebook I'm not doing too bad. I just reached 500 friends. And I am proud to say that there are only 6 of them that I do not know personally. Not too bad for a geek such as myself! I hope I can say that someday about the number of daily readers of my blog! Thanks for reading and stay tuned for a themed week coming up soon.

May 20, 2008

The 7 Deadly Sins of Startup Marketing

I mentioned in my Minnebar Report a conference by Curt Prins that I really enjoyed. He talked about seven mistakes that startups tend to make during their early marketing stages. Here are, according to Curt's presentation, the seven deadly sins of startup marketing and what I interpreted from each of them:

1. Target Market Greed
Some people just want to market to everyone. They believe their project is for everyone. And even though this can be a long-term goal, you should probably start with a smaller target group. Focus your project. You will be able to get to more people when you concentrate on a certain audience than when you try to market to all of them.

2. Prospect Gluttony
Even within a target group, trying to market to all of them may be detrimental. It is a better use of resources to focus on a smaller subset of that target group. Remember, even if your product is meant for everybody, you have to start by convincing somebody.

3. Product Pride
Developers just love their software. We love all the neat little features we put in it and just how cool it is. Customers don't really care about your product. They care about themselves. Don't let your product pride get to your head. If your customer doesn't like it, it won't sell.

4. Branding Pride
When starting out, try to build sales, not brands. Bigger companies, many of which have too many products to identify themselves with, can sell brands. Nike can do that. So can Google. But probably not you. At least not at first. Focus on your products. Brands are byproducts. They will grow on their own.

5. Sales Sloth
This one is simple. Do not get lazy about sales. Marketing alone is not enough to keep your company going. Money has to come in somewhere.

6. Impatience
You probably won't be getting in profits what you spent in marketing in one week. It can take months. Usually, it can take a startup from 10 to 18 months to actually start making profits. Meanwhile, don't get impatient.

7. Budget Frugality
Spend neither $1 nor $1M. Spend too little on marketing and nobody will notice your product. Spend too much and run out of money.

Keep these tips in mind if you are working with a startup. They may help save your company from the deadpool!

May 17, 2008

Imagine Cup Second Round Update

Unfortunately, I did not make it to the third round of Imagine Cup's Algorithm Competition. I must admit, I did not dedicate as much time to it as I would have wanted (mostly due to my HCI project). But still, I tried and I had fun. Hopefully next year I will do better. I certainly did a lot better this year than last year. And now that I have taken an advanced algorithms class, I will feel a lot more prepared.

Going a little off-topic, some comments have been getting tagged automatically as junk comments. I have no idea why this has happened with comments that seem normal enough and from people who have commented many times before. So I'm sorry if your comment did not appear right after you submitted it. I will be on the lookout for any other comments that get sent to the junk folder.

May 10, 2008

Minnebar Report

Today, aside from celebrating the second most awesome day of the year (I have to put the wedding anniversary before my birthday now), I had the opportunity to go to Minnebar. What is Minnebar you ask? Minnebar is part of Barcamp, which defines its gatherings as "an ad-hoc gathering born from the desire for people to share and learn in an open environment. It is an intense event with discussions, demos and interaction from participants". It is what some people call an "unconference". Basically anyone can sign up to lead a discussion in whatever topic the see fit (as long as they are technology and design oriented). So, here are my impressions of my first Minnebar.

IMG_6040.JPGI have to admit, I was actually late. Being my birthday today, I had no reason to wake up early, so I got there for the afternoon sessions. The first session I attended was my favorite. Since I have been exploring the startup company option for a while, I decided to go to a session oriented at startups. It was called "7 Deadly Sins of Startup Marketing" and was lead by, I believe a marketing consultant, Curt Prins. Very good advice for when your company is just starting out. I'll probably write another post about it later this week.

IMG_6044.JPGI went to two other sessions. One was about Adobe Illustrator. Basically some tips on how to do some neat effects, although it was hard to see some of the commands he was using from where I was (just three rows back). The third one was about CSS frameworks. Most of the people in those two sessions were design people, specializing in art and graphic design. I guess I realized there that this is one area I also enjoy. (I had a lot of fun working on the design for this blog!).

IMG_6045.JPGAs I was leaving, I stopped by the demo session that was still going on in another room. If I had more time, I would have spent the rest of the afternoon there. There were some really fun demos (one called Scribbles, which had people drawing and mixing other drawings in some fun ways). There was also some attention given to iPhone development (which I think has been taking off after the SDK being released).

IMG_6042.JPGOverall, there were many sessions of very good quality (I'm sure I missed a lot of these). There were some sessions that looked more like student presentations or tutorials, but I don't think this lowered the value of the experience at all. The gathering factor is really great too. There are people exchanging ideas (and business cards) everywhere. But best of all, Minnebar is free! Free sessions, free food, and even free t-shirts. I really enjoyed it and hope to be able to go again next year.

May 7, 2008

Easter Egg: The Book of Mozilla

This week's last easter egg can be found in my favorite web browser: Firefox. From the Firefox browser, simply enter "about:mozilla" into the address bar. You will get a quote that says:

"And so at last the beast fell and the unbelievers rejoiced. But all was not lost, for from the ash rose a great bird. The bird gazed down upon the unbelievers and cast fire and thunder upon them. For the beast had been reborn with its strength renewed, and the followers of Mammon cowered in horror.
From The Book of Mozilla, 7:15 "

In Firefox's quote, "Mammon" actually refers to Internet Explorer and the great bird refers to Mozilla. You can find more information about the analogies and more quotes from the Book of Mozilla in Wikipedia at

I hope you have enjoyed this week of easter eggs. If you have any favorites that I didn't mention, be sure to leave them in the comments!

May 6, 2008

Easter Egg: Bush Hid the Facts

Today's easter egg is a simple, albeit funny, one. To see this easter egg, all you need is Notepad. Open an empty Notepad file and write "Bush hid the facts" (without the quotes). Save it with any name as a .txt file. Then, close it and finally reopen it again. The facts are clearly hidden!

Mahalo's Creative Approach to the Loss of Their Daily Video Blog Host

Mahalo is a website that offers a human-powered search engine. I don't really use it much, but I sometimes enjoy watching their daily video blog (or Vlog), Mahalo Daily. Their host, Veronica Belmont was awesome. Unfortunately for them, Veronica has moved on to new projects (watch her at Tekzilla). Still, I think they have done a great job of dealing with this loss.

The team of Mahalo has been hosting a competition they call "Mahalo Vlog Idol". In a way similar to American Idol, they have been holding auditions for interviewer-wannabes. It's really entertaining to watch all the potential hosts auditioning and watch as the CEO and two other judges decide whether they're good enough. Go take a look at today's episode (the last batch of the first round) and start rooting for someone at

Easter Egg: Matlab Toilet Simulation

That's right. Matlab has a toilet simulation. If you have ever wondered how the flow of water behaves mathematically in a toilet, this is the easter egg for you. Just type "toilet" from the Matlab command line. It comes with various neat graphs and plots. Enjoy!

May 4, 2008

Easter Eggs: Windows Games

These may classify more as cheats than easter eggs, but they're still undocumented and fun to try.

In Windows Solitaire, you can press ALT + SHIFT + 2 to immediately win the game. Similarly, in Freecell, you can press CTRL + SHIFT + F10. A dialog will pop up telling you to abort to win, retry to lose, or ignore to cancel. With this cheat, you can make sure to lose every time if you want! Freecell also has two secret, and I believe impossible, games. In the select game option, type in "-1" or "-2" to try these games out.

Minesweeper also has a very neat cheat, although I'm not sure if it works on every system (works on mine!). When you open Minesweeper, just type "xyzzy" and then hold SHIFT for at least three seconds. Afterwards, whenever you hover the mouse over any of the tiles, the pixel on the upper-left corner of the screen will change to white if there is not a mine and to black if there is. Great way to impress your friends (at least those who are nerdy enough to be impressed by such an act)!

Easter Egg: Matlab's Hallelujah!

This is an audio easter egg. When using Matlab, you can input the following two commands:

- "load handel"
- "sound(y,Fs)"

This will play a short clip of Handel's Hallelujah chorus. This is the sort of easter egg I would put in my application after solving a very nasty bug. Enjoy (if you have Matlab).

May 2, 2008

Easter Egg: Photoshop Merlin

Today's easter egg is found in the very popular Photoshop. To see it you have to open either the Layers, Channels or Paths Window. When I tried it, I did it from the Layers window. Next, you press and hold down the ALT key. With this key held down, click on the options menu button at the top-right of the Layers window. It should look like this:


With the ALT key and the mouse button still pressed down, move over to where it says "Palette Options..." and let go of the mouse button. Behold! Merlin has appeared!


I have no idea what the story is behind this easter egg, but I believe it also appeared in some previous versions of Photoshop.

I was also playing today with yesterday's easter egg, the "why" command in Matlab. My favorite response was "why not?". A deep answer indeed. Tomorrow, we go back to Matlab for another easter egg!

Easter Egg Week

No, I'm not talking about the colored eggs associated with the Easter bunny. Although these eggs I'm referring to are also hidden. This week I want to share a few easter eggs found in some popular software applications. Easter eggs are usually hidden features usually put into the application by the programmers. They tend to be undocumented, non-malicious, and humorous. This week I'll show you some that I like. There are hundreds of easter eggs, so if you're really interested in finding out more, check this easter egg archive at

I'll start today with a personal favorite. If you have ever used Matlab, try writing "why" in the command line. You will get all sorts of random answers to this question, such as "Because Jim told me to" and "Because the programmer wanted it". I bet the programmers asked themselves this question everyday that they went to work.

On a side note, I want to thank everyone for the great feedback on the new design. I more than doubled my record number of daily visits to the blog. I just hope it's not a one-time spike!

April 27, 2008

Ever Wanted to Watch a Web Cartoonist Draw Live?

Some web cartoonists have been experimenting with just that. Using video streaming services, they let you watch as they draw the following day's comic strip. I've already seen two artists trying this out: Scott Kurtz, from PvP, and Mike Krahulik from Penny Arcade. I think what they are doing is simply awesome. Watching a real pro doing all the computer drawing and editing is really useful for aspiring artists such as me. If you're interested, check out their live streams at: for PvP and for Penny Arcade. Of course, they probably won't be drawing at the time you click on the link, but you can still watch some of their recordings. You can also stay tuned to their respective blogs for announcements of drawing schedules. Be sure to give it a try!

As an aside, this is my 99th post. I've got some surprises coming up in my next post, so stay tuned!

April 23, 2008

Giving Twitter a Chance

Twitter has been around for a while now. I have been reluctant to join for a long time. I didn't really see the value of it. But this week, I decided to give it a chance. I will try it out for a few weeks and see how it turns out. There are few reasons for giving it a try.
First, one of my reasons for blogging is to create a social presence. It is in my interest to become an active collaborator and contributor in the web community. For this, I think it is necessary that I establish a social presence. That people can recognize me. It's an important step to building credibility in this particular community.
Second, Twitter seems to be used by many of the authors of blogs I read daily. Even webcomic artists use it. Twitter provides a better way to get a gist of how they think and what it takes to be an influencial person like them in this community.
Third, I just want to see what all the fuss is about. Twitter has become very popular and there must be a reason for that. I may not know what it is exactly, but that is exactly what I intend to find out.
If you're interested in what I have to write in Twitter, check out my Twitter RSS feed at:
What are your thoughts on Twitter?

April 21, 2008

In the Zune...

I couldn't resist the horrible pun in the title. I am just too excited with my early birthday gift. My wife gave me a Zune mp3 player. Now, why not an iPod? The thing is that I specifically asked for a non-iPod mp3 player. I'm still not completely sure why I prefer a Zune to an iPod, but here are some possibilities:

- Everyone has an iPod. It's too common. And when people get stuff just because everyone else has it, then it just makes me want to get it less. I guess growing up in the non-popular crowd does that to you. (There are some exceptions of course, such as food).

- For some reason, I don't like the wheel thingy used for navigation in the iPods. I am happy with clicking up, down, left, and right.

- Some people don't get Zunes just because they love to hate Microsoft. And of course, Microsoft is made for just that. But still, no matter how much we love to hate it, we must admit that many of their products are actually good and that they've made some very neat advances in the field.

- Apple is an awesome company, but for some reason I've never considered myself an Apple guy. That would probably change if I got an iPhone, but meanwhile, I'll just keep being a non-Apple guy.

Regardless of the mixed reviews the Zune has received, I have found it to be a fine piece of hardware. Some features are nonintuitive the first time you use it, but become quite easy to use afterwards. I am happy with my new toy and expect to catch up with WebbAlert, now that I can watch it on the go!

April 17, 2008

Programming on the Wii

One of the cool projects I'm working on this semester is the one for an HCI class I'm taking. For my project, I decided to research interactions using Wiimotes. Together with two classmates, we are investigating the differences between using one Wiimote at a time versus using two Wiimotes at a time. This is analogous to using one hand at a time vs. using two hands in our daily lives. There are some obvious advantages to using two hands. But for different types of tasks, we believe this difference is not the same. There are tasks that really benefit from having the two hands, but there are other tasks where having an extra hand may not add much (drawing, for example). That is why we have set to investigate these differences further.

Next week we hope to be having our user tests. Let's see what comes out of this!

April 1, 2008

April Fools Day: The Web Traditions

As the Internet becomes a more integral part of our culture, it is interesting to see many of our offline customs translate to the online world. Every year it seems online pranks on April 1st keep rising. And the best pranksters tend to be the biggest companies. Here are a few examples of today's funniest online practical jokes:

Google offering search one day in advance
All YouTube featured videos redirecting to Rick Roll (this video)
Virgle project to colonize Mars
Gmail Custom Time
BBC migrating penguins video
Psychics confirm global warming
A great list of fake products by ThinkGeek

Happy April Fools Day!

March 31, 2008

People You May Know

If you haven't heard, Facebook has added a new feature (very much anticipated by me). It is a section called "People You May Know". This feature presents you with a list of Facebook users that have many friends in common with you. Thanks to this feature, I've been able to find at least 20 friends in the last week that I did not know were on Facebook. This feature is still not fleshed out enough, but it's already very useful. Personally, I would like to be able to see a list of all friends of friends. Also, the list always shows a random selection of people, so I end up seeing much of the same people over and over again, while some friends might still be lost out there somewhere. If you have Facebook, be sure to take a look at it. If you haven't, I'm sure you must have at least noticed the sudden increase in friend requests during the last week.

March 27, 2008

Color Pencils

I think this piece at Google Blogoscoped is just hilarious. It is the best review of color pencils yet. Enjoy and add them to your feed aggregator while you're at it!

Color Pencils Reviewed

March 24, 2008

Lego Universe MMO!

I have always thought that Legos are the best toys ever created. I have loved them since I was a little kid and will still play with them if given a chance. I was therefore excited to hear news about a Lego Massive Multiplayer Online Game being produced presently. They will probably have players completing quests to obtain the coolest bricks. One of the most interesting aspects of the game will be the ability to build all sorts of neat structures with your set of bricks. To find out more, check out the article at Wired and the interview report at Kotaku.

March 21, 2008

Marble Adding Machine

I am back in Minnesota. Things are still a bit hectic, since my wife and I moved to a new apartment last Saturday and are still putting everything together. As I struggle to get back to my regular schedule, enjoy this very cool video of a binary adding machine using wood and marbles:

March 13, 2008

Even Google Reader Has Interface Problems

I love Google Reader. I am subscribed to approximately 60 feeds on it and log in a few times per day. But there is one thing about the interface that really bugs me. It is the fact that the "Mark all as read" button is right next to the "Refresh" button. I have found myself (in more than one occasion) clicking accidentally on "Mark all as read" when I really just wanted to refresh the page. Even worse, there is no "Undo" button. So all the items that I was saving up to read later by leaving them unread are suddenly marked as read and lost in between the hundreds of other items. There are two solutions to this problem: either separate the "Mark all as read" button from the "Refresh" button by a considerable amount of space (the easy option) or implement an undo function (the hard, but ultimately more useful, option).

I wonder why Google hasn't stumbled into this usability problem. Maybe they did their user tests with users who had a small number of registered feeds and therefore weren't affected by this as much? Or maybe they are considering us regular users their test users? Nevertheless, I just wish that they fix that soon.

February 27, 2008

Paper Prototyping to the Extreme?

Well, it's actually an ad, not a paper prototype. But this video of gmail is just awesome. And many of the things they do in the video remind me of when I did my paper prototypes last semester. Enjoy!

February 21, 2008

It's Here: Round 2 of Imagine Cup's Algorithm Category


In less than three hours, the second round of the Algorithm category of the Imagine Cup competition will begin. For those of you that are unfamiliar with the competition, it is a worldwide competition hosted by Microsoft with nine technology-related categories. In the Algorithm category, 200 competitors make it to the second round. I was lucky enough to be in that group this year. I have already blogged about my experience during round one here, here, here and here. This second round will prove to be more challenging and require a deeper understanding of programming algorithms. I am lucky enough to be taking an advanced algorithms class this semester. So let's hope I can do a good job in this round too. I will keep posting on my progress throughout this round, which will end on May 2. Wish me luck!

February 18, 2008

My Own Company

Today I went to a conference on financing new technology ventures. It really got me pumped up. Everyday, I like more the idea of working in a small company or, even better, starting my own. I don't think I want to work in a large company or in Academia as soon as I get my PhD. I want to try some of my ideas out for myself and see where they lead me. Of course, the hard part is actually coming up with these ideas. If I am going to take the risk of starting a new company, I better have a good idea. I have four and a half more years to think of something (that is, assuming I finish my PhD in the supposed five years it's supposed to take). Let's see how that goes.

January 16, 2008

My First Attempt at Designing an Easy-to-Maintain Website

This past weekend, my father was "installed" as a pastor of a church back in Puerto Rico. My mom suggested that I make a website for the church as a gift. I took the challenge and during the installation presented my first prototype of the site.

What happens in the case of many non-profit organizations and churches is that they lack people with sufficient technical knowledge to keep a page updated or that the people who do have the knowledge lose interest or focus their attention on other tasks. That is why I tried to make the site as easy to maintain as possible. Since my dad likes blogging, I looked for a blogging service which would also let me modify the design as I pleased. I settled for This way, the site could be kept fresh with new content thanks to its easy-to-use blogging features. I also made the calendar an embedded google calendar, so that activities could be kept up to date without any html editing.

Although the site seems to be working pretty good, I still have some design issues to fix. The problem is I did all my CSS design in Firefox and now (surprise!) the page looks weird in Internet Explorer. Anyway, here is a sneak preview of what the page looks like in Firefox (it's in Spanish by the way):


And here is the slightly screwed-up IE version:


December 23, 2007

6 Ways to Know If Your Email Address is Lame

We have all seen them. Those email addresses that seem to have been put together by throwing Scrabble tiles all around the floor. You just hate it when someone gives you their address and it looks something like (I hope this isn't a real one by the way.) Here are a few ways to tell if your email address falls into the "lame" category:

1. Long Numbers - Any number at all should be used with caution. And the longer they are, the more annoying they get. Just try to remember an e-mail address with a 28463 in it. At my undergraduate university, our e-mail addresses actually had five numbers in it. I still have to think hard to remember the numbers in my own address.

2. Nonsensical Combinations of Letters and Numbers - This applies to addresses with just letters and to addresses with a combination of both letters and numbers. As with long numbers, this makes e-mail addresses very hard to remember. is an example of this. Another common case is when using only your initials for your email address. I could use, but would that make any sense to anyone else?

3. Celebrity References - This does not require much explanation. It is simply lame to have an e-mail like or

4. Extremely Repeated Letters - Do not repeat a letter more than twice unless necessary. Emails like or just make it harder for people to type or even remember your address.

5. Jokes That Were Funny in the Fifth Grade - These may be fun with friends, but they just look lame in email addresses. Just think of how much says about a person.

6. Very Long - Once again, tedious to write and hard to remember. By the time you write your friend or date will have already left.

In this increasingly Web-aware world in which we live in, email addresses are becoming part of our identity. When selecting an address, try to think of what it will say about you. Don't settle for something lame simply because you couldn't think of a good address. Believe me. It will be worth it to put some effort into it.

December 19, 2007

Here Comes Another Bubble: A Web 2.0 Video

I wanted to post this video a few days back, but it was taken down due to some photographer complaining about the use in the video of a picture she had taken. Now it's back as version 1.1. It's a really funny parody of "We Didn't Start the Fire" and another great video representing the Web 2.0 culture. Also, one more song to get stuck in your head (if you need more, see my post on Internet People).

December 13, 2007

Quiz Kong - Final Presentation

Yesterday, my User Interface Design class team finally presented our final implementation of our quiz-making interface. Although there were many parts left unimplemented, I feel satisfied with our work. The following picture is my team with our poster (I'm the one on the left):


And this is a screenshot of the interface. More specifically, the image library and the quiz builder:


I am amazed with how much I have learned in this class, especially with this project. The whole process was very rewarding, even if tiring at times. Some of the things I learned were:

1. Ideas don't tend to translate into code in exactly the same way as in your mind - The end result of this project was quite different than my first idea. Although the basic idea remained the same, many aspects of it changed during our design and implementation process. Just communicating the idea with my partners was enough for them to interpret the details differently and form their own design opinions. This was clearly evident when our team divided into two subgroups and made two entirely different paper prototypes. Another reason for this idea evolution is users. We had to design with our users in mind and that meant sometimes adding new features and removing others. Finally, implementation complexity played a big role in our design decisions. We had only one semester for this project. Therefore, we had to focus on the parts that were really important and eliminate many nice features for which we simply didn't have the time to implement.

2. Paper prototypes are cool - Our first design was a low fidelity prototype on paper. This was a very interesting experience. The reason for this approach was to allow a larger number of design ideas to be tried out and to avoid unneeded implementation and emotional attachments that come as a result of spending too much time on a design. This way, discarding designs and exploring more ideas became much more simple. Also, when we moved to the actual coding part of the project, we were able to focus more on the functional part of the code, since the design was already specified. The paper prototype served as a great guideline for adding all the different components to the project.

3. Evaluations and user testing are important - If it were up to me, I would've started coding directly from our paper prototype. Yet, there were still a lot of obvious (and not-so-obvious) problems that had to be addressed. To find these problems, we did everything from cognitive walk-throughs to heuristic evaluations. Then we took our first implementation and did user testing. We found lots of problems. I am amazed at how many. Buttons were missing, tasks were tedious, and things we thought were obvious confused our users. Thanks to all the testing we did, we were able to address most of these problems.

4. Rash implementation decisions can lead to coding frustrations - One decision that we made before starting to code led to a lot of troublesome problems later on. Initially, we wanted to store quiz information in a database. Due to timing constraints and the fact that we were using an entirely new programming language, we decided to use simple, temporary XML files to store our quiz data. XML files were very easy to use and handle using this programming language. The problem was that we left the files organized as if they were the actual database, which separated quiz information from questions and question groups. With a database, this would be easy to manage, but with XML files, keeping track of all the dependencies became a pain. If only we had just stored each quiz in a separate XML file...

5. I love procrastination nights - We had one night were, after pretending to code for a little while, we decided to just go play video games. It was my favorite project meeting. And, I believe it helped us work on our teamwork too. Every now and then, it is good to just take some time off and procrastinate.

In conclusion, I think what I learned during this project was: ideas change (especially when mixed with other people), paper is still cool (especially for "interface scrapbooking"), evaluations and testing remind you that your designs are not perfect (who would've thought the program needed to be usable too), hasty decisions produce frustrated programmers (I'm still dreading those XML files), and procrastination is good (well, only sometimes...).

December 8, 2007

Comic Strip: Data Mining

As promised, here is an original comic strip to officially end comic strip week. Right now I am working as a research assistant in a data mining lab, so I just had to draw something about it. I hope you enjoy the comic and hope you have enjoyed this special week!


December 6, 2007

Imagine Cup: Round 1 Victory!

Yesterday the second match of the Algorithm competition's first round ended. And I am excited to say that I qualified and am now advancing to the second round. I was able to achieve position 14, which put me on the top 50 of this match. Now, I have to start training for round two, which starts in February. If I do well enough in round two, I get to travel to Paris for the final round! I hope I can make it!


November 29, 2007

Startup Sound Video

Today I have a funny video from Prangstgrüp. For some reason, I just laugh every time I see it. By the way, I am going to try something new for the blog. Beginning in December, I will designate one special week each month which will be dedicated to a particular theme. The first such week will begin this Saturday, December 1st. Since I have been trying to draw comic strips lately, I will dedicate the week to comic strips. Each day during that week I plan to blog about one of the many comic strips I read online. Time permitting, I will upload a new Superficial Intelligence comic strip the last day. Now, enjoy the video!

November 24, 2007

Imagine Cup: Second Match, Second Attempt

On Wednesday afternoon, the second match of the Algorithm competition of Imagine Cup kicked off. I did not qualify for the second round during the first match, so this is my second attempt. So far, I have had a good start. I currently rank at position 13 in the leaderboard. I have to finish this match in the top 50 to get to the next round. I hope I can make it!

November 20, 2007

Quiz Kong - Coded Prototype

Today my User Interface Design class team presented our first version of our coded prototype. I was going to post an entry in the blog yesterday, but I was very busy coding until very late (I went to bed after I started nodding in front of the computer at around 5am). There are still a lot of features and functionality to implement, but it is looking pretty good. It's actually very similar to our paper prototypes. It has been really fun to implement and Adobe Flex has really facilitated a lot of the work. I also used my tablet and pen to draw some of the images that go on the top bar. This is what they look like:


myquizzes.png takequizzes.png

Another part I really like is the "Quiz Builder". This is where the current quiz you are working on is displayed. It shows an outline similar to those you see in applications like PowerPoint. Right now we are using yellow to give it a "banana" look to go with the "Kong" theme. What do you think? Does yellow fit this application?

quiz_builder1.JPG quiz_builder2.JPG

November 16, 2007

Rotating Tetrominoes

For my A.I. class project, my partner and I decided to tackle the game of Tetris. It has proven to be very interesting. You notice there is much more to a game when you actually try to implement it. Tetris seemed so simple to me before this project. One thing I had never noticed in all the Tetris games I have played is how the rotation isn't always the same. In fact, there are at least five different types of rotation. I didn't realize this until my partner and I found out we were both rotating the tetris blocks (or tetrominoes) in different ways. Here are some pictures of rotation systems:



Can you see the differences? If you crave for more Tetris knowledge, check out the tetris wiki at Tetris Concept.

November 14, 2007

A.I. Comic Strip - Poker Part 2

After stalling for a few days, here is my fifth comic strip, which is a continuation of the last one. On a non-related note, my blog has been enjoying a slow, but steady, increase in traffic. I am now at more than 200 visits per month and have reached record numbers for daily visits twice in the last week. Of course, 200 visits per month averages to about only 7 visits per day, but I think this is good enough for a blog that I haven't really promoted much yet. Yesterday I also got a visit from the 25th state to visit my blog. That means I've had visits from half of the states in the US already. Let's see how far I can take this blog. Anyway, enjoy the comic strip!


November 10, 2007

A Minesweeper Movie While I Finish the Next Comic Strip

I have been working on a few projects and homeworks this week and was finally able to start drawing the next comic strip yesterday. I should be able to post it in one or two more days. Meanwhile, I will stall with a very funny fake trailer from This goes to all of us which at some point in our lives have been addicted to Minesweeper:

November 7, 2007

Imagine Cup Update: First Match Results

The first match of the Algorithm competition of Imagine Cup has ended. This is the first of four matches in the first round. To qualify for the second round, you basically have to be in the top 50 of any of the four matches. A total of 200 competitors move on to the second round. Sadly, I only got to the 70th position. Although, this is not bad if you consider that there were more than 1300 participants. Plus, I still got three more matches to try to get into the top 50.

This first round is in the form of a game called Herbert. You have to program a robot to move around a small map and press all white buttons. If it presses a gray button, all the white buttons become unpressed once more. You program the robot's movements using a simple programming language which consists of turning right (r), turning left (l), and going forward (s). You can also build functions that accept parameters like movements and numbers. With clever uses of recursion, you can get the right paths. There is a catch though. You get a maximum number of bytes for each puzzle. So you can't just write a really long solution. And the shorter solution you write, the more points you receive. Here is a screenshot of the puzzle:


I hope to do better in the second match. I want to be able to proudly represent Puerto Rico and also my current university, University of Minnesota. (By the way, I seem to be the only competitor from either place.) Wish me luck!

November 4, 2007

Registering a Domain Name Part II

It seems the domain name I originally wanted was only held for about a week. Thanks to a tip from a college friend, I found that the domain name was once again free and immediately registered it. I now have "" and "" under my name. Now the interesting part will be moving over. I don't think I'll be doing that just yet though. I'll just be brainstorming in my head for now.

November 2, 2007

Registering a Domain Name

A few weeks ago, I was looking into registering "". At the time I wasn't so sure, so I decided to leave it for later. Bad idea. When I looked into it again this week, it had already been registered, probably by these people who register pages searched by others so they can sell them at higher prices. Luckily, "" was still available. Without hesitation, I registered it. I may not use it for now, until I become more consistent at posting, but at least it's mine in case I want to use it.

By the way, I already have an idea for the next comic strip. I haven't been able to draw it because I have been using my spare time to write the three essays required to apply for an NSF graduate research fellowship. Wish me luck in that!

October 30, 2007

Know Your Users

A few days ago, I took my wife to a store which she has grown very fond of called Archiver's. The store sells scrapbooking materials, which I am not really too interested in. At one point, I had to go make a quick stop at the store restrooms. I went to look for the men's restroom, but to my surprise, there wasn't any! There was a women's bathroom and a unisex bathroom. This definitely isn't the standard. Stores usually have men's and women's restrooms or just one unisex bathroom. So why this combination? Because Archiver's knows who they are selling to. They know that the majority (and by a big margin) of their customers are women. This way they can better meet the needs of their real customers.

The same concept applies to user interface design. One major focus in the User Interface Design class I'm taking this semester is users. You do not build an application just to show off all the features that you think are cool. When you build an application, you do it with your users in mind. You may need to scrape off some features that you think should be there, but which are not what your users really need, just like the men's bathroom at Archiver's. Know your users and make sure you build your applications with them in mind. No matter how cool your application is, if nobody wants it, nobody will use it.

October 27, 2007

Ethics in Online Research

Today I went to a very interesting seminar about ethics of research in online communities. I have heard about ethics often before, but never in this context. And it really brings up a lot of very interesting questions. Due to the nature of the internet, it is very hard to get written consent from everyone whose information or conversations you use for research. So, when is it right to use this data? Which data can be considered as public and which as private? For example, is it ethical to join an internet community using a fake profile, interacting with that community, and even recording conversations with members of that community?

I can remember at least three of the guidelines they talked about which I found interesting. One of them was that if you are not interacting with the human subject and only using information that is already publicly available, you shouldn't need their consent to use it. If you can find it using a search engine like Google, chances are it's safe to use. Another thing you have to consider is if there is a chance of harming the other person, either physically or psychologically, by using their data. Finally, one interesting topic they talked about was the reasonable expectations of privacy that a user has when using a site. When users post information to the web, they have an expectation of how private their information will remain. Usually, you expect information posted on sites that require logins and passwords to be less public. But if you leave a comment in a blog, you will expect that information to be more public.

There are many more questions that can be asked about ethics in online research. As in every other subject where ethics are involved, there is always a gray area between what is right and what is wrong. There is a lot of information on this topic on the internet that can help, but in the end it is each of us that must evaluate his or her work and decide whether it is ethical or not. Remember that research is simply about finding ways to help humanity and ethics is about not destroying it in the process.

October 23, 2007

Vending Machines and User Interfaces

For my User Interface Design class we had to get together in groups of two and prepare a presentation where we compared different interfaces that solved the same problem. The presentations were called Hall of Fame/Shame due to the fact that we were supposed to find both examples of bad and good interfaces. My partner and I decided to do ours on vending machines. Very simple machines with a very simple model, but given a bad interface, it is still possible to make mistakes while using them. One thing that I have learned in this class is that often we blame ourselves for making mistakes when using everyday objects, when in fact it is the interface's fault.

The idea for talking about vending machines arose from one such mistake that my wife made. She went to a vending machine and looked up the code for the candy she wanted. It was D10. She then started to press the buttons. She pressed "D". Then "1". Before she could look for "0", another item started dropping. This item was D1. The vending machine actually had a button for "10". This unusual button was the source of my wife's confusion. Needless to say, this machine was our Hall of Shame example.

IMG_5104.JPG IMG_5106.JPG

We then presented a vending machine that fixed the last one's problem. This one has a much more familiar interface for entering numbers. It is very similar to phones and ATMs and there is no button for "10". We classified this machine as Hall of Less Shame:

IMG_5108.JPG IMG_5114.JPG

We then presented our third and final vending machine. This one eliminates basically all possibilities of making mistakes. It is not required to enter any code at all. It is extremely easy to use. This was our Hall of Fame vending machine:


It is amazing how user interfaces for even the simplest of machines can impact user experience so much. Just think of how many times you have tried to push a door which you were supposed to pull. As a programmer, I hope I am able to make things as simple and easy to use as possible. Let's see how that is reflected in the class project!

October 21, 2007

A.I. Comic Strip - Poker

Here it is. Finally! A fourth comic strip! Once again I end up drawing three characters per panel, which is really time-consuming. I have also been experimenting a little with the proportions. It's kind of hard to get them right. This time, my inspiration came from all the attempts to use computers to beat humans at games such as poker. So far, even with their perfect poker faces, computers still find it hard to beat the top human players. Maybe the taunting could actually help...


October 17, 2007

Google Optimized for Search

I found this very funny "interactive tour" while reading Google Blogoscoped. It takes you through the imaginary process of how Google would optimize its home page for search. It's sad to know that many websites actually do this to their home pages.

October 15, 2007

Game AI Development

Recently, I have been reading this excellent blog at I have always been interested in Artificial Intelligence and Game Development. How enjoyable it is for me to find a site that focuses on both! The site is very well organized and has many great articles on different AI topics and how they apply to games. I recommend it to anyone interested in game development. Go ahead and take a look, even if you're not a programmer!

October 7, 2007

Real Life X-Wing

It is part of every geek's dream, myself included, to see an X-Wing Fighter from Star Wars fly in real life. And just this weekend, it may have happened. A team of rocketeers in California was supposed to have launched into flight the first X-Wing yesterday. I still don't know whether the launch was a success or not, but I am almost desperate to know. I am sure a video of the launch will show up in Youtube soon after the news get out. Meanwhile, you can read this article from Gizmodo talking about the project.

October 5, 2007

A.I. Comic Strip - Memory

Here is my third attempt at a comic strip. I found out by drawing this one that it can be very tiresome to draw three characters per panel. I am still trying to narrow down a theme or focus for the comic strip. I am starting out with only A.I. and computer themes for now. I have enough ideas for a while right now. I just wonder how long that will last. Anyway, here is the comic strip (click to enlarge):


October 2, 2007

My Experience as an Intern at IBM

Before starting graduate school, I had the chance to work for IBM as an intern a total of four times. That would give me practically one whole year of IBM intern experience. I know being an intern is not the most glorified position and can never truly show 100% what the company is like, but you do get a feeling for what it is like to work in a “real world? setting.

Big Blue had its ups and downs for me. These are some of the impressions I got from working at IBM in three different locations. They may be limited to the knowledge of a short-term intern, but it is probably the impression many others get too (especially other interns). First, the not-so-good things:

Too big – Being such a big company, it is easy to go about your work never knowing what it is for and who it affects. The company tries to encourage networking and to get people to understand what the rest are doing, but with such a big company, it becomes almost impossible.

Too little application programming – OK, this is more of a personal thing. I am more of a software guy (that explains why I am aiming for a PhD in Computer Science and not Engineering) and IBM is focused more on hardware and middleware. There is software development going on in IBM, but it is not everywhere. And it is especially hard for an intern to get on it. Many of the software development that does go on involves many of IBM’s own operating systems and so requires you to learn a new set of skills just to be able to program. Of course, some interns (like my sister) get lucky and find an internship that consists of building GUIs.

Being bored – This happens mostly to interns. You sometimes have nothing to do. Not just because of not having enough work, as is the case with some internships, but because getting all the required permissions to work on your tasks can take so much time. During my last internship, I had very interesting tasks, but was sometimes stuck for days waiting for permissions to be set and tools to be installed so I could work on a Linux machine.

I think that is all for the not-so-good parts. Now for the things I enjoyed at IBM:

The culture – IBM is a place where you can feel comfortable working. When I was there, I felt like I was working for the good guys. IBM seemed to me like a company that really pursues values and integrity. They promote diversity and do their best to let you know it. I actually got to IBM through a hiring event aimed at minorities. Also, I may just be very lucky, but all four bosses I had seemed like the nicest bosses on Earth. They were excellent at managing and making sure I felt welcome. I never had any problem at all with any of them.

Too big – I mentioned this as one of the not-so-good aspects of IBM, but it is also one of its virtues. Being such a well-established and varied company, there is plenty of opportunity for growth within the company and to work in a variety of projects and locations.

Speed Teams – One of my favorite internship experiences was being part of a Speed Team. This consisted of working on a project with a team of only interns. You get to work on a fun project and actually tackle it with people of similar skill levels. The networking I got from that experience was invaluable.

Foosball – During my third internship, when I was part of the Speed Team, I learned one of the best team-building exercises ever. It comes in the form of a game called foosball. It was my first time playing, but by the end of the summer I felt like a pro (only a feeling of course, I could still get beaten by a 10-year old). My team took a break every day during the afternoon to play foosball for a little while. I sure missed it during my last internship.

I really enjoyed all four of my internships at IBM. I felt comfortable and proud to be a part of the company. I also feel like I grew up a little in every internship. Still, I don’t see myself in the future doing what I was doing or what my teammates were doing for a living. I need something more exciting and that can maybe impact the rest of the world a little more directly, not through a piece of code that goes in a program that is part of an operating system that is used by a company that develops tools that finally impact the world. I guess that is why I decided to go to graduate school. I want to build a better set of skills so I can decide what I want to do for the world. IBM was part of my training grounds for whatever I will be able to accomplish in the future. So, if you are considering a job at IBM, give it a shot. You may not decide to stay there forever, but you will surely gain something valuable from the experience.

September 30, 2007

Quiz Kong

I am taking a very interesting class this semester called User Interface Design. Two thirds of the class grade consist of a semester-long team project. For this project, we get to design or redesign a user interface for an application that we think needs improvement or for a new application. My team is working on a quiz maker that focuses on quizzes that use images. Our goal is to make image quiz making as smooth and easy as possible. We decided to name the application Quiz Kong, as a reference to the popular but heavily spammed quiz-making website Quizilla. This time, we're rooting for the Kong to win.

September 28, 2007

Imagine a World Where Technology is an Ally of the Planet

That is the theme of this year's Imagine Cup, an international competition hosted by Microsoft. This extremely fun and competitive competition has nine categories in which any student can compete. They are Software Design, Embedded Development, Game Development, Project Hoshimi Programming Battle, IT Challenge, Algorithm, Photography, Short Film, and Interface Design. Of course, this is all a way for Microsoft to get students to use their products and programming languages, but I must say it is very effective. Even I, a heavy Java user, want to try and at least get to the finals, which they always host at a different country. Last year they went to South Korea. This year the destination is Paris, France. I will try my luck once more in the Algorithm category and maybe try the Interface Design competition. So, if you are a student, have an idea for a program or game that could help the environment in any way, and want to try and win some very nice prizes, don't miss out on this opportunity. Register now! It's completely free! I will be sure to post on my progress in the competition and write about my experience this year. Wish me luck!

September 25, 2007

Facebook Off - The Movie

This is one movie I would love to see. They did a great job with this trailer. It makes me think. How much of our social life do we put on stake on the web? Somebody stealing your identity on Facebook could actually get you into a whole lot of trouble. That is the irony of the Internet these days. We are demanding better security and more privacy, but at the same time putting all our information on display. Where is the happy medium?

September 23, 2007

A.I. Comic Strip - Search

Here is my second comic strip. This time it is about search, one very important and broad topic in artificial intelligence. It took me some time to get the character to look good enough sideways. I hate having to draw them sideways, but if they're using a computer, the characters usually look better that way. Enjoy!


September 20, 2007

Big Guys, Humble Beginnings

A few days ago, the TechCrunch40 Conference took place. Of course, I wasn't there. But I've been keeping track through the TechCrunch blog. One of the most interesting sessions I believe was a panel titled "Humble Beginnings". It featured Marc Andreesen, co-founder of Netscape, David Filo, co-founder of Yahoo, and Chad Hurley, co-founder of YouTube. This article gives a summary (almost a transcript actually) of the session. It's great to know how the big guys worked their way from simple ideas to greatly successful companies. It gives hope to the rest of us.

September 18, 2007

With Great Power, Comes Great Confusion

I just finished writing my first two programs in LISP for my Artificial Intelligence class. The same functions would have taken me probably about an hour in Java. But instead, it took me a few days and whole lot of hours to get them working in LISP. The problem isn't that LISP is a bad language, but that my knowledge of it was horrible. I say "was" because I believe I have improved with this assignment. LISP is actually a very flexible and powerful language. And a very good one to know if you are interested in Artificial Intelligence. But if you are used to procedural languages like I am, your first few tries with the language may probably be filled with confusion and frustration. I wish good luck to all of those who dare embark in the journey of LISP.

September 16, 2007

A.I. Comic Strip

Here is my attempt at a comic strip. If you haven't heard of Turing's test, it is a very famous test in Artificial Intelligence where a user has to be able to tell if the other user he is chatting with is a computer or a human. If a computer can fool the user into believing it's a human, then that computer (i.e., the A.I. algorithm) passes the test. Let me know what you think of the comic strip.


September 14, 2007

Internet People

I came upon this video today that embodies many of the internet crazes that have been so popular in the past few years. Try to see how many you can recognize and then check out the cheat sheet here (at the bottom of the page). I already have the song stuck in my head.

September 11, 2007

I Think I'm Addicted to Google Reader

I think I may have become addicted to the popular feed aggregator Google Reader. I have gotten to the point where I cannot keep up with new entries and have to start deciding which ones to skip. Of course, I am nothing like the geniuses who can handle hundreds of new entries a day. But I have read enough to start feeling compelled to share my own perspective about many of the topics I read daily.

That is why I have started this new blog. It is my first experiment with a blog in English, so I don't expect to see any fancy words often (except maybe "quixotic" simply because it sounds cool). This blog may also prove to be an interesting insight to the life and mind of a PhD student (check the About Me page!).

To start off with something interesting, I will give a list of some of my favorite blogs to read, because everyone loves lists:

Read/WriteWeb - One of my favorites. It's an awesome source of information for web 2.0 development news.

Smashing Magazine - Lots of great tips on web design and development.

TechCrunch - More internet-related news!

WebbAlert - Great videocast with the latest tech news hosted by Morgan Webb (also a host of X-Play).

Worse Than Failure - A fun blog for programmers to read featuring many of those not-so-proud moments in the programming world.

The Dilbert Blog - I may not agree with everything he writes, but definitely worth a read. He is funny and does not simply conform with the way the rest of the world thinks.

Basic Instructions - One of my favorite comic strips (I will probably write one of these days about the other four or five).

Seth's Blog - I have not been able to read any of his books yet, but I have seen some of his seminars on the web (which are excellent) and his blog posts are always interesting and thought-provoking.

Of course, these are not the only blogs I read, but are among the best and worth the look. Enjoy!