Archive for August, 2006


Installing MySQL on the i5

Monday, August 28th, 2006

There is no doubt, now with Viper (which include native XML support), DB2 is most likely the most powerful database on the market. In many cases one would think if you’re using an i5, you might as well use DB2, not MySQL. Furthermore as of PHP 5 the MySQL extension is by default turned off. I guess by doing this PHP shows no bias towards any database, but like it or not, PHP’s rise to fame was done hand in hand with MySQL.

I’m in a position like this now; I’m playing around with some existing applications, looking to get them working on the i5. My biggest roadblock is thinking of some migration path from MySQL to DB2. Today I came across a tutorial on the Zend Developer Zone on installing MySQL on the i5. MySQL is not supported by IBM, so follow the linked-to tutorial at your own risk. From the tutorial:

MySQL is an open source database that has gained popularity in the web application world and is used in most of the leading/hot PHP (Hypertext Pre Processor) applications. Now that System i is a supported hardware platform for PHP with the availability of Zend Core for i5/OS, we have documented instructions for downloading, installing and running MySQL in the Portable Application Solution Environment (PASE) on the System i. MySQL is not an IBM i5/OS supported environment, use accordingly.

Photos from Nestani

Friday, August 25th, 2006

My parents came back from Greece today and brought back some great photos from Nestani. I’ve uploaded them to Flickr in their original sizes, so feel free to download and develop them. Most of the photos are from St. George’s Name Day this past year. I’ve posted a few below — click here to see all of them. The people from Nestani now reside all over Greece and the world, see the comments from here to learn more.

Nestani


Nestani

Nestani

Nestani

See all here

How to turn off your check engine light

Thursday, August 17th, 2006

One of the biggest scams in the automotive/mechanic industry is the check engine light — this annoying disease that pops up and doesn’t care to ever leave your sight. A lot of the time, the light comes on because of some intermittent or rare problem, like a cylinder misfiring when your car was starting. So what’s the typical scenario: The light comes on, you go to your mechanic, he/she reads the code ($80), and then tell you “it could be anything, lets do a tune-up” ($150) — before you know it their suggesting new oil caps ($20) and timing belts ($$$).

I drive a 97 Integra, and every so often my check engine light comes on. It happens rarely, when I haven’t driven in a couple days, and I start the car without giving it any gas. Just after the car turns on, I feel a slight, baby rumble – cylinder misfired – check engine light comes on. The first time it happened, I went to the mechanic and they took $80 to read the code – crooks.

So now the real question, how do you shut it off? Most people think disconnecting the battery doesn’t work, and their right. It appears the cars computer system has some time delayed reset. Disconnect the positive terminal of the battery only, wait 10-15 minutes, re-connect and the check engine light should be off.

Developing Applications with a Service Oriented Architecture

Tuesday, August 15th, 2006

Update Aug. 22 06: I just learned about the Open SOA (OSOA) project. It’s collaboration between the major SOA players to standardize the architecture. The spec is open, plus they have some nice presentations and white papers. From the main page:

The Open SOA Collaboration represents an informal alliance of industry leaders that share a common interest: defining a language-neutral programming model that meets the needs of enterprise developers who are developing software that exploits Service Oriented Architecture characteristics and benefits.

Service Oriented Architecture or SOA, it’s an acronym I hear a lot of at IBM these days. I’m not going to attempt and explain SOA in a blog post, but before you start reading, think of it as large pieces of a puzzle easily interconnecting. Tons of companies have embraced it with IBM, Sun and BEA leading the charge.

I’ll be on course next week here at the Toronto Lab, taking ‘Developing Applications with a Service Oriented Architecture’. I’m excited about it; I know the high level details of SOA, but a lot of the finer points, including developing the applications, I lack.

The course covers:

  • SOA Overview
  • IBM SOA Foundation Products Overview
  • Design SOA Solutions applying principles and patterns
  • Develop SOA solutions using IBM SOA Foundation
  • Case study Overview
  • WebSphere Business Modeler
  • WebSphere Process Server and WebSphere ESB Overview
  • Service Component Architecture (SCA)
  • WebSphere Integration Developer
  • Process Choreography and Web Services Business Process
  • Develop and assemble business rules and human tasks
  • Supporting Services Overview
  • Developing Mediation Services
  • Adapters
  • Deploying to WebSphere Process Server
  • Managing SOA
  • SOA Security
  • IBM SOA Foundation Governance and Processes

php|works 2006: PHP Conference Toronto

Tuesday, August 8th, 2006

Update Sept. 25 2006: I’ve updated what I actually took below
Update Sept. 26 2006: Click here for slides and to read summaries from each day

I’ll be at the PHP conference (php/db|works) this year in Toronto. The conference runs for 3 days from Wednesday September 13th till the 15th. It’s going to be held at the Holiday Inn Yorkdale hotel. You can see the full schedule here.

The seminars I plan to take are took:

Wednesday Sept. 13

  • Rasmus Keynote
  • either: Web Services: REST (BYOL) or XML Security Scaling with AJAX
  • High Volume PHP & MySQL Scaling Techniques
  • New (and Old) Trends in Web Security
  • JavaScript Light & Sweet Top PHP Tricks
  • Organizing Your Projects

Thursday Sept. 14

  • Microsoft Platforms for the PHP Developer Keynote
  • either: Cache For Cash or What Can PHP Learn From Rails?
  • either: Web Services: SOAP (BYOL) or PDO—An Introduction Flash + PHP
  • Scaling with AJAX (moved to Wednesday) — Derick’s Ranting Hour
  • The State of AOP in PHP

