Hunted By a Leak - Part Two

In my previous post, I talked about a slowdown in a Perl 6 process I was fixing, and how I discovered that the cause was really a memory leak. Instead of looking for the memory leak in Proc::Async, I decided to look in run, which also spawns children and exhibited the leak, but works in a synchronous manner. To find the Perl 6 code that was causing the leak, I wrote some code that would call run repeatedly:

Read More...
Posted on 2015-12-15

Tracking Slowdowns in Creating Child Processes - Part One

When I use Perl 5, I do a lot of shelling out to external commands; after all, that's what Perl is good at! So it should come as no surprise that I do the same with Perl 6, which means a lot of the time and effort I spend helping with Perl 6 is improving the interaction with external commands.

Read More...
Posted on 2015-12-08

Intermediate SQL: WHERE vs HAVING

Recently, at Work I gave an introductory SQL tutorial. Since the purpose of the tutorial was to teach SQL for the purpose of answering questions about groupings of data, the tutorial ultimately reached a discussion of WHERE versus HAVING. I thought I'd share the explanation I used in case others felt confused why SQL has two keywords that serve such a similar function.

Read More...
Posted on 2015-04-30

Looking for .git in all the wrong places

Like many of you, I store my dotfiles in Git repos. However, I quickly encountered a problem with this approach: my configurations would often get out of sync between my various machines. Instead of writing a script to check for updates or just being diligent about it, I decided that I would integrate my configurations into something on my machines that check for updates already: the system package manager!

Read More...
Posted on 2015-04-21

Know your tools: using inputrc to save keystrokes in the MySQL shell

I do a lot of work with MySQL, and I often bemoan the lack of a concise shortcut to list tables matching a pattern. I much prefer psql's \d shortcut as opposed to mysql's SHOW TABLES. However, since the mysql client uses GNU readline, we can leverage readline's macro facility to make things easier on ourselves!

Read More...
Posted on 2015-03-30