Climate and Environmental Variables

A couple years ago my friend Trevor and I went to look at the Apple garage. As we stood there, he said that as a kid growing up in Saskatchewan he’d been amazed at the dedication Jobs and Wozniak must have had to work in a garage. “Those guys must have been freezing!” That’s one of California’s hidden advantages: the mild climate means there’s lots of marginal space. In cold places that margin gets trimmed off. There’s a sharper line between outside and inside, and only projects that are officially sanctioned — by organizations, or parents, or wives, or at least by oneself — get proper indoor space. That raises the activation energy for new ideas. You can’t just tinker. You have to justify. ...

Mar 9, 2019 · Christopher Boette

DM's are an Anti-Pattern

this post is in reference to Slack/Hipchat/Hangouts Direct Messages, not Dungeon Masters An all-too-common approach to communication I’ve seen is DM’s for any number of subjects which should be public: how to set up a server, a discussion about an architectural proposal, how to address the content in an open PR, and so on. At best, they limit information sharing among the team members; at worst, they further fracture a team’s cohesion and ruin any efficiency in communication by forcing folks to repeat themselves. ...

Feb 1, 2019 · Christopher Boette

Building Lists in Scheme

Or, the differences between append, cons, & list from sicp 2.26: Suppose we define x and y to be two lists: (define x (list 1 2 3)) (define y (list 4 5 6)) What’s the output of the following? (append x y) ;; (1 2 3 (4 5 6)) ;; but actually ;; (1 2 3 4 5 6) (cons x y) ;; ((1 2 3) (4 5 6)) ;; but actually ;; ((1 2 3) 4 5 6) (list x y) ;; (1 2 3 4 5 6) ;; but actually ;; ((1 2 3) (4 5 6))

Jan 4, 2019 · Christopher Boette

An RSS Feed

This blog is now featuring has had RSS all along. Did you know this? I didn’t know this. But, I know now and now you know, too. If you’re so inclined, you may subscribe for intermittent updates: https://newschematic.org/blog/index.xml

Dec 12, 2018 · Christopher Boette

Dada Photo Boo-booth

As the next step in the exploration of the ideas behind the Dada Photo Booth, Adam and I reworked the project for showing at the Museum of Human Achievement during the 2018 East Austin Studio Tour. Responding to a call for artists working with the concepts around taking selfies, we intended to directly transplant our piece into one of about 30 stations in a selfie gauntlet. Personally, I was looking forward to the challenge of architecting and coding a stand-alone, self-service iteration of the Dada Photo Booth. However, once we received the requirements and context around the selfie gauntlet, it became clear that this would be an exercise in doing more with less coding. ...

Nov 17, 2018 · Christopher Boette

Using emoji in Matplotlib

tl;dr Download the Symbola font and install it; using, for instance, the included Font Book application on macOS. Trash Matplotlib’s font cache file (probably located at ~/.matplotlib/fontList.py3k.cache, again for macOS). Start your Jupyter Notebook. The font should be available and if it is, it’ll be used to render the final graph. If not, the default font will be used and all of those silly emoji will show up as empty rectangles of sadness. ...

Dec 23, 2017 · Christopher Boette

'We did what we always do...'

We did what we always do when there’s a problem without a clear solution: we waited. from “Toward Go 2”

Jul 25, 2017 · Christopher Boette

Adding node.js test coverage from CircleCI to Code Climate

install istanbul & codeclimate-test-reporter in your dev dependencies: npm install --save-dev istanbul codeclimate-test-reporter add to circle.yml: general: artifacts: - "coverage" test: post: - CODECLIMATE_REPO_TOKEN=$CODECLIMATE_REPO_TOKEN ./node_modules/.bin/codeclimate-test-reporter < coverage/lcov.info In Code Climate, get the test reporter token from https://codeclimate.com/repos/YER_PROJECT_ID/coverage_setup and take it to the “Env Var” section of your Circle CI project settings page, like https://circleci.com/gh/USER_NAME/PROJECT_NAME/edit#env-vars – add a variable with a name of CODECLIMATE_REPO_TOKEN and value of the test reporter token from Code Climate. Update your test command in your package.json from ...

Dec 18, 2016 · Christopher Boette

gempm: Sharing JavaScript Code Between Rails and Node.js apps

Background Here at OwnLocal, we’ve built lots of Rails apps and added lots of Ruby code to those apps. As our products and tools have grown organically over the years, our systems have become more opaque and, in some cases, more brittle. In the last quarter of 2016, my team was tasked with automating away a large portion of our bread and butter: writing parsers to extract, transform, and load data from text files sent to us by our partners on a daily basis. Studying the requirements, it seemed to me that the proposed data flow—passing in a text file along with a partner-specific configuration for how the system should translate that data—resembled a pure function: we’d always get the same output from the same input, no side-effects. When I pitched the idea that we build a greenfield project, rather than bolting more functionality onto a Rails app we plan to sunset next year, Drew told us to go for it. ...

Dec 10, 2016 · Christopher Boette

invoke and execute in Rake

When writing tests for a Rake task at work, I came across invoke and execute as two different ways for calling a specific task. Most of the content I found online about the difference was fairly superficial: invoke can only get called once, execute can be called as many times as one wants. There, are you happy? Move on. Never being generally happy, I did not move on. I wanted to know how these similar-looking methods were executed differently. So, I consulted The Truth. ...

Nov 23, 2016 · Christopher Boette