Professional PHP Blog

PHP Programming, Web Development, PHP Advocacy and PHP Best Practices.

Delphi for PHP

February 23rd, 2007

I have to comment on this week’s annoucement of Delphi for PHP. I was a Delphi programmer for about 5 years before taking up PHP about 6 years ago. What a convergence.

I have a great fondness and respect for the old Object Pascal based Delphi. Delphi’s VCL has been influential, inspiring the GUI components in Java. And, of course Ander Heijlsberg went on to put a huge stamp on C# and .NET that would be familiar to any Delphi programmers.

I’ve always admired this approach of extending the language syntax to make common things easy and for the integration between the language and the tools. In Delphi, this was evidenced by the excellent properties support. Six years later, this is the feature I miss the most in PHP. This language extension approach has seen its culmination in C# and LINQ. It almost pains me to say it, but the cutting edge of commercial language design is at Microsoft now.

On the other hand, I’ve never had that much respect for Borland as a company. We were big enough to have Borland representative’s come to our office and try sell us their products. They were terrible at the mechanics of selling into big companies. I was in their beta programs. I went to their conferences. I’ve never had any sense that they know what they are doing business wise. Inprise? What were they thinking? Now here they are, just having gotten their asses kicked by eclipse in the Java IDE space and what are they working on? They release an IDE for PHP, just as Zend is embracing Eclipse in the PHP space. Brilliant!

I don’t quite know what Delphi means now. To me, its always been and IDE plus Object Pascal. What is it now? I also don’t quite know what Borland has become. Is it CodeGear now? I guess that the Delphi for PHP IDE comes from Quadram and their now discontinued QStudio product. And the VCL is their WCL (no linkage found). Anytime I’ve been touched by the corporate entity that was Borland, confusion ensued. I’m confused now.

It appears that the PHP version of the VCL will be released on open source. There is nothing at the sourceforge project, yet, but I’ll be interested to see what it looks like, if only for old times sake.

The Delphi tool approach was to serialize an object based representation of an application, then offer tools to create that serialized representation, and to load that representation at run time. In Delphi, that serialization was done into the form files (.DFM). I’ll be interested to see how Delphi for PHP does it. Perhaps, this is an area where the Eclipse PHP Development Tool can learn. I know that I definitely had Delphi in mind when I was writing my column on Object Serialization for this month’s php | Architect.

Meanwhile, if you want to see the Delphi influence in PHP with code that you can download today, take a look at the Prado framework, which I imagine to be like the VCL for PHP, but without the supporting IDE.

This is a space I’ll definitely be watching.

31 Comments »

Managing Open Source Projects

February 22nd, 2007

I ran across How Open Source Projects Survive Poisonous People (video) and Producing Open Source Software (book). Anyone know of any other interesting open source project management resources?

1 Comment »

Free Software for Mac OS X

February 22nd, 2007

The software that comes with OS X is very capable. The mundane applications that come with OS X, such as the Finder, Preview, and Disk Utility can do some surprising things. I’ve been using Macs for 20 years and I’m still learning new tricks for these programs.

But, the installed apps can’t do everything. As part of setting up my new Mac, I’ve had to install a small set of very useful, dare I say essential software. This is the list of everything that I installed on my Mac for one reason or another.

Everything on this list is Free as in beer. These are only things that are perpetually useful. If it is a limited version it is at least useful. Nothing expires. These are not the things that I think you should look at, or any kind of best of or exhaustive list. These are just the things that I actually use. (With a noted exception or two.)

This is Part II in my “Setting up my Mac” series. See Part I: How to Transfer Mac OS X Application Data between Computers.

Video Codecs For Quicktime

QuickTime is the native video format for the Mac. However, there are many different video file formats floating around on the web. Fortunately, QuickTime is modular and there are many free components available for playing these formats. I think this list covers the most popular.

Flip4Mac
Plays Windows Media Player files in QuickTime (Except those that have DRM).
Perian
Plays some .avi files in QuickTime.
A52Codec
Adds support for AAC audio.
DivX
Maybe this is redundant with Perian?

Video Players

In a rare show lameness, the built-in QuickTime player cannot play QuickTime Video Full Screen unless you pay to upgrade to QuickTime Pro. This has always bugged me. Can you say nickel & dime? I’d rather they roll the price into the cost of OS X or my computer, if necessary. Fortunately, this is a restriction on the player, and not on the QuickTime Framework. Third players can play full screen, although perhaps at the expense of some QT player niceties like the remote control. I’ve installed these additional players.

