diff options
author | Danny Holman <dholman@gymli.org> | 2025-08-29 00:28:42 -0500 |
---|---|---|
committer | Danny Holman <dholman@gymli.org> | 2025-08-29 00:28:42 -0500 |
commit | 953b4b2b1669b6a758bf49f042b523b50a0a1189 (patch) | |
tree | 5a6f2cfcb94f7bfbe53454a2f3db793250dc2c71 | |
parent | Update Gemfile dependencies (again) (diff) | |
download | blog-953b4b2b1669b6a758bf49f042b523b50a0a1189.tar.gz blog-953b4b2b1669b6a758bf49f042b523b50a0a1189.tar.zst blog-953b4b2b1669b6a758bf49f042b523b50a0a1189.zip |
Update Gemfile
-rw-r--r-- | Gemfile.lock | 145 | ||||
-rw-r--r-- | _posts/2025-08-29-Moving-to-FreeBSD.md | 71 | ||||
-rw-r--r-- | oss/box/index.html | 20 | ||||
-rw-r--r-- | oss/forge/index.html | 12 | ||||
-rw-r--r-- | oss/forge/style.css | 44 | ||||
-rw-r--r-- | oss/rune/index.html | 15 | ||||
-rw-r--r-- | projects.md | 4 |
7 files changed, 206 insertions, 105 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index bb945d1..c7b116b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,34 +1,73 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + base64 (0.3.0) + bigdecimal (3.2.2) colorator (1.1.0) - concurrent-ruby (1.2.3) + concurrent-ruby (1.3.5) + csv (3.3.5) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.16.3) + ffi (1.17.2) + ffi (1.17.2-aarch64-linux-gnu) + ffi (1.17.2-aarch64-linux-musl) + ffi (1.17.2-arm-linux-gnu) + ffi (1.17.2-arm-linux-musl) + ffi (1.17.2-arm64-darwin) + ffi (1.17.2-x86-linux-gnu) + ffi (1.17.2-x86-linux-musl) + ffi (1.17.2-x86_64-darwin) + ffi (1.17.2-x86_64-linux-gnu) + ffi (1.17.2-x86_64-linux-musl) forwardable-extended (2.6.0) - google-protobuf (3.25.3) - google-protobuf (3.25.3-arm64-darwin) - google-protobuf (3.25.3-x86_64-darwin) - google-protobuf (3.25.3-x86_64-linux) + google-protobuf (4.32.0) + bigdecimal + rake (>= 13) + google-protobuf (4.32.0-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.32.0-aarch64-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.32.0-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.32.0-x86-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.32.0-x86-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.32.0-x86_64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.32.0-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.32.0-x86_64-linux-musl) + bigdecimal + rake (>= 13) http_parser.rb (0.8.0) - i18n (1.14.1) + i18n (1.14.7) concurrent-ruby (~> 1.0) - jekyll (4.3.3) + jekyll (4.4.1) addressable (~> 2.4) + base64 (~> 0.2) colorator (~> 1.0) + csv (~> 3.0) em-websocket (~> 0.5) i18n (~> 1.0) jekyll-sass-converter (>= 2.0, < 4.0) jekyll-watch (~> 2.0) + json (~> 2.6) kramdown (~> 2.3, >= 2.3.1) kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) - mercenary (>= 0.3.6, < 0.5) + mercenary (~> 0.3, >= 0.3.6) pathutil (~> 0.9) rouge (>= 3.0, < 5.0) safe_yaml (~> 1.0) @@ -36,60 +75,100 @@ GEM webrick (~> 1.7) jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) - jekyll-sass-converter (3.0.0) - sass-embedded (~> 1.54) + jekyll-sass-converter (3.1.0) + sass-embedded (~> 1.75) jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - json (2.7.1) - kramdown (2.4.0) - rexml + json (2.13.2) + kramdown (2.5.1) + rexml (>= 3.3.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.4) - listen (3.8.0) + listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (5.0.4) - rake (13.1.0) + public_suffix (6.0.2) + rake (13.3.0) rb-fsevent (0.11.2) - rb-inotify (0.10.1) + rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.2.6) - rouge (4.2.0) + rexml (3.4.2) + rouge (4.6.0) safe_yaml (1.0.5) - sass-embedded (1.69.5) - google-protobuf (~> 3.23) - rake (>= 13.0.0) - sass-embedded (1.69.5-arm64-darwin) - google-protobuf (~> 3.23) - sass-embedded (1.69.5-x86_64-darwin) - google-protobuf (~> 3.23) + sass-embedded (1.91.0) + google-protobuf (~> 4.31) + rake (>= 13) + sass-embedded (1.91.0-aarch64-linux-android) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-aarch64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-aarch64-linux-musl) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-arm-linux-androideabi) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-arm-linux-gnueabihf) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-arm-linux-musleabihf) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-arm64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-riscv64-linux-android) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-riscv64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-riscv64-linux-musl) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-x86_64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-x86_64-linux-android) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-x86_64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.91.0-x86_64-linux-musl) + google-protobuf (~> 4.31) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) texture (0.5) jekyll (>= 3.7) jekyll-seo-tag (>= 2.1) - unicode-display_width (2.5.0) - webrick (1.8.1) + unicode-display_width (2.6.0) + webrick (1.9.1) PLATFORMS + aarch64-linux-android + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-androideabi + arm-linux-gnu + arm-linux-gnueabihf + arm-linux-musl + arm-linux-musleabihf arm64-darwin + riscv64-linux-android + riscv64-linux-gnu + riscv64-linux-musl ruby + x86-linux-gnu + x86-linux-musl x86_64-darwin - x86_64-linux + x86_64-linux-android + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES jekyll jekyll-feed + jekyll-watch json kramdown-parser-gfm texture webrick BUNDLED WITH - 2.5.6 + 2.6.9 diff --git a/_posts/2025-08-29-Moving-to-FreeBSD.md b/_posts/2025-08-29-Moving-to-FreeBSD.md new file mode 100644 index 0000000..6740276 --- /dev/null +++ b/_posts/2025-08-29-Moving-to-FreeBSD.md @@ -0,0 +1,71 @@ +--- +layout: post +title: Moving to FreeBSD +--- + +Recently, my server had a major outage caused partially by my own inexperience +as well as some key failures in some key pieces of software I use. But like any +good developer, I'm going to place blame upon the OS, specifically apt (not +really, but I have to for the bit). + +### What happened? + +Well, Debian 13 Trixie just released to mass acclaim (I should know, because I'm +a big fan of Debian on servers), and I was in the midst of making a transition +plan to upgrade my install. However, what had started out as a simple learning +experience in a VM quickly escalated into the solution to a five-alarm fire of +my own making. + +By default, Debian does not allow users to install packages outside of the +version of Debian that they have installed. I needed to get around this issue due +to a compiler version mismatch on my main build server I use to speed up +compiling C (see my post on distcc and ccache for details on getting that setup). +So I decided to modify apt's pin configuration to only install select packages +from unstable (specifically GCC version 14 at the time). However, when Debian +made the packages from unstable available as Trixie packages, something in my +apt configuration caused a cascade of failures that resulted in something akin +to Debian having a stroke. + +Firstly, the postfix server running on my server failed. I still do not know +what fully caused this outage, but without this key piece of infrastructure, +issues would compound before any notification on my end. Once the email server +was down, the email I would usually get notifying me of automatic upgrades would +never come, and therefore, apt did not send the email detailing the critical +errors quickly stacking up as the packages in unstable were shifted out into +Trixie. I believe this is where the apt pin preferences was updated, causing the +rest of Trixie to be pulled into my Debian Bookworm install. Apt failed soon +after, as the apt sources file no longer matched the currently running OS. + +Once I noticed that my email server wasn't responding, I was able to login and +see the damage. The entire OS had to be reinstalled from scratch, and just two +days before starting a new job, meaning I had no email, no calendar, and no VPN +back to the house. + +### So...new Debian version? + +Not quite. You see, while Debian was quietly lighting itself on fire, I was +playing with a FreeBSD virtual machine instance. I had zero intention of moving +anything to it just yet (had that experience with my laptop, and, oh boy, were +there some show-stopping bugs). However, I quickly fell in love with the level +of polish and support FreeBSD has, and I was seriously considering moving to it +instead of upgrading to Trixie just for the learning experience and to see if it +was up to snuff to power the services I need. + +It had it all: sane defaults, ports packages that I can customize to the third +degree, a ZFS version that actual works; and I was enamoured after only about an +hour of using the VM. However, the graphics drivers aren't quite up to par for my +standards, though they are extremely high quality. Fortunately, I wasn't planning +on using it to play games and render graphics, I was going to use it completely +for work. + +The server I have at home now rocks FreeBSD 14.3, and I could not be happier +about it. + +### Final thoughts + +If you're any kind of sysadmin or Unix developer, you need to give FreeBSD a +try if you haven't already. It has changed my personal views on what a Unix +system should be in very positive ways, and I will definitely be staying with +it on my server. However, you might want to check the hardware compatibility +on the FreeBSD wiki or check with sites like [this one](http://bsd-hardware.info) +before taking the plunge on a personal system. diff --git a/oss/box/index.html b/oss/box/index.html index 45675de..516dbb2 100644 --- a/oss/box/index.html +++ b/oss/box/index.html @@ -1,21 +1,13 @@ <!DOCTYPE html> <html> <head> - <title>Box Kernel</title> + <title>Box OS</title> </head> <body> - <h1>Box Kernel</h1> - <h3>A Unix-like kernel written for i386-based machines</h3> - <p>Box is a tiny, Unix-like kernel written in C with some - bootstrap code written in x86 assembly.</p> - <h4>Useful links</h4> - <ul> - <li><a href="https://git.gymli.org/dholman/box.git/">Git repository</a></li> - </ul> - <h4>Relevant standards documents</h4> - <ul> - <li><a href=http://www.opengroup.org/onlinepubs/9699919799/>Single Unix Specification</a></li> - <li><a href=http://www.open-std.org/jtc1/sc22/wg14/www/standards>C99 Standard</a></li> - </ul> + <h1>Box OS</h1> + <p>BoxOS is a complete, Unix-like operating system written in + C. It is done in the style of the BSD family of operating + systems, with most components designed and programmed in-house.</p> + <h2> </body> </html> diff --git a/oss/forge/index.html b/oss/forge/index.html deleted file mode 100644 index c3633e3..0000000 --- a/oss/forge/index.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"/> - <title>Forge Game Engine</title> - <link rel="stylesheet" href="style.css"/> - </head> - <body> - <div class="header"> - <h1>Forge Game Engine</h1> - <h2>2D game engine written in C</h2> -</html> diff --git a/oss/forge/style.css b/oss/forge/style.css deleted file mode 100644 index cf24191..0000000 --- a/oss/forge/style.css +++ /dev/null @@ -1,44 +0,0 @@ -html { overflow-y: scroll; } -body, td { background-color: black; color: white; font: 9pt Tahoma, sans-serif; margin: 5% 20%; - -} -h1 { font: 13pt Tahoma, sans-serif; margin: 0px; height: 48px; background: black url(asciiroth_48.png) right center no-repeat; } -h2 { font: 9pt Tahoma, sans-serif; margin: 0px; margin-bottom: 25px; margin-top: -20px; } -td { vertical-align: top; padding: 1px 2px; } -li { margin-bottom: 1em; } -li ul { margin-top: 1em; } -li li { margin-bottom: 0em; } -/* .header { background: black url('banner.png') repeat-x; } */ -.version { font-size: smaller; } -table, img.screenshot { margin-top: 1.5em; margin-bottom: 1.5em; } -.playType { width: 100px; font-weight: bold; font-size: larger; font-variant: small-caps; } -.playExpl { } -.playFor { margin: .25em; margin-bottom: 1em; color: #666; font-size: 11px; } -.playLink { white-space: nowrap; } -.playDep { white-space: nowrap; width: 150px; text-align: right; } -.footer { margin-top: 25px; border-top: 1px solid white; } - -p, li, img.screenshot { color: #ddd; margin-left: 2em; } -a { text-decoration: none; color: steelblue; font-weight: bold; } -dt { margin-left: 2em; } - -/* Lazy-ass auto-generated list CSS */ -.navlist { margin: 0; padding: 0 0 20px 10px; border-bottom: 1px solid #FFF; } -.navlist ul, .navlist li { margin: 0; padding: 0; display: inline; list-style-type: none; } -.navlist a:link, .navlist a:visited { float: left; line-height: 14px; font-weight: bold; - margin: 0 10px 4px 10px; text-decoration: none; color: #999; } -.navlist a:hover, .navlist a.selected { - border-bottom: 4px solid #FFF; padding-bottom: 2px; background: transparent; color: #FFF; } -.navlist a:hover { color: #FFF; } - -em { color: #FFF; } -h3 { border-bottom: 1px solid #333; } -#status { background-color: lightyellow; border: 1px solid yellow; color: black; - padding: .5em 1em; margin-bottom: 1.5em; } -dt span { display: block; width: 30px; float: left; } -dd { margin-left: 30px; margin-bottom: .75em; color: #999; } - -.defects td { border: 1px solid silver; border-collapse: collapse; padding: 2px 5px; } -.defects th { border: 1px solid silver; border-collapse: collapse; font-variant: small-caps; color: black; - text-align: left; padding: 2px 5px; white-space: pre; background-color: ghostwhite; } -.news { font-size: larger; color: lime; font-variant: small-caps; font-weight: bold; } diff --git a/oss/rune/index.html b/oss/rune/index.html new file mode 100644 index 0000000..be7ed04 --- /dev/null +++ b/oss/rune/index.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Rune Game Engine</title> + <link rel="stylesheet" href="style.css"/> + </head> + <body> + <h1>Rune Game Engine</h1> + <p>Rune is a fully 3D, open source game engine written in pure C. It is built + on open source libraries such as Vulkan and OpenAL, and it has a development + model loosely based on the Linux kernel.</p> + <p>Rune has a "Linux first" design, meaning that the engine targets Unix-like + systems primarily while maintaining compatibility with Windows and macOS. The + engine diff --git a/projects.md b/projects.md index f2cdbaf..61b0c18 100644 --- a/projects.md +++ b/projects.md @@ -4,6 +4,6 @@ layout: page # Projects hosted here -* [Forge Game Engine](/oss/forge/index.html) -* [Box Kernel](/oss/box/index.html) +* [Rune Game Engine](/oss/rune/index.html) +* [BoxOS](/oss/box/index.html) * [ASAP Processor](/oss/asap/index.html) |