On the Human Head Transplant


Transformative Research’ – It all started with the well known pivotal report ‘Science – the Endless Frontier’ [1] commissioned by President Roosevelt nearly 75 years ago. The report – penned by electrical engineer Vannevar Bush – marks the beginning of modern science policy. The publication came in the aftermath of the second world war, and has ever since represented the focus shift in science towards measurable benefits to society. The shift has since been considered vital for the progress towards national goals in – among other fields – health.

In light of this, I explore the ethical minefield surrounding the surgical procedure known as human head transplantation (HHT), and argue that it will become an inevitable part of our future.

In the very beginning, the primary goal of HHT will be to save the life of patients with terminal disease but whose head and brain are healthy. A brain dead patient donates his healthy body, and a HHT procedure is carried out to produce one healthy individual by fusing the terminal ill’s head with the donor’s body. Effectively, it would provide a life-saving treatment for a multitude of conditions where no cure currently exists [3].

For over a century, head transplantation experiments have been conducted – starting with dogs in 1908 and extending to primates in the 1970s. In the last decades, we have seen many improvements in vascular surgery, immunisuppressive agents, and spinal cord recovery – and this seems now to have reignited the enthusiasm for potential HHTs.

Technical Challenges

The overall hurdle of the HHT procedure can be divided into five categories [3]: a) Vessel anastomosis, b) Immunosuppression, c) Spinal cord transection and fusion, d) Revascularization, neuroprotection, cerebral ischemia and e) Pain control. The first two have mostly been overcome in the context of humans, and regards a) joining blood vessels and b) the management of the immune response system to avoid transplant rejection. Item c) regards splitting and joining of spinal cord segments and is currently the main unexplored technical challenge in the human context. However, also item d) regarding restoration of blood flow after a halt is challenging given that the human procedure will be time consuming. Finally, e) regards pain management, and also represents unexplored theritory based on that all experiments so far only have been performed on mice and non-human primates.

Ethical Challenges

When Joseph Murray conducted the first human kidney transplant in 1954, many demonized him as playing god and violating the rules of both nature and the divine. About 10 years later also the first human heart transplant resulted in a simarly negative public reaction. In the past 50 years we have since mastered both hand and face transplants – and every time, the discussions leading up to the current frontier seems to have the same negative character.

But today, even the World Health Organization argues that transplantations promote health. Almost 114,000 people in the U.S. are currently on the waiting list for a lifesaving organ transplant – and another name is added to the national transplant waiting list every 10 minutes. Since 1988, over 700,000 transplants have occurred in the U.S. alone [9].

While we refer to the HHT procedure as a head transplantation, it is truly a body transplantation, in which a person’s head is receiving a new body organ. Why is this so different from a single organ transplantation? The central question seems to be how patients who emerge from such a life-changing procedure might react. How will it affect their identity? [5].

This brings us to a philosophical theritory, in which we question what really makes up the human self. What makes you you? [6] Say you get a terminal disease and need transplantation of your liver. The operation is successful and you continue your life. Suddenly, bad luck strikes again, and you need new kidneys. The operation is again successful and everything is fine for a while. But the bad luck continues and you subsequently receive a new heart, new lungs, new blood and new facial tissue with the help from a range of donors. Would you still be you despite the fact that most of your original physical body was gone?

Many people believe that the brain – or the memories it stores – is what makes you you. However, there is a certain thought experiment which seems to disrupt also this picture: if a hard copy of you including your memories was created, would the new you also be you?

Modern cognitive science states that our cognition is an embodied cognition. It suggests that the human body is indeed part of the formation of the human self. Thus, will the body recepient encounter huge difficulties in trying to adapt to the new body under his already existing body image? Could it lead to insanity and death? In face transplantation studies, however, identity confusion have so far not been reported. In fact – after face transplantation – the opposite has been noted in terms of increased self-esteem, easier social integration and better mental health [3].

The cause preventing HHT research to progress quicker than it currently does seems to rooted in a so called deadlock: to overcome the technical challenges, we need to do more experiments. But to do experiments we need subjects, and to get subjects we need to prove that what we are doing is safe. But to prove that – we again need clinical evidence from experiments.

Given the present regulatory environment, development of innovative and transformational surgery is difficult to accomplish because institutional review boards may not approve experiments in which suffering and death are likely. It may be possible to obtain an informed consent by a brain dead donor via his family, but it is forbidden by several Conventions (The Nuremberg Code, the Declaration of Helsinki, and The Belmont Report) to get consent for a dying person to a surgical experiment which has not followed standard protocols of research development [3].

