Fun with search engines: RoR vs Django vs cakePHP vs cherrypy vs J2EE

December 22, 2007 § 4 Comments

Below are the results of comparing RoR, Django, cakePHP, CherryPy, and J2EE:

  1. Google Trends: Notice the sliding decline of J2EE
  2. Sucks-Rocks.com: Notice that J2EE receives 2.6 as of today
This comparison is definitely “just for fun”, but somewhat reflecting my general sentiment towards Java.
More importantly, CherryPy is rocking real hard! Its simplicity is way beyond anything else I have ever seen:
  1. Install Python
  2. Install CherryPy
  3. Make Web Application. That simple!
  4. Optional, if you need database, slap SQLAlchemy as the model layer.

 Luckily, based on this 1 information below, job growth in awesome languages is increasing.

ruby, python, perl, java, php Job Trends graph

Extra Info:

Some of my thought about Software Architecture

September 4, 2007 § Leave a Comment

Upon various drinking occasions with fellow developers, there are a couple of wisdom worth sharing about software architecture. Enjoy…

Design Pattern:

Don’t do some of them because James Gosling said so. Don’t do some of them because the book said so. And more importantly, don’t do it because your blue suit client demand you to do so.

Use design pattern technique based on necessities and careful consideration about the feature’s purpose.

Don’t just use design pattern that you only know. Depending on the requirements, sometimes you just have to learn new design patterns. Better start learning now rather than never.

Polymorphisms:

Be very careful with it. Don’t over do it. Nobody wants to see 10M lines of stack trace.

Remember that the purpose of polymorphisms is to re-use parent object’s properties as much as possible. Extending excessively cause object’s behavior to keep changing throughout software’s life cycle.

Web Frameworks:

Which one is really good for you? Is the company you are working for a JAVA shop? Is the application that you build need Perl? The answer of this question depends on what skills you already have. Unless, if you make an application for the sake of learning something new.

CakePHP is awesome by the way, but that’s me being a zealot.

If you think a framework sucks, is it because the framework really suck? or is it because you don’t want to learn it? or it’s because the learning curve was huge? It is best to stay objective when reviewing or using a framework, you might miss some awesome features.

Ain’t nobody cares about your choice of framework, as long as it get the job done.

Scalability:

Scale what? How to scale it? It is very important to be able to identify which part of the application that needs to scale well.

Software/Jargon Zealotry:

Between friends, the zealotry is fun (i.e. OS X rulez, Windoze sux) but in professional setting, this is bad. Not because it would make you look “unprofessional”, but because it will clouds your judgment.

Not everything needs to be Service Oriented Architecture & definitely not everything needs to be AJAX.

Ruby on Rails may be cool, it is actually so totally cool, but the performance may varied (depending on the Gems and many other things).

Sometimes reading Slashdot too much makes you think that all of your choices sucks big time. For example, client-side development requires AJAX, or Flash, or Java Applet, or Browser plugin. All 4 of them suck big time in different categories. Maybe it’s best to just pick 1 and read more API.

I think Java sucks, and becoming suckier in every upcoming version but it is de facto standard for blue suit jobs. If I’m starving, I will code in Java.

Debunking Old Myth:

Just because Javascript/Flash used to sucked, it doesn’t mean that both will stay suck.

It is true that IE 7 is still suck, but try opening IE 6… you will realized that the world had become a better place. In addition, Firefox was and is still awesome but the memory usage is still brutal.

Scriptaculous was great, but there are others which is flat-out better now, i.e. Mootools or Mochikit. Why I said that Scriptaculous was great? Browser memory is precious and Scriptaculous is not really efficient, new Effect is always creating a new object as opposed to recycling existing Effect object.

Resource:

IBM – Best Practice for Web Developers

Gotapi.com: Finding documentation has never been so easy

September 2, 2007 § Leave a Comment

For readers and all fellow developers: Finding documentation has become less of a pain. Thanks to Gotapi.

Currently they have:

  • HTML/CSS/Javascript. Too bad they don’t have MSDN Javascript.
  • Javascript UI libraries.
  • XML
  • C/C++ libraries.
  • PHP
  • Ruby on Rails
  • Python (Reading from blog.gotapi, Python is 1 of the first documentation)
  • Perl
  • Erlang
  • MySQL
  • and much more…

I highly recommend readers to go check Gotapi. RTFM has just gotten easier.

References:

No waaay! AJAX family tree!!

August 7, 2007 § 4 Comments

I knew sooner or later someone would have going to make this: geni.com

It’s ajax family tree!!!

Just to inform readers, I attempted to create family social network called bbster (pronounce: baby-ster) last year, in which the main feature is AJAX family tree.

The project failed half way because divorce made re-drawing the family tree rather difficult. Thus, I wonder how geni would handle divorce in their family tree. I was using cakePHP as the project’s framework.

Wow, I knew that someone would thought of it sooner or later, but not this soon.

Congratulation Geni team!

UPDATE:

Obvious glaring fact that I overlook, Geni.com use Flash as opposed to AJAX. Thanks to Scott (smhill) for pointing it out.

CakePHP: Mambo is using Cake!!!!

July 30, 2007 § Leave a Comment

for Real!!!

What is Mambo:

Mambo is pretty well known, 6 years old, open-source CMS, of course using PHP with typical LAMP setup.

When will they use CakePHP: Mambo Version 5.

This is yet another nod to CakePHP as the most awesome web framework on planet (extreme hyperbole pun here).

Reference:

