Thus Spaketh Idd Salim

Tag: code

The worm, the 3 mice and the rich Kenyan coder

by on Feb.02, 2012, under Coding, Personal

All hail the master coder!!

Oh, pulchritude! Oh, pulchritude! Ohh, how thou possesseth nothing more that just sheer cutaneous profundity.

Ohh, how thy perception and effect withers when the rubber meets the road.

Ok. Ok. Sawa. Ehh! sitatumia ‘Oh’ ingine basi.

Naweza fanya maboyz fulani waanze kufikiria sabuni na kufeel homesick.

Tena naweza tumia another brobdingnagian word ilete noma. Ohh, anajiringa juu alienda stach. Ohh, anathani hatujui kutumia Google. Ohh, anajifanya anajua ngoso na ni ‘bhaite murume’. Fragile egos. Wakenya. So, acha hiyo stori iishie hapo.

As you know by now, sipendi ku-beat around the bushes. Mii huingiza tu mara once! I go in deep. I go blunt. Original content. Mkitaka kujua juu ya Facebook IPO na the Google Olga ‘Firing’, mtanunua gazeti. You did not come here to read duplicated content. That is for half-brains. So, acha leu tudiscuss minyoo, panya na maguru.

The story of the worm

We all know the story of the early bird and the worm. All factors remaining constant, the early bird catches the worm. But with all the real-world factors factored in, the early bird can only, realistically, catch the early worm. If the worm went out last night and over-sleeps, the early bird will have nothing to catch.

Hold that thought

The story of the 3 mice

The mice came up with a better story. The second mouse, that arrives late compared to the first one, is the one that gets the cheese. This is because the first mouse gets caught by the trap. And dies. Engaging the trap, and leaving the cheese lying there for a swift second mouse to cash in. But then comes a third mouse. Who waits for the greedy second mouse to get the small cheese and run with the feeling of VICTORY.

The third mouse analyzes the trap area and the store, then discovers where the small cheese was cut from. Then takes the entire loot home. Gets laid by the finest mice and praised by it’s mice peers. And lives happily and in abundance thereafter.

The Rich Coder

The fables continue. Enter the rich coder. Still a fallacy in Kenya. We are still yet to see a success story.

I am not talking of coders hired by organizations with funding to write code and get well paid. No. This is not the ultimate coder model. I am not talking about the ‘I work at Safaricom’ ama ‘I work for the UN’ type of coders. Not at all. Na nisiambiwe nimetukanana.

I am talking about the real self-made millionaires. I am talking about the One laptop, one idea, one team, one million dollars type of stories. This title is still vacant. This post is still un-taken.

Then comes the self-defensive: “What difference does it make HOW you get the scrilla, as long as you have the scrilla?”. You see, that is the type of reasoning that keeps many of us from becoming our own master. Systems have a shelf-life. A system that was THE SHIITTE in 2008 is just a good thing to look back to in 2012. The question becomes, what have you DONE OF LATE.

And that is where the pride of a coder and the opportunity to be super-paid comes in. That is how people remain relevant to the industry. Bettering yourself. Daily. Looking at the YOU of yesterday and saying: “That fool could not code.”

There is not a single Mobile App in Kenya that has been monitized. Is yours gonna be the one? If so, will it be the early bird, the second mouse, or the third? There isn’t a single IT Company that has done an IPO in Kenya (achana na ma-ISP kama AK nini nini. I am talking REAL IT), will you be the first one?

Tafakari hayo.

Back to code.

Wazi.

5 Comments :, , more...

The launch-early, fail-early mantra

by on Nov.25, 2011, under Coding, Personal

Launch leo. Acha ujinga.

A few weeks ago, I talked about the high standards and expectations we give ourselves and allow society to give us. The system of rewarding success and punishing failure irrespective of factors. Where the end justifies the means and the means are never allowed to justify the end.

Well, Let me begin by telling a story about a male and a female. Then I will explain the Mantra.

I was once in a club with JC and Jose. Shooting pool as usual. And thence passed a hot mamma. By hot, I mean HOTTT. I am not talking about the average Kenyan gals who run on MS-DOS and 1 GB Ram. This chic had it all. If she were a Cyborg she MUST have been running on an over-clocked Core i7, and Ubuntu. She had all the supporting documents and a very nice, big and bouncy future behind her.

