Cal's GitHub Stuff
My public stuff on github is split between my personal account, the ex-flickr organization and the tinyspeck organization. Ex-flickr contains projects created by engineers who once worked at Flickr and follow the Flickr way, based on the lessons we learned. TinySpeck is the company I worked at for a decade, where we built Glitch (a web-based MMO) and then Slack.
Emoji
- emoji-data: Easy to parse data and spritesheets for emoji.
- js-emoji: A JavaScript emoji conversion library.
- php-emoji: An emoji filtering and transformation library for PHP.
Web Apps
- enchant-order: Minecraft enchantment optimization tool.
- brainfuck-debug: JavaScript brainfuck debugger.
- oEmbed: Spec for oEmbed.
- iTunesRemote: Control a remote iTunes instance over the web.
- iTunesServer: Play your music collection over the web.
- SchemaDiff: Database schema diffing tool.
- bad-toys: Capture client-side JavaScript errors in the wild.
Node.js
- service.js: Easily turn node apps into init.d services.
- rollup: Collect and graph high-volume realtime stats.
- logTailer: Tail log files in real time over the web.
- logSmush: Multi-server log aggregation over HTTP.
- daemon.node: Collection of patches for running Node as a daemon.
- node-memcache: Memcache bindings for Node.
- http_utils.js: A simple HTTP wrapper for Node that handles GET/POST vars and file uploads.
Minecraft Mods
- SuperBuckets: Datapack allowing more sea creatures to be caught in buckets.
- mc-dp-chunk-loader: Chunk Loader datapack.
- mc-bp-tntrun: TNT Run behavior pack.
Godot / Game Dev
- godot-bitmap-fonts: Bitmap font handling for Godot.
- godot-ios-layout-tester: Test iOS layouts in Godot.
Glitch
- glitch-GameServerJS: The server-side JavaScript that determined all Glitch game behavior.
- glitch-avatars: Art and source for Glitch's customizable avatars.
- glitch-items: Items, inhabitants and other assorted things from Glitch.
- glitch-client: Source for the Flash-based Glitch client.
- glitch-locations: Artwork and source from all the locations in Glitch.
- glitch-hq-android: Glitch HQ Android app.
- glitch-overlays: Overlays (quoin rainbows, achievement badges) from Glitch.
- glitch-android-sdk: Glitch Android SDK.
- glitch-objects: Glitch game objects.
- glitch-csharp-sdk: Glitch C# / Unity SDK.
- glitch-ios-sdk: Glitch iOS SDK.
- glitch-as3-sdk: Glitch AS3 SDK.
- glitch-mash: Demo Glitch API app - vote for the best Glitch outfits.
- avatar-animations: Use animated Glitch avatars in your own apps.
- glitch-oauth-demos: Demo code for the Glitch OAuth API.
- little-glitch: A little-printer Glitch app.
TinySpeck
The tinyspeck org has a lot more; these are the ones I worked on or that are worth highlighting.
- statsd: TinySpeck's StatsD fork.
- graphite-render: Time sampling visualization for Graphite.
- doug: A simple bug tracker.
- logbot: Simple IRC bot in Node.
- logbot-perl: IRC logging and reporting bot, in Perl.
Flickr Framework
- Flamework: A Flickr-style PHP application framework.
- flamework-JSON: Decode bad 'JSON' in PHP.
- flamework-useragent: Decode User Agent strings.
- flamework-sizelimit: Kill bloated child workers.
Flickr Admin SSO
- GodAuth: Simple SSO for internal tools.
- MediaWiki-SSO: SSO plugin for MediaWiki.
- WordPress-SSO: SSO plugin for WordPress.
- Trac-SSO: SSO plugin for Trac.
- Phabricator-SSO: SSO plugin for Phabricator.
Flickr Open Source
Many of these were previously hosted in Flickr's SVN repository, which has unfortunately been offline for several years.
- Flickr::StatsD: Collect and aggregate realtime stats.
- uploadr: Desktop photo uploader.
- Flickr::API: Perl interface to the Flickr API.
- desktopr: Next generation version of Uploadr.
- clustr: Geo shape clustering application.
- Flickr::Test: A PHP/Perl TAP test framework.
- Flickr-FTPD: FTP upload endpoint handler.
- lib_input: Input filtering library.
- lib_xml: Lightweight XPath-like library.
- flickr-shell: Perl shell for Flickr.
- perl-Flickr-misc: Misc Flickr perl utils.
- flickrPearAPI: Flickr API PHP PEAR module.
More Web Apps
- choose: Choose your own adventure, in PHP.
- London Bloggers: The London Bloggers directory.
- bingo.iamcal.com: Bingo generator.
- the5k.org: The 5k competition site.
- capital-cities: Capital cities quiz.
- jumble: A quiz built for saate.net.
JavaScript
- homespring.js: A JavaScript interpreter for Homespring.
- autolink-js: JS link formatting library.
- ease.js: Easing functions for natural animation in JavaScript.
- PNGStore: Compress CSS/JS into PNGs.
- gmaps-labels: Label overlays for Google Maps.
- gmaps-custom: Use a custom tile-set with Google Maps.
PHP Libraries
- rfc822: Email validation for RFCs 822, 2822 and 3696.
- SQLParser: Parse MySQL schemas in PHP, fast.
- lib_autolink: Change URLs in input text into HTML links.
- lib_sanitize: Input validation library.
- lib_oauth: PHP OAuth library.
- lib_bcrypt: Shut up and use bcrypt.
- lib_filter: Whitelist HTML input filtering.
- lib_timezones: Sensible timezone selection.
- lib_classify: PHP Bayesian classifier.
- lib_solr_query: Turn human queries into SOLR queries.
- lib_ap: Admin Protocol library.
- pquery: jQuery-style DOM traversal in PHP.
- php-ip-parser: IP address parsing in PHP.
- php-bidi-cleanup: Clean up Unicode BiDi text in PHP.
- XML_NiceTree: PHP4 xpath-like library.
- XML_Atom: PHP Atom parser compatible with PEAR's XML::RSS.
- php-auto-rotate: Automatic rotation of JPEGs.
Homespring & Esolangs
- homespring.cloud: Web-based visual interactive debugger for the Homespring language.
- homespring.js: A JavaScript interpreter for Homespring.
- Homespring: Mirror of the original Homespring.
- esolangquiz.iamcal.com: Esoteric language quiz.
- perl-Language-Homespring: Homespring interpreter in Perl.
- perl-Language-Homespring-Visualise-GraphViz: Visualizations for Homespring.
- perl-Language-Nouse: Nouse interpreter.
- perl-Inline-Nouse: Nouse Inline interpreter.
- perl-Inline-SMITH: SMITH Inline interpreter.
- perl-Inline-Interp: Make Inline modules for interpreted languages.
World of Warcraft (Webapps)
- World-of-MapCraft: World of Warcraft slippy maps.
- Wowhead-API: PHP library for turning Wowhead pages into useful data.
- InsanityTracker: Web app tracking players who get the Insane in the Membrane achievement.
- RaidTracker: WoW raid/guild/loot tracker.
- AttendanceTracker: WoW raid attendance tracker.
- GuildInfo: WoW guild site.
- php-wow-feed: Turn the WoW feed API into an RSS feed.
- DropCraft: WoW drop simulation.
- WoW-Survival-Haste: Haste modeling for Survival hunters.
- battlepetdata.com: Battle pet data site.
World of Warcraft (Lua Addons)
- wow-NewAddon: Template for creating Lua-only WoW addons.
- Precedence: A dashboard for raiding hunters.
- Bunny-Hunter: Rare pet farming tracker.
- MillHouse: Summarize herbs ready for milling.
- Non-Compos-Mentis: Tracking for the Insane in the Membrane achievement.
- Auc-Searcher-Insane: Auctioneer plugin for Darkmoon Faire rep items.
- wow-TreasureHunt: Track treasure items.
- wow-BuffGuide: Show missing raid buffs.
- wow-ButtonMash: Multi-class version of ComboMeal.
- wow-ComboMeal: Rotation timers for combat rogues.
- wow-MoveSCT: Move the default scrolling combat text.
- wow-Professor2: Track archaeology progress.
- wow-RaidStart: Get raids started quickly.
- wow-AllGems: Track which MoP gem cuts you're missing.
- wow-BattleDex: Keep track of wild pet battles.
- wow-FindSomeFriends: Easily invite new guild members.
- wow-ICDTrack: Track trinket proc ICDs.
- wow-Auc-Searcher-Pets: Auctioneer plugin to search for missing pets.
Perl Modules
- CSS: Object-oriented access to cascading stylesheets.
- Algorithm::PCA: Principal component analysis.
- Parse::EBNF: Object-oriented access to EBNF grammars.
- XML::Parser::Lite::Tree: Parse XML trees without libxml or expat.
- XML::Parser::Lite::Tree::XPath: Pure Perl XPath implementation.
- Image::Caa: Colored ASCII-art.
- Acme::Goatse: On-demand goatse.
- Acme::Python: For *real* python programs.
- Acme::OneBit: A very simplified language.
- Graphics::ColorDeficiency: Color deficiency simulation.
- FUSE::Server: FUSE Server.
- FUSE::Client: FUSE Client.
- tiny-perl: Some minimalist perl webapps.
Other Stuff
- Lego Carcassonne: Lego CAD designs for Carcassonne.
- Choropleths: Quick tool for making choropleth maps.