The drop is always movingYou know that saying about standing on the shoulders of giants? Drupal is standing on a huge pile of midgetsAll content management systems suck, Drupal just happens to suck less.Popular open source software is more secure than unpopular open source software, because insecure software becomes unpopular fast. [That doesn't happen for proprietary software.]Drupal makes sandwiches happen.There is a module for that

Release your code, it's worthless anyways

Submitted by nk on Sat, 2007-11-17 09:30

Our history begins on the African savannah. Economy was based on meat. Meat was something to build an economy on: it was available in limited quantity and obtaining it required special skills. Meat, in its original form either ran away very fast or, even worse, fought back. So was the cow invented -- thus the importance of meat as the base of the economy dwindled and now the land where you could grow your cow was more important. So the land became the base of wealth and land was available in limited quantities and soon every land belong to some thus trying to obtain it again lead to conflict.

Yes, this is Drupal, not WordPress

Submitted by nk on Fri, 2007-11-16 08:09

On Drupal Planet, one of the first things I saw this morning was a quote from my answers to factoryjoe's review. The author of that blog post easily skipped the fact that it was me who copied this review to infrastructure to make discussion easier and spent considerable time to review and answer. My answers was just, asking for implementation where I saw something great and turning down others.

Finally, a rewrite of subscriptions module

Submitted by nk on Wed, 2007-10-31 07:27

Everyone interested in this, first of all -- sorry. I wasted months trying to fix the old codebase. Now, there is a new approach... from the ground up. The code is blasted apart into small component modules: there is a module which queues the objects, there is an UI module so you can subscribe to things and there is a module which sends mails out of the queue on cron. This way, you can change the UI easily for something that fits your site better or you can use mailman or even SMS as the sender backend.

Drupal 6 and JSON pages

Submitted by nk on Sat, 2007-10-27 09:47

Konstantin Käfer in this issue have used page callback => 'drupal_json'. That's a remarkable trick. Cross that with the object loading notation of the new menu and you can get your objects in JSON with remarkable ease: $items['node/%node/json'] = array('page callback' => 'drupal_json', 'page arguments' => array(1), 'type' => MENU_CALLBACK); will get you the node in JSON format, access checked and all. Noone stops you from writing foo_object_load and using %foo_object to return anything in JSON...

Peter Wolanin -- the man who saved Drupal 6

Submitted by nk on Thu, 2007-10-25 21:18

So I ripped out the menu system and I thought I will be able to put it back just because I had an idea (and some code) of how the router will work essentially and how the navigation block would work. I was wrong. There was an immense amount of work to be done to complete the menu conversion and it's very likely I would not have been able to do it in any timely manner or maybe not at all. But Peter Wolanin stepped up and did a significant portion of this work, Without him there would not be even a Drupal 6 beta 1 at this point.

How to grep through all modules and include files in the Drupal code base

Submitted by nk on Wed, 2007-10-10 19:16

grep LOWER modules/*/*.{module,inc} includes/*inc

Add themes, sites/all etc as needed. The interesting trick is the {}.

Bugfix Wednesdays (BFW)

Submitted by nk on Wed, 2007-10-10 17:14

Every Wednesday, we devote the devteam to QA and bug-fixing. All major (and higher) bugs get a day's worth of developer eyeballs. A day of tests, doxygen, bugfixes, bugfix reviews, coder.module fixes, etc. Reported bugs can't be forgotten because there's a whole day devoted to closing 'em. Without an official and designated fix day, we become obsessed with features, not fixes. If there are no bugs, that means people aren't reporting them -- devteam day off, woohoo! Port Thursdays (PT) port all the fixed bugs from the previous day. (Written by Morbus Iff and in effect at

My stance on database abstraction

Submitted by nk on Tue, 2007-09-04 15:25

Countless times I needed to bother with PostgreSQL pecularities. I have nothing against PostgreSQL in a technical manner but neither the market nor our community has the human resources to support it. Let's face it: years come and go and the various PostgreSQL maintainers became busy with something else.

Found my IDE

Submitted by nk on Thu, 2007-08-16 04:29

So there was Zend. Which I bought. By the time I got a strong enough machine which could run Zend Studio with anything I would call even remotely acceptable speed, I no longer needed the much caveated for tooltips.

There is Komodo. Nice. And expensive. And again, not native to my Kubuntu Linux, which makes it more sluggish than I like.

I stuck with KATE which, through the kio-slaves provided by KDE can access me any remote filesystem via any protocol I can dream of. It has a rudimentary autocomplete -- it's string based which is actually good when writing menu definitons and such.

Nice new laptop -- and it runs unusual an OS

Submitted by nk on Mon, 2007-08-13 14:57

Today I got a nice new Panasonic Y5 thanks so much to everyone who donated to the cause! You can download unboxing (according to Engadget "holiest of holies") photos and you can see it running Mac OS X! Alas, the wireless does not work, so this laptop will also get Kubuntu. Because of this review the nickname of the machine is Tank.