Wednesday, December 31, 2008

Happy New Year!

Hope everyone have a happy new year!

It's been a long and tough 2008 so I'm looking forward to 2009. However, in the first few hours of the new year, I'm doing the same thing I was doing in 2008...

Monday, December 29, 2008

There's still a need for professional journalists.

I like reading, watching and listening to the news. In addition, I also like to read some people's blogs. There's been a lot of talk about how the newspaper industry is failing as readership is dropping. While this is an unfortunate reality that I hope the industry can reverse, what really annoys me is when people say how on-line blogs are replacing newspapers in providing news.

Blogs are mainly editorials and not subject to the objectivity of journalism. Even a lot of web sites are editorial forums and not news providers, but tries to project themselves as if they are. Two recent examples highlighted this for me: OSNews and Ars Technica. People might mistaken them as providers of news, but honestly they are subjective editorials on news.

OSNews pretty much had to openly admit it (or remind their readers) as such in their post which basically said that the only way they can get people to submit articles is by removing objectivity. If an actual news establishment did such a thing then it spells the end of journalism.

Ars also clearly indicated that they are mainly the provider of commentary on news in their article which so clearly shows the author's opinion in his choice of wording that I hope people realizes that we can't depend on just any person or business who can put up a site for news.

And this is just my personal opinion.

Tuesday, December 23, 2008

Syncing Lightning with Google Calendar

Thunderbird Lightning 64bit

Looking in the contrib directory on mozilla will often show pre-built binaries for different OSs that isn't listed on the web site.

Syncing Lightning with Yahoo calendar

Friday, November 28, 2008

OSX still less mature then BSD, Linux, Windows

There's something to be said about Windows being the most used OS on the planet even if it is not the best OS out there. While Unix and it's variants (BSD, Linux, etc.) are the most developer friendly OS, the sheer number of users for Windows mean that there are a lot of developer that write applications for it. This include programmer's editors which is a class of software that I've always been interested in.

When I started to use OSX, one of the first things I looked for is a good editor. On Windows, the sheer number of choices (and there are many good ones) can be overwhelming. The competition on the Windows world is fierce which has helped to weed out the weak. What I found on OSX was that the most mature editors were the result of Apple using the BSD kernel and thus able run Unix editors such as EMACS or VIM and when it came to advanced IDEs, they were ports from other platforms such as Eclipse.

There are some native-OSX editors such as TextMate (commercial), Smultron (open source) and BBEdit/TextWranger (commercial), but while its users tout how advance they are, they are still behind what is available to Windows programmers. Features such as pretty printing, snipplets, split-screen views of files, etc. are either non-existence or just starting to get introduced to the Mac world even though they've been there since the days of DOS. It can be argued that those feature aren't needed and I'll admit that a lot of features I only use once-in-a-while. However, the decades of work that has been put into them has allowed them to be part of editors without being intrusive and when I need them they are there.

As a Windows/DOS and Linux user, I've been spoiled by these features and it surprises me that Mac developers not only do not have these, but that they don't even know they exist.

For those interested:






    Eclipse (IDE)


I'm not sure yet... I'm going to give Smultron a try and I've been using TextMate on-and-off at work.

Eclipse IDE

Disable Font Smoothing in Firefox on OSX

On OSX, I disabled font-smoothing and switched to using the Tahoma font using TinkerTool because they look clearer to my eyes. In order for Firefox to follow the system setting, you have to set gfx.color_management.enabled to 'true' in about:config.

I think this setting is for Firefox's advance color management feature which means it will effect Firefox's performance a little bit when enabled.

Sunday, November 23, 2008

Desktop calendars

Previously, I talked how I put a calendar on my OSX desktop using GeekTool and the standard UNIX cal program. When my wife saw it, she wanted the same thing on her WinXP desktop and since I'm now starting to use Linux as a desktop I thought I'd do the same thing for it also.


Using, GeekTools, I simply had it make 2 shell command calls. The first one is to 'cal' which will return the current calendar month. Next, I had it call another shell command to a script I wrote that says:


nextmonth=`date '+%m'`
year=`date '+%Y'`
nextmonth=`echo $nextmonth|sed 's/^0*//'`
if [ $nextmonth -eq 12 ]; then
year=$((year + 1))
cal $((nextmonth += 1)) $year




To do the same thing on WinXP, you need Samurize and Cygwin. Samurize provides the ability to display output on the desktop like GeekTools and Cygwin will provide the cal program. When installing Cygwin, however, make sure to select the package linux-util because it is not installed by default.

A slight modification to the script is needed in order to run a shell script from outside of Cygwin (such as from the command prompt or "run" from the start menu):

nextmonth=`date '+%m'`
year=`date '+%Y'`
nextmonth=`echo $nextmonth|sed 's/^0*//'`
if [ $nextmonth -eq 12 ]; then
year=$((year + 1))
cal $((nextmonth += 1)) $year




On Linux, the program to use is Conky. Create the following .conkyrc file in your home directory:

# .conkyrc

text_buffer_size 512

update_interval 1.0

double_buffer yes
own_window yes
own_window_hints undecorated, sticky, below, skip_pager, skip_taskbar
own_window_transparent yes

use_xft yes
xftfont Bitstream Vera Sans:size=8

maximum_width 512
default_color white
alignment top_left
gap_x 10

uppercase no

${font monospace:size=8}${execi 8600 cal}
${font monospace:size=8}${execi 8600}


Wednesday, November 19, 2008

update VMWare kernel modules

Reminder to myself that when installing a new kernel version to run:

sudo /usr/bin/

so that the kernel modules are recompiled for the new version of the kernel.

Also noticed today that linva and 2 other repositories got merged into what is now called

Monday, November 17, 2008

Shortcut key to lock screen on MBP/OSX

In Windows, the ctrl-alt-delete key combo will lock the screen. I was surprised that OSX didn't have any key combination to do something similar. I guess Apple expected that people will only want to use a mouse...? Anyway, I find myself wanting to be able to quickly lock my screen when I move away so this is how I did it:

Create an run-only script with the Script Editor with the following:

tell application "ScreenSaverEngine"
end tell

Set an Quicksilver trigger to run this script and map the shortcut key to what you like (I used ctrl-command-delete).

If you have set the screen saver to require a password, you now have an keyboard short cut to locking your screen.

Saturday, November 15, 2008

Macports + apache2

My install of Macports didn't update the path to the new /opt/... directories so I had to add that myself. I then tried to install apache2 but that failed on compiling until I installed macports' gmake and then did a 'sudo port clean sqlite3'.

