Notes on Steve Landers Skybot talk at Tcl2008.
(... Started off demoing the skybot flying robot ...)
iomas research (a subsidiary of eolas) :
Skype:
client <-> router <-> super node <-> cloud <-> super node <-> router <-> client.
Cool... but if you are directly connected to the Internet skype might use your bandwidth/cpu; yes, you agreed to it (in EULA). Problem...
Skybot: the idea. Take Skype offline when user idle. Bring Skype back online when user active. How to detect idle?
Could have used Ffidl--"like juggling a chainsaw to access" win32 dll
Version 1.0:
if {[twapi::Screensaver_running]} { set id [twapi::get_process_ids -glob -name Skype.exe] twapi::endprocess $id -force }
Second version:
Created a new winmsg extension:
Also used winico:
Also used Bwidget.
Deployed as a skybot.exe. Starpack (2.5mb); no installer. Delete .exe to uninstall.
Workflow. On startup: add icon to system tray. Check if skype is running. Monitors screensaver. If user is idle, take Skype offline. When user becomes active, take Skype online. Default when screensaver is idle: check every 15 seconds, skype status is online. Default when screensaver is active: check every second, skype status is invisible.
What if...?
Skybot Rulz!
(... showed screenshot of call rules editor GUI ...)
Things to note: database centric (rules + actions stored as data, extensible & flexible, modified using familiar paradigm). Rules can be parameterized. Call actions: accept, refuse, message, reply, mail, play, say, voice mail, log, conference, redirect and mute. Chat actions: reply, call, mail, message, proxy, etc. Watch actions: mail, play, say, call, etc.
Current status
Possibilities, if the boss calls while on the golf course:
(totally hypothetical of course)
Skybot demonstrates: Tcl/Tk Windows integration, Tcl as an extension language, and the flexibility/extensibility of a data centric design.
(... demoed the software with assistance from Gerald Lester and Michael Doyle ... with an impromptu unexpected appearance by DKF and others ...)
See also: