Colin Robinson

Just another guy on the internet

Use MariaDB with PhpStorm

Update August 2018:

PHPStorm now includes MariaDB as a schema type but does not include the driver files. It does offer to download the MariaDB driver for you, but if you want to use the native driver, install mariadb-jdbc from the AUR and edit the MariaDB entry in PHPStorm to use /usr/share/java/mariadb-jdbc/mariadb-java-client.jar as the driver file.

Manually create the driver entry (the old way):

PhpStorm comes with several preconfigured database drivers (although the drivers themselves must be download separately). This short tutorial will tell you how to setup MariaDB as one of your Drivers on PhpStorm running on Arch Linux.

1. Install mariadb-jdbc from the AUR

2. Open the “Data Sources and Drivers” window

This can be done by selecting the menu option View > Tool Windows > Database and then clicking the wrench icon.

Continue reading “Use MariaDB with PhpStorm” »

Automatically switch Xfce panel layout when plugging in a monitor

Xfce has great multi-monitor support. Different panels on each monitor, it all works great. I’ve used it with multiple monitors on my desktop for 5+ years. Love it.

But you run into some annoyances with laptops. Half the time I’m using my laptop on its own, and half the time I’m using it with an external monitor. You plug the monitor in for the first time, then you create a new panel for it and drag it over. But then when you unplug the monitor, that second panel doesn’t go away. Instead, it moves over to the main laptop screen and the only way to hide it is to delete it. Then when you plug the external monitor in again, you need to recreate it, readd all the items and so on.

Well, the Xubuntu team has made a tool called Xfce Panel Switch (Arch package: xfpanel-switch).

I’ll quickly walk though how to setup automatic switching.

Continue reading “Automatically switch Xfce panel layout when plugging in a monitor” »

Clicking notifications in Chrome causes the window to change workspaces

This is a simple and obvious fix, but it was annoying me for awhile before I looked into it.

The situation:
You have a Chrome window open in workspace that’s different to the one you’re currently in. You receive a desktop notification from WhatsApp, Hangouts, 8tracks, ect. When you click the notification, it brings that browser window into your current workspace. But I put that window in that workspace so it stayed out of the way. You’re messing up my flow Chromium!

Actually this default behavior is super easy to change in Xfce.


Switch to the Focus tab and change When a window raises itself from Bring window on current workspace to Switch to window’s workspace. Voila.

Use Bash to get the memory usage of applications like Chromium

It’s not always easy to tell how much memory Chromium/Chrome is using, because of the different threads it starts. Here are a couple snippets with explanations to get you started.

Percent of memory use


ps -eo pmem,comm | grep chromium | cut -d " " -f 2 | paste -sd+ | bc | awk '{ print $1 "%" }'




  1. Get the percent of memory used (pmem) and the command name (comm) of every process.
  2. Select only chromium results.
  3. Break each result into chucks and then select the chunk containing the percent value.
  4. Join the results together with the addition symbol (+).
  5. Add them up.
  6. Print the value with a percent symbol so it looks nicer.

Real memory use


ps -eo rss,comm | \grep chromium | sed 's/chromium//' | paste -sd+ | bc | awk '{printf( "%0.2f GiB\n", $1/1024^2 )}'


1.45 GiB


  1. Get the amount of memory in use (RSS) and the command name of every process.
  2. Select only chromium results.
  3. Remove the word “chromium”, so only the rss value is left.
  4. Join the results together with the addition symbol (+).
  5. Add them up.
  6. Use awk to convert the result from KiB to GiB by dividing by 1024²
  7. Also use awk to print the result to a maximum of 2 decimal places and add the text “GiB” so it looks nicer.

Play games in borderless windows with Compiz

I like to play games and luckily there are a lot of games for Linux now; I have 51 games in Steam which run on Linux. But not all of these games do a good job when running at fullscreen (diustorted resolutions, hidden cursors, ect). So I like to run games in a borderless window and not all of these games offer that.

This is a simple fix. Open cssm, navigate to Effects > Window Decoration, and change the Decoration windows property to (any) & !(class=Awesomenauts.bin.x86). In this case, the game I want in a borderless window is Awesomenauts (really great game).

Compiz – Window border edge overlaps when using the grid plugin

Problem: Window borders overlap when using the grid plugin in Compiz

This one has been bothering me for awhile. Turns out it isn’t a Compiz bug at all (well maybe it is), it’s an Emerald bug! Are you also using Emerald as your window decorator?

Open emerald-theme-manager. Emerald Settings > uncheck Use Decoration Cropping

Problem solved! For me at least. Here’s a related bug report ( that unfortunately I didn’t find until after I fixed this by using the age old technique of randomly changing settings. But hopefully this post appears in someone’s Google results and I save them from the months of pixel overlapping agony that I had to endure.

Quickly reload a database

I’m mostly posting this to copy/paste when I forget, but it’s useful information nonetheless so lets have at it.

  1. Delete the database
  2. Create a new database
  3. Import SQL file into the new database

Assume the mysql user/pass combo is colin/mypassword and the database is called db123.

mysqladmin -u colin -pmypassword drop db123;
mysqladmin -u colin -pmypassword create db123;
mysql -u colin -pmypassword db123 < db123_backup.sql

If you’re working on something and you need to reload your database a lot, you can put all the commands on one line (still with semicolons of course) and add -f to the first command to skip the delete check.

Very very basic stuff here, but I’m sure the 3min it took me to write this saved someone else more time than that.

English style decimal marks with a European keyboard layout

Suppose you live in Europe where they separate numbers with commas instead of periods.

Six thousand eight hundred and forty three and two tenths
6 843,2

Suppose you also have a European keyboard and use a European keyboard layout but the stupid comma in the numpad drives you mad.

Simple fix
Open (or create) ~/.Xmodmap
Add the line “keycode 91 = KP_Delete KP_Decimal” and save
Run the command “xmodmap ~/.Xmodmap”
Test that it worked
Open ~/.xinitrc
Add the line “xmodmap ~/.Xmodmap” and save to make the change permanent.


Visual impairments are a part of the physical world. Thank god we live in a virtual one.

We have alt tags for screen readers, well let’s be honest, people only do it for SEO and no screen reader is perfect . But what if your “alt tag” had perfect IPA phonetic transcription…

Tell me more

Here is the current w3 draft:


go to this page

and copy/paste this element:

<phoneme alphabet=”ipa” ph=”kæt”>dog</phoneme>

The body of the phoneme element can be left empty, but in this case I wrote “dog” just for fun.

Can’t we just make computers better at speaking English?

Sure, and it would be trivial to make a build jQuery plugin that converts  ALT attributes to IPA ones. But what about regional dialects and made up words like Flickr or Imgur. What about ambiguous acronyms? Should the company AAA be pronounced “ay ay ay” or “Triple A”? Is it “My S-Q-L” or “My sequel”?

Sounds good, when’s it coming out?

Fair enough, maybe you sacrifice a goat we could get it in IE11. Honestly, I don’t know. Maybe never. The spec hasn’t been touched since 2004 but I hope people start taking it seriously.

Github and code review

I first wrote a post in March 2012 about code review with SVN. Since then, we’ve switched to Github and it’s awesome.

Github isn’t free, buts its very inexpensive and amazing. Inline comments, automatic issue tracking, and you can backup your code to their servers without needing commit access to the main repo. Continue reading “Github and code review” »

Previous Posts