This allowed me to complete getting apache2 installed on the MBP.

First experience with the MBP (late 2008)

This weekend I had a chance to sit down and do a little more with the new MBP. This is the late-2008 model with the unibody design. I got the 2.5GHz version, 4GB memory and 320GB 7200RPM HDD to replace my current 3GHz Pentium 4 desktop.

There were two things about the new MBP that I was worried about. First, the keyboard didn't feel as good as the previous MBP keyboard. However, since I don't plan on using the built-in keyboard most of the time (I use an external IBM Model-M keyboard) this isn't as big of a deal. When I do need to move around with the notebook, I can live with the keyboard.

The other concern was the glossy screen. I already had a glossy screen Vaio so I used that to see how would it bother me if I used a glossy screen all the time. After a few days, I didn't find myself too bothered by the reflectiveness of the Vaio, so I decided to go with the new MBP. Now, I'll just have to say that this screen is even more reflective then I expected. In the morning with the sun shining through the window behind me, I can use the screen to shave! Yet, I noticed that it didn't bother me (and my eyes are very sensitve) because choosing a different background will help reduce the problem. Also, I don't find myself working with the sun directly behind me most of the time and the positive of the screen outweighed the reflectiveness. The glossy screen looks very very good. The colors are sharp and vibrant. The whites are more white and black is more black. It's very obvious next to my matte LCD. Ultimately, both matte and glossy have their own pros-and-cons, but the glossy screen has become a non-issue for me.

I had complained about the blurriness with OSX 's handling of anti-alias fonts. On my work MBP, I installed TinkerTool to disable it for most font sizes and installed some Windows fonts to replace the default OSX fonts. I was going to do this also with my MBP, but the problem wasn't there! The fonts looked good on the new MBP. I initially thought maybe Apple did something, but once I move to a dual monitor setup I saw the fuzziness on the external matte LCD. So it seems that the same light diffusing property of a matte screen also is the contributor for making the font look fuzzier to me.

In the end, configuring everything was pretty easy. Most of the time was spent transferring data from the old machine to the new.

Sunday, November 9, 2008

Getting a Macbook Pro

I ordered a Macbook Pro (15-inch, Late 2008, MB471xx/A) this week after much deliberation. As much as it might surprise some people, this is not the first Apple computer that I've bought. I had previously bought one of the clam shelled candy colored one for my wife when she was in school, but I promptly sold it after she graduated. Apple machines and software was simply not interesting to me and the premium for their stuff was never something I was willing to pay. Even now, I wouldn't consider getting a Mac as a desktop system.

What made me initially consider getting a MBP wasn't because of the Apple name or its software. The software that I primarily use are all equal or better on Window or Linux. What got me interested was that it can run many open source Unix software on a laptop. Basically, the BSD component of OSX was what made a MBP even worth considering.

Still, it was a hefty price to pay a notebook for something that I mostly do on my Linux or Windows desktop and I would still have to keep my Windows machine around for the things that weren't available on OSX. The subsequent release of Bootcamp (update for SP3), Parallels and VMWare fusion suddenly made the possibility of reducing the physical machines I have by one by running Windows on the MBP natively or through a virtual machine. Add to the fact that my current machine is over 3 years old, it was starting to make more economic sense.

At work, I was given a MBP so I've been able to use it for a few months and see how I liked it. OSX is nice but has its annoyances like Windows does and as a desktop OS, I feel no urge to replace Windows with it. What I love is a good UNIX laptop that can also be a desktop replacement when needed.

In the end, I decided to go ahead and get the MBP. It gives me a new gadget to learn and play with. This process reminded me of the early days of Linux where the distros made it really easy to install Linux on an existing Windows machine and that helped ease adoption (well, a little opposite since its Window on Mac instead of Linux on Windows). It's just too bad that there isn't a more widely supported Linux notebook.

Tuesday, November 4, 2008

Installing PostgreSQL on Fedora

Thinkpad x300

The Lenovo Thinkpad x300 arrived this week for my wife which will replace her current desktop computer. It's a pretty impressive machine that carries on the Thinkpad reputation. I thought about taking some pictures and writing a review of the machine but there is already some detailed reviews out there. I found that I'm in agreement with a lot that was said here and he has a lot of pictures of the machine.

I knew that it was going to be very light, but I was still surprised when I held it in my hand. This machine is LIGHT, but at the same time felt very solid. The keyboard is the classical Thinkpad keyboard so it felt good to type on, but I do feel that the trackpad is a bit tiny even for me. After running it for a whole day burning back-up CDs, watching videos and basically continuous operation it remained very cool. No worries about burning the family jewels when you have it on your lap with this one.

The software offering for the x300 is a mixed bag. Thinkpads are definitely business oriented machine and I can appreciate heir approach to functionality. The applications' interface is not pretty but they work.

Along with the x300, I got the Lenovo enhanced USB port replicator to connect the ethernet, peripherals, speakers and monitor to. This worked initially, but the ethernet connection is flaky. After installing my own apps, the display driver seems to have gotten corrupted and whenever I tried to switch from expanded view to mirror view I would get the blue-screen-of-death. Removing, reinstalling, removing, updating new drivers all failed to solve the problem and it just was stuck on expand mode.

I ended up selecting the system restore function when the machine was booting and told it to put the machine back to it's original state when I got it. This was easy to do. Just hit F11 as it boot, select the option and let it do its thing. It deleted everything, reinstalled and went through the Windows setup. When it finally finished, it booted back into windows and I reinstalled the driver and things worked as expected.

Overall this is an awesome little machine that doesn't come with a lot of crapware preinstalled. The USB replicator's drivers are a little flaky, but the restore function worked like a charm.

Chinese Tea Eggs


Boil Eggs:

  • 8-12 eggs
  • 1 teaspoon salt

3 cups water
1 tablespoon light soy sauce
1 tablespoon dark soy sauce
1/4 teaspoon salt
4 piece star anise
1 piece cinnamon stick
black tea (usually just get a black tea bag)


Cover eggs with enough water to cover. Add salt and bring water to boil and simmer for 3 minutes.
Remove eggs, rinse under cold water and roll in towel to crack shells.
Return eggs to water, add tea, soy sauce, salt, cinnamon and star anise.
Simmer for 3+ hours.

Chinese Sticky Rice (油飯)

Classic comfort food from Taiwan.


3 cups of long grain sweet rice (sticky rice)
2 chinese (non-sweet) sausage
5 pc. dried mushrooms
1/2 cup dried shrimp
1/2 cup fried shallots
3 T light soy sauce
1 T brown sugar
2 T sesame/cooking oil


