Category Archives: General

The past, present, and future of this blog

I started blogging sometime in the early mid 2000’s. The internet was a simpler, slightly more innocent place back then. We didn’t have “influencers”, social media was fairly nascent, and an awful lot of us mostly opened our browsers to read text. At the time I was recovering from a failed music career and trying to reprogram my brain for a career in information technology by absolutely bathing every neuron in tech-related content. This blog started, in many ways, as an overflow from that.

I’d blog to document things I’d learned or created. I’d blog to answer questions I saw on forums over and over. I’d blog to just brain-dump something I’d learned, or to brag on something I’d just coded. Mostly I just blogged because I get ideas in my mind and I need to get them out so I can get past them and think about the next thing.

At some point in 2017, someone noticed that I blogged about programming in Tkinter and I was offered a book deal. I ended up writing 3 books for Packt on Python, and suddenly I had an online persona. I’m now an author, with (believe it or not) a bit of a fan base. That’s pretty cool and yet humbling. And also a little stifling.

Because now what started as a guy just writing out his thoughts on whatever was filling his brain at the time became part of a marketing tool for a product. It became part of the online branding for Alan D Moore the author. I felt the pressure to orient the content towards things that would sell books or make me appear like some sage programming guru. The result? I quit blogging.

Some people are wired up such that when they see an opportunity for fame and fortune and they seize it with two white-knuckled hands and milk it for all it’s worth. I’m not one of those. My brain wants to be free. Free to think about what interests me, free to pursue avenues of interest that I find inspiring. Yesterday it was programming. Today it might be electronics. Or music. Or Theology. Who knows where I’ll want to go tomorrow?

I can’t guarantee I’ll be wanting to write about any of those things, but I will still be me. And I’ll still want to write about whatever is captivating my thoughts. And for quite a few years now, I’ve felt like this blog — my own blog, on my own website, that I pay for — hasn’t been a place where I can do that. Well, now it’s going to be.

So this post is basically my notice to anyone who had expectations in coming here. Maybe you know me as an author of books or youtube videos about Python GUIs and you’re expecting some great insights on that. Maybe you remember me from some Linux forum or from some old Linux tutorial and want to hear thoughts about free software. Maybe you’re someone who read my tutorial on drum machine programming or harmony, or one of the literally dozen(s?) of SpinAround fans wondering what the former keyboard player is up to these days. Whatever your expectations were from this blog, dear wonderful visitor, I’m officially no longer worrying about meeting them. What gets posted here from now on is just whatever I want to write about.

And now, with that said… on to what’s next.

KiLauncher in AUR

Just like WCGBrowser, Arch Linux users can now easily install my KiLauncher full-screen application launcher from the AUR. Enjoy!

SolydX: Can it replace your XP?

At some point in my Linux-user career, I realized that my “perfect distro” setup (currently Arch with Awesome WM) – while great for me – was about as far removed from “average user” territory as you can get. So from time to time, I like to check out distributions that might be good to recommend to new users who want to find out what this Linux thing is all about.

With all the hubbub this month about Windows XP’s end-of-life, I thought I’d do a review of a relatively new distribution that has caught my eye as a possible contender for both users and hardware accustomed to the newly-legacied OS. (more…)

On programming, kids, and game development

As many parents of boys can tell you, the dream careers of “Fireman” and “Astronaut” have long since been supplanted by “Video game programmer” (and “Lego designer”, but that’s another article…). Pretty regularly I hear from other parents that their son has an aspiration to learn programming so that he can make video games, and my own boys are no exception. This isn’t an entirely bad thing.

Kids want to make games because they understand games, and for many of them games are the most compelling thing they do on a computer. It’s not a bad way to get started in computer programming; frankly, anything that motivates you to write code is a good way to get started in programming. If that thing is games, so be it; if it’s a loan amortization calculator, that works too. Far be it from me to discourage any aspiring programmer from coding whatever gets his or her brain ticking.

Even so, there are three morsels of food-for-thought that young people and their encouraging parents should chew on when a child sets his (or her) sights on a career in video game design.

