I have just decided to upgrade Eclipse, and thought it best to start from scratch. I do a lot of work in Java, PHP as well as Ruby on Rails and so I tried to set up an integrated environment using Eclipse. I have documented the steps here as much as a reminder for myself as a guide for other people trying to something similar.

First, download and unzip the Ecipse + J2EE package from http://www.eclipse.org/downloads/. You do not need to ‘install’ Eclipse as such, just put the uncompressed directory somewhere logical (/Applications on a Mac, for example).

  1. Launch Eclipse :P
  2. Select: Help -> Software Update -> Final and Install.
  3. Select Search for new features to install
  4. Check the Europa Discovery Service
  5. Select Add Remote Site
  1. Type in name: Aptana (For javascript support)
  2. Type in url: http://update.aptana.com/install/3.2/
  3. Select OK
  • Select Add Remote Site (For Ruby on Rails support)

    1. Type in name: RadRails
    2. Type in url: http://update.aptana.com/install/rails/3.2/
    3. Select OK
  • Select Add Remote Site (For SVN integration)
    1. Type in name: Subclipse
    2. Type in url: http://subclipse.tigris.org/update_1.2.x
    3. Select OK
  • Select Add Remote Site (for PHP support)

    1. Type in name: PDT
    2. Type in url: http://download.eclipse.org/tools/pdt/updates/
    3. Select OK
  • Select Add Remove Site (for Hibernate support)
    1. Type in name: Hibernate Tools
    2. Type in url: http://download.jboss.org/jbosside/updates/development
    3. Select OK
  • Select Finish
  • Select your nearest mirror, when prompted
  • Select Eurpoa Discovery Site -> Programming Languages -> Ruby Development Tools
  • Select PDT
  • Select Aptana
  • Select RadRails
  • Select Subclipse
  • Select Hibernate Tools
  • Select Select Required (to resolve dependencies)
  • Select Next
  • Accept the agreement(s) and select Next
  • Select Finish
  • Go for a walk.
  • Phew, so after all that, you should have an Eclipse IDE set up to support PHP, Ruby, Rails, Javascript, Java, Hibernate and Subversion. You can, of course, select many other tools from the Europa discovery site for other development tools, graphical editing and the like.

    Development, PHP @ 26 October 2005, “No Comments”

    Zend have, finally, realised that enterprise and even just larger scale PHP projects, require more than just PEAR, PHP5 and Zend Studio, whilst all good, what they lack is coordination and a sense of the ‘Bigger Picture’.

    Just as Java has its Community Process, PHP will now have a collaboration process where industry and the community can together work towards defining a web application framework and deployment system. This is really good news for anyone that writes site larger than a few pages, and especially when you work on many projects, quite often doing the same things again and again. Most seasoned PHP programmers have their own frameworks they use to make life a little less mundane and build on past tried-and-tested code. PEAR was a good effort to get people working on reusable components, but this is all PHP4 based and lacks an overall framework for implementing these components within.

    My own framework consists of:

    • a Java based core API – java.io, java.net, java.util, java.lang, etc (I am intending to merge this with cucua.tigris.org)
    • a runtime library – class loader, error handling, logging, configuration, etc
    • a servlet container – based on the Java Servlet 2.4 specification
    • a MVC framework – based on Struts
    • a component framework – based on Tapestry

    When I can find a free Subversion open-source provider, and a name, I will make all this available under some sort of generous license (LGPL?) in the hope that perhaps some of it could be of some use to some people, and perhaps even to the formation of the official webapp framework.

    Anyway, more here: http://www.zend.com/collaboration/

    Development, PHP @ 26 October 2005, “No Comments”

    RSS + BitTorrent is gradually emerging, its only a matter of time before the two become indistinguishable.

    iPodder (a cross platform podcast client) has already gained bittorrent support, and I guess clients like µTorrent and BitComet will also eventually support RSS.

    This basically allows us to have all the immediacy of RSS with the low/fair bandwidth model of BitTorrent; suddenly mass distribution of all kinds of content becomes very simple.

    Obviously, lots of services (some exist already) will start to offer dubious torrent-rss of popular TV shows and such like, but what I would like to see more than that is news. Good quality news, like the BBC, up to date, on my desktop (and therefore onto my phone/pda/ipod etc).

    I have written a simple PHP script that goes off and parses the BBC site and pulls down the asx (ie, wmv) video, runs it through mencoder and convert it to mp4/mp3. All I would need to do then is create the torrent files and then publish an RSS feed… but not much point until there is a client available.

    Development, PHP @ 16 October 2005, “No Comments”

    Project Cucua is an attempt to port the Java core API to php.

    http://cucua.tigris.org/

    Development, PHP @ 03 September 2005, “No Comments”

    Despite all the cleanliness and standards obsessed nature of Java, PHP still has the advantages that its quick to learn, develop and execute. As such it is a favorite with media agencies and smaller dot coms, but since PHP can be as dirty as perl (well, not quite) and almost as elegant as java, a whole range of code is produced, all of which has to be supported by successive employees.

    I feel the problem is that there is no clear standards that are set in place, and no manner in which to easily relate them to people. For example, as new employees start, it would be nice if one could point them in the direction of a website that describes some decent standards to follow. When I speak of standards, I do not mean where your curly braces go, but how one should write an application such that it can be deployed without the application server needing hours of (long forgotten) configuration, and that prospective employees, current ones, and in fact everyone, is on the same page when it comes to frameworks and specifications.

    Java has a nice community process in place to create expert groups to analyze and propose a generic solution for a particular problem domain (servlets, portlets, etc etc). The specification is merely a set of well-known interfaces (and where code is insufficient, documentation embeleshes) that must be implemented (correctly) for your application to conform to that standard.

    In this world, open source projects, pear libraries and everyones code would all work together, and I would not have to bend over backwards to work in the way that one particular project would like me to work, let alone trying to get two projects to work together (such as Propel, Torque/Java-esque, and Prado, ASP/DotNet-esque).

    First, a specification would be drawn up for the standard layout of a php (web) project, this would be much like a jar, but not compressed, containing code, templates, license information, configuration, and any other assets that are needed.

    Next a php. top level code library that contains abstract base classes, generic pattern-implementations, and utilities (not disimalar, but not necessarily the same as java.io, java.lang, java.util etc etc).

    Furthermore, a servlet-like (although perhaps much simpler, no dispatchers, filters, etc…) specification that would allow web applications to run on anything from a traditional and very simple apache/php server environment to running in some kind of proprietory enterprise clustering environment.

    Ultimatley, ths community process would allow this by creating community-based, peer-reviewed, standards, that take a higher level approach to solving problems than just whatever fits.