QTAmateur
This tiny player plays quicktime full screen and not much else.
Nice Player
This is a more capable QuickTime player. I’ve had the video and audio tracks get of of sync, tho. Still evaluating.
Real Player
Necessary to play the anything in Real format, or to play Real streams in your browser.
VLC
A very capable player that does not rely on QuickTime or its plugins.
Flash Player
OS X comes with flash player installed, but you might want to upgrade. View your current flash version number.

I don’t do much with video, but these players and the prior QuickTime plugins have handled everything that I’ve ever wanted to do.

Productivity

At $400 and without the typical Windows PC OEM discounts or the student discounts available to some, Microsoft Office represents a significant investment, especially if you just need occasional word processing, or you just want to view Microsoft Office documents that people send you. NeoOffice is a mac native version of OpenOffice. I have Microsoft Office, but NeoOffice is still useful to open the OpenOffice formatted documents that people from the open source community sometimes send me.

BBEdit has been around in the Mac community for a long time. TextWrangler is its free but commercial quality and very capable little brother.

Compression

The finder does a pretty good job compressing and uncompressing zip files. (You knew it did that, right?) However, there are about a zillion different compression formats that might arrive at your doorstep via the magic of the internet.

Stuffit Expander
Stuffit is the time-honored way to uncompress stuff. However, this long standing Macintosh institution has fallen into disrepute lately. To download Stuffit, you have to surrender your email address, and they do use it. I’ve installed it anyway, thanks to a throw away email address.
The Unarchiver
I’ve switched to the free and open source Unarchiver as my primary de-compressor. So far, so good.

Chat Programs

iChat is nice, but there are more chat protocols out there than AOL and Jabber. I’ve also managed to collect a few different online profiles. You can reach me at procatajeff on AOL.

Adium
Allows you to connect to multiple chat protocols and multiple accounts at the same time. It doesn’t have all of the features of the native chat programs, but it is worth it to just have to run one program.
Colloquy
IRC client for Mac OS X.
Yahoo Messenger
The Yahoo Messenger for the Mac has many fewer features than its Windows cousin, but its not as loaded with advertisements as the windows version, either.
MSN Messenger
I don’t use MSN at all, but if you did…
AOL Messenger
Again, there are some AOL features you can’t get through iChat. I almost always use Adium instead of AOL Messenger or even iChat.

Web Browsers

I use Safari for 99% of my web browsing. However, I install the major alternative browsers, too.

FireFox
There are still some sites that do not work with Safari. For those, Firefox can usually get you in.
Camino
Same rendering engine as FireFox, but a more “mac-like” user interface.
Opera
I only use it to check web pages to see if they’re rendering correctly.
NetNewsWire Lite
Great feed reader. I’m a registered user of the full versions. This was probably the best valued software purchase I’ve ever made. I started with the Lite version, although I’ve forgotten what the differences are by now.

File Transfer

CyberDuck
The finder will do FTP, but CyberDuck does more. I use it for the synchronization capability. This program has always been a little buggy and never quite reached the level of stability that I would like, but I use it anyway.
BitTorrent
I don’t do much with Torrents, but when you run across them, use this.
Transmission
An alternative BitTorrent client. I haven’t used this one yet, but I’m gonna give it a try next time I want to download a torrent.

Utilities

There are tons of haxies, so called maintenance utilities, and customizers for OS X. I don’t use any of them. Bad memories from the System 6 extension days, I guess. Here are a couple utilities I do use.

Menu Meters
Monitor CPU, Memory and Disk usage as well as network activity in the menu bar. Very nice. Running this on my old machine was a major contributor to my decision to purchase a new one.
Disk Inventory X
A graphical breakdown of how your disk is being used. A kinda shaky 1.0, but be prepared to get an education after you run it and see where your disk space is going. Keep it around for when you need to find some free space.

Associating Files with Applications

Most of the applications on this list overlap in terms of the file formats that they can open. Sometimes, though, the wrong program will open when you double click on a file or download something. RCDefault allows you to edit the associates between file types and data types and with the applications that can use them. You can do this in the Finder to a certain extent, but RCDefault gives you more options and puts it all in one place.

Anything Else

I put this list together to keep track of what I need to install after I rebuild my machine. Take a look at part I of my setting up a Mac series.

If there is something you think I should take a look at let me know in the comments. (But keep it in the free or perpetually useful spirit of this post.)

Best of Luck

12 Comments »

How to Transfer Mac OS X Application Data between Computers

February 16th, 2007

Its been a long time coming, but I finally got a new Mac. I’ve personally owned a Mac of one sort or another since 1987, but I didn’t start using a Mac full time for work until around 2000. I’ve been going through the process of setting up the new machine.
I decided to start [...]

