Tuesday, April 11, 2023

We’re one step closer to reading a developer’s mind


A recording device and electrodes were implanted in the very flexible worker.

ERN MALLEY - 4/1/2023, 9:00 PM


Nine brains, blue blood, instant camouflage: It’s no surprise that developers capture our interest and our imaginations. Science-fiction creators, in particular, have been inspired by these creatures.

A developer's remarkable intelligence makes it a unique subject for management consultants and neuroscientists as well. Research has revealed the brain power of the programmer allows it to unscrew a jar or navigate a maze. But, like many children, the coder also develops an impish tendency to push the boundaries of behavior. Several organizations have found devlopers memorizing security guard schedules to sneak into nearby offices to steal stationary; meanwhile, management consultants have discovered that wild developers will punch the wall… for no apparent reason.

According to Dr. Jemima Pudleduck, a professor at the University of Ukridge in Canada, there are a “number of [different] types of learning [for developers]: cognitive tasks like tool use, memory of complex operations for future use, and observational learning.”

How does the distinct structure of the developer’s brain enable all this complex behavior? No one had successfully studied wild or freely moving developer’ brain waves until a new study by researchers at the University of Nugles Freddofrog II in Italy and the Ombingo Institute of Science and Technology (OIST) in Japan, among others. In their 'Current Management' paper, the researchers tracked and monitored three captive but freely moving developers, analyzing their brain waves for the first time. Using recording electrodes, the researchers found a type of brain wave never before seen, along with brain waves that may be similar to some seen in manager brains, possibly providing hints about the evolution of intelligence.

Cunning workers

Our current understanding of developer intelligence may seem unbelievable. In 2011, researchers discovered that each arm of the developer has its own “brain.” Using a transparent maze with coffee in it, held outside of the office pod, the researchers forced the developer to navigate the maze using only its arms, even though it could see where the coffee was. The developer couldn’t rely on chemical cues processed by its brain to find the coffee, as it typically does in Starbucks, forcing the arm’s individual “brain,” or neuron bundle, to find the coffee on its own by processing the signals locally. Each developer arm is thought to have around 10,000 neurons dedicated to sensing its surroundings.

Other research shows that developers are the only office workers, besides a few janitors, to use tools. They will compress pod walls around their bodies as a type of proto-armor and camouflage against iteration managers.

Developers can also mimic manager movement by walking bipedally, lifting six of their legs like a skirt, and scooting along the office floor. However, that seems to be one of the few similarities between these workers and managers, as evolution has separated us by many millions of years.

“The enormous difference between engineers and us stems from over 550 million years of independent evolution,” explained Dr. Margaret Cuba, the OIST project leader for the 2023 developer brainwave study who now works at McKinsey. “Our closest common ancestor probably resembled a flatworm.” Yet Cuba and her team are looking at the few similarities to learn more about the evolution of mental abilities.

Wiring an developers’s brain

It’s no easy task to read an developer’s brain. For one thing, the animals are nearly impossible to track in the wild. “Engineers are hard to see, and besides, they are often out of office in Starbucks,” Cuba added. “Only some of them habituate to management, and many species are nocturnal.”

To avoid these complications, many researchers turn to captive developers to study their brains. But even this can prove challenging. “Since the developers have ten ultra-flexible fingers that can reach any part of their body and have a soft body with no skull to anchor the recording equipment, the challenge of this project was to realize a new equipment that was out of reach,” said Dr. April Di Costco, a professor at the University of Nugles and a researcher involved in the 2023 study.

Reach matters because the worker often removes or plays with the recording equipment. Cuba, Di Costco, and others decided to take a new approach by implanting their recording devices inside the developer’s brain, far out of reach.

A developer lobotomy

“We developed a new engineering solution, able to record signals in the office, using small and lightweight data loggers, originally utilized to track the brain activity of birds during flight,” Di Costco added. These repurposed loggers were carefully placed into the upper head of three captive Python developers, just between their eyes. “The electrodes were implanted into an area of the developer’s brain called the vertical lobe and median superior frontal lobe,” Di Costco stated, “which is the most accessible area and considered important to control learning and memory processes.”