Soak mushroom in 1 cup hot water until soft.
Soak shrimp in 1/2 cup water.
Cook rice in rice cooker with 1.5 cup of water.
Chop mushroom into small strips.
Chop sausage into small pieces.
Mix soy sauce and brown sugar.


Stir fry shallot in oil briefly.
Add sausage.
Add mushroom without water to shallot (keep water for later).
Add dry shrimp without water.
Add water from mushroom and shrimp and bring to boil.
Add soy sauce and brown sugar.
Add sweet rice and mix together.

Saturday, November 1, 2008

VMWare Server 2.0

Having multiple computers used be almost an necessity for programmers especially for those who deal with the internet/web-based development that requires the product work on multiple browsers and operating systems. Putting multiple OSs on a single computer and booting between them only takes you so far. Because of his, I often found myself with 2-4 machines at any given time. However, with the advance in virtual machine software like VMWare, it doesn't make as much sense to have many physical machine especially if some aren't used that often. So this weekend, I decided to start reducing the number of machines I have by converting one of my windows xp boxes into a virtual machine running inside linux.

I went with VMWare Server since it allows me to create a new VM rather then having to use an pre-built image (and MS isn't going to allow XP images to be handed out). Setting it up on my Fedora Linux machine was as simple as installing the RPM package. Once I did, I just had to create a new VM and boot the XP cd. VMware Serve 2.0 now uses a web-based interface rather its own native stand-alone app. I'm not sure how I feel about this, but it worked okay mostly. Sometimes the web interface responds slowly and it doesn't seem to start up on server reboots correctly so I have to manually start it.

Setting up windows xp on in VMWare is like setting it up on any computer: put in the CD, start the VM and go through the normal install flow. Since Windows XP have product activation, configure the VM with the hardware configuration you want first (memory size, audio and hardware settings, etc) and then activate the installation. Since activation only check at the time of installation, you can copy the VM image and install different apps on it without having to re-activate.

Monday, September 29, 2008

Running Firefox 2 and 3 together on OSX.

Create a new Firefox profile using the Profile Manager (i.e. ff2):

/Applications/ -ProfileManager

Then launch Firefox 2 with the new profile:

/Applications/ -P ff2 -no-remote

Create an apple script using the Script Editor to have a launch icon:

do shell script "/Applications/ -P ff2 -no-remote &> /dev/null &"

Save as "Application Bundle" and check "Run only".

Some icons with version numbers can be found here:

Sunday, September 28, 2008

Hide password in Emacs shell

I often use the EMACS shell to look at log files, but I don't want my password to be shown when I'm typing it in the shell. To hide it, add the following to your .emacs file:

(add-hook 'comint-output-filter-functions

Or manually type 'M-x send-invisible' before typing the password.

Saturday, September 27, 2008

Make Firefox 3 bookmarks available to Quicksilver/Launchy.

Firefox 3 no longer saves its bookmark to an html file by default so things like Quicksilver can't index it. To re-enable it, go to about:config, set browser.bookmark.autoExportHtml to true and restart Firefox

What I've installed on OSX.

IT upgraded my MBP to Leopard so I had to go through the process of reinstalling my apps. It's a lot simpler to do this on OSX/Unix then on Windows since apps pretty much have to install its settings and user configurations in the /Users/ directories because otherwise they will need write permissions.

However, I did have to reinstall my apps which meant looking for them again. I figure I'll just list them here so that in the future it'll save me time.

GeekTools - to display information such as my calendar and notes on the desktop
Firefox 2
Firefox 3
Versioned icons for Firefox
MacPorts - the joys of UNIX!
Sidenote - unobtrusive notepad
OpenProj - to be able to read/write to Microsoft Project files.
Adium - multi-protocal IM client
Colloquy - IRC client
VLC - media player
Tinker Tool - exposes hidden settings. I use it to turn off Apple's anti-aliasing and changing the system fonts
Tahoma (font)
Synergy - Allows using one keyboard to control multiple computers.
Eclipse IDE


Parallels/VMWare Fusion
Microsoft Office
Adobe Photoshop

Saturday, August 16, 2008

When to grow an organization vertically vs horizontally?

I believe that a lot of good solutions to problems that a business is trying to solve comes from the rank-and-file. A technology company, for example, get some of its most innovative solutions from the engineers who are hired to build the company's products. When a company is at the stage where its focus is on building its products then it should focus on growing horizontally to maximize its efficiency. A good example is Google where they have been in the mode of building up their product. It makes sense that they have a fairly flat organizational hierarchy since the problem they're solving now is how to build a better search, how to monetize search, how to come up with new technical solutions, etc. Having a large set of talented engineer maximizes their chances of success.

At some point, however, the organization starts to move beyond just building the product. As the rank-and-file grows, a new problem emerges: organization. How does it organize all the ideas, thoughts and interactions between the different pieces? This is when a company needs to grow vertically. Managers are there to provide the necessary organization, structure and guidance so that the company can continue to maximize its potential. This also means that there is a max height to the organization at different stages since there is only so much organization that is needed and when that height is exceeded is when we see the high level of ineffective bureaucracy.

Sometimes I see an organization grow in the wrong direction because they fail to recognize the problem that it needs to solve. Instead of growing horizontally when trying to deliver products (This doesn't mean that throwing more ppl at a problem means it'll get solved faster or better. Growing horizontally could also mean empowering existing employees to come up with solutions), a company starts to insert multiple layers of management. This might be fine if it was trying to solve organizational problems but since it isn't these additional layers becomes more a hindrance then benefit.

Friday, July 25, 2008

Things that still annoys me about OSX/MBP

The Command-C/V combo to copy and paste is very uncomfortable for my hands. I prefer using the ctrl-c/v spacing but remapping the keys causes other discomforts such as tabbing between windows. Why can't it be like the other two major systems: Linux and Windows? It always messes me up when I switch to those systems.

The menu bar should go with the app! In our modern day multi-monitor configuration, I hate having Firefox on one monitor but still have to go to the other monitor to get to the menu.

Programmer's editors. Seems to me that the top editors are ports of those built for other systems. TextMate is pretty good but it doesn't provide a good print feature for source code which is something I expects from any editor. Yes, I sometimes do print code on tree-based product 'cause you just shouldn't use your notebook in the tub. Right now I tend to switch between Eclipse, VIM and TextMate. I miss my Visual Slickedit.

Print Preview... why don't all applications have it?

Spotlight is great except it doesn't work. I use Quicksilver instead. It doesn't support email searching for Thunderbird. Boo.

Wednesday, July 23, 2008

Disable OSX Dashboard

defaults write mcx-disabled -boolean [YES|NO]

killall Dock

Sunday, July 20, 2008

Customizing VIM

For the first time in a long time, I spent my weekend not working on something directly related to my job. I decided that it's time that I really got myself to learn VI. I've been using the basics of VI forever and when it came to serious code editing in a terminal, I tend to fall back to EMACS. In a GUI environment, my favorite editor is Visual Slickedit but right now I don't have it for OSX and our servers don't have it or EMACS installed.

So the first thing I did was try to make VIM a comfortable environment for me to work in. The default black text on white background didn't work for me so I changed the terminal to black-on-white. Of course, this re-introduced another of those annoyance that always got under my skin. Who the hell chose a dark blue font color for directories?!? Who can actually read that without going blind after 2 minutes? So, of course, that has to change... Out comes the editor and changing the LS_COLORS environment variable.... but wait... OSX doesn't use that name. It uses LSCOLORS instead... Those wacky BSD guys. Okay, no problem. Let's see export LSCOLORS='di=...'...
Uh, wait, that doesn't work 'cause that just makes things too easy to understand. Instead, how about:

export LSCOLORS='fxFxcxdxbxegedabagacad'

Uh...yeah... that's intuitive. Assembly programmers, I respect. Whoever came up with this is an idiot.

My linux version is a bit more customized:

export LS_COLORS="no=00:fi=00:di=36:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=

Okay, now it was time to get to know VIM and all its goodies such code folding, color syntax, debugging, intellisense (or it's new name: omnicomplete), etc. Being the lazy hacker that I am, I first looked around to see what other people already did so I can borrow their stuff. I came across Andrei Zmievski's presentation and he included his VIM scripts which did pretty much everything I wanted. Sweet!

So, putting on my RHEL5 workstation and OSX machine had no problems. The problem is that I'm also doing a lot of work on RHEL4 machine which only has VIM 6.3 and a lot of the plug-ins don't work. I had to download the source from and compile it myself. Since I wanted the ability to work with xdebug, I had to tell the build to include those features. After compressing the source, you can run:

./configure --help

to see all the different options. Basically, I needed to do this:

./configure --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.3/config

(Look at the output from config to make sure it found the python config. If not, download and install the python_dev package.)

Then run make and it compiled.

In the end, it was fun to learn something new. I learned a lot more about VIM such as color schemes, plug-ins, etc., and now I have a comfortable environment to work in even without EMACS.

OSX shortcut keys

Page UP: FN + Shift + Up arrow
Page Down: FN + Shift + Down arrow
Home: FN + Shift + Left arrow
End: FN + Shift + Right arrow

delete a file: CTRL-delete

Friday, July 18, 2008

bash 1-liners loop through files

cat filestodelete.txt | while read line; do rm ${line}; done

for s in `cat server.list`; do ssh $s uptime; done;

Friday, June 13, 2008

Giving bloggers a bad name -- Arrington on Yahoo

I think a lot of bloggers take their writing seriously even if they aren't professional journalists. Just like yellow journalism can hurt the reputation of the news industry, bloggers like Michael Arrington can also give bloggers a bad name by selling sensationalism as news.

Arrington posted another entry commenting on Yahoo and once again contradicts himself. He concludes his blog post (I wouldn't go as far as crediting him with the term 'article') with

It took me about five minutes of watching Yahoo’s top two executives talk last month to realize that they had no fight left in them. The fact that they simply gave up wouldn’t matter so much if the only people hurt by their actions were their employees and stockholders. But that just isn’t the case, and now we all have to deal with the fallout.

I guess it's safe for him that he doesn't actually have to provide any facts to back up his statements. He's basically saying that Jerry Yang and Sue Decker don't have any fight left in them other then fighting off Microsot and Carl Icahn. If they had no fight in them, wouldn't they just sold the company along with their principals? Arrington also implies that somehow Yahoo is hurting other people beyond employee and stockholders. Who is he talking about? Selling to Microsoft helps consumers? I can't understand the purpose of Arrington's ramblings other then him trying to make himself sound relevant and him thinking that if he can yell loud enough that people might think that he's somehow a participant or insider. I guess without any journalistic integrity he has to rely on fame in one way or another ala Paris Hilton.

I think I'll stop by a deli and ask the waiter on his thoughts about TechCrunch and quote it as fact that everyone in Silicon Valley feels what the "insider" feels.

Saturday, May 24, 2008

Engineering Manager

The American Society of Engineering Management describes the discipline of engineering management as:

Engineering Management is the art and science of planning, organizing, allocating resources, and directing and controlling activities which have a technological component.

Engineering Management is rapidly becoming recognized as a professional discipline. Engineering managers are distinguished from other managers by the fact that they possess both an ability to apply engineering principles and a skill in organizing and directing technical projects and people in technical jobs.

Of course, this description throws another wrench in the roles within a technology company. Where is the line between technical product management, technical project management and engineering management?

Technical Product Manager

When I go to the bookstore, I see plenty of books in the technology section on software engineering and technical project management. However, there are very (if any) books about technical product management. Why is that? Technical product manager seems to be common enough in Silicon Valley, but there seems to be a lack of printed literature on technical product management. A search online, however, turned up many blogs about technical product management and what the position means.

Personally, I believe that technical product management is very different from regular product management or at least it is a specialized subset of product management. The problem that I often see is when a technology company don't see the distinction and when product management and project management gets confused.

This lack of clarity in companies also has a negative impact on its people. When a company hires a product manager (non-technical) for what is really a technical product manager role, the person simply won't be set up for success.

What baffles me and makes me wonder is it only in the tech industry that job roles are so unclear?

Thursday, May 22, 2008

Coporate parents

The finance articles about shareholders and corporate raiders wanting MS to come back and buy Yahoo reminds me of those parents who has a favorite ex-boyfriend/girlfriend for their child and just can't accept that they've broken up and don't want to be together anymore.

Thursday, May 15, 2008

It's tough being a founder.

The news has come out that Microsoft is withdrawing its bid for Yahoo. This is expected to lead to a big drop in Yahoo's stock on Monday and bring about law suit against Yahoo and its board.

A lot of fingers will probably be pointed at Jerry Yang and that is unfortunate, but given how cynical the world is towards CEOs I'm not surprised. We live in a time where CEOs are viewed those who are there to make big bucks and companies are soulless entities. Jerry Yang could've approached his role in the same way. He got to be a CEO, broker a major internet deal, pocketed a lot of money and moved on, but people forget that Jerry founded Yahoo and he really wants it to succeed as a company and I believe that he defines success both for the company, its employees and its shareholders. Shareholders will sue him and Yahoo, though, but I believe he is looking out for share holders and also for the 13,000 people who make up Yahoo.


I originally wrote the above post right after the news broke but didn't actually publish it. With the latest news of billionaire Icahn trying to set up a proxy battle against Yahoo, it felt like a good real life example of what I said about people looking to make the big bucks but have no real interest in the company or its people. Basically Mr. Icahn is trying to replace the current Yahoo board for the sole purpose of selling off Yahoo. The problem is that if that is all it focuses on then this is a board that doesn't have any reason to look out for the shareholders because it's not looking out for the shareholder's company. If a deal cannot be brokered with somebody quickly, this board has no interest is making sure that the company succeeds.

Thursday, April 24, 2008

Yahoo Application Platform (YAP)

At the end of last year, I switched from Yahoo! Profiles (Profiles, 360, Mash) to a new team which I have not been able to tell anyone about other then to say that it was a "platforms team". The past 5 months that I've been with the team has been fun, fast, and very exhausting. We are aiming to do something very different then what Yahoo has done in the past and doing something new that can effect a company the size of Yahoo is not easy especially when it involves steering it away from its traditional course.

After months of work, we're finally able to let the world know the full extent of what we've up to. While we've already announced Yahoo's adoption of Open Social and being a part of the Open Social Foundation, it is only one part of what my team is handling. At the Web 2.0 Summit today, our CTO announced Yahoo's Open Strategy (YOS) which aims to open up Yahoo as a platform. At the heart of it, is the Yahoo Applications Platform (YAP) and that's the group I'm a part of (shown in the above picture as simply APP). Needless to say, it's been a pretty hard pushing 2008 tackling such an ambitious project, but it feel nice to finally be able to let my friends and family know what I work on. :-)

For those interested in what I'm directly involved with from the chart... AppBin/Gallery API, End User Services, Core App API, End-user services, Publisher Services API, END POINTS, droplets, Dropzone DB, and Open Social which all part of the "APP" of the first picture.

And for the person who posted the comment saying that YAP is just vaporware, he should know that Search Monkey has gone into private beta to a select set of developers is built on top of YAP and will have a public launch soon so we're far from being vaporware.

For the many critics of Yahoo that accuses us of not moving, I can only say that while we might not be making splashy daily marketing propaganda that they are a lot of damn serious work being put in by a lot of dedicated engineers to put some serious fire power in the hands of its users.

Monday, March 17, 2008


This past week, I got myself an iPhone since my wife had to switch to AT&T and it was cheaper to move the same carrier then paying two separate bills. I didn't have a strong desire to get an iPhone, but if I was to get a new phone I wanted one that was new for me to play with. My initial impressions of the iPhone is pretty good although depending on your perspective then it is either an expensive mp3 player or expensive mobile phone. It's whether the combined functionalities justifies the price.

Having access to the internet anytime with a fully functioning web browser is no doubt... awesome. This was my #2 reason for liking the iPhone. This worked pretty well right out of the box and I had no problem connecting through the phone or getting it set up to access my home WIFI. The only thing missing is the ability to play songs from internet radio stations especially given that this is a combined music/video/phone device.

As a proud Dad, I naturally have the urge to show off pictures of my son, but I resisted the "carry 100 pictures in my wallet" stereotype. Well, with the iPhone I can be the modern day equivalent of it and literally carry thousands of pictures to show from the phone (don't worry, I'm not carrying that many). The image quality looks good on the iPhone screen, but since I was managing my photos in Picassa, I had to create an album for the iPhone then export that album to a directory that I tell iTunes to sync. I have to do this each time I want to add a new picture. It's a workable solution but not a great one.

Using VLC, I was able to convert my divx/xvid video to mp4 which I can copied to the iPhone and watch while I travel. The video quality and sound was excellent. I wish I could this as easily on the DS.

As an PDA device, the iPhone comes a little short and is more an phone then a Blackberry competitor at this point. Managing contacts could be easier in my opinion and the default list of apps is what you expect on a phone (calendar, clock, notepad).

As a phone, the quality is good, but the lack of a speed dial function sets it back to the stone age in that area.

As a music player, having to buy an adapter before being able to use regular headphones is plain silly.

The iPhone looks beautiful coming out of the box, but the shining silver band around the display is scratched easily even if the glass is more difficult to get scratched. It doesn't matter though because when the border gets scratched the whole aesthetics of the device is compromized I'm talking about it being scratched by lint, folks! I had the device in my pocket (nothing else there, no coins, keys, pieces of paper, etc) for 10 minutes and it still got some scratches. I had to buy an iPhone condom to protect it from further scratches and to hide it.

Overall, it's a good multi-function device but it's not a PDA with a phone. It's a phone with more advanced PDA functionality then typical phones. Or it's a mobile media device with a phone and PDA functionality. If the iTouch had a camera, I'd probably have gone with it since my wife would already have the internet covered on her phone. The iPhone is a very good first generation device and has a lot of potential to be more in the future. I hope that future won't be dominated by just Apple but that other companies will learn from the success of the iPhone as to what people are looking for and more.

Sunday, February 10, 2008

UED in tech

Silicon Valley is very much about coming up with new things and creating new markets often through technology. This is a different challenge then trying to break into a existing market through an evolution of market. One of the things that the makers must demonstrate is that the new technology can work and demonstrate it's usefulness. To do that means the 1.0 release must be stable and "just works".

I often see teams trying to build the "perfect" product with the "perfect" interface as part of version 1.0. Engineering attention is taken away from the product technology and stability to focus on the UI. Everyone wants to have the best product out there, but in a new market nobody knows what "perfect" or "best" means since nobody has experience with it. It's just better to make sure that what is built is built solidly and be flexible about making user experience improvements iteratively (which is easier to do in software then hardware).

Personally, I believe that User Experience and Design (UED) plays an important in product development. As Apple has shown, a good design can help take a product to the next level. However, I also feel that too much focus on UED can sometimes hurt innovation (non-UED type innovation) of a new product type. Apple didn't invent the mp3 player. It allowed the mp3 market to develop and once the world has come to accept the need for mp3 players, Apple build a product with a design and interface that dazzled and became the leader.

So folks, if you're trying to enter an existing market, take the time to examine the competition, don't make the same mistake and improve on what is out there. If you're trying to create a new market, put your resources into making the first launch stable and useful so you can grow the market.

Wednesday, February 6, 2008

Why Starbucks is so expensive.

Starbucks drinks are pretty expensive and this past weekend I realized why it is and it's not that it's a brand name or that they are selling an experience as well as a cup of coffee. No, the reason is the high cost of the water and cups they use.

This weekend, I was at the airport when I need a cup of hot water to warm the baby formula. The airport had free hot water in the food court where Starbucks is also located, but I needed a cup to hold the water. I went to the Starbuck counter and asked if I could have a cup of hot water and was told no and that I had to purchase the hot water. When I asked if I could just get a cup for it and that I'll pour it myself from the hot water station, I was again told that I had to purchase the cup. How expensive is the water and cup they use? Anyway, I went to the California Pizza Kitchen next to Starbucks and asked the same question. The lady was more then happy to give me an empty cup and even guess that I might be using it to heat something so she gave me a small bowl to make it easier for me.

Saturday, January 26, 2008

Calendar App

Having an easily accessible calendar is extremely helpful. Some people use widgets/gadgets/PIMs/Outlook, etc. I generally like to have a small calendar on my desktop showing the current and following month.

With Geektools, I went with the classic Unix program 'cal'. I have Geektool call 'cal' to show the current month and a second call to show the next month.

geektool to display calendar

Feelings on the Macbook and OSX

I'm getting more used to using OSX/Macbook although a few things still nags at me. I'm still more used to having the application's menu within the frame of the application instead of at the top of the OS (especially noticeable when I'm using a dual monitor setup), and I wish Apple would allow the screen to tilt back more, and why are they so unwilling to provide a docking station?!?

The keyboard is nice and comfortable, but a two button mouse is still preferable. Overall the system runs well, but I don't feel it's a speed demon. For those running Windows on OSX, 4 gig is recommended. Running with 2 gig is ok, but it's like running Windows on 1 gig while also slowing down OSX.

I like Quicksilver and Geektools and I love the UNIX underlying. The support for external display kick the butts of my windows notebooks (especially ones by HP). The dimensions of the 15" Macbook and the weight balance is excellent. The 17" model is too big to travel around with and the Airbook just isn't that compelling to me. Personally, I feel the 15" is the sweet spot in Apple's notebook line.

Fedora 8 Update

Now that I've been using Fedora 8 for a few days, I can comment a little more on it. I've been regularly running "yum update" and I can see that the packages are being very actively updated. The issue of the kernel-header was resolved as I predicted as f8 caught up with the kernel in f7.

Unlike my experience with f7, once I got the system up I did not have to do much reconfiguring. The services are all working as they should and some of the apps feels like they're running a little more robust then f7. The small visual changes to the Gnome desktop is a noticeable improvement to my eyes, but this is all subjective.

F8 feels more "modern" then its predecessors. It might not be as hip as Ubuntu, but for all practical purposes it's on-par. I still like Fedora and while the upgrade path is not as smooth as I would've liked it, for those looking to perform a clean Linux install I wouldn't hesitate to suggest that they look at Fedora.

Monday, January 21, 2008

Upgrading to Fedora 8

Here are my note from upgrading Fedora 7 to Fedora 8 on a x86_64 system. The existing system is not very customized, but does pull some things from the Livna repo. It runs a nvidia video card and one of the video output is connected to a LCD TV to be used as a secondary monitor.

Following the recommendation of some of the posts online, I first did a yum update on fc7 to make sure I got the latest packages. In hindsight, I'm not sure if this was the best thing to do since it might have pulled a kernel version that is more current then the Fedora 8 version.

Right off the bat, I encountered the Upgrade Hang bug. The fix is listed in the link. When booting from the DVD, at the first menu when it asks you whether you want graphic or text installer, hit "TAB" and append the line to what is shown.

Once it finishes installing, it then reboots.

The video setting changed to using the open source nvidia driver which looks crappy on my monitor, but I figure I can always changes after I get the latest update from Livna.

Just like last time, I did a "yum upgrade" and just like last time it failed due to dependency issues from Livna packages. The upgrade is suppose to recognize third party repos, but never fully does. I had to remove them. vlc and xine to get past the dependency problem.

I noticed that there are a lot of fc7 packages still hanging around. The update didn't have that many new packages (suspicious) and it kept trying to grab the fc7 kernel. I had to reboot the machine before yum started to grab updated Fedora 8 packages. No where did it ever ask me to reboot, so it took a while before I was able to get this to work.

Still, after the update, Livna's Nvidia package still didn't work. Gnome's Display applet didn't show the right monitor or video card and it was missing the native resolution. I was able to select my monitor manually, but it still didn't give me the right resolution option. I finally removed kmod-nvidia so I can re-install it.

Fedora simply wouldn't let me sett the correct resolution even after I rebooted and re-installed kmod-nvidia. This time I first to the Display applet and changed to using the vendor supplied Nvidia driver. Then I used Nividia's (nvidia-settings, and make sure you run it as root or it'll just tell you that you don't have permission) app to change the display settings. Another reboot showed me an login screen that was working, but whenver I log in the resolution messes up. Finally, I just deleted all my Gnome settings and finally got things working! (I should've backed it up since my terminal fonts don't look quite as good now. It's possible I made a change but forgotten about it in the pre-F8 days).

Fedora 8 upgrade leaves a lot of fc7 packages hanging around. Most of them are orphaned packages since they either got moved to another package or no longer maintained in f8. The one remaining is kernel-headers which is fc7 but most of the dependency issues were caused by f8 packages when I tried to remove it or upgrade it. The version of the kernel header is newer then the f8 kernel that is installed... Maybe when the kernel gets above the f7 version on f8 then I'll be able to upgrade it.

Like F7, I faced enough trouble that I wished I didn't try to do an upgrade so soon especially since Fedora 7 was working fine for me. The upgrade process is still not as mature and it probably would've been easier if I just installed a fresh new copy instead of trying to upgrade.

Saturday, January 19, 2008

I don't get the Apple Nation...

Truth be told, I never paid too much attention to the Apple Nation. Sure, I kept up-to-date on many of the products they release, but not because they were from Apple. It was more that I wanted to see what's the latest mp3 player and the iPod is one of the top choices, etc. This is just to say that I never paid much attention to Macworld other then read a news article here and there after the fact.

Since I got the Macbook Pro, I've been finding out a little more about Apple stuff mainly because I've been looking for software and utilities and since you can't go to any Apple-related site without hearing about Macworld, I actually paid some attention to Steve Jobs' announcements. This year there doesn't seem to be much revolutionary new products coming from Apple as compared to last year when they announced the iPhone. At the same time, though, the Apple fanbois made everything sound like Apple has just invented fire.

Macbook Air? It's a pretty neat product and while it might be something new in the Mac universe, sub-notebooks are hardly a new thing here in the rest of the world. Almost as soon as it was announced, Gizmodo did a comparison of Apple's sub-notebook with 5 other sub-notebooks. At most in the sub-notebook category, it has some evolutionary refinements, but the Apple Nation was cheering as if they've never seen a light portable notebook before...

Monday, January 14, 2008

Customizing my work environment.

I'm continuing to get more familiar with working with a Macbook Pro and am starting to customize it to suit my working style. The first thing was to get some parity with what I was used to in Windows. At work, I have two machines (Macbook Pro notebook and a Linux workstation) and two monitors (24" LCD and 17" LCD). I previously had a Windows notebook instead of the Macbook and had configured my system to be a three monitor system. The Windows notebook was on the far left and connected into a docking station. I used the notebook's LCD for Thunderbird, IM buddies, etc.

To the right of the notebook, I had the large monitor which is the extension of the Windows desktop and what I'm staring at most of the day (when I'm at my desk that is). Next to large monitor is the 17" monitor that is connected to my Linux work station.

There is only a single keyboard and mouse, and both are connected to the Linux workstation. By running a VNC Server on the Windows machine and a program call x2vnc on the Linux machine, I can move the mouse/keyboard cursor across all three monitors as if they were one and even copy-and-paste between UNIX-Windows apps. The only limitation is that Linux apps can't be moved off the the 17" screen and Windows apps can't be on the 17" screen, but effectively my one keyboard and mouse controls both computers.

Being so used to VNC, I tried to do the same thing with OSX. Imagine the above system except with the Macbook instead of the Windows notebook. At first I tried using Apple's Remote Desktop which is suppose to be basically a VNC Server. The problem is that x2vnc or any other vnc client I tried could connect to OSX. I then downloaded a VNC Server for OSX, but that didn't recognize the dual monitor display of the notebook+external monitor.

Fortunately, the solution was the open-source Synergy tool which does much of the same thing as x2vnc and has both a server and client for Linux and OSX. Basically, on the Linux workstation, I run the Synergy "server". On the Macbook, I run the Synergy "client" and now I can do what exactly the same thing as before with one mouse and keyboard.

Installing Synergy was a snap. On Linux, use whatever your app management tool might be (i.e. "yum install synergy") and on OSX use Macports (i.e. sudo port install synergy). The Synergy site has instruction on what the configuration file should be and then it's just a matter of running the programs on each machine.

With my physical environment ready, I started to tackle trying to get a good ToDo app for OSX. For me, a todo utility must be easy to access. I'm too lazy to have to move my hands from the keyboard to the mouse. ^^; I also want the data to be presented simply and non-obtrusively. It's surprisingly hard to find this combo. Even on Windows, I didn't have a great solution: I used Google Desktop's todo widget which required that I use the mouse to select the widget before I can type into it, but the look was simple and basic.

I tried a few Mac Todo lists and was going to go with DoIt since it had Quicksilver integration that allowed me to write items to the list with keyboard strokes... almost. The problem was that DoIt also requires you select a category from a drop down list before it adds the todo item, and for the life of me I couldn't figure out how to select the category without using the mouse.

I finally came across a mixed low-tech/high-tech solution. Quicksilver has an action called "Append to text file". Using a simple text file (i.e. todo.txt), I created a trigger and keyboard shortcut that when hit, let's me type a todo item that gets appended directly into the text file. To see my changes, I used a very neat little app called Geektool that display a transparent window containing the text output of anything log file, script output or image.

Todo List

One limitation of this setup was that I used Geektool's file type to handle the display of the todo file. This only works when the file is appended to at the end like typical log files. This means that if you edit the file with another application, the change doesn't show up. The solution is to not use "file" but use a Geektool "command" with a refresh timer. By using the command, "curl " every 30 seconds, it'll regularly update the window with whatever is in the text file. Not as good as detecting a change automatically, but works well.

Saturday, January 5, 2008

Eclipse IDE

I've looked at Eclipse on-and-off since the very beginning, but I was never compelled to use it for a variety of reasons. The last time I made a attempt to use Eclipse was a couple of years ago and it wouldn't start up for me for reasons I was never able to determine, so I just left it at that.

I decided to take another look at Eclipse again because 1) I've been hearing a lot of good things about it so I figure a lot of issues have been resolved, 2) I don't have any software for the Mac so the free open-source nature of Eclipse is a plus, and 3) I'm thinking I'm going to be doing some Java coding.

I went to the Eclipse site and downloaded the the J2EE package. The different packages just means they come with different sets of plug-ins. You can always download the most basic package and install each plug-in your want manually. I didn't want the hassle of doing something and then finding out in the middle of it that I was missing a plug-in so I grabbed the full J2EE version.

Installing and running it was as simple of uncompressing the archive and clicking on the Eclipse icon. While Java has made a lot of progress addressing performance issues especially on the server side, I wanted to see how it does on a desktop application that is stopped and started frequently. While I didn't do any real benchmarking, the IDE started up faster then I remember it is still no speed demon. Once started, though, the performance seems pretty good.

Eclipse has it's own set of terminology like perspectives, Team, etc. which takes a bit getting used to, but the features you'd expect in a modern IDE is all there such as code completion, syntax highlighting, code navigation, etc. One thing I really like is that it checks your code for you even as you type. When you open up a project, you can immediately see which directory/file/line has potential errors through the explorer pane. You can do a lot more with templates code assists that will help with some coding tasks.

Before I did too much with Eclipse, I found out about PDT (PHP Developer Tool) plug-in. This adds PHP support to Eclipse and was a project that originated from the makers of the Zend IDE. Since my current projects tends to be PHP-based, it peaked my interests to see if I can use this IDE to handle my projects.

