Interviewed by Jose Illenberger / Published February 2, 2006
I got involved with PW because of my long lost friend and highschool buddy, Berger. It was back in my college days circa 2000-2001. I had been involved with a few open source projects during that time (DJGPP, Allegro, and Lua) and was quite active in the DJGPP and Allegro mailing lists.
Tell us about your background.
I am the all-around system maintenance guy for PhilWeavers. I do all the backend programming for the main PW site as well as the mundane system administration stuff.
In my spare time, I write code and people pay me money for it.
I am mostly self-taught when it comes to computer programming. I also have a piece of paper tucked away somewhere that says I have a "Bachelor's Degree in Computer Science". Whatever that means...
How did you get involved with PW?
I got involved with PW because of my long lost friend and highschool buddy, Berger. It was back in my college days circa 2000-2001. I had been involved with a few open source projects during that time (DJGPP, Allegro, and Lua) and was quite active in the DJGPP and Allegro mailing lists.
Berger found me through a Google search, which turned up some of my mailing list posts. Eventually he was able to contact me. It was perfect timing on his part because at that time, I was fiddling around with PHP. So when Berger asked me if I could do some of backend Web scripting for PW, I decided to try it.
The first version of the PW backend was my first "big" Web programming project. The bulk of the code consisted of the Web forum. I wrote the entire thing in two days. Needless to say, it had a lot to be desired (maintainability and the overall system design sucked), but it was a start. There were a lot of odds and ends that needed to be done and certainly a lot of them needed to be done properly.
When I got hired by Philmetro, I barely had the time and energy to do PW. So eventually, I gave up maintainership and it was handed over to AJ. Berg and I still kept in contact back then, even though we had a bit of a spat over some things (some nasty things were said). But hey, we're still friends.
Blahblahblah...
Fast-forward to April 2005. I was suddenly out of work when upper management decided to shut down the local operation where I worked. It was then when Berg again asked me to do PW V3. He had been pestering me to do it since late 2004, but I turned it down because I was busy with my dayjob.
I think Berg was smiling ear-to-ear, like the Grinch, when he heard that I got laid off.
So you are friends with Berger since highschool. Any deep dark secrets we should know about our co-founder?
He has a huge stash of teen pr0n hidden away somewhere, (he likes 'em young). I know where it is, but I'm not telling. Of course, this becomes a bargaining chip, especially if I threaten to tell his wife...
Can you quickly describe what's under the hood in PW V3?
Although still written in PHP4, PW V3 is a complete redesign on the backend part and it took a month to complete the fundamental bits. It took a while for me to figure out a way to import the data from the old site with minimal data loss.
The current backend is based on a framework that I had developed while I was still an employee. It is based roughly on JSP Servlets and it is comprised of mainly three parts: a request dispatcher, a command processor, and an object persistence engine.
The system design is primarily intended to make it easy to add new features (via modules) as well as to facilitate easier maintenance. A far cry from my two-day effort on V1.
If you're up-to-date on Web development, you might say, "Hmmm, smells like Ruby on Rails..." However, I designed and wrote my framework two years before RoR. Though RoR makes me feel like I wasted a lot of effort on my own framework :)
Have you been coding since you were little or did you get exposed to it later on?
I got started on programming when I was in highschool. I had an old Atari 800XL which my father bought for me 5 years earlier. I used it primarily for playing games. I began reading up on Atari Basic and 6502c machine language programming from all the books and magazines that my father had bought along with the Atari.
Back then I wrote code mostly for my personal amusement. My largest project at that time was a turn-based strategy game which was designed by one of our highschool buddies.
Eventually, I got exposed to GWBasic and C/C++ programming on the PC when I was in college. When I was involved with DJGPP and other open source projects, I also learned to program in other languages such as Awk, Perl, Python, Java, and Emacs Lisp.
I still keep learning. Lately I have been fiddling around with C#.
What's with the whole CSS layout resistance? Would you care to explain where you stand?
My resistance towards table-less layouts via DIV + CSS is only temporary.
If you're asking about why PW does not use DIV + CSS, then the explanation would be because Berg did not use them in his templates for the front end. Mind you, I tried initially to convert the whole layout into DIV + CSS but the dynamic parts tended screw things up. I eventually gave up when something would render correctly on Gecko, and then totally break under IE. There were even things that would render differently on different versions of IE.
If you are asking about CSS and table-less layouts in general, the explanation is that quite frankly browser support for CSS just plain sucks right now, with the notable exception of Safari and Konqueror.
You can create a table-less site layout and follow CSS up to the W3C spec. You are just asking for trouble, unless you also write browser-specific workarounds so that your page will render correctly and consistently on all browsers. Then again, work-arounds tend to break when a browser upgrade comes up.
I am all for DIV + CSS, and XHTML. There are a lot of cool and exotic things that you can do with it, especially if coupled with JavaScript. It's all shiny and new and very interesting, but when you are in a hurry to meet a deadline, there's nothing faster than firing up DreamWeaver and Adobe ImageReady and getting a layout done quick based on a bitmap mockup.
I know what I said here will spark up debates (again) on the list and on the forums. Some of you will even flame me (again) for saying these things. This is what works for me. At the end of the day, it's all about getting the job done with minimum effort and optimum results.
As a developer and not really a front end kind of guy, what do you think of Philweavers as a community? Any areas for improvement?
With regards to the community itself, quite frankly, I don't know what to make of it. When I was subscribed to the list (during the V1 era, mostly just to post about site updates), my general impression was that everyone in there was just trying to be better than everyone else and that mostly, it was all about self-promotion. I don't know what that accomplishes since you are among peers and all of you are members because you are *that* good.
Another impression I had was that the community was just another "backpatters club" where someone comes up with a new site and everyone gives him/her a pat on the back. Constructive criticism can be harsh at times and those who do criticize would get their asses kicked all over the list. This is why I think that some have turned to the forums, where they can be someone else, and post their criticisms there. Much to the annoyance of the intended targets.
I don't know if things have changed since then. I hope it has. A community is supposed to be where individuals are able to share knowledge and work towards a common goal. It should also foster self-improvement and encourage collaboration amongst peers. I don't know if this is happening right now in PW.
Was it worth the effort to devote your time gratis for the development of the backend of the community's website?
It's definitely worth it. Since taking up on PW, I have had projects offered to me. As it stands right now, I am booked solid up until April this year. I don't think I'll consider fulltime employment in the near term.
Another thing that has benefitted me is the creative freedom I have. I am free to make design decisions on my own. I can try out new ways of doing things when it comes to working on the backend.
All that and root access to a virtual private server...
Is PW V3 your single greatest programming achievement?
No. My single greatest programming achievement involved so little programming effort on my part. It happened way before PW V3. I had a new motherboard and Linux would not recognize the Southbridge on this board. My PC ran without AGPGART under Linux and Quake3 Arena ran hideously slow.
I did a little research and poked around the source code for Linux and wrote the code to get the kernel to recognize the southbridge on my VIA P4VMM2 motherboard. I sent the patch to LKML, and eventually it wound up in Alan Cox's tree. As a result, it got merged into the mainstream kernel. That for me, is my single greatest programming achievement. I can die happy :D
Gail Villanueva, Cutey Kutitots Interview By Jose Illenberger
I guess one of the major things about blogging is that it has evolved from being just journal entries into something much, mu... read more
Jowee Alviar and Mon Punzalan, Power TM Interview By Jose Illenberger
Team Manila was born from our desire to start a graphic design scene in Manila and be recognized locally and internationally. read more
Bryan Veloso, SXSW Blog of the Year Winner Interview By Jose Illenberger
Actually, I have no creative education. I really loved communicating using the online medium, as I wasn't really that good at... read more
Donald Martinez, The Badongers Interview By Jose Olarte
Actionscript was never really taught, but we had exams na kailangan mong gumamit so we were forced to learn it on our own thr... read more
Luis Buenaventura, Community builder Interview By Jose Illenberger
I still don't consider myself an expert in any of those languages though, but I do know enough that another developer wouldn' read more
For complete listing of great pinoy web designers, click here