A productive developer and programmer is someone who understand the economic driver of his/her company. He understands that it is his sworn duty to develop a software that offer some values to the user. A developer must continuously ask himself:
Is my code offers any value to the user?. Did my commit at the end of each day really make a different in customer's life ?
Continue reading Productive software developer
For 2 weekends in a row, I had the pleasure of joining and organizing 2 cool events. On 26th & 27th July, I attended an event called Barcamp. It was a highly technical and interesting event, that revolves around web developer community in Malaysia. Although it is meant to be a anti-conference event where everyone can speak whatever they want, participant are yet to fully warm up to the concept, which I personally think is great. I didn't stay that long due to other commitment but azrul.com does sponsor the event and I'd be happy to sponsor the next one :-)
Joomla Day Malaysia was held on the 2nd Aug in MidValley. This is a community-driven event which main objectives is to introduce Joomla and enable all Joomla enthusiast to meet and exchange their experiences. I had the pleasure of becoming the Project Manager for this event. However, I do think some poeople misunderstood this event, thinking that it is a "training" conference and obviously, they'd be disappointed.
Continue reading Joomla Day Malaysia + Barcamp
This is something I should have written a long time ago. I had the opportunity to give a talk on Joomla SEO at JoomlaExpo Chicago last month. My wife and I took the opportunity to spend some time in New York, and boy it was an awesome trip!.
I love New York! it is a huge huge city. Makes me feel like I've been living in some really tiny kampung all this while. It's sad!. Seriously, I came back a changed man. Believe it or not just being there in a bigger place, really widen your horizon. It completely changed what you think is possible. Everything seems possible.

