phpgroupware

Update

Yes I have been a bit slack about blogging lately, I have had a lot on. Here is a quick summary of the notable bits.

Car

My car is at the panel beaters. The guy who hit me drove off after I accused him of being drunk. The police have told me that he has been charged with several offences, including careless driving. Julie and Noah were in the car at the time, but they were both ok. My neck still a little sore. It will cost about $8000 to get it fixed. Allianz has been really good so far, one phone call and one visit to the panel beaters and it gets sorted. And of course, here is a pic of the damage My smashed Volvo 850 Wagon This is the second Volvo I have smashed in less than 2 years (I rolled the last one and wrote it off) and escaped with nothing but minor neck injuries. If you are looking at buying a car I would recommend a Volvo 850 Wagon(or V70 / XC70 if you can afford it).

Rental Cars

I have always suspected that there are scams in the car rental business. This was confirmed by Hertz, their "Melbourne Downtown" depot was able to do a Ford Falcon XR6 for under 125AUD for the 3 days, less than half the price of their suburban depots. The second scam is the insurance excess waiver. Having to pay 1500AUD excess regardless of fault forces people to take the reduction waiver. On the positive side, their #1 Club Gold seems ok, so I signed up for free.

Work

I am still working at SGI. Last week I signed another contract extension, which will take me through until 7 September. I am currently in discussions with a company in Europe about a telecommuting role involving phpGroupWare. Things should become clearer before the end of the month - watch this space.

Summer of Code

Johan has cranked out some really nice looking sync code for phpGroupWare. I complete his mid point review a few days ago - I gave him an A. The only real criticism I made was that he should enable comments on his blog. We should get this into CVS some time this week.

Coding has begun and now I get mentoring

Johan has already started coding for his Google Summer of Code project for the GNU Project and phpGroupware. This morning I received confirmation from the FSF that his copyright assignment has been sorted.

I have done a quick review of some of Johan's work, but I hope to spend some serious time on getting things moving this weekend. The new job has really put a big whole in my time available for anything other than work, commuting or my family.

When I read Federico Mena-Quintero's Summer of Code Mentoring HOWTO, I was working pretty flexibly from home and I thought mentoring was checking over code and answering a few questions. My new job has taught me that good mentoring can make a big difference for someone coming into an organisation.

I hope over the next week or so I can establish a good routine which gives me enough time to help Johan find his way and get on with hacking on sync.

Mugshot, what's the point?

I noticed a few geeks had mentioned mugshot in their blogs (sorry too lazy to dig up references), so I signed up. I am not that impressed so far. I have created a profile page, which sort of resembles a cut down version of my liferea RSS feeds. I joined some groups, and created a phpGroupWare group, which just allows others to join the group and receive the group's feeds via their "stacker". This is very web 2.0 and "cool", but I am still wondering "why?".

In their FAQ, mugshot says, they are

an open project to create live social experiences around entertainment.

There is also a desktop app for Linux or Windows which allows users to view their stacker on their desktop, show what music you are listening to, or chat to users in your groups. The software also offers an opt-in system to allow you to give Red Hat info about which apps you are using. Both the mugshot web app and desktop software are "open source", but the licensing seems a little confusing - even to me.

Mugshot allows you to link various web 2.0 profiles and data sets to your profile. I managed to add my business site, my blog, my AIM account, my del.icio.us bookmarks (sporadically updated), stories i have dugg and my LinkedIn profile. Mugshot doesn't allow me to add my XING profile (XING was formerly OpenBC) or any of my other IM networks. There were other social networking/web 2.0 sites which I don't use which I could have added.

Other than a showing off which projects I like, which web 2.0 services I use and to tell Red Hat what software I use, I don't see the point of mugshot. Am I missing something?

bye bye PHP 4

I have several servers running PHP 5 already, but as my laptop is my primary phpGroupWare development and test environment, it was running PHP 4.

I knew this day would come, I just didn't think it would be so soon. PHP4 has been dropped from ubuntu. Ubuntu has never shipped php4 in main, but until feisty it has been in available in the universe.This is no more.

The advantage of using PHP 5 on ubuntu is that it is in main, so has full security support.

