Author Archives: Alan

Meet ADMBrowser

It’s been a snowy week like Tennessee hasn’t seen in decades, so with a couple of extra down-days on my hands I decided to work on a project that’s been on my docket for some time: porting WCGBrowser to a new web-rendering engine.

WCGBrowser has been my most popular open-source project by far, and between blog posts I’ve seen and emails I’ve received, it seems to be powering kiosks and signage from New England to the Netherlands, Germany, and Australia. I’ve found it quite useful within my own organization, but it’s Achille’s heel for many years has been QtWebKit.

QtWebKit is, basically, dead, and starting to stink a little. Its performance is slow, it’s buggy with some websites, and it tends to leak memory like a seive. The Qt community has been working for the last couple year to integrate Chrome/Chromium’s Blink browser engine into Qt, and recently with the release of 5.4 this new “QtWebEngine” library is now available for me to play with on Arch Linux.

So I’ve begun porting the browser to QtWebEngine. It became immediately obvious that this was going to break a lot of things in WCGBrowser, and I’ve been wanting to change the name for a while, so I decided to fork WCGBrowser and start a new project.

I give you ADMBrowser.

Yeah, I went full ego on the name. Mostly I just want to avoid a name collision with a commercial browser, since there is a new one being bankrolled by VC every five minutes.

ADMBrowser

So far ADMBrowser is a quick-n-dirty port of WCGBrowser to QtWebEngine, basically discarding any features that couldn’t be easily ported with a search-and-replace. Sadly, that’s a lot of important features so far:

  • Plugin support
  • External File (PDF, etc) support
  • Privacy mode
  • Proxy support
  • Certificate handling

That’s just the quick core-features test findings. I haven’t tried all the more obscure features yet. Needless to say, don’t swap your production rig to ADMBrowser just yet.

Apart from the WebEngine move, I plan to clean up some of the redundant configuration options and maybe organize things a little better. I’ll also be dropping support for Python 2 (or at least not going far out of my way to support it).

Hopefully QtWebEngine will mature quickly, or workarounds will come to light. I can tell already that many rendering and performance bugs from the old WCGBrowser are tidied by by the new renderer.

If you’re Python & Qt coder who might be able to help me fix some of these things, please feel free to fork and submit pull requests.

2015 Desktop Environment roundup

It wasn’t so long ago that picking a desktop environment for your GNU/Linux system was a Coke/Pepsi/RC experience. In recent years, though, we’ve seen an explosion of projects promoting new and interesting options for your graphical environment. Having failed to find a good showcase for the various options, I thought I’d put together a blog post giving a quick summary and some visuals for each option.

(more…)

One year on Arch Linux

About this time last year, I got a bit of an early “Christmas Present”1: A shiny new work laptop. My work laptop is kind of my “daily driver” machine; I use it to study, code, communicate, and keep up with the latest tech trends, which amounts to the majority of what I use a computer for. I’d had my previous laptop for 5 years or so, and to say it was “lived in” was an understatement.

I’ve been using GNU/Linux in one form or another since around 2004/2005, and for the last several years I’ve been installing a fairly heavily-modified Kubuntu for my main machines. I’d replaced KDE with Awesome WM and rigged up a custom desktop experience; my software was a hodge-podge of repo installs, PPA installs, compiled-from-source software, converted RPMs, a few heaven-knows-where-I-found-them proprietary .debs, etc. etc. The thought of recreating my setup from scratch was just not fun.

I’d been getting the feeling that Ubuntu and I were no longer operating on the same wavelength; I was spending a lot of effort to turn Kubuntu into a bleeding-edge, custom-built, minimalist distro, and using half a dozen different methods to do it. By the time the new laptop arrived I’d decided it was time to give Arch Linux a try.

(more…)

Friday Fun: Linux on an old point-of-sale

On the bench today: a mysterious black point-of-sale system recently retired from use at a Parks facility. This victim of the end-of-XP upgrades landed on my desk since it wouldn’t run Windows 7, to see if it could be made useful with Linux.

(more…)

TIL: Finding a row with the max of multiple columns in Postgresql

Part of my job is desigining helper applications around a set of data in a database designed by a third-party software vendor. The vendor’s database design is … interesting to say the least; many of the records are versioned, so a common challenge is to find the newest record for a given entity.
(more…)

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…)

Python 3.4.0!

Just noticed that Python 3.4 is released as of yesterday.  I don’t normally pay much attention to Python releases, since the language more or less has done what I needed for some time; but bringing pip into the default distribution will make Windows deployments a bit easier.   The new Pathlib module looks pretty sweet too (no more mucking about with os.path).

Good job Python team!

Omega Hymnal improvements

Since uploading Omega Hymnal to Github ten days ago, I’ve made numerous improvements.  It almost seems like it’s time to slap a version number on it and call it a release.  Here’s a rundown of the features and fixes:omegahymnal-ss-2014-1-22

  • The utility links (import/export/settings/etc) are all grouped under a “Tools” submenu
  • I removed the default DB file from the source, so if you happen to use the default settings I won’t clobber your database when you “git pull”.
  • Omega Hymnal can initialize a clean database if you don’t have one, or you can reinit your database if you want to start clean.
  • I fixed a lot of nuttiness in the auto-text-sizer on the song screen. It’s more consistent now.
  • I added the capability to manually insert pagebreaks in the lyrics using the [pagebreak] tag. This is an alternative to manually shuffling things between text boxes.

Not sure where to go next, hopefully I can convince some others to start using this and get some good ideas. I’d love to figure out a way that I can make lyrics + chord entry a lot easier and less geeky (the world apparently doesn’t share my love of markup languages), though my ideas so far either go beyond the limits of JS or just over-complicate the problem.

Introducing Omega Hymnal

I’d like to announce the availability of a new program that I’ve been writing, Omega Hymnal. Omega Hymnal is a lyrics display program for informal worship settings.

omegahymnal_ss_1.png omegahymnal_ss_2.png

(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…)

« Previous PageNext Page »