Installing the plug-in is super easy with Eclipse now. Just go to the plug-in manager and add the PDT repository to it's list and tell it to install. A few clicks later, I had PDT in Eclipse that recognizes PHP files and my project directory. Unfortunately, I haven't had much more time to get beyond that. I still want to test the debugging tool, etc. but I'll have to do that later.

Thursday, January 3, 2008

OSX Networking

Setting up wireless connection was surprisingly easy and I was able to get it up in minutes, so points there for Apple. I connected the machine through the built-in ethernet at work and the performance was dog slow! I saw packet loss of about 70 percent so definite negative points. Initially I thought that there might have problem with the ethernet hardware but then I read online that Macbook Pros have problem if they are on a LAN that has 802.1q/vLAN. The problem is discussed here.

I hook the notebook on another network and it performed fine so it seems like I got bit by this same bug. I'm surprised that Apple still haven't fixed it, but I suspect this mainly effect corporate users which might still not be a big customer base for Apple to pay attention to.

Tuesday, January 1, 2008

Dev environment on OSX

I feel like I'm behind at work recently so I didn't want to start the new year at the office spending time configuring the new notebook. The baby was nice to me tonight and went to bed early so it allowed me to have the chance to get my development environment on the new Macbook Pro with OSX Tiger configured. Thanks to M in Ohio who saved me hours of time by pointing me to the right solution.