Friday Sept. 15

  • Leveraging DB2 PureXML in PHP PHP-GTK
  • Handling Data Without Databases or Contracts and Licenses for PHP Developers
  • The Zend Framework PHP Mail Best Practice

There are a bunch of keynotes also. If I have wireless I’ll blog about it in real-time.
If your going, send me a note.

Comet: Life after AJAX

Tuesday, August 8th, 2006

There is no doubt that AJAX is a brilliant idea, which has pushed web development to a new level. That said, the framework has many limitations, and a lot of big time names in the open source industry (Alex Russel being one of them) have taken notice. People that don’t understand Comet call it “disgruntled AJAX developers who went off on their own”. The reality is, that a server-side event driven model for web development is needed. The catch? A long-lived static connection from the client-side (browser) to the server is needed. For example, this event driven server-side model, means that the server can now tell the client to refresh a panel on demand (without the client making a request).

On Sunday, the Dojo Foundation announced Cometd as a new Dojo project.

Cometd is a scalable HTTP-based event routing bus that uses a push technology pattern known as Comet.

Dojo: A glimpse into the future of web development

Thursday, August 3rd, 2006

Update (Aug. 17 2006): The more I use Dojo, the more impressed I am with what is being done. The entire project has so much attention to detail. I just spent a little while looking at dojo.io.* and am blown away at this easy to use, transparent approach to AJAX.

That’s a powerful title, will it come true? Who knows. At this moment and time, at version 0.3, Dojo is insanely impressive.
So the first question that most people will have is: What is Dojo?

Dojo is the Open Source Javascript toolkit that makes professional web development better, easier, and faster

A little more detail:

Dojo is an Open Source DHTML toolkit written in JavaScript. It builds on several contributed code bases (nWidgets, Burstlib, f(m)), which is why we refer to it sometimes as a “unified” toolkit. Dojo aims to solve some long-standing historical problems with DHTML which prevented mass adoption of dynamic web application development.

Dojo allows you to easily build dynamic capabilities into web pages and any other environment that supports JavaScript sanely. You can use the components that Dojo provides to make your web sites more useable, responsive, and functional. With Dojo you can build degradeable user interfaces more easily, prototype interactive widgets quickly, and animate transitions. You can use the lower-level APIs and compatibility layers from Dojo to write portable JavaScript and simplify complex scripts. Dojo’s event system, I/O APIs, and generic language enhancement form the basis of a powerful programming environment

I hear people say “Dojo, that’s the AJAX framework”. Sure, Dojo is about asynchronous interaction, but that’s only a part of the story. The problem with JavaScript is that it blew up way too fast. It’s a powerful programming language, but lacks the subtleties, which would make it easy to develop large-scale JavaScript applications. I doubt in the mid 90s Netscape envisioned JavaScript the way its used today. In 2002, Doug Crockford got fed up and made JSLint:

When C was a young programming language, there were several common programming errors that were not caught by the primitive compilers, so an accessory program called lint was developed which would scan a source file, looking for problems. As the language matured, the definition of the language was strengthened to eliminate some insecurities, and compilers got better at issuing warnings. lint is no longer needed.

JavaScript is a young language. It was originally intended to do small tasks in webpages, tasks for which Java was too heavy and clumsy. But JavaScript is a very capable language, and it is now being used in larger projects. Many of the features that were intended to make the language easy to use are troublesome for larger projects. A lint for JavaScript is needed: JSLint, a JavaScript syntax checker and validator.

The good folks at Dojo have taken this a massive step further, put very gently:

dojo.lang.* contains wrappers for common idioms. It doesn’t provide replacements for language constructs. We only provide functions that provide value-added above the standard javascript routines, or functions that mask browser incompatibilites, etc.

The reality is, an amazing, transparent, useful framework has been (is being) developed, which will give the Web developer power they’ve only dreamt of. Were talking proper class constructs, inheritance, the ability to override methods, and much more.

In total there is the Dojo Infrastructure (fundamental behaviors), General purpose libraries (String manip., DOM manip., etc…), Data Structures (Dictionary, ArrayList, Queue, etc..), Web I/O (RPC, JSON, etc.), Visual Web (animations, graphics, etc.), Math and Cryptogrpahy (speaks for itself.. clientside Crypto, like Meebo) and a great Widget library.

What kind of widgets are we looking at? Here is a taste of what you can expect:

FisheyeList – hover over the menu at the top…
Popup Dialogs – click the links on the top left…
Floating Pane – drag them, close them.. the world is your oyster
Inline Edit Box – just like Flikr, click the title and text…

All this, and their only in version 0.3. Give it a try: dojotoolkit.com — be warned documentation to the specifics of the API is sparse.

PHP for i5 GA

Tuesday, August 1st, 2006

The first GA for PHP on the i5/OS happened yesterday. Unlike the early release I installed here at the lab, this one will have an API to connect with existing application on the iSeries:

This version includes Apache 2 and PHP 5.1.4 support as well as a set of stable extensions for the IBM i5/OS platform.
The new Web Server and PHP runs on the i5/OS under PASE.
The version supports HTTP access through the existing i5/OS ILE Apache Web Server and can be installed on the i5/OS platform.
This version supports the IBM i5/OS DB400 through the ibm_db2 extension.

From the press release:

System i customers have shown great interest in PHP during the beta test phase, with thousands of System i customers and solutions providers downloading the beta releases. Using Zend Core for i5/OS and Zend Studio Professional for i5/OS, System i customers and solutions providers can develop innovative, new Web applications rapidly and cost-effectively or create Web front ends for existing applications written in RPG, C, C++ or Java(TM). Zend Core for i5/OS will include a toolkit that enables PHP applications to easily access the integrated DB2 database and other resources in i5/OS.