Played a little with the gource log visualizer today. It is typically used to visualize committed revisions in a revision control system, although any system that logs events of some kind could be made to work with it I suppose.
I happen to have a repository of xaraya going back to 2002 in git, so I thought I’d give it a shot.
…more time passes than originally planned…
Result
8 years of commit history in 10 minutes of video. Produced with gource from a git repository of Xaraya. The video traces the 2.x main branch back to its origin, repository wise. The start is the import of the CVS postnuke repository into Bitkeeper. Since then xaraya has switched to monotone.
This produced a video of 11 min. 35 seconds. To bring it back to 10 minutes the framerate was increased until the total time fell just below 10 minutes.
I specifically wanted the whole history to be in one video of 10 minutes (the Youtube maximum) which means compromising a bit on the quality. If there are things I can do within these assumptions to improve the video, I’d like to hear them.
I just migrated the posts from this site from Xaraya to a WordPress install, just like I did with My Cobra Blog. Apparently I have been playing for about 5 years with it since my first post. The blog started out as a subdomain of hsdev.com, using an install of Moveable Type (I forgot the version).
I don’t think I used MT for a long time. At the time I was maintaining/rewriting all the xmlrpc/blogging modules for Xaraya and it made sense to use my own blog as a testenvironment for it. This weekend I installed WordPress on our servers. Both the “normal” version and the WordPress-µ (Multi-User) were installed. (I had already started with the 2.7 beta, but along the way I sort of realised that the multi user variety is a better choice for me).
So, all new software again for the measly 10 posts I do a year.
The plan is to have mrblog.nl be a ‘top-level’ kinda thing, perhaps multi-domain to allow quick creation of blogs and use subdomains for specific purposes (like the cobra blog and I want to experiment with a photo-blog at some point too).
We have been considering migrating Xaraya to the creole abstraction layer in the future. Creole is similar to the adodb library we use now. Originally the support for Creole was created to be able to implement a MS-SQL proof of concept quickly. After using the library for a bit I found it much easier to work with than adodb. Creole’s API is much cleaner and it is PHP5 only, which gives us a head start for future Xaraya versions.
The monotone setup we use allows us to test all this without disturbing main line development. Organizing these bigger changes into scenario’s allows us to isolate these changes and see where they lead to. The decision to use or to throw away can thus be postponed to a time when we’re ready to do so.
Since replacing the middleware is potentially a very big step, I noticed we (the Xaraya group) have some trouble making a decision on what to do with this. Therefore, the creole scenario has been merged into this site to show that a real life site (albeit a small one) can be migrated to creole without any effect. (Note: I’ve been running creole on other installs for a while now, so I’ve known this for a while)
Verdict: one change was necessary to wrap the ‘GetRowAssoc’ method present in adodb but not in creole. Everything else worked directly after the merge, so my preliminary conclusion if the decision hangs on ‘what impact does this have?’ is that the impact is very minimal. On top of that I think that the issues we might run into are not bad things as such, but chances to improve Xaraya.
Creating content with Blocklayout in Xaraya is flexible and every once in a while i want to take it for a spin. In the past i’ve played with creating a XUL theme where Xaraya served it directly as the XUL mimetype, this time i’ve been playing with creating a calendar feed of any Xaraya content which has some sort of a date attached to it.
What happens is that the content of some part of Xaraya is fed into an iCal theme which produces output according to the iCal standard Blocklayout sets the right content type for us, which allows clients like Apple’s iCal or Gnome’s evolution to ‘subscribe’ to the calendar feed.
Above is an example on how that could look in the iCal application. The Feed block on the right side allows you to do exactly what is described here if you have a client which allows you to subscribe to iCal feeds. I’ve tested it with Evolution and iCal. The concept is still young but I can see a lot of potential in this.
We run about 30 Xaraya installations for our clients on our servers. Some of those clients are eager to migrate to PHP 5 while others are more conventional and want to wait. For others, due to the specific requirements, moving to PHP 5 is not possible yet. How to cater for both of these customers?
Assuming it’s common knowledge that if you want to run both php versions on the same server you’ll have to run two different instances of your webserver, usually on two different ports. In our case, when you access a site you get apache 1.3 with php4 by default. If you access the same site at port 81 (like site.com:81) you get apache 2 with php5.
When you want to make sure that a particular site runs php5 even if accessed through the default port (80) you can include the following in your htaccess file:
# Force this site to use port 81 on which php5 is served
RewriteCond %{SERVER_PORT} !81
RewriteRule ^.* http://marcel.hsdev.com:81%{REQUEST_URI} [L,R=301]
The first line tests whether the port accessed is NOT port 81 and, if the case, redirects the browser to the same request uri, using the 301 status code (“moved permanently”) and makes sure it is the last rewrite rule
This setup allows each individual site to decide whether to run on php5, optionally using bleeding edge Xaraya features like the creole scenario (which requires php5 ) or to server on both php4 and php5. Likewise if you want to prevent using php5 it’s easy to see how the htaccess could be adapted. This situation is however far less common.
Let’s try to create a chain of documents like the one John did in Xaraya 2.0 Brainstorming. After a while the common denominators should float to the surface by looking at the whole chain.
I tend to view at an application development process like this:
make it work
make it right
make it nice
make if fast
For Xaraya, the 1.0 release signals to me we’ve been able to make it work. Now, let’s try to make it right. Some ideas on how follow.
For play, i constructed a couple of templates on the Xaraya site to connect the Worldkit package to a xaraya installation to construct a geographical map (flash based) of the registered users on the Xaraya site.
Worldkit uses an RSS feed with location information to construct an image where the data points are shown on a map. In doing so, of course the RSS feed can be subscribed to in the ‘normal’ way too, giving you an addressbook directly in your aggregator of all people who have provided their longitude and latitude information on the site.
Chris compares the two different mechanisms used for a concept introduced in Team Foundation (TFS) known as Shelving. It is a concept where you put a certain state of your development environment ( workspace, repository, whatever the local term is you are used to) aside (on a shelf), work on some other stuff and take the shelved state back into your workspace (UnShelve) when ready.
Let me add a few notes on how we do this in Xaraya with BitKeeper.
Making xaraya react to the mt_keywords MT member was easy with the existing keywords module. The harder part (read: more time consuming) was to make the visual presentation of them in the site somewhat acceptable.
If you view this article by itself (what we call the display view in Xaraya), you’ll notice an extra part on the right side “Related entries” which lists other entries which have the same keywords attached to them. This allows a reader to quickly read all entries which have the same or similar taxonomy. The block isnt fully functional yet, because it reacts to some keywords while it doesn’t for others, so there’s still some digging to do there. (FIXED)
I dropped a quick message to Adriaan Tijsseling, the developer of the amazing Ecto package with a number of questions. One of the questions was whether Xaraya could be included as an endpoint in the accounts screen.
This morning, I fired up Ecto, and the update which contained it was already there! Man, this guy is quick.