Monthly Archive for April, 2008

In leiu of doing anything remotely useful today…

I managed to get Linux working on my laptop!

ScreenshotLinuxDesktop

I’ll be sure to go into greater detail in a later post.

The Future of Social Networking–Coming Soon

socializingDay after day, countless individuals spend their time on social networking sites, whether they be Facebook, MySpace, or even FaceSpace.  Actually, especially FaceSpace.  That aside, given their addictive nature, there’s evidently quite a bit of money to be made in social networking ventures, particularly from advertising.  This, of course, leads me to the only possible conclusion: I should be getting in on this!  But how can I infiltrate an already saturated market?

Before answering this question, let us examine another internet phenomenon: Nigerian scam emails.  Here’s a heart-wrenching excerpt from one sent to me:

BEFORE I START, I MUST FIRST APOLOGIZE FOR THIS UNSOLICITED MAIL TO YOU, I AM AWARE THAT THIS IS CERTAINLY AN UNCONVENTIONAL APPROACH TO STARTING A RELATIONSHIP, BUT AS TIME GOES ON YOU WILL REALIZE THE NEED FOR MY ACTION.

(…)

PLEASE GIVE ME YOUR CONFIDENTAIL PHONE/FAX NUMBERS SO THAT I CAN FAX TO YOU ALL THE CORRESPONDENCE BETWEEN THE BANK AND ME.

Starting a relationship?  This sounds like social networking material!  But confidential phone and fax numbers?  Surely they don’t belong in a social network!  Or do they?

Welcome to the Numerical Network

Imagine it: you’ve always been searching, waiting, for that someone to come along.  But how can you find them?  Search for similar interests?  Go out and talk to people?  What if you hate talking and have no interests?  Just enter your name, phone number, fax number, social security number, credit card numbers, bank account numbers, and anything else you can think of, and let the computer take over.  You’ll be with that numerically-similar person of your dreams in no time!

The use-cases don’t end there, however.  What if you’re a number theorist who has a list of their favorite numbers, and wants to share it with the world?  Or what if you’re a lonely math student looking for someone who’s favorite number is 7.5?

And there you have it.  The future of social networking.  Coming this summer.

Sonny–The Best Flash Game Ever!

I would now like to take a break from long-winded posts to point out Sonny, an excellent Flash game.  In fact, I’d say it’s one of the best I’ve played; not only does it have an engaging plotline (You play as a zombie, trying to uncover the mystery of your past), but its production values are top-notch.  (It’s not every day you see a Flash game with voice acting.)

Screenshot

Well, what are you waiting for?  Start wasting time!

The Road Less Traveled

In retrospect, I probably shouldn’t have let Robert Frost navigate.

road less travelled

Failed Game Systems That I Own For Some Reason, Part 1: The Game.com

image Back in 1997, Tiger Electronics, known primarily for Furbys and those cheesy electronic handhelds with painted-on LCDs, decided to attempt to expand its product line and release a true competitor to the Nintendo Game Boy, which reigned supreme in the handheld market at the time.  That product was called the Game.com.

The Game.com shared many similarities to the Game Boy of its time, such as a low-contrast grayscale screen, games on cartridges, though unlike its competitor, featured two cartridge slots.  However, the Game.com also offered an array of unique and rather interesting features which its competitor lacked: a touchscreen, PIM functions, built-in solitaire, and, perhaps most interestingly, Internet connectivity.

The touchscreen, for one, allowed for a variety of decidedly un-Game Boy-like games, such as Lights Out, a puzzle game, and Tiger Casino, a generic casino game.  The touchscreen also added the ability to type on an on-screen keyboard, which featured prominently in the system’s built-in address book and calendar functions, and the Game.com Internet cartridge.

imageInternet connectivity on the Game.com came in the form of two cartridges (sold separately): Tiger Web Link, and Game.com Internet.  The former, Tiger Web Link, served a single purpose: once inserted, the Game.com could be connected to the a Windows PC’s serial port, and high scores from select games would be uploaded to the Game.com website.  (Something many Nintendo DS owners are familiar with today.)  The latter, Game.com Internet, presented an even stranger user experience.  The package came with both a cable that allowed the user to connect the Game.com system to a serial modem, and a cartridge featuring a terminal emulator.  Provided that your dial-up provider gave you UNIX-like shell access (or you paid for their overpriced Internet service provider that did), could allow you to go on the Internet with Lynx, or even check your email with Pine!

