mysql> SHOW TABLE STATUS; — It looks horrible!

TL;DR; – the results of MySQL’s SHOW TABLE STATUS is pretty horrible on a small terminal window, and most of the time shows way more than you’ll ever want to know for a quick summary.

Ivan Cachicatari over at http://en.latindevelopers.com/ivancp/2012/a-better-show-table-status/ came up with a stored procedure which nicely cuts it down to just the information that’s useful about a database, but I decided that most of the time it could be cut down even further:

This literally just shows the information about the tables, and not any of the crap associated with stuff I don’t use (interoperability is a pain) such as stored procedures and triggers, and I also rarely use views so that went too.

Google Blog javascript balls

So, I’ve just seen http://googleblog.blogspot.com/2012/01/ipv6-countdown-to-launch.html, if you don’t know what I’m on about, it’s pretty cool! Just mouse-over the balls, and have a play! :D

Unfortunately, they’ve hidden the code to do it, so there’s no easy way of finding out what they’ve done. Looks like each ball is tied to a specific point, and they just elastically bounce around that point. Still looks cool though :D

Front page redesign!

I’ve just redesigned the front page of the site – see what you think!

It replaces the navigation bar with a much more blocky navigation which takes up most of the front page, allowing you to easily get to an interesting bit – it looks cleaner too.

Raspberry Pi, and Raspberry Pie

:(

I went to bed early last night cos I knew I had to be up early this morning. Getting up at 05:30 is something that is incredibly rare for me. Unfortunately, it was a bit pointless this time around.

I was trying to get one of these:

Copyright 2011-2012, Raspberry Pi Foundation

It’s called a Raspberry Pi, and it’s essentially a computer the size of a credit card. With an ARM11 processor manufactured by Broadcom, 256M RAM, HDMI/RCA video output, 2 USB ports and Ethernet, powered by micro-USB, with SD for storage. What more could you want for a basic computer system?

Initially, it’ll run a variant of either Debian or Fedora Linux, and my plan is to use it either as a local web server/proxy server/dns server, or maybe running XBMC as a low-power media frontend. It’ll also be good for simply messing about with.

Oh, did I mention the price of this thing? No?

$35 (USD).

In the process of trying to order one, we (everyone who wanted one) brought down not only RS Components’ website, but Premier Farnell too in mere seconds. They were warned about the traffic, but seemingly thought the warning a bit frivolous since both of them didn’t adequately prepare for a HUGE traffic surge.

And now I have a craving for raspberry pie.

PHP, cURL, and Expect: 100-continue

I’m writing a script which queries the Wikipedia API, and with that I’ve encountered an issue with cURL.

Wikimedia’s servers aparently don’t like the Expect: 100-continue header, and cURL seems to send it by default. Unfortunately, it seems the easiest way to disable it is just to override the header.

curl_setopt( $curl_handle, CURLOPT_HTTPHEADER, array( 'Expect:' ) );

Thanks to Matt Thommes and Stickman for their posts about this :)

My Development Environment

I thought I’d share my development environment with you, the basic tools and computer systems I use to develop software.

Most of my development is done on a Core2Duo 2×2.26GHz 4G RAM 1280×800 Win7 machine (taurus), occasionally using an Atom 2×1.6GHz 2G RAM 1024×600 Win7 netbook (orion) if I need portability, sometimes even testing on a Motorola Xoom (gemini).

My web production environment is a Linode 512 running Ubuntu (latest) hosted in London (blastoise), just the standard LAMP stack. Database hosting is done on a different machine, another Linode 512 also in London (metapod), which jointly serves as a code-review host. CI is hosted (spearow) on a Linode 1024 (you guessed it, in London), using Atlassian Bamboo as the software in question.

Source control is github, and I can’t say how awesome git (and the GUI tool Git Extensions) actually is! :D

As most of the development I do is either PHP-based or C#-based, these are the two areas I’ll cover.

If I’m working at home, I’ll write PHP code with Notepad++, and test it on my local server, IIS (yuk, but it does the job). I’ll still use the database server sat on metapod. If I’m not at home, and have an internet connection, I’ll do most of my work directly on one of my servers using GNU nano, and a plethora of GNU screen sessions. Everything still goes into git, and pushed to github.

Unfortunately, this tends to end up with hacks such as:

if(WebRequest::serverOS() == "WINNT")
{
   /* something specifically silly for windows */
}
else
{
   /* something posix-compliant, like sensible stuff */
}

Most of the time I try and keep most of that stuff confined to a file or two though, or try to find other ways of doing what I want without depending on OS-specific stuff.

C#.NET

Visual Studio 2010 Ultimate. Thanks, MSDNAA. Oh, Git Extensions too, but standalone cos the VS integration is annoying.