Tuesday, May 27, 2008

Genius must be different?

I probably know personally 2 persons in my life which I regard as genius (technically, at least). They do things differently than the rest. For example, when Cobol is the easiest language to develop a business application, someone have to use C with Cursors to impress. When C++ is fast enough, someone have to use assembly to speed things up.

I know both of them since College. Lost contact with one since his sudden dramatic disapperance; He is married now with his college sweatheart, good for him. Got in contact with the other one recently for some business partnership, but it didn't work out. But he manage to tick me off immediately when he get in touch with me few days back after the not so "plesant" break-off. Suddenly, I wonder does all Genius behave in the same manner?

The following are the observed behaviors of both Geniuses:-

  1. Generally both have a strong tendency to boost and to impress others, but I think they deserve it (but just a wee bit annoying when you do it too often too much).
  2. Both would try their very best to avoid doing the boring and mundane work, even though it is for the collective good. For example, they would only code interesting stuff and won’t do any documentation; avoid following any standards or procedures. So, they aren’t really good team player but work better as a lone ranger.
  3. Both like challenges very much, and take pride is solving very difficult problems (to claim bragging rights).
  4. They might be generally selfish (self-centered) and doesn’t care much about others besides their own interest, and they do it naturally and subconsciously.
  5. Once they set their mind on something or a concept or ideal, it’s a futile effort in convincing them otherwise (generally stubborn).
  6. And they probably think there is nothing wrong with them, perhaps the problem lies with others.
  7. They indeed read a lot, very knowledgeable, and have creative ways to solve even the simplest problem. When you know it’s hard to achieve their level, then you would know that they are Genius.

Monday, May 26, 2008

Agile Business

I might not have known a lot about Agile Software Development, but I kinda like the word “Agile”, which to means sounds like something light and fast. In fact, I kinda prefer Agile Business, a business which is lightweight and move really fast.

I know of a group of friends who setup a business, with around 5-6 partners. With such number, the obvious drawback is slow decision making and inconsistent feedback. You need to get a majority (if not all) the partners together in order to discuss on a certain matter (which is not easy), before taking a vote to make the decision and decide on which unlucky person have to take up the responsibility to execute the task. Weekly meeting is painfully slow, and not everyone will show up (much like your Dewan Rakyat, sometimes absent with painful and long winding debate without results). As the Chinese saying goes, one mountain can’t have 2 tigers, and you can’t have 2 decision makers making different decisions. It’s not that democracy is bad, just that it’s painfully slow and might not be efficient.

The scenario is just too typical; perhaps a few tweaking might change for the better. Perhaps a strong and charismatic leader (ahem! RARE!) is required to lead all the generals, and each general/minister should a different responsibility. As always, things will never be equal or fair; thus lots of sharing, understanding, compromise and faith is required. Should like Marriage right?

Then we have these Giant companies where the decision making is painfully slow. They might want you to deliver yesterday without even issuing you a Purchase Order. The administration of the company could not keep up with the speed of the business. Too many red tapes, too many procedures, and no one really care about productivity or doing business. People are too busy being compliance rather than trying to make money. In such situation, we need a powerful person who can overwrite all the procedure and give you a decision on the sport without going through all the bureaucracy. An exception is the hierarchy, and it’s needed.

Me, a really micro business and probably agile, but with little resources and no army at my disposal. I can’t consider it a real business yet, since it won’t run without my presence (I am working towards that direction). Decision making is lightning fast and zero communication barrier internally. Too bad the business can only be what I could become, expand because of me and limited by me at the same time. I could take in a partner (perhaps a strategic business partner, it's like relationship without the marriage), but the role and responsibility should be modular and non-overlapping. He should do what I couldn’t do or not good at; He should complement me; I should delegate if possible. The business is pretty much Agile (perhaps the most agile in the world), just that it haven’t make more money than those non-Agile business.

Anyway, I enjoy the agility :) Now, about the money making part ...

