Author Archives: voidptr

The Evolution of Evolvability: Changing Environments Promote Rapid Adaptation in Digital Organisms

Oh hey, I forgot to post about this when it happened last year. My paper for the ALIFE XV conference was published!

Canino-Koning, Rosangela, Michael J. Wiser, and Charles Ofria. “The Evolution of Evolvability: Changing Environments Promote Rapid Adaptation in Digital Organisms.” In Proceedings of the Artificial Life Conference 2016, 268–75. The MIT Press, 2016. doi:10.7551/978-0-262-33936-0-ch047

Abstract

Genetic spaces are often described in terms of fitness landscapes or genotype-to-phenotype maps, where each potential genetic sequence is associated with a set of properties and connected to other genotypes that are a single mutation away.  The positions close to a genotype make up its “mutational landscape” and, in aggregate, determine the short-term evolutionary potential of a population. Populations with wider ranges of phenotypes in their mutational neighborhood tend to be more evolvable. Likewise, those with fewer phenotypic changes available in their local neighborhoods are more mutationally robust.
As such, forces that alter the distribution of phenotypes available by mutation can have a profound effect on subsequent evolutionary dynamics.We demonstrate that cyclically-changing environments can push populations toward more evolvable mutational landscapes where a wide range of alternate phenotypes are available, though purely deleterious mutations remain suppressed. We further show that populations in environments with drastic changes shift phenotypes more readily than those in environments with more benign changes. We trace this effect to repeated population bottlenecks in the harsh environments, which result in shorter coalescence times and keep populations in regions of the mutational landscape where the phenotypic shifts in question are more likely to occur.

You can read the rest over at the MIT Press site, or download the pdf HERE.

Advertisements

Python I2C Cypress Capsense Library on BeagleBone Black

Over the weekend, I spent some time getting my old Cypress CapSense Express capacitive touch boards to talk to my new BeagleBone Black.

On the BBB, I2C is relatively trivial. It includes internal pull-ups, like the Arduino, so you don’t have to muck around with external resistors. My boards have a spot for pull-ups, but I never populated them, since I expected that I would rarely have a single board running on a bus. The boards also run on 3v3, so that was easy on the BBB.

My language of choice is Python where possible, so I hunted around for libraries to perform I2C over python. SMBus to the rescue! Also, Adafruit has some nice BBB libraries for I2C, which I cribbed as a starting example.

I’ve posted the result to GitHub, alongside my older Arduino/Chipkit Cypress Capsense library, and posted the python module to PyPI, so you can do fetch it with pip or easy_install.

To invoke:

import CypressCapsense_I2C

####### INITIAL SETUP - Only Do Once Per Device
# sensorInit = CypressCapsense_I2C.CypressCapsense_I2C(0x00, debug=True)
# sensorInit.setupDevice()
# sensorInit.changeDeviceAddress(0x5D) # or whatever address you want
########################################################################


## this device has already been set up to use 0x5D as its address
sensor = CypressCapsense_I2C.CypressCapsense_I2C(0x5D, debug=False)

while(True):
    print "0x%02X" % sensor.fetchTouchStatus()

Cutting 0.8mm PCB with Paper Guillotine

I just received my iTead PCBs in the mail (took about 3 weeks). I paid an extra two dollars to get half-thickness so that I could cut them more easily. My regular old paper guillotine (Xacto brand, if that matters) made short work of them.

Yes, I’m aware the video is sideways… again.

These PCBs will go in the Helix tubes to provide touch sensing capabilities.