drupal

Entities, Bundles, Fields and Field instances

Drupal 7 introduces a number of new apis and with those comes new jargon. Untangling that could be daunting. I'll try to briefly sketch what is what and relate it to terminology outside of the Drupal world.

This post is a work in progress, I am regularly revising the text from feedback.

Note Revised paragraph order and wording, clarified wording of definitions, added references, corrected glitches

Micro-benchmarking php streams includes part 2

In part 1 I've reported the results of a micro-benchmark designed to compare the performance of plain php includes vs includes via streams from a sqlite database. In this post I extend the test cases with two more no-includes same work, to serve as a base case and includes from a mysql database, the code is the same as in sqlite case, the connector differs. You can find the code attached at the end previous post.

Overall, having in mind the random factors like netbook load (CPU and IO), the differences between the different test cases are insignificant on the test machine - Acer Aspire One netbook.

Please let me know if you decide to run these benchmarks. I will be especially interested to see what are the differences.

These results are encouraging enough to merit developing a more substantial test. I'm interested in benchmarking drupal. What scenarios would you suggest?

Micro-benchmarking php streams includes from database vs standard includes

During the drupal plugin/update manager discussions I had an aha moment. One of those weird and wonderful ideas came back to me. What if most of the code lived in the db? One would be able to arrange the co-habitation of several concurrent versions of the same website relatively easy. Backups would mean database backup.

Funnily enough, this can help two opposite (scale-wise) types of users - the bottom end, cheapest or free hosting ones and the load balanced crowd.

Why "back"? Well... I had this idea ever since the user streams appeared in php, version 4.3 or there abouts, but it just nestled cosily in the back of my mind, waiting for love, the shy little thing.

London Calling - DrupalCon 2011

The London drupal community has thrown a bid into the hat to host DrupalCon 2011. It is a strong bid from a strong team for one of the best cities in the world. So just vote in the poll The preferred venue is Southbank Centre. It tickles me silly to just compare that to a leg of lamb. Don't ask. Ok. Fine. won't be that cruel. Just imagine a pub and food - that's one memory from the first Drupal meet in London. And now Southbank...

There are community polls out on g.d.o for DrupalCon2010 and DrupalCon2011 in Europe. These polls do matter, but are not deal breakers. They are there to reflect the community preference.

And just one last note - I would love Berlin for 2010. I love that city, especially East Berlin. Sorry Copenhagen =(

The design of dikini.net

This website is built on drupal - a content management system extraordinaire. Until the start October 2009 it used to be based on a modded version 4.6, but I upgraded it to the latest release, as part of my 'looking for a job and pimping my assets' project. Now it is just a vanilla Drupal with a custom theme. A variation of the theme I created for the South Wales Linux User Group as currently seen on http://beta.swlug.org

the new look theme

It is based around a grid "theory", to enforce some regularity and rhythm. The base for maintaining the vertical rhythm is 12px font/18px line height. The horisontal grid is organised around 6px (0.5em) units and is currently split into 12 columns. This gives enough room to play with in the future. It is a simple two (8/4) column design.

running a conference using openconf

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.

CAN HAS UR FEED

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.

php closures and lambda functions rfc

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.

Intellectual Shiva =)

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.

Quick and dirty httpbl and drupal. An attempt to weed out evil bots, a bit

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.

Powered by Drupal, an open source content management system