Open Source Shell Game

As I continue to set up my computer for creating game resources, I’ve been looking at a number of development platforms that are open source. Many of them fall outside of my scope, while others intrigue me. Here is a run down on the ones I’m looking at.

  • Windows 10
    OK, this isn’t open source. Not by a long shot. But like it or not it is the dominant operating system for most home computers, and if I’m going to do any development of any type, I need to have Windows on hand. My computer came with Windows 8, which over time has been patched up to Windows 10. I don’t know if it has started reaching for version 11 yet; I’ll ask my daughter. While the operating system isn’t open source, there are open source development tools available for it. In the past I have used Lazarus and CodeBlocks for programming in Windows. In the long past I used versions of Delphi (Pascal), Visual Basic, and others. Lazarus and CodeBlocks are still maintained and in use, so I expect to be making use of them again. They are also available for many of the operating systems I discuss below, so I’ll be using them over there as well.
  • FreeBSD
    As I said earlier, this the primary system I expect to be using. My somewhat older computer runs like a champ using this system,  far better than with Windows. I can’t say that was always the case, though. When I first got the computer, Windows was amazingly fast, and the performance difference between it and FreeBSD (PC-BSD version 1.5 at the time) was negligible. But today, Windows 10 has succumbed to the code bloat problem that has plagued the operating system since the 1995 iteration. It has become slow, bug ridden and cranky. FreeBSD isn’t immune to code bloat either. I’m not sure any operating system is. But even though the disk footprint of FreeBSD has grown, compared to Windows, it’s still pretty lean.
  • GhostBSD
    I tried this one a few months ago, and had some issues with it, so I didn’t retain it. FreeBSD has given me some problems as well, especially with my printer/scanner, and some features on specific applications. So I gave Ghost another try, using the latest version, and targeting the printer issue. Unfortunately the printer problem hasn’t improved, so once again I will not be retaining GhostBSD.
    What does FreeBSD have against printers anyway?
    Even so I will continue to watch the development of this distribution. The biggest hurdle for new users to FreeBSD is the instillation process (in my opinion). GhostBSD has made this considerably easier.
    Regarding the instillation process…  I suspect that FreeBSD, regardless of distribution or flavor, doesn’t like to share a hard drive. Whenever I’ve tried to install it in a partitioned drive, or tried to partition the drive during install, the setup has always failed. It only seems to work when I tell the installer to use the entire drive. I find this mildly annoying, but not a showstopper. More on that some other time.