The path leading up to successful HHT is indeed likely to involve suffering and death. But is this different from other human endeavours such as space exploration? As of 2018, 14 astronauts and 4 cosmonauts have lost their lives in fatal spaceflight accidents. Also while training for space missions astronauts have died, such as in the Apollo 1 fire where the entire crew of three burned to death on the launch pad. They were well informed about the risks involved, but chose to do it still. It seemingly does not hinder humanity from exploring space. Astronauts are astronauts for a reason, they choose to be what they are and are willing to take huge risks just because they see themselves as instruments dedicated to space exploration. Afterall, experimental surgical procedures with a high probability of suffering and death are not very different from sending a manned capsule filled with liquid hydrogen to the moon. Why should we forbid a terminally ill patient from undergoing an experimental surgery if he wants to do so for science? The main difference is that astronauts are healthy, while HHT body receipients are not. Therefore the act of experimentation is automatically considered coercive and vicious.

The HHT seems to touch on almost every aspect of any research ethics guideline (such as [2]): a) risk asscociation, b) the precautinonary principle, c) compliance with national and international rules and regulations, d) care and respect of animal welfare, e) the economic and cultural value of other forms of knowledge and f) openness about possible conflicts of interest.

Regarding a): Let us wipe the patient consent aside for the moment and assume it is acquired; is it still ethical for the actual physician to subject the patient to an experimental HHT procedure with a multitude of unknown variables awaiting the surgeons in the operating room? [4]

Regarding b) Assuming that the HHT procedure was carried out. Afterwards the patient experiences a fatal chronic rejection of the body, and all attempts to reverse rejection fails. The head must be removed from the body. What is now the exit strategy? [3]

Regarding c) Let us assume that the HHT procedure is successfully carried out. Later the patient experiences a radical self-esteem boost, and starts to socialize. He meets a wonderful girl, and they decide to get a baby. They name their little son Jack. As Jack grows older, he may pose questions about inheritance, parentage and custody. How will the parents of the body donor meet Jack as the offspring of their brain-dead child? [3].

Regarding d) On the path towards HHT, much more trials on animals will be required. All procedures must first be approved by the Animal Welfare and Ethics Research Committee [7]. Can it under any circumstance be ethically sound to perform such a substantial amount of pre-clinical experimentation on animals?

Regarding e) Should the medical community really consider HHT instead of focusing their efforts on more direct approaches towards curing ALS and similar debilitating diseases? [4]

Regarding f) In the context of utilitarianism, HHT can be considered very ineffecient because one body can save only one life per HHT, but the same donor body could instead be used to save many lives through multiple organ donations [4].

Another argument against HHT is related to social hierarchies and the fear for a ‘black body market’: HHT surgery will indeed be very costly, and we can end up with an elite group of very rich people which regularly buy themselves new bodies and immortal life from people in the other far end of the class spectrum.


Many ethical questions regarding the HHT will remain unanswered until trials are performed on humans. This basically leaves us with the pressing question of pre-cautionarity. But if we use past experience as an indicator of ’the storm to come’, the history of organ transplantation is telling. The public reaction to the first organ transplant 50 years ago was initially not very positive.

But humankind inherently seems to be pushing ethical boundaries in parallel with technological boundaries. The HHT is the final frontier of organ transplantation because it represents the ultimate surgical challenge. On a large scale, the biggest challenges are what drives science. The most transformative research topics will always be tied to the largest challenges and the biggest ethical questions.

Although the Apollo moon program was in the days seen by many as a huge waste of resources, and considered unethical in terms of that money was spent ’out there’ instead of on the problems ’down here’ – it paved the way for an extraordinary sized array of technologies which has become relevant for almost every industry we have on earth today.

Under this vision – it seems to be only a matter of time before the relation to Frankenstein vanishes, and the phrase of getting a new summer body suddenly gets a whole new meaning. A time where we can read about the 465 years old President who now has successfully received his 7th new body – and is ready to serve the country in the coming century.


[1] SCIENCE – THE ENDLESS FRONTIER https://www.nsf.gov/od/lpa/nsf50/vbush1945.htm

[2] The NENT Guidelines for Research Ethics in Science and Technology

[3] Allen Furr and Mark A. Hardy and Juan P. Barret and John H. Barker Surgical, ethical, and psychosocial considerations in human head transplantation Int J Surg. 2017 May ; 41: 190?195.doi:10.1016/j.ijsu.2017.01.077. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5490488/pdf/nihms863662.pdf

