A Free Online Perl Regular Expression (regex) tester!

David Oswald created a free online Perl regular expression tester.



He describes it in detail over at Perlmonks.org

If you’re like me and don’t everything about regular expressions because you’re short on coffee in the morning, print out Regular expressions in Perl

Share Button

HowTo: Remove mattress stains caused by urine or other bodily fluids

We picked up a BISSELL SpotBot vacuum cleaner on the weekend. Not only does it clean the carpet, it cleans mattresses.

Anyone that has or is raising a kid knows about potty training and night time accidents. Well, using a cleaning solution of Oxy Clean, vinegar and hot water, I was able to clean the kid’s mattress and remove the stains. A badly stained mattress can take a while to clean. It will still be damp when you’re done so let it air dry.SpotBot® Pet Deep Cleaner

The mattress is white again 🙂

Cleaning solution:

1 scoop of OxiClean (look at the side of the scoop and fill up to the number one)
2 quarts hot water

Mix until the OxiClean is completely dissolved. While still stirring, add 1 cup vinegar SLOWLY unless you want to recreate the science fair volcano. Pour into the cleaning solution reservoir.

Share Button

drunk woman on a sofa

Share Button

HOWTO: Installing and running SAP / Sybase SQL Server esd 6 on Ubuntu Linux using KVM

You can run KVM on just about any modern Linux distribution provided that your host is capable of providing virtualization. The folks over at HowtoForge go through the steps for Ubuntu 12.10.

What you will need for the KVM virtual machine:

  • Ubuntu Server 6.06.2 for Intel x86
  • Sybase SQL Server esd 6 for Linux 32bit (if anyone knows of a location to legally download these let me know)

I used virt-viewer to create the virtual machine but you can create the xml file yourself if you want to. Make sure you specify:

  • Disk bus: IDE using native threads and no caching
  • 1GB of RAM or more
  • VNC or Spice display

my Sybase_11033.xml file:

<domain type='kvm'>
  <description>Sybase SQL Server on Ubuntu 6.06.02 (Dapper Drake)</description>
  <memory unit='KiB'>1048576</memory>
  <currentmemory unit='KiB'>1048576</currentmemory>
  <vcpu placement='static'>1</vcpu>
    <type arch='x86_64' machine='pc-1.2'>hvm</type>
    <boot dev='hd'></boot>
  <clock offset='utc'></clock>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none' io='threads'></driver>
      <source file='/var/lib/libvirt/images/Sybase_11033.img'/>
      <target dev='hda' bus='ide'></target>
      <address type='drive' controller='0' bus='0' target='0' unit='0'></address>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'></driver>
      <source file='/home/jason/iso/ubuntu-6.06.2-server-i386.iso'/>
      <target dev='hdb' bus='ide'></target>
      <address type='drive' controller='0' bus='0' target='0' unit='1'></address>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'></address>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'></address>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'></address>
    <interface type='bridge'>
      <mac address='52:54:00:59:e1:78'></mac>
      <source bridge='br0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'></address>
    <serial type='pty'>
      <target port='0'></target>
    <console type='pty'>
      <target type='serial' port='0'></target>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0'></target>
      <address type='virtio-serial' controller='0' bus='0' port='1'></address>
    <input type='mouse' bus='ps2'/>
    <graphics type='spice' autoport='yes'></graphics>
      <model type='qxl' vram='65536' heads='1'></model>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'></address>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'></address>

Go through the install of Ubuntu Server 6.06.2. After it is completed, you will need to modify a few files:

Replace /etc/apt/sources.list with:

deb http://old-releases.ubuntu.com/ubuntu/ dapper main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ dapper-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ dapper-security main restricted universe multiverse
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install alien

Modify /boot/grub/menu.lst adding elevator=deadline:

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
 defoptions=quiet splash elevator=deadline

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery mode) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## ## End Default Options ##

title		Ubuntu, kernel 2.6.15-51-server
root		(hd0,0)
kernel		/boot/vmlinuz-2.6.15-51-server root=/dev/hda1 ro quiet splash elevator=deadline
initrd		/boot/initrd.img-2.6.15-51-server

Modify /etc/fstab to increase the size of tmpfs and to set noatime,nodiratime:

