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.

Square foot gardens past, part 1

Square foot gardens at Heritage Prairie Farm, Elburn, Illinois.

For many years, I have wanted my own vegetable garden. I used to grow vegetables as part of a 4H program back in Cortland, so perhaps I still had the bug. I also liked the idea of growing some of my own food, especially in the hectic rat race that life tends to be.

Growing a garden also sets a good example for how to address some of the world’s larger problems. A single garden won’t solve the problem of world hunger, but if enough people do it, it will mount up and at least alleviate the situation. Also, if people in less-developed areas saw examples of small, sustainable gardens, they may be inclined to try it themselves, and at least help their own situation.

When I set out to make my own garden, I selected the Mel Bartholomew’s square foot garden method. I don’t know if Bartholomew invented this approach, but he definitely refined and perfected it. He wrote two books and several articles on the subject, and hosted a television show, all using and promoting this method.

Today, the Square Foot Gardening Foundation promotes this style of gardening. They also sell supplies and offer instruction classes. It is also possible to take classes to become a certified instructor for this style of gardening. This is something that I plan to attempt, hopefully in 2017.


The summer of 2014 was my first attempt at a square foot garden. I chose a section of my property that receives a lot of sun, and was close enough to the house to be easy to check and maintain. I tried a cross-section of crops, hoping to find out what grew well and what didn’t.

SFG, 2014

This single box garden was about as simple as they come. The walls were made from cinder blocks, and the base was lined with old cardboard. I planted a mix of Roma tomatoes, cucumbers, green peppers, corn, shard, spinach, lettuce, carrots, red radishes, and bush green beans.

I planted on Memorial Day weekend, which turned out to be a little too late. We had a blistering heat wave that June, and I think that killed several of my plants. The shard, spinach, lettuce and radishes never sprouted. The cucumbers, corn and green peppers all grew, but never bore fruit.

The tomatoes and green beans, however, did very well. Over the course of the summer I was able to harvest them multiple times. The beans went over very well at the dinner table, and the tomatoes were brewed into home made pasta sauce.

I was disappointed at how this garden turned out. But I did learn a lot, and wasn’t deterred. I decided to make a better garden the following year, and hopefully avoid repeating my mistakes.

One of the problems I had with this box was placement. It was very close to the septic tank, so the weeds in the surrounding grass were constant and relentless. My box was flat to the ground, and that layer of cardboard proved ineffective against most weeds. I was constantly plucking crabgrass and other intruders.

I also had problems with wildlife. I found rabbit tracks in and around the box, so I’m pretty sure that the “McHare Clan” was poaching my veggies. I like small furry animals as much as the next guy, but I don’t want them eating my garden! Why couldn’t they eat the wild strawberries that are all over the area?!?

Ironically, when I disassembled this box during the winter, I was surprised to find some good sized carrots in the frozen soil. Apparently the carrots grew after all, though I never saw evidence of them. I suspect my furry neighbors ate the green tops of the plants. Regardless, the carrots tasted great!

Next year’s box would use a different approach.

Square foot gardens past.
[Part 1][Part 2][Part 3]

Square foot gardens past, part 2

SFG, 2015

The summer of 2015 saw a very different approach than the previous year. First off, I built a proper raised box. I learned from the previous year that having the box flush to the ground is asking for trouble. It is too easy for the local weeds to get in and cause trouble. However, most of the weeds I encountered tended to be low to the ground, so I figured the box wouldn’t have to be very high to keep out invaders. I estimated that having the base about eight inches above the ground, when combined with the natural walls of the box, would keep most weeds at bay.

I also chose a different location where the ground was dryer and less prone to weeds. The disadvantage of the new site was that it didn’t get quite as much sun (though it still received a respectable amount) and was a fair distance from the house. Once I had the space blocked out, I set out to build the first box. I found a design for a raised, square-foot garden box at the Orange County Extension of the University of Florida, and adapted it for my own use. I did away with some of the bling, like the corner caps and top ledges. I also chose not to add legs, opting instead to rest the box on a quartet of cinder blocks. This would make it easier to move the boxes later, if necessary. I figured I could add legs to future boxes, should I choose.

I also wanted to address the issue of irrigation. I suspect the previous year’s heat wave dried out my soil, which prevented some of the seeds from germinating. I kept the top layer of soil moist, but I believe the lower levels dried out. Or, whatever moisture the soil retained was being leached away by the ground below. Again, that cardboard liner proved ineffective.

