4 ms·
Ask HN: What is something you want to build from scratch?
I've often heard that the best way to learn how something really works is to try to build your own version of it from scratch. I think the basis of this idea is that having to re-derive relevant abstractions and then implement them on your own requires/engenders a much deeper, intimate understanding of the concepts involved.
As someone who loves learning and wants to improve my knowledge of computer science and programming (among other things), I often ask myself what things I'd like to build from scratch, given the time and energy. Right now this includes a compiler and an OS.
So, HN, I ask you, what thing(s) do you have a burning desire to build from scratch?
- leeuw01 6y agoA model checker for timed-automata. I'm currently working my way through "Timed Automata: Semantics, Algorithms and Tools" and I'm going to implement the shown algorithms.
- didizaja 6y agoVery neat, I'd never heard of timed-automata before. I read a bit about it after seeing this comment and can definitely see the appeal in such a project. I'm fascinated by how timed-automata can be used as models for real-time systems, and how presumably, a model checker used in that context would allow one to verify their behavior. It seems like a very neat connection between CS theory and real-world systems.
- philipswood 6y agoGiven time and a freedom from financial concerns, a full stack from FPGA upwards. (something like Project Oberon) Maybe a relay-based CPU. An alternative high-CPU count, low individual CPU-capability, multi-cpu system on a single chip, each with small amount of memory with "network-on-chip" interconnects.
- didizaja 6y agoAll of these project ideas sound quite interesting and challenging! I think that a nontrivial number of people would especially resonate with your first project idea, as it is truly a "bottom up" kind of effort that would probably enhance ones understanding of lots of computing-related things (also, thanks for introducing me to Project Oberon!). I'm also interested in the alternative multi-CPU system on a single chip you mentioned. I have no real experience with chip development, but it sounds like a very cool idea! Do you have previous experience with chip development, or would this be your first foray into that area?
- philipswood 6y agoNo experience, but I think this is more reachable than it was years ago (at least in prototype form). I haven't done a recent survey and there might be better options now, but... I'd start with basic FPGA development with a hobbyist board (an Alchitry or Arduino Vidor or somesuch), learn a hardware description language, play a bit and then look as some open source CPU designs. There are a few open source designs with very low LUT (lookup table) counts, I'd probably start looking at those. What I have in mind is something super-simple, just enough to be able to implement a single object or function. I'm aiming at mapping a high-level language almost directly to gates. I don't have much of a plan for the interconnects yet, but I'm sure there should be some simple scheme I could start with. I'm not sure about actually getting to an ASIC chip, I'd probably just end up going for the biggest FPGAs I could afford or finding ways to interconnect a few smaller ones.
- didizaja 6y agoI'd agree with you about it being more reachable. Slightly related, but after I read your initial comment, I actually found this blog [0] by a guy at CMU who is manufacturing his own ICs at home. I'm definitely not super knowledgeable of the hardware space, but from what little I know, your current plan sounds reasonable and well-scoped! I wish you the best of luck with undertaking this project if you decide to go forward with it. [0]: http://sam.zeloof.xyz/ http://sam.zeloof.xyz/
- haltingproblem 6y agoEnigma like crypto machine using rotary ciphers. Perhaps a Hagelin or Transvertex hc9 or a m209. https://www.cryptomuseum.com/crypto/index.htm https://www.cryptomuseum.com/crypto/index.htm
- didizaja 6y agoAh, a rotary cipher! I'm currently taking a cryptography class, but so far we haven't talked much about WWII-era rotary ciphers. When I first read the name "Hagelin", I thought it sounded familiar, but couldn't recall where I'd seen it. Then I realized Hagelin was also called Crypto AG, which generated a lot of discussion on this [0] thread awhile back. From what I can see looking at the m209 diagram here [1], I imagine it wouldn't be too hard to find modern equivalents of these parts. Would you try to replicate the "body" of the rotary cipher as well, or just the primary functional components? [0]: https://news.ycombinator.com/item?id=22297963 https://news.ycombinator.com/item?id=22297963 [1]: https://www.cryptomuseum.com/crypto/hagelin/m209/index.htm https://www.cryptomuseum.com/crypto/hagelin/m209/index.htm
- haltingproblem 6y agoWell just the body of the rotary cipher would be an awesome start but the whole thing would put me over the moon. You are giving me evil ideas :) NYC had the KGB museum where they had the Fialka, soviet cipher machine. But the museum shutdown and they auctioned off the contents :(
- tocs3 6y agoA mechanical Conway's Game of Life.
- didizaja 6y agoThat sounds like it'd be quite the task (and fun!) to implement. I'm wondering how the neighbor-detection aspect of things would be implemented mechanically.