(more…)

LIFTS: the Large Internet File Transfer System

Some time back, I wrote a little utility at work using CherryPy called EasyLIFT. The idea was to reduce the number of large files that were being sent as email attachments without having to resort to the tedium of setting up FTP accounts or a big complex CMS system.

EasyLIFT allowed users to login through their LDAP credentials, upload a file to a public-facing web server, and dispatch an email with the download location to recipients. The interface was minimal and quick to use, and was a real success at work.

Recently, I was looking for an open source project to keep my coding skills sharp, so I decided to do a clean re-implementation of the EasyLIFT idea using Flask instead of CherryPy. I dubbed the project LIFTS for “Large Internet File Transfer System”. No, we aren’t transferring “Large Internet Files”, or transferring Files over the “Large Internet”, but ILFTS is kind of goofy and not memorable, so there you have it.

The project is fairly young and not fully functional yet, but if you’re interested in pitching in or just checking it out, head on over to github and grab it from the repo: https://github.com/alandmoore/lifts.

More news to come, hopefully!

WCGBrowser update: http_proxy and more

For users of WCGBrowser…

In the last few days I’ve added a few features:

  • Firstly, proxy server settings. Several people requested this, though none wanted to sponsor development (I only asked $100 US). Turns out I needed it for something I was doing myself, so happy birthday everyone, you get this for free. Proxy settings can be set from the CLI, config file, or environment variables (common on many Linuxes).
  • Secondly, stylesheets. Not that there’s much to style on WCGBrowser (the navigation bar, mostly), but you can now do it with QSS style sheets. A (really tasteless) example stylesheet is included.

Latest code can of course be downloaded from the wcgbrowser github page, or just do a “git pull” if you cloned it from there in the first place.

Enjoy! 😀

Building a Linux system for a Child, part 4: a wishlist

The previous articles in this series helped you set up a Linux-based system for a child, and explored some of the great educational and kid-friendly software available. I’ve based this on almost eight years of experience in setting up GNU/Linux on computers for my own kids, and for their friends. So, based on that experience, what things do I wish the Free software community could come up with to make Linux a better experience for kids (and their parents!)?

(more…)

Building a Linux system for a Child, part 3: Security concerns

By now you’ve got that old computer purring along like a panther with your new favorite distribution of Linux, loaded to the brim with educational software, ready to propel your child to the heights of intellectual stimulation. But before we launch this starship, let’s take a bit to make sure the safety equipment is in order and reign in some potential problems.

(more…)

From PHP to Python: things I wish I’d known

The story so far…

Back around 2005 I took my first leap into the world of writing useful programs armed only with my laptop, a Pentium II running Debian, and a fat book on PHP5. Though I’d taken a few classes on C++ and tinkered with BASIC on a few different platforms over the years, I’d never managed to produce anything that actually did anything practical (or, did it very well, at any rate); with PHP, though, it didn’t take long to spread my coding wings and take to the air as a novice web developer.

Before long, my skills proved useful in some critical situations at work, and my place as a web developer was cemented. My PHP code became more mature as I learned hard lessons of experience and combined them with the programming theory and computer science I was avidly consuming on the web.

Around the same time, I got interested in Python when I saw a coworker using it to build powerful desktop applications quickly and effortlessly; I wanted to round out my programming skills with a “desktop stack” as quick and simple as PHP, and Python turned out to be a good choice.

So for a few years now I’ve written mainly in these two languages, PHP for the web and Python for the desktop. As my applications have grown bigger and more complex, I began to develop a growing discontentment with PHP on a number of levels. So when people started talking about doing web development in Python, I had to see if I could make the switch.

(more…)

Building a Linux system for a Child, part2: Distros and software

The last article in this series described some of the more general realities of running Linux on a child’s computer. Now that I’ve (surely) convinced you to go ahead an put GNU/Linux on your child’s computer, it’s time to get down to nuts and bolts: which distribution, and what software?

(more…)

Next Page »