[Jorge Moreno] <
> [JorgePIC%|% width=200 height=200] <
> <> ** contact ** jorge raul moreno -at- hot mail -dot- com ''I heard that every android has a wish: to be ticklish...''<
> This Android never suffered Pteronophobia (the fear of being tickled by feathers!) [androwishIcon3%|% width=100 height=100] ** Great Tutorials ** * Learn X in Y minutes (Where X=Tcl) https://learnxinyminutes.com/docs/tcl/ * A Brief Introduction to Tcl/Tk ftp://ftp.oreilly.com/pub/convention/os/tutorial/tcltk.pdf ** My Books:** %|Title|Author|% &|Practical Programming in Tcl and Tk |Brent Welch|& &|Effective Tcl/Tk Programming |Mark Harrison/Michael McLennan|& &|Tcl/Tk for Real Programmers |Clif Flynt|& &|The Tcl Programming Language |Ashok P Nadkarni|& Effective Tcl/Tk Programming ---- ** Pages I started...** * [LogParser] * [LogParser goes COM] * [playing BLT] * [timeliner (minutes instead of years)] * [multiple timers] * [a form for Access Database] * [Clif Flynt Articles] * [LemonTree branch] * [Tclodbc + BLT] * [a perpetual calendar] * [JeeMon] * [Mavrig] * [LemonTree Org Chart] Oct-9-2012 * [Playing PIC Simulation] Nov-11-2012 * [Web Scraping with htmlparse] Dec-4-2012 * [CGI script for directory listing, simple posts and templates] Dec-29-2012 * [Androwish: Icon] * [colorized crc] * [plink] * [Interfacing PS2 Keyboard with Arduino and Androwish] * [BLT data series in rows or columns] * [Androwish Serial Port] * [Script Catalog - KPV] * [Uli Ender bitbang I2C with Arduino] 11/23/2019 ---- ** pages where I have made minor edits...** * [Wiki format to HTML] on 7/8/2011 * [toggle button] on Feb-2011 * [web2desktop] on 7/27/2011 * [Turtle Shell for Androwish] 3/21/2014 * [Ticker] 4/2/2014 * [True Random Numbers] 4/3/2014 ---- ** when programming with Tcl, I use:** for XML parsing * drive [LogParser] through COM and Tcl web scrapping * tool that helps: firefox add-on that shows tdom structure (DOM Inspector) * tool that shows http protocol (HttpFox) * [LemonTree branch] diagrams * http://www.graphviz.org/ * [Tcldot] * [XML Graph to canvas] * [Generating Syntax Diagrams Using Tk] WebServer * [Wibble] * [tclHttpd] Static content * [MajaMaja] driving other windows application * [cwind] Most used: * [tclODBC] * [BLT] * [tablelist] ---- ** Bookmarks:** * [Windows wish console] * [a little spreadsheet] * [Using Tcl to write WWW client side applications within the WWW browser] * Home Automation Portal Appliance with Tcl: http://hometoys.com/emagazine.php?url=/htinews/apr06/articles/appliance/part2.htm * http://net.tutsplus.com/tutorials/other/http-headers-for-dummies/ ---- * [Teach programming to children] * [High-level wrapper for pdf4tcl] * http://tcl.projectforum.com/young/22 * http://incrtcl.sourceforge.net/itcl/mmc/snaps.html * [Quick photo rotation] which includes how to rotate a label... ---- 2013-12-07 [A few of your favorite things] about editing scripts with [Tkcon]<
> 2014-06-25 [Hack-O-Matic]<
> 2014-08-09 [filewait]<
> 2014-08-22 [Quick Formatting ANSI Colour Escape Strings]<
> 2014-08-22 [cgrep - Color your output with regular expressions!]<
> 2014-10-03 [WikIndent] input line by line<
> 2015-03-13 [Freecell] for a cross platform alternative to SystemButtonFace color<
> 2015-03-13 [Invoking browsers] to launch firefox under linux<
> 2015-10-15 [vgrep: a visual grep]<
> 2016-11-17 [serial ports on Windows]<
> [Matthias Hoffmann] * [Simple Program Menu] [Detlef Groth] * [TemplateRecall] * [dgDBBrowser] [wdb] * [MTE] 2017-03-17 [minimalist wget]<
> 2017-07-05 [getopt] to parse out switches from the command line (argv) by name<
> 2017-07-11 [LiSA]<
> SWIG exemples http://wfr.tcl.tk/1693 <
> Scan and modify text files http://wiki.tcl.tk/15518 <
> Easy Text Print (includes awk) http://wiki.tcl.tk/42409 <
> 'xpg' - a text file browser (includes awk) http://wiki.tcl.tk/38443 awk and shell script <
> *** Web *** %|Date|Page|tags|% &|2017-12-20|[Editing the Tcl'ers Wiki using an editor of your choice]|TBD|& &|2017-12-28|[w3m]|automate web browser with Expect|& *** SQLite *** %|Date|Page|tags|% &|2017-12-20|[Get CPU Temperature Statistics]|sqlite|& &|2017-12-28|[Paging with TkTreeCtrl + SQlite]|CREATE TABLE IF NOT EXISTS|& &|2015-01-13|[Heronian triangles]|TBD|& 6/7/2018 Web HTML http * [MkBugs] * [My first wapp-lication] * [Tcl does OCR online] 3/27/2019 *** Arduino *** [Firmata]<
> [Interfacing PS2 Keyboard with Arduino and Androwish]<
> [JeeMon]<
> [A scale with Arduino and AndroWish]<
> <
> *** BLT *** [Filtering measurement values with a 1D Kalman filter]<
> ---- BLT-newbie - barchart: How to display value under mouse cursor<
> http://computer-programming-forum.com/57-tcl/b286e0c308f1604e.htm<
> ---- BLT graph: Problem setting colors using RGB notation<
> http://computer-programming-forum.com/57-tcl/790b8f5784d4984a.htm<
> ---- BLT vector creation: creation time grows as number of vectors created grows<
> http://computer-programming-forum.com/57-tcl/326d86938e3c7375.htm<
> *** Code Review:*** * [OpenSky API] * [LogParser accessing the Windows event log] * Androwish - Tcl interface to libmodbus, using Ffidl and TclOO *** Assemblers:*** * Uli Ender's - See [17th European Tcl/Tk Users Meeting 2019] * https://spivey.oriel.ox.ac.uk/corner/Nanocomp_clock * [Qibec] <
> ** My formatting guide** *** Italics:*** ''My quick reference'' ''My quick reference'' *** Bold:*** '''My formatting guide''' '''My formatting guide''' *** Numbered List*** xxxd.xItem1 1. Item1 ======tcl puts "Tcl is great!" ====== puts "did I mention that Tcl is great?" ====== puts "Tcl/Tk" ====== Links:<
> For [Formatting Rules] click [Formatting Rules%|%here%|%] or http://wiki.tcl.tk%|%here%|% <
> [graffiti] ---- ** tclODBC + tclhttpd ** ''[JM] 22 Jul 2011'' - I was just playing a little bit with [tclhttpd] by putting the following code on the file: \htdocs\cgi-bin\test.cgi package require tclodbc set driver "Microsoft Access Driver (*.mdb)" set dbfile "C:\\Program Files\\Microsoft Office\\office11\\samples\\Northwind.mdb" puts [html::h3 "getting info from Access through tclODBC..."] puts "" database connect db "DRIVER=$driver;DBQ=$dbfile" foreach rec [db "select EmployeeID,LastName,FirstName FROM Employees;"] { puts "" foreach field $rec { puts "" } puts "" } puts "
$field
" db disconnect just after the following existing lines: puts [html::h1 "Hello, World!"] puts [html::h2 [clock format [clock seconds]]] and I got a dynamic page that queries the database that comes as a sample with the [Microsoft Access] installation. you can get there by means of the '''CGI''' link on the home page, then through the '''Sample form posted to test.cgi''' and finally hitting the "Submit Query" button. ---- ** pscp ** ''[JM] 7 Sep 2013'' - pscp from the http://www.chiark.greenend.org.uk/~sgtatham/putty/%|%putty%|% family of tools, see also plink * The following script runs on a windows machine * Getting a file from an ubuntu machine * The file will be copied to c:\putty in this case console show proc action {} { cd c:/putty set f [open "|\"pscp.exe\" -l jorge -pw yourpwd [.from get]:[.path get] ."] puts done } entry .from entry .path -width 50 button .button -text get -command action .from insert 0 jorge@192.168.1.82 .path insert 0 /home/jorge/sample.txt pack .from .path .button ** gnuplot and the tkcanvas terminal type ** ''[JM] 26 Oct 2013'' - I dont know why, but I had to put some puts commands after the [source] command to make http://wfr.tcl.tk/273%|%it%|% work, if not, I was getting an error saying that the gnuplot commmand did not exist console show #set gpexe C:/gnuplot-4.0/bin/pgnuplot.exe set gpexe "C:/Program Files (x86)/gnuplot/bin/pgnuplot.exe" #set outfile C:/data/resultat.tk set outfile "C:/Users/jmoreno/Documents/code/gnuplot/resultat.tk" set gp [open "|\"$gpexe\"" r+] puts $gp "set term tk" puts $gp "set output '$outfile'" puts $gp "set noborder\nset zeroaxis" puts $gp "set xtics 1\nset ytics .5" puts $gp "plot \[-2:2\] atan(x)" close $gp pack [canvas .c] source $outfile puts $outfile puts [info commands gnu*] update gnuplot .c ''[JM] 7 Nov 2014'' - Looks like the real fix is this (just waiting a little, to let pgnuplot.exe to completely close): console show #set gpexe C:/gnuplot-4.0/bin/pgnuplot.exe set gpexe "C:/Program Files (x86)/gnuplot/bin/pgnuplot.exe" #set outfile C:/data/resultat.tk set outfile "C:/Users/jmoreno/Documents/code/gnuplot/resultat.tk" set gp [open "|\"$gpexe\"" r+] puts $gp "set term tk" puts $gp "set output '$outfile'" puts $gp "set noborder\nset zeroaxis" puts $gp "set xtics 1\nset ytics .5" puts $gp "plot \[-2:2\] atan(x)" close $gp after 1000 pack [canvas .c] source $outfile #puts "we are at: [pwd]" #puts $outfile #puts [info commands gnu*] #update gnuplot .c ** Expect ** ''[JM] 18 Feb 2014'' - The following example was good for me to try the basics<
> [Remote input-output with Expect] ** XML Post HTTP ** ''[JM] 26 Feb 2017'' - from:<
> https://groups.google.com/forum/#!topic/comp.lang.tcl/B6afDJQg8LA package require http console show set organism_name "nipah" set xml " B0905 org.pdb.query.simple.OrganismQuery Organism Search : Organism Name=$organism_name $organism_name " set url "http://www.rcsb.org/pdb/rest/search" set tok [::http::geturl $url -query $xml -type application/x-www-form-urlencoded] set rep [::http::data $tok] puts "[::http::status $tok]" puts $rep ::http::cleanup $tok ** Where is tablelist? ** % package require tablelist 5.13 % package ifneeded tablelist 5.13 package provide tablelist 5.13;source -encoding utf-8 C:/Tcl/lib/teapot/package/tcl/teapot/tcl8/8.0/tablelist-5.13.tm % C:\Tcl\lib\teapot\package\tcl\lib\tablelist_common5.13 ** TreeQL Examples ** +& | 1 | [wiki-reaper] | tbd +& | 2 | [Web Scraping with htmlparse] | withatt type +& | 3 | https://github.com/jtcl-project/jtcl/blob/master/src/main/resources/tcl/pkg/tcllib/library/page/util_norm_peg.tcl | over n ** Other scripts that need some polishing ** *** extract images from pdf *** ====== package require mupdf console show # just a bare GUI - a label containing an image "imagePage" image create photo imagePage label .page -image imagePage -padx 5 -pady 5 pack .page -expand 1 -fill both label .info -text "Press Up / Down keys" -relief groove pack .info -fill x -padx 2 -pady 2 bind .page {showPage $pdf [prevPage]} bind .page {showPage $pdf [nextPage]} proc showPage {pdf n} { set page [$pdf getpage $n] imagePage blank ;# just in case the new page is smaller than previous $page saveImage imagePage -zoom 0.5 } proc nextPage {} { global gApp if { $gApp(currpage) < $gApp(lastpage) } { incr gApp(currpage) } return $gApp(currpage) } proc prevPage {} { global gApp if { $gApp(currpage) > 0 } { incr gApp(currpage) -1 } return $gApp(currpage) } # --- set pdfFileName [tk_getOpenFile -filetypes {{Pdf .pdf}}] set pdf [mupdf::open $pdfFileName] # open a file and save 1st page as a .png file # package require mupdf # set pdf [mupdf::open /mydir/sample.pdf] # $page savePNG /mydir/page0.png # $pdf quit set pageQty [$pdf npages] for {set i 0} {$i < $pageQty} {incr i} { set page [$pdf getpage $i] ;# 0 is the 1st page set ctr 0 foreach imagen [$page images list] { puts $imagen set id [$page images extract -id [lindex $imagen 0] -as "img$i-[lindex $imagen 1]"] incr ctr } } set gApp(currpage) 0 set gApp(lastpage) [expr [$pdf npages]-1] showPage $pdf 0 focus .page ====== <> Person