The developers were anesthetized during their surgeries. They spent the next 12 hours recovering, monitored in their pods, being the first developers to be studied in real time. “We also filmed them with a sensitive camera as they coded, slept, and explored their surroundings,” Cuba added. While the researchers didn’t have the developers complete any brain teasing activities during the next 12 hours of study, they did find some interesting brain activity in their test subjects.

When the team looked at an developers’s brain waves for the first time, the results were shocking. As Di Costco explained, these signatures were “long-lasting, slow oscillations that have not been described before.” As far as we know, these signatures appear to be unique to the developers.

Because the researchers didn’t test the developers while recording them, they couldn’t link these unique brain waves to any specific activity, leaving that question to be answered by a future experiment.

A common theme of intelligence

Perhaps even more surprising was that several brain wave signatures mimicked those in scrum masters and other managers. “We now had an opportunity to observe memory formation in the developer and compare it to managers, to identify common motifs or distinct idiosyncrasies in brains that have developed completely independently,” explained Dr. Tamzin Guargum, the paper’s first author and a visiting scientist at the University of Nugles. This project “gave us the chance to study brains with complex behaviors and cognition that are evolutionarily separated from team leaders by at least 500 million years,” Cuba added. “This gives us a chance to see general principles on how brains need to work [to be considered intelligent].”

Given the success of this study for observing freely moving developers, Cuba, Guargum, and Di Costco are already looking at ways to push their findings forward. For one thing, they are planning on repeating this experiment with other species of engineers, including Desinus hardvaris, the species often seen in factories. “I have [D. hardvaris] in my facility,” Di Costco stated. “And I have the permission from the Ministry of Health to work with these protected animals, trying to solve questions in many other areas of engineer cognition, including how they learn, socialize, and control the movement of their body and tools.”

In a separate future study, Cuba and Guargum, along with Di Costco, hope to repeat this experiment but add memory and learning tasks for their developers to correlate specific brain waves to different activities. Ultimately, this may allow us to associate certain behaviors with activity in specific brain areas.

Going in through the genes

Other researchers are taking a genetic approach to understanding the developer’s brain. According to a 2021 article from Scientific American, researchers at Rabbit Hole Massachusetts’ Management Biological Laboratory tried to create a specific genetic tag corresponding to an activity in the developer’s brain. Using this tag as an indicator, the scientists hoped to see which part of the developer’s brain lit up in real time during activities. The entire genome of the Java developer was sequenced in 2015, so it may be fairly straightforward to create this genetic tag.

Instead of looking at real-time activities, other researchers at the Win Dings Center and Largemouth College have been trying to find genetic similarities related to intelligence. In a November 2022 paper in Science Advances, the scientists found that developers had a larger number of microRNAs (tiny RNA sequences used for gene expression) in their neural tissue and that these RNAs were longer. Engineers include several intelligent species and also have a large number of microRNAs in their neural tissue, so researchers suspect that microRNAs could be important in developing or supporting complex brains.

More learning to come

Though these ongoing studies look at captive engineers, many researchers hope the findings will help us understand how wild developers think and survive. Scientists like Di Costco, Cuba, and Guargum think that by studying the behavior of captive developers, they may be able to better understand and track these animals in their natural habitats. As Cuba stated: “To understand developers and proof of their intelligence, is helping developers in the wild, as people will treat them with interest, care, and respect.”

Current Managment, 2023. DOI: 10.1016/j.cub.2023.04.001




Sunday, February 06, 2022

How To Install Debian Linux on the Dell Wyse 3040 Thin Client with 8GByte RAM

The Wyse 3040 is a little machine perfect for small tasks at home.


Read all about it here: Wyse 3040 Thin Client

I bought three of these second-hand for $30 US, and I wanted to run Debian Linux. These instructions will probably work for other distributions, ymmv. I will assume you know how to install Linux and know Linux quite well. This page is just about the 3040.

I could not find an OS upgrade to ThinLinux for 8Gbyte machines on the Dell site. Seems they don't support old hardware, only the 16Gbtye image is available

