Yeah. We all know this. You connect to the net hoping to just check your emails for 5 minutes, read your Twitter TL for 2 minutes and that is that. Start coding. You spend the 7 minutes above and from the TL, you see a link from MrMajani. And another one retweeted by Satchu. One article leads to another, 2 hours later you are still YET to start coding. The thought-processed is already messed up.
Where is that wireframe? Ohh, wait, was this piece of code to be done as a PHP CLI script or Python? You can’t decide now. Your energy is all sapped. But KESHO, uta-focus ile mbaya. Acha leo iishe hivi. Kesho pia ni siku.
And such is the conundrum we find ourselves in. The internet becoming your enemy [Yeah: Had to say that to make the Kenyans feel good. Always blaming everything else for your own ails rather than look deep within oneself and realize the problem is actually... drumrolls... YOU]. Ok, back to reality. Actually, your LACK of DISCIPLINE becoming your enemy.
I was wasting time on the Internet today reading an article on about how to avoid time-wasting distractions on the net and it appears that we all have a common problem. Social networks and information aggregators tend to CONFUSE us, rather than ENLIGHTEN us.
As disciplined programmers, the biggest problem we face is that of information overload, Like I told MoneyAcademy. There are soooooo many decisions to make. All due to information. I know of MySQL gurus who have never heard of PostgreSQL or Oracle, but make you the best, fastest and most robust databases you can ever desire.
Also, unfortunately, I know of a young programmer who knows kidogo-SQL-Server, Kidogo-Oracle and ‘Hata CoughDB na NoSQL Kiasi’. Operating in slut-mode, touching and sucking a little bit of everything, but mastering and marrying none. Such is the sad effect of Information Overload.
The comes decision time. The project needs to be handed in. What do you use as your PHP Framework? The slow and feature-rich Kohana, CakePHP and Symphony or the Super-Fast and Slim Yii, FatFree or DOOPhp frameworks? What database do you use? MySQL, SQL Server, Interbase, PG or Oracle?
What do you host your app on? Apache, Nginx, Lighttpd, Mongrel2 or (GodForbid) IIS (*Shudder!!*) . Do you create a cluster and scale out as needed or do you Virtualize and scale up as needed?
In the end, it all comes to experience. No one solution fits all. There are tried and tested methods, however.
For example, at Symbiotic, we have the following setup:
- A rackspace cloud of Debian (Ubuntu 10.10) Servers and a local setup of Debian (Ubuntu 10.10) Servers. Full Sync, Full redundancy.
- Webserver: Apache 2 (for PHP 5 with eAccelerator, HTTPAuth, Rewrites). Lighttpd (For service CSS, JS, Video, Images). TomCat for JSPs.
- DB : MySQL 5, MemCached, HA Master-Slave setup.
We use technologies we have fine-tuned and researched on over years to make sure we have the most robust setup.
So the challenge is yours. Master A FEW, or know alot. Kazi kwako.
Back to code…