Cyan Ogilvie

Difference between version 9 and 10 - Previous - Next
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