Architect at Ruby Lane: https://www.rubylane.com, and a user of Tcl since the mid 90s with version 7.6
I've written a few Tcl extensions over the years, some of which have made it out into the wild. My areas of interest in the Tcl space are:
* The language itself
* Finding ways to use custom Tcl_ObjTypes to solve problems in interesting and sometimes surprising ways
* Graphics, games and image handling in Tcl
* Networking in Tcl
Presentations at Tcl conferences:
2016:
* rl_json: paper: http://tcl.tk/community/tcl2016/assets/talk39/rl_json-paper.pdf slides: http://tcl.tk/community/tcl2016/assets/talk39/rl_json-slides.html
* parse_args: paper: http://tcl.tk/community/tcl2016/assets/talk33/parse_args-paper.pdf slides: http://tcl.tk/community/tcl2016/assets/talk33/parse_args-slides.html
* rl_html: Safely constructing HTML from Tcl scripts using tdom's appendFromScript
2017:
* Hydra and deduplication for Tcl_NewStringObj: video: https://youtu.be/k00OCiICimg slides: http://tcl.tk/community/tcl2017/assets/talk98/Talk.html
2019:
* Tcl support for AWS Lambda functions: video: https://www.youtube.com/watch?v=VYz_SpCejio&t=1895s
Some of the packages I've built:
* [rl_json] Directly manipulate JSON values in the way dict directly manipulates dictionary values. Fast. https://github.com/RubyLane/rl_json
* [parse_args] My take on core-command-style argument parsing for Tcl scripts: https://github.com/RubyLane/parse_args
* [type (package)] Allow custom Tcl_ObjTypes to be defined and used in Tcl scripts: https://github.com/cyanogilvie/type
* AWS Lambda Tcl runtime: https://github.com/RubyLane/AWS_lambda
* [Tcl.js (Cyan Ogilvie)] An implementation of the Tcl language in Javascript: https://github.com/cyanogilvie/Tcl.js * [sop] State-Oriented-Programming: reifying boolean state within an application using the metaphore of dynamic digital logic circuits, and hooking callbacks to edges: https://github.com/cyanogilvie/sop
* [crypto (package)] Pure Tcl implementations of blowfish, RSA and a CSPRNG: https://github.com/cyanogilvie/crypto
* [oodaemons] Implementations of common internet server protocols as TclOO classes: https://github.com/cyanogilvie/oodaemons
* [rl_http] A never-blocking (not even during connection phase) HTTP client designed for mission critical integrations with JSON REST services at scale (multithreaded keepalives, reliable timeouts, proper handling of encodings and HTTPS support): https://github.com/RubyLane/rl_http
* [gc_class] Garbage collection (lifecycle management) for TclOO objects using variable traces: https://github.com/RubyLane/gc_class
* [Pixel (package)] A package for doing reasonably fast raster graphics from Tcl. Includes many sub packages for loading / saving various image formats, and for display to various targets: https://github.com/cyanogilvie/pixel
* [inotify] A package for receiving filesystem events from the Linux kernel: https://github.com/cyanogilvie/inotify
<<categories>> Person