I am Tony Narlock#
This is my professional website, I’ve been a software developer for 15 years. If you’re not one, what I do likely won’t make sense to you.
I work at tech startups building web-based apps. I use React, TypeScript, and Relay (GraphQL) on the frontend and Python / Amazon Web Services on the backend.
In my spare time I plan, develop, and maintain a fleet of developer tools. For example, tmuxp constructs tmux sessions from a JSON or YAML file. To that end, I’ve also written a book about tmux a few years ago, The Tao of tmux. Another tool I’ve created is cihai, which is built around Unicode’s UNIHAN dataset for Chinese, Japanese, and Korean languages.
I contribute to open source software projects; find me on GitHub, GitLab, OpenHub.
My CV tracks everything I’ve ever done - work, my projects, and open source (I’m a polyglot, there is some C++ in there).
What’s going on in my life as a programmer#
What am I busy with outside of work?
May 2023 - cihai is being revamped
After 5+ years of inactivity, the suite of packages is being dusted off.
cihai 0.20.0 adds mypy
--strict
compliant typingsIn the future, cihai will have:
SQLAlchemy updated to 1.4, then 2.0+.
its API simplified - ensuring all usages will be typed and have awesome completions.
December 2022 - I’m not giving up being successful
In 2023:
September 2022 - One more thing on doctest
I wrote a
doctest
module that can parse reStructuredText and markdown:It also has a pytest plugin
On that note, I also made a pytest plugin for libtmux and libvcs:
tmux pytest plugin - bootstrap tmux sessions in your tests
libvcs pytest plugin - setup and teardown git, mercurial and subversion repos in your tests.
Mid August 2022 - Promises keep coming
Additionally, test and quality infrastructure has been improved across all projects:
Early August 2022 - Promises kept (and keep coming)
libvcs 0.14.0 released w/ typing annotations and doctests.
Also, added a URL Parser (compare to
urlparse
) forgit
,hg
, andsvn
URLs. Extensible usingframework tools
. Built on dataclasses and usesdoctest
.In the process, “side inventions” (License MIT):
SubprocessCommand
: Deferrablesubprocess
commands.SkipDefaultFieldsReprMixin
: Exclude default fields (useful for clearer pytest assertions / printing). Thanks Pietro Oldrati.
June 2022
libvcs and vcspull are being rebuilt from the ground up. This will be a fresh take on one of my earliest python projects. What they’ll be using:
doctest: actual code demo in documentation which also function as tests
dataclasses (experimental): As a library creator, I will put these to the test
The projects will be a proving ground for quality standards and patterns I’ll adopt across my other and future packages.
March 2022
All sites moved to new design.
June 2021
tmux-python (tmuxp + libtmux), vcs-python (vcspull + libvcs), cihai (cihai, cihai-cli, unihan-etl, unihan-db) moved to markdown
April 2021
Feb 2021
Experimenting with new CV: cv-react-v2.git-pull.com
Publications#
Language Projects#
Unix-like Utilities#
Coding around the web#
Software porting from Linux to BSD on my FreeBSD Wiki Page
Unofficial tally / roster of open source contributions on OpenHub
GitHub @tony for recent / current coding
Porting (Linux-to-BSD)#
Elementary Algorithms – Book of Elementary Algorithms and Data structures #16
aseprite – Cross-platform sprite / pixel art editor #888 #893
tmux-mem-cpu-load memory, CPU and load averages for tmux status lines #30
uMario_Jakowski – Super Mario NES clone in SDL2 and C++. Add CMake and get building on FreeBSD and OS X #1
python-cmake-buildsystem - CMake buildsystem for CPython #133 #136
pyston - An open-source Python implementation using JIT techniques #1072, #1073, #1085
Scrapyard#
Experimental code / patches that never made it upstream:
kakoune branches: cmake build support, mini, new-cli (#693), observers, rm-server (serverless kakoune), pybind11 and Boost.Python integration
vis branches: cmake support, C++ support, python integration
sphinx branches: flexible-builder invocation
tmux branches: cmake build support
Project templates#
Permissively licensed starter templates you can use to bootstrap your projects.
These are mostly outdated
Frontend#
react-typescript-vanilla-starter: Webpack v4
vue-typescript-vanilla-starter: vue 2.x, webpack v4
Presentations#
Guest Speaker @ Fullstack Academy (YC S12) at 1871 (Feb 2017)
Guangzhou LUG software freedom day @ Sun Yat-sen University (May 2013)
Industry and Press#
Opensource.com mentions The Tao of tmux (Feb 2017)
Japanese tech blog mentions The Tao of tmux (Jan 2017)
Bugsnag Engineering using tmuxp (Nov 2016)
Pragmatic Coders dev shop on configuring tmux sessions with tmuxp (Dec 2015)
tmuxp featured on OneThingWell Nov 2013 and June 2014
Code Exploration#
Other#
Bad ass leather / 牛 B 皮革 - PSA on why leather is cool
Donate#
Like my open source projects and learning resources? Your support is appreciated!
Emboldening virtue, the Junzi#
To be a righteous person (君子 jūn zǐ), as opposed to (小人 xiăorén)
What makes a good gentleman-scholar in Confucius eyes?
Be coherent: “How did we get here?”, “How do these things connect?”
Tolerate ambiguity
Treat matters in proportion to the issue
Secure attachment