Introduction Post Show more
Hi, I'm Brian. I hack on software and hardware.
I've been writing operating systems for a living for 20-odd years now: BeOS @ Be, HiptopOS @ Danger, Android @ Android, then Google, Fuchsia/Zircon at Google, LK here and there. Various toy and experimental systems from time to time.
I grew up with the C64 in the early 80s and worry a lot about modern platforms being too closed and restrictive.
I am a fan of sci-fi and fantasy written, televised, animated, and gamed.
Dear everyone who is considering making a video of yourself talking rather than just writing the *exact same words* into a text file, a blog post or a PDF:
Unless you're specifically targeting people who literally cannot read...
Sincerely, A Person Who Doesn't Have Literal Free Hours To Hear You Slooooowly Say Something It Would Take Me Five Seconds To Read And Also I Can Ctrl-F It
You'd need to define that interface (I'm not aware of a generalized VM interface suitable for this), but if you think about what services libc generally needs (files, sockets, time, waiting on one or more of the aforementioned, etc) there aren't actually all that many and the surface area can be pretty constrained.
Once you have the concept of a handle you can read/write/close/waitfor and the ability to request a handle from a handle (connect), you're most of the way there.
i feel the same way about whimsical release notes that tell me nothing ("so many fixes! booya! get yr groove on daddy-o!") as i do about corporations trying to perform april fool's jokes.
save it for improv. tell me exactly what changed and why i want this update. assume i'm frowning at you, arms folded
"But with sufficient power, with carefully chosen words, a god can do anything it is possible to do. How can a god be a god with no language? And if language is a thing humans had to teach to gods—my experience suggests this was the case—how did those other gods I saw so long ago do anything? I do not know. I can only assure you that my account of my history is true. "
I am really enjoying the relationship between gods, language, and truth in Leckie's The Raven Tower:
"A god’s words are inescapably true, and gods make things happen by speaking them—so long as a god has sufficient power, of course. To say something beyond one’s power to enforce can wound a god badly, can take decades or centuries or even millennia to recover from. To speak an utter impossibility—there are such, I assure you—is to drain one’s own power endlessly, to no purpose."
Full Sequel to Hollow Knight! OMG.
I wonder why Rust feels the need to have Enum be both something that acts like an enum and something that acts like a union. Maximizing confusion?
Similarly why "Trait" instead of "Interface"?
Is there some place where these words have the meaning they do in Rust that I'm not aware of or do Rust people just like confusing terminology?
@robey Hey, have you designed any 8x8 or 16x16 bitmap fonts? I'm shopping for a font for my retro-computer/console FPGA hackery project....
The iCEBreaker FPGA Crowd Supply campaign is live! Its hard to believe that this journey started 11 months ago with @oe1cxw at 34C3 and took 5 hardware revisions! But its finally here. I hope you will help us get it to the finish line and into your hands! https://www.crowdsupply.com/1bitsquared/icebreaker-fpga
So the fun thing about scratch-built hobby CPUs on experimental foss toolchains -- you can't trust anything! Did you break the assembler? The HDL? Is your disassembler actually lying to you? Is there a toolchain bug in synthesis or place-and-route?
No, turns out I'm an idiot and in my test program I was trying to write the address of video ram into a character constant instead of the other way 'around.
I've made a mock-up to illustrate my ideas about the next-gen terminal experience!
• the pathbar
• username, hostname and git branch displayed in the UI, shrinking the shell prompt back to just a $
• commands as cards
• syntax highlighting, including graying out the output a bit to differentiate it from commands themselves
• autocompletion (displayed in a native widget)
• built-in error handling options
• the time each command took (on the right)