This weekly debrief is for paying supporters of my work. Please only read if you’ve paid. Thanks!
→ Click here if you've paid ←
Hey everyone, I’m back for another reflection on the past few weeks. Today’s schedule is all Bedrock: we’ve got plans for a documentation system, a handheld console, and an idea for how to bring Bedrock into the computer education space.
A documentation system for Bedrock
I’ve started work on the third revision of the Bedrock specification. I’m taking a slightly different tack with this one, aiming for a middle ground between the experimental one-page specification and the verbose current specification. The current specification is just too wordy and long, in a way that makes it surprisingly impenetrable even if each sentence can be justified individually. Even when it’s just me reading it, my eyes just sort of bounce off of some of the more convoluted parts. If I, the person who wrote it, is finding it unpleasant to read, then there’s little hope that anyone else will be having a good time.
The other difference this time round is that I’m planning to eventually publish it as a physical book. I want to end up with a comprehensive set of published documentation for Bedrock, books that you can pick up and read through to understand whole aspects of the system. My plan for the documentation system is to have:
- User manual (the yellow book)
A friendly user manual that gently introduces each part of the system alongside small example programs, taking someone with minimal programming experience and teaching them how to think like a programmer and write full Bedrock programs. This book would also explain how to use the tooling (assemblers, emulators) on various platforms. Probably suitable for teenagers and up, or the occasional self-motivated eight-year old. - Advanced manual and reference (the red book)
The real deal, a user manual for people who already know how to program. This will introduce the system like an encyclopedia, ordered for easy reference rather than to gently introduce concepts. Plenty of reference tables and advanced concepts (pointers, higher-level functions, efficient patterns). If you’re writing Bedrock programs day-to-day, this will be the book you want on hand (alongside the blue book, possibly). - Specification and implementation (the blue book)
This book will be everything you need to implement a Bedrock system on any platform in existence (alongside the documentation for that platform, of course). The book will be split into two halves: the first half will be the full Bedrock specification (the ‘musts’), describing exactly how a Bedrock system operates, and the second half will be the implementation handbook (the ‘shoulds’), giving suggestions for platform-specific or implementation-defined behaviour. - The white papers (the white book)
This will be a book of essays, each essay positioning Bedrock as a useful tool across a variety of fields (education, sustainability, software preservation, portability, that sort of thing). It will answer the questions ‘why should I care about Bedrock?’ and ‘what should I use Bedrock for?’. - Defence of design (the black book)
This is the opposite to the white book, in a way. Instead of explaining where Bedrock can be used, this book will explain why Bedrock exists and why it looks the way it does. It will dive into every aspect of the system and explain why each choice was made, shedding some light on the choices that were discarded along the way. It’ll be like a thorough version of the ‘Differences from Uxn’ article.
Bedrock for education
There’s an entrepreneurship programme at the University of Auckland that encourages people to come up with new and exciting business ideas. They run an annual competition, the ‘Velocity Ideas Challenge’, where the pitch is that you submit a 1000-word business proposal in exchange for a chance to win one of 20 $1000 prizes, no strings attached. I first heard about this a couple of weeks ago, and I figured that I could probably pitch some sort of idea related to Bedrock.
It’s due mid-May, which is way too soon to do a decent job on considering how busy I am with study, so I’m planning to spend the whole year chipping away on it and then to submit next year instead. I want to do it right, because if I can win a spot then it’ll probably help with securing an interesting internship for the practicum portion of the course, and it’ll get me more involved with the business side of uni. The money will be nice to support future work on Bedrock too.
There’s a couple of constraints that I have to work within. The first and most significant is that your idea has to fit into one of a list of categories: health, sustainability, lifestyle, enterprise, education, media, biotech, transport, finance, logistics, or urban infrastructure. I want to position Bedrock as a system for computer education, teaching kids how to program. The second constraint is that it can’t just be a good idea, it has to be presented as a viable business, with a target market and competitors and all that.
bedrock-pocket
So, with all that in mind, my angle is to develop a small, cheap, versatile hand-held console for running Bedrock programs, not entirely dissimilar in size and functionality to the PlayDate. Something between $50 and $80 NZD to produce, if I’m careful with it, considering that Bedrock doesn’t need a high-end processor to run. It’s one thing to learn to write programs that run on a computer, it’s another thing to be able to hold that program in your hands and pass it around. And because it runs Bedrock programs, we can go further. It’ll be able to run an assembler, text editor, and file browser, so you’ll be able to develop programs on-device. I’m also keen for it to have a couple of USB slots for plugging in a keyboard and mouse, and maybe an HDMI port, turning it into a full workstation. Programs and files are stored on an SD card to make them easy to move between computer and console.
The pitch will be that you’ll be able to learn to program with Peak, a future Lua-like language that runs on Bedrock, and as you learn the basic concepts of programming you’ll be able to slowly work your way down the stack, using Bedrock assembler to write efficient, low-level programs, and then eventually to learn how the whole system works to be able to write a full implementation by yourself. You’ll also be able to use the system to learn hardware development; a couple of rows of GPIO pins will be under a cover on the back, allowing you to plug the console into an electronics project to blink an LED or control a robot. A row of device connectors would expose the Bedrock device bus, allowing people to build their own custom hardware devices and connect them to the system.
Where to go from here
There’s a lot of ideas in here, I’ll probably need to narrow down my focus to pitch something more specific for the competition.
I’ve considered the idea of pitching this kind of system to after-school programmes or even schools in the future, but I’m not sure how well it’ll fare against current approaches. Reading through the New Zealand secondary school curriculum, the focus is on learning Python and C++ and the likes, since these are languages that are used in industry. There’s also a heavy emphasis on algorithms and data structures, rather than on more project-based assessments like game development or the likes.
I think this system would probably be best pitched towards individuals. I’m imagining a family buying one of these consoles bundled with a ‘learn to program’ book, and giving it to a kid who’s interested in learning programming or game development for a birthday or some such. From there, if I can find a modicum of success, it’d probably then be easier to pitch to an after-school programme, and if that becomes a success then to schools directly.
These thoughts are all very big and grand though, it’s more of a ‘what could be’ than a concrete plan. It’s fun to think about, but it probably wouldn’t be worth pursuing for the effort it would take.
I have to study as well
University continues to go well, as far as my real course work is concerned. Most of my time is taken up with group projects, which is a bit of a pain, but I’m still able to find patches of time to work towards my goals for Bedrock. The second half of the semester starts next week, which will perplexingly lead to me having a bit more free time than I’ve had during the break.
Thanks
I really do want to find the time to finish some of this work-in-progress stuff (documentation, public library) so that I can share it and continue the momentum of the Bedrock project. It just takes a bit of time. Thank you for your continued support of my work, it means the world to me. Until next time!