Despite these features, the Game.com was a complete flop, only selling about 300,000 units (compared to, for example, the original Game Boy, which sold 118.7 million units during its lifetime).  So, why did it fail?

While the Game.com did indeed come with an impressive array of features, many of them were implemented very poorly.  For example, take the touch screen, which was extremely low resolution (12×10, as opposed to the screen’s 192×160 screen).  Or take the sound system, which, while notable for its ability to play PCM sound effects, couldn’t play more than one simultaneous instrument for the system’s characteristically bad music.  The Internet cartridge, too, featured a whole host of issues.   First of all, to use it, it not only  required a working knowledge of a UNIX shell, but also could not display more than half of the screen at a time.  (The Game.com’s screen was only 40 characters wide at its smallest font, whereas a terminal normally uses 80).  The system was also extremely unstable; crashes were extremely commonplace, not only during games, but also in the built-in software.

Despite all this, perhaps the most significant issue of all lay within the games themselves.  Despite Tiger’s marketing claim that the system featured “More games that you people have brain cells!”, only about 20 games were ever released, many of which weren’t even very good.  Oddly, Tiger refused to release its SDK during the lifetime of the system, choosing instead to develop all games in-house, an approach that, evidently, detracted both from the quality and quantity of the games.

When I asked from a Game.com in the months leading up to Christmas 1998, I thought it seemed much better than the Game Boy.  (The Internet cartridge, in particular, piqued my interest.)  However, as months went by without any new game releases, I began to lose hope.  I still have my Game.com, along with half of all the games that ever came out for it, and perhaps, one day, I’ll play Monopoly on it once again.

Facebook Lexicon–The Hip and Happening Way to Graph the Internet

Facebook, everyone’s favorite social networking site, added a new feature, Lexicon!  With it, you can view graphs of how often a specified word or phrase is used in wall posts, messages, and the like.  You can even compare graphs against each other!  Now, without further rambling, let’s move on to what we’ve all been waiting for: the graphs!

Let’s start with “happy birthday.”  Note that no one was born on February 29th.

image

How about something more morose…so who died on January 22nd, anyway?

image

And finally, one suggested by Facebook.  Note the two spikes on December 31st and January 1st.

image

The Traveling Salesman Problem

imageYou may have already heard of the traveling salesman problem.  Basically, the idea is that you are an extremely obsessive traveling salesman with a map of cities connected by roads, and your job is to determine the best path that hits every city only once and leaves you back at the starting point.  Also, you’re a robot.

The easiest to write program that would solve the problem would check every possible route, and then pick the shortest one.  Of course, that’d be kind of slow.  Like, O(n!) slow.  (Meaning that, for every additional city you add, it will take the total number of cities times as long to finish.)

imageLuckily, there are a variety of better ways to do this.  However, instead of dwelling on these, let us move on to what is, ostensibly, the most important factor of all: the problem’s relevance to modern society.

Let’s face it: traveling salesmen are a thing of the past, like record players or 1972.  Therefore, I propose re-writing the narrative of the problem to the traveling terrorist problem, in which the salesman, now a multi-national terrorist organization, must strive to destroy each city as quickly as possible, without revisiting any, in an effort to avoid the authorities.  As the programmer, it’s your job to find out what route they will take BEFORE ITS TOO LATE.

Think about it: which would you rather be doing–helping some salesman peddle his low quality, probably counterfeit, goods, or FIGHTING EVIL BY PREDICTING ITS OPTIMAL ROUTE?

That’s what I thought.

Facebook Instant Messaging–The Next Generation in Staying Connected?

imageRecently, a new statically-positioned grey bar appeared at the bottom of my Facebook screen!  While static grey bars are all the rage these days, this one had a purpose–it was the interface for the new Facebook instant messaging system that’s currently being rolled out!  (Apparently, not everyone has it yet, limiting its usefulness and the quality of my screenshots somewhat.)

