2025-07-15 08:00:00
Earlier this year I saw a Tech Ingredients episode where a laser gimbal automatically tracks drones and shoots them down. I was fascinated by their motion control mechanism, specially the usage of a PI Controller, a high-frequency clock Teensy microcontroller, and their integration with custom hardware and a machine vision powered tracker.
Soon after I was researching the underlying electronics and how to experiment upon their concepts. The most obvious microcontroller to drive these would be an Arduino, but several recommendations pointed towards acquiring a kit rather than a single microcontroller, and the Elegoo Arduino Uno R3 Starter Kit seemed the best.
The kit contains over 200 components and an extensive guided tutorial, which I’ve completed (except for the last section using an extra expansion shield). In this article, I’ll go through the highlights of this journey, delightful deviations along the way, and exploration of core electronics concepts. Let’s dive in!
I’ve been involved with electronics in different ways throughout my life, but surprisingly I hadn’t yet done its Hello World equivalent, which is to light up a LED. This simple exercise it by itself incredibly interesting that opened a series of questions:
RGB LEDs package a red, green and blue LED inside it that can be controlled independently, allowing for wide range color representation using three pulse width modulation (PWM) outputs from the Arduino.
PWM is a technique used to control the average power delivered to an electrical device by varying the width of pulses in a digital signal, which when done fast enough in a visual output such as a LED, is perceived to the human eye as being of a smooth continuous amplitude, instead of a stream of single bursts.
Progressively changing the colors of a RGB LED
We can attach an 74HC595 IC to extend the number of outputs possible by an Arduino, at the cost of some latency.
When writing the desired values for each of the inputs into 74HC595, they won’t be externalized until its latch is activated. Once the latch is triggered, all of the stored inputs will be externalized in one go. Very similar purpose of double buffering in video. A flicker free experience.
We are essentially controlling a piece of very limited external memory.
8 LEDs controlled via 74HC595
Capacitors are essentially energy stores (i.e. batteries) that with consistent charge and discharge times. By placing a condenser (or two, as in this video, so that their capacitance is summed up) in parallel with a LED, when powering the circuit both the LED immediately lights up and the condenser(s) charge in tandem. Once the main power source is removed, the condenser(s) start to smoothly discharge into the LED, creating a smooth fade out of their intensity.
Smooth LED intensity variation using Capacitors
We can control this single unit seven segment display at the segment level, and in this example we sequentially write a set of segment sets that we perceive as digits.
Digit Countdown
We can also create any patterns, in whichever sequence and timing we so desire. Here are three examples of some custom patterns.
Rotation Pattern
Figure Eight Pattern
Alternating Pattern
Expanding on the above, if we write the same patterns as above on a four unit segment display, we see these replicated on all units.
Same Character for All
In order for each of the units to present their specific segment pattern, we need to write the pattern and then select which of the units should have this pattern written to, wait for a short amount of time, and then move to the next unit, where we will do the exact same thing, only this time selecting the unit(s) that should have this pattern written.
Distinct Characters
This LED Matrix accepts an explicit bitmap, where each of the pixels is either enabled or disabled. To achieve a scrolling effect we set an offset based on value received via the potentiometer.
Scrolling through a bitmap
The scrolling effect is achieved by leveraging a functionality from the LiquidCrystal library. Here we are using a string of normal characters, but custom characters can also be used.
Scrolling through a long string
From the guide: “We should be careful not to use the UNO R3 board analogWrite() function to generate a pulse to the active buzzer, because the pulse output of analogWrite() is fixed (500Hz)”. I’ve used analogWrite()
, and this is the result:
Varying the pitch of a buzzer
By adjusting the frequency in which the buzzer is discretely triggered, we can achieve a perceived effect similar to PWM used above for controlling LEDs intensity, only this time to allude to a certain sound pitch, which in this case is quite similar to the sonority from older computer / console games.
“8bit” engine sound using a buzzer
I’ve burned the on-board LED (13) while voice fiddling with this integration, since one of the dupont wires touched a wrong spot of the board while going through this.
The red LED represents audio peaks, the yellow LED represents audio troughs.
Detecting snapping of fingers and voice
This component consists of a very conductive sphere that is free to move inside the component’s cylindrical shape. One face of the cylinder conducts electricity, and the opposite does not.
Tilting the component to elicit its change of state
I wondered why an external module was required to calculate distances, so I’ve implemented an algorithm from scratch that took into account the speed of sound and the time taken by an ultrasonic pulse to be received back by the sensor. I’ve validated the measurements using a real life ruler, and they were actually accurate! No external code modules required.
Distance measurement using custom algorithm built from scratch
This is a sensor commonly used to detect movement from heat emitting, like people, and then trigger a side-effect, such as a hall light. Its output is a simple binary HIGH or LOW.
Detecting motion via PIR sensor
Used the Arduino’s Serial Plotter Tool to visualize the inputs from the MPU-6050 module that bundles an accelerometer, gyro and temperature sensor.
Accelerometer and Gyroscope Plotting
Going through the datasheets of the gyro module, I’ve noticed that the module could be commanded to dispatch an interrupt signal whenever a certain threshold of movement was detected. This could be useful for low power systems for example, where this interrupt would signal that relevant movement data is starting and the main controller should be fully active.
The objective of this experiment was to make the blue LED blink whenever the gyro was disturbed, but this resulted in a mostly unpredictable output, where the root cause is likely to lie on the incorrect combination of commands needed to set up the module. Further exploration would be needed here.
Attempting to get an interrupt signal when movement starts
A photoresistor is a light-sensitive resistor whose resistance decreases when light falls on its surface, if we place wire in connected from one of Arduino’s analog inputs between the photoresistor and another fixed value resistor, we are able to detect the resulting voltage caused the photoresistor’s variable resistance.
Light intensity shown on LCD display
With the exact same setup as above (save from the slight tweak of the script), by replacing the photoresistor with a thermistor (which yet another variable resistor, only this time changing its resistance based on temperature) we are able to measure ambient temperature, which I manipulate by using my hand’s warmth and the cooling it off by blowing air into the thermistor.
Temperature shown on LCD display
This consisted of some nervous plunging of the water level sensor into a tea mug, near my computer 😬
Water level sensor change as it is further submerged under water
The Arduino is made to drive logical circuits with low output currents, so when we want to control a high power circuit, we want our Arduino microcontroller to control the “valve”, but not the “pipes” themselves. This is a perfect application for a transistor (or relays, as we’ll see below), where the transistor functions as a “valve” that either lets current flow through freely, or block it completely.
The kit comes included with two models of NPN bipolar junction transistor (BJT) transistors: the PN2222 and S8050. Both are often used interchangeably (as seen in this video), but the PN2222 has a higher voltage rating for collector-to-emitter voltage (60V vs 25V), which in this case is not relevant, since we are not surpassing the 5V barrier. In these, the base is the “valve”, and collector and emitter function as the “pipes”.
Note here I am not using a flyback diode to protect the circuit from back EMF voltage spikes caused when the DC motor is switched off, which is not the wisest idea when performing multiple tests. I was not aware of that effect at the time, and fortunately no harm was done.
DC Motor controlled via On/Off Button
Same setup as above, only this time we are driving a LED instead of a DC motor.
LED controlled via Potentiometer
DC motor controlled via Potentiometer
L293D is a neat IC that packs inside everyone one needs to drive inductive loads such as relays, solenoids, DC and bipolar stepping motors, along with bidirectional drive and overcurrent and kickback protection (so no flyback diode needed).
Notice that when attempting to drive the DC motor at low power it struggles to start its rotation, but once power is increased of a slight nudge is given, it quickly starts to rotate freely.
L293D driven DC Motor using battery power
Relays are larger and have slower switching speeds when compared to transistors, but handle higher currents and voltages and provide good electrical isolation.
As a fun fact, in older cars, “tick-tock” heard when activating the turn signal are actually the sound of the respective relay closing and opening the circuit to light up the blinker. Those relays are very similar to the one used here, and a similar noise can be heard in the video, as the relay closes and opens the circuit that powers the DC motor
L293D + Relay driven DC Motor
When setting up a Resistor and Capacitor (RC) circuit, we can take advantage of its predictable charging curve to delay the activation of a transistor, which in turn can activate another set of components. Depending if the transistor is a BJT (current-controlled) or a MOSFET (voltage-controlled), they would have different current or voltage thresholds at which they allow current to flow between the collector and emitter (BJT), or drain and source (MOSFET).
In this case, a bipolar junction transistor (BJT) has its base connected to RC circuit, and upon its activation a LED and/or a DC motor are activated. Notice that the DC motor either does not have enough power to start, or barely has a delay once a smaller resistor is placed on the RC circuit, which I think to be caused by having low capacitance capacitors, and not having the ideal resistor being used on RC circuit, but this would warrant further exploration and a deeper understanding of the problem.
Delayed LED lighting via RC Circuit + BJT Transistor
Delayed LED lighting and DC Motor via RC Circuit + Single BJT Transistor
Delayed LED lighting and DC Motor via RC Circuit + Two BJT Transistors
Servo motors are used in applications requiring precise and controlled movement, where the motor’s position, speed, and torque need to be accurately controlled. In this example a button is used to switch between the state where the servo’s position is synced position defined by the potentiometer, and the state where a default servo motor position is set.
Notice as well how the slight voltage noise created when manipulating the detached potentiometer input wire, and the effect it has on the servo that is attempting to sync with these received values.
Servo Motor controlled via Potentiometer
The stepping motor is a clever piece of engineering that enables precision movement without the need of external feedback.
In this setup the motor is controlled fully by an automated script, and since the 9V battery was starting to die, it was powered via power adapter.
Stepper Motor: Automatic Control
To the above we add a rotary encoder to send precise commands of how much we want the stepper to move. This rotary encoder is the same you’ll find in several appliances such as mouse wheels, car radio knobs and washing machines.
Notice that the movement is quite jerky, and no matter how much we move the rotary encoder, only the most recent movements are actually accounted for.
Stepper Motor: Rotary Encoder Control, using ELEGOO script
To fix the above behaviour, this script takes into account all the movements from the rotary encoder to establish a target rotation angle that every cycle the stepper motor is correcting itself towards.
Notice that in the beginning of the video the two LEDs are lighting up as the rotary encoder is manipulated, so that we can see which are the signals captured by our script. These signals consist of a predictable gray code sequence that lets us perceive with high accuracy whether it is rotating right or left.
Once the two demonstration LEDs are disconnected, we’ll have signals coming through our Arduino inputs, that we interpret leveraging the above concepts, plus we also make sure to trigger device interrupts not only for one of the inputs (as in the script above), but for both inputs, so that we can capture all movements.
Stepper Motor: Rotary Encoder Control, with Extra Precision
Combining the IR sensor and remote above, we can also control this stepper motor using this remote control mechanism.
Stepper Motor: IR Remote Control
One of the peripherals you can provide as input to Arduino is a 16 button keypad that provides a useful human interface component for microcontroller projects.
This keypad module comes included in the Elegoo UNO R3 Starter Kit, which also comes with its respective tutorial and library that helps facilitates its usage.
In this video we will code from scratch an implementation that will use this keypad module, without using extra libraries, and we will go through the respective concepts and circuits, including how pull-up resistors work (which are accessible via INPUT_PULLUP)
How Arduino Keypad Works under the hood
Supporting code:
Note that the code resorts to a fair amount of duplication, but this is explicitly show how the entire mechanism works, without occluding via abstractions
While exploring how common infrared communication protocols are used in every day appliances, I wondered if it was possible punch in custom light pulses via a red LED source that could be interpreted as valid signals by the IR receiver, and started by pulsing it in 25ms intervals in order comply with the 38khz signal modulation expectation on the IR receiver (1 second / 38000 Hz ~= 25ms).
Turns out this would never work with a normal red LED, since its wavelength sits around the 640nm peak, whereas we would need a 900nm to 1000nm wavelength for an IR receiver to pick that signal.
In this attempt, I am comparing the continuous pulsing by the red LED vs the pulsing generated by a standard IR remote. An interesting follow up would be to attempt the same setup, but with a IR LED emitter instead.
IR Signal Replication Attempt
This video shows what the MIFARE content dump from the two cards included with the kit, but the setup is able to read minimal information from other sources, like credit cards or electronic passports.
Note that this module reference voltage works best when connected to the Arduino’s VIn output, instead of Arduino’s 3.3v power output.
Content dump of the information read from the two cards included with the kit
This joystick module is essentially the same used in several game controllers, and its usage is fairly straighforward using an Arduino.
Joystick module demonstration
This might come as obvious to many, but only after using Serial.print()
on different Arduino scripts as a debugging mechanism, did I realize that this command actually sends structured information not only to the host via USB (computer), but also via Arduino’s TX output.
This video/script are very simple: they write very long strings and individual bytes to the serial interface, using a very low baud rate, so that their individual bits can be roughly seen upon the right yellow LED that is attached to the TX output. The left green LED stays enabled before we start sending commands to the serial interface, and is disabled once the writing phase is completed.
Notice that even after all writes were committed, there are still bits flowing through the TX output. This goes on until Arduino’s internal serial communication buffer is completely flushed.
Left green LED stays enabled during writing phase. Yellow LED represents single bits in the TX communication stream
Building up on the above, if we write individual bits by carefully timing the a normal pin output’s LOW and HIGH to comply with the UART standard to form 8 bit packets, feed these through a wire to the Arduino’s Rx pin, read the resulting serial communication receive buffer, and then finally write these contents into the serial port, we are able to see these logged into the serial monitor.
This was one of the most 🤯 while fiddling around with the Arduino.
Writing individual bits and feeding them back via RX input
Using the Serial Monitor, we can easily send packets of information to the Arduino via Serial communication. In this script, Arduino reads from the serial communication buffer an enables or disables a LED if the corresponding received information is a zero or a one.
Sending information from the host to Arduino
Building on the above setup, we integrate ATmega’s integrated EEPROM to persist information. This means that even after a power outage that information is still available, as seen in the video below.
Using internal EEPROM to persist information
We can attach an 74HC595 IC to extend the number of outputs possible by an Arduino, and do the same as above but for extra outputs. The setup supports 7 different LEDS, but only 3 are shown in the video, and for this specific example there is no real gain from using 74CH95 IC, other than demonstrating its usage.
Serial read side effects using 3 LEDs and 74HC595
I was curious about the RTC module’s square wave output, and found a YouTube video on how to send a command to the module that forces the square wave pin (SQW) to output a 1Hz square wave, meaning that the cycle of this wave repeats every second.
In the video, this signal is first connected to a LED, which leads it to blink every second, and then the output is directed towards Arduino’s pin 8, thus showing this cycle’s result on the serial output.
Square Wave Output visible first on LED, then on serial output logs
The time project is the opus maximus of the provided tutorials provided by Elegoo, but there were components which were not working directly, namely the interrupt library, so I’ve adapted the provided example to use the built in Arduino interrupt library, and changed some of the connections, leading to a beautiful culmination of all the the lessons from above.
Timer Integration
2025-02-22 08:00:00
After nearly 4 years of continuous usage at work, taking calls and listening to audiobooks during long walks, my wired in-ear Bose QuietComfort 20 MK2 Active Noise Cancelling Earphones are finally starting to become faulty1, so I went on a search for a replacement.
To my surprise, not only have these types of earphones been discontinued by Bose, but the selection of wired in-ear active noise cancelling headphones is incredibly slim. After an extensive search, I’ve found Asus ROG Cetra II and Bang Olufsen B4, which appear to offer inferior quality in terms of Active Noise Cancelling (ANC), when compared to recent highly rated Bose, Sony or Apple headphones, which are either wireless or are over-ear / on-ear. Quality in-ear2 ANC earbuds are almost exclusively wireless.
I understand the popularity of wireless earbuds. They are extremely practical and neat. It is not surprising that penetration of bluetooth headphones has jumped considerably in recent years, but given that I use my headphones for several hours each day, it is not an enticing proposition to have two wireless devices extremely close to my brain, even if they output a low amount of EMF radiation. The (cumulative) dose makes the poison.
Several experts 345 claim there is no danger in prolonged usage of these devices, because they don’t emit ionizing radiation, but it has been reported both in studies and anecdotally that exposure to high levels of EMF radiation might have detrimental effects long term.
I’ve found it challenging to uncover quality studies that correlate the usage of bluetooth headphones and health effects. I assume this correlation is hard to experiment upon with statistically significant results, due to how long this exposure needs to happen, and other confounding environmental and behavioural factors. Regardless, one of these studies draws a significant link between the usage of bluetooth headset and thyroid nodules.
Widespread adoption of these devices is still relatively recent, and we should be humble enough to acknowledge that we don’t have the full picture clearly laid out of the all repercussions related to their long term usage, especially when in close proximity to one of the most valuable organs of our body, our brain.
It’s not what is known that concerns me, but rather what is not known. Until proven the contrary, I will continue to play it safe, and avoid using wireless earbuds.
Hopefully a larger swath of the population will increasingly exercise caution and awareness on this issue, signalling manufacturers to drive the supply of competitive good quality wired in-ear ANC headphones that empower the consumer to make the best choice for their use case, and their health.
The battery is still pristine, but the left earbud started to give out a random noise when active noise cancelling is enabled.↩
I’m exclusively looking for in-ear headphones because of how challenging it is to find over-ear or on-ear headphones that doesn’t cause discomfort after several hours, when using glasses. I also appreciate the style of in-ears, although that is secondary.↩
Effect of Bluetooth headset and mobile phone electromagnetic fields on the human auditory nerve - Marco Mandalà, Vittorio Colletti, Luca Sacchetto, Paolo Manganotti, Stefano Ramat, Alessandro Marcocci, Liliana Colletti↩
Are Bluetooth Headphones Safe? - Dr. Matt MacDougall & Dr. Andrew Huberman↩
How Unhealthy Are Your AirPods? - Doctor Mike↩
2025-02-10 08:00:00
I’ve recently finished reading The Story of the Human Body: Evolution, Health, and Disease, a book from Daniel Lieberman of how the human body evolved over millions of years, that I would recommend all Humans to read. These are are my main takeaways:
Us humans and other living beings are essentially organisms that use energy to reproduce and maintain ourselves.
Hominid bipedalism was likely to have been initially selected to help the first hominids forage and obtain food more effectively in the face of major climate change
Between 10 and 5 million years ago, the earth climate cooled considerably, and overall effect in Africa that caused rainforests to shrink and woodlands to expand. If you were to be in the heart of the rainforest, you likely wouldn’t have noticed much of a difference, but if you were in the margins, this change must have been stressful. As the forest shrinks and becomes woodland, ripe fruits become less abundant, more dispersed and more seasonal. These changes would require you to travel farther to get the same amount of food.
Walking on two legs is more energy efficient for longer routes. Main trade off is less speed, because we could not gallop. We are 3x more efficient moving a distance of 6km than a chimp.
Not only was endurance walking useful, but also long distance running was likely selected for scavenging. Running to fresh carcasses, running with food and, persistence hunting, where a big animal is followed by running and walking on sun. They need to find shades and pant, and eventually collapse due to heat stroke.
Other features that help us to run effectively. Some of them not specially helpful for walking, like shorter toes:
All of these walking and running adaptations made us clumsy climbing trees, like shorter toes, but also freed up our hands to interact with the world, create the first tools and throw objects (we are especially good at throwing, having shoulders and upper body that makes it ideal for it), which not only provided some protection, but also allowed us to obtain and process fallback / lower quality foods (which were essential due to scarcity from global cooling climate).
Only mad dogs and Englishmen go out in the midday sun ― Noël Coward
In the average adult human, the brain represents about 2% of the body weight, but accounts to about 20% of total energy consumption.
As the ability to create and use tools allowed the gathering and processing of fallback foods, more usable energy was able to be extracted. Processing foods to smaller chunks, or cooking it, largely increases how much energy can be obtained during digestion, but also requires less intense chewing (we didn’t need as bigger teeth as australopithecus, which resulted in use losing the snout due to less space being needed in the head) and shorter intestines, which reduce energy required for digestion, increases surplus energy to be used by the brain. These factors selected hominids with better manual dexterity and better cognition.
Our manual dexterity, and what it unlocks, plays a big role in our evolution.
If our brain1 is deprived of glucose for even 1 minute or two, it causes irreparable damage. This likely selected humans to become unusually fat. 400 to 500 calories daily, are for the brain alone. Extra intense thought only increases hourly usage by 5 calories per hour.
Hunter gatherer mothers have to expend about 2.3k calories for themselves alone to raise kids. Babies are unusually fat. 60 percent of their energy consumption is for the brain. It takes 12M calories to grow a child into a full grown adult. Twice as much as those needed for a chimpanzee.
Our way of living affected the size of our gut so profoundly, that now we are pretty much dependent on cooking to get the caloric intake we need for our body and brain.
Exercise is not great to lose fat (unless you don’t succumb to overeating after exercise) but it’s good to prevent fat gain. It increases muscle (and not fat) sensitivity to insulin and makes the muscles more readily available to store energy, and also increases the number of mitochondria that burn fat and sugar.
Life is fundamentally a way of using energy to make more life.
What good is it to have a good idea, if you can’t communicate it? One of the main features we developed as humans was our ability to use speech to clearly communicate thoughts, ideas, plans, and other information.
The price is that we are the only mammal that can risk asphyxiation when swallowing something too large or imprecisely2, because of the big common space behind the tongue through which food and air both travel to get either into the esophagus or trachea, a consequence of our short and retracted faces and selection of anatomy that favors clear speech. As a result, food sometimes gets lodged on the back of the throat, blocking the airway.
When you are having lunch with friends, consider that you are doing two things: speaking clearly, and swallowing a little dangerously.
We’ve created a system that makes people sick through a surplus of energy, and keeps them alive without needing to turn down the energy flow
Lieberman presents the concepts of Mismatch diseases and Dysevolution:
Our ancestors ate fruits as sweet as carrots, but as energy dense foods had their availability increased3, more humans moved from subsistence farming and physically strenuous jobs to lower physical effort jobs (in the USA, only 11 per cent are actually factory workers. The rest are in management, services, wealth management and banking services), the same mechanisms that made us effective is storing energy and craving certain foods, are also the ones that have become maladapted to our current environment.
It has been only about 300 generations since we’ve been subsistence farmers, which didn’t give enough time for natural selection and body adaptations to develop.
Your body can use glucose as energy readily, but fructose can only be worked as fat or in the liver.
Comparing an apple to a highly processed fruit roll, apart from nutritional differences:
Villages, cities, are our human fortresses from the wild. Because we have that fortress, we don’t need to carry arms and be attentive to outer animal threats, like lions. Mostly. There were costs to these though:
There is a positive correlation between cancer development in reproductive organs and high energy balance.
More exercise results in lower chances of cancer. Likely because the energy spent there is not otherwise spent on reproductive hormones that have these side effects.
Imagine you are tasked with building a robot that is aimed to accomplish a task in the future that is unknown. You can either create a series of specialized robots (e.g. only able to swim, to dig, jump, etc), or a single one that adapts to multiple situations. When you don’t know what the robot will do, the latter works best. That is how animals and plants work. But if you don’t use it, you lose it.
If you don’t chew enough when you are young, teeth will become misaligned, and overcrowding happens, leading to issues on wisdom tooth growth for example. The body needs that stress.
Hygiene hypothesis states that early childhood exposure to particular microorganisms (such as the gut flora and helminth parasites) protects against allergies by properly tuning the immune system. In particular, a lack of such exposure is thought to lead to poor immune tolerance. There are two main hypothesis for it:
Hannah Arendt introduced the expression and concept of the banality of evil, where a common person does nefarious actions, since they became accepted and normalized in their society.
Actions that we perceive as normal, such as usage of cancer inducing sodium nitrate in foods (which stems for a trade-off between structural economic gain and health), wearing comfortable shoes, reading and sitting, are in fact not normal when seen through the lenses of long term evolution.
Our feet have adapted for us to efficiently run and walk, but highly cushioned, constraining shoes deform and inhibit our feet from fulfilling their purpose
Myopia is a formerly rare evolutionary mismatch that is exacerbated by modern environments. In the USA and Europe, about one third of all children (aged 7 to 17) become nearsighted.
Evidence suggests that being nearsighted used to be very rare: that less than three per cent prevalence amongst hunter gatherers and populations that practices subsistence agriculture. In 1813, it was noted that amongst the Queen’s guards, many were myopic. On the hand, from the 10k foot guard, less than half dozen were myopic.
The mechanisms of how myopia are still not fully understood, but two main causes are suggested:
While sitting in different positions to rest after strenuous activity has been around for much of our species, only until recently have we been multiple hours sitting in a chair, day after day, which is a risk factor towards:
One solution would be to wait for natural selection to sort out these problems, which is very unlikely due to the high rate of change in our societies and environments, in short time windows. As the commander of the Albigensian Crusade said, on a mission to eliminate heretics: “Kill them all; let God sort them out.”
We are all subject to influence by advertising, availability and peer pressure, but we can be nudged to acquire behaviours that benefit us. Daniel Lieberman suggests:
Culture is roughly everything we do and monkeys don’t. ― FitzRoy Richard Somerset
Clever as we are, we cannot modify our human bodies any more than superficial ways. And it’s arrogant to think we can engineer body parts any better than nature did. There will be no Pasteur for mismatched diseases.
We should come to terms that:
Compared to other animals with the same body weight, they have a fifth of the brain size, and double the intestine system. Size of the brain correlates with the size of the group. Humans are able to interact with 100 to 200 individuals.↩
Choking on food is the fourth leading cause of accidental death in the USA.↩
Between 1985 and 2000, the purchasing power of the US dollar decreased by 59 per cent, the price of fruit and vegetables doubled, fish increased by 30 per cent, diary about the same. In contrast, sugars and sweets became 25 per cent less expensive, fats and oils 40 per cent, soda 66 percent less expensive. Portion sizes ballooned: in a fast food restaurant in 1955 order of hamburger and fries would yield 412 cals. Today for the same inflation adjusted size, the same order would have double the calories, 920 cals.↩
If you are curious of how the sewers of earlier cities smelled, the Paris Musée des Égouts provides an illustrative tour through these sights and smells ↩
Thomas Crapper did not invent the toilet. But was a pioneer in its mass manufacturing. Origin of the word “crapper”↩
For example, Hepatitis A virus stimulates T helper 1 cells, which suppress the number of T helper 2 cells↩
2024-12-31 08:00:00
It’s time to wrap up and celebrate 2024, an eventful year that fueled my yearning for internal growth and curiosity, with challenges and lessons I am grateful for.
I’ve recently built a set of Grafana dashboards to track my personal goals, which I’ve been finding incredibly interesting to explore and visualise (something that might be interesting to share in a later post).
There are other metrics I track, but specifically to 2024 content creation, these are the final statistics1:
Notice that the tracked metrics are on the volume of content produced, not their number of views, subscribers, likes. Although keeping track of topline metrics makes sense for a full fledged business, I chose instead to track what I can control, which is my output. At the end of the day, this is a hobby, a labor of love.
If I can influence someone’s life for the better, that will already fill my heart to the brim. This, added to how important posting these contents has become to consolidate and structure my thoughts, and serendipitous opportunities they randomly opened, make this an incredibly satisfying endeavor.
I’ve experienced time and time again that consistency eventually bears wonderful fruits. Who knows which doors might open one day later? I don’t, but I’m curious to find out.
With 2024 wrapped up, let’s welcome 2025. I’ve pinned down next year’s goals and will be looking forward to sharing what I learn along the way. Happy new year, and see you on the other side! 🫡
This dashboard was produced using a custom Grafana dashboard, where the RSS feeds for this blog and YouTube channels were tracked, transformed and presented in simple gauge widgets↩
2024-12-30 08:00:00
Over the past 4 years, I’ve written about 1820 pages on the 13 A5 notebooks shown in the picture above. This tool has become essential for my job, and in this article I’ll describe the simple process behind it, which I’ve found to deliver consistent results, reliably.
The process I’ve been using for several years is based on Option 3. of Solving Task Switching Through Documentation, and is broken down in three steps:
1. Write
2. Consolidate
With several notes written, their consolidation can happen in three different time spans:
3. Repeat
Just like other processes, their value only becomes apparent after they have been used several times. Build a habit. It will then become immediately apparent whenever a notebook is not at hand, or when structured notes are not written down.
2024-12-28 08:00:00
I’ve recently finished reading Diary of a CEO: 33 Laws of Business and Life, which draws from both Steven Bartlett’s entrepreneurial journey and interviews from the homonymous podcast. These are are my main takeaways: