Here’s my rough lab notes from what I learned during weeks 69-73 of streaming where I did my “boot tour” and ported JOS to a variety of boot methods. JOS originally used a custom i386 BIOS bootloader. This is a classic approach for osdev: up to 512 bytes of hand written 16 bit real mode […] The post osdev journal: bootloaders and booting (grub, multiboot, limine, BIOS, EFI) appeared first on offlinemark.| offlinemark
libclang_rt/libgcc are compiler runtime support library implementations, which the compiler occasionally emits calls into instead of directly inlining the codegen. Usually this is for software implementations of math operations (division/mod). Generally you’ll need a runtime support library for all but the most trivial projects. cc-runtime is a utility library for hobby OS developers. It is […]| offlinemark
(A WIP sketch about AI, productivity, tech) At work, every so often the product teams take a break from normal work and do a ‘hack sprint’ for working on creative, innovative ideas that aren’t necessarily relevant to hot topics in the main work streams. This time, many of the designers used AI tools to generate […]| offlinemark
I’m not a pro, but here’s what I’ve learned along the way: Randomly add value to peoples’ lives that you want to keep in touch with. This looks like: These “things” can be serious, like useful tools, apps, or news — or can be silly, like memes. Simply check in once in a while. The post Tips for networking appeared first on offlinemark.| offlinemark
Underrated commands: z commands L and H — great for quickly going to the top or bottom of editor and browsing slightly offscreen Enable VSCode “Editor smooth scrolling”, or find a vim smooth scrolling plugin to make ctrl+d and ctrl+u actually functionality [[ and ]] — for quickly browsing opening brackets| offlinemark
Writing this just because I’ve never heard anyone talk about it before: Worrying about things has increasing, diminishing, and negative returns, just like anything else. The increasing returns are when a bit of worrying about something causes you to prepare for a situation or otherwise act differently in a way that benefits you. But after […] The post Diminishing returns of worrying appeared first on offlinemark.| offlinemark
I think the most important part of achieving consistency is detaching yourself from the outcome of each individual work session, whatever that might be. Here are some example ‘work sessions’ from my life: Attaching yourself to the outcome (e.g. number of views) will only set you up for failure, since inevitably one of the work […] The post How to be consistent and achieve success appeared first on offlinemark.| offlinemark
Going to a conference alone can be an intimidating experience, but it’s completely doable (I’ve done it many times). Here are my tips: Optional: Look people up ahead of time and reach out If you can, try to research ahead of time people who will be attending the conference and reach out online with a […]| offlinemark
To run custom build stages in CMake, you’ll often want what I call a “custom command/target pair”: This is an example from my CMake-rewrite of the JOS OS build system. It generates a filesystem image, using a custom host tool (fsformat). The fs image includes a number of files generated by the build process. If […] The post How to do custom commands/targets in CMake appeared first on offlinemark.| offlinemark
I’d love to simply use GNU Make for my C/C++ projects because it’s so simple to get started with. Unfortunately it’s lacking a few essential qualify of life features: Out of tree builds If you want your build to happen in an isolated build directory (as opposed to creating object files in your source tree), […]| offlinemark