Skip to content

Instantly share code, notes, and snippets.


Sean T Allen SeanTAllen

View GitHub Profile
View with matrix
only_if: $CIRRUS_CRON == "master-midnight"
- name: "nightly: x86-64-unknown-linux-gnu"
image: ponylang/ponyc-ci-x86-64-unknown-linux-gnu-builder:20200423
CACHE_BUSTER: 20200423
SeanTAllen / gist:2a03bb991e106c736d63770b4c7680a9
Last active Aug 7, 2019
Proposal to change how we organize Ponylang CI related docker images
View gist:2a03bb991e106c736d63770b4c7680a9
# CI image overview problem
This is based on a number of problems I've seen with the adhoc system we've developed.
In general right now, everthing is of the form:
- ponylang/ponyc-ci:shellcheck.
The is problematic when we need to make breaking changes to an image, for example to remove SSL.
When I did that, once the images were updated, all existing jobs for one PRs etc would break. I


Move responsibility for building documentation hosted on from to library maintainers.

Current Architecture

At the moment, is responsible for building documentation for "hosted" packages. This raises some issues:

  • Documentation builds can only handle known archetypes
  • Allowing for ways to handle these can open up security concerns where we run arbitrary code in an environment that has write access to Ponylang repos.

Keybase proof

I hereby claim:

  • I am seantallen on github.
  • I am seantallen ( on keybase.
  • I have a public key ASCWSGCvljzXhdAuRBL0vAt2Jq_bUAEnIT4TjpU6hTFvXwo

To claim this, I am signing this object:

SeanTAllen / oa.pony
Created May 19, 2016
Pony Solution to the Expression Problem Using Object Algebras see for more info
View oa.pony
// Initial object algebra interface for expressions: integers and addition
interface ExpAlg[E]
fun lit(x: I32): E
fun add(e1: E, e2: E): E
// An object algebra implementing that interface (evaluation)
// The evaluation interface
interface Eval
fun eval(): I32
SeanTAllen / oa.pony
Created May 18, 2016
Pony Solution to the Expression Problem Using Object Algebras see for more info
View oa.pony
interface ExpAlg[E]
fun lit(x: I32): E
fun add(e1: E, e2: E): E
interface Eval
fun eval(): I32
interface EvalExpAlg
fun lit(x: I32): Eval val =>
View evolution.pony
use "random"
use "collections"
class CreationFactory
let _desired: String
new create(d: String) =>
_desired = d
fun apply(c: String): Creation =>
SeanTAllen /
Last active Apr 5, 2016
This is one of the weirder bugs I've ever seen

I found a bug that only appears based on file name. If the filename starts with u-z or U-Z, no bug.

➜  y ponyc
Building builtin -> /usr/local/lib/pony/0.2.1-748-gf504469/packages/builtin
Building . -> /Users/sean/Private/Code/pony/y
Building ponytest -> /usr/local/lib/pony/0.2.1-748-gf504469/packages/ponytest
Building time -> /usr/local/lib/pony/0.2.1-748-gf504469/packages/time
Building collections -> /usr/local/lib/pony/0.2.1-748-gf504469/packages/collections
Building promises -> /usr/local/lib/pony/0.2.1-748-gf504469/packages/promises
SeanTAllen / gist:6b47d41113ab3acdab6d
Last active May 9, 2018
Online whiteboard solutions
View gist:6b47d41113ab3acdab6d
I asked on twitter for online whiteboard solutions. These are some of the
ones that were suggested. There's a few that I managed to check out
quickly and got rid of the links without thinking that I might want
them for posterity. This is what I had left. Know of others? Please
add in comments.
SeanTAllen / gist:7cbb72339806f3decee2
Last active Oct 7, 2015
The Tech "People" Bookclub
View gist:7cbb72339806f3decee2
Here's the idea,
You work in tech. You're in the NYC area.
You care about "people" issues. You think the hardest problem in computing is "people".
You are interested in how we work. How to structure work. How to work together.
How to help your colleagues succeed.
There's so much to learn:
You can’t perform that action at this time.