TclTk 2003 - PowerPoint PPT Presentation

1 / 30
About This Presentation
Title:

TclTk 2003

Description:

Oh yeah, better post it on SourceForge so others can take advantage of ... Weblog, Wiki, webmail, file sharing, calendars, MP3 streaming, document management... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 31
Provided by: markro6
Category:
Tags: tcltk

less

Transcript and Presenter's Notes

Title: TclTk 2003


1
Tcl/Tk 2003
2
Using Starkits for Easy Deployment of Server
Applications
  • Mark Roseman
  • courseforum
  • T E C H N O L O G I E S

3
The Canonical Tcl Server App
  • socket -server Accept portnum
  • proc Accept sock args
  • fconfigure sock -blocking 0
  • fileevent sock readable Readable sock
  • proc Readable sock
  • do something interesting

4
That was easy! On to the next application.
  • Ummm.forgetting something?
  • Oh yeah, better post it on SourceForge so others
    can take advantage of my brilliance!

5
If it was hard to develop, it should be hard to
install!
  • Download the latest source
  • Unpack in Sites directory of your home dir
  • Configure Apache
  • Open Terminal.app, type sudo vi
    /etc/httpd/httpd.conf
  • Remove the leading from these lines
  • LoadModule php4_module libexec/httpd/libphp4.so
  • AddModule mod_php4.c
  • Modify the DirectoryIndex line to read
  • DirectoryIndex index.html index.php index.htm
    index.php3 index.cgi

6
And so on
  • Keep configuring Apache
  • AddType application/x-httpd-php .php AddType
    application/x-httpd-php-source .phps
  • Then sudo apachectl restart
  • Install MySQL (luckily someone packaged that up
    nicely.. Download it here)
  • Check if its running
  • /usr/local/mysql/bin/mysqladmin status
  • Oh yeah and set a root password on it
  • /usr/local/mysql/bin/mysqladmin -u root password
    sniggle

7
Oh, but the fun has just begun!
  • Better set up MySQL for your Wiki
  • /usr/local/mysql/bin/mysql -uroot -p mysql gt
    grant select, insert, update, delete, lock tables
    on wiki. to wiki_at_localhost identified by
    'password' gt create database wiki gt \q
  • . Hack hack hack hack hack.
  • . Tell PHP about it.. Hack hack
  • Modify the Wiki code to include the database
    hack hack hack hack.

8
Glad we spent all that time developing our
application.
9
A New Breed of Server Apps
  • Personal / Small Group Server Apps
  • SOHO market adopting
  • Broadband, WiFi, Bluetooth
  • Windows XP, Mac OS X
  • Weblog, Wiki, webmail, file sharing, calendars,
    MP3 streaming, document management
  • Normal users, not network admins

10
Deploying Tcl Server Apps
  • The Starkit story so far
  • Deployment Requirements
  • Dependencies
  • Installation / Configuration
  • Starting and Stopping
  • Platform Issues
  • particularly Mac and Windows
  • Miscellaneous Issues
  • - packaging, builds, obfuscation, integration

11
The Starkit story so far
  • Tclkit Tcl, Tk, incr Tcl, Metakit, TclVFS
  • Starkits and Starpacks
  • Platform-neutral or platform-specific
  • Package up your whole development tree
  • Way beyond simple code wrapping
  • Jean-Claude Wippler Tcl2000
  • Steve Landers Tcl2002
  • Gets you pretty far (e.g. wikit)

12
CourseForum / ProjectForum
  • Wiki-like app
  • Non-tech users
  • Education
  • Business
  • Cross-platform
  • Unix, Win, OS X
  • Web Browser
  • Easy to use tool
  • Try before you buy

13
(No Transcript)
14
Dependencies
  • Typical Wiki Apache/IIS, scripting engine, other
    libraries, external database, CVS,
  • Trend is towards more layers (app servers)
  • Barriers to entry
  • Initial install (dont screw up!)
  • Upgrade can break your app
  • Tradeoffs must be taken into account early!
  • Developer benefit from external packages
  • Increased complexity for end users
  • Understand the context youre running in

15
Reducing Dependencies
  • Solution 1 bundle everything
  • Setup script to automate install
  • Can make sense for larger systems
  • Solution 2 roll your own (subsets)
  • TclHttpd (or mini-variants)
  • Metakit (or SQLite)
  • Build subset libraries (e.g. version control)
  • CF/PF one file, no externals, lt 2mb

16
Installation
Next
Next
  • Install copy
  • Uninstall delete
  • Well maybe

Next
Next
Next
Next
Next
Next
17
Configuration
  • Get rid of the text based configuration files!
  • Web-based configuration

18
Starting and Stopping
  • Start the application, stop the application
  • Consider a simple GUI for this yes, even for a
    server!
  • New Users
  • Feedback
  • Choosing ports

19
Running as a Daemon
  • Different than initial use
  • Unix rc.d / inittab
  • Windows services
  • Mac OS X StartupItem
  • more later

20
Unix Platform Issues
  • Not a lot of extra issues here
  • Running as setuid

21
Windows Platform Issues
  • Start / Stop GUI
  • Installers / Uninstallers
  • Windows Services
  • TclSvc
  • Tcl Dev KitService Mgr
  • FireDaemon

22
Mac OS X
  • Unix for the Masses
  • Opportunity for smaller developers
  • Rewards innovation
  • Culture of supporting small shops
  • Actually pay for software
  • Easy to get the word out
  • Free High-Quality Developer Tools and Docs
  • Beware port is a four letter word!

23
Mac OS X GUI
  • Tk not quite there yet (sniff!)
  • Small Cocoa app
  • 200 lines ObjC
  • InterfaceBuilder
  • A few hoursto develop

24
Mac OS X Application Bundles
  • App is a directory
  • Cocoa launcher
  • Starpack guts
  • Communicate via Unix pipes (!)
  • Setuid

25
Mac OS X Packaging
So we have a Starpack a virtual file system in a
file in an Application Bundle which looks like
a file system in a file, inside a Disk Image a
virtual file system in a file yikes!!!
  • Application Bundles
  • Disk Images
  • Installers if needed
  • StartupItem
  • Known location
  • Shell scripts
  • Run (Unix-style) executable

26
Other Issues
  • Integration
  • Avoiding port conflicts
  • Firewalls
  • Proxy / Virtual Hosting
  • Branding
  • Development Process
  • Builds
  • Testing
  • Code obfuscation (procomp / tbcload)

27
CourseForum / ProjectForum
  • Full power of Tcl, Metakit, etc.
  • With Starkit, drop development tree on users
    machine
  • Small app, quick to download, code protected
  • Runs like native apps, easy to setup and use

28
Remember that OReilly Article?
  • Ive got one of those if-only-Id-known-that-befo
    re sort of feelings
  • Nice work. You're right, it couldn't be simpler.

29
Deployment is a Tcl Strength
  • Cross platform
  • Easy to embed/extend
  • Code hiding when needed
  • Starkit goes way beyond simple wrapping
  • Network server apps run by end users
  • Important new niche
  • Tips here to ease deployment further
  • Start thinking about deployment early!

30
Thanks!
  • www.markroseman.com/tcl
  • www.courseforum.com
  • And announcing
  • tcl.projectforum.com
  • Free, powerful collaborative workspaces for
    Tcl/Tk based open source projects and their
    teams.
  • Yes its easy to install but we do hosting too!
Write a Comment
User Comments (0)
About PowerShow.com