The nice thing about the OSX is that it is build on top of UNIX which is a developer's OS. You'll find that most open source tools are available and if not then getting it compiled from source is usually possible. I used compile everything from source including the kernel, but now that I am a lazy old man, I tend to prefer using some sort of package management solution that has the dependencies resolved. For Linux, I like the yum package management tool that sits on top of RPM. It beats the hell out of downloading the source and figuring out all the dependencies.

M pointed me to MacPorts as a similar repository/package management solution for OSX open source packages. It's really easy to use. Simply download the install package from the site, run it and you're ready to go. I did ran into one bug where it didn't create a .profile file for me so the path to "port" couldn't be found. I'm not sure why, but a quick look on the site and I knew which directories to add to my $PATH variable.

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Don't forget to "source ~/.profile" to pick up the change.

With MacPorts installed, it was only a matter of grabbing the programs I needed for a web development environment: Apache2, MySQL, PostgreSQL, PHP5.

Installing Apache2:

  • sudo port install apache2

  • cp /opt/local/apache2/conf/httpd.conf.sample /opt/local/apache2/conf/httpd.conf

  • sudo /opt/local/apache2/bin/apachectl start

  • point your browser to http://localhost to see that everything is running.

If you want to automatically start apache at boot-up then do then:

sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

Installing MySQL and PostgreSQL:

  • sudo port install mysql5 mysql5-server; sudo -u mysql mysql_install_db5 (to start the daemon: cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &)
  • To automatically have mysql start: sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
  • sudo port install postgresql84 postgresql84-server
    To create a database instance, after install do
    sudo mkdir -p /opt/local/var/db/postgresql84/defaultdb
    sudo chown postgres:postgres /opt/local/var/db/postgresql84/defaultdb
    sudo su postgres -c '/opt/local/lib/postgresql84/bin/initdb -D /opt/local/var/db/postgresql84/defaultdb'
    (to start: /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb)