I started using PHP 3 and I was pretty enthusiastic about making the jump to PHP4, but have held back on PHP 5 due to the problems with running phpGroupWare (and other scripts) under it. It looks like I no longer have any excuses,

Now that all the major distros ship PHP 5 and PHP 6 is around the corner, it is time to bury PHP 4. The world didn't end when register globals was turned off by default. Switching to PHP 5 won't kill us either, but holding back may.

Planet Summer of Code

Hi to everyone reading this post via Planet SoC - the unofficial Google Summer of Code aggregator. I am Dave Hall, API Coordinator, phpGroupWare and mentor from the GNU Project. I will be mentoring Johan Gunnarsson who will be working on a syncML interface for phpGroupWare.

I have already blogged about the wild ride that I had to become a SoC mentor.

I have decided to only add my SoC related posts to this planet so not to clutter things too much with my general ranting.

Good luck to everyone participating in SoC, it looks like some projects will end up with some pretty nice features in a few months time :)

Web 2.0 Design Patterns Gallery

Interesting web 2.0 design patterns. Might be something useful for phpGroupWare in it.

Coghead Screenshots

Cool looking browser based application development tool. Could be an interesting replacement for eTemplate in phpGroupWare.

Really Simple CalDAV Store

Interesting PHP CalDAV implementation. Could be useful for phpGroupWare

phpGroupWare release?

I have been thinking about how to deal with releases of phpGroupWare. For me it is a technical, procedural and political question.

Over the last few months I have been playing with drupal a fair bit. I love drupal. It is simple to install, skin and hack. The community is great. The website is massive and has almost anything you want about durpal. They dog food their stuff. I have quite a few clients using drupal for their sites, they love it. There are many cool things on technical level within druapl too - but that would take this post off on a long tangent.

Drupal was allocated 20 summer of code places by google. phpGroupWare received 1 spot, indirectly. To me this is a sign of the popularity of the project and the level of activity within the community.

I hear you thinking, but hang on, drupal is a CMS, phpGW is a groupware suite, compare apples with apples. Well, you see I am not trying to compare apples with apples. I am looking for good ideas about how to build a quality release.

I think drupal have it sus'd. The have the core which is released when it is ready. They also have a stack of modules which are released when the developers feel like they are ready. This provides a lot more flexibility to all developers. Developers can prepare versions for multiple versions of drupal, but also release stuff when they think it is ready for release, not wait for the next mega tarball to be prepared.

I think that the drupal release model may work well for phpGroupWare. We could prepare the core (probably API, admin, addressbook, calendar, email, filemanager, notes, preferences, setup, todo - the PIM apps amd sync when it is ready) and release that as phpGroupWare 0.9.18. Then modules developers would be free to package there modules and release them when they were ready. Modules which were tested and stable at the time of the official releases would be listed in the release annoucements. It would mean that getting our apps site working would be important as that would be the entry point for a new eco system. It would also mean that if someone is working on new features for an app, they could release often, while the core would be more static and stable, in order to encourage more app development.

I don't think that we can have a release time table for the core unless we have significantly more (paid?) resources available.

I think that covers the technical and procedural issues, the political hopefully won't be too painful either.

The decision on what is core and what is not will need to be made early. The criteria for assessment should be made publicly available. Developers should be free to ask that their app be considered core. Being a core app is not a vital thing, apps will still be promoted it they are not core.

We could look at 4 levels of apps. Core, as discussed above. Supported, apps which meet the core app standards, but are not considered core for what ever reason. Unsupported, apps which work but do not meet the project standards for some reason (coding standards, bypassing the api, lack of docs, require patches etc). Dead, apps which are no longer maintained and other developers feel should no longer be maintained. The status of the apps would be publicly listed.

Such a model as proposed above would allow us to release a 0.9.18 core with some additional supported apps (such as ged, property, messenger, tts) a lot sooner than trying to get all the 0.9.16 tarball apps ready for release.

The only technical issue to resolve in this plan would be version control as savannah's CVS. isn't really designed for this model of development. I have been discussing switching to SVN with the savannah hackers, they are supportive of the idea.