Thursday, May 22, 2008

Gunung Yong Belar GPS Coordinate and Map

Tanah Rata - Kampung Raja - Blue Valley - Yong Belar

Blue Valley - Kem Tudung Periuk - Kem Kasut - Yong Belar

Altitude View

Yong Belar Path and Information

View Larger Map

Tuesday, May 20, 2008

Slow Death of My Handy JVC-GR-DX37AG

I can sense that the death of my handy JVC-GR-DX37AG Camcorder is near (the record button is not functioning). I had her since early 2005, remembering the 1st major production is 3 Day Taman Negara Adventure. With 117 YouTube Videos and a dozen of unprocessed MiniDV, I had to admit she had capture a lot of wonderful memories for me. And she is the reason that I don’t have a digital camera, haha.

Though Video Camcorder does not capture beautiful photograph like a SLR, but it does capture memorable moment, funny expression and timeless speeches. It makes me laugh and never get tired of watching it again and again.

I was thinking of getting a new HD Camcorder, like JVC GZ-MG330AG, which is below RM 2000 and the lightest of the range (360g plus battery). There are 2 stoppers for me. 1st of all, there isn’t much improvement in terms of image sensor (1/6-inch, 680K-pixel CCD). Secondly it cannot be used in low pressure area (more than 3000m or 10,000ft). All Malaysian mountains are below 10,000ft except Gunung Kinabalu (13,455ft), but too bad it cannot be used for my Annapurna Circuit where the highest altitude could reach 5,300 metres on the Thorung La pass.

So, I pray that she could be saved through some cheap local service.

Software Shipping Date that keep Slipping

How many times that I wanted to complete a software project by next week, but end up finishing it days, weeks, months or years later. That’s the irony of software shipping that which even Microsoft’s Windows Vista have to slip by years and still fail to reach perfection (or decent usability).

I wanted to revamp MMW Property to have the same functionality as MMW Food, which shouldn’t take more than a week to do (programmer’s optimism kicks in). Then I found out that the framework I am using had been upgraded to version 2, so I decided to use the latest version (oh no!) to ensure continuation of support and better feature, and perhaps cleaner code. As usual, the migration path isn’t exactly smooth as expected (but constantly being denied). Since I am in the process of “upgrading”, I might as well make the code more reusable, thus putting in lots of effort to make them modular in hope that it might benefit me in the future.

Days and weeks just slip by me and I have yet to complete the work, and my attention is required to attend to other projects in between. I “planned” to finish it by end of February, but I only managed to deliver the minimal version by middle of May. At the end, I have to cut features and do the bare minimum just to push this product to Live mode. In the last few days before Live, no matter how much features I cut and how hard I push myself through the nights, I just couldn’t finish the work by that day itself without at least a few more nights of delay. That’s the curse of software development that it just couldn’t be delivered on time.

So, what caused the delay? I would probably say Changing of Framework, Too Reusability Conscious and Interruption by other Projects are the main culprits (but I might not want to sacrifice them). Software Development for my own consumption might need to go on and to be maintained for years to come (by Me!!!), thus I have to make sure it could be maintained properly and remain extensible for the next few years to come. But doing too much is no good as well, as we spent so much effort on something which we might not have the opportunity to reap the benefit in the future.

One thing is for sure, if the deadline is the utmost priority (where you would be screwed or not paid for being late), then please don’t develop/upgrade the framework. If time is scare, screw reusability. Just focus all your time to develop what the project requires you to develop, not spent your time developing a master piece. And that’s the main reason most software are so darn difficult to maintain out there, because we have demanding customer which want the product to be delivered yesterday. Isn't not totally the customers' fault as well, just that software development could get pretty tricky at times (what to gain and what to give up on). But if they slightly more fate or being more understanding, that would help greatly. If the deadline is not negotiable, then prepare for all hell break loose.

Anyway, MMW Property is out, I am happy and would probably need to spend another week to touch up, followed by years of enhancement and maintenance.