[4] Joshua A. Cuoco and John R. Davy Operation Frankenstein: Ethical Reflections of Human Head TransplantationNeurosurg. 2016, 1:2 http://neurosurgery.imedpub.com/operation-frankenstein-ethical-reflections-ofhuman-head-transplantation.pdf

[5] Nayan Lamba and Daniel Holsgrove and Marike L. Broekman The history of head transplantation: a review REVIEW ARTICLE – HISTORY OF NEUROSURGERY https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5116034/pdf/701_2016_Article_2984.pdf

[6] Tim Urban What Makes You You? The Wait But Why Blog https://waitbutwhy.com/2014/12/what-makes-you-you.html

[7] Anto Cartolovni and Antonio G. Spagnolo Ethical considerations regarding head transplantation SURGICAL NEUROLOGY INTERNATIONAL: Letter to the Editor http://surgicalneurologyint.com/surgicalint-articles/ethical-considerations-regarding-head-transplantation/

[8] John H. Barker and Johannes M. Frank and Liudmila Leppik Head Transplantation: Editorial Commentary CNS Neuroscience and Therapeutics:Editorial Commentary https://onlinelibrary.wiley.com/doi/epdf/10.1111/cns.12434

[9] American Transplant Foundation Webpage https://www.americantransplantfoundation.org/about-transplant/facts-and-myths/

Faking a Static IP @ Home

Today I share my BASH script which automatically sends out an e-mail notification whenever the dynamic WAN IP address changes on your (Linux) system.

If you have a Linux box at home, and would like to know its address always, flawlessly, here is one possible solution not based on a third-party (paid) dynamic DNS service provider.

The script uses Ipify.org to fetch the WAN IP address, then sets up an authenticated SMTP session with an e-mail server of your choice and sends the IP address if it changes within intervals of 5 minutes. Note that the authentication require support for AUTH on the SMTP server. Also, you’ll need Perl on your Linux system for Base64 encoding of the authentication string.

To automatically start the script in the background on boot, add a cron entry as follows:

$ crontab -e

On a single line, enter:

@reboot /path/to/update_ip.sh
# update_ip.sh: Fake Static IP by geir.kjetil.nilsen@gmail.com (2020)

DOMAIN=my.e-mail.domain.goes.here #(example: hotmail.com)
SMTPHOST=my.e-mail.smtp-server.hostname.goes.here #(typically, the SMTP server hostname is smtp.$DOMAIN, e.g. smtp.hotmail.com)
SMTPPORT=465 #(SMTP port number)

MYHOSTNAME=my.local.hostname.goes.here #(free choice!)
MYAUTH=$(perl -MMIME::Base64 -e "print encode_base64(\"\000$MYUSER\@$DOMAIN\000$MYPASSWD\")")

while true; do
MYIP_NEW=$(curl 'https://api.ipify.org?format=text')
if [ "$MYIP" != "$MYIP_NEW" ];
if expr "$MYIP_NEW" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then
# Send e-mail notification
#: '
(echo "ehlo $MYHOSTNAME";
sleep 1;
echo "auth plain $MYAUTH";
sleep 1;
echo "mail from:<$MYUSER@$DOMAIN>";
sleep 1;
echo "rcpt to:<$MYUSER@$DOMAIN>";
sleep 1;
echo "data";
sleep 1;
echo "subject: Oh, behave! $MYHOSTNAME's got a brand new IP!"
sleep 1;
echo $MYIP;
sleep 1;
echo ".";
sleep 1) | openssl s_client -crlf -connect $SMTPHOST:$SMTPPORT
echo "Discarding new IP - it is not valid."
# Wait 5 minutes...
sleep 300;



Coding a Phase Vocoder for Tempo Changing and Pitch Shifting in Audio Applications

One of my mathematics lecturers once invited us to solve a problem that has fascinated me ever since. If you create a digital sound clip by recording your own voice, how can you transform that to mimic the celebrated Norwegian weather forecaster Vidar Theisen?


For those of us never having heard about dear Mr. Theisen, or even wasn’t born before he passed away, you can watch one of his daily NRK weather forecasts below.

It is pretty obvious that Mr. Theisen had a very distinct way of talking. A voice of slow tempo accompanied by a monotonic pitch. Nobody, at least at that time, would be unsure who you pretended to be if you slowly and flat-voiced said something about the weather at Spitsbergen.