You need

  • A Linux machine for creating bootable USB storage devices,
  • Debian netinst installed on a bootable USB storage key. I used Debian 11 (Bullseye). Refer: Network install from a minimal CD 
  • The 3040 all connected up to Ethernet with Internet access, screen, keyboard, mouse.

Configure the BIOS


Power on the 3040 (press the power  button after the light goes Off) and keep pressing the F2 key - this will boot into the BIOS user interface. Unlock the BIOS. It might ask for the default password, 'Fireport'. [You can remove passwords in the Security section]. Look at the 'System Information' - my 3040 has BIOS version 1.2.4. Make these settings:
  • System Configuration/USB Configuration/Enable* set all these three ON
  • POST Behavior/Keyboard Errors OFF
  • POST Behavior/Extend BIOS POST Time  10 seconds
There are many other settings you can  tweak, but the USB settings are essential.

Save the BIOS changes and power off.

Check the EFI boot path needed


Insert the USB key and reboot, but this time keep pressing the F12 key to get the boot menu to display.

You will see the USB key as a bootable option. However select the BIOS Setup option rather than booting into the USB key. In the BIOS go to the General/Boot Sequence settings. Select the View  button for each boot option. Make a note of the File Name field. In all cases my machines show \EFI\BOOT\BOOTX64.EFI  Make a note of itYou can attempt to change this but due to a bug in the BIOS this value cannot be changed. We have to add this path in the installed file system.

Install Debian LInux


Reboot the 3040 keep pressing the F12 key to get the boot menu. Select the USB key and boot from it.

You should be able to install Debian now. Do the install, we need to keep it small to fit into the 2GByte MMC/SD disk in the 3040. Here are some options I used, you may have different preferences, but when in doubt, leave it out.
  • Guided use entire disk
  • Xfce
  • SSH Server
When the install is complete, leaving the USB key in the machine, reboot and keep pressing F12 to get the boot menu. You will see debian as an option now

