Sunday, December 16, 2007

Speaking at EclipseCon 2008

I'm speaking at EclipseCon 2008

It seems that PHP developers have attracted much attention from the Eclipse community. In the next EclipseCon conference I am going to make two sessions about PDT and its ecosystem.

Developing Rich Internet Application with Eclipse Tools

It's about to get a whole lot easier for AJAX and PHP developers to develop Rich Internet Applications under the Eclipse environment.

This tutorial introduces tools to develop Rich Internet Application including:

  1. The Eclipse platform
  2. The Web-tools platform and the AJAX Toolkit
  3. The PHP Development tool
Content
  1. Introduction to Eclipse and Web development environment
  2. PHP (Server-Side) development tools
  3. JavaScript (Browser-Side) development tools
  4. Setting up a generic ‘hello world’ website
  5. Developing your AJAX-PHP web-application

Extending the PDT Project

The PDT project provides a PHP Development framework for the Eclipse platform. This project encompasses all development components necessary to develop PHP and facilitate extensibility. It leverages the existing Web Tools Project in providing developers with PHP capabilities.

In the PHP world, where there are hundreds of core extensions and dozens of frameworks, we finally have an accepted development environment that enables framework and core developers to support also their own development tools.

This tutorial introduces the basics of PDT extension points and architecture as well as a case study of a well-known extension to PDT.

Monday, November 19, 2007

PDT Gets Smarty

Staring from day one of PDT project, a feature request screaming "Support smarty template syntax coloring" was very popular in our bug tracking system. Twenty-three people voted for this issue, many posts were written about it in the newsgroup and users keep sending us e-mails hoping their request is going to be fulfilled in the near future.

Well... if I understand the Eclipse Foundation correctly, PDT developers shouldn't operate fast and fix these kinds of features. PDT was built only as a "PHP Development Tools framework". In the PHP world where there are hundreds of core extensions and dozens of frameworks it is impossible to support all of them.

But... a feature request is a feature request. And feature requests are meant to be resolved. Applying simple logic rules derives that - "PDT Gets Smarty".

So the growing eco-system of PDT has a new sibling called 'smartypdt' which is a project that "enables users to develop Smarty projects utilizing the power of PDT" it is a great initiative developed by William Candillon , that was guided by me and we expect Dave Kelsey to join us soon. The results are really great!!!

For now two basic capabilities are provided: syntax coloring and compilation
error analysis. This makes PDT and smartypdt the best development environment
for Smarty developers.

The idea is that frameworks and extension creators will re-use the
functionality presented in this project and provide it alongside their products
to ease the development with PHP under PDT.

The package and source code can be accessed from here - http://smartypdt.googlecode.com/

You are more than welcome to test-drive it and submit bugs, features and patches.





Tuesday, September 18, 2007

One community, Dozen programmers, 1186 bugs and one quest for transcendent PHP editor

One community, Dozen programmers, 1186 bugs and one quest for transcendent PHP editor, By Roy Ganor

A year and a half ago, I got a confirmation e-mail from Eclipse Foundation Inc., the subject was “Welcome to Eclipse!”. I probably didn’t understand the exact meaning of this message at that time.

Today the PDT project community consists of about 30 users that are daily involved, and about 300 users that are weekly involved, and about 13,000 users that are monthly involved in the project . Remarkable! by any mean of open-source project.

Going back to the beginning of the story, the group has started developing an Eclipse based PHP editor with mixed emotions. On the one hand our current implementation that was based on Java Swing Technology, was very robust and appreciated by PHP developers (many rewards, compliment reviews and winning contests). On the other hand we saw the effect of JDT project on the Java community.

I am not going to write about the development process as it would require at least more than ten pages to cover. I will rather tell you about the community, about us (the group) and about the integration level with the Eclipse community.

So, the first question is how we grew to a large scale community? I can come up with many reasons. Starting with the need for such a product and the existing Eclipse community, to the exposure we enjoyed during the development process. But if you ask me - there is one more (and most important) reason for growing to such a scale. Any community is based on its regular users that comprise 95% of it. This is the heart of the community and we felt that we should do more for them. We observed that everything went just great till one finds a defect in the editor, he then may:
Browse to Eclipse's bug tracking system and reports about the issue.
Go to the \eclipse folder and remove it with a ‘–r’ parameter.
But the question is how to make the user choose the first option? Well the answer is quite simple. A user will report on a bug if he gets a fix ASAP, say in 24 hours. 24 HOURS?! yes, he will then continue working with the product and probably report about another issues or features. In doing so he enters the 2% of the users that are called active users. We delivered the fix as part of a nightly build that was stable enough (unit tested) to be bundled and deployed.

The integration level with the Eclipse community is another magical and interesting issue. During the process of development we encountered with an “imported” code that is written as a framework on a daily basis. Most of the time we worked with a conformist API that in any circumstances cannot be changed. In other cases we tried to contribute these framework projects and made them more flexible to us – probably this is the strength of one open-source community that is obligated to each other. One of my e-mails to WST Project leader points out that it is a “miracle” that we integrated the PHP Editor into the Web Editor. Taking for example the JSP Editor whose team is a sub-project of WST and is relatively tight coupled to the Web Editor.

PDT 1.0 is out and there are many reasons to call it the transcendent PHP editor.

(The name of this post was inspired by “Dreaming in Code”/Scott Rosenberg)

Wednesday, January 03, 2007

Eclipse Plug-in Test Framework

After two weeks of configuring and scripting test packages I can say that "building" a build process is a very hard task, but worth the tears!

now you can RSS: http://download.eclipse.org/tools/php/downloads/rss/updates.xml
or be a member in pdt-unit-test@eclipse.org to be updated about the test results.

Good night,
Roy

Tuesday, January 02, 2007

Transforming to linux-style stream

Why there are differences between the platforms end of line characters? Oh yes, Never ask the WHY question on standarts, so I found my self coding a small block to overcome this mini-crisis:

// given an input stream
final InputStream is = ...;

// create a stream that behaves as a linux-style stream
InputStream linuxStream = new InputStream() {
int previous = -1;
int current = -1;
int next = -1;
  public int read() throws IOException {
if (next != -1) {// a buffered int was readen last iteration
current = next;
next = -1;
} else { // else read an int from the stream
current = is.read();
}
    if (current == 13) {
next = is.read();
if (next == 10) { // encounter "\r\n" transform to "\n"
next = -1;
}
current = 10;
}
return previous = current;
}
}


Monday, January 01, 2007

The Future of Operating Systems

Well... as I see it, there is no such thing "future to operating systems".
Hi, wait a minute, are you fooling me? how computer will work without an operating system?

They will, with a small effort one of the open-source companies will create a simple program that will first of all manage the basic hardware of a computer (I/O and memory), and second let the user the ability to browse the internet. Such kind of computers should be called "Webtops" (I know that some people use this word to describe web office-style programs but I think that like laptops/desktops, we should call small computers that designed for the net - "Webtops"). Oh ya! These computers will work fast, since they won't do any "heavy" computations.

So what you're telling me that simple and light computer program will be backup by a huge backend servers? well... yes.

There are many question here that I need to answer:
Q: Online vs. Offline work, how one should work without an internet connection?
A: Do you realy think that internet connection will not be accessible from anywhere in 10 years from now?

Q: What about security?
A: Security will be given by the server software.

TBC...

Roy Ganor,