tcl tk 2003 l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Tcl/Tk 2003 PowerPoint Presentation
Download Presentation
Tcl/Tk 2003

Loading in 2 Seconds...

play fullscreen
1 / 30

Tcl/Tk 2003 - PowerPoint PPT Presentation


  • 422 Views
  • Uploaded on

Tcl/Tk 2003. Using Starkits for Easy Deployment of Server Applications. Mark Roseman course forum T E C H N O L O G I E S. The Canonical Tcl Server App. socket -server Accept $portnum proc Accept {sock args} { fconfigure $sock -blocking 0

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Tcl/Tk 2003


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    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 > grant select, insert, update, delete, lock tables on wiki.* to wiki@localhost identified by 'password'; > create database wiki; > \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 [Tcl’2000] • Steve Landers [Tcl’2002] • 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. Dependencies • Typical Wiki: Apache/IIS, scripting engine, other libraries, external database, CVS, … • Trend is towards more layers (app servers) • Barriers to entry • Initial install (don’t 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 you’re running in

    14. 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, < 2mb

    15. Installation Next Next • Install = copy • Uninstall = delete • Well maybe… Next Next Next Next Next Next

    16. Configuration • Get rid of the text based configuration files! • Web-based configuration

    17. 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

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

    19. Unix Platform Issues • Not a lot of extra issues here • Running as ‘setuid’

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

    21. 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!

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

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

    24. 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

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

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

    27. Remember that O’Reilly Article? “I’ve got one of those if-only-I’d-known-that-before sort of feelings… Nice work. You're right, it couldn't be simpler.”

    28. 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!

    29. 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 it’s easy to install — but we do hosting too!