Friday, May 09, 2008

We all need a purpose which never ran out

Sometimes we spend a whole life (or a long period) chasing for something, and what will happen when we finally got it? Is there anything else worth fighting for? Or we are not supposed to reach the end of road, while find some other things in between.

Sometimes I was so busy and tied up, and when I was free, I have totally no idea what to do and feel at lost. We all need a purpose which never ran out. That explain why certain people refuse to retire, especially when you like your work.

We all need a moving target to keep us alive.

Lightning Speed of Scripting Language (PHP vs .NET)

Now I recall an old article about the original developer for Yahoo Store, where he utilizes the flexibility and development speed of LISP to beat his competitors. It bring to light one thing, you could actually win by technicality, or by choosing the right programming language.

Nowadays everyone is using .NET or Java, which is pretty good languages. But I realize one thing; development on these languages is slow, it too bulky and move like a giant (VB6 is fast for development, but not so good for big projects). I have to make proper declaration, handle type conversion, too OO centric with all the patterns, compilation with its strict language rule and etc. Slow? No way. You will know that it’s slow, until you found something faster.

I was first impressed with the development speed of Ruby on Rail few years back. I tried it and found it to be quite enlightening and fast in development, but the language and platform isn’t quite matured yet by then. I like PHP as a language (cool and easy, with reallly intuitive function), but it lacks a good framework like Rail, until I found CakePHP. Its libraries and resources on the web is pretty abundance, and the platform is pretty common and efficient. The language is cool and useful, and scripting is fast and easy to develop. CakePHP Framework which was inspired by Rail is pretty good, and the MVC pattern is really good for productivity. I do a lot of ASP.NET development as well, but I feel that I could code faster and better on PHP on Cake, at least by 50%. I could push out a new feature in a day or two, and deployment is a breeze.

Scripting language is not perfect, but I think it suited well for web development given a proper framework like Rail (MVC style). .NET is pretty comprehensive and powerful for Desktop Application development. Now I have the same feeling as Paul Graham while he was at Viaweb developing the soon to be Yahoo Store.

Thursday, May 08, 2008

Why am I so picky in choosing a way to make a living?

My dad asks me to study well, so that I could get a good job. I have no much of a problem with that, work is fine, and pay is okay. Maybe after too long in the business, and seeing the same problem repeats itself, I kind of want to find a way out.

I don’t like dealing with customer, or should I say I don't like dealing with demanding, difficult and unknowledgeable customer (which most of them are). That’s the pitfall of developing customized software for customers; they have no idea what they want, keep changing their mind (or have new idea) and will try to squeeze all they can. Why not leave software development altogether? The next thing I could think of is being a farmer, which I have a skill/experience (interesting though, high-tech organic farmer).

I need to leave customized software development, which leaves me with 2 alternative choices: Product Development or Internet business. Product Development is pretty cool, and I had a few ideas, just that it might take up 3-6 months of development time and I have no idea how to sell it, too risky. Internet Business? Sounds good, no need to deal with customer directly, but it takes time to build it up.

I am pretty happy with Malaysia Most Wanted FOOD and PROPERTY, just that they are not quite there yet (but really fun to work on). I am thinking of developing a free Online Shop to boost local e-Commerce, which might be fun (something like how Yahoo Shop/Viaweb started). Perhaps online Invoicing or Customer Relationship Management software? Problem is selling them.

Why so picky? Everyone is taking shit from the customer, why not me? I have very little patient for them, and I feel like smacking them and scold them as if they are naughty children. I guess that is not very good for me psychologically, I want to have a happy life with a happy job. As long as I can afford to make a change, I think I should. My dad had been trying to convince me back into employment since I left employment. It’s not that employment is no good, just that the system work against me as I get older. I don’t want to be held hostage by the company when I am 40, and have to take shit from everyone.

So I am picky because I can still afford to make a change, and I want to stop my own whining.