Introduction Too Honest For CV Driven Development Working at a “Big Tech” company has its perks: because of the scale such company operates at, you typically don’t have to deal with basic services like DNS, authentication or CI/CD as these services are managed by dedicated core teams. On one hand, it’s great: badly deployed by an overstretched dev or ops guy, these core…
Introduction These days, at work, we don’t really have to care about server racking, cabling, powering, and the many other *ings required when dealing with hardware. Logistic companies like Amazon/AWS have managed to hide it all behind convenient APIs, and frankly, they do it better than we could. That’s only valid in a professional context however. At home, unless you are…
Why Would You Do That? I have an old PC tower lying around that I use as a lab/KVM hypervisor from time to time. The thing is completely headless like a server should… maybe a bit too headless actually. The motherboard doesn’t have any video port, and the two PCIEx16 ports are used by some old OCZ Velodrives storage cards, so there is no way to plug a screen. To a degree, it’s…
Just a really quick one. I’m kind of cheap, so years ago, I bought a Hello Ganss GS87-C mechanical keyboard. Hello Ganss Never heard about this brand before or since, but it has served me well enough. Not sure if it has genuine MX Brown Cherries, but these, along with the overall build quality, are good enough. However, recently, my Alt and Super/Win keys got swapped accidentally and I…
Introduction While the usual way to add threads to a 3D printing part is to use threaded inserts, another often overlooked option is nut embedding. Inserts usually are the best option, but for onesies/twosies it can be annoying to have to buy and wait a whole bag of those to arrive, especially considering the average tinkerer most likely already has the perfectly sized nut in their collection. In…
The Software Side In Part 1/3 (intro) and Part 2/3 (hardware) , we dealt with the hardware side, and rebuilt our cute V100 into a more manageable format. Now it’s time to resuscitate this server. For that we will need to interact with the server’s firmware (LOMlite2 & Open Firmware), set up a netboot server, install a usable OS, and finally, configure some services. LOMlite2…
A Hardware Reinvention In the introduction (Part 1/3) , we outlined the four goals we have for our server. In this part, we will deal with goals 1 and 2, i.e., the hardware rework — PSU, hard drive, cooling, and creating a custom enclosure that nods to Sun’s original design. New Parts! The Shopping List Here is the shopping list to reach our goals: The original IDE hard drives are too big and…
Obsolete Tech In A Modern Age Something Old Is New Again One of my pet peeves is to bring new life into old hardware. Here, I’m not thinking in a retro‑computing kind of way. Software is not exactly like fine wine, in my opinion—it usually doesn’t age well. Also, old software tends to be isolated in its own bubble—amusing, but unless you are George R. R. Martin rocking WordStar 4.0 on…
Part 1 — Searching The Data Part 2 — Looking For The Metadata Part 3 — Dissecting The Index Part 4 — Reading Everything Part 5 — Tidying-Up The Project Tidying-Up The Project In the last part we got a first rough implementation. In this final part, we will clean up things, correct a few shortcuts we took, and create an actual project out of this. Creating Unit Tests I did this project right around…
Part 1 — Searching The Data Part 2 — Looking For The Metadata Part 3 — Dissecting The Index Part 4 — Reading Everything Part 5 — Tidying-Up The Project The Implementation In the last part, we discovered and got a fairly good idea of the metadata/IDX format. In this part, we will create a rough implementation to extract the content. Data Structures First, define C structures matching our…
Part 1 — Searching The Data Part 2 — Looking For The Metadata Part 3 — Dissecting The Index Part 4 — Reading Everything Part 5 — Tidying-Up The Project Index File Reverse Engineering In the last part, we found the location of the index and determine the general layout. Now, let’s do the detailed reverse engineering. Metadata Chunk Format The first section contains file metadata entries:…
Part 1 — Searching The Data Part 2 — Looking For The Metadata Part 3 — Dissecting The Index Part 4 — Reading Everything Part 5 — Tidying-Up The Project Searching & Reading The Metadata In Part 1, we discovered: Data lives in res_packages/ as custom .pkg archives. Each .pkg is a sequence of DEFLATE-compressed blobs separated by 64-bit IDs with zero padding. No file names inside .pkg ; names/paths…
Part 1 — Searching The Data Part 2 — Looking For The Metadata Part 3 — Dissecting The Index Part 4 — Reading Everything Part 5 — Tidying-Up The Project Introduction Firstly, a disclaimer: this is the first time I’m doing this kind of exercise, so the process described here is far from ideal, and the tools used are probably less than adequate. Also, I’m writing this after various…