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 moreGet the Wikimedia configuration on IRC
If you’re on Freenode #wikimedia-tech or #mediawiki, you can query the Wikimedia site configuration. This is an alternative to browse this 12 227 lines file. Usage: .config <configuration variable> <local project> [key…] 06:36:48 < Dereckson> .config wmgEnableLandingCheck 06:36:49 <Daeghrefn> false If the configuration value is an array, you can dump it: 06:28:47 <+Dereckson> .config wgExtraNamespaces […]
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 more