5 ms·
A few thoughts while reading this: In addition to a deeper understanding of engine manufacturing considerations than I even knew I cared to learn, this article
by alanbernstein 5y ago
A few thoughts while reading this:
In addition to a deeper understanding of engine manufacturing considerations than I even knew I cared to learn, this article helps me appreciate why people are into engine work.
The perfect tolerances and synchronization of these machines makes me a little ashamed to use the word "engineer" in my title of "software engineer". There is no real comparison of the quality of the result.
And then I skimmed the source, and it makes me think the author deserves that title. It also validates my belief in vanilla javascript.
edit: And later it occurs to me that Mr. Ciechanowski is a true craftsman of software; handmade and built to 1) Be beautiful (and informative), 2) last for years. (The open web standards are the ones that seem to stick around the longest, for better or for worse. (I'm ignorant of the shader world though))
- H8crilA 5y agoExcuse me, but modern CPUs are way more complicated than this, even if you only look at "arranging events in time". Like several orders of magnitude more complicated. Anyone who has touched VHDL/Verilog knows how delicate signal propagation is, and how crafty you have to be with the clock. And even if you never tinkered with transistors surely you've at least looked at assembly code, and the amount of painstakingly detailed data layout orchestration that is going on there. A simple printf("hello world") is magical if you know what happens under the hood.
- 1cvmask 5y agoI doubt most of the readers here on HN ever wrote anything in assembly. It is like comical interaction of Marc Andreesen and Mark Zuckerberg and how Zuckerberg had no idea on the Netscape browser (let alone Mosaic or Gophers). https://www.businessinsider.com/when-mark-zuckerberg-met-marc-andreessen-he-didnt-know-what-netscape-did-2012-4 https://www.businessinsider.com/when-mark-zuckerberg-met-mar... https://en.wikipedia.org/wiki/Gopher_(protocol) https://en.wikipedia.org/wiki/Gopher_(protocol)
- alanbernstein 5y agoWell, Electrical and Computer Engineering is an extremely precise discipline, and while the line between hardware and software can be fuzzy in many cases, web software is an entirely different world from VLSI design, and even from instruction set design. And of course, some software, at all abstraction levels, is extremely well engineered as well. But it doesn't seem to be the norm. Most importantly, I'm talking about my own ability more than the best in the field.
- Valakas 5y agoIt's easy to dismiss the difficulty of something when all you see is a webpage explaining things very well and simply with some cool graphics. That webpage looks really cool, but this is just a front page of the result. The backend of all the math, equations and thoughts involved wouldn't be so visually appealing. This is just the pretty part result. If you would delve into the actual math and physics that was required for this I'm pretty sure you'd reconsider that statement. Just the study of vibrations alone is probably as difficulty as whatever you're talking about. And that's just one of several areas of study that needs to be considered when making a machine like this. Then you need static mechanics, dynamic mechanics, thermodynamics, fluid mechanics, knowledge of manufacturing processes, materials, among others. And each of these topics is HUGE in itself. You probably have no idea because you're a software engineer? It's easy to defend our own realm and dismiss others, when we know little about others' or all we know is based on some cool animations we saw on the web once.
- deleted 5y ago[deleted]
- jason0597 5y agoThe vast majority of people on this site have never written a line of C or Assembly in the past 12 months
- cblconfederate 5y agoMost people who write software do not know/care how circuits work, as they shouldn't. Car engineers similarly don't need to know how bridges are built.
- TrackerFF 5y agoCorrect, but it can be a fun exercise, if for nothing else than the curiosity alone. Learning basic circuit theory leads you to diodes, which then leads to transistors, which then leads to op-amps, logic gates, etc. which leads to computational logic units like the ALU, etc. Before you know it, you have a very, very basic computer going on. Either way, it's the core process of engineering - applying theory, and breaking up complex parts into more manageable chunks. Same goes for the car engine - it's a complex piece of machinery, but still a sum of its parts.
- ehnto 5y agoI have had the same thought, software can often feel messy and unpolished. But to be fair to ourselves, we simply don't require the same tolerances in most software.
- worewood 5y ago> makes me a little ashamed to use the word "engineer" in my title of "software engineer". There is no real comparison of the quality of the result. I think that's because the barrier to entry is too low and anybody is being called a "software engineer" these days. But think about a system which makes proper use of synchronization primitives, like an OS kernel or a robotic control, or a CPU design like the other guy commented too, or maybe a 3D game with tricks like that of John Carmack. Those things can be as complex as an ICU engine. To make an analogy: in the physical world there are the engineers, and the mechanics. In the software world everybody is a software engineer.
- kortilla 5y ago> Those things can be as complex as an ICU engine. From a complexity perspective an ICU isn’t nearly as complex as even something as simple is a script scraping a webpages for links and queuing them up for further crawling. I’m not sure if “complex” is the word you are going for but even the TCP state machine has significantly more complexity than an ICU and that’s just a fragment of what it takes to transmit some data. The composability and abstractions we have in this industry allows you to quickly dwarf any regular mechanical system. There is a reason this is a whole new era beyond the industrial revolution.
- d110af5ccf 5y agoQuantifying complexity really depends on the level of abstraction though. Scraping a static webpage is simple when examined at the level of abstraction involving Python and ready made packages. An ICE is similarly simple when examined from the perspective of basic mechanics, as in the article under discussion. As you note, scraping that static webpage is no longer simple when you include as part of your assessment the TCP state machine, kernel interface, NIC firmware, and similar layers that had previously been abstracted away. Neither is the ICE though once metallurgy, machining, oil chemistry, and the physics of combustion are included. Granted, pursued to the logical extreme software eventually drags in everything the ICE did and more due to the physical hardware. But then modern engines are controlled by computers ...
- porknubbins 5y agoAchievements in other disciplines can often look like magic (and some are but it usually takes experts to tell which). I think fundamentally engines are engineered like software- by solving one problem at a time. And after having gotten a distributed consensus algorithm to work with a perfect dance of elections and voting etc I feel like there is magic in software too.