tom's blog

  • strict warning: Non-static method view::load() should not be called statically in /usr/share/nginx/www/drupal/sites/all/modules/views/views.module on line 1113.
  • strict warning: Declaration of views_handler_field::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_field.inc on line 0.
  • strict warning: Declaration of views_handler_field_user::init() should be compatible with views_handler_field::init(&$view, $options) in /usr/share/nginx/www/drupal/sites/all/modules/views/modules/user/views_handler_field_user.inc on line 0.
  • strict warning: Declaration of views_handler_argument::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_argument.inc on line 0.
  • strict warning: Declaration of views_handler_argument::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_argument.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_filter::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_relationship::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_relationship.inc on line 0.
  • strict warning: Declaration of views_plugin_query::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_query.inc on line 0.
  • strict warning: Declaration of views_plugin_argument_validate::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_argument_validate.inc on line 0.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_row.inc on line 0.

This function expects a one-dimensional bigint array and returns it as rows of a result table.

CREATE OR REPLACE FUNCTION return_array(anyarray) RETURNS TABLE (id bigint) AS
$$
    DECLARE
        myarray bigint[];
    BEGIN
        input := $1;
        FOR i IN 1..array_length(myarray, 1)
        LOOP
            RETURN QUERY SELECT myarray[i];
        END LOOP;

        RETURN;
    END
$$
LANGUAGE plpgsql VOLATILE STRICT;

One can then query this for instance like this:

SELECT * FROM return_array(ARRAY[0,1,2]);

There were two problems I had when following Nokia's guide on how to to integrate Qt Creator with Scratchbox:

Je mehr Einzug Linux auch in normale Haushalte hat, desto häufiger haben die einzelnen Benutzer im System etwas mit einander zu tun. Ja es geht sogar so weit, dass Dateien problemlos von verschiedenen Benutzern bearbeitet, angesehen oder gelöscht werden sollen ;-). Für Dinge wie Musik, Bilder oder Videos bietet es sich an einen gemeinsam genutzten Ordner zu erstellen. Damit muss man zumindest nicht in den Daten der Anderen herum suchen, zumal das ja gar nicht immer gewünscht oder möglich ist.

Manche Projekte die mein Interesse haben, werden mit Mercurial verwaltet. Das ist nicht schlimm und auch verständlich, schließlich ist Mercurial auch (!) ein gutes DVCS.

Ich persönlich arbeite aber lieber mit Git. Zumindest im Moment, in Mercurial komm ich erst langsam in den Workflow hinein. Um die Kommunikation zwischen Mercurial und Git herzustellen nutze ich Hg-Git. Das klappt meistens wunderbar und hier wird dazu eine gut verständliche Anleitung gegeben.

Um Nevernote unter dem Window Manager wmii laufen lassen zu können, bedarf es der Änderung einer Programmeinstellung. Die Option "Minimize To Tray" muss über Edit > Preferences deaktiviert werden. Nevernote minimiert sich sonst, wer hätte es gedacht, in den Tray. Und da wmii keinen Tray besitzt, ist das Wiederanzeigen sonst aufwändiger und fügt sich auch nicht in das Arbeiten mit wmii.

Eine Migration von Windows auf Linux ist (wie auch vieles andere auch) eine gute Gelegenheit ein Backup zu machen. Es soll ja schon vorgekommen sein, dass ein solcher Umbau länger als erwartet dauert. Daher sollte hier möglich sein, so schnell wie möglich das alte System wieder lauffähig zu haben. Notfalls eben indem man das Backup einfach zurück spielt und alles wäre wie vorher.

Um Git unter Windows benutzen zu können gibt es verschiedene Möglichkeiten. Die Kombination aus msysGit und TortoiseGit scheint mir aber ganz gute Dienste zu leisten. Ähnlich wie TortoiseSVN fügt sich TortoiseGit in das Kontextmenü des Explorers ein. Das ist gerade für Leute ohne viel Erfahrung mit der Kommandozeilen (CLI, Command line interface) hilfreich. Obwohl Git auf jeden Fall wunderbar und schnell via CLI zu bedienen ist.

Eigentlich hätte es so einfach sein sollen. Ich wollte einen größeren Monitor anschließen, nur stimmte die Auflösung nicht. Das kann vorkommen, aber normalerweise haben Monitore eben eine bevorzugte Auflösung, nämlich genau die die der Anzahl ihrer Pixel entspricht. Welche das genau ist, sagte mir der Monitor auch: 1680x1050.

In meinem betagten ThinkPad T40 war von Beginn an kein WLAN verfügbar. Schon immer dachte ich mir: "Bald mach ich das mal". Nunja, der glückliche Zufall, dass ich schell und günstig an eine miniPCI WLAN-Karte kommen konnte, war eben erst jetzt da. Also gesehen, gekauft und eingebaut (Intel Pro Wireless 2200BG). Nach Aktivierung der Karte im BIOS teilte mir mein T40 kurz nach dem Start folgendes mit:

1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.

Ein guter Weg mehrzeilige Gleichungen in LaTeX zu realisieren, ist das amsmath-Paket zu bemhühen. Dies bietet nämlich die Makros align und align*. Das leider zumeist noch genutzte Makro eqarray sollte hingegen nicht mehr seinen Weg ins Dokument finden.

Somit sieht eine mehrzeilige Gleichung z.B. so aus:

\begin{align*}
    \omega &= x_i + k \\ \tag{3}
           &= a_i + b^2
\end{align*
}