New Photos
March 20, 2013, 9:21 p.m.
Feb. 17, 2013, 10:13 p.m.
I have updated the Media page of the site to include videos. I will use this page to consolidate and link all uploaded videos on the site from now on. Enjoy!
Feb. 10, 2013, 10:09 a.m.
Winter Storm Nemo came and went, and after dropping more than two feet of snow, left us with a lot of shoveling to do. But that would not stop us from having a little fun with June after her first, real snow storm...
June's Blizzard Stroll from Will Oemler on Vimeo.
Jan. 10, 2013, 10:09 p.m.
A couple years back, while developing an application that built reports using large amounts of genomic data, I discovered that the built-in Excel 2007-format file writer in Pipeline Pilot was completely incapable of writing files close to the maximum row and column limit of the file format. The Java implementation of the writer would horde the worksheet data in memory and quickly run out of heap space, leaving me with no output and angry scientists. To get around this, I decided to leverage Pipeline Pilot's scripting wrappers to create my own Excel file-writer component. However, now I was faced with another issue: compatability. Worried about server and package updates, interpreter compatability, and business process bottlenecks, I opted to write my own file-writing script from scratch, without installing any third-party modules. Two versions of Pipeline Pilot later, my script still runs faster and consumes less memory than the built-in Excel ...
Nov. 21, 2012, 11:58 a.m.
Dynamic Content Containers are a quick and easy way to add slick AJAX functionality to Pipeline Pilot web tools. Unfortunately, if you have multiple containers and want greater control over how they behave, you often wind up having to create an unnecessary number of Protocol components and JavaScript functions to manage them. Fortunately, there is an easy hack that will let you control an infinite number of containers with ease.
When you run a protocol that generates HTML output and includes a Protocol function that utilizes a Dynamic Content Container, take a look at the source code of the page. In the JavaScript block in the header, you will see a function created to manage your container and protocol call:
function someFunction(arg1, arg2) {
var parameterMap = {
'arg1': arg1,
'arg2': arg2
};
var config = {
protocolName: 'Protocols//Path//To//My/Protocol',
parameterMap: parameterMap,
protocolLaunchAction: 'loadingContainers',
containerIds: [ 'container_name' ],
protocolEndAction: 'resultsInContainers',
poolId: '{ppc37B24-E5F8-4D19-B1C4-FE0F43486408}'
};
PP_PROTOCOL_FUNCTION_8.execute ...July 28, 2012, 1:20 p.m.

July 15, 2012, 9:05 p.m.

The birth of our daughter (aka. Bean) is just around the corner, and final preparations are being made for her arrival. Diapers are being stockpiled, tiny shirts folded, and stroller accessories configured. The nursery itself has been done for quite some time. We can laugh now that the expected delivery date has arrived and Bean has shown no intention of vacating her cushy home, but three months ago, when we began assembling the nursery, the fear of her sudden arrival into a room populated mostly by sawdust was a constant motivator. The structure of the room itself did not require much work during our renovations: one wall was replaced after getting knocked out during the construction of our master bedroom, a doorway was removed, and the hardwood floor was refinished, but all of the other work was aesthetic and was easy ...
June 22, 2012, 12:34 p.m.
Interested in building a website? Have way too much free time on your hands? Then Django might be right for you!
This may be the first website that I have actually gotten off the ground, but it is about the Nth iteration of similar sites that have lived in forgotten folders of every computer I have owned in the past decade. Most were never meant to see the light of day. They were cobbled abominations of sloppy HTML, barely-functional JavaScript, and half-finished CSS, offensive to the eye. They were an amusing diversion, I had not quite yet put together in my mind that software development + biology = the future. By the time I resolved to actually turn one of my experiments into something more than a time-waster, I had spent a lot of time building database-driven web applications and had written a healthy amount of Python scripts, so working with Django ...