Technically these two operating systems are the only ones I “need” for the work I’m doing. But I still want to explore some others, if only for testing purposes.

  • Solus Linux
    I’ve only periodically used live Linux CD’s for specific tasks. GPartED, for example, is a very good system tool. But generally I have actively avoided Linux for over ten years. However, Linux is no longer the side show it used to be (and which FreeBSD still is!). It is now an important player in the personal computing arena, and I figure if I’m going to do any type of development, even as a hobbyist, I should reacquaint myself with it. Solus is a distribution that has always targeted personal computing, with a focus on desktop and laptop users. It also seems to have decent reputation of stability and adaptability, and a small but active support community. I’m also curious about the Budgie desktop environment, which has long been part of Solus (though apparently it has recently gone independent).
  • RoboLinux
    Another Linux distribution I’ve looked at is RoboLinux. According to it’s primary designer, John Martinson, RoboLinux was designed for people who don’t want to give up the flexibility of Windows. Just the cost. I like and agree with his approach, even though Martinson himself sounds a bit eccentric. I’m guessing that RoboLinux has the Wine system fully integrated to allow for lateral compatibility with Windows. I find Wine useful and fun to experiment with, so I’ll see what this one has to say. My plan is to set up both of these Linux installs on a two terabyte internal drive. I figure they can each have a primary partition and share swap space, since they obviously won’t be running simultaneously.
  • ReactOS
    This one is different. This project aims to create an open source functional clone of Windows 2000 (I think), with the aim of running most if not all software that was designed for that platform. I’m planning to try a few things with this one, and see if the programming tools for Windows will work on this one. I like the idea of this project, especially with all of the legacy software available. But based on the apparent slow development progress it has, I don’t know how active this really is. I’m hoping to install this to an actual live partition on a real hard drive and see how it fares.
  • FreeDOS
    This one is pretty well known. The various versions of Dos were the norm for almost two decades, and it saw a lot of software development. FreeDOS has allowed that development to continue, and made it possible for many legacy programs to see continued use. I don’t know how much use I’ll get from this one, but I’m curious enough to find out. I’ve used FreeDOS before via VirtualBox, and from a live CD, and have been satisfied with it. I’ve never tried it in native mode, though. I don’t know if my current computer will accept it, but I’ll be looking into it. If I can install this to a logical partition, I’ll try that. I understand it can also be installed to a USB stick, so that’s another option.
  • Haiku
    OK, confession time. I ran BeOS on an IBM Aptiva computer back in the late 1990’s, and I really liked it. I found it to be a fresh, new take on personal computing, and with a lot of interesting features. I really wanted this one to take. I was gradually making BeOS my primary operating system, and was populating my BeOS partition with a variety of applications, when things went totally sideways for BeOS. After watching the community and support network fall apart, I reluctantly abandoned BeOS. That being said, I have long wanted to see BeOS reincarnated as an open source system. Haiku is a long running attempt to do precisely that, and I would love to see it succeed. But progress has been slow, and there are parts of the system that are still being worked out, even after 20 years. In computer terms, 20 years is an eternity, so as much as I hate to admit it, Haiku isn’t likely to ever reach maturity. But if I can get an install of it working, and do even a little development for it, well, at least I can say that I tried to help.
  • Minuet
    This one is pure curiosity. The idea of a microscopic operating system written entirely in assembly language is intriguing, so I’m going to look into it. I’ll probably install this one to a USB drive, or use a VirtualBox image, and see what is has to offer.

This rogues gallery of operating systems is currently being assembled and deployed on my poor computer. How things work out remains to be seen, but I’m pretty sure it will be quite an experience.

Return of the Daemon

Beesdie as a pinup girl!

The time was late November of 2021, and I was ready to try some new things. Specifically, I want to learn how to create and distribute 3D models for use in games and simulations. For this I would probably need a new computer, preferably with a graphics acceleration chip. But that is currently beyond our financial reach, and is likely to remain so until mid-2022. So, I needed a way to amp up my existing computer to handle some of the rendering and development tasks I had in mind. I knew it wouldn’t be able to do all of them, but hopefully it could perform the tasks I needed for learning the basics. That would push my technological road block further away, hopefully to a time when acquiring a new computer was financially feasible. The answer for enhancing my old computer had been sitting in front of me all along: FreeBSD.

I had a TrueOS instillation on my computer, but I hadn’t used for quite some time. I suspected it would need a lot of updating. So much so that I figured a better option would be to start fresh. I had started with PC-BSD, which later became TrueOS, so I went online to get the latest release. I was very disappointed to learn the TrueOS had shut down, with very little explanation. A possible replacement was a different desktop oriented distribution of FreeBSD called GhostBSD. So I downloaded the current version of that and burned it to a disc. I then backed up my relevant files, cleaned and prepared the appropriate hard drive, and started the installation.

It went perfectly! I can honestly say that it was the cleanest and fastest instillation of an open source operation system that I have ever seen. I had a fully working system up within just under an hour. Most of that time was spent copying and moving files from the disc to the hard drive. I was able to take a short nap while it worked. I remember thinking ‘that was too good to be true!’

Unfortunately, I was right. As I started to install my favorite programs and utilities, I started encountering bugs and glitches. At first they were minor, and work-arounds were easy to find. I figured this was the result of system changes since my original install. But, when Window Maker wouldn’t operate correctly, and would frequently freeze the system, I knew something was very wrong. When other problems started to occur with other programs, I hit the breaks.