I do have comments open on my blog, so feel free to leave a comment, otherwise discuss it on the dev list. I will post a summary of the comments there if I feel it is warranted.

The Summer of Code Roller Coaster

I am awaiting final confirmation from google and the GNU project, but I am 99% sure now that phpGroupWare will be getting a Summer of Code (SoC) slot, and I will be mentoring a student to implement sync.

What a process it has been, and I am yet to start mentoring. I thought others might be interested in the the ups and downs involved in getting phpGroupWare a SoC place.

At the start of March, Google opened applications mentoring organisations. I made an application on behalf of phpGroupWare. All up 141 organisations were accepted, ranging from small obscure projects through to some of the stars of the FOSS community, with a mix of grass roots and commercial projects. Unfortunately phpGroupWare ended up at 142nd or lower in the rankings.

I am sure google was inundated with applications, but it would have been nice to at least receive a "thanks but no thanks email" from them. I found out by checking the listings when they were announced. It kind of reminded me of first year uni when they would post provisional marks for the semester a couple of weeks before mailing out academic transcripts. I thought our Summer of Code was over before it had even started.

Then I noticed that the GNU Project had been accepted as a mentoring organisation. As phpGroupWare is a GNU Package it was eligible for SoC slots, under the GNU banner. The GNU project received 65 valid applications, with a further 12 being deemed to be invalid. I thought phpGW had a pretty good chance of getting one of the slots.

phpGroupWare received 2 applications for worth while improvements, those being sync and redoing the installer/setup code. It was really hard choosing between the 2 applications. The rationale went something like this. Setup is the first thing a new phpgw admin will see, our current setup app has had some eye candy added by it is far from polished and needs some serious attention, yet it is not something that someone is likely to invest money in, but it is important. Sync on the other hand allows us to support mobile devices, desktop apps (including dare I say it MS Outlook) and to tick another business functionality box, yet our previous attempts at sync have failed, usually due to technical reasons. In the end a tough choice had to be made (sorry again jarg), and we went with sync as it was going to bring the greatest benefit to our current and potential users.

The GNU SoC admins asked all the mentors to rate the applications. Our top choice (sync) was rated up.

While I was away for Easter (with limited dialup speed internet) it was announced that the GNU project had been allocated 8 spots. That seemed like a reasonable number off slots given that some GNU packages, such as GNOME had been given many more in their own right. The problem was that the 8 places allocated to the GNU project had to be shared between 11 packages. This meant that some people were going to miss out. I still thought that there was good chance of phpGW getting a slot.

On Monday when I got home (with a good connection) the final 8 was proposed, to my disappointment phpGroupWare wasn't on the list, we had been ranked 10th. This ride was still far from over. A later message suggested that there had been a rethink and 2 packages had been dropped and the last 2 slots were to shared between phpGroupWare and 2 other projects. Back to a two-thirds chance. I fired off an email explaining why I thought we should get one of remaining slots.

The next morning I woke to the bad news, we had lucked out again. Another application had been found as the diamond amongst the coal and elevated to 8th spot. phpGW was now sitting in 10th spot and out of contention, or so I thought at the time.

By this stage I was proof reading a draft blog post on the whole SoC of process. I am now glad that I didn't publish it, not that I was likely to, it was more a venting. I did email one of the admins privately asking for more information on why we had been rejected.

On Wednesday morning I was checking my mail and found a new GNU SoC final list (rev 3, I counted). One student had been allocated to 2 projects and had decided to work on the other project, this freed up 1 slot, which meant phpGroupWare moved to 9th, still 1 short. The news got better, google had allocated the GNU project an additional place. We made it, finally!

I am sure Google didn't intend it to be such a tough process for mentors, but when there are so many worthwhile FOSS projects, some many enthusiastic and competent students and a limited budget it does make it difficult for Google to give everyone a go.

It has been a long and stressful process to get phpGroupWare a SoC slot this year. I hope that the stressful part of the process is now over and that Johan Gunnarsson will turn out a functional syncML interface for phpGroupWare.

If it works out well this year, it might be worth all the effort to ride the roller coaster again in 2008, as long as Google is willing to put up the cash.

Update: I have checked and phpGroupWare is in Google's accepted list.