The lecturer also happened to be my adviser, and his name is Prof. Hans Munthe-Kaas. Hans is a very good man, and he has opened many doors for students that has knocked on his door. He is on my list of personal relationships I could not have been without.

To get the wheels rolling in his students heads, Mr. Munthe-Kaas outlined several incorrect strategies you could try to begin with: to slow things down by a factor two, try to repeat the digital samples one-by-one so that the net duration will be doubled. Or even better, try to interpolate?

It turns out that both strategies actually works in terms of doubling the duration, but has the inevitable side effect of also shifting down the pitch of audio signals. It is analogous to slowing down the rotational speed of a record player: it obviously decreases the tempo of the sound, but the tone will also be darker. If you happen to own a record player, you are probably nodding affirmative at this point. In other words, we approach Mr. Theisen in terms of tempo, but not by tone. For pure sinusoidal waves, what we want is to extend the number of periods rather than increasing the length of one period.

Red leaf

Virtually, the tempo and pitch of a tune is inseparable. If you change the tempo, the pitch will also change. The figure on the right illustrates the concept: modifications can seemingly only be done along the green diagonal line.

Until the mid 60s, this was accepted as the truth. Then suddenly a paper disturbed the community; two bright guys named Flanagan and Golden solved the problem in the context of telecommunication. Thanks to it, we can separate the two parameters. Controlling the Theisen tempo independently of the tone is now easy. And the invention’s name? The Phase Vocoder.

According to the theory, and some years of trial and error for my part, if what you want is to change the tempo of a signal by a factor Pt/Qt, and shift the pitch by a factor Pp/Qp, all you have to do is the following:

  1. Transform the signal over to the time-frequency plane using the Short-Time Fourier Transform (STFT).
  2. Linearly interpolate the magnitude of the STFT by a factor Pt/Qt*Qp/Pp across the time dimension.
  3. Go over the phase of the STFT and make sure that the partial time derivative across the time dimension is preserved.
  4. Transform the modified STFT back into the time domain
  5. Re-sample the resulting waveform by a factor Qp/Pp to get the final waveform.

We definitely need some test data to try this out. I have recorded my own voice saying the following in Norwegian:

“Som vi ser har det blitt kuldegrader over omtrent hele landet”.

Translated to English this corresponds to something like: “As you can see, we now have temperatures below zero degrees across the whole country”. You can listen to the original sound clip in the player below.

This Matlab code implements the Theisen Transform following the step-by-step Phase Vocoder recipe above:

function y = theisen(x)
% Geir K. Nilsen, 2006
% geir.kjetil.nilsen@gmail.com

Ns = length(x);
Nw = 1024;  % Window width
hop = Nw/4; % Overlap width
Pt = 2; 
Qt = 5;
Pp = 5; 
Qp = 6;
r = Pt/Qt * Qp / Pp; % Tempo-pitch shift factor

win = hann(Nw, 'periodic');

Nf = floor((Ns + hop - Nw) / hop);

fframe = zeros(Nw,Nf);
pframe = zeros(Nw,Nf);