I did a little digging, and found that GhostBSD uses its own port tree and configuration schemes. For me that is a red flag. The largely standardized structure of FreeBSD and the related port tree was one of the things I really liked about it. One of the things I disliked about Linux was how each version of Linux had its own scheme and distribution methods; essentially a ‘port tree’ for each version of Linux. Reluctantly, I made a backup of my GhostBSD install (just in case), and went back to the source: FreeBSD.org.

I’ve tried to install vanilla FreeBSD before, but with little luck. I find the instillation program is often confusing, and asks questions that most users, even intermediate level ones like myself, would have no reason to have answers for. The instillation script is clearly designed by experienced system administrators, for experienced system administrators.

One of the big strengths of PC-BSD was that the instillation process was designed with average users in mind. One of the distribution’s goals was to make FreeBSD more accessible to average users who weren’t experienced with Unix. Granted, it had some bugs, and some of the added features were cumbersome. In my opinion, when using FreeBSD you will eventually need to get very technical. But PC-BSD provided a good set of training wheels for the operating system. The GhostBSD instillation script was also very straightforward, so it could fulfill the same role that PC-BSD did. I’ll be keeping an eye on the distribution and see how it develops.

Anyway, I downloaded and burned a system install ISO for FreeBSD, prepped the hard drive again, and dove in. When presented with a question I didn’t understand or didn’t know the answer to, I accepted whatever default values the script recommended, and wished for luck. The only variable option I selected was to include the port tree. (A portsnap install.)

To my relief, it installed correctly. X-Windows wasn’t part of the instillation disc, so that explained a few things. (X-Windows is as inherently tricky as it is useful.) I was able to do a console login using both the root password and a user password without any trouble, though I did find that some permissions needed to be changed on my user password.

This was from one of those cases where the instillation script asked me question that I didn’t fully understand, so I accepted the default and hoped for the best. I figured (prayed…) that if problems arose I could fix them later. When I attempted some simple commands, I received a few messages about permissions and access rights. A search of the various FreeBSD related forums and documentation libraries eventually provided me with the information I needed. Persistence and patience are ‘user requirements’ that are still needed for setting up FreeBSD, and I suspect they always will be.

Once the core system was installed and running, I attempted to install a program from the port tree. This was more to test the network configuration that it was to install the actual program. The program in question was Midnight Commander, an open source stalwart that does not require the X-Window system. To my relief, the port installed normally, so my network configuration was (at least) adequate.

The next step was to install X-Windows. I was expecting this to be a nightmare, because on every other X-Window install I’ve done, be it Linux or FreeBSD, there were bugs to iron out. I went with the package install route, so as allow a faster download:

pkg install xorg

I really like the name xorg; it sounds like the name of a creature from Dungeons and Dragons.

Had this install failed, I would have tried the source compilation route, but luckily that wasn’t necessary. Even so the process took a while. Most of a night in fact. I entered the command mid-evening, and it was still downloading when I went to bed. I got up in the middle of the night to use the bathroom, and checked on it. According to the timestamp, it finished downloading around 2:30am, having taken six hours to fully download. I found out later that there was a problem with our satellite internet connection, so this slow process had nothing to do with FreeBSD.

The next day I attempted to launch X-Windows. I was presented with three questions related to my video card, which fortunately I did know the answers for. I had the original manual for my computer, a Dell Inspiron 660 series, with all the specs laid out, right next to me. This may be a no-brainer, but if you’re going to try installing an open source system like FreeBSD, I highly recommend having such documents on hand.

I entered startx, and after a few seconds the TWM window manager came up, in full ugly glory. The color resolution was painful to look at, and the windows didn’t fit my monitor very well. But X did launch without issue, and I was able to change the colors and resize the windows without any problem. So the initial horrid appearance proved to be nothing of concern. I figured if anything was going to go wrong with this instillation, the X-Window instillation was the most likely place. But apparently things went fine. So far, so good.

The next step was KDE. I knew this would be a haul. KDE is a full blown desktop environment with all kinds of tools and features. The funny thing is that I generally use Window Maker, but I still make use of numerous KDE tools and features, so I still needed to install the full beast. Once again I logged into the console as root and put the system to work:

pkg install kde5

