Isothermal DNA amplification techniques Updated 2025-07-16
Isothermal means "at fixed temperature".
This is to contrast with the more well established polymerase chain reaction, which requires heating and cooling the sample several times.
Italy Updated 2025-07-16
Arago spot Updated 2025-07-16
Cantor's diagonal argument Updated 2025-07-16
Ciro Santilli's hardware 2019-12 Bikehut bicycle repair stand Updated 2025-07-16
Maybe I'm an idiot and should have bought a much smaller rear wheel stand, only thought of that later, e.g.: www.amazon.co.uk/dp/B00G7ZO3GE or www.amazon.co.uk/dp/B00SD7NL44
Rope attached to rear rack + door knob: www.youtube.com/watch?v=teUsJt1WL1g
It is hard to do something useful with a devboard Updated 2025-07-27
In the 2010's/2020's, many people got excited about getting children in to electronics with cheap devboards, notably with Raspberry Pi and Arduino.
While there is some potential in that, Ciro Santilli always felt that this is very difficult to do, while also keeping his sacred principle of backward design in mind.
The reason for this is that "everyone" already has much more powerful computers at hand: their laptops/desktops and even mobile phones as of the 2020s. Except perhaps if you are thing specifically about poor countries.
Therefore, the advantage using such devboards for doing something that could useful must come from either:
- their low cost. This would be an important consideration if you were to mass produce your product, but that is not going to be the case for learners, at least initially.
- their portability, and closely linked their ability to act as sensors
- their ability to act as actuators, which is often missing from regular computers
- them having hardware accelerators that are not normally present in regular computers, e.g. FPGAs or AI accelerators. And then the demo project must demonstrate that the project is able to do something significantly faster/cheaper on the devboard than on a desktop computer.
It is OK to treat things as black boxes Updated 2025-07-16
And most important of all: you should not start learning phenomena by reading the from first principles derivation.
Instead, you should see what happens in experiments, and how matches some known formula (which hopefully has been derived from first principles).
Only open the boxes (understand from first principles derivation) if the need is felt!
E.g.:
- you don't need to understand everything about why SQUID devices have their specific I-V curve curve. You have to first of all learn what the I-V curve would be in an experiment!
- you don't need to understand the fine details of how cavity magnetrons work. What you need to understand first is what kind of microwave you get from what kind of input (DC current), and how that compares to other sources of microwaves
- lasers: same
Physics is all about predicting the future. If you can predict the future with an end result, that's already predicting the future, and valid.
It must be easy to change your area of study Updated 2025-07-16
This is a pre-requisite of Section "Students must have a flexible choice of what to learn".
If the choice of what to learn depend on a years long dependency graph of other obligations, which currently are the increasingly interlinked:you end up without much choice at all.
- passing the University entry exam
- getting your undergrad degree
- getting your PhD
The lock-in periods must be much more fluid and shorter term than those, otherwise it makes the almost inevitable pivots to success impossible.
This is something that Ciro Santilli has heard from several people at the end of their undergrad/PhD degrees. Some online mentions:
Jacquard machine Updated 2025-07-16
Ciro Santilli's hardware Computer accessories Updated 2025-07-26
Java (programming language) Updated 2025-07-16
Java is good.
Its boilerplate requirement is a pain, but the design is otherwise very clean.
But its ecosystem sucks.
The development process is rather closed, the issue tracker obscure.
And above all, Google LLC v. Oracle America, Inc. killed everybody's trust in it once and for all. Thanks Oracle.
JavaScript Updated 2025-07-16
The language all browsers converted to as of 2019, and therefore the easiest one to distribute and most widely implemented programming language.
Hopefully will be killed by WebAssembly one day.
Because JavaScript is a relatively crap/ad-hoc language, it ended up some decent tooling to make up for that, e.g. stuff like linting via ESLint and reformatting through Prettier is much more widespread than in other languages.
JavaScript data structure are also quite a bit anemic, which makes libraries such as lodash incredibly popular. But most of that stuff should be in the stdlib.
Our JavaScript examples can be found at:
- Node.js example: examples that don't interact with any browser feature. We are just testing those on the CLI which is much more convenient.
- JavaScript browser example: examples that interact with browser-specific features, notably the DOM
Ciro Santilli's hardware Laptop Updated 2025-07-16
Quadratic form Updated 2025-07-16
Multivariate polynomial where each term has degree 2, e.g.:is a quadratic form because each term has degree 2:but e.g.:is not because the term has degree 3.
There is a 1-to-1 relationship between quadratic forms and symmetric bilinear forms. In matrix representation, this can be written as:where contains each of the variabes of the form, e.g. for 2 variables:
Strictly speaking, the associated bilinear form would not need to be a symmetric bilinear form, at least for the real numbers or complex numbers which are commutative. E.g.:But that same matrix could also be written in symmetric form as:so why not I guess, its simpler/more restricted.
JavaScript browser example Updated 2025-07-16
- js/confirm-close.html: stackoverflow.com/questions/7317273/warn-user-before-leaving-web-page-with-unsaved-changes
- web-cheat/js-image-load.html: load an image from JavaScript dynamically: stackoverflow.com/questions/226847/what-is-the-best-javascript-code-to-create-an-img-element
- web-cheat/js-image-load-viewport.html: load an image from JavaScript dynamically when it would become visible on the viewport: stackoverflow.com/questions/2321907/how-do-you-make-images-load-only-when-they-are-in-the-viewport
- html/img-load-lazy.html: stackoverflow.com/questions/2321907/how-do-you-make-images-load-lazily-only-when-they-are-in-the-viewport/57389607#57389607
- web-cheat/esm.html: ESM modules
- js/keydown.html: stackoverflow.com/questions/16006583/capturing-ctrlz-key-combination-in-javascript
External libraries
- Text editors
- Interactive HTML table sorting
Jazz fusion band Updated 2025-07-16
JCVI-syn3A Updated 2025-07-16
Based on JCVI-syn3.0, they've added a few genes back to give better phenotypes, including slightly faster duplication time. Because the development cycle time is your God is also true in biology.
As of essential metabolism for a minimal cell (2019) it had only 91 genes of unknown function! So funny.
Bibliograpy:
JCVI-syn3A during cell division by David Goodsell (2022)
Source. A description is present at: cdn.rcsb.org/pdb101/goodsell/2022_JCVI-syn3A.pdf Integrative Illustration of a JCVI-syn3A Minimal Cell by David Goodsell (2022) which describes everything in the picture. Ciro Santilli's hardware Lenovo ThinkPad P51 (2017) log Updated 2025-07-16
- battery life:
- 2023-04: on-browser streaming + light browsing on Ubuntu 22.10: about 2h45. Too low! Gotta try buying a new battery.
- 2022-01-04 updated firmward after noticing that ubuntu 21.10 does not wake up from suspend seemed to happen every time when not connected to external power.
dmidecodediff excerpt:used the "Ubuntu Software" GUI as mentioned at: support.lenovo.com/gb/en/solutions/ht510810-how-to-do-software-updates-linux. Kudos for making this accessible to newbs.BIOS Information Vendor: LENOVO - Version: N1UET40W (1.14 ) - Release Date: 09/28/2017 + Version: N1UET71W (1.45 ) + Release Date: 07/18/2018After doing that, another update became available to: 0.1.56, clicked it and was much faster than the previous one, and didn't auto reboot. After manual reboot,dmidecodediffed again:plus a bunch of other lines.BIOS Information Vendor: LENOVO - Version: N1UET71W (1.45 ) - Release Date: 07/18/2018 + Version: N1UET82W (1.56 ) + Release Date: 08/12/2021 - 2021-06-05 upgraded to Ubuntu 21.04 with a clean install from an ISO. SelectedAfter this, the GUI felt fast, who would have thought that erasing a bunch of stuff would make the system faster!
- "Minimal installation"
- "Erase disk and install Ubuntu". Notably, this erased the Microsoft Windows that came with the computer and was never used not even once
- "Erase disk ans use ZFS"
- Encrypt the new Ubuntu installation for security
lsblkcontains:andzd0 230:0 0 500M 0 disk └─keystore-rpool 253:0 0 484M 0 crypt /run/keystore/rpool nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 512M 0 part /boot/efi ├─nvme0n1p2 259:2 0 2G 0 part │ └─cryptoswap 253:1 0 2G 0 crypt ├─nvme0n1p3 259:3 0 2G 0 part └─nvme0n1p4 259:4 0 472.4G 0 partlsblk -f:zd0 crypto_LUKS 2 └─keystore-rpool ext4 1.0 keystore-rpool nvme0n1 ├─nvme0n1p1 vfat FAT32 ├─nvme0n1p2 crypto_LUKS 2 │ └─cryptoswap ├─nvme0n1p3 zfs_member 5000 bpool └─nvme0n1p4 zfs_member 5000 rpooThen:contains:grep '[rb]pool' /proc/mountswhich gives an idea of how the above map to mountpoints.rpool/ROOT/ubuntu_uvs1fq / zfs rw,relatime,xattr,posixacl 0 0 rpool/USERDATA/ciro_czngbg /home/ciro zfs rw,relatime,xattr,posixacl 0 0 rpool/USERDATA/root_czngbg /root zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/srv /srv zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/usr/local /usr/local zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/games /var/games zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/log /var/log zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/lib /var/lib zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/mail /var/mail zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/snap /var/snap zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/www /var/www zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/spool /var/spool zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/lib/AccountsService /var/lib/AccountsService zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/lib/NetworkManager /var/lib/NetworkManager zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/lib/apt /var/lib/apt zfs rw,relatime,xattr,posixacl 0 0 rpool/ROOT/ubuntu_uvs1fq/var/lib/dpkg /var/lib/dpkg zfs rw,relatime,xattr,posixacl 0 0 bpool/BOOT/ubuntu_uvs1fq /boot zfs rw,nodev,relatime,xattr,posixacl 0 0
2020-06-06: dropped some lemon juice on the bottom left of touchpad. Bottom left button not working anymore... I'm an idiot. There are many other alternatives, but very aggravating, I'll replace it for sure. Can't find the exact replacement part or any videos showing its replacement online easliy, dang. For the T430: www.youtube.com/watch?v=F3lzV9uXRjU Asked at: forums.lenovo.com/t5/ThinkPad-P-and-W-Series-Mobile-Workstations/P51-left-bottom-button-below-trackpad-mouse-left-click-stopped-working-possible-to-replace/m-p/5019903 Also I could not access it because you need to remove the HDD first: www.youtube.com/watch?v=5Klawxc7T_Y and I can't pull it out even with considerable force, unlike in the video... And OMG, those button caps are impossible to re-install once removed!!! Then when I put the whole thing back together, the upper buttons were not working anymore. FUUUUUUUUCK. When first opening I pulled on it without properly removing the cap and it came off, but it didn't look broken in any way and I put it back in. Keyboard works thank God, so right black connector is fine, left white one oppears to be the one for upper keys and trackpoint, both of which stopped working. The hardware manual confirms that they are both part of the same device, so basically a mouse :-) TODO can it be bought separately from te keyboard? Doesn't look like it, photo of keyboard part includes those buttons. The manual also confirms that the bottom buttons are one device with the trackpad "trackpad with buttons", thus forming the second entire mouse.
2019-04-17: popup asking about "ThinkPad P51 Management Engine Update" from from 182.29.3287 to 184.60.3561, said yes.
- partition setup: askubuntu.com/questions/343268/how-to-use-manual-partitioning-during-installation/976430#976430
- BIOS:
- for NVIDIA driver:
- for KVM, required by Android Emulator: enable virtualization extensions
- TODO fix the brightness keys:
JCVI-syn3B Updated 2025-07-16
www.biorxiv.org/content/10.1101/2022.09.19.508583v1.fullIt is also interesting to see how they are interested in co-culture with HeLa cells, presumably to enable infectious bacterial disease studies.
CVI-syn3B strains differ from JCVI-syn3.0 by the presence of 19 additional non-essential genes that result in a more easily manipulated cell. JCVI-syn3B additionally includes a dual loxP landing pad that enables easy Cre recombinase mediated insertion of genes
At biology.indiana.edu/news-events/news/2023/lennon-minimal-cells.html (2023) they let it re-evove to it it would regain some fitness, and it did.
Eigendecomposition of a real symmetric matrix Updated 2025-07-16
The general result from eigendecomposition of a matrix:becomes:where is an orthogonal matrix, and therefore has .
There are unlisted articles, also show them or only show them.