% Step 1: STFT
c = 1;
for i = 0:hop:((Nf-1)*hop);
    fframe(:,c) = 2/3*fft(x(1+i:i+Nw).*win');
    c = c + 1;

% Step 2 & 3: Linear interpolation & phase preservation
phase = angle(fframe(:,1)); 
c = 1;
x = [fframe zeros(size(fframe, 1),1)]; 
for i = 0:r:Nf-1;                        
    x1 = x(:,floor(i)+1);                
    x2 = x(:,floor(i)+2);
    scale = i - floor(i);
    mag = (1-scale)*abs(x1) + scale*(abs(x2)); 
    pframe(:,c) = mag .* exp(j*phase); 
    c = c + 1;
    phase_adv = angle(x2) - angle(x1); 
    % Accumulate the phase
    phase = phase + phase_adv;

% Step 4: synthesize frames to get back waveform. Known as the Inverse
% Short Time Fourier Transform.
c = 1;
Nf = size(pframe,2);
Ns = Nf*hop - hop + Nw;
y = zeros(1,Ns);

for i = 0:hop:((Nf-1)*hop);
    pframe(:,c) = real(ifft(pframe(:,c)));          
    y(1+i:i+Nw) = y(1+i:i+Nw) + pframe(:,c)'.*win'; 
    c = c + 1;

% Step 5: finally resample the waveform to adjust according
% to the pitch shift factor.
y = resample(y, Pp, Qp);

When applied to the original recording, the result is quite impressing. Listen to the modified sound clip below and judge yourself.

For a practical C# implementation, see my Github repository.

The Resurrection of the Computer Fridge

img_20190731_1837407130935668874283186.jpgThe computer fridge hypothesis is a seemingly brilliant idea: store and operate your computer in a fridge, and wave good bye to all heating issues.

However — in 2015, a disappointing video appeared on YouTube: Linus Tech Tips once and for all rejected the computer fridge hypothesis by an experiment showing that refrigerators always loose in thermodynamic battles against modern computers.

The heat dissipated by the personal computer will exceed the heat absorption capacity of the fridge evaporator — causing the ambient temperature in the fridge to rise rather than fall. If we consider the system as a whole, we have a serious self-heating problem, and there is nothing we can do about it.

Or is it?

Cracking The Self-Heating Problem

Pleasant ideas deserve to be treated with respect, right? They should be tried from every angle before being trashed. From first principles, I decided to challenge the rejection of the computer fridge hypothesis by proposing: the ventilated computer fridge hypothesis!

The Ventilated Computer Fridge Hypothesis

A Ventilated Computer Fridge

The ventilated computer fridge hypothesis is based on the following reasoning: If the fridge is equipped with a balanced ventilation system, most of the heat dissipated by the computer will be transferred out of the fridge, so there will be no self-heating. When the fridge is turned off, the system will simply function as a normal computer cabinet. Now, if we in addition route the in-air stream via the evaporator, the air will be cold when it hits the computer, thus absorbing heat from the computer on the way out of the fridge. See the sketch on the right.

I decided to test the new hypothesis, so I had to build my own computer fridge.

Building a Computer Fridge

I bought a second hand mini-fridge with a glass door from TempTech on eBay as a starting point.

Installing Balanced Ventilation

bb138b1h3790128944658168010.jpgI decided to install a simple balanced ventilation system represented by four Corsair ML140 Pro cabinet fans.

While the task of installing four fans in a mini-fridge is not the most pleasant thing a human being can do in the world — it can be done by some laborious drilling on the outside, and heavy angle grinding on the inside.

My friend Øyvind Colliander created a nice template for the drilling part. See the fan hole template below. The trick is to tape a printed template to the fridge wall, and use a punch and a hammer to mark the center of the holes before drilling. For the angle grinding, put on a face mask and cut out four squares on the inside aligned with the holes on the outside.

Result: two fans on the upper back (in-air), and one fan on each side (out-air).

Fan holes on the sides

Fan holes on the back

Fan hole template for Corsair ML140 Pro (A4 print-friendly PDF)

Bypassing the Thermostat & More

In order to get full control of the fridge’s cooling system, I bypassed the internal thermostat and instead installed an Arduino micro controller and an external relay board beneath the back plate on the inside of the fridge. I also permanently installed the Arduino DHT-11 sensor to get ambient temperature and humidity readings. The sensor is placed in the bottom right corner of the fridge. I drilled holes on the backside for 230 VAC power and Ethernet, and installed a power socket, as well as two AC/DC converters (36 VDC & 12 VDC) on the inside.

Lighting and a Retractable Shelf

At this point, the fridge was ready to be tested, but for fun I decided to take the concept just a few steps further… Some lighting is nice, right? And — uh, a motorized retractable shelf for the computer! The latter turned out to be more challenging.

Basically, I used FreeCad to design a rack-and-pinion based retractable shelf. The design consists of three main parts; the rack, an old electric parabola antenna motor with a pinion, and a clamp to fix it to the shelf. Thanks to Andre Böehme for helping out with the toughest part — namely modelling the pinion and a matching rack tooth profile. I used i.materialise to 3D-print the parts. Great service!

Retractable Shelf Design

ejectTo control the position and direction of retraction of the shelf, I combined two of the relays on the external relay board to achieve a polarity reversal switch.

The parabola antenna motor also has a built-in pulse counter circuit, which can be used to pinpoint its exact angular position. Basically, the circuit sends out short square pulses synchronized with the pinions angular movement. Position control is thus achieved by simply counting pulses with an analog input channel on the Arduino.

See below for a full (sloppy) wiring diagram of the system.


Installing the Computer


I installed the computer hardware on a Lian Li test bench placed on top of the retractable shelf in the fridge.

Computer Specifications: 

  • ASUS ROG STRIX B450-E GAMING Motherboard
  • AMD Ryzen 5 2600 Wraith Stealth
  • Corsair Vengeance LPX DDR4-3200 C16 BK DC – 32GB
  • Samsung 970 EVO Plus SSD M.2 2280 – 500GB
  • ASUS GeForce RTX 2080 Ti ROG STRIX OC – 11GB GDDR6 RAM
  • Corsair 1000W PSU

Computer Fridge Code

The software I developed for the computer fridge basically consists of three parts;

  • An embedded Arduino back-end coded in C (deepfridge.ino)
  • A Python CLI frond-end to control the whole system (deepfridge.py)

Screenshot from 2019-08-09 11-47-03.png
Deep Fridge CLI

  • A set of Python test scripts with data logging functionality to conduct experiments (tests/deepfridge_logger_test*.py)

The code is available on Github: https://github.com/gknilsen/computer_fridge

The Computer Fridge Put at Test

Let’s run a series of tests to see if the computer fridge works. We will use the test scripts tests/deepfridge_logger_test*.py included in the Github repository. The test scripts log the following parameters to CSV files;

  • Fridge temperature  (by deepfridge.ino / Arduino DHT-11 sensor)
  • Fridge humidity (by deepfridge.ino / Arduino DHT-11 sensor)
  • CPU temperature (by calls to lmsensors / integrated CPU thermistor)
  • CPU utilization (by calls to cpu_usage.sh which is based on calls to top)
  • GPU temperature (by calls to nvidia-smi / integrated GPU thermistor)
  • GPU utilization (by calls to nvidia-smi)

Some of the tests put the CPU and/or GPU to maximum utilization under certain periods — this is achieved by calls to stress and gpu-burn.

Test #1 — Computer CPU & GPU at Idle with Cooling

Description: The computer CPU & GPU is left at idle. First run for 5 minutes when the compressor is OFF to get a baseline, then the compressor is turned ON, and the logging continues for 55 minutes. Total test time is 1 hour (3600 seconds).

Test script: tests/deepfridge_logger_test1.py

Log file: tests/test1.csv



Conclusion: Running the compressor for about an hour results in a CPU & GPU temperature drop of 5 degrees Celsius, when the computer is at idle. Also the ambient fridge temperature is reduced by 5 degrees Celsius.

Test #2 — Computer CPU at Maximum Utilization without Cooling

Description: The computer CPU is left at idle the first 5 minutes, and the compressor is OFF, to get a baseline. Then the computer CPU is put on maximum utilization for 5 minutes. The computer CPU is then left at idle for 5 minutes more minutes. Total test time is 15 minutes (900 seconds).

Test script: deepfridge_logger_test2.py

Log file: tests/test2.csv



Conclusion: Peak CPU temperature under max utilization is at 53.7 degrees Celsius.

Test #3 — Computer CPU at Maximum Utilization with Cooling

Description: The compressor is set ON, and the computer is left at idle the first 45 minutes. Then the computer CPU is put at maximum load for 5 minutes, followed by 10 more minutes at idle. Total test time is 60 minutes (3600 seconds).

Test script: deepfridge_logger_test3.py

Log file: tests/test3.csv



Conclusion: With constant cooling for about one hour & max CPU utilization for 5 minutes, again the CPU temperature is reduced by 5 degrees Celsius. Also the ambient fridge temperature is reduced by 5 degrees Celsius.

Test #4 — Computer GPU at Maximum Utilization without Cooling

Description: The computer GPU is left at idle the first 5 minutes, and the compressor is OFF, to get a baseline. Then the computer GPU is put at maximum utilization for 5 minutes. The computer GPU is then left at idle for 5 minutes more minutes. Total test time is 15 minutes (900 seconds).

Test script: deepfridge_logger_test4.py

Resulting log file: test4.csv



Conclusion: Peak GPU temperature under max utilization is at 66 degrees Celsius.

Test #5 — Computer GPU at Maximum Utilization with Cooling

Description: The compressor is set ON, and the computer is left at idle the first 45 minutes. Then the computer GPU is put on maximum load for 5 minutes, followed by 10 more minutes at idle. Total test time is 60 minutes (3600 seconds).

Test script: deepfridge_logger_test5.py

Log file: tests/test5.csv



Conclusion: With constant cooling for about one hour & max GPU utilization for 5 minutes, the GPU temperature is reduced by 3 degrees Celsius. The ambient fridge temperature is reduced by 4 degrees Celsius.


The tests show that there are no signs of self-heating, and that the CPU/GPU temperature drops 3-5 degrees Celsius when the cooling system has been activated for about an hour.

The ventilated computer fridge hypothesis has been confirmed!

However, is a temperature drop of 3-5 degrees Celsius worth the effort? Well, it depends. If you play around with overclocking and want to squeeze the most out of your system, 3-5 degrees Celsius might be enough. But is it really worth the effort? The system complexity is overwhelming, costly and not especially effective in its current state. However, the project was a great learning experience, and it was really fun! I doubt that I will run the cooling system much in its current state on a daily basis though.

There is plenty of room for optimization. In fact, currently I have not tested to see what happens if the cooling system remains activated for a longer period than one hour. Same is true for extended periods of maximum CPU/GPU utilization.

Please leave your thoughts in the comments section below. I am happy to receive ideas which can potentially improve the cooling performance of the system.

Melted Butter Cocoons – Part II

Short story: butter coccoon dry-aging attempt #1 as described in Melted Butter Coccoons – Part I was unsuccessful. The resulting steaks came out not rotten, but cigar-close to it.

Two key take-aways are

  1. Get hold of a fridge which is stable at 1 degree Celsius maximum.
  2. Get hold of meat which is guaranteed to not have undergone any form of prior wet aging.

To be honest, I have lost a bit of interest in this project, so I am not sure if there will be a second attempt. I have another project related to my PhD program in deep learning involving the dry-aging fridge (which obviously was not suitable/cold enough for this exercise). More on the new project soon!

Melted Butter Cocoons – Part I

Melted Butter Cocoons

I still remember the intense flavor and juiciness of that thick piece of Sirloin. Crusted in the name of Kona, Bone-In and Aged Dry. It was an exceptional dining experience at the Capitol Grill in Houston, Texas. It was the event that gave me the inspiration for this two-part blog post.

In this first part, I will introduce you to my little home project where I try to dry age Sirloin steaks at home. In part two, we will see the results. When? Well, in about 60 days my friend — when the meat is — say, middle — aged.

Dry Aging TL;DR

Dry aging of meat refers to the process of storing meat over a long period of time in a dry environment. This is different from traditional wet aging, where the meat is kept in a vacuum bag over a shorter period of time. Both ideas aim for increased tenderness, intensified flavor — not to mention the prolonged preservation time, which in fact is a common denominator behind many of the world’s culinary specialties. The Rakfisk of Norway is one golden example of this: trout is kept in a bin with sugar, salt and water. A controlled form of rotting process starts, and you can consume the fish over the course of months. One side effect is some very special taste and — uhm — smell properties! Same is true for many other specialties as well.

Dry aging is rooted in the same bio culinary paradigm as sour dough: you want your bio climate to be meat (or dough) friendly, and develop to the better over time. A good dry aging fridge (or room) can develop to the better over the years. It will be a unique bio climate colored by the natural microbiota in that environment.

Instead of going on to explain all the fancy sides of dry aging, I point you to Jess Pryles blog. Read on and you will learn everything you need to know. You will also notice a crucial “fact”: Dry aging is not for the home chef.


Because if you slice your meat into individual steaks before you proceed, they will basically come out as cured ham, eventually — dry and hard. Point is not to cure the meat! Original idea is to remove the outer dried layer before cooking and consumption. If you dry age individual steaks, they will be dry all the way through. Traditionally, dry aging calls for whole cuts of meat, and you will loose something like 5-10% from removing that outer dried layer after aging. So, either you go buy that large whole cut of meat, and accept the loss, or you stick to that boring wet aging, is it right?

Not quite! It turns out that Casper Stuhr Cobzcyk has developed a new dry aging technique where he first dips his (still) whole cuts of meat in melted butter to form a cocoon protecting the steak from drying out on the surface. It reminds me about cheese waxing!

If you combine the thoughts of Pryles and Stuhr Cobzcyk, I figured it would allow for dry aging of individual steaks at home, since the melted butter cocoon will protect the individual steaks from drying out at the surface, and, hence, you will not need to remove the outer layer nor will they be cured!

Butter probably acts like sort of a “let-moist-out, not-let-oxygen in”-barrier. This in turn, brings up a lot of questions Mr. Stuhr Cobzcyk does not answer. He probably has them, but why should he really share them with the world. For example, what is the optimal thickness of the butter cocoon? Unfortunately, I don’t know all the answers yet.

I decided to put strings around my two steaks, before dipping them in. This allowed me to hang them in the fridge rather than letting them sink into the rack and potentially create a butter mess.

Dry aging started: 27th of October, 2018.

We aim for 60 days, so dry aging stops: 26th of December, 2018.

A Double Thank You

I was reading at the library when I got a phone call from my boss. She asked me to immediately return to home because of a not-so-unusual & escalating disobedient kids situation.

I got onto my feet and started to pack my bag. I eyed the cord of my laptop charger, the way it snaked itself over the floor, and ended up in a socket overly close to the feet of a random lady.

I approached her and gesticulated it would require her attention to resolve the situation. She read it and started to unplug my charger but was not able to get it out. She gave up quickly, and I had to help her. And so I successfully managed to unplug it under grant of an informal intimate zone intrusion permission. Once unplugged, I said, “Thank You”, and she responded “Thank You”.

It was an interesting Double Thank You for the help situation: I thanked her for permitting me to enter her intimate zone, and I thanked her for her initial failed attempt of helping me. Then she thanked me back for being polite and helpful enough to help her when helping me.

Fat Man & Little Boy

On a sunny spring day, I craved for steak and went to see my good old barbecue on the patio. But I found it ill-conditioned. The rain in Bergen had finally taken its toll on the rusty little boy: the price of storing and using it outside during winters now had to be paid. So I questioned myself whether to buy a new one a larger and better one. Filled with ambivalence, I went to the retailer and found a big fat man. Upgrading is a bliss. Ka-ching.

Some years ago I used to work for an oil & gas company. In that context — I visited a site we had some cross-business activity with — located in Houston, Texas. Upon arrival I was told to settle in the empty cubicle of another engineer on vacation. On the cube wall I noticed a drawing showing a comparison between two versions of the site’s main product: the legacy 15k psi ram BOP (Blow-Out Preventer), and the next 20k psi generation. Let me add that the size of such equipment does not grow linearly with the pressure rating, so the next version was a fat man compared to the little boy.

Typically, when bad oil spill disasters take place, the BOP is likely to be in the spot. The BOP acts as the main security system resting on top of the very well head. They are used to seal wells under normal conditions, as well as in emergency situations. In case of the latter, the BOPs have strong hydraulic shear rams fitted with sharp steel blades. They can cut through any solid obstacles (e.g. drill pipe) situated — intentionally or not — in the bore. The aim is to seal the well and prevent oil spill, or even blow-outs on the rig deck — usually leading to fire, havoc and death.

I noticed, printed with small letters beneath each of the two drawings; “Little Boy”, “Fat Man”. It took me a couple of seconds before I realized the meaning. Call it irony, sarcasm or blasphemy — the reference was to the respective nukes detonated by US over Hiroshima and Nagasaki in 1945.

It also got me thinking about the two I now have on the patio back home.

Fat Man & Little Boy

Device Equals ANSI Dot Sys

Click here to download the above image in android wallpaper format!

As a kid I figured out how to edit my father’s config.sys and autoexec.bat to change font colors in MS-DOS. Without the help from the internet, it was such a mysterious age where small technological discoveries were made based solely on trial and error, gossip, obscure scripts, tools and white papers spread on LAN parties and floppies.

The trick was to load the binary file ansi.sys using the DEVICE= directive in config.sys, enabling escape sequence interpretation to the standard output — which included means for changing the background and foreground font color on the command prompt.

I later installed Red Hat Linux 5.2 in 1998, but after a while I ended up compiling my own “distro” based on Linux from Scratch. My favourite nostalgic piece of memory is still my only ANSI art creation to date, namely my /etc/issue (image shown above), born based on piping and overlying Tux from Welcome2L (c) LittleIgloo.Org on a classical Windows 9x blue screen of death replica!

UPDATED 17/8-18: Added Android wallpaper version of BSOD Tux.

The Ashlad’s Older Brothers

I tend to notice small things in life. Combined with some pondering, they can make me unusually happy. Today I proudly present one of my favourite curiosities of all time:

The priceless, harassing laughter of the Ashlad’s older brothers.

The sound clip is taken from the legendary stop-motion animated short by Ivo Caprino, which is based on the Norwegian folk tale “Askeladden og De Gode Hjelperne” (English: “The Ashlad and His Good Helpers”) [ref. 02:43].

For some reason, DailyMotion.Com has taken the liberty to publish the full original movie online. I believe Caprino would have flipped in his grave if he knew. And I wouldn’t be surprised if his family company considers even more advanced gymnastics alive!