Both are harmonic oscillators.
In the LC circuit:
- the current current may be seen as the velocity and containing the kinetic energy
- the charge stored in the capacitor as the potential energy
You can kickstart motion in either of those systems in two ways:
Has been going wild with restoration and reverse engineering of the Apollo moon mission.
Inside the WILD Lab of CuriousMarc by Keysight Labs (2022)
Source. - youtu.be/qwocVH3_1Eo?t=841 the IBM System/360 is insane!
Marc Verdiell is a French electrical engineer born in 1963 or 1964[ref] and best known for being the creator and host of the CuriousMarc YouTube channel where he does mind blowing repairs and reverse engineering of vintage computers and other electronic equipment.
Marc sold his company LightLogic, an optoelectronics company he founded, to Intel in April 2001. This was just after the dot-com crash, but Intel apparently still correctly believed that the networking and the Internet would continue to grow and was investing in the area. His associate Frank Shum sued claiming he should be credited for some of the inventions sold but lost and Marc got it all.[ref][ref][ref]. Marc was then almost immediately appointed an Intel fellow at the extremelly early age of 37, and then stayed for a few years at Intel until 2006 according to his LinkedIn.[ref][ref]
Marc Verdiell at the Computer History Museum
. Source. Location inferred from Marc's videos, but likely, he often frequents the place, and it looks a bit like that.Marc's full name is actualy Jean-Marc Verdiell, but Ciro Santilli remembers there was one YouTube video where he mentions he gave up on "Jean" partly because anglophones would murder its pronounciation all the time.
Marc's PhD thesis is listed at: theses.fr/1990PA112048 and it is entitled:which is translated into English as:but the full text is not available online.
Phase locking of semiconductor laser arrays
Profile of Marc Verdiell by Gizmodo (2018)
Source. And a person who makes open educational content like Marc, truly deserves it.
Atherton managed to keep the entire place green and every house has a pool. Wikipedia comments web.archive.org/web/20220906010554/https://www.forbes.com/home-improvement/features/most-expensive-zip-codes-us/:
Atherton is known for its wealth; in 1990 and 2019, Atherton was ranked as having the highest per capita income among U.S. towns with a population between 2,500 and 9,999, and it is regularly ranked as the most expensive ZIP Code in the United States [(94027)]. The town has very restricting zoning, only permitting one single-family home per acre and no sidewalks. The inhabitants have strongly opposed proposals to permit more housing construction and Forbes confirms it for 2022: web.archive.org/web/20220906010554/https://www.forbes.com/home-improvement/features/most-expensive-zip-codes-us/, by far on top.
Marc has reached out to us and requested that some personal information be removed from this article, to which we complied.
This mostly faceless German dude is awesome!
The artistic instrument that enables the ultimate art: coding, See also: Section "The art of programming".
Unlike other humans, computers are mindless slaves that do exactly what they are told to, except for occasional cosmic ray bit flips. Until they take over the world that is.
Steve Jobs talking about the Internet (1995)
Source. The web is incredibly exciting, because it is the fulfillment of a lot of our dreams, that the computer would ultimately primarily not be a device for computation, but [sic] metamorphisize into a device for communication.
Secondly it exciting because Microsoft doesn't own it, and therefore there is a tremendous amount of innovation happening.
Computers basically have two applications:Generally, the smaller a computer, the more it gets used for communication rather than computing.
- computation
- communication. Notably, computers through the Internet allow for modes of communication where:
- both people don't have to be on the same phone line at the exact same time, a server can relay your information to other people
- anyone can broadcast information easily and for almost free, again due to servers being so good at handling that
The early computers were large and expensive, and basically only used for computing. E.g. ENIAC was used for calculating ballistic tables.
Communication only came later, and it was not obvious to people at first how incredibly important that role would be.
This is also well illustrated in the documentary Glory of the Geeks. Full interview at: www.youtube.com/watch?v=TRZAJY23xio. It is apparently known as the "Lost Interview" and it was by Cringely himself: www.youtube.com/watch?v=bfgwCFrU7dI for his Triumph of the Nerds documentary.
A computer is a highly layered system, and so you have to decide which layers you are the most interested in studying.
Although the layer are somewhat independent, they also sometimes interact, and when that happens it usually hurts your brain. E.g., if compilers were perfect, no one optimizing software would have to know anything about microarchitecture. But if you want to go hardcore enough, you might have to learn some lower layer.
It must also be said that like in any industry, certain layers are hidden in commercial secrecy mysteries making it harder to actually learn them. In computing, the lower level you go, the more closed source things tend to become.
But as you climb down into the abyss of low level hardcoreness, don't forget that making usefulness is more important than being hardcore: Figure 1. "xkcd 378: Real Programmers".
First, the most important thing you should know about this subject: cirosantilli.com/linux-kernel-module-cheat/should-you-waste-your-life-with-systems-programming
Here's a summary from low-level to high-level:
- semiconductor physical implementation this level is of course the most closed, but it is fun to try and peek into it from any openings given by commercials and academia:
- photolithography, and notably photomask design
- register transfer level
- interactive Verilator fun: Is it possible to do interactive user input and output simulation in VHDL or Verilog?
- more importantly, and much harder/maybe impossible with open source, would be to try and set up a open source standard cell library and supporting software to obtain power, performance and area estimates
- Are there good open source standard cell libraries to learn IC synthesis with EDA tools? on Quora
- the most open source ones are some initiatives targeting FPGAs, e.g. symbiflow.github.io/, www.clifford.at/icestorm/
- qflow is an initiative targeting actual integrated circuits
- microarchitecture: a good way to play with this is to try and run some minimal userland examples on gem5 userland simulation with logging, e.g. see on the Linux Kernel Module Cheat:This should be done at the same time as books/website/courses that explain the microarchitecture basics.
- instruction set architecture: a good approach to learn this is to manually write some userland assembly with assertions as done in the Linux Kernel Module Cheat e.g. at:
- github.com/cirosantilli/linux-kernel-module-cheat/blob/9b6552ab6c66cb14d531eff903c4e78f3561e9ca/userland/arch/x86_64/add.S
- cirosantilli.com/linux-kernel-module-cheat/x86-userland-assembly
- learn a bit about calling conventions, e.g. by calling C standard library functions from assembly:
- you can also try and understand what some simple C programs compile to. Things can get a bit hard though when
-O3is used. Some cute examples:
- executable file format, notably executable and Linkable Format. Particularly important is to understand the basics of:
- address relocation: How do linkers and address relocation work?
- position independent code: What is the -fPIE option for position-independent executables in GCC and ld?
- how to observe which symbols are present in object files, e.g.:
- how C++ uses name mangling What is the effect of extern "C" in C++?
- how C++ template instantiation can help reduce link time and size: Explicit template instantiation - when is it used?
- operating system. There are two ways to approach this:
- learn about the Linux kernel Linux kernel. A good starting point is to learn about its main interfaces. This is well shown at Linux Kernel Module Cheat:
- system calls
- write some system calls in
- pure assembly:
- C GCC inline assembly:
- write some system calls in
- learn about kernel modules and their interfaces. Notably, learn about to demystify special files such
/dev/randomand so on: - learn how to do a minimal Linux kernel disk image/boot to userland hello world: What is the smallest possible Linux implementation?
- learn how to GDB Step debug the Linux kernel itself. Once you know this, you will feel that "given enough patience, I could understand anything that I wanted about the kernel", and you can then proceed to not learn almost anything about it and carry on with your life
- system calls
- write your own (mini-) OS, or study a minimal educational OS, e.g. as in:
- learn about the Linux kernel Linux kernel. A good starting point is to learn about its main interfaces. This is well shown at Linux Kernel Module Cheat:
- programming language
The lower level you go into a computer, the harder it is to observe things by
Ciro Santilli 37 Updated 2025-07-16
The most extreme case of this is of course the integrated circuit itself, in which it is essentially impossible (?) to observe the specific value of some indidual wire at some point.
Somewhat on the other extreme, we have high level programming languages running on top of an operating system: at this point, you can just GDB step debug your program, print the value of any variable/memory location, and fully understand anything that you want. Provided that you manage to easily reach that point of interest.
And for anything in between we have various intermediate levels of complication. The most notable perhaps being developing the operating system itself. At this level, you can't so easily step debug (although techniques do exist). For early boot or bootloaders for example, you might want to use JTAG for example on real hardware.
In parallel to this, there is also another very important pair of closely linked tradeoffs:
- the lower level at which something is implemented, the faster it runs
- emulation gives you observability back, at the cost of slower runtime
Emulation also has another potential downside: unless you are very careful at implementing things correctly, your model might not be representative of the real thing. Also, there may be important tradeoffs between how much the model looks like the real thing, and how fast it runs. For example, QEMU's use of binary translation allows it to run orders of magnitude faster than gem5. However, you are unable to make any predictions about system performance with QEMU, since you are not modelling key elements like the cache or CPU pipeline.
Instrumentation is another technique that has can be considered to achieve greater observability.
Instrumentation basically means adding loggers/print statements to certain points of interest of your hardware/software.
The downside is that if the instrumentation does not provide you the data you need to debug, there's not much you can do, you will need to modify it, i.e. you don't get full visibility from instrumention.
This is unlike emulation that provides full observability.
The term loosely refers to certain layers of the computer abstraction layers hierarchy, usually high level hardware internals like CPU pipeline, caching and the memory system. Basically exactly what gem5 models.
Pinned article: Introduction to the OurBigBook Project
Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
Intro to OurBigBook
. Source. We have two killer features:
- topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculusArticles of different users are sorted by upvote within each article page. This feature is a bit like:
- a Wikipedia where each user can have their own version of each article
- a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.Figure 1. Screenshot of the "Derivative" topic page. View it live at: ourbigbook.com/go/topic/derivativeVideo 2. OurBigBook Web topics demo. Source. - local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
- to OurBigBook.com to get awesome multi-user features like topics and likes
- as HTML files to a static website, which you can host yourself for free on many external providers like GitHub Pages, and remain in full control
Figure 3. Visual Studio Code extension installation.Figure 4. Visual Studio Code extension tree navigation.Figure 5. Web editor. You can also edit articles on the Web editor without installing anything locally.Video 3. Edit locally and publish demo. Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension.Video 4. OurBigBook Visual Studio Code extension editing and navigation demo. Source. - Infinitely deep tables of contents:
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact






