Entries in "Development"

Ruby on Rails: Destroying proper development as we know it

I was bored the other afternoon and decided to find out (albeit slightly late in the game) what this "Ruby on Rails" hullabaloo was all about. I had tried to "develop" applications with RoR before, and after playing around with the tutorials a little more, I googled "ruby on rails is bad" and I was returned this rant. It discusses in a calm and ordered manner why Ruby on Rails is a bad development environment.

After reading up on the API and doing a few tutorials, the reason that RoR (and many other similar frameworks) is a terrible design strategy is that it allows programmers to deal directly with a database. While this is fine for small projects, with a few tables, this gets really bad for a large system.

I realize that right now, many programmers are thinking that I'm a jerk, like most DBAs, claiming that we shouldn't let such careless things as programmer-designed queries touch our precious databases. It's not that I don't trust programmers to write well-designed queries and understand how to read an execution plan, find bottlenecks, and correct them, it's that if just one percent of the programmers write bad queries, that can slow down the whole system. Admittedly, this sort of "directly querying the database on a whim" model is currently employed in large enterprise-level systems not written in the Rails framework, and it has been for some time. The problem's gotten so bad that Microsoft added a feature in SQL Server 2005 that allows the DBA to force specific execution plans when certain query texts are encountered. The reason for this is that while one can tune the query on the database side, it's often very difficult to do on the application side once the application is built, and no database engine can perfectly tune queries unless the tables are static and the indexes are always up-to-date (some query processors are just stupid: try a query using IN in Oracle vs. EXISTS on large sub-result sets).

What happens is that even with well designed specs, and a well normalized database, the frequency of problem (read that as slow, or deadlocking, or I/O intensive) queries more often come up during the testing and implementation phases of the project. Unit testing rarely gives these away, and until one's doing load testing, these sort of issues stay hidden.

When many programmers access a database directly in code,

MSSQL To MediaWiki

We've started using MediaWiki as a large-scale documentation base for the IT projects here at UG Admission and Financial Aid, and so far, the experience has been excellent.

PHP and AJAX Project

So, I was playing around with Sajax, and found it rather lacking. Sajax is a "Simple" AJAX layer, that lets you bind functions to javascript functions then calls the associated PHP function via ajax to get the result. I have a better idea, and I'm looking for people to help me. Read more to get more information.

Continue reading "PHP and AJAX Project"