Do you provide shell, terminal, or other command line examples on your site? Learn how to style them with CSS using a custom, lightweight plugin for Prism.
Updated on 12/30/2015: The Command Line plugin is now part of the Prism project, but it may be converted from a plugin to a language add-on. I've left this blog entry here for reference.
Despite existing open source revenue models, even popular projects are facing extinction. Is the free software ride over or is there something we can do?
Open source software powers the modern world. From operating systems to web servers and desktop applications, not only does open source deliver, but it provides truly competitive options. Given the prevalence of free and open source software, or FOSS, why are seemingly successful projects on the brink of collapse? The developers of TrueCrypt laid down their keyboards and walked away. Werner Koch announced that he was unable to justify further effort on GnuPG after 18 years. When critical security vulnerabilities were discovered, the OpenSSL maintainers revealed that they were grossly understaffed with a single full-time employee and averaging $2k per year in donations.
The Core Web Application Libraries provide a logger, database layer, and MVC framework for PHP. The code is available on GitHub along with 2 example projects.
When I built this site, I chose to start from scratch for several reasons. I could've thrown something together using any one of the open source content management systems, but I've been down that road before. Once you customize a popular CMS, it becomes an outright burden to keep up with security fixes and other updates. It's convenient to have so many features and plugins at your disposal, but having thousands of lines of unused/inapplicable code with frequent vulnerability fixes can leave you with an uneasy feeling about what's creeping into each release. Once you have multiple sites in that state, maintaining them starts to feel cumbersome or, worse, like a second job. Additionally, I wanted the freedom to use the code in any project I work on whether I retain ownership of the finished product or not.
After making several changes proposed by another contributor, my Command Line plugin is now part of the Prism project.
Back in February, I wrote about how to style shell commands using CSS. I wanted to submit that code to the Prism project, but I got distracted by other things. By the time I finally got around to submitting it, there were changes to the main project that affected the plugin code. I updated the plugin to incorporate their changes and submitted my first GitHub pull request at the end of November.
I use some shell script libraries to make FreeBSD system configuration easier. They're now available as freebsd-scripts on GitHub for anyone to use and improve.
I recently switched my hosting provider from Digital Ocean to Vultr to get tighter control over the configuration—a more "pure" FreeBSD installation. While updating my notes to prep for the install, I considered how many configuration steps were basic file editing: add this line under that line, uncomment this line, comment that line, etc. I love the simplicity that comes when the code is the documentation, so I decided to create a small file I/O library to make it easier to write shell scripts for system configuration. Why bother maintaining notes to describe manual changes when I could write a script to perform the changes automatically?
Sitka is an extremely lightweight but powerful Node.js logger that's great for cloud/serverless applications.
Although it's a very small project, I'm excited to release my first open source Node.js package today. Sitka is an extremely lightweight but powerful logger that's great for modern cloud/serverless applications. It can be installed using the Sitka NPM package and the source code for Sitka is on GitHub. Yes, there were already tons of loggers to choose from. When I browsed through them, most seemed to fall into 2 categories: many felt too rigid while others were "kitchen sink" projects trying to do far too much. A logger is an essential part of every application, but it should be simple to use and stay out of your way. As a minimalist, I want something flexible without a lot of overhead. Sitka stands on its own with less than 250 lines of code and without importing any dependencies—much less half a dozen.