The odd bit

Once is an accident, twice is a coincidence, three times is an enemy action.

The odd bit - Once is an accident, twice is a coincidence, three times is an enemy action.

Farewell eZ Publish

It is with great sadness, and a bit of anger, that I’m writing this post but today is the day that we have officially lost the fight for a future with eZ Publish.

It all started in 2002 with the 2.2 version of the package. We shifted to the 3.x series as soon as the very first alphas became available and continued to walk the enlightened path across all of the 3.x releases. The shift to PHP 5 and thus eZ Publish 4.0 also unleashed the power of the eZ Components and it only happened in early spring of this year.

We knew the day of doom would be coming despite our attempts to enlighten others. The only thing we managed to accomplish was to delay the decision by nearly two years. I would happely accept it if we were going to something superior, but the only reason why we have to switch is because “it is not .NET”. That’s just sad…

So I’ll take this opportunity to thank eZ Systems for their great product and let’s not forget the wonderful community. I’ll continue to monitor the project to see where it’s heading, but that will be about it.

Oh, and if you’re wondering about the replacement for eZ Publish, our CMS future is now called Sitecore.

So long and thanks for the fish!

The quest for a PHP editor

I’ve had a hate-and-love relationship with a few editors over the past few years, but I’ve never found one that I truly love. Some look promising in the beginning but after some time I really get tired of their limitations.

I thought I had settled with Eclipse (with PDT) because it’s the best I’ve used, but the software update messes up so often it’s not funny anymore. That and those pesky “builders” that keep flagging stuff as errors in places where they’re absolutely useless. So with Eclipse rapidly losing credit I started a new search… without any results so far.

Perhaps my requirements are too steep, but Visual Studio [1] manages to combine them so I don’t think they’re too far-fetched. What I want in a PHP editor (or rather IDE):

  • Projects instead of loose files (think of: Visual Studio solutions or Eclipse projects).
  • Smart intellisense (not just autocomplete, it should be able to parse the project and recognize custom classes – Visual Studio is the reference here).
  • Handle whitespace properly (tabs to spaces, clear trailing whitespace per line, clear empty lines).
  • Formatting (with bonus points if I can configure my own set of rules).
  • A non-cluttered modern interface.

Extra bonus points are awarded to IDEs that can perform small “design-time” checks (e.g. unreachable code, non-returning branch, unused variables, …) and have a couple of refactoring functions/shortcuts (to name two: rename variable/method and implement interface).

So if there’s anyone who knows about a little gem for PHP development, please let me know. Oh, and don’t make me beg πŸ˜‰

[1]: No, there’s nothing wrong with your eyes. Visual Studio is actually a Microsoft product that I like. It’s simply the best IDE in my very humble opinion.

MOSS 2007: laugh or cry?

When Microsoft released Microsoft Office Sharepoint Server (MOSS) 2007, it was touted as The Next Big Thingβ„’ for enterprises. And that’s where the good news ends…

This piece of software has so many issues I don’t even know where to start. My first encounter with it was when I had to evaluate the web content management features of the product. That evaluation period lasted about a week, but was stretched to a month just for the sake of it. When coming from something like eZ Publish, it felt like I had done some time travelling all the way back to the Stone Age [1].

A remarkable feat that Microsoft managed to pull was to release an anti-developer product. My career is still pretty short, but it was the first time that I encountered a piece of software that was set on making a developer’s life as hard as possible.

After the dust had settled and a couple of holidays had joined other historical facts, it was time for the second encounter. The idea was to give the collaboration features of MOSS 2007 a test run. So my colleagues and I clicked around when we suddenly noticed the “My site” link. A harmless link [2] to a personal site… until we (= 3 persons at that time) managed to click at the same time: one arrived at the personal site, one got an error but managed to proceed and the other one got an error and another one when trying to proceed. Guess which one was me… I was told it was caused by the speed of the network connection. Makes sense? Not to me.

The security settings regularly start leading their own life causing all sites to go down, file uploads went wrong and blocked all edit actions on document lists, etc. These are just a couple of things, but I could go on for quite a while. It’s at a point where I don’t know whether to laugh when it goes wrong or to cry with the fact Microsoft managed to produce such a nightmare.

[1]: I know there were no computers back then, but let’s forget that little detail so I can make my point πŸ˜‰

[2]: Or so it seemed…

Enhanced Selection Datatype v2.0

I have some good news for the fans of the Enhanced Selection datatype for eZ publish: version 2.0 is in the works. The new version will contain some shiny new features, but it will also be completely rewritten from scratch. The code of the currently released version is almost ancient and a rewrite will make it easier to add new features (and of course, bring it more up to date with eZ standards).

