From: Hidetoshi NAGAI Date: 2006-09-28T19:23:40+09:00 Subject: [ANN] Beta (trial) version of Ruby/TkORCA Hi all, Beta (trial) version of Ruby/TkORCA is available. *** What's that? **** Its concept is "GUI, Anywhere!". Ruby/TkORCA (Ruby/Tk On RFB Canvas) is a framework which makes Ruby/Tk-based multiwindow GUI applications (those are written for the local window system) accessible to general public on the network with ease, with safe, with little or nothing of modification of those sources, with no difference about GUI operation, and with supervision and control of applications include user's handling of each window. *** How to use? *** The following is one of the simplest way of usage. 1. Create a Ruby/Tk application which works on your local windowing system. Using external programs or libraries is OK. You can also use $stdout and $stderr to output messages. The only restriction is "toplevel layer of GUI is constructed with Ruby/Tk". 2. Test your application by loading to Ruby/TkORCA's core script. You'll be able to see and use your application is a Ruby/TkORCA window. Please test whether does the application work properly. If not (e.g. security error), you may modify the application. If your application is secure (e.g. never read a string from user, unavailable public use, and so on), you can change safe-level for the application (you can define by commandline options). 3. Start Ruby/TkORCA server. Please connect to port 5940 (default) of the server by VNC viewer. You'll be able to see the same view as the window which you saw at Step 2, if your firewall passes through the packets ;-). Adminitrator of the Ruby/TkORCA server (is YOU :-)) can supervise and control the running application (like IRB). For example, a network-accessable "Hello, World" GUI application is, 1. create "/tmp/hello.rb" ----------------------------------------------------------------- require 'tk' TkButton.new(:text=>'hello', :command=>proc{ Tk.messageBox(:message=>'Hello, Ruby/TkORCA !!') }).pack Tk.mainloop ----------------------------------------------------------------- 2. test it on the local windowing system. ----------------------------------------------------------------- $ tkorca.rb /tmp/hello.rb ----------------------------------------------------------------- 3. start a server. ----------------------------------------------------------------- $ tkorca_server.rb /tmp/hello.rb ----------------------------------------------------------------- If you want to run as a daemon, ----------------------------------------------------------------- $ tkorca_daemon.rb /tmp/hello.rb ----------------------------------------------------------------- That's all. Probably, you'll be able to complete all of them in 3 minutes. And the following is an example of administration. In it, the administrator forces to invoke the "hello" button. ========================================================================= $ telnet localhost 5941 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. *** Control Port of Ruby/TkORCA Server *** Username: admin Password: Connect ... Pod[5940]> list --- list of current connections --- ID[1]: connection ["AF_INET", 54592, "192.168.11.8", "192.168.11.8"] on display :1 from 2006-08-26 23:36:38 ----------------------------------- Pod[5940]> connect 1 ID[1]:0> TkORCA.daughter_list => {#=>"/tmp/hello.rb"} ID[1]:0> daughter = TkORCDA.daughter_list.index('/tmp/hello.rb') => # ID[1]:0> daughter.eval{ Tk.root.winfo_children }.value => [#] ID[1]:0> daughter.eval{ Tk.root.winfo_children[0].invoke } => # ID[1]:0> ========================================================================= You can define a method that do such administration steps on the other script file, and load it at starting the application. You can also add supervising or control operations to exsisting methods. Ruby/TkORCA has a module to help you to define such wrappers. *** What are required? *** Ruby/TkORCA is a pure-Ruby/Tk application. It requires * Ruby 1.8.5 or later with working Ruby/Tk ( It means that Tcl/Tk is required also. ) * Xvnc with "inetd" support ( I recommend TightVNC. ) And other programs and libraries which your applications require. *** How to install? *** Extract the Ruby/TkORCA archive. :-) You may want to modify some configuration files to change default settings of Ruby/TkORCA. *** How to get? *** You can find an archive of the beta version of Ruby/TkORCA at . However... I'm very sorry but it doesn't include English documents. ( There are Japanese documents. But many part of Ruby/TkORCA are undocumented. So, it is still a "trial" version. Could anyone help me to translate documents to English? ) There is no official site of Ruby/TkORCA yet. If you want to ask me about Ruby/TkORCA, please post it to this ML. ( Please add "[Ruby/TKORCA]" at head of the subject. ) NOTE: The archive includes some examples. One of them requires Tcl/Tk's Tile extension. And another one of them require VTk (Visualization Tool Kit). Welcome to your comments. I'm very happy if you can enjoy "network GUI programming" with Ruby/TkORCA. -- Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)