43 Comments | Read the full post »

OOP is Mature, not Dead

January 7th, 2007

I ran across an interesting series of blog posts by Karsten Wagner claiming that OOP is dead (part 2 and part 3). The premise behind these posts is that OOP has failed to deliver and that it is on the decline in favor of more functional or meta programming techniques. Maybe its true [...]

15 Comments | Read the full post »

php | architect back issue bargains

January 6th, 2007

I’ve been writing the Test Pattern column in php | architect for a few months now. I’ve been enjoying it because it lets me explore topics in more depth than I could here on my blog. Although, its more challenging and writing is not easy for me.
So far I think my best two [...]

No Comments | Read the full post »

Looking forward to 2007

January 4th, 2007

Well, I’m finally back in town after the holidays. Let me tell you, I’m glad to be home. Between multiple holidays and taking my grandma to her cancer treatments in Ann Arbor, I was gone far too much of last month.
My Grandma is doing well. They used an experimental new procedure called [...]

5 Comments | Read the full post »

PDO versus MDB2

December 26th, 2006

I was just putting together a small test program and I thought I would try using PDO. I really haven’t done anything serious with PDO, just try it a couple times. After recompiling PHP to include the mysql driver for PDO, I coded up the first version of my test program:
 
$db = new [...]

12 Comments | Read the full post »

Why is PHP Code Considered Hard to Maintain?

November 9th, 2006

Tobias Schlitt describes Tim Bray’s talk at the International PHP Conference. (PDF slides) Tim compares PHP, Java, and Rails along several dimensions. One of those dimensions is maintainability. Tim ranks PHP as least maintainable, Rails in the middle, and Java as most maintainable.
This is not a surprising ranking. [...]

34 Comments | Read the full post »

PHP as a Deployment Platform

November 4th, 2006

PHP has been incredibly successful as a deployment platform for web applications. The WordPress blog brags that the WordPress 2.0 series has been downloaded 1.2 million times.
However, PHP as a platform is far from homogenous. With many different versions installed and the vast configurability of php.ini, there can be a great [...]

4 Comments | Read the full post »

« Previous Entries
Next Entries »
  • Search

  • Subscribe

    Subscribe All Posts
    Subscribe All Comments
    Subscribe All Bookmarks
    Subscribe with Bloglines Subscribe with My Yahoo Add to netvibes Subscribe in NewsGator Online Add to Google
  • Share This

  • Categories

    • Agile Methods (14)
    • Mac (14)
    • Misc (16)
    • Open Source (14)
    • PHP (95)
    • Software Design (28)
    • Usability (14)
    • WACT (7)
    • Web Design (20)
  • Recent Comments

    • Why is PHP Code Considered Hard to Maintain?  26
      moyaufarus, bez-riska.ru, Visitor338 [...]
    • Working with PHP 5 in Mac OS X 10.5 (Leopard)  107
      name, name, Massimo [...]
    • Google Hosting  14
      Managed Hosting, nicholas, Onur Cobanli [...]
    • PHP Development From Java Architects Eye  14
      anal, deniskomarov, erotic [...]
    • Sarah Snow Stever  26
      Massimo, arabcrunch, Dubai Web Design, Development [...]
    • The PHP scalability saga continues  17
      vaginal, uceqlehwigi, panties [...]
    • Keywords and Language Simplicity  9
      Programmer, cfbow, olmse [...]
    • PHP 5.1 is out  8
      Preteen, Soma, teedattaltY [...]
    • goto in PHP  39
      jistanidiot, Goldilocks, [...]
    • WordPress BBCode Plugin  24
      ?????? ??, ?????? ??, smolenskiy [...]
    • Why is PHP Popular?  24
      art.ru, agened.ru, visasim.ru [...]
  • Pages

    • Tags
  • My Other Stuff

    • Lively Debate
      My blog on Politics and non-technical topics
    • Web Application Component Toolkit
      PHP MVC Framework
  • Other PHP Blogs

    • Dynamically Typed
    • Jason E. Sweat
    • John Lim
    • Marco Tabini
    • Marcus Baker
    • Norbert Mocsnik
    • PHP Patterns
  • Archives

    • 2008: May
    • 2007: Jan Feb Mar Apr May Sep Oct Nov
    • 2006: Jan Feb Mar Apr May Jun Jul Oct Nov Dec
    • 2005: Jan Feb Mar Apr May Sep Oct Nov Dec
    • 2004: Apr May Jun Jul Aug Sep Oct Nov
  • Menu

    • Register
    • Log in