Lazy Hacker Babble

Just some random babblings from a lazy hacker…

When to grow an organization vertically vs horizontally?

Posted by hsin on August 16th, 2008

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.

Posted in Management | No Comments »

Things that still annoys me about OSX/MBP

Posted by hsin on July 26th, 2008

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.

Posted in OSX | No Comments »

Disable OSX Dashboard

Posted by hsin on July 23rd, 2008

defaults write com.apple.dashboard mcx-disabled -boolean [YES|NO]

killall Dock

Posted in OSX | No Comments »

Customizing VIM

Posted by hsin on July 20th, 2008

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=
01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:
*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"

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 vim.org 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.

Posted in Programming | No Comments »

OSX shortcut keys

Posted by hsin on July 20th, 2008

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

Posted in OSX | No Comments »

bash 1-liners loop through files

Posted by hsin on July 19th, 2008

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

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

Posted in Programming | No Comments »

Giving bloggers a bad name — Arrington on Yahoo

Posted by hsin on June 13th, 2008

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.

Posted in Web, Yahoo | No Comments »

Engineering Manager

Posted by hsin on May 25th, 2008

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?

Posted in Management | No Comments »

Technical Product Manager

Posted by hsin on May 25th, 2008

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?

Posted in Management | No Comments »

Coporate parents

Posted by hsin on May 22nd, 2008

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.

Posted in Yahoo | No Comments »