# I am Tony Narlock This is my professional website. I've been a software developer for 15 years. If you're not in the field, what I do might not make much sense to you. I work at tech startups, building {abbr}`web-based applications (Today this task is often given a snazzy title, e.g. senior full-stack software engineer)`. On the frontend, I use [React], [TypeScript], and [Relay] ([GraphQL]), and on the backend, [Python] and [Amazon Web Services]. In my spare time, I plan, develop, and maintain a suite of {abbr}`developer tools (I help other programmers by creating reusable components or applications to automate repetitive tasks)`. For instance, [tmuxp], which constructs [tmux] sessions from a JSON or YAML file. A few years ago, I also wrote a book about tmux, titled "[The Tao of tmux]". Another tool I've created is [cihai], based on [Unicode]'s [UNIHAN] dataset, which supports Chinese, Japanese, and Korean languages. I actively contribute to [open-source] software projects. You can find me on [GitHub], [GitLab], [CodersRank], and [OpenHub]. My [CV] documents everything I've ever done - professional work, my projects, and open-source contributions (I'm a polyglot; there's even some C++ in there). [cihai]: https://cihai.git-pull.com [tmuxp]: https://tmuxp.git-pull.com [the tao of tmux]: https://leanpub.com/the-tao-of-tmux [CV]: https://cv.git-pull.com [unicode]: https://graphql.org/ [unihan]: https://unicode.org/charts/unihan.html [typescript]: https://www.typescriptlang.org/ [relay]: https://relay.dev/ [react]: https://reactjs.org/ [graphql]: https://graphql.org/ [open-source]: https://en.wikipedia.org/wiki/Open-source_software [github]: https://www.github.com/tony [gitlab]: https://www.gitlab.com/tony [python]: https://www.python.org/ [amazon web services]: https://aws.amazon.com/ [codersrank]: https://profile.codersrank.io/user/tony/ [openhub]: https://openhub.net/accounts/git-pull ## What's going on in my life as a programmer _What am I busy with outside of work?_ ```{include} news.md :start-line: 2 :end-before: "- _August 2020_" ``` {doc}`See more ` ## Publications :::::{container} row ::::{container} project col-xs-12 col-sm-6 ```{eval-rst} .. figure:: https://s3.amazonaws.com/titlepages.leanpub.com/the-tao-of-tmux/large :height: 150 :align: center :target: https://leanpub.com/the-tao-of-tmux :alt: The Tao of tmux ``` [The Tao of tmux](https://leanpub.com/the-tao-of-tmux) Available on [Leanpub] and [Kindle] (Amazon). Read the book for [free on the web]. :::: ::::: [free on the web]: https://leanpub.com/the-tao-of-tmux/read [leanpub]: https://leanpub.com/the-tao-of-tmux [kindle]: http://amzn.to/2gPfRhC ## Language Projects :::::::{container} row ::::{container} project col-xs-12 col-sm-6 ```{eval-rst} .. figure:: https://cihai.git-pull.com/en/latest/_static/img/cihai.svg :align: center :target: https://cihai.git-pull.com :alt: cihai.git-pull.com :height: 150 ``` [cihai](https://cihai.git-pull.com) United front for creating open, permissive, standardized CJK datasets. :::: ::::{container} project col-xs-12 col-sm-6 ```{eval-rst} .. figure:: https://www.hskflashcards.com/icons/icon-512x512.png :align: center :target: https://www.hskflashcards.com :alt: HSKFlashCards.com :height: 150 ``` [HSK FlashCards](https://www.hskflashcards.com) Study chinese flashcards for _Hànyǔ Shuǐpíng Kǎoshì_, _(New) Practical Chinese Reader_ and _Integrated Chinese_ :::: ::::::: ## Unix-like Utilities :::::::{container} row ::::{container} project col-xs-12 col-sm-6 ```{eval-rst} .. figure:: https://tmuxp.git-pull.com/en/latest/_static/img/tmuxp.svg :align: center :target: https://tmuxp.git-pull.com :alt: tmuxp :height: 150 ``` [tmuxp](https://tmuxp.git-pull.com) ([中文](https://tmuxp-zh.readthedocs.io/zh_CN/latest/)) tmux session manager via JSON and YAML file :::: ::::{container} project col-xs-12 col-sm-6 ```{eval-rst} .. figure:: https://libtmux.git-pull.com/en/latest/_static/img/libtmux.svg :align: center :target: https://libtmux.git-pull.com :alt: libtmux :height: 150 ``` [libtmux](https://libtmux.git-pull.com) pilot tmux with python :::: ::::::: :::::::{container} row ::::{container} project col-xs-12 col-sm-6 ```{eval-rst} .. figure:: https://vcspull.git-pull.com/en/latest/_static/img/vcspull.svg :align: center :target: https://vcspull.git-pull.com :alt: vcspull :height: 150 ``` [vcspull](https://vcspull.git-pull.com) manage and update multiple git / hg / svn projects via JSON or YAML file :::: ::::{container} project col-xs-12 col-sm-6 ```{eval-rst} .. figure:: https://libvcs.git-pull.com/en/latest/_static/img/libvcs.svg :align: center :target: https://libvcs.git-pull.com :alt: libvcs :height: 150 ``` [libvcs](https://libvcs.git-pull.com) pythonic API for [version control](https://en.wikipedia.org/wiki/Version_control) systems :::: ::::::: ## Coding around the web - My ports for the [FreeBSD] operating system on [portscout] - My issues for [FreeBSD] in [Bugzilla](https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=New&bug_status=Open&bug_status=In%20Progress&bug_status=Closed&bug_status=UNCONFIRMED&email1=tony%40git-pull.com&emailassigned_to1=1&emailcc1=1&emaillongdesc1=1&emailreporter1=1&emailtype1=equals&f0=OP&f1=OP&f2=product&f3=component&f4=alias&f5=short_desc&f7=CP&f8=CP&j1=OR&o2=substring&o3=substring&o4=substring&o5=substring&query_format=advanced) - 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 [portscout]: https://portscout.freebsd.org/tony@git-pull.com.html [freebsd]: https://www.freebsd.org [freebsd wiki page]: https://wiki.freebsd.org/TonyNarlock [@tony]: https://www.github.com/tony ### Porting (Linux-to-BSD) - [Elementary Algorithms](https://github.com/liuxinyu95/AlgoXY) – Book of Elementary Algorithms and Data structures [#16](https://github.com/liuxinyu95/AlgoXY/pull/16) - [pymux](https://github.com/jonathanslenders/pymux) – tmux(1) clone in python [#34](https://github.com/jonathanslenders/pymux/pull/34) - [aseprite](https://github.com/aseprite/aseprite) – Cross-platform sprite / pixel art editor [#888](https://github.com/aseprite/aseprite/pull/888) [#893](https://github.com/aseprite/aseprite/pull/893) - [tmux-mem-cpu-load](https://github.com/thewtex/tmux-mem-cpu-load/) memory, CPU and load averages for tmux status lines [#30](https://github.com/thewtex/tmux-mem-cpu-load/pull/30) - [uMario_Jakowski](https://github.com/jakowskidev/uMario_Jakowski) – Super Mario NES clone in SDL2 and C++. Add CMake and get building on FreeBSD and OS X [#1](https://github.com/jakowskidev/uMario_Jakowski/pull/1) - [spdlog](https://github.com/gabime/spdlog) - C++11 logger [#254](https://github.com/gabime/spdlog/pull/254) - [python-cmake-buildsystem](https://github.com/python-cmake-buildsystem/python-cmake-buildsystem) - CMake buildsystem for CPython [#133](https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/pull/133) [#136](https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/pull/136) - [nanogui](https://github.com/wjakob/nanogui) - C++11 gui library for opengl [#128](https://github.com/wjakob/nanogui/pull/128) [#147](https://github.com/wjakob/nanogui/pull/147) - [pyston](https://github.com/dropbox/pyston) - An open-source Python implementation using JIT techniques [#1072](https://github.com/dropbox/pyston/pull/1072), [#1073](https://github.com/dropbox/pyston/pull/1073), [#1085](https://github.com/dropbox/pyston/pull/1085) - [libpypa](https://github.com/vinzenz/libpypa/) - Python parser implemented in pure C++ [#50](https://github.com/vinzenz/libpypa/pull/50) ### Scrapyard Experimental code / patches that never made it upstream: [kakoune] branches: [cmake build support](https://github.com/tony/kakoune/tree/cmake), [mini](https://github.com/tony/kakoune/tree/mini), [new-cli](https://github.com/tony/kakoune/tree/new-cli) ([#693](https://github.com/mawww/kakoune/pull/693)), [observers](https://github.com/tony/kakoune/tree/observers), [rm-server](https://github.com/tony/kakoune/tree/rm-server) (serverless kakoune), [pybind11](https://github.com/tony/kakoune/tree/pybind11) and [Boost.Python](https://github.com/tony/kakoune/tree/python-boost) integration [vis] branches: [cmake support](https://github.com/tony/vis/tree/cmake-n-stuff), [C++](https://github.com/tony/vis/tree/cpp) support, [python integration](https://github.com/tony/vis/tree/cpp-python) [sphinx] branches: [flexible-builder](https://github.com/tony/sphinx/tree/flexible-builder) invocation [tmux] branches: [cmake](https://github.com/tony/tmux/tree/cmake) build support [saltstack] + [fabric] demo: [gist](https://gist.github.com/tony/6d8d975c817d2e4d43dd) [saltstack]: https://saltstack.com [fabric]: http://www.fabfile.org/ [kakoune]: https://github.com/mawww/kakoune [tmux]: https://tmux.github.io/ [vis]: https://github.com/martanne/vis [sphinx]: http://www.sphinx-doc.org/en/stable/ #### 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 [react-typescript-vanilla-starter]: https://github.com/tony/react-typescript-vanilla-starter [vue-typescript-vanilla-starter]: https://github.com/tony/vue-typescript-vanilla-starter ##### [Cookiecutter] - [cookiecutter-pypackage] - bootstrap python packages - [cookiecutter-flask-pythonic] - flask project [cookiecutter-pypackage]: https://github.com/tony/cookiecutter-pypackage [cookiecutter-flask-pythonic]: https://github.com/tony/cookiecutter-flask-pythonic [cookiecutter]: https://github.com/cookiecutter/cookiecutter ## Presentations - [Guest Speaker @ Fullstack Academy (YC S12)](https://www.slideshare.net/secret/JE3xKLQUGPxy41) at [1871](https://1871.com/) (Feb 2017) - [Guangzhou LUG software freedom day @ Sun Yat-sen University](http://www.gzlug.org/2013%20SFD.html) (May 2013) ## Industry and Press - [Opensource.com mentions](https://opensource.com/article/17/2/quick-introduction-tmux) _The Tao of tmux_ (Feb 2017) - [Japanese tech blog mentions](http://www.softantenna.com/wp/webservice/the-tao-of-tmux/) _The Tao of tmux_ (Jan 2017) - [Bugsnag Engineering using tmuxp](https://blog.bugsnag.com/benefits-of-using-tmux/) (Nov 2016) - [Pragmatic Coders dev shop on configuring tmux sessions with tmuxp](http://pragmaticcoders.com/blog/tmuxp-preconfigured-sessions/) (Dec 2015) - tmuxp featured on [OneThingWell](http://onethingwell.org) [Nov 2013](http://onethingwell.org/post/66093374354/tmuxp) and [June 2014](http://onethingwell.org/post/88367539965/tmuxp) ## Code Exploration - [Django vs Flask](https://devel.tech/features/django-vs-flask/) - {ref}`python-wos-trackers` - {ref}`reST, docutils, sphinx, readthedocs` (_Updated Feb 09, 2015_) - {ref}`python-packaging-modules-cyclic` ## Other - {ref}`leather` - PSA on why leather is cool ## Donate Like my open source projects and learning resources? {ref}`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_