CakePHP: book for newbies…

July 30, 2007 § 1 Comment

is almost here.

David Golding is the author, and here is his announcement about it.

Update: December 29th, 2007

Couple of the chapters are available here.

There’s also discussion forum about the book.

If you cannot wait to get started on CakePHP, see Resources below:

CakePHP: getting list of all of your controllers

July 30, 2007 § Leave a Comment

This tips is written by Felix Geisendörfer aka the_undefined. He is waaaaay involved with CakePHP community.

His blog is recommended for readers who enjoy baking with CakePHP.

Zend Framework… (Part 1)

June 5, 2007 § 1 Comment

Is intriguing and disappointing (a bit) at the same time.

Disclaimer:

This is just part 1 of what’s going to be an ongoing reviews. I decided to do the review this way because I realize that 1-2 days is definitely not going to do the framework justice. The review would take weeks at the very least.

So, let’s talk about why it is intriguing:

It’s web development framework from the official PHP folks. Of course it’s gonna be great. There are lots of PHP developers who are excited with this very thought, me included. Granted I’m late in the party.

Zend framework finally reached version 1.0, it seems to be ready for prime time? Let’s give it a shot.

Reading at the manual and the source code a bit, everything is a component in Zend Framework. Awesome! It seems to have everything I need and more. Once I understand how the component gets called, I’m sure I can develop a component that’s also plug n play in CakePHP. One component to rule the web!

Lastly, My my my… The directory structure is very familiar. Reminds me of RoR and CakePHP… especially CakePHP.

Now let’s talk about what makes me iffy at first:

I swim in RoR, CakePHP style framework for quite some times now. Somehow, I’m starting to like to be hand-held. I know, i know, that sounds bad. Software developer must make their own tools! With their own conventions! and their own configurations! I’m a bad developer for wanting the tools to spoil me.

Ok, enough with the guilt trip. Zend Framework doesn’t force me anything. It seems that I would have to write my own index.php, initialize the Zend_Db or Zend_Cache myself. Not a big deal, I’ll just have to get used to the new mind set.

But that doesn’t mean Zend doesn’t have any conventions. From some tutorials I saw IndexAction function name inside Zend_Controller. That’s an interesting naming convention. Reminds me of Struts Action in JAVA world (Shivers…….).

But what would be the real kicker is:

How performant is it? I haven’t been able to find some data that shows the performance capacity of Zend Framework. If readers have some data, or personal experience with it, please share those to me :)

I have yet to see what it can deliver better than CakePHP. But! (This is a big But) This is just the first review. I have yet to complete an application with it.

Stay tuned. Second review will come after I created a blog engine with it and stress test it. That being said the second review would be about performance.

CakePHP: Sanitization…

May 30, 2007 § Leave a Comment

is a very long word and difficult to pronounce. But hella useful. Waay useful.

It’s recommended to use sanitization in all of your controllers that serve web form.

Summary:

Sanitization helps trimming out undesired tags coming in from your view pages. Thus, bad <script> tag will never make it to the database.

It’s a good handy helper function.

References:

Lesson I learned from Mingle2: The dating Site…

May 15, 2007 § 1 Comment

On how to be uber-productive in using my time for developing web application at home.

Sometimes, when day job became mundane, building app at home can certainly bring satisfaction back to my programming life. Unfortunately, building app at home faces the challanges of:

  • Me being overwhelmed because the task seemingly daunting and huge.
  • Attack of the unwanted la-la-land imagination on how the app would be big and grand and well known.
  • Building the app without purpose, basically, I’m building the app just for the sake of technical curiosity.

Mingle2 is the runner-up of SEOmoz’s Web 2.0 Award in Social Networking category.

The creator’s blog, which you can read here, explains how he built a complete full-feature dating site in only 66.5 hours. THAT, is very impressive.

I will quotes some of his experience here in this blog:

Identify an Opportunity
I saw an opening and I took it: I knew I could build something better in a very short period of time with almost no overhead. The beauty of this iss that if this site isn’t successful there’s no layoffs, burned VC funding, and I’m ultimately not contributing to another dot-com crash. All I’ve lost is 66.5 hours and a couple bags of coffee beans, I’ll just go back to my day job. “

Well said, after couple of hours googling, if you cannot find what you need… build one. Make it as simple as possible with the goal of full filing you need. Not because you want X millions of dollars from VCs.

Keep. It. Simple. Stupid

Soooo true. Many of his other points stress this one even more. Keep it simple. Make the app so that it does what it supposed to do and nothing else.

Set little itty bitty goals and watch how much you’ll get done
I work a 9-5 job and I normally spend over an hour exercising every night, so when I arrived home around 7pm my work ethic was usually in the gutter. The best tactic I found for motivating myself was to set a very small goal, such as changing some columns in the database or adjusting margins on a certain page. Typically, once this small goal was achieved it would lead into other things and pretty soon I’d gotten three hours worth of solid work done. ”

So true. When I’m done with my 9-5 and when I want programming that’s fun, I need some serious strategy. Personal life still play big role in my life and somehow I should simply find ways to do a little bit of everything. I need to make every minutes worthwhile. I need to set very small goals that can give me instant gratification. Else, programming at home can turn tedious.

You guys just have to check out the original article. Not only that it’s inspiring, but it also act as a reminder for me on how to do fun programming at home.

Sidenote: The application is built with CakePHP. Enough said…

Where Am I?

You are currently browsing the cakephp category at RAPD.

Follow

Get every new post delivered to your Inbox.