I've been involved in the organisation of a number of scientific conferences over the past few years. For example 4m/ICOMM 2009 (submissions), I*PROMS 2009 (submissions). The conference sites are usually powered by drupal, the submissions using OpenConf. Managing the submission and peer review of papers is a chore, unfortunately, as is often the case, software gets in your way. So here I try to skim over some of the experiences I had with OpenConf - the good and the bad.
I've tested indico, which looks like a very good system, but it is heavy and over-engineered, especially if you want to run a couple of events, and not hundreds or thousands. It might be good for organisations managing a big number of events, but not for us.
After going through a number of trials I've settled on openconf. It was simple. It fitted the current web infrastructure - LAMP. I reckoned, I could eventually integrate it, or simply transfer some of the data into drupal, and maybe even benefit from code reuse. Surprisingly, I ended being both pleasantly surprised and not so.
HAI
IM IN UR BUCKETS MAKING UP FORMATS
GIMME FEEDS
I CAN HAS FEED DRUPAL PLANET
ITZ AT http://drupal.org/planet/rss.xml
INVISIBLE METADATA
LOL
I CAN HAS FEED DRUPAL GROUP POOL
ITZ AT http://api.flickr.com/services/feeds/photos_public.gne?group=35237091376@N01&lang=en-us&format=lol
INVISIBLE METADATA
LOL
I CAN HAS FEED VERTICE'S PHOTOSTREAM
ITZ AT http://api.flickr.com/services/feeds/photos_public.gne?photostream=44124348472@N01&lang=en-us&format=lol
INVISIBLE METADATA
LOL
I IS BORED
KTHXBYE. There is a discussion going on in php land about introducing closures and lambda functions, there was even a discussion on haskell-cafe about it (chx strikes again ;). About time, I would say. Having this functionality is a bonus. Having it implemented badly or half-arsed is going to do more damage than help. This is a short summary of what do I understand from the rfc and what do I think about it.
What helped immensely of all these first days was The Drupal Cookbook (for new drupallers). It is a great resource, indeed. The only problem is (I think) that if this is your first CMS, you will find you need to be like an intellectual Shiva, learning on the go new concepts, new ways of thinking about the site structure, a whole new vocabulary to learn and, at the same time, get your hands dirty with the nits and bolts of the actual site.
http://drupalfordummies.blogspot.com/
And you gain super cow powers. Nuff said ;)
Kudos to the docteam.
Lately I was looking into how to reduce the spam traffic to this website. Not just comment spam, but various harvesters and other nasties. They steal too much http bandwidth.
.htaccess methods are tempting, but they have a huge disadvantage - they are static. DNS blacklists can be used to dynamically query 'is this ip a known threat?'. One such list is provided by project honepot. They have an apache module in beta implementing it. If you don't have the option, or want a bit more dynamism, you can do the checks from your own php script.
In drupal there is already an httpbl module, but I decided not to use it. It looked easier to just insert the checks in index.php. The other benefit is that I can interfere before the drupal bootstrap has even started. The downside - none of the goodies provided by the module. I used a modified version of the script provided by planet ozh.
There are quite a few interesting computer science artefacts in Drupal. I'm going to try to highlight a few of them. Sorry, this is unfinished, and might not be finished ever, but I'm just trying to capture a snapshot of confused meandering thoughts.
Late binding came to popular life with the advent of object oriented languages. Essentially it means binding of values, for example functions, to names at object creation, as opposed to compile or link time. In drupal, this can happen at any time, more even, it is algorithmic - that is you can change at runtime what is to be executed at a specific control point. The hook system is one of the ways to do it.
The state of affairs with files and file handling is strange.
The second alpha of the docs module for drupal is out. I've been doing a bit of code cleanup, and I'm moderately happy with it.
There are a couple of unfortunate consequences of the reliance on upload.module, for example the node edit. While the maintenance is simple, which is paramount, docs doesn't provide a mechanism to upload a revised version of a file. That is due to the way upload.module has it's revisions logic. It is possible to do it, but I decided to leave that out completely, opting for creating an add-on module for that. The logic is simple - not everyone will need it, so keep the core docs module as simple as possible. It is complicated enough, without doing anything really special.
This is for John, mainly, but anyone else read on, if you fancy it. Expect me to follow my website motto. This post is a patchwork of thoughts coming from going through actions module, some of those can be damaging or tedious or both.
I had a look at actions, it looks good. Can be cleaned up, but it is better to see what needs to mature further. The api reminds me of one ofthe evaluation models for lambda calculus (don't ask which or what - no clue, I'm bad with those things, if ain't in me bookmarks it ain't in me head).
The primitive, that is php coded actions, are atomic, and defined in some (environment) context. Something like action( $context, $arguments). Conditionals can be defined, for D7, for example. If the conditionals are cond( $context, $pred, $then, $else ). Since we are passing the context explicitly, nothing stops us implementing action closures - not on atomic actions, but on the upper level by adding something like a procedure, or abstraction, or whatever you like to call it, which has very simple 'stack' semantics. abs($context, arguments ) body the arguments get added to context if this form is used. Effectively something like this might happen (the meaning of the following, not how you would write it):
After 8 months of development we are ready to release Drupal 5.0 to the world. Today is also Drupal's 6th birthday, so the timing could not be more perfect. Drupal 4.0 was released in 2002 and finally we feel confident to increase the major version number from 4 to 5.
There are improvements in the install, the administrative UI ...
It is a bit scary under the hood.
Garland is simply gorgeous.