Who's Kevin Kenny?
I'm the guy who labels postings to this Wiki with KBK, and whose postings usually originate from 192.35.44.14, a tremendously overburdened firewall machine. (in the Tcler's wiki chat, known as kennykb)
I have been an avid Tcl user since 1991, when I first became interested in it as an integration platform.
I'm probably the Tcl community's worst offender with respect to creating abandoned software. Alas, my most lasting contribution to the Tcl community has been the horrible exec magic that launches Tcl scripts on the Un*x platform:
#!/bin/sh # the next line is a comment in Tcl, but /bin/sh interprets it \ exec /path/to/wish "$0" ${1+"$@"}
Some of my better abandoned projects include:
Right now, I divide my time between working on the Tcl/Tk applications that run the NBC broadcast network 24/7 [L3 ], [L4 ], and doing Tcl-based automation software for GE's next generation of medical X-ray machines. In other words, I'm mad enough to be using open-source code in mission-critical systems.
Using Tcl in soft-real-time systems has given me a keen interest in the precision of the Tcl clock, hence the changes described in TIP #7 [L5 ].
I'm also author or coauthor of several more TIP's [L6 ], [L7 ], [L8 ], [L9 ], [L10 ].
In fact, these TIPs made me enough of a Tcl Core Team gadfly that the TCT invited me to join its ranks in the summer of 2001. I continued writing and sponsoring TIPS - and my first official act as a TCT member was to call a vote on the TIP for bundling [incr Tcl] with the Tcl distribution. (Little did I imagine how difficult it would be to get that actually to happen.)
Anyway, I've continued in the TIP process, contributing to several [L11 ], [L12 ], [L13 ], [L14 ], [L15 ], [L16 ], [L17 ].
I've been on the program committee of the Tcl conferences in 1995, 1997, 1998, 2001, and 2003 and chair the program committee in 2002.
I'm one of the Tcl maintainers who understand Parsing, bytecodes and execution and The anatomy of a bytecoded command.
I know a bit about combinatorics, giving rise to Binomial coefficients, Cartesian product of a list of lists, Power set of a list, and similar pages. I know just enough numerical analysis to be dangerous, and things like Constrained minimisation in one dimension come out of that.
I'm fond of recreational mathematics, whence come pages like Fraction math and Solving cryptarithms. Enough people got confused about what a cryptarithm is (thinking it was a cryptogram) that I was motivated to put up a page on Solving cryptograms as well.
I suppose I should count the Convex hull page as recreational mathematics as well, since I'm not an expert in computational geometry by any means!
Diff in Tcl is sort of mathematical, I suppose, too.
I strongly encourage people to make proper use of the Tcl event loop, which is subtle but rewards those who understand it. Countdown program, Update considered harmful, Centering a window and Keep a GUI alive during a long calculation are all exhortations to do so.
I still find time, occasionally, to develop the odd clever hack in Tcl, for instance Shuffle a list. I also know a few tricks about dealing with Microsoft Windows and Tk, such as Printing a canvas under Windows and Register file types under Windows. I also have a few things up my sleeve about making Tk's look and feel more Windows-like, such as Scroll bars that appear only when needed and a Resize control.
People can send me email at [L18 ].
proc Quine {} { set n [lindex [info level 0] 0] append s [list proc $n [info args $n] [info body $n]] \n [list $n] puts $s } Quine
John Ousterhout himself best summarized Kevin's early career with Tcl with his acknowledgment that it was KBK who showed "that Tcl can be used to interface to almost any conceivable application." [ref to book]
In isolation, that sounds unintentionally funny.
KBK: That last line sounds like one of Cameron Laird's enigmatic utterances. For the benefit of the unenlightened:
The first few years of Tcl's existence, most Tcl users saw it as an embeddable shell -- a C library that you'd add to your application to give it a command-line and scripting interface. When I picked up Tcl in 1991 or so, I saw that Expect, the [exec] command, and TclX were adding substantial capability for interface to existing applications -- once that weren't designed originally to have a Tcl interface. Inspired by that realization, I started trying to push the idea as far as it would go (incidentally producing the first cross-platform implementation of load), and eventually had wired applications that communicated with X PropertyNotify events, SunRPC, various vendor-supplied C API's, sockets, DDE, .... The interesting thing was that the interface layers that talked these protocols were the only C modules I wrote. 'Wish' and 'tclsh' were the main applications -- the interfaces were embedded in Tcl, not the other way around. The fact that I and a few other brave souls were actually successful treating Tcl as an integration platform rather than a library came as something of an epiphany for John.
"GE Computer Department in Phoenix made mainframes. It was bought out by Honeywell in 1970 (I worked there from 1977-1984). .... 1984-1990 I was studying/teaching/working at University of Illinois Urbana-Champaign. In 1990 I went to Northrop Research in Palos Verdes, Calif. When they closed the plant a year (to the day!) later, I came to GE, having been referred here by a colleague from UIUC, who had started working here a year earlier."
See also KHIM
ARR 2007-12-11
Hi Kevin, today I found this interesting information about your tclSolver project. I am currently working on an engineering worksheet which is part of a product configuration system. I think tclSolver could be a very central component within this system which is a mission critical application.
Are you still working on it? Are you interested in any cooperation in that area? I did not find any sources on the web. I am able to get some people helping us in c and c++ to make a TEA compliant package and extent the functions also.
Please let my know how we can get further on this subject. Please mail me at liesche|AT|acatec.de
What's the B for? Bernard.