The system, which looks very similar to the Gmail chat interface, allows you to chat in real-time with other Facebook users who happen to be online.  Users’ current status messages are shown below their names, and a a user’s current published activities (wall posts, etc.) appear in the chat window as they occur.image  Additionally, the bar provides a new interface to the Facebook notification system; new notifications (messages in your inbox, friend requests, and the like) appear in the bottom right corner of the screen.

At first, such a utility might seem like a nuisance, and, worse, an invasion of privacy.  But, like the news-feed and mini-feed, it shows no more information that one could already access via browsing Facebook.  (Indeed, for the last year or so, a user’s online status has been available on their profile, unless explicitly disabled.)

The chat presents an even more interesting concept–while instant messaging has been around for quite some time now, Facebook’s system allows you to instant message those who don’t use conventional IM services, or perhaps are just acquaintances.  While this could present an annoyance for those who don’t want to be bothered (don’t worry, there’s a setting to disable it in the privacy settings), it seems that it generally, could make keeping in touch easier and more efficient than ever before.

Indeed, the new Facebook notification bar/instant messaging tool promises to become the WAVE OF THE FUTURE!

iPhone vs. iPod Touch: Which to buy?

Now that I’ve sold my old iBook, it’s time to waste some money!  And what better way to waste money than to buy Apple products?

As someone who is very good at selecting none but the most successful portable devices (I have a both a Cybiko AND a Game.com), I feel that the time has come to buy another useless electronic gadget!  With that in mind, I’m currently looking at either buying an iPhone or iPod Touch.  Since I plan to jailbreak either device, the software would end up completely on-par, regardless of which product I bought.  As such, the differences come down to two factors: the hardware, and the price.

Both the iPhone and the iPod Touch can function as basic PDAs with standard PIM functions, in addition to more advanced features such as music and video playback, and the Internet via Wi-Fi.  In addition to everything included with the iPod Touch, the iPhone, at an additional cost of $100, offers basic phone functionality, an internal speaker and microphone, and a camera.

So which to get?

Right now, I use a Motorola v330.  It’s been good and durable, and has only broken once, at which point I was able replace it with an identical phone I got at a yard sale for $0.50.  I’m pretty sure that with an iPhone, a $0.50 would be somewhat hard to come by.  While I like the idea of a phone that can do everything a PDA can do, I’m a bit wary about carrying such a fragile device with me everywhere, thanks to me tendency to…you know…drop things.  I also like the external speaker on the iPhone.  I mean, how are you supposed to watch YouTube properly without it!?

According to several sources, the 3G iPhone is coming out this June.  While 3G functionality isn’t something I particularly care about (I use T-mobile pay as you go, which A. doesn’t come with access to the internet and B. T-mobile doesn’t have a 3G network, anyway), a new iPhone means something else: all the early adopters will sell their old 2.5G phones, and the prices will plummet!  Maybe!

So should I get an iPod Touch now, or wait, and get an iPhone?

Instead of offering a real conclusion, I think I’ll just wait until June, see what happens, and decide then!

Why Linux Will Never Succeed on the Desktop

lycoris1 Nearly five years ago, I installed my first Linux distribution: Lycoris Desktop/LX, a “for desktops” distribution that attempted to copy the look and feel of the then-recently released Windows XP.  While I found it interesting, I ultimately switched back to Windows, as Lycoris didn’t provide a very good, in Microsoft marketing speak, “user experience”; it was ugly compared to XP and lacked support for window alpha channels (causing such effects as menu fades to look fake and unconvincing), I had to fight with it for hours to change the “default browser” to Firebird, as it had no unified default browser setting as windows did, installing software was essentially impossible, and the list went on.  (Now, to be fair, Lycoris was very much outdated even by 2003 standards; it still used KDE 2 while every other major distribution had already moved to version 3, and its libraries were so ancient that no package would install.)