I did nothing else with the computer that evening, because it was too busy downloading to be of any other use. When I returned the next day I made some necessary changes to some key configuration files, took a deep breath, asked for the favor of the technology gods, and reluctantly launched X.

I anxiously waited while the computer whirred for several minutes until the login manager (a variant of SDDM) popped up. I entered my userid, then waited again. After about 30 seconds the bouncing KDE pointer appeared, and the various components of KDE came into focus. I heaved a sigh of relief, but I still wasn’t out of the proverbial woods. My problems with GhostBSD really increased when I tried to change the window manager and add other programs. Even so, I went through a series of tests and checks to make sure that KDE (at least) was working as advertised. With KDE working, I figured my largest hurdle had been cleared.

The next step was my preferred window manager, Window Maker. I installed the packages just as I’ve done before:

pkg install x11-wm/windowmaker
pkg install x11-wm/wmakerconf

When I boot up, the login manager screen provides an option for selecting a window manager. But to my dismay, Window Maker wasn’t among them. After doing some quick surfing of Linux and BSD forums, I found that for SDDM to recognize and use a manager client, it needs a .desktop file in:

usr/local/share/xsessions

Such a file can be created using any text editor. Using the KDE one as a model, I made one that looked like this:

[Desktop Entry]
Type=XSession
Exec=/usr/local/bin/wmaker
TryExec=/usr/local/bin/wmaker
DesktopNames=WindowMaker
Version=1.0
Name=WindowMaker

I named the file wmaker.desktop, and placed it in the appropriate directory. When I logged out and back in, Window Maker appeared as one of my options on the menu. If you have a window manager client that you particularly like, but that doesn’t provide a .desktop file, a file of this type is probably what you need.

Window Maker popped up, and it’s various applets whirred into operation. I then opened a root terminal and attempted to install a simple x-window application from the port tree. The package installed normally, and my userid was able to launch the application without a fuss.

Now I was able to relax, because if I could get this far then I was probably in the clear. At this writing I have installed many of my favorite applications from my earlier TrueOS install, and haven’t had any major problems. Either I’ve gotten better at this open source thing, or FreeBSD has gotten easier to work with.

I had forgotten how much faster FreeBSD can handle heavyweight programs like Firefox and LibreOffice, especially when compared to Windows. Earlier today I had six heavyweight programs running in different workspace windows, all handling a variety of tasks, and my computer didn’t show the slightest lag. That same workload would have killed Windows. It’s almost like having a new computer.

My next step is to install and load the development and rendering tools I will be using for developing game materials. If the increased performance of the rest of the system is anything to go by, I’m cautiously optimistic.

OK you tricky little daemon, show me what you’ve got.


The image of the Beesdie daemon as a pinup girl was pulled from a wallpaper that appeared in the PC-BSD forums some time ago. Sadly I don’t remember which version, and I certainly can’t remember the name of the creator. Here is the original wallpaper for those who are interested.

Window Maker’s forgotten mascot

Amanda Panda

A few people have asked me about this furry character, which appears on my Window Maker page. Her name is Amanda Panda, and she was designed to be a mascot for the Window Maker x-client. Notice the pattern on her ears.

I first heard about this mascot circa 1999, during my Linux phase. From the look of things, the idea didn’t stick. The original page that promoted her vanished a long time ago, and the only place I was able to find record of it was through an Internet archive site. I took this screen shot using my smart phone:

The original page came from an earlier iteration of the official Window Maker site, and it does not have a counterpart on the current site. Regarding the artist, there is a performing artist and singer named Agnieszka Czajkowska, but I don’t know if this is the same person who is credited in the description. Also, the giant panda is no longer on the endangered species list; it has been upgraded to ‘vulnerable.’

References to Amanda in the context of Window Maker are few and far between. Author Christopher Whittum has some information about her, and Window Maker in general. He also developed a Window Maker theme based on the character. Programmer Raj Shekhar also provides a few details, including this cartoon-style variant of the mascot drawn by David Bouley.

The name ‘Amanda Panda’ has been, and is still being, used in a variety of ways. It is frequently used as a nickname for any woman with the name ‘Amanda,’ for example. There is also a video game character named Amanda Panda, who is associated with a number of mobile device games of the slot machine and falling gem variety.