So I told Jose, who was oogling : “The worst thing you can do to a hot chic in a club is FAIL to talk to her. No female leaves home just to go sit at the counter looking hot and pretty. Every woman wants someone to talk to her and engage her in intellectual intercourse. The aim should never be to take her home. Far from it! Let that be determined by how smooth your vibe is, how drunk she gets or how cold the morning threatens to be.”

“What if she puts me off?”, He asked. “She is too hot for a guy like me.”, he said. I was disappointed.

“If you think that, then it IS true. You are as smooth, confident and hot as you let yourself be.”, I retorted.”The worst thing a woman can do is say NO or give you attitude. What else? Hawezi kupiga!!”. I was getting angry, so I decided to show Jose How it is done. “Watch this”.

The gal again passed by us and being the observer, I noticed a small bit of fluff on her hair. “Excuse me”, I said. She stopped and gave me the, what-can-you-offer look. I gave her the simba-mla-vitu look. Then stretched and took the fluff off her hair. And I said. “There. You are now perfect.”.

She smiled. “Nice cologne you got”, She said. “Well, babygal, At least I have ONE nice thing. You have at least 7 nice things. And I have only looked at you for 2 minutes.”, I said. I introduced her to my boys. And let us just say, the night went on well.

“Boys, females love originality and something DIFFERENT”, I told them.

The Mantra

Ok. Sasa tuongee biz. Achana na madem. Madem ni wasee fake? Sio? Shoga wewe! Madem ni wa wanga!

We have a sickness in Kenya. A mental one. I prefer to call it the code-test-and-test-until-every-bit-works-100% syndrome. Or in short, Ujinga. Yes, I know, I have been a victim of this. Alot.

You code a system for 6 months, do a demo and get feedback, go back and possibly redo 60% of the code again. Add 10%. Etc. Buda, system itawahi isha kweli?

Meanwhile, some non-techie idiots come along, launch a replica of your system that just has 10% of your functionality, make millions, steal all the TV and paper headlines, win awards, screw all the fine biatches while you are burning midnight oil.

“That system ni fake sana. Hata haina 1/8th of the features yangu iko nayo! Hata hawaja-implement SSL vipoa. Hawaja-optimize jQuery ama SQL cycles zao.”, you say, consoling your stupid self. I know. Been there.

And then comes the lessons

  1. People will not sit there waiting for you to finish your system. Odds are that ONLY you knows what your GRAND-MASTER plan is. Give people something to play with.
  2. People don’t care how good your final system will be. They will not fail to use/register for an inferior system because you are ‘Launching Soon’. Fuck that! Launch today. That is why we have ‘Beta Versions’. Gmail was in BETA for 4+ years. A period during which they got 200M+ users and BILLIONS of USDs. From a system ‘yenye haijaisha’. And there you are hoping to finish your ‘system noma’ soon?
  3. Think of the hot gals you see in the club. They always go home with the ugliest, fattest, smelliest dudes. Wewe bado una-poze na Gucci kwa counter. The gals are not fake or loose. Ni wewe uko slow and shy. Try launch early next weekend. Utaamka una-smile. And your soaps will last longer.

What is better? Launch leo and fail, while you still have time and psyche, ama lunch in 2014 and still fail?

Heh!

Acha nisambiwe nimeongea mbaya.

Back to code.

Wazi!

6 Comments :, , , more...

Why I have settled for CodeIgniter

by on Aug.08, 2011, under Coding, Personal

All Hail CodeIgniterThey all come in different shapes, sizes and color. Anything really. Cars, pens, niniis and kereas.

The PHP frameworks cannot be left behind. I have tried all with some various degrees of success.

I nearly gave up searching and learning and decided to design my own Framework doing all the common things I do in a pre-packaged manner. That is what a framework should do. Then cameth the enlightenment.

Kohana, YII (former PRADO), DOOPHP, Zend, CakePHP, Symphony all aim to address the purpose of a framework. To ease software development. But if I have to spend a month or 2 studying a framework, a new templating dialect, I am better off doing Erlang or Lua with my time. Seriously. By the time you start to master version 1.1, version 1.2 is released. With a completely NEW model.

Rasmus Lerdof suggests that NO ONE should use a framework. He suggests we all write a set of functions to do our common tasks and make our own ‘NoFramework’. I totally agree with this. Also, an analysis of all frameworks and models is here. CI wins.

