As described in a post earlier today, I have made some significant changes to this site. The short version is that I’ve started to use WordPress as a CMS (content management system). While the WordPress APIs provide a good range of functions for doing CMS-like things, the web interface is disappointingly lacking in even basic CMS features. Thankfully, WordPress’s plugin architecture has allowed the community to fill in the gaps.

Read more

Tagged with:

This site started life in the early 2000s as a pure blog powered by the Serendipity blogging engine and hosted on free shared hosting provided by MiNDS>, the IT society of Maynooth University, where I was a researcher in the Computer Science department at the time. The first big change came in the summer of 2006 when I moved the blog from MiNDS> to this domain. As well as moving the blog, I also moved my personal website, though the two remained separate entities which I had to mange separately. While moving the blog I took the opportunity to change blogging engines from Serendipity to WordPress. This was an early version of WordPress, so its evolution from blogging engine to content management system (or CMS) still had a long way to go (arguably it still does). As WordPress’s pages feature evolved, I eventually did away with the standalone site, adding just a handful of pages into WordPress. At that point WordPress became my entire website. It was a viable solution because I really just needed a few simple ‘about the stuff I do’ pages, and the blog.

This month, while preparing for the release of the new version of my XKPasswd open source library, I realised that I needed more from this site. While the blog is still important, and will continue to contain most of the information hosted on the site, it won’t be the view though which most of that information will be accessed. A reverse-chronological list of all posts on all topics is not actually an optimal way of presenting content! This site serves as the anchor of my online presence simple because this is the URL I give out when ever I’m asked where people can find me online. I sometimes wonder if podcast listeners aren’t starting to think that Busschots is just my middle name, and that from bartb.ie is actually my surname! This site has not been a particularly good home page, not because there isn’t useful content, but because it’s been ineffectively presented.

Read more

Tagged with:

This post is part 19 of 39 in the series Taming the Terminal

In the previous two instalments (17 & 18) of this series we learned how to represent patters with regular expressions, or, to be more specific, with POSIX Extended Regular Expression (or EREs). We used the egrep command to test our regular expressions, but we didn’t discus the command itself in detail. Now that we understand regular expressions, it’s time to take a closer look at both egrep, and it’s older brother grep, both commands for filtering and searching text.

Read more

Tagged with:

This blog post is a companion document to two Chit Chat Across the Pond segments I will be recording with Allison Sheridan on the NosillaCast over the next two weeks. The first of the two shows is now out, and and can be found here. One the second show is out I’ll add that link in too.

In episode 474 when Allison was chatting with Donal Burr about Apple’s new Swift programming language said she didn’t understand what a compiler was, so I thought it might be fun to try address that! But rather than focus in on just that one very specific question, I thought it would be more useful to take a high-level look at computer programming in general, so that some of the conversations around various developer platforms will make more sense to the majority of NosillaCast listeners, who are non-programers.

Read more

I’m betting most people won’t be interested in this, but if anyone’s curious how this programmer goes about building up a perl module from scratch, you can watch along on as I build XKPasswd 2.0 over on GITHub: github.com/bbusschots/xkpasswd.pm.

I’m re-implementing XKPasswd from scratch. The resulting functionality will be mostly the same, but with some additions. The reason for starting over is two-fold. Firstly, the first implementation of XKPasswd was very much a prototype, and as with any prototype, I learned some valuable lessons, and there are lots of things I’d do differently if I was doing it again. Secondly, the first version of XKPasswd is almost three years old now, and since then, my Perl skills have increased a lot. Probably the single biggest difference between the me of 2014 and the me of 2011 is that I read Perl Best Practices, and started to run all my Perl code through Perl Critic. Another big difference is that, thanks to JQuery, I’ve fallen in love with Code References in all the languages I use that support them, including Perl.

Since this is a re-write, I’m really focusing on building a solid foundation, so I’m starting with the utility functions that will let me build up functionality gradually, and I’m writing the user documentation in parallel with the code. Before every commit to GITHub, everything that’s done so far is getting documented with POD, and, the code has to pass Perl Critic with no warnings.

Tagged with:

This post is part 18 of 39 in the series Taming the Terminal

In the previous instalment we introduced the concept of Regular Expressions, and started to learn the POSIX ERE regular expression language, noting that POSIX ERE is a sub-set of the very commonly used Per Compatible Regular Expression (PCRE) language.

In this instalment we’ll learn more POSIX ERE syntax, and have a look at some examples of REs in GUI apps.

Read more

Tagged with:

L in Semaphore Quite a few months ago I was joking with Guy Serle of the My Mac Podcast, and the topic somehow turned to flag semaphore. I think I’d sent the guy an iTunes review in mores code for a joke, and then Guy challenged me to do it in flag semaphore. I figured it would be easy to find a converter on the net, but, for the first time in a long time, the internet let me down! When I couldn’t find a converter I registered the domain www.semaphorify.info with every intention of getting a converter up and running in a few days. Then, real life got in the way, and the domain sat there for months, until yesterday, when I unexpectedly had a free afternoon, and I finally got my converter written!

You can now go to the site and convert text to flag semaphore, play a crude animation of the signal, and even share a link to the signal. E.g. this link takes you straight to the conversion of “I love semaphores” to semaphore.

www.semaphorify.info

This post is part 17 of 39 in the series Taming the Terminal

This instalment is the start of a series of instalments relating to searching from the command line. Searching is all about patterns, and that means getting to grips with Regular Expressions (also called RegExps, RegExes or REs for short). Regular Expressions are languages for representing patterns, and are used throughout IT, not just on the command line. While this series focuses on the Terminal, an understanding of regular expressions will be helpful in many other places, from programming languages to GUI apps like programming editors, search utilities or file re-namers. It’s going to take us two instalments to properly describe regular expressions, but when we’re done we’ll have gained a very useful skill.

Read more

Tagged with:

I sometimes take some stick for having a very defensive coding style. When ever I find myself making an assumption I throw in code to test it. “This function will only ever be called with a positive number”, OK, then add a test to throw an exception should a negative number be passed. You don’t want bad data ricocheting through your code because goodness knows what damage it will do! Similarly, my style is to always use explicit syntax, and, to avoid syntax shortcuts – sure, the ternary operator takes up less space on the screen, but there’s a price to pay for that terseness – it makes your code harder to read and hence to debug and maintain.

However, one of my very biggest bug-bears is the failure to brace control statements like conditionals and loops when they’re operating on a single line of code. This is the trap Apple fell into so spectacularly this week.

Read more

This post is part 16 of 39 in the series Taming the Terminal

In the previous instalment we introduced the concepts of streams, and looked at how every process has references to three streams as part of their environment – STDIN, STDOUT & STDERR. We went on to introduce the concept of operators that manipulate these streams, and we focused on the so-called ‘pipe’ operator which connects STDOUT in one process to STDIN in another, allowing commands to be chained together to perform more complex tasks. We mentioned the existence of operators for connecting streams to files, and the possibility of streams being merged together, but didn’t go into any detail. Well, that’s what we’ll be doing in this instalment.

Read more

Tagged with:

« go backkeep looking »