/dev/hda1       /               ext3    rw,async,noatime,nodiratime,errors=remount-ro 0       1
tmpfs		/dev/shm        tmpfs   size=900M   0 0

Modify /etc/sysctl.conf to set up the shared memory and virtual memory settings:


OPTIONAL: Install samba and winbind so you want to connect to your vm by name but don’t want to set up dns:

sudo apt-get install samba winbind

Modify /etc/nsswitch.conf:

# /etc/nsswitch.conf
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files dns mdns wins
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

OPTIONAL (needed for samba/winbind) Modify /etc/samba/smb.conf:

# add netbios name
netbios name = sybase-11033
# modify name resolve order
   name resolve order = bcast lmhosts host wins


Convert the Sybase RPMs to debian packages (dpkg):

sudo alien -d *.rpm

Install Sybase SQL Server:

sudo dpkg -i *.deb

This will install the software into /opt/sybase.

Add a sybase os user and change the owner of /opt/sybase to the sybase user:

sudo adduser --home /opt/sybase --shell /bin/bash --no-create-home sybase
sudo chown -R sybase:sybase /opt/sybase

I created a /opt/sybase/.bash_profile script but you can also put this in /etc/profile if you wish:

export SYBASE=/opt/sybase

export SYBPLATFORM=linux
export LC_ALL=default
unset LANG

export PATH=$SYBASE/bin:$PATH

Start the Sybase configuration by running as the sybase user:


I would recommend a 100MB or larger master device and sybsystemprocs device for It will install just fine but if you try to start Sybase with more the 32MB of memory, it will fail. If you want to increase it you need to do two things:

  1. Increase max shared memory (kernel.shmmax and kernel.shmall) in /etc/sysctl.conf – which we already did
  2. Set the stack size to unlimited

Setting the stack size to unlimited is easy so in your RUN_server file:

# Adaptive Server Information:
#  name:                          SYBASE_11033
#  master device:                 /opt/sybase/master.dat
#  master device size:            76800
#  errorlog:                      /opt/sybase/install/errorlog
#  interfaces:                    /opt/sybase

ulimit -s unlimited

/opt/sybase/bin/dataserver -d/opt/sybase/master.dat -sSYBASE_11033 \
-e/opt/sybase/install/errorlog -i/opt/sybase -c/opt/sybase/SYBASE_11033.cfg 

Since this is SQL Server, we don’t have to mess with LD_POINTER_GUARD.

Screenshot from 2013-03-10 16:05:31

Why you would use such an old DBMS version? You might have software that requires this version and the software vendor went out of business or discontinued the software with no upgrade path. In any case, Sybase’s SQL Server is still useful.

Share Button

GIMP Magazine Issue 3 has been released!

GIMP Magazine Issue 3



  • We are featuring the cover story on Andrea Zanovello, a highly talented photographer with some stunning shots to gaze at.  In an exclusive interview Andrea tells us all about his photography and what he hopes for in the next version of GIMP
  • We have the first ever Issue of “The Hunt for Wilber” a graphic novel by Dave Lepek, illustrated by Yeshua Nel, who you may know from the Master Class featured in Issue 2 of GIMP Magazine.  Yeshua has joined our team as a regular contributor / illustrator
  • We completed a 70+ point comparison between GIMP 2.8.0 and Adobe Photoshop CS5.5 Extended
  • We have a full length article on motion photography from Ian Muttoo who you may know from the cover story of Issue #1.  Ian has joined our team as a regular contributor
  • A whole lotta G’MIC coming your way.  We have a collection of G’MIC articles.  Debi Dalio who joined our team recently has given us three articles: a full length feature article about G’MIC and how it works, a super groovy tutorial on how to create a rotoidoscope pattern, and finally a product review of G’MIC.
  • Oma Dial has delivered a book review of, “The Night Parade of One Hundred Demons: a Field Guide to Japanese Yokai”.  The interesting twist is that this full length book is not a training guide, but rather was created using GIMP and other open source tools
  • We have a few short features on other talented photographers
  • We have an incredible photography gallery that we are positive will inspire you
  • We have continued our Tips and Tricks feature
  • And we wrapped all of this is in a very cool looking magazine
  • Oh yeah, did I mention that GIMP Magazine is FREE?

GIMP Magazine


Share Button