The common failings are:

  • Bloat-ware : Most systems come with alot of bloat. To just say HelloWorld, you need to load 100KB of files. Whatever happened to a simplicity?
  • Tight-Coupling : Each library depends on 7 others to perform its basic tasks. One missing file, despite being totally unneeded, will render your app unusable.
  • Cryptic OO – Most Framework developers are there to show off and even the most mundane PHP code is OO. Java-like classes to do simple things like DB disconnects, all for showoff. Programming/Coding is hard enough. Why add another layer of complication?
  • Code that Makes coffee – Most development tasks are routine and if specialized code is needed, then plugable libraries are easier to develop/plug-in that trying to understand bundled one-solution-fits-all ‘FrameWorks’

So, Why Code-Igniter?

CodeIgniter is everything a PHP coder tired of doing the same code over and over would wish for to Santa.

I won’t type/copy-paste everything here and pretend to have come up with it so as to get traffic or an iPad, so here goes: Click and learn why.

I will start posting sites I will have done using CI here, soon.

Watch this space.

Back to code…

Wazi.

18 Comments :, , more...

The conundrum of paralysis by analysis

by on Feb.26, 2011, under Coding, Personal

Options. Decisions. Delays. Failures

This is it. You feel. It is well thought.

The system is ground-breaking. The idea is surreal. The investors are all waiting for the beta version. You can see the system from start to finish. On paper. It should have features A, B, C and D. Maybe plus E. Then the project starts.

You have a just few decisions to make. The OS, The language, The ORM framework, The WebServer and just the Database.

You want the best. No compromise. No Substitute.

And so it begins

You need to decide between using Doctrine or Propel or QCodo as the ORM for the PHP Interface. You don’t like Frameworks, so Kohana and CakePHP or Symphony are not even being considered. Then comes another decision. Is it Hibernate or Cayenne as the Java ORM for the J2SE/EE interface? You have heard alot about Nginx and Lighty, but you need to stick to you forever faithful Apache.

A few months ago you heard Salim say MySQL is a toy database. But he again tells you that if your data won’t reach over 5M users/nodes, (of if you could be disciplined enough to design, partition and optimize your MySQL 5 DB properly) you don’t really need to use PostGres or Oracle. That would be an Overkill.

You listen to this annoying Salim fella again. And he swears by FreeBSD. Any day. But then he develops on top of a Debian-powered Meerkat 10.10. Why is he setting up a Debian Cloud?

So you decide. PHP it is. But what about this Python thing all these people are talking about. Why does it make Ruby look like a Vitz?

And such is the technical discussion.

Next up. Product specs. Brainstorming. You spend endless meetings deciding whether the Logo should be pink or blue. Whether you should Colo with UUnet or just pay for Internet alone then host your own servers in-house.

Then Spaketh Agosta

Well, my architecture for the ProjectX4 Java-Based VMNO prototype is quite simple. So, when I met Agosta at MoMo last week and he asked about the project status, I started explaining and before I could finish, the ever-wise Liko  spake. And when Liko speaks, you listen: “Launch Early Salim! Focus on one Killer feature. The rest will be done later. Version 2, 3. You are already developing the 4th game-changer. You haven’t launched the first one yet. When will you launch?”.

And then it hit me. There is a group of people who call a Vitz a Car. Why over-analyze and delayed an already working solution in the quest to give this throng a RangeRover, while a Vitz suffices. Yes. Give them a Vitz, but make it a Vitz pimped with an Alpine sound system and super rims.

So, I have settled for the following setup for ProjectX4. The initial release will run on the following config.

  • Meerkat 64bit, 4GB Ram, 80GB Hdd
  • J2me App written in Pure Java and Runs on J2ME, Android and BlackBerrys.
  • Server XMPP Back-end running on eJabberd 2.1.6 + MySQL.
  • WebService running in PHP 5.3.3/MySQL 5/Apache 2.2.16 [Apache serves ONLY PHP].
  • Lighttpd As a slave server to serve CSS, Images, Videos and JavaScripts of my CDN cloud.
  • ServerSide XMPP Robots written in Python 2.6 on top of the Twisted Framework using ZeroMQ as the AMQP Mimic/Replacement.

As my tweeps know, the release is slated for March 5th, latest. Nothing should delay/extend that this time round.

Back to code…

Wazi.

4 Comments :, , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Kenyan Blogs Webring Member

Possibly related