Fubs are “frequently used bits” of code that I keep forgetting, so I post them here to keep track of them.


  • replacing strings [source]
    update table_name set field = replace(field, 'foo', 'bar') where instr(field, 'foo') > 0;

  • cutting off the final period (for example) in a field [source]
    update table_name set field = substring(field, 1, char_length(field) - 1) where right(field,1) = '.'

  • making a new user account and granting privileges on a database
    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
    GRANT ALL ON mydb.* TO 'myuser'@'localhost';

  • the JOIN post [source]
    All of the 9 (or is it 12?) different ways to join two tables.

  • how to number rows in mysql [source]
    SELECT id, col1,col2, @rownum := @rownum + 1 AS rank
    FROM table1, (SELECT @rownum := 0) as r
    where condition1 = 1 ORDER BY col2 ASC


  • getting something in the middle of two other things
    nb: using “|” is a frequent mistake:
    this will get a(.*)a or b!

  • capitalizing part of a string
    Use \u
    $ename =~s/^Ou Yang(.)/Ouyang \u$1/ if $bname =~ /^欧阳/;


  • how to increment a var in a substitution [source]

  • load an anonymous array onto a named array
    push(@array,[$a, $b, $c]);

  • put results of a table query using dbi directly into an array
    one column query
    my @data = @{$dbh->selectcol_arrayref(qq{select col from table where col > ”})};

    multi column query
    my @data = @{$dbh->selectall_arrayref(qq{select cola,colb,colc from table where cola != colb})};

Command line (windows)

  • redirect stdin and stderr to one file [source]
    cmd.exe 1> output.txt 2>&1

Command line (linux)

  • recursively change directory permissions (use -type f for files) [source]
    find /path/to/base/dir -type d -exec chmod 755 {} +

  • shutdown command for server
    sudo shutdown -r now

  • restart Apache2 service on Ubuntu
    sudo service apache2 restart

grub2 (linux boot loader)

  • set default operating system on multi-boot system to last OS used [source]
    sudo nano -B /etc/default/grub (-B means make a backup copy)
    GRUB_DEFAULT=saved (add or change previous setting)
    GRUB_SAVEDEFAULT=true (add)
    Save file
    sudo update-grub

Microsoft office: Word 2003

  • how to turn off “embed linguistic data” in a document
  • Tools->options->save-> uncheck.

  • How to turn off permanently
  • Open in safe mode, open normal.dot, uncheck as described and save.


  • open file in vim at line x col y [source]
    vim file "+call cursor(<LINE>, <COLUMN>)"

  • the vi/vim post [source]
    grokking vi/vim (!)