Installing PHP5 with support for MySQL, PostgreSQL:

  • sudo /opt/local/apache2/bin/apachectl stop
  • sudo port install php5 +apache2 +postgresql +pear
  • sudo port install php5-mysql php5-sqlite
  • sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini
  • sudo vi /opt/local/apache2/conf/httpd.conf
    • add "Include conf/extras-conf/*.conf" to /opt/local/apache2/conf/httpd.conf

  • sudo /opt/local/apache2/bin/apachectl start

Installing Eclipse IDE:

  • Download the IDE from Eclipse.
  • unarchive it to whichever location you want to run it from (I put it in /Applications/eclipse).

With that, the an Unix development environment capable of doing web development with PHP, MySQL and/or PostgreSQL as well as Java/C/C++ development is all ready!

For a little more detail about the set up process, I stumbled on this nice post.

Using OSX... a few days later.

I've now had a few more days to use the MacBook and OSX 10.4. The first day was mostly getting familiar with the environment and it wasn't until the second day that I started to migrate data from my Windows XP notebook.

The migration turned out to be simpler then I expected. Part of the reason is that I tend to use open source applications which are often developed for multi-platforms so the data transfers easily.

For example, you can copy Thunderbird mail, settings and extensions directly from the Windows location (C:\Documents and Settings\\Application Data\Thunderbird\Profiles\) to it's OSX equivalent (~/Library/Thunderbird/Profiles/. The same can be said for Firefox.

