Scaling for Small Displays

13 August 2024

I bought a very small laptop to use with radio work in the field, and the screen resolution is a bit small (1366x768). Pair the small display with current desktop environments' tendency toward chunky, touch-friendly interfaces, and it doesn’t allow one to cram much on the screen.

My desktop environment is Gnome, so I slimmed it down with some stylesheets:

headerbar {
  margin: 0 1em 0 1em;
  padding-top: 0;
  padding-bottom: 0;
  border-width: 0px;
  font-size: 12pt;
  min-height: 0px;
}

headerbar * {
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
  border-radius: 0;
  border-width: 0px;
  min-height: 0px;
}

headerbar box {
  padding: 0.1em 0.5em 0.1em 0.5em;
}

WSJT-X is a QT app, so I scaled the fonts there to make everything fit better by setting the DPI in a launch script:

#!/bin/sh

export QT_FONT_DPI=75
/usr/bin/wsjtx


Digital Archeology

04 February 2023

Floppies

Nostalgia for Old Code

I’ve been coding for a very long time, so I’ve had lots of projects in various languages, on various platforms, and stored very differently.

I got nostalgic on and off over the past couple years and went digging around to recover the source for some of those old projects. I uploaded the more notable projects to my GitHub account.

Old Floppies

I spent money to buy a 3.5-inch USB floppy drive and an old 386 PC with a 5.25-inch and 3.5-inch floppy drive, so I could ultimately copy files from really old 5.25-inch floppies that I used in the late 1980s and early 1990s to my live storage of today. Among those old files were binaries and source in GWBASIC and QuickBasic.

QuickBasic

I found one of the first games I wrote and sort of distributed, Gravity Blocks. I could play the compiled binary with DOSBox and read the main source file, but some of the source code for my common libraries is still locked up in a compressed format from QuickBasic 4.5. I may need to dig deeper into QB64, a clone of QuickBasic 4.5 that seems to be able to read, run, and compile those old compressed files.

GWBASIC

I also found source code for the first software I wrote for the local fire company to help track statistics on calls and print reports to submit to the local municipalities we served.

It was written in GWBASIC, so I was able to decode the compressed source where needed to read it. I published my CALL-REP source, so I could go back and have a look at the simple, but useful, things I used to write as a kid.

Copies of Old Servers and Subversion

I continued to build stuff through college (and obviously beyond). Some of it was in C, PERL, and Java.

I recovered these bits of source code laying around in backups and copies of old Linux servers I’ve run over the years. This source was in old Subversion repositories that used old versions of Berkeley DB. Initially, This BDB version mismatch kept svn checkout from working, but the current Subversion tools have an svnadmin recover command that could fix the repository for normal reading today. I’m sure some of those old SVN repositories had previously been migrated from CVS.

Java

I found the source code from my final project in the Java class in my last year of college in 2000.

Pop-a-Prof is a clone of my favorite puzzle game, Bust-a-Move. It’s a Java Applet that ran in Netscape allowing any number of players, and it coordinated everyone’s play with a shared public server, Each round lasted 5 minutes, and any time you topped-out, you’d lose some points, and start over, so no one needed to sit around watching the last people battle it out.

After school, I started on Pop-a-Prof 2. This one ran as a plain Java application, and implemented rebounding balls in the game. It was more of a proof-of-concept for the new game mechanics, and it never got network play.

Java ME

I liked running little bits of code, like applets did, so I continued into writing Java ME (J2ME) for my feature phones around 2005.

I did a gas-logging app that stored fuel-ups and drew graphs to show fuel economy.

I also wrote a quick little game called Ben’s Backhoe to give the kids a little something to do on my phone. By the time I was building this sort of thing, though, I’m a decent Java programmer, so it’s not the fun mess that we see in the other old project.

Still More

I spent most the day poking around at various old BASIC files and trying to tweak them a bit to run in PCBasic or QB64. I used lots of weird graphics modes from the Tandy 1000 and didn’t think much about portability. I may post more projects over time.