To counter this, I decided to try using an olla to keep the soil moist. The olla is a very ancient method of irrigation, dating back to ancient Babylon, and it is still used in many parts of the world. It uses a clay jar with a stopper, which is buried within the soil, leaving only the neck visible. The jar is then filled with water, which leaches through the porous clay, and into the soil. I’m hoping that in the event of another heat wave, the olla could keep much of the soil moist, even if the top layer turns to rock.

In the photo at the top of this page, you’ll see what looks like a figurine of a rabbit in the center of the box. That’s the stopper for a commercially made olla that I picked up at a Plow and Hearth. There is this excellent article about ollas if you want to know more about them.

Finally, for controlling wildlife, I planned to construct a PVC structure that would hold a moveable fence made from wildlife netting. The netting would go on all four sides of the box, but not the top. The structure would be lifted away from the garden when I was working on it, and returned when I was finished. This would prevent animals from approaching the boxes from the side, but not stop birds and pollinating insects from visiting.

In my experience, birds are not a serious threat to a vegetable garden. They sometimes visit, perhaps hoping to find food, but after resting their wings for a moment, they move on. If birds are picking around at your plants, then there is probably an insect infestation going on, and the birds are the least of your concerns!


The box uses a very simple design. Untreated planks of lumber, two by ten inches, formed the walls of the box. A layer of outdoor grade plywood (OSB) forms the floor. Four balusters were attached to the walls to hold up the plywood floor. Heavy grade wood screws, driven by a standard drill, were used to join everything together.

Box walls, after attaching balusters.

Connecting the walls.

Connecting the floor to the balusters.

When connecting the balusters to the walls, and the floor to the balusters, the wooden screws often came out the other side!

OUCH!

These dangerous little spikes were cut off using a Dremel tool.

The carpentry phase of construction took roughly an hour. Once the box was constructed, it was moved into position and placed on a quartet of cinder blocks. Weeding mesh was affixed to the floor of the box with finishing nails, more as a means of keeping moisture in the box than as a means of thwarting weeds. Once the mesh was in place, I let the box sit for one day to “settle.”

The next day I filled it with a home made batch of Mel’s mix, used green gardening twine to mark off the grid, and got down to business.


This garden did quite well. By June I had added a second box and planted some hot-weather crops. Over the course of the summer, I harvested many Roma tomatoes, countless green beans (both bush and pole variety), some cucumbers, a bunch of snap peas, and several cloves of okra!


The first box, in July of 2015, with Roma tomatoes, cucumbers, and a large yield of bush green beans.

In the above photo one can see the PVC wildlife cage. It was close to five feet on a side, so it was large enough to encircle the entire box. It was also very light. I was able to lift it off the garden like a flip-top box cover when working on the garden, then put it back when I was finished. I had no problems with animals this time around. I made a similar cage for the second box.


Another view of the first box with the PVC wildlife cage. My daughter’s marigolds are peeking out from behind the bush beans.

I experimented with two varieties of squash, which were planted in the second box. The zucchini squash grew a modest vine, but never bore fruit. My spaghetti squash made one fruit that looked promising, but was ultimately undersized. Here again, I learned a lot, and decided to apply it the following year.


The second box, with pole beans, okra, and two types of squash.


Another view of the second box, earlier in the season. The pole beans made good use of those bamboo poles. A very active okra plant is in the lower left square. The other okra plants didn’t survive, but this one ran strong, well into October. If you look carefully, you can see the stopper for one of the ollas between the two pepper plants in the front row.


The spaghetti squash that wasn’t. This is about half the size of an edible one, and it never got beyond this size. I suspect the plant needed a larger square.

Oddly enough, I still couldn’t get any leafy vegetables or radishes. I tried three varieties of lettuce over the course of the summer, but none of them took. Even shard, which is supposed to be one of the hardiest leafy vegetables in the produce section, wouldn’t take. I found this puzzling, given that I took extra care to make sure the lettuce plants got extra water and periods of shade.

As for the radishes, I’m stumped. I thought those little crunchies could grow anywhere! I wonder what I’m doing wrong…

Square foot gardens past.
[Part 1][Part 2][Part 3]