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

Drupal 8 progress from my / MongoDB perspective: update #5

Submitted by nk on Mon, 2012-10-22 12:48

The EntityFieldQuery rewrite is progressing well, finally had a good review from fago. The following patch had a 36KB interdiff on a 120KB patch. Such is life in Drupal core: you try to write something to the best of your abilities, someone smarter comes along, you adjust your code. Now your code and yourself is better if you take the effort to learn from it.

PHP closures are very simple

Submitted by nk on Sun, 2012-10-14 06:17

Closures seem like big magic but in PHP they are just syntactic sugar over the following construct:

<?php
class OurClosure {
  function
__construct($add) {
   
$this->add = $add;
  }
  function
__invoke($x) {
    print
$x + $this->add;
    print
"\n";
  }
}
$print_add_2 = new OurClosure(2); // call __construct
$print_add_2(5); // when an object is called like a function it calls __invoke
?>

Now, closures use the following syntax:
<?php
function get_add_printer($add) {
return function ($x) use ($add) {
print $x + $add;
print "\n";
};
}

My progress on Drupal 8: update #4

Submitted by nk on Tue, 2012-10-09 11:52

The system table removal patch went through some significant changes thanks to alexpott and sun and is now ready. That's great! I got busy with creating a proper version for the temporary key-value store patch: this is a requirement for Views in Core and also would allow for a nice entity preview workflow if someone would write it. EntityFieldQuery has been rewritten, there are a six more tests to fix, doesn't seem like a big problem, it still needs a lot of documentation and new tests but bojanz is back from vacation and promised tests.

Call for Organizers: Google-Code-In 2012

Submitted by nk on Tue, 2012-10-09 05:53

Google Code-In (GCI) is an incredible program in which junior high and high school students are encouraged to participate in an exciting open source project, like Drupal! Open source projects participating in GCI create a list of short-term, high-impact tasks for students to work on.

Over the past few years that we participated in GCI we attracted a number of new, talented young developers to the Drupal project who are still active community members today.

My progress on Drupal 8: update #3

Submitted by nk on Fri, 2012-09-28 00:04

As promised I am trying to keep a weekly schedule with these posts. The system table removal issue with the help of Alex Pott is almost ready although it has been pushed into process hell just before I started writing this so I am again worried about it given how tight our schedule is now. The date table removal issue got really far thanks to cosmicdreams and KarenS, I will finish if necessary but it's also relatively close. The code around it is not the prettiest to say the least.

My progress on Drupal 8: update #2

Submitted by nk on Thu, 2012-09-20 04:19

I will try to keep a weekly schedule but nearly two weeks passed since the previous post. These days I am still working on the system table removal. The key-value store patch it relies on is now fully ready (edit: it just got committed) and the system table to CMI conversion patch is now at its three major revision.

Drupal 7 core developers are ... - not conclusive

Submitted by nk on Sat, 2012-09-15 05:42

I can't let the Drupal 7 User IDs - Not Consecutive post alone just like that. A couple of emphasized "they" referring to some core contributors is really deeply disturbing because it furthers a false argument: there are "core developers" and there are "others". Everyone can write core patches and you are more than welcome to! As for this issue, it's not about liking or disliking auto-increment, it's about real problems with auto-increment, one of the biggest is not even listed because it's implied to be known: in D6 the presence of a 0 in an autoincrement column (the user id) causing massive import headaches. Oh and please don't use the "solution" in that blog post, it has a lot of race conditions... and why I didn't comment there? Because comments are Facebook only and I don't use Facebook.

Good bug reports worth their weight in gold

Submitted by nk on Thu, 2012-09-13 06:14

It was more than two years ago, in the predictions for 2010 thread that I crossed words with kaakuu over Drupal and unicode text search. I told kaakuu to file a usable bug report -- and to be honest I didn't expect one. Much to my surprise he did participate in an issue and filed an exceptionally useful comment. Eight days later, the fix I written got committed, fixing search for 200 million+ users or who knows how many more were affected. And I learned a lot about Unicode. Why I am writing only now, I do not know but I have told this story over and over and such helpful bug reports are still very rare. Will you file the next one I will talk about for years?

Drupal 8 and MongoDB update #1

Submitted by nk on Fri, 2012-09-07 21:09

As this is the first in my update report series, it will contain a look at the past and try to explain things to people who are not so familiar with Drupal.

Tl;dr: for the first time, right now it seems the dream of running Drupal 8 on MongoDB only is totally attainable.

Writing PHP files from Drupal

Submitted by nk on Mon, 2012-09-03 14:50

Over the years the security teams consistently shut down projects that were updating modules from Drupal. In Drupal 7, we added a subsystem where you could FTP or SSH back to the server to do that -- and allowed for local writes in insecure setups. In Drupal 8, however, we now have a feature in core that allows us to write PHP files just like that. I feel the community deserves an explanation of why we didn't allow these modules in the past and what is different in the D8 API.