G2 Forge
Open source software and gateware, from standard libraries to the highly specialized projects which necessitated their development.
Most, if not all, content will be licensed under the Apache v2 license. Please contact us if you’re interested in contributing.
Documentation
- Project & repository layout
- Eclipse formatter and cleanup
- Apache v2 License
Projects
- Alexandria, Maven - A standard library of commonly used Java code.
- Bulldozer, Maven - A combination of IaaC and build tools, heavy construction equipment for software developers.
- Charcoal, Maven - A dark theme for jekyll.
- Enigma, Maven - A library for manipulating codes of various kinds. Useful for constructing programming languages, rendering documents, etc.
- Forklift CLI Common, Maven - Forklift pallet to install commonly used command line tools and an example of a self-installing repo built using forklift.
- Forklift, Maven - A general purpose pallet (package) manager suitable for multi-language development.
- Gearbox, Maven - A library of clients and frameworks for building them, including REST and command line.
- winpty, Maven - winpty is a Windows software package providing an interface similar to a Unix pty-master for communicating with Windows console programs.
News
-
GitHub Actions: Easiest CI test server ever - 2020-05-24
As you can see we’re now using GitHub actions to perform automated testing of several g2forge projects. While the workflows have needed customization to allow testing across projects which are maintained as linked maven SNAPSHOT versions, the results are impressive and the setup trivial. We have also automated this customization to ease life for future projects. However, this does mean that we all need to learn to debug when tests pass locally and fail under GitHub actions.
-
Technical Debt: And why you need to manage your interest carefully, even if the short term. - 2019-08-03
I don’t always agree with Mr. Fowler, but I like this explanation of technical debt, and its impact on internal quality. The punchline, for those who don’t like to read: the hypothesis that accumulating technical debt can speed delivery of a feature probably only holds true over a few weeks, definitely not months.
-
A fork() in the road: On the deprecation of critical functions - 2019-07-06
If you’ve ever worked at the OS system level, you’ve probably come across
fork()
in linux. It’s taught in introductory operating system courses and often held up as an elegenat solution. Not everyone shares that opinion, and some clever folks at Microsoft Research came up with a solid argument.For reference you might also be interested in the Linux OOM killer which is one of the weird mechanisms fork spawned (pun intended). That particular bit of weirdness once literally drove me to drink.
-
Gearbox Command: Bringing type safety to command line programs - 2019-06-13
Introducing Gearbox Command: a new API for running command line programs from Java. By making use of Java dynamic proxies we generate classes which perform command line operations from interfaces with annotations. Take a look at HelloWorld which runs
echo "Hello, World!"
. -
Forklift Installers & Cygwin: Standardized installation across diverse operating systems with Forklift - 2019-04-12
Forklift was originally design to allow re-use of shell (bash) libraries. However, it can also be used to install software ranging from from OS packages to Maven JARs, and has support for multiple operating systems.