Users of GAIM/Pidgin will most likely use Adium on OSX and since they share the same foundation, their IM archive share the same structure so just copy the "logs" directory over.

I then copied over "My Documents" to "~/Documents" where by default it is recognized by Parallel's XP instance.

All-in-all, getting everything over to the Mac has been pretty easy. I've found most of the apps I needed to have an OSX versions although I've still not found a good note taking program like Evernote (I'll give Yojimbo a try). I'm also still trying to understand how to configure the system to give me some of what I'm used to in Windows (such as displaying image thumbnails for graphic files).

Some annoyances with OSX include the sensitivity of the track pad. I tend to use my right hand fingers to move the pointer around, but my left hand stays near the keyboard. The track pad often senses my left hand and gets confused.

The keyboard on the Macbook Pro is pretty good, but I'm more used to where the CTRL (in the case of Macs, the Apple key) so there is some finger gymnastic action. The lack of a second mouse button is also annoying to a Windows/Linux user spoiled by the convenience of it. I've always wondered if Apple is just too proud to admit someone else could come up with good interface ideas and that's why they've stuck with the one button mouse.

The biggest annoyance is the screen and font! OSX's font rendering especially its anti-alias/font smoothing is plain fuzzy to my eyes and the Macbook screen makes it worst when you're not looking at it from a specific angle. This is a controversial topic as can be seen here and here, so I won't talk about it much here. A lot of it is personal preference, of course, but I've always had a hard time with the softness around some of the anti-alias text. I wish they just soften curves instead of everything. I don't understand why a solid dash line isn't just a solid black, for example.

I figured what I can do is just turn off anti-aliasing (Apple calls it font smoothing) or select a different system font. Then I found out that Apple seems to be to headed down the road of less user customization by restricting what fonts the system uses, etc. I read it was to make sure that users don't confuse the brand by customizing the UI to not look like OSX... I'm not sure if that is true, but I was surprised by the lack of customization available to the user.

My eventual solution was to download a small app called TinkerTool which exposes many of the hidden settings available but not exposed by Apple in the preferences tool. I was able to tell OSX to not use font smoothing for text greater then 12pt, to change the default fonts (not all parts of OSX respects this setting nor do all OSX apps, but so far it's been ok), and to use the Tahoma font instead of the default OSX font:

TinkerTool > Font Smoothing: "Turn off font smoothing for font sizes 16 pt and smaller"
TinkerTool > Fonts:
System: Tahoma, 13pt
Application: Tahoma, 12pt
Messages: Tahoma, 13pt
Labels: Tahoma, 10pt
Help Tags: Tahoma, 11pt

So now that I got my data over, my most essential apps installed, and the UI is not giving a headache to look at , it's on to the fun part of customizing the environment to suit my working habits!