The devel/git-review port has been updated to the latest version. Changelog for git-review 1.23 Fix str(None) bug in port detection for hook setup Fix pep8 deps for pyflakes version conflict. Expand multiple commit submission warning. Changelog for git-review 1.22 Provide usage help even if not in Git directory Document defaultremote option & site/user configs Allow […]
Read more8 bit music in pure JavaScript
HTML 5 offers a Web Audio API, to add synthesizing audio support in web applications. Cody Lundquist, an Australian from Sidney, created a 8 bit music audio library built on the top of the Web Audio API, called 8Bit.js Audio Library. You define a time (e.g. 4/4), a tempo, and you then the notes. Submitted […]
Read moreGerrit activity feeds :: a design and infrastructure sneak peak
Gerrit provides nice views by changes, but doesn’t offer synthetic and consolidated views. Activity feeds will be timelines to offer these views; What are the users’ last activities (commits, patchsets, merges) on Gerrit? What’s going on on the mediawiki/extensions/SemanticMediaWiki repository? Here the homepage dashboard: And here the wireframe of the project activity feed: About the […]
Read moreTools
This week, I’m preparing a site to host some tools and web services. It will be built on the top of: Foundation from Zurb to get a responsive design; Pluton, as a flexible content web engine; Scripts to interact with Gerrit in real-time and generate activity feeds. Here a snapshot the design I prepared, called […]
Read moreMinimal SQL schema for Keruald and Pluton
I’m creating a new site for tools (see next post) built on the top of Keruald/Pluton. This is the opportunity to refresh the SQL schema. It supports 16 777 215 users account, is IPv6 and salted password compliant. Here the new minimal SQL schema for MySQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
CREATE TABLE `sessions` ( `session_id` varchar(32) NOT NULL DEFAULT '', `session_ip` varchar(45) NOT NULL DEFAULT '', -- Native IPv6 are 39 chars max and with IPv4 tunnel 45 chars `session_resource` mediumint(5) NOT NULL DEFAULT 1, `user_id` mediumint(5) NOT NULL DEFAULT '-1', `session_online` tinyint(4) NOT NULL DEFAULT '1', `session_updated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`session_id`), KEY `Where` (`session_resource`), KEY `WhereWhen` (`session_resource`, `session_updated`) ) ENGINE=MEMORY COMMENT='Sessions for Keruald sites'; CREATE TABLE `users` ( `user_id` mediumint(5) NOT NULL DEFAULT '0', `username` varchar(11) NOT NULL DEFAULT '', `user_password_salt` varchar(32) NOT NULL DEFAULT '', `user_password` varchar(32) NOT NULL DEFAULT '', `user_active` tinyint(1) NOT NULL DEFAULT '0', `user_actkey` varchar(11) DEFAULT NULL, `user_email` varchar(63) NOT NULL DEFAULT '', `user_regdate` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`), KEY user_active (`user_active`) ) COMMENT='Users for Keruald sites'; |
How to use TclSOAP 1.6.7 in 2013
TclSOAP is a library to create or consume SOAP WebServices. It also allows to consume XML-RPC stuff. Unfortunately, strange versionning choices (it search precises versions of the dom TCL package, and of course, these versions bumped with the years) broke the package require mechanism. This patch solves that and allows you to use it:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
diff --git SOAP.tcl SOAP.tcl index 4ba871e..1aaa071 100644 --- SOAP.tcl +++ SOAP.tcl @@ -22,12 +22,11 @@ package require rpcvar; # TclSOAP namespace eval ::SOAP {variable domVersion} if {[catch {package require SOAP::dom 1.0} ::SOAP::domVersion]} { - if { [catch {package require dom 2.0} ::SOAP::domVersion]} { - if { [catch {package require dom 1.6} ::SOAP::domVersion]} { - error "require dom package greater than 1.6" - } - package require SOAP::xpath; # TclSOAP + if {[catch {package require dom} ::SOAP::domVersion] || [package vcompare $::SOAP::domVersion 1.6] < 0} { + error "require dom package greater than 1.6" } + package require SOAP::xpath; # TclSOAP + proc ::SOAP::createDocument {name} { set doc [dom::DOMImplementation create] return [dom::document createElement $doc $name] diff --git pkgIndex.tcl pkgIndex.tcl index ca84e42..ebdf78f 100644 --- pkgIndex.tcl +++ pkgIndex.tcl @@ -11,7 +11,6 @@ package ifneeded SOAP 1.6.7 [list source [file join $dir SOAP.tcl]] package ifneeded SOAP::CGI 1.0 [list source [file join $dir SOAP-CGI.tcl]] package ifneeded SOAP::Domain 1.4 [list source [file join $dir SOAP-domain.tcl]] -package ifneeded SOAP::Service 0.4 [list source [file join $dir SOAP-service.tcl]] package ifneeded SOAP::Utils 1.0.1 [list source [file join $dir utils.tcl]] package ifneeded SOAP::ftp 1.0 [list source [file join $dir ftp.tcl]] package ifneeded SOAP::http 1.0 [list source [file join $dir http.tcl]] diff --git xpath.tcl xpath.tcl index 14b0334..f33e02c 100644 --- xpath.tcl +++ xpath.tcl @@ -14,10 +14,9 @@ # for more details. # ------------------------------------------------------------------------- -if { [catch {package require dom 2.0}] } { - if { [catch {package require dom 1.6}] } { +namespace eval ::SOAP {variable domVersion} +if { [catch {package require dom} ::SOAP::domVersion] || [package vcompare $::SOAP::domVersion 1.6] < 0} { error "require dom package greater than 1.6" - } } namespace eval SOAP::xpath { |
[…]
Read moreOPW office hours: Mon Wed Thu Fri 14:00 PST
During the Outreach Program for Women, I’m scheduling office hours each Monday, Wednesday, Thursday and Friday at 14:00 (pacific time) / 22:00 (UTC) / 23:00 (CET). I’ll be available on Freenode #wikimedia-dev for my mentoree, and by extension to any people needing help on the following topics: General PHP language questions Git repository Gerrit code […]
Read moreValspeak
The valspeak is a variant of American English spoken in California. Let me rewrite that correctly: The valspeak is ya know, like, a variant of American English, fer shure, spoken in California. In 1986, someone asks on the net.sources newsgroup the source of a small software to make this kind of conversion. To celebrate the […]
Read morePhabricator: a script to find TODO lines in a code base and generate bug reports.
Sometimes, a code base is haunted with dozens of lines like this one: [php] //TODO: handle relative moves [/php] This line doesn’t explain the current state of code as much as it offers a feature request. But this feature request isn’t really visible, you have to browse the relevant code file to see it. So, what about […]
Read more