But if a generic Google search is anything to go by, one of the best known uses for the name, at least in the context of a contemporary mascot or logo, is for the Amanda the Panda Family Grief Center near Des Moines, Iowa. This place provides counseling services for families who have lost a loved one. I suspect they chose a giant panda because the animal often creates ‘warm fuzzy’ feelings. Just look at them! If you’re trying to help someone deal with a terrible personal loss, creating such a feeling is a good place to start.

It wouldn’t surprise me if there is a copyright or trademark issue in play regarding the use of the name Amanda the Panda. If that is the case, and only one organization or group can use Amanda as their mascot, I think it should go to this center. For my money, their work is far more important than an x-window manager, or a group of video games.

Though it would be funny if this center used Linux or FreeBSD to run their computers, and even funnier if they used Window Maker as their x-window client.

So regarding Amanda’s status as the official mascot for Window Maker, it either didn’t catch on, or it was deliberately dropped. This is unfortunate in one way, because she is just so darn cute! But ultimately it may be for the best. The world of open source software is littered with animal mascots, some of which are pretty silly, and it doesn’t really need more of them.

And for some folks, the use of cute animals like penguins and little red daemons to promote software is at best unprofessional, at worst juvenile. It’s true: there are people who do not like cartoon mascots. Especially serious people who are trying to run a serious business. (Does anyone remember the backlash Microsoft endured over Clippy?) Perhaps because of this, programs that are tightly associated with a cartoon mascot aren’t always taken seriously by the very people who might want to use them. This isn’t a widespread attitude, but it happens often enough to be an issue.

The world of computers can be a very fickle place. Just ask Amanda, the Window Maker giant panda.

There’s an app for that!

Courting the Daemon, part 4.

It’s safe to say that for a computer to be truly useful, it needs applications. An efficient operating system, like FreeBSD, is a great thing to have, even if it can be tricky to set up and configure. The bragging rights for taming such a technological tiger are noteworthy. And a fancy looking graphical user interface is fun to look at, with the ability to generate satisfying “ooos and aahs” when shown off. But such accolades ring hollow the moment someone says “Yes, but can I use your computer to check email? Or work on my documents?”

An industrial-strength operating system, and a lean, mean user interface aren’t much good if the computer doesn’t have applications that allow it do the things it was ultimately intended for: the Internet, manipulating documents, storing and managing important data, developing new software, and even playing games.

Fortunately, there are thousands of applications for UNIX-derived open source operating systems, including FreeBSD. Once again, the best place for a FreeBSD user to start looking is the ports tree. What follows are the applications I like to use. Different people like different things, so when you start setting up your own system, let your own personal needs and interest be your guide, and don’t take my suggestions as gospel.

File system tools

I make heavy use of graphical file managers. Back in the days of Windows 3.1, I used File Manager more frequently than Program Manager. For a time, I even used a graphical version of XTree Gold as my shell. With later iterations of Windows, I used a File Explorer window to access and manage most of my stuff. I just tend to do better if I can picture my files as being in a “folder” that I can open and pull from. These graphical file managers are designed for such work.


Dolphin
Dolphin is an integrated component of the KDE desktop environment.
Dolphin is the default file manager for the KDE desktop, but it can be executed from Window Maker. Most of KDE’s key functions are integrated within Dolphin, so by using this file manager, most of KDE’s features are available, even when the KDE window manager isn’t running.


XFile Explorer

/usr/ports/x11-fm/xfe/

This is an older file manager, that looks like the Windows Explorer. I use this when I need to execute specialized commands on files or file groups. It doesn’t have the same set of core features that Dolphin does, but it does support customized shell commands by means of a nifty command line editor.


Midnight Commander

/usr/ports/misc/mc/

This one is seriously old school. I discovered this old stalwart during my Linux days. It’s a semi-clone of an old DOS utility called Norton Commander, and it can be run entirely from the command line. It makes file maintenance very easy, by linking some complex file and directory commands to the function keys. As such, some otherwise lengthy or tedious file management tasks become a breeze. I often use this one when I’m not using the graphical environment, or from within an existing terminal session. I also have a customized script for running Midnight Commander within a dedicated X-windows terminal.