Fast forward to one year later: having installed and used various Linux distributions on and off in the time (though still sticking with Windows XP as my primary OS), I had become much more well-versed in the ways of Linux, and felt it was time to put my newfound knowledge to some use: I decided to set up a Linux distribution as the primary operating system on my family computer.  The purpose of this endeavor was to leave Linux on the computer for a week and evaluate its performance in an article I was writing for my high school newspaper.  For the distribution, I decided to use Xandros, what I viewed (and still view) as one of the best of the desktop-oriented distributions available at the time.

The Xandros File Manager!Xandros performed quite well on the computer; for example, it proved itself capable of working with certain hardware devices without any driver installation, which Windows would require the manufacturer’s drivers.  However, in one particular area, it fell flat: scanning.  While its included Xsane application was functional, it didn’t work particularly well with our scanner and frequently returned very poor quality scans.  With a week having gone by, I switched the computer back to XP, concluding in my article that Linux, while itself ready for the desktop, wouldn’t truly reach that stage until hardware manufacturers would pay more attention to it and release official drivers for Linux.

This brings us to the present day: desktop-oriented Linux distributions such as Ubuntu are becoming progressively more refined, Windows Vista is in many ways a step backward from its predecessor, and relatively inexpensive subnotebooks such as the ASUS Eee PC are shipping with Linux as their default operating system; the stage seems set for Linux to rocket to center stage at last.  Or does it?

My original conclusion, while in a sense correct, was sadly quite naive.  Indeed, hardware manufacturers were not providing the support to Linux that they devoted to Windows, and to a lesser extent, Mac OS X, but as I now know, they could not, and still cannot, provide this support even if they wished to.

For Windows, Microsoft provides several sets of standardized APIs that provide both binary and source compatibility with previous and future versions of Windows.  For example, Realtek’s WDM drivers will work on any version of Windows from 98 to 2003.  (While WDM audio drivers still do work on Vista, the rewritten audio stack requires newer drivers to work fully.)  Likewise, Mac OS X provides some binary compatibility with drivers between versions.  Linux, however, does not provide any driver binary compatibility between even minor releases, and instead takes a different approach.

On Linux, most hardware drivers are not provided as separate installs, but are present in the kernel source tree itself.  This provides a few obvious benefits: namely, that Linux provides extremely good out-of-the-box hardware compatibility.  (In fact, I’d argue that today’s premier Linux distributions work better immediately after install than Windows.)  Additionally, all drivers included must be open source, and therefore can be supported by the kernel developers.  (This can be especially useful for hardware made my companies having gone out of business.)  Despite the benefits, this system presents several major flaws.

If I buy myself a USB sound card, I expect it to work with my computer, either A) out of the box, or B) after the installation of some software that came with it.  On Windows or Mac OS X, such things frequently won’t work fully out of the box, but run fine after some kind of driver installation.  On Linux, if your hardware doesn’t work out of the box, that’s it; your best bet is to return the item, buy a different one, and hope it works.

Now, you’re probably thinking “Well, that fault doesn’t lie with Linux; if manufacturers would just support the platform, this problem wouldn’t exist.”  Granted, to a degree, this statement is true: if manufacturers would write Linux drivers, open-source them (many don’t wish to do this), and contribute them to the kernel tree, then Linux would be compatible with that hardware.  Eventually.  Keep in mind that a submitted driver probably won’t appear in mainstream distributions for a reasonable amount of time.

So let’s say I’m a manufacturer, and I wish to support my new hardware on Windows, Mac OS X, and Linux.  Users who install my new product on Windows or Mac OS X will be able to install drivers from a CD and start using my product immediately.  Because, however, Linux provides no support for installable drivers, my hardware will remain completely inaccessible to Linux users until I submit my driver to the kernel tree, it gets accepted, a new stable release of the kernel comes out featuring my driver, and users upgrade.  So much for being cutting edge…

Ubuntu 8.04 Beta running on my laptopI recently installed the lastest Ubuntu beta on my Vista laptop, and it works much better than the stock OS; if a couple of remaining hardware issues are fixed in the final version, I may switch).  Considering how refined the Linux user experience is today  it really seems a shame that the stubbornness of the developers is, essentially, preventing it from ever truly going mainstream.