zaterdag 2011.02.19

In 1996 versloeg Deep Blue Garri Kasparov. 15 jaar later verslaat Watson 2 voormalige winnaars met het tv-spel Jeopardy.
Schaken is een kwestie van alle mogelijkheden overzien en dat combineren met een strategie van de tegenstander. Voor Jeopardy komen hele andere technieken om de hoek kijken. Begrijpen wat er gevraagd wordt en dan combinaties maken in databases om een antwoord te produceren is zo onwaarschijnlijk ingewikkeld dat ik bijna niet kan geloven dat dit echt is. En dan te bedenken dat Watson niet online was. De databases stonden op zijn eigen harde schijf… Met 25 developers is er 4 jaar gewerkt aan dit project. Dus IBM heeft 100 jaar geïnvesteerd om dit ding te produceren!

Fascinerend om te zien dat Watson zelfs ‘onzeker’ kan zijn over antwoorden. Het aantal vraagtekens bij een antwoord geeft aan hoe waarschijnlijk het antwoord wordt geacht. Je weet dat je naar een computer zit te kijken, maar je gaat dat ding-met-een-stekker menselijke eigenschappen toedichten.

Stel dat Watson online komt. Het zou de hele zoekmachine business zoals we die nu kennen overhoop gooien. Watson is geen zoekmachine, maar een vindmachine. Geen raar gedoe met 2 steekwoorden en 100.000 resultaten meer, gewoon je vraag stellen en het antwoord krijgen! Het is gewoon eng… In bovenstaand promo filmpje wordt gesproken over historie… en dat geloof ik ook wel. Vanaf nu nemen computers de wereld over… ‘we have created a monster!’

woensdag 2011.02.09

Robert Douglasss talk in Brussels about a Drupal App Store bravely hits the Achilles heel of open source in general.
The ongoing rage discussion about a Drupal App Store on Twitter got me thinking… what problem are we trying to solve here?

The problem is not money, but apps. There is a lack of  (so called) apps for Drupal.
Why is WP so popular? Because it works, out of the box. Besides that, it is easy to understand for a non-nerd. The huge number of complete plugins and themes is fantastic. Just search in the plugin section of your admin area, click install and it works… wow!

Now compare that with Drupal… Do you really think that I can teach my mother how to use drush?  Of course that says something about my teaching skills and not about drush or my mother.

I know… “Drupal is build by and for devs” (and not for my mother). But there is a whole market out there!
The Lullabots compared Drupal with Lego in their podcast. If Drupal is Lego, WP is Playmobil. With Playmobil the fun is to play with a complete ship, out of the box. With Lego the fun is to build the ship and then play with your custom 22-canon pirate ship.

Now… what if we could attract the Playmobil community to come over and play with us? What would that mean for Drupal? It would build momentum for the whole Drupal project! All we need to do is provide ready-to-play toys!
So, we skip the money discussion and we concentrate on complete, generic solutions, products or apps.

I would love to have a central Features server with complete and supported products, promoted on drupal.org. And yes… those Features will be free and open source, no micro payments, no macro payments.
Let’s see if we can invite ma.tt to come out and play!

zondag 2010.11.14

Styling an autocomplete field in Drupal 6 is easy.

You can use the CSS classes below to style the throbber (the ajax loading indicator) and the select list, that pops up after typing.

/* AJAX autocomplete dropdown list */
#autocomplete {
  position: absolute;
  border: 1px solid;
  overflow: hidden;
  z-index: 100;
}
#autocomplete ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
#autocomplete li {
  background: #fff;
  color: #000;
  white-space: pre;
  cursor: default;
  padding: 5px;
}
#autocomplete li.selected {
  background: #000;
  color: #fff;
}
/* Animated throbber */
html.js input.form-autocomplete {
  background-image: url(img/throbber.gif);
  background-repeat: no-repeat;
  background-position: 100% 2px;
}
html.js input.throbbing {
  background-position: 100% -18px;
}

zaterdag 2010.11.06

The Drupal module Views Bulk Operations (VBO) is great!

It lets you select objects (nodes) from a table, select an action and execute that action on the selected objects.
So you can, for example, delete all selected nodes. Since it uses Views, the list of objects can be anything exposed to Views and of course be filtered and sorted with Views. VBO makes it easy to make an administrative interface.

You can easily create your own actions in a custom module. For a project I needed some custom actions for downloading a PDF version of a selection of nodes and one for sending PDFs out by email. So I carefully handcrafted those actions in a custom module.. and surprise, surprise, it works fine. The only thing is, you need to have a list and select items from that list. That is perfectly suitable for the overview list, but I also wanted some nice buttons on the full node page, with the same actions I have in my overview list. It is not so difficult to create a block View and load that, with the right arguments, somewhere on the full node page.

But then you have a list with one node (same node as the node page you are looking at) and some actions. To preform an action you need to select the node and execute the action. That looks stupid. So I came to this question:

Is it possible to preselect a single object (node) and hide the select list in Views Bulk Operations?

Answer: Yes.
As usual, there are 1.000 ways to do this in Drupal. The easiest way I found was a hook_form_alter. I wrote a mini custom drupal module ‘Views Bulk Operations Single Object‘ for this, the code is below.
Have fun! Lees het hele verhaal »

woensdag 2010.05.26

So you have installed the Flash plugin from Adobe on a 64bit Ubuntu… You try to watch youtube, but you can never pause, because the buttons are unresponsive.

Try this… worked for me!

