Category Archives: Life

New song: “He made a way”

I’ve been working away at my next book, keeping well ahead of schedule, and decided to take a short break over the Easter holiday to record a song that’s been rolling about in my head.

The song is called “He Made a Way” and you can find it on my music page in MP3 and Ogg formats. Unlike most of my recent work, this song isn’t in an odd meter and doesn’t use fancy harmonic stuff; instead, I decided to dip my toes into African styles like Soukous and Rumba, because I don’t think there’s a happier-sounding style of music on the planet. Sometimes you just want to write a happy song, you know?

(more…)

Tkinter Book Release!

Woohoo!  My new book, Python GUI Programming with Tkinter is finally out!  You can order it directly from Packt Publications or from Amazon if you prefer.  It’s available in print or in a variety of electronic formats, if you prefer.

This book was six months in the making, and it feels good to see it finally available for purchase.

This is a HUGE book that covers much more than just using the Tkinter library; it takes you from being a Python novice to a software architect able to design and build complex data-oriented applications.

(more…)

Tkinter book now available for pre-order

The cover of Python GUI programming with Tkinter by Alan D MooreExciting news!  My book is now available for pre-order from Packt Publications.    It won’t be out until June, but I’m 2/3 of the way through writing and pretty pleased with what I’ve got so far.

If you know a budding Python programmer who’s interested in writing desktop applications, this is going to be a great book for them; even if they don’t end up using Tkinter in the long run, they’ll learn a lot of good coding habits and application design techniques.

For example, I just finished up a chapter on unit testing that covers the Python unittest library in-depth and walks the reader through writing real tests on actual application code.  Beyond the basics, we deal with challenges like mocking out file access, testing mixin classes, and creating integration tests on our GUI elements.

If you have any questions about what is or isn’t in the book, or suggestions on topics I shouldn’t leave out, feel free to comment!

https://www.packtpub.com/application-development/python-gui-programming-tkinter

 

Big news: A book is on the way!

This blog has been a tad slow over the last year or so, mostly because I’ve been concentrating more on making music than writing code; but that all changed when I was contacted last month with an opportunity to write a book on Tkinter.  So, sometime early next summer, my first book, Python GUI Programming with Tkinter, will be available from Packt Publications.

Wait, Tkinter?  In 2018??

Yes, I know what you’re thinking; it’s either “What on earth is Tkinter?” or “Why would you do a book on it in 2018?”

For those asking the first question, Tkinter is a GUI programming library built into the Python standard library; and if that doesn’t mean anything to you, you might not be the target demographic for this book. 🙂

For those asking the second question — well, hear me out.

To start with, this book isn’t just going to be a dry Tkinter how-to; it’s fundamentally a book about writing end-user applications and choosing the right technology to solve real-world problems (particularly in the workplace).  I’ll be going through the process of dissecting a business need and building an appropriate software solution.

The simplicity and ready availability of Tkinter makes it a decent choice for teaching budding Python programmers these principles.

But as for Tkinter itself, I think it gets a bum rap from the Python community.  Sure, it’s not a glamorous, trendy library.  It doesn’t have declarative syntax, a million and one widgets for every occasion, a Javascriptesque mini-language for form automation, or a 100 Mb browser exectuable bundled into it.  But Tkinter hardly deserves the pariah status some Python coders give it.

The three things I mainly hear about Tkinter are:

It’s ugly

Not so many years ago, Tkinter was hideous.  Aliased fonts, limited theming, and widgets that escaped from a 1990s Unix desktop made for a look that screamed LEGACY and indelibly marked Tkinter as deprecated in the minds of many Python coders.  This has changed though; fonts are now anti-aliased, and the TTK widget set provides themable, platform-appropriate widgets.  Tkinter may not give you the Material Design look or animated semitranslucent widgets, but for your standard utility, control panel, or data-drive application, it looks fine.

The widgets are too simple

Tkinter’s form widgets are a tad disappointing when you first use them.  Comboboxes and Spinboxes don’t behave like their counterparts in other toolkits.  In the book I’m going to turn this weakness into a strength, by showing you how to extend and customize these widgets to behave precisely the way our users need them to behave.

It doesn’t scale well to larger applications

I’ve read (and maybe even said?) many times that Tkinter is “fine for small apps, but doesn’t scale to big things”.  That may be true depending on your definition of “small” and “big”, but most of us aren’t building Microsoft Office.  The book is going to go through creating a moderately-sized database application that would be pretty typical of in-house software and I’ll be demonstrating techniques to make Tkinter scale.

Exciting times, folks

This is my first experience as an author, so I’m hoping it goes well.  If you have particular aspects of Tkinter you’d like to see covered, let me know!

Reviving my home studio, this time the free software way

Long ago, before I ever knew a lick of BASH or even what an OS kernel was, my passion was not technology but music, music, and more music.  Roughly the first half of my adult life was devoted to the writing, playing, and recording of music, and by around 2002 I’d built for myself a tidy little home recording & mixing setup centered on Cakewalk Sonar, Jeskola Buzz, and Windows XP.  Alas, the years were not kind to my career or gear, and up until recently my music computer was busy being a game & education machine for the kids.

Thanks to a hard drive crash and the purchase of new machines for the kids, I got my old music machine back, albeit lacking a functioning operating system and software.  So, I decided now was a good time to rebuild it.  This time, though, I decided the time was right to kick XP and Cakewalk to the curb and go it Free Software style.

(more…)

Robin

In my blog links below, you’ll see a link to “Robins Rants and Raves”, a blog that (until recently) was written by a bright young man who many of us in various Linux circles knew better as “DixieDancer”.

A few days ago, Robin went to be with our Lord and Savior, brought down at the age of 18 by a genetic condition beyond medical help.  I recommend anyone to read through the last month or so of his posts, to hear the voice of a young man facing his pending death with the confidence that he will be entering the new life.

We have lost something down here, but he has gained everything now.   Rest in Joy, brother.