Here's the thing. I started with NPN transistors because my intent is not to start with some sort of weird theoretical "see these diagrams, that's why it works" nonsense. I think one thing that is sorely missing from computer science is the hands-on part: the part where you actually touch something tangible and see it... Continue Reading →
First release video in the new series now released!
I did some minor tweaks and reshot the opening sequence. This first in a series of videos will attempt, over the next few months, illustrate the design of a basic 8-bit computer built from transistors on up. The entire series can be found on YouTube, and linked to the new Videos section of this blog.... Continue Reading →
What I’ve been doing with my time.
Okay, I confess I've left the gear cutting stuff on the back burner while I recover from a bug I picked up while in Mexico. During my spare time I've been working towards a series of videos which I hope to post on this site that discuss various topics in computer science. The goal of... Continue Reading →
Administrative: the velocity of my posts.
I love computers. I've always been fascinated by computers, by the things you can do with computers, and by making things in general: hardware, software, networks, servers, user interfaces. I also have a love of mechanical things: watches, clocks, orreries, mechanical adding machines: all the things we use and have used in the past to... Continue Reading →
The Earth-Moon Orrery: another update.
So the biggest problem, apparently, when it comes to cutting gears, is just getting all the fiddly bits together to make your gear cutting system. In my case, I'm starting with a Sherline mill, and I'm adding a CNC rotary table, a 90 degree table, and a 1 inch arbor to mount the gear cutters... Continue Reading →
User Interface Design Part 6: … and the rest.
Now that we've designed our interface by designing our visual language and defining the nouns and verbs, we've laid out the screens using that visual interface, and built some of the basic building blocks: the code to draw our interface elements and the code to manage our screen, all that is left to do is... Continue Reading →
User Interface Design Part 5: Common Code and Handling The Screen
In the last article I covered the "Model-View-Controller" code; the way we can think about building interfaces by separating our code into the "model"--the code that does stuff--from the "view"--the code that draws stuff--and the "controller"--the code that controls the behavior of your code. And we sketched the model code: the low level code which... Continue Reading →
User Interface Design Part 4: The Model-View-Controller paradigm
Thus far we've talked about designing a user interface: the visual language that tells users what they can do, the elements of the language (nouns and verbs), the way these things contribute to consistency and discoverability and how they can be used to create a user interface that seems... inevitable. Simple. Invisible. Where this attention... Continue Reading →
User Interface Design Part 3: Sketching the rest of our interface.
We have a design language of sorts. We have some simple code. We have an idea of the functions we wish to implement for our Arduino-based thermostat. Now let's use that design language and lay out the rest of our screens. Full disclosure. For any complex UI, and let's be honest: this is a bit... Continue Reading →
User Interface Design Part 2: Sketching our Interface.
Last time we discussed the theory of user interface design. The idea that user interfaces form a sort of language, complete with nouns and verbs and modifiers. That user interfaces need to be discoverable and consistent, and that parts of discoverability means defining affordances: things the user can see and think "oh, that must be... Continue Reading →