Javascript Testing on Travis CI with Karma and Mocha

By Emily Dolson on November 24, 2017 in Software Development / 0 Comments
Javascript Testing on Travis CI with Karma and Mocha

When working on large software projects, automated testing dramatically reduces the risk of unknown bugs creeping into your code. That’s why I’m a huge fan of services like Travis CI, that automatically test all code that is pushed to a git repository. However, some code is a lot easier to write automatable tests for than others. Recently, I’ve been working on testing some code that has proved very challenging to test: data visualization code compiled from C++ to Javascript via Emscripten. Now that I’ve got it working, I’m writing this post to document how, in hopes that it will save others a lot of trouble. My ultimate solution was to use the Mocha testing framework and the Karma test runner, but I’m going to start out by talking about a few other things I tried and why they […]

Fall Elementary Science Nights

By Matthew Andres Moreno on November 17, 2017 in Education, Goings-On / 0 Comments

We wrapped up our third elementary science night representing BEACON yesterday. At Marble, Whitehills, and Glencairn schools, members of our lab teamed up with other BEACON friends to share clip birds: learning about how form relates to function by foraging for different-sized seeds with different-sized beaks (i.e. different clothespins) hominid skulls: how do the different skull morphologies relate to function and how can we see differences between organisms? geckos: Travis brought live Crested and Leopard geckos to compare and contrast their adaptations… how can we tell that the geckos came from different environments? giant evolutionary timeline: learning about the different animals that lived across evolutionary time. Thanks to these schools for hosting us and all the families that came to visit! We’re looking forward to more elementary science nights in the spring. Until then, here are […]

Signal GP, an Introduction

Signal GP, an Introduction

Genetic programming (GP) is the application of natural principles to evolve computer programs rather than writing them by hand. Here, I introduce Signal GP, a new type of linear GP representation designed to more directly capture the event-driven programming paradigm, allowing evolved programs to handle signals from the environment or from other agents in a more biologically inspired way than traditional linear GP representations. GP is successful across a growing set of problem domains. Signal GP targets problems where programs, much like biological organisms, must react on-the-fly to signals in the environment or from other agents. I’ll address the following questions in this blog post: What is linear genetic programming? What exactly is the event-driven programming paradigm, why is it so powerful, and why do we want to capture it in GP? And, how exactly does […]

Happy Halloween from the Devolab!

By Matthew Andres Moreno on October 31, 2017 in Goings-On / 0 Comments
Happy Halloween from the Devolab!

Happy Halloween from the Devolab! Here are some pictures from our pumpkin carving party a few weeks ago. Click through the gallery below to see our lab in action carving pumpkins, a group shot of our creations, and individual photos of our pumpkins. We have some pretty serious pumpkin carvers in the group… a few of us even went the extra mile to polish up their jack-o’-lantern with dental floss!

Introductory Glimpses of Evolvability for Computer Scientists

By Matthew Andres Moreno on October 27, 2017 in Research, Review / 0 Comments
Introductory Glimpses of Evolvability for Computer Scientists

This is one of a series of posts on evolvability. It is based off my undergraduate thesis, which I wrote at the University of Puget Sound under advisors Dr. America Chambers and Dr. Adam Smith. The original thesis is available here. Introductory Glimpses of Evolvability for Computer Scientists How can the structure of an evolving organism affect the phenotypic outcomes of mutational perturbation? We will walk through a thought example that casts this question in a light more familiar to programmers. Computer scientists who have worked on software understand that two pieces of code that meet identical specifications — return identical output for any input given — can differ vastly in difficulty to extend, modify, or maintain. Software implementation, internal structures largely invisible from the perspective of an external interface, accounts for this discrepancy. Computer scientists […]