2019-12-26: applied Ronseal mould killer on external north east living room walls, had widespread light brown mould spots, and more localized black mould spots. The water insulation here is bad, possibly due to being on the last floor. Also applied next to window sills on those walls.
Bought: November 2023 during Black Friday sale for £1,323.00 to be Ciro Santilli's main personal laptop.
Six years after, and we are 2x on every key spec (except processor Hz ;-) at about 1/2 the price and 1/2 the weight (though smaller 14" screen for greater portability), so not bad! Customized to max out each hardware spec:
Specs:
- Processor: AMD Ryzen™ 7 PRO 7840U Processor (3.30 GHz up to 5.10 GHz)
- Operating System: No Operating Systemselected upgrade
- Operating System Language: No Operating System Languageselected upgrade
- Microsoft Productivity Software: None
- Memory: 64 GB LPDDR5X-6400MHz (Soldered)selected upgrade. Specs at: www.lenovo.com/gb/en/p/accessories-and-software/memory-and-storage/memory-and-storage-hard-drives/4xb1d04758 quotes "64 Gbps", i.e. 8 GB/s.
dd count=1M if=/dev/zero of=tmp
gives only 255 MB/s however. - Solid State Drive: 2 TB SSD M.2 2280 PCIe Gen4 Performance TLC Opalselected upgrade
- Display: 14" WUXGA (1920 x 1200), IPS, Anti-Glare, Touch, 45%NTSC, 300 nits, 60Hz
- Graphic Card: Integrated GraphicsThe Ubuntu 23.10 "About system GUI describes its graphics as: Radeon 780M Graphics × 16, which e.g. www.techpowerup.com/gpu-specs/radeon-780m.c4020 documents as running the RDNA 3 microarchitecture.
- Camera: 1080P FHD RGB/IR Hybrid with Microphone
- Color: Thunder Black
- Factory Color Calibration: No Factory Color Calibration
- Wireless: Qualcomm Wi-Fi 6E NFA725A 2x2 AX & Bluetooth® 5.1 or above
- Integrated Mobile Broadband: No Wireless WAN
- Ethernet: Wired Ethernet
- Near Field Communication: No NFC
- Fingerprint Reader: Fingerprint Reader
- Keyboard: Black - English (EU)selected upgrade
- Battery: 4 Cell Li-Polymer 52.5Whselected upgrade
- Power Cord: 65W USB-C Slim 90% PCC 3pin AC Adapter - UKselected upgrade
- Electronic Privacy Filter: No ePrivacy Filter
- Adobe Elements: None
- Adobe Acrobat: None
- Adobe Creative Cloud: None
- Security Software: None
- Cloud Security Software: No Cloud Security Software
- Warranty: 3 Year Courier or Carry-in
Identifiers:
- Ethernet MAC address: fc:5c:ee:24:fb:b4
- Wi-Fi MAC address: 04:7b:cb:cc:1b:10
Upon arrival:
- Weight: 1490 g
- Charger weight: 323 g
- Firmware according to
sudo dmidecode -t bios
:Vendor: LENOVO Version: R2FET33W (1.13 ) Release Date: 09/08/2023
Buy research:
- www.phoronix.com/review/thinkpad-p14s-gen4 says Ubuntu running fine
- Intel vs amd: the Intel ones could come with a discrete rtx A500 GPU. GPU likely makes laptop heavier and less power efficient. And both have basically the same benchmark which is crazy:So the only downside is not being able to run CUDA.
- thought about Yoga or other Ultrabook options, but 2x price at same specs, so nah...
Log:
2024-01-17: firmware update:Actually fixed performance mode: askubuntu.com/questions/604720/setting-to-high-performance/1343879#1343879
Vendor: LENOVO
Version: R2FET36W (1.16 )
Release Date: 10/24/2023
Bought: 2017 for approximately 2400 pounds to be Ciro Santilli's main personal laptop.
Specs:
- screen: 15.6 inches, 16:9
- weight: 2691g (self weight in 2023)
- charger weight: 700g (self weight in 2023)
Identifiers:
- Ethernet MAC address: 54:e1:ad:b5:5b:08
- Wi-Fi MAC address: 44:03:2c:a2:27:81
With pre-soldered male pin headers.
>>> machine.unique_id()
b'\xe6ad\x08C8%$'
As of 2018-12, I believe that I might have fried the UART on this board when I burnt my last UART to USB converter by connecting ground to 5V.
Linux kernel logs don't show, but do show with the exact same components on the Pi 3 (SD card with
enable_uart=1
+ image Raspbian Lite 2018-11-03 and UART cables).Serial from
cat /proc/cpuinfo
: 00000000a50c1f69Datasheets: Raspberry Pi 2.
Bought in the late 2010s.
Mentioned at: raspberrypi.stackexchange.com/questions/3867/ssh-to-rpi-without-a-network-connection/53823#53823
Official product page: www.dsdtech-global.com/2017/07/dsd-tech-usb-to-ttl-serial-converter.html
Sample Amazon link: www.amazon.co.uk/gp/product/B072K3Z3TL
2021-08 bedroom battery out, 7.29V out of 9V duracell duralock. Buying pack of 12 Energizer nine-volt batteries. Measurement on new battery: 9.68V.
Bought May 2024 to be my clean crypto-only computer. Searched for cheapest 1 TB disk 16 GB RAM not too old on Amazon with Ubuntu certification, and that was it at £479.00.
Some reviews:
- the keyboard is kind of crap. Notably the key "a" is very hard to press!!
- the lack of a sleep state indication LED and "I'm powering on LED" compared to Lenovo is really sad
- it gets way too hot doing work (Monero bootstrap) with lid closed, likely brought system down
OPSEC: will run only cryptocurrency wallets and nothing else. Will connect to Internet, but never ever to a non clean USB flash drive.
The OPSEC for this machine supposes:
- no supply of chain attack on USB hardware, Laptop hardware, pre-installed Windows and Ubuntu ISO
- connecting with browser to a few well known websites to download stuff (Ubuntu ISO, Monero software) is safe
Bootstrap OPSEC:It must have taken about one week running full time to sync the Monero blockchain which at the time was at about 3.1M blocks! I checked on system explorer, and CPU and internet usage was never maxed out, suggesting simply slow network. But the computer still overheated quite a bit and froze a few times.
- turn on from factory, start Windows 11 Home 23H2 build 22631.2715, connect to home Wifi during setup process. Considered skipping WiFi, but I'll want to download the Ubuntu ISO later on anyways answers.microsoft.com/en-us/windows/forum/all/bypass-lets-connect-you-to-a-network/2ce188f6-1b28-45a0-97d2-bfccfa3c9188. Don't sign in to online Windows account, and turn off all spyware requests.
- on preinstalled Edge browser, download Ubuntu 24.04 ISO from ubuntu.com, check sha256 with
Get-FileHash
on powershell even though that is pointless security.stackexchange.com/questions/1687/does-hashing-a-file-from-an-unsigned-website-give-a-false-sense-of-security, download balenaEtcher portable from etcher.balena.io/ (currently recommended burner at ubuntu.com/download/desktop#how-to-install) from etc, and burn Ubuntu into a SanDisk Ultra Flair 64 GB - install Ubuntu from USB flash. No internet connection initially, default everything.
- notice that Ubuntu 24.04 is too broken, install Ubuntu 22.04.4 on the previously used USB from Ubuntu, and then install 22.04 instead... minimal installation, encrypted ZFS
- Ubuntu 24.04 "The application files has closed unexpectedly". This likely terminated uncompression of the bz2 halfway, and led to a corrupted monerod...
- askubuntu.com/questions/15520/how-can-i-tell-ubuntu-to-do-nothing-when-i-close-my-laptop-lid fix the eternal laptop lid issue without GUI solution...
- copy view only wallet private key by takinga picture of the QR code with Android cell phone. This gives it to the CIA immediately, but that's fine as we're going to publish it publicly.
Bought 2021-11, grey, size EUR 44.5, 80$ (later found cheaper online): www.sportsdirect.com/nike-run-swift-2-running-shoes-mens-121052
Ciro Santilli's full birth name is "Ciro Duran Santilli", with mother's last name "Duran" in the middle as per Brazilian tradition.
But Ciro's usage of "Duran" got gradually dropped to "Ciro Santilli", Ciro's official Italian name, as Ciro moved more and more definitively to Europe.
It can still however be seen in certain online places where Ciro didn't have the patience or power to change it e.g. some old École Polytechnique stuff: gitlab.binets.fr/ciro.duran-santilli/china-dictatorship
Also, don't have multiple names if you can avoid it, it is confusing!
"Ciro" is "Cyrus" from Cyrus the Great in both Portuguese and Italian (although with very different pronunciations), thus doubly appropriate given that Ciro Santilli was born in Brazil, and has Italian ancestry.
After he conquered Babylon in 539 BC from the hands Neo-Babylonian Empire, Cyrus the Great did a great service to the Hebrews by allowing war prisoners that were held in Babylon to back to their home Judea, thus terminating the Babylonian captivity. These Jews were imprisoned because they had previously fought a war or revolted against the Neo-Babylonian Empire and lost. As Wikipedia puts it:He is therefore viewed extremely positively in the good old book. Ciro was quite happy about this name choice by his father, given the human rights connotations of the figure and Ciro Santilli's self perceived compassionate personality.
According to Isaiah 45:1 of the Hebrew Bible, God anointed Cyrus for this task, even referring to him as a messiah (lit. 'anointed one'); Cyrus is the only non-Jewish figure in the Bible to be revered in this capacity.
Particularly fun things related to modern Cyrus are:
Because it belongs to some relatively obscure character of the Bible, the name it has been mostly passed on by writing to every single Christian country, and every single language came up with different way of saying it, because the only place they would possibly hear that name said out loud would be in Church!
As of 2020, the country in which the name is most popular in undoubtedly Italy. In Brazil, it is definitely not common, but also not completely unheard of either, e.g. Ciro Gomes is a notable Brazilian politician.
And Ciro responds to all the versions of the name that he knows of. These include:and glad to add any new ones as they come.
- English:
- direct English reading of "Ciro" as "See Roll". Not the most cultured, but its what things tend to converge to, especially in highly international environments where it would be impossible to try and learn the origin of everyone's name! So it's fine. Slightly too close to "zero" for comfort.
- Cyrus, the actual English version of the name. Ciro was so happy when his elderly English neighbour who went to Eton college, upon recognizing what Ciro was, immediately said: "Ah, Cyrus the Great!" He was the cutest, and he had some culture. Many/most English speaking people can't or won't be very sure about the spelling, but the sound of the name has a distinctly exotic feel to it, and the sounds are immediately recognized without sound ambiguity (unlike Ciro vs Zero).
- French:
- direct French reading of "Ciro" as "See Rho" with accent on Rho. This sounds exactly like "Sirop", i.e. Syrup in French, which can be good or bad depending on how you look at it.
- Cyrus, the actual version of the name in French. Similar remarks to those of English apply.
- Portuguese: "See Ru" with accent on See, and rolling r, and very weak "u". Some people might have some doubt of how to spell it and will ask for confirmation if needed, though many/most will get it right. Not particularly exotic like it is for English speakers.
- Italian: "Chee Ro" with accent on Chee and rolling r. Widely understood and correctly spelled, more than in any other language. Not exotic at all, could be any random dude from Naples.
- "fratm Ciruzzo": reserved for the Napolitan mates. It means "my bro little Ciro" in Napolitan. The "m" in fratm is a possessive inflection ("my", "mio", but on the same word), and "frat" is of course something like he standard Italian fratello (brother).
- www.urbandictionary.com/define.php?term=fratm. "Fratello" is the Italian standard for "brother". "Fra'" appears to be a variant.
- Ciruzzo means "little Ciro", i.e. it is a diminutive of Ciro, or more precisely a term of endearment. In Italian the correct name is "Vezzeggiativi":
- "fratm Ciruzzo": reserved for the Napolitan mates. It means "my bro little Ciro" in Napolitan. The "m" in fratm is a possessive inflection ("my", "mio", but on the same word), and "frat" is of course something like he standard Italian fratello (brother).
- German: Kyrus. Because Cyrus the Great is known Kyrus II. (Cyrus the Second, his grandfather was also called Cyrus), Ciro once joked to a German friend that he should call him Kyrus III! He liked that.
- Persian (spoken in 2020s Iran): something like Kurush. Likely the closest sound one to the original, though not sure how certain we can be of this.
He is actually quite happy when people use the name in their own language, because that means they understand the origin of the name.
Some Ciro's of interest:
- it is unclear if the usage of Cyrus in family names, e.g. the dread Miley Cyrus. www.houseofnames.com/cyrus-history mentions it may be of Greek origin.
Best ones:
- www.youtube.com/watch?v=lOfZLb33uCg Amish Paradise
- www.youtube.com/watch?v=N9qYF9DZPdw White & Nerdy
- www.youtube.com/watch?v=hEcjgJSqSRU The Saga Begins
- www.youtube.com/watch?v=SHnTocdD7sk Trapped In The Drive-Thru
Being a complex holomorphic function is an extremely strong condition.
The existence of the first derivative implies the existence of all derivatives.
Another extremely strong consequence is the identity theorem.
"Holos" means "entire" in Greek, so maybe this is a reference to the fact that due to the identity theorem, knowing the function on a small open ball implies knowing the function everywhere.
Constructs the quaternions from complex numbers, octonions from quaternions, and keeps doubling like this indefinitely.
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.This is the level of abstraction that Ciro Santilli finds the most interesting of the hardware stack. Learning it for actual CPUs (which as of 2020 is only partially documented by vendors) could actually be useful in hardcore software optimization use cases.
- 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
-O3
is 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/random
and 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
This section is about companies that were primarily started as computer makers.
For companies that make integrated circuits, see also: Section "Semiconductor company".
There are unlisted articles, also show them or only show them.