It’s possible that class content and/or object content won’t be compatible between the two versions, but in that case I will make an upgrade script to ease the transition. I do aim for the fact that current object-level templates won’t need to be changed for the new version.

Another issue is eZ publish version compatibility. The latest stable release is 3.9.x and both the 3.6 and 3.7 series have had their end-of-life bugfix release which means they’re unsupported as of now. My plan is to support version 3.8 and newer. My guess is that this is not such a big problem for 3.7 users (the new version will most likely be compatible, just not supported). The real problem will most likely be 3.6 and older releases, mainly due to the fact that they’re based on PHP 4.3. If I go for 3.8+, I cannot guarantee it’ll be compatible with the PHP 4.3 series. And that’s the reason for this post – and I’ll only say it once:

If you want 3.6 support, speak now or remain silent forever. Now where did I hear that before? πŸ˜‰

Regular expression datatype v2.3

Just a quick note to mention that a new version of my regular expression datatype has been uploaded to its contribution page. Version 2.3 “fixes” the issue I mentioned in my previous post on the subject. Two additional things have also been changed, namely:

  • Changed: Shortened object-level error messages
  • Fixed: Undefined variable used in helper function

It’s also available in the community SVN repository for those who always want the latest version.

Regular Expression Datatype: Planned Update

A recent comment to my regexp datatype contribution reminded me of an irritating shortcoming in eZ publish. It’s not possible for datatypes to send error messages back into the class edit. It’s only implemented on the object level for some bizarre and obscure reason.

I plan to incorporate class-level error messages in the next release of the datatype (expect the release soonish) but it’s a real shame that this shortcoming has survived 8 releases so far.

But for now, back to C# πŸ˜‰

Regular expression datatype v2.2

When you start creating a piece of software you always think you’ve got all possible features covered. As soon as all those ideas are actually implemented it’s time to call it version 1.0. But then you start using that piece of software and the new ideas just keep coming.

My regular expression datatype for eZ publish isn’t any different. A couple of new features and a bugfix warrant a point release bringing it up to version 2.2. Here’s a brief overview of the changes:

  • Fixed: Regular expressions are added to/removed from the first class attribute using this datatype (Thanks to Richard Tuin for reporting this issue)
  • Added stripping of tags with possibility to disable the stripping via the ini file
  • Added possibility to control the size of both a text line and a text area in content/edit

All details are on its contribution page.

Regular expression datatype v2.1

I’ve just updated my regular expression datatype, regexpline, to version 2.1. The latest version of this eZ publish extension brings you these changes:

  • Enhanced contentclass view template
  • Fixed naming pattern if no subpatterns have been defined
  • Fixed display of object content when using it as a line field
  • Possible fix for excessive whitespace when using text block mode
  • Removed debug
  • Added possibility to “negate” regular expressions/presets. (must *not* match this regexp instead of must match)
  • Implemented hasObjectAttributeContent() (has_content in templates)

As usual, you can find a download on its contribution page.

Development mode for templates

eZ systems‘ Jan Borsodi finally provided a solution for one of the biggest issues a developer encounters when developing with eZ publish: compiled templates don’t check the modified times of their source files.

Jan’s patch alleviates this problem by adding an ini setting DevelopmentMode. When enabled, compiled templates contain code to check their source files’ modified times and refresh when needed. It’s recommended to keep this setting disabled on live sites because it could cause slowdowns, but preliminary testing on Windows (which has slow I/O) shows little to no slowdown. It remains to be seen how the setting impacts a full-blown live site. The point releases posted today already contain this new feature.
Meanwhile, Jan has posted a second patch on the mailing list that will make the view cache expire when an “involved” template has been modified. It should be in the code RSN.

Thanks Jan!

Regular expression datatype updated

In the past few days I’ve released two new versions of my regular expression datatype for eZ publish, regexpline. Version 1.1 contains these changes:

  • Fixed: CS issues
  • Fixed: Only use internal function to fetch the regular expression
  • Fixed: Naming pattern (title function) does not return an empty string when given no input or invalid input
  • Added: Custom name pattern similar to the object name pattern of a contentclass

And version 2.0 has been published today. Here’s what’s new in this version:

  • Added: Multiple regular expressions can be entered
  • Added: Multiple presets can be active
  • Added: Custom error messages per regular expression/preset
  • Added: Display as text line or textarea (in object edit)

More info and download locations can be found on its contribution page.