Open a terminal and copy and paste this:

gksudo gedit /usr/lib/nspluginwrapper/i386/linux/npviewer

Give your password and a editor pops up. Direct after #!/bin/sh press enter for a new line and copy paste this:

export GDK_NATIVE_WINDOWS=1

The complete file looks now something like this:

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
TARGET_OS=linux
TARGET_ARCH=i386
. /usr/lib/nspluginwrapper/noarch/npviewer

Save and close the editor. Restart your Firefox and enjoy your coffee break while watching Youtube videos.

zaterdag 2010.01.30

With 2 desktops, 2 laptops, an EEE and a phone it was always hard to keep my bookmarks, browser history and username/passwords in sync. Not anymore! Weave is an add-on for Firefox that keeps al your Firefox data in sync in a central database. And yes, it works great! Just install the add-on on every FF you have. You can use the central Mozilla database for syncing. It is safe to use; your data is stored encrypted with a key that only you know.

But then still.. wouldn’t it be nice to have it stored on your own servers. Storing passwords (even when they are encrypted) on a remote, not controlled-by-me host is not my first choice. Those guys @ mozilla understood that, and also released the sync server as open source. So you can have everything under your own control.. nice!

I added a script that integrates a Drupal install with the Weave Sync server. We use a Drupal install for our Intranet; every one who works for us has a Drupal account. I wanted to avoid a new user base for Weave, to simplify maintenance and reduce questions from users. Luckily the Weave Sync server is very modular en overall very well done!

Source code is found here: drupal.php

Here is how i did it:
Install the weave sync server (note there are different servers (full, registration, sync). In this case you just need the sync server, accounts can be created and updated in your drupal install)
I followed these instructions:
https://wiki.mozilla.org/Labs/Weave/Sync/1.0/Setup

After successful installation of the sync server, you need to add your drupal user base
1. edit this line in your {hostname}_constants.php
if (!defined('WEAVE_AUTH_ENGINE')) { define('WEAVE_AUTH_ENGINE', 'drupal'); }

2. Add and edit these lines in your {hostname}_constants.php
the mysql user has to have read access to your users table in the drupal install
if (WEAVE_AUTH_ENGINE == 'drupal')
{
#host, db name, username, password and prefix for the drupal auth store
if (!defined('WEAVE_DRUPAL_MYSQL_AUTH_HOST')) { define('WEAVE_DRUPAL_MYSQL_AUTH_HOST', 'localhost'); }
if (!defined('WEAVE_DRUPAL_MYSQL_AUTH_DB')) { define('WEAVE_DRUPAL_MYSQL_AUTH_DB', 'drupal'); }
if (!defined('WEAVE_DRUPAL_MYSQL_AUTH_USER')) { define('WEAVE_DRUPAL_MYSQL_AUTH_USER', 'drupal'); }
if (!defined('WEAVE_DRUPAL_MYSQL_AUTH_PASS')) { define('WEAVE_DRUPAL_MYSQL_AUTH_PASS', 'drupal'); }
if (!defined('WEAVE_DRUPAL_MYSQL_AUTH_PREFIX')) { define('WEAVE_DRUPAL_MYSQL_AUTH_PREFIX', ''); }
}

3. save the drupal.php file in the folder 1.0/weave_user

Now install the firefox add-on and start syncing with your drupal login/pass combo

donderdag 2009.12.31

Aan het eind van het jaar kijk je terug. Het opmerkelijkste nieuws van dit jaar was niet de crisis, dat was immers vorig jaar al nieuws; Nee, wat mij betreft was het nieuws van het jaar 2009, dat Berners-Lee, pappa van het internet, spijt heeft van de dubbele slash in http://.
Toen hij de protocollen ontwierp leek het een goed idee, nu zegt hij dat het ook wel had gekunt zonder, en dan alleen een :. In het interview voegt hij er aan toe dat het waarschijnlijk veel bomen had uit gespaard, denk maar eens aan al die printjes met de nodeloze //.

zaterdag 2009.12.05

Afgelopen week had ik een pdf nodig, waarvan ik zeker wist dat deze op onze subversion server staat. Ik had alleen mijn mobiel bij me, dus ik dacht, laat ik een svn client downloaden voor mijn Android telefoon. Wat schetst mijn verbazing? Zo’n app is niet beschikbaar in de Android Market.

Raar hoor, ik dacht dat alleen nerds zo’n Google phone gebruiken. Logische conclusie is dus dat er een subversion client is… maar neen. Zouden die appbuilders alleen maar bezig zijn met onzin bouwen dan?

Anyhow, ik heb vandaag dus maar een webbased svn client op de server geinstalleerd, zodat ik er met de browser bij kan… maar wat een gehannes. Als iemand tips heeft houd ik me aanbevolen.

woensdag 2009.12.02

Een van de oprichters van twitter, heeft een mooi nieuw product. Hoewel niet nieuw lijkt het briljant te worden uitgevoerd.

Eigenlijk maak je van je mobiel een betaalautomaat door de toevoeging van een kaartlezer. Perfect voor postbodes, conducteurs, oplichters en marktkooplui.

Goed idee! Lees alles hier.

dinsdag 2009.04.21

Ik zoek nog een Nokia 1100 naar aanleiding van dit bericht.

Het klinkt mij als een 1 april grap, waarvan niemand had begrepen dat het een grap was… Wat kan er nou zo byzonder zijn aan die hardware-software combinatie, dat niet na te bouwen is? Of snap ik het gewoon niet?