The Friendly Orange Glow

02 January 2023

The Friendly Orange Glow

Obscurity

The Friendly Orange Glow tells the history of a piece of educational software, PLATO, that grew into a whole microcosm of the internet and cyber culture years before the internet we’ve known for the past 25 years.

Brian Dear attributes the obscurity of PLATO to it having been built and developed at University of Illinois in the Midwest and not at a school on the coast. The PLATO system also used dedicated client hardware with integrated slide projectors, and it ran on a single mainframe. Everything was coded in a programming language called TUTOR, which was primarily designed for authoring interactive lessons using the orange gas plasma display, a rudimentary touch input for the screen, the keyboard, an slide projector integrated into the display, and even occasional peripherals like some sort of synthetic woodwind sound device. It was all very specialized from the beginning.

I loved the time the author dedicated to describing technical details, like how the orange gas plasma display was developed: the grids of wiring, pockets of noble gases trapped between them, and the way accidental contamination allowed them to discover a memory effect they could use to keep each pixel lit. Fixing the contamination lost the memory effect. He presented a wonderful level of detail for my interest.

Cyber Culture

Donald Bitzer showed off PLATO to anyone who would take a moment to try it. He wanted people to learn and get creative, seldom shutting down experiments. He’d embrace the high school and university hackers who would wander into the labs, and he put some of them to work building hardware or testing. These people would go on to build all sorts of multiplayer games and other software to be used by other users on the system. Bitzer recognized the value in observing what people did with the spare cycles of the system at night. From that freedom sprung an entire hacker culture similar to what I found in my youth, so I felt great nostalgia for this work. Again though, I was discovering this culture in the 1990s with bulletin board systems and the internet in college, and Bitzer’s revolution had already happened in the 1970s. We were always pushing the limits of what we were supposed to do with these systems. It looked like wasted time, but we learned the most.

Discovering new lessons or software on the PLATO system seemed akin to our exploration of BBSes via our modems in the 1990s. We’d stumble around trying to find some new phone number or new corner of an existing BBS, and these kids in the 1970s were exploring PLATO to find games or long threaded discussions in notes that others were developing.

PLATO started as a way to display some slides and teach a self-paced lesson, but grew into games, forums, and email before such things existed. It could have grown into one of the great online services that followed, but they may have gotten too tied up in their centralization and specialized hardware. The management of their commercial partner may not have helped either, because they just wanted to sell mainframes, and didn’t recognize the value of community that had been built around the system.

The book was an exciting listen, and I blasted through the whole thing in about 2 days, because I just couldn’t put it down. It reminded me of my childhood and the all the potential of the systems of the day and the creativity that came from the limitations of the day. PLATO evolved in an alternate universe in the middle of the country away from the technology hubs.


Podcast List for November 2022

03 November 2022

I have 73 feeds I currently follow. I have a whole system of prioritization, so I can listen to important things first. I’ve listed them alphabetically here:


All the Posts

August 2024

February 2023

January 2023

November 2022

April 2022

January 2022

July 2021

April 2021

January 2021

November 2020

October 2020

January 2018

January 2016

December 2012

October 2011

June 2011

December 2010

September 2010

June 2010

May 2010

February 2010

January 2010

August 2009

March 2009

February 2009

November 2008

October 2008

June 2008

March 2008

January 2008

December 2007

October 2007

September 2007

August 2007

July 2007

June 2007

May 2007

April 2007

March 2007

February 2007

January 2007

December 2006

November 2006

October 2006

September 2006

August 2006

July 2006

June 2006

May 2006

April 2006

March 2006

February 2006

January 2006

December 2005

November 2005

October 2005

September 2005

August 2005

July 2005

June 2005

May 2005

April 2005

March 2005

February 2005

January 2005

December 2004

November 2004

October 2004

September 2004

August 2004

July 2004

June 2004

May 2004

April 2004

March 2004

February 2004

January 2004

December 2003

November 2003

October 2003

September 2003

August 2003