Skip to content

Instantly share code, notes, and snippets.

@moltenform
moltenform / ShowBindings.py
Created August 12, 2016 19:50
Show keyboard bindings for the SciTE code editor
# ShowBindings.py (Python 2)
# looks through SciTE source code and user properties,
# and creates an html file showing current bindings
# usage:
# download SciTE and Scintilla source
# place this script in the scite/src/scripts directory
# edit the pathPropertiesMain = line to point to your global properties file
# edit the pathPropertiesUser = line to point to your user properties file (or None)
# run the script, which creates CurrentBindings_platform.html in current directory.
@moltenform
moltenform / ben_fisher_benchling_cover_letter.txt
Created September 21, 2020 20:24
ben_fisher_benchling_cover_letter
Hi,
My name is Ben Fisher. I'm seeking to join a team where my work has a positive impact on people's lives, and so I'm moving my career
towards biotech. Benchlink looks like a great place for both technical quality and contributing to scientific discovery. The software
project I put together, "ViperCard", was a success, and I'm looking forward to my next challenge.
I bring both experience working as part of a big corporation, where I gained communication, team collaboration, and large
codebase/dataset skills, and experience working on my own, where I needed end-to-end knowledge (design to prototype to production to
deployment, TypeScript to Python to database schema), code architecture abilities, and planning/schedule prioritization to drive the
project forward. Over the years, I've collected useful engineering practices and intuition (e.g. how to organize code for testability,
@moltenform
moltenform / little-parser-i.js
Last active November 6, 2020 23:46
A little parser 1. parsing
/* constants for types of expression */
const exps = {
Plus: "Plus",
Mult: "Mult",
Power: "Power",
NumOrGroup: "NumOrGroup",
NumLiteral: "NumLiteral",
};
/* get last elem of array, undefined if array is empty */
@moltenform
moltenform / little-parser-ii.js
Last active November 6, 2020 23:53
A little parser 2. evaluating
/* evaluate a tree of results. */
function evalResult(result) {
if (result.type === exps.NumOrGroup) {
/* ex: (123 + 456) */
return evalResult(result.parts[0]);
} else if (result.type === exps.NumLiteral) {
/* from the string "123" into a number. */
return parseFloat(result.parts[0]);
} else {
/* reduce/evaluate the expression */