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

On fundamental database operations

Submitted by nk on Sat, 2009-12-05 13:20

All databases I am aware of work based on CRUD: Create, Read, Update, Delete. Drupal always wanted to implement all of them nicely and now we have a nice Read in Drupal 7 with entity loading. Delete API has a very long and very sad history which I won't get into but we tried to introduce Delete API to make undo possible. As teached by many excellent usability books, confirm forms are wrong, they become habitual and are just a nuisance instead of protecting you from mistakes. The computer should just do what its operator says and make it possible to revert easily.

Core changes announcement tweet

Submitted by nk on Fri, 2009-11-27 22:42

This is more a dream than anything else but wouldnt it be great if the bigger changes were tweeted like "themers: check this issue, we have overhauled hook_theme". Ideally some field experts would be able to look at the change (and only the change they need to know of because this way they do not need to follow the sometimes overwhelming core development) and raise red flags if it won't work for them. Yeah, I am dreaming.

Mini Drupal cycles

Submitted by nk on Fri, 2009-11-27 20:38

Continuing my previous post here are some ideas on how could Drupal development process happen in the future. Let's say on January 1 the UX team begins to work on a design. As reusable UI patterns are part of the framework, I am not specifying whether they work on the framework or the product, they work on better user experience. Their goal is to come up with wireframes, getting feedback and getting some simple mock/skeleton implementation.

Drupal 8 maintainers

Submitted by nk on Wed, 2009-11-25 22:44

As read in Dries' blog post about Drupal 8 there will be a framework and an application maintainer for Drupal 8. I would like to be the framework maintainer but obviously the decision is Dries'. My actual coding contributions have decreased significantly recently anyways and this would be a fantastic way to continue contributing to Drupal. I will write more on this blog about our goals for Drupal 8.

Again on subsystem maintainers

Submitted by nk on Sat, 2009-10-31 03:11

Two important points were brought up with my previous idea. One, communication and direction and so forth. Any patch needing that is branch maintainer territory. The subsystem maintainers are taking care of the small patches so the branch maintainers only need to deal with the bigger patches. Then comes the "but if it's a small patch then it takes no time to commit". This is simply not true -- everything takes some time -- if it takes only one minutes (I doubt they can be done so quick) then thirty of them takes away the time from a bigger one. Edit: We just had a discussion on IRC where went through a bunch of commits checking whether they are on subsystem or branch level and we found that most patches that operate on a subsystem level are really small so it might be that instead we want to name a 'code janitor' or 'yard sweeper' who can save the branch maintainers from "death by ten thousand cuts" and sweep in the minute fixes which drain the branch maintainer's time. This would just add one or at most two people making the communication overhead really small.

New York Times mentions Drupal

Submitted by nk on Fri, 2009-10-30 14:56

Ashlee Vance, the renonwed former columnist of The Register have written a post about Drupal in a New York Times blog. "Drupal, however, seems to be doing just fine with or without government support" wrote Mr. Vance. Also quoted in the article are Mr. Erickson and Mr. Buytaert from "a start-up looking to commercialize the software".

On more core commiters

Submitted by nk on Thu, 2009-10-29 05:53

This is an answer to Jimmy Berry's blog post (disclaimer: we both are employed by NowPublic but neither his nor mine has anything to do with the company). I just reiterate my idea -- can't remember where I posted it if I did or whether it was just a chat with Dries. Many a people suggested handing out commit access to people in MAINTAINERS.txt and I agree with that but with a twist: subsystem maintainers can not commit patches written by subsystem maintainers!

The problem Drupal faces (hint: not #smallcore)

Submitted by nk on Thu, 2009-10-29 03:51

The so-called #smallcore movement seems to be gaining momentum and I was asked what is my opinion. To recap, people say that Drupal ships with too many things hardwired, we need to make a better framework and shuffle certain things to the profiles and then the Drupal world will be a much better place.

New IRC channel rules

Submitted by nk on Tue, 2009-10-27 06:14

There are now so many contrib modules that writing custom PHP code is rarely necessary (see Dries' deprecated meme). However, people still ask coding questions on IRC when they, in reality, need a contrib module. Observing this and seeing the strain it put on the developers who work on Drupal core and contrib, we have changed #drupal on irc.freenode.net to be the channel where Drupal is worked on: core, contrib, community etc and #drupal-support is where you need to be if you are working on a specific site.

PHP5 objects and references

Submitted by nk on Sun, 2009-10-25 12:35

My favorite analogue for references is a huge filing cabinet where each drawer is a variable. The label on the drawer is the name of the variable, the contents of the drawer is the value of the variable. A reference is just another label on the drawer. However, in reality, there are special variables which PHP call resources. For example, for a MySQL database connection, you will only find a little note in the drawer saying "I am not a normal variable, find the special cabinet called MySQL connections, and drawer 1 there has the connection data".

User login