Sunday 30 September 2007

MySource 4.0 WebDAV update

In a previous post, I mentioned some WebDAV improvements that I was thinking of implementing in MySource4. I've finally got around to trying some of them out, with positive results. The improvement I'm currently making to MySource4's WebDAV server is the ability to add files and folders.

Adding this feature was a lot easier than I thought, but the functionality it provides is much more impressive. I'm now able to drag files from my local machine into the WebDAV folder. I can also drag entire folders and have them imported along with their sub-folders and files. This makes mass-importing of files and folders as easy as copy/paste and is going to be an important part of any document management system.

The files and folders that are imported exist only in WebDAV and are not imported into MySource4 because I can't trust most WebDAV requests. When an administration interface is added to MySource4, I'll put something into it that allows the changes made in WebDAV to be committed to the MySource4 system. For now though, all imported files and folders can be viewed and edited by all editors using the WebDAV interface, so it works sort of like a staging area.

As much pain as WebDAV has caused me in the past, I've fallen deeply in love with it again!

Friday 28 September 2007

php|architect on PHP_CodeSniffer

The guys at php|architect have had a quick chat about PHP_CodeSniffer in their latest newscast, hosted by Sean Coates and Paul Reinheimer.

One of the things they mention is that it would be great if PHP_CodeSniffer could be integrated into common editors. At Squiz, the MySource4 team already has PHP_CodeSniffer integrated into JEdit using a web service and a JEdit plugin that we wrote, and into TextMate using their built-in script plugin. Integration with other editors is something I'd like to look into further after the first stable release.

Monday 24 September 2007

PHP_CodeSniffer 0.9.0 (beta) released

I've just released PHP_CodeSniffer version 0.9.0. No bug fixes were included in this release, but a couple of great new features made it in.

I've talked about the new Zend coding standard (including the Zend Code Analyzer sniff) before but there is also a long awaited feature that made it in; config options. Config options allow PHP_CodeSniffer and its standards to use persistent settings across runs. The most useful of these is the ability to set the default coding standard that PHP_CodeSniffer uses.

You can view the full changelog, and download the release, on the package download page.

Tuesday 18 September 2007

Web 2.0 ... The Machine is Us/ing Us

As part of his Web 2.0 talk at the Matrix User Conference, JP showed quite a clever video about how the web is changing. Even though the video has received close to 4 million views, I hadn't seen it before. If you haven't either, here it is:

Screen Reader Simulation

If you have ever wondered what it is like to use a screen reader, this screen reader simulation may help you understand how hard it can be to navigate a site without seeing the content. Yes, it is a simulation so it is not perfect, but it will give you an idea.

What did I learn? Among other things, vertical bars may look cool between menu links, but I wouldn't want them there if I was using a screen reader!

PHP_CodeSniffer and the Zend Code Analyzer

Ever since I first used the Zend Code Analyzer, I've wanted to put it into our code sniffers, but I've never got around to doing it. Now, thanks to a contribution from Holger Kral of Zend, and a new config system in PHP_CodeSniffer, you can include ZCA warnings in your coding standards.

I've just committed the CodeAnalyzer sniff into the Zend standard under a new Debug category. The sniff requires you to have ZCA installed on the same machine as PHP_CodeSniffer, and you need to tell PHP_CodeSniffer where to find it.

$ phpcs --config-set zend_ca_path /path/to/ZendCodeAnalyzer
$ phpcs --standard=zend /path/to/file
Zend Code Analyzer produces warnings for things like unused function arguments and unreachable code. Not all the warnings need to be fixed, but it can certainly find some common mistakes in your code.

Sunday 16 September 2007

MySource Matrix User Conference 2007

I've just returned from the first MySource Matrix International User Conference, held on the Gold Coast. I presented two talks at the conference, including the first public preview of MySource4. Being the first conference, nobody was really sure what to expect, but overall I really enjoyed the conference and got a lot out of it.

Obviously, I was mostly focused on the preview of MySource4, which went pretty well. I was a bit worried that we wouldn't have enough to show, but the focus on the inline content editing interfaces, including our new WYSIWYG editor (Viper), was pretty much all I could get into the 45 minute presentation anyway. With the preview past me, I'm really looking forward to digging back into the product and shifting focus onto some new interfaces, including configuration screens and design editing.

The conference had a few case studies from MySource Matrix users, which was a really great thing to see. It's been over 3 years since I first started work on Matrix (it must be close to 4 now) and I've been removed from end-users for most of that time. I only really deal with the specification phase, clients that are having problems or clients with large amounts of development. It was great, really great, to see people who have used Matrix to improve their business, and to talk to people who really love it. I particularly liked reflecting on the Tourism Tropical North Queensland project (presented by Angus Sprott) and seeing the Australian Sports Commission system (presented by Pat Birgan) that I've only ever read about in emails.

The presentations I was really looking forward to were "Website Accessibility - Can you buy your own can of beans?" from Bruce Aylward and particularly "Access to websites - how design makes all the difference" from Neil Jarvis. Watching Neil use a screen reader to navigate websites was an eye-opener. You can't understand the reasons why you strive for accessibility without seeing how it affects the user, and that goes for application developers as well. I had a chat with Bruce after the presentation and spoke about the ways in which a JavaScript-rich web application like MySource4 can be made accessible. It's certainly possible, providing the development team is committed to the goal and understand what they are doing and why they are doing it. I'm very confident that MySource4 will be an accessible web application; one of very few.

Congratulations to everyone involved with the conference and thanks to everyone who attended and made it a great couple of days.