Continue reading My awesome New York trip
I have been drowned with work these last few weeks. Those time management books can only do so much, and until you could find a book on how to literally bent time-space continuum , we're all stuck with 24 hours a day, same amount of time as Jack. So, what shall we do.
My answer is simple. Do less work, get rid of half you task, aim a bit lower and be happy. You might think that you're letting go some good opportunity, but with more time to relax and think, you will eventually think of something better! So, don't worry too much about it. Remember, the more time you spend on "doing" , the less time available for you to think out of the box. Relax, take things easy and don't worry if you're not making your millions yet today, tomorrow is still there...
Today would be the last day I will spend on my Ferrari. I had it for about 2 years and it was good. It was state-of-the-art when I first bought it and was a real head-turner. People would stare a little longer than they really should and occasionally, someone would just say it out loud, "hey, nice Ferrari". It was red and runs very hot, a little too hot sometimes. But with everything else in life, it started to show its age lately. It would not start properly and doesn't run well. Technically, by current standard, the performance is nothing to be proud of. So, I've decided to find a worthy replacement.
Continue reading Last day with my Ferrari
I will be giving a talk on search engine optimization technique and using rss feed in Joomla for "SEACEM e-MEDIA Workshop Malaysia 2008" 16th to 17th February 2008. My talk will be centered around introduction to some of the search engine optimization technique that are available in Joomla, how to use and take advantage of some SEO tools that are available, some general SEO technique. I will also tell my audience to ditch Joomla built-in syndicate module and use a more powerful RD RSS component.
Might be too late for you to register for this event, but I will post the slides here soon. Continue reading SEACeM workshop Malaysia
Morten Lundal (that digi dude) think that in the future, no one will wear that silly, tiny piece of fabric around your neck, also fondly known as "ties". He was absolutely right. Those green thing that visit us from the future, (our great, great grand kid doing some, time-traveling joyride) seems not to wear much clothing at all. I mean, hey what's the point right? Thanks to global warming, earth is hot enough already. They also perhaps have been "taking the time to re-think its relevance" and figure that clothing is a waste of time and money.
Seriously, I think Mr Lundal, have a very good point, that is to challenge existing beliefs (which by the way, he manage to write down just before I am about to erase any thought of his column). But to take it on the humble 'ties' is just cruel. Those ties has probably done a lot of good, compared to say, the pointless underwear?
Continue reading Do we need the tie?
I was just another lazy Saturday. Woke up, take a shower, check my email. Wops! over 400 unread emails and 8,000 spam!. On a normal day, I'd get no more than 20 emails. Am I inside some spanking new reality show called, perhaps 'Spammed' ? Did they put a camera around in my room to see how i react? Or maybe gmail spam filter decided to take a holiday break? , or someone hates me so much that they decided to spam thousands of people and use FakeName@azrul.com as the reply-to email ? Whatever it is, it looks like the emails keeps coming every single minutes and I am forced to put ton's of filter to fix this.
I was invited to MDeC, InnoTech.my 2007 event on Friday and Saturday, (7th and 8th Dec). It was an invitation-only event and I had to go for an interview to see if I am actually fit to pitch. The whole idea of the event is to bring in foreign VCs and to get local malaysian company to pitch and interact with them. It was a good learning experience for me. I never actually pitch to anyone for money for any of my project so far. Talking to these vcs and other budding entrepreneur does gives me some idea of where I am now and how much more work need to be done. Nonetheless, the event does somewhat embarrass me, and makes me wanna say a few things to other Malaysian entrepreneur.
Continue reading InnoTech.my 2007 experience
You just purchases an unlocked iPhone and have this cool 'installer' application installed. Happily, you keep on adding more application on your iPhone. You do know that the screen can only display 16 icons and you're not quite sure what will happen if you have more than 16 apps installed, but you install it anyway, thinking that a phone this smart, surely it can handle it, perhaps it will nicely scroll like everything else.
Ops, your 'Installer' apps disappear, and shock! horror! you can't scroll down? Here is what you can do.
- Firstly, install iBrickr, here. What it does is, it allows you to view all the files in your iPhone, which we will later edit manually.
- Run this iBrickr
- You will be able to navigate the filesystem inside your iPhone. Go to /System/Libraries/CoreServices/SpringBoard.app
- Find a file named DisplayOrder.plist and download it to your pc. It is actually just a XML file. Move the installer entry up the list, or just delete a couple of entry at the top. Please make sure you have the origianl copy of this file somewhere.
- Upload the edited file back
- Run your iPhone again. You should be able to see the installer icon now. No time to waste. Install the springboard application.
- After a reset, you should be able to scroll the icons on your home menu now. Restore the old DisplayOrder.plist. Done
I hope I've just save some of you guys from crying....
We recently make a move from linux (ubuntu) server to a windows server (XP Pro) just so that we can run the new Fogbugz 6, which is only available on windows for the time being. I just can't wait for the unix/php version which seems to be taking forever.
The Fogbugz move from linux was painful and took me almost the whole day, but that's another story. Everything seems to be running smoothly when I realize that loading the site from home seems a little slower. Naturally, the finger pointing would start at streamyx, but pointing fingers won't solve anything. My second instinct was to find some caching, accelerator or compression software to speed things up. I always rely on APC cache for PHP/Apache server, but ASP?. A few more googling, it seems that page compression in IIS5 is either not working well, or simply doesn't exist.
Then, I found this, IISExpress. A page compression for IIS. It actually sit in between your IIS and the public port, intercepting all calls, and compressing the output. Installation was fast and easy and page load time went down considerable. No downside, just performance, performance, and more performance! Compression ratio hover around 87% which is great.
So, if some reason you are still stuct at IIS5, give this app a go.
Over the last few month, I have been really busy trying to build a solid team for our company. We were seriously understaffed, yet I exercise a lot of restrain from just hiring anyone I can get. I only want the best, and I won't compromise.
I had a couple of setback in finding the right people. We had a good developer earlier this year, but he decided to pursue some other things after just 7 months. I partly blame it on myself for letting him getting bored with the (slightly less than desirable) pace which the company was moving. To my defence, I had some personal problem that drain me completely during those few early months.
We were also overwhelmed with support requests. We have a very strict policy of providing excellent support and replying every single email within 24 hours. This can sometimes takes a big chunk on our daily time. As a result, development work slows down to a crawl. We haven't had any major updates for a few months, and this upsets the customers. I was desperate with the support issues and decided to make a compromise with hiring a support guy. We hire one guy, although lack serious PHP skill, did very well in the interview and I reckon was smart enough to handle the technical side of this. It was a major disaster, and I learn a very important lesson, be very careful with smooth-talking people. Sometimes, that is the only thing they are good at. (But I reckon my ex-tech guy would do well in sales line! )
Another issue that I had was having someone who is too ambitious. Yes, I want my team member to be ambitious and passionate about what we do, and it is actually a trait that I value highly. But at a point, it can be very disruptive if it is not aligned with the company's direction. You can't be an affective team member if you are busy trying to close your own sales. Thankfully he understood this and decided to focus on on his own work and not dragging the whole situation into a lose-lose situation.
Starting this November however, our company grew to 6-people strong, 4 of which are developer, with 2, non-technical staff. As always, we manage to hire everyone while maintaining our profitability and strong cash-flow. You'll be able to find out who they are from our main site soon. For now, I have a good feeling about the current team, and I expect great results from every single one of them!
Lets get to work boys.. (and a girl)!
This is my new coding mantra. Never ever leave unfinished, incomplete, buggy function behind. The chances are, you are going to forget about it and soon enough it becomes a PITA bug to track down.
Once you start writing a function, you must finish it at all cost. Yes, you can feed your cat later. Those tax forms can wait. Lock the door and your wife will have to wait outside too. You don't believe me? Ok, go ahead write that function halfway through and leave it there. Give me a call when you're ready to wash my car (after getting fired from your job!)
I was invited by Tom from Joomla Juice to talk a bit about our work for his regular podcast at www.joomlajuice.com . I said ok, knowing full well that I have to confront my worse nightmare, my own voice!.
Yes, I hate hearing back my voice, especially after it have been chopped into few thousand packets of data, travel half way across the world, and reconstructed by a small, vibrating piece of paper.
Yes, it is possible to use the excellent codeigniter framework on Joomla. In fact, I am surprised that it work pretty well with very little modification. The nightmares lies in the URI routing. Joomla uses the traditional uri query method while CI promote the use of segment based uri. I haven't solve this issue completely, but we I am very confident that this can be done.
Anyway, below are some of the objectives of this project
- to provide an alternative framework to develop an application for Joomla
- make sure the application can stand on it's own (running in a standalone mode, without Joomla)
- recode a few key Joomla functions such as user access, some Joomla helper function as CI's shared library
How to use this
Just use your Joomla installer, and point to this file. Done.
If you notice the component is a little big. Codeigniter is bundled and will automatically be installed if required. For this example, please delete your /codeigniter folder if you have one installed as there is a tiny tweak to index.php file.
Notes
- Do take a look at install.ciexample.php to see some rough work on the CI installer.
- Note how the database is automatically configured at install time, so user do not ever have to edit the config file
- Only 1 copy of the application file exist for both standalone and Joomla component
- Joomla component only have 1 single file, that simply call CI's index.php file
- currently only 1 controller is supported per apps, but this can be easily fixed with some routing rules, will fix this later
- When a different app is installed, it will have it's own folders (controller/config/views/etc). This makes different apps cleanly separated and will helps avoid conflicts. To remove any apps, just delete the folder
Test URLs
http://localhost/joomla/dev/index.php?option=com_ciexample&Itemid=26
http://localhost/joomla/dev/codeigniter/index.php/ciexample
http://localhost/joomla/dev/index.php?option=com_ciexample&task=listcategory
http://localhost/joomla/dev/codeigniter/index.php/ciexample/listcategory
Download
com_ciexample.zip
Templating in PHP used to be a very touchy subject. Some people hate it guts arguing that PHP itself is a template language. In 2007, I think most of PHP developer agree that using a template to separate the code and presentation part is a good thing. But some template simply separate php code and HTML code, which I think is missing the big point. What's more important, as Smarty put it, is to achieve "the separation of business logic from presentation". So, now, we fight over which template system to use.
Continue reading The best PHP template system
I've decided to take a break from coding for a while to focus on teaching, passing some of my knowledge on Joomla development to my fellow Malaysian developers. I will conduct a series of classroom training session on Joomla, primarily on development and coding. I've plan a series of 3 classes for the next few months.
- Joomla for Developers (Component development using Joomla 1.0.x)
- Advance Joomla for Developers (Advance API, mastering mambots)
- Joomla 1.5 (Making the best of 1.5 MVC framework)
The first class of this series is already open for registration. If you are interested, please register quickly as seats are limited. I want to limit it to 20 seats so I can give enough focus to everyone. If you have any question, feel free to write a comment here.
Somehow, I found this blog entry at the perfect moment.
I have the bad habit of being unable to say “no” when something comes along that I think will be a good opportunity. The truth is: I just don’t want a good opportunity to pass me by that I will regret later. The problem is that, in accepting these opportunities, I’ve caused myself to become needlessly overwhelmed, and I’ve even hurt my relationships with other people because I’ve let them down, being unable to pull through and finish certain things.
However, now I’m going to have to start drawing the line and putting my foot down. I need to learn to say “no” to things I know I can’t handle right now, even if I think I’m passing up an awesome opportunity. This is what’s best for me and my family. For the first time in two years, I have no side projects (other than Atlanta PHP), and it feels good. I feel like I am actually in charge of my time management, and I’m not overwhelmed by the weight of various projects all around me. I do have a few things lingering around, but I’m going to get them set up and ready to turn loose on the community, so that others can be in charge of them. Look for these soon.
It sums up what I am going through right now nicely.