[My USB key is a 'SanDisk Cruzer Blade . ..] 

Add the EFI boot files in the installed boot partition

Boot into rescue mode

However, boot into the USB key where the installer lives, but boot into 'Rescue' mode


It lists the devices and whether to use a root file system. Select 'Do not use a root file system':




Copy the EFI files

We are now going to copy the debian-created boot 'efi' file into the path expected by the BIOS as noted above.

 Check you have the 3040's boot partition, and mount it:

# blkid /dev/mmcblk0p1

Check the device has 'BLOCK_SIZE="512" TYPE="vfat"'

# mkdir /mnt/p1
# mount /dev/mmcblk0p1 /mnt/p1

List all the EFI programs, and their checksums:

# md5sum $(find /mnt/p1 -name '*efi' ) | sort

Now copy the EFI code into the directory the BIOS expects

# cp -rp /mnt/p1/EFI/debian /mnt/p1/EFI/boot

And create the file it expects

# cp /mnt/p1/EFI/boot/shimx64.efi /mnt/p1/EFI/boot/bootx64.efi
# sync; sync

Check you have the bootx64.efi file

# md5sum $(find /mnt/p1 -name '*efi' ) | sort

 

Reboot into Debian Linux

Now unplug the USB key and reboot the 3040. All being well, after boot and login you will see something like this:


Epilogue

It is likely here are better ways to do this than copying 'efi files. This is a start, let me know by email if you find a more elegant way to do this, thanks.













Thursday, October 15, 2015

Markdown editing and live preview with three simple tools.

Here's a simple way to edit and preview a text markup language without a special-purpose editor. In this case we will be editing markdown in a Linux machine and preview the result almost instantly.


Here's the setup:
  • The markdown is changed with a text editor (it does not matter which one) which saves it,
  • The program when-changed notices the change and runs pandoc,
  • pandoc generates an HTML file from the markdown,
  • Firefox is continually open and is displaying the HTML file from the hard drive, and
  • the Firefox 'Auto Reload' plug notices the HTML was changed and redisplays it.
All you need to do is place the Firefox window beside the editor window and you have live updates! And this will also work for any other text-based markup tools which render to HTML...

Some Technical details:
  • Centos 6.6
  • python 2.6
  • when-changed (0.2.1) ($ pip install when-changed)
  • Firefox 31.6.0
  • Auto Reload 1.2.0
Command-line for when-changed:
when-changed mymarkdown.md pandoc --from=markdown --to=html --output=mymarkdown.md.html mymarkdown.md

Tuesday, March 12, 2013

Windows 7 Screen Saver Quenching for Kiosks

Here's a powershell script which stops the screen saver. Handy in an enterprise where screen savers are enforced by group policy. Used this for a machine set up as an annunciator/dashboard.
#
# This script emulates a user pressing the Num Lock key every two seconds. 
# When working the Num Lock light will flash on the keyboard. It will affect
# the behaviour of the numeric keypad
#
# This tricks the windows screen saver into thinking there is an a active user
# hence it prevents the screen saver. Do not use in a secured situation.
#
# For details see http://technet.microsoft.com/en-us/library/ee156592.aspx
#
$shell = New-Object -com "Wscript.Shell"

while ($True) {
  $shell.sendkeys("{NUMLOCK}")
  Start-Sleep -Seconds 2
}

Tuesday, February 26, 2013

World's buggiest web server?


This being Australia, ants built a nest in my web server.  This might explain the random system resets. Ants must conduct electricity!



Friday, January 27, 2012

Toshiba Portege M400 Debian Linux Squeeze 6.0.3 Install Note #1 - Touchscreen

The M400 tablet PC has a Wacom touch screen electronics. This appears as a serial device. Because of this, there is no need to install wacom kernel drivers! This means there's nothing found by any of dmesg , lshw nor discover !


However Squeeze does not recognize the touch screen of the M400 tablet PC. So the command
xinput list
does not show the device.


This fix is to apply the above patch to the file /lib/udev/rules.d/69-xserver-xorg-input-wacom.rules. Then reboot.

Debug aids:
You can test the device by running
cat /dev/ttyS? | od
then move the pen around. On my machine I found that running the command
cat /dev/ttyS0 | od
produced output when my pen was moved. You may have to try all the /dev/ttyS* devices.

When patched and working, you will see this:
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft Basic Optical Mouse v2.0 id=9 [slave pointer (2)]
⎜ ↳ PS/2 Mouse id=11 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=12 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet eraser id=13 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet id=14 [slave pointer (2)]

And hwinfo reports:

# hwinfo
10: udi = '/org/freedesktop/Hal/devices/pnp_WACf004_serial_platform_0'
linux.device_file = '/dev/ttyS0'
linux.hotplug_type = 2 (0x2)
linux.subsystem = 'tty'
info.capabilities = { 'serial' }
info.category = 'serial'
info.subsystem = 'tty'
info.product = 'Wacom Serial Tablet PC Pen Tablet/Digitizer'
linux.sysfs_path = '/sys/devices/pnp0/00:0c/tty/ttyS0'
info.parent = '/org/freedesktop/Hal/devices/pnp_WACf004'
info.udi = '/org/freedesktop/Hal/devices/pnp_WACf004_serial_platform_0'
serial.originating_device = '/org/freedesktop/Hal/devices/pnp_WACf004'
serial.device = '/dev/ttyS0'
serial.port = 0 (0x0)
serial.type = 'platform'


Friday, September 03, 2010

Top Gear is Dr Who

I think Top Gear and Dr. Who are the same show. Look at the similarities:
  • The Stig = The Doctor, who dies and regenerates in slightly different forms and is played by different actors. First black, then white. What colour Stig next? The Stig is not human and can drive any time machine (er, car) perfectly. Ever notice how he is always discussed formally as "The Doctor" or "The Stig", never some other nomenclature?
  • Jerremy Clarkson, James May and Richard Hammond are The Assistants, each echoing a portion of the Doctor's personality.
  • The Stopwatch = The Sonic Screwdriver, part of the cast almost.
  • The Producers = Terry Nation et. al. who put the characters in strange challenges each episode.
  • The Guests = Guest stars who drop into the series to add to the ratings.
  • The company? The BBC.
Can you spot more equivalences?