Productivity applications

These are the meat and potatoes of my work station.


LibreOffice

/usr/ports/editors/libreoffice/

This is a fully-featured office suite, which is something that no workstation should be without. It is intended to work like any other integrated office suite, like Microsoft Office, Lotus Office, or Polaris, and in my experience it works very well. It has a word processor, spreadsheet, presentation editor, database manager, and a utility for drawing charts and graphs. It can import and export files from any number of commercial programs, and works very well with other x-windows programs. The learning curve can be rather steep, because many of the controls are in unexpected places, but once you get used to this, LibreOffice will become a trusted friend. Best of all, this one is free, with support for many different languages.


Gimp

/usr/ports/graphics/gimp/

The name means “GNU Image Manipulation Program,” but the jokes still abound. Gimp is a full scale graphics manipulation program on par with Photoshop, and is completely open source. It’s primary purpose is for retouching raster images and scanned photographs, but optional plugins and extensions are available to let it handle just about every graphics format in existence.


Emacs

/usr/ports/editors/emacs/

This is a UNIX world classic, and a very handy program to have around. It is essentially a text editor, but it can be customized and scripted in an almost infinite variety of ways, making it useful for a variety of complex tasks. It makes a useful companion to other text manipulation programs. I don’t use Emacs very often, but it has proven to a useful tool to have available.

Internet

This is the last category I’m going to look at for now. In this day and age a computer that can’t access the Internet is little more than a paperweight. Fortunately there are many Internet applications, both commercial and open source, for every operating system around. FreeBSD is no exception. In fact, much of the Internet’s infrastructure was built on servers running versions of UNIX, which is the direct ancestor of FreeBSD.


Konqueror
Konqueror is an integrated component of the KDE desktop environment.
Konqueror started out as the file manager for KDE, which was later expanded into a lightweight web browser. Dolphin is now the primary file manager for the KDE environment, but Konqueror is still provided as a file viewer and web browser. One of its strengths is that it can be customized in a number of different ways. It doesn’t always do well with web sites that use a lot of scripting or style sheets, but for most others it does very well.


Dillo

/usr/ports/www/dillo2/

I actually have a few different web browsers available, because I like to see how this site looks on different browsers. My wife also does some freelance and volunteer web work, so she also likes to see how sites look on different browsers. This one is a very light weight and very fast browser, and is optimized for viewing text-heavy sites. It doesn’t do well with script heavy sites, and even sites with frames tend to balk. This site doesn’t look very good in Dillo, largely because WordPress makes heavy use of frames. But even so Dillo is great for browsing discussion forums and message boards. And it has one really nice feature for web developers: an HTML bug tracker. Along the lower margin there is an icon of a beetle, which when clicked will indicate the number of bugs in the HTML code, and what line the bug is on.


Opera

/usr/ports/www/opera/

This is what I call a middle-weight browser. It can handle most scripts and HTML style sheets, but sites that rely heavily on Flash and other graphical features sometimes buckle. Even so, this is a good, reliable browser that can handle pretty much anything you throw at it. It is also surprisingly fast, all things considered.


Firefox

/usr/ports/www/firefox/

The big guns. This is one of the most wide spread browsers in use, and is one of the industry standards. This is actually my default browser, even with the high memory requirement. If it’s on the Internet, this heavyweight can handle it.


Thunderbird

/usr/ports/mail/thunderbird/

This is my email client of choice. It can handle multiple email addresses over multiple servers, and it can be configured to behave in a variety of ways. Thunderbird also allows for the viewing of NNTP newsgroups, if you can still find any. This program is tied to the Mozilla group, which also handles Firefox. But there have been some changes at Mozilla, so the future of Thunderbird may be in question.


That pretty much covers the core of my FreeBSD system. I have added and changed things over time, and I’m often looking to try new things. As my needs and interests change, I’m sure to find other wonderful things in the world of open source software.