Recent changes to this wiki:
empty message
diff -rN -u old-sw.srcdir/index.mdwn new-sw.srcdir/index.mdwn --- old-sw.srcdir/index.mdwn 2013-08-17 20:47:03.000000000 +0200 +++ new-sw.srcdir/index.mdwn 2013-08-17 20:47:03.000000000 +0200 @@ -1,4 +1,4 @@ -MagmaSofts "Software" Wiki +\MagmaSofts "Software" Wiki ========================== Find your way around:
empty message
diff -rN -u old-sw.srcdir/EnterpriseNumber.mdwn new-sw.srcdir/EnterpriseNumber.mdwn --- old-sw.srcdir/EnterpriseNumber.mdwn 2013-08-17 20:47:03.000000000 +0200 +++ new-sw.srcdir/EnterpriseNumber.mdwn 2013-08-17 20:47:03.000000000 +0200 @@ -25,14 +25,14 @@ used in conjunctions with the Pluggable Authentication Mecanism PAM found in GNU/Linux Systems. -> [[/1.3.6.1.4.1.22692.1.2]] +> [[1.3.6.1.4.1.22692.1.2]] ## ?WdAddressEntry This schema provides additional attributes for the inetOrgPerson, and posixAccount ?ObjectClasses. -> [[/1.3.6.1.4.1.22692.1.3]] +> [[1.3.6.1.4.1.22692.1.3]] ## ?UniUserEntry @@ -40,7 +40,7 @@ [[Universidad Nacional de Ingenieria|http://www.uni.edu.ni/]] Managua/Nicaragua -> [[/1.3.6.1.4.1.22692.1.4]] +> [[1.3.6.1.4.1.22692.1.4]] ## Pure-FTPd @@ -48,7 +48,7 @@ This schema adds the `FTPDirectory` attribute to the original `pureftpd.schema`, which is an alternative to the `homeDirectory` attribute. -> [[/1.3.6.1.4.1.22692.1.5]] +> [[1.3.6.1.4.1.22692.1.5]] # SNMP oid's @@ -60,23 +60,23 @@ This implements an extension to the Net-SNMP package, allowing to query the status and data of Linux Software Raid devices. - * [["/1.3.6.1.4.1.22692.2.7243"|"/1.3.6.1.4.1.22692.2.7243"]] + * [[1.3.6.1.4.1.22692.2.7243"]] ## OpenVZ Beancounter MIB This schema provides the Beancounters of Virtual Machines under ?OpenVz/Virtuozzo as in seen in [[http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp|http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp]] - * [["/1.3.6.1.4.1.22692.2.25194"|"/1.3.6.1.4.1.22692.2.25194"]] + * [[1.3.6.1.4.1.22692.2.25194]] ## OpenVZ Quota MIB This schema provides the vzquotas of Virtual Machines under ?OpenVz/Virtuozzo as in seen in [[http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp|http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp]] - * [["/1.3.6.1.4.1.22692.2.25195"|"/1.3.6.1.4.1.22692.2.25195"]] + * [[1.3.6.1.4.1.22692.2.25195]] ## Chrony Status MIB -* [["/1.3.6.1.4.1.22692.2.6396"|"/1.3.6.1.4.1.22692.2.6396"]] +* [[1.3.6.1.4.1.22692.2.6396]] # References
added Pure-FTPd schema extension
diff -rN -u old-sw.srcdir/EnterpriseNumber.mdwn new-sw.srcdir/EnterpriseNumber.mdwn --- old-sw.srcdir/EnterpriseNumber.mdwn 2013-08-17 20:47:05.000000000 +0200 +++ new-sw.srcdir/EnterpriseNumber.mdwn 2013-08-17 20:47:05.000000000 +0200 @@ -1,40 +1,59 @@ +[[!toc]] -[[!toc ]] +MagmaSoft has been asigned the +[[IANA Enterprise Number|http://www.iana.org/assignments/enterprise-numbers]]: -[[MagmaSoft|MagmaSoft]] has been asigned the Enterprise Number: +> 22692 - * 22692 -by IANA: [[http://www.iana.org/assignments/enterprise-numbers|http://www.iana.org/assignments/enterprise-numbers]] - -We use this number in several Extensions and Applications, documented on this page. +We use this number in several Extensions and Applications, documented +on this page. # LDAP Schemes -All LDAP-Schemes used by [[MagmaSoft|MagmaSoft]] shall use the prefix: 1.3.6.1.4.1.22692.1 +All LDAP-Schemes used by MagmaSoft shall use the prefix: + +> 1.3.6.1.4.1.22692.1 ## dup, resp. dialupAccount Schema -This Schema adds attributes to the _core_ and _cosine_ schemes, allowing to define restrictions for Dialup-Access. It is used by [[MagmaSoft|MagmaSoft]] to generate `time.conf` (timely restrictions) and `limits.conf` (number of simultaneously allowed logins) definitions, used in conjunctions with the Pluggable Authentication Mecanism PAM found in GNU/Linux System.s +This Schema adds attributes to the _core_ and _cosine_ schemes, +allowing to define restrictions for Dialup-Access. It is used by +MagmaSoft to generate `time.conf` (timely restrictions) and +`limits.conf` (number of simultaneously allowed logins) definitions, +used in conjunctions with the Pluggable Authentication Mecanism PAM +found in GNU/Linux Systems. - * [["/1.3.6.1.4.1.22692.1.2"|"/1.3.6.1.4.1.22692.1.2"]] +> [[/1.3.6.1.4.1.22692.1.2]] ## ?WdAddressEntry -This schema provides additional attributes for the inetOrgPerson, and posixAccount [[ObjectClasses|ObjectClasses]] +This schema provides additional attributes for the inetOrgPerson, and +posixAccount ?ObjectClasses. - * [["/1.3.6.1.4.1.22692.1.3"|"/1.3.6.1.4.1.22692.1.3"]] +> [[/1.3.6.1.4.1.22692.1.3]] ## ?UniUserEntry -This schema provides Attributes for the User entries at the [[http://www.uni.edu.ni/ Universidad Nacional de Ingenieria|http://www.uni.edu.ni/ Universidad Nacional de Ingenieria]] Managua/Nicaragua +This schema provides Attributes for the User entries at the +[[Universidad Nacional de Ingenieria|http://www.uni.edu.ni/]] +Managua/Nicaragua + +> [[/1.3.6.1.4.1.22692.1.4]] + + +## Pure-FTPd + +This schema adds the `FTPDirectory` attribute to the original +`pureftpd.schema`, which is an alternative to the `homeDirectory` attribute. + +> [[/1.3.6.1.4.1.22692.1.5]] - * [["/1.3.6.1.4.1.22692.1.4"|"/1.3.6.1.4.1.22692.1.4"]] # SNMP oid's -All SNMP-oid's used by [[MagmaSoft|MagmaSoft]] shall use the prefix: 1.3.6.1.4.1.22692.2 +All SNMP-oid's used by MagmaSoft shall use the prefix: 1.3.6.1.4.1.22692.2 ## RAID MIB
empty message
diff -rN -u old-sw.srcdir/tips.mdwn new-sw.srcdir/tips.mdwn --- old-sw.srcdir/tips.mdwn 2013-08-17 20:47:05.000000000 +0200 +++ new-sw.srcdir/tips.mdwn 2013-08-17 20:47:05.000000000 +0200 @@ -1 +1 @@ -[[!map pages="^Tips*"]] +[[!map pages="Tips*"]]
empty message
diff -rN -u old-sw.srcdir/tips.mdwn new-sw.srcdir/tips.mdwn --- old-sw.srcdir/tips.mdwn 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/tips.mdwn 2013-08-17 20:47:05.000000000 +0200 @@ -0,0 +1 @@ +[[!map pages="^Tips*"]]
empty message
diff -rN -u old-sw.srcdir/index.mdwn new-sw.srcdir/index.mdwn --- old-sw.srcdir/index.mdwn 2013-08-17 20:47:05.000000000 +0200 +++ new-sw.srcdir/index.mdwn 2013-08-17 20:47:05.000000000 +0200 @@ -1,12 +1,29 @@ -*This is the "Software" Wiki of Magma Soft* - - -It has been around quite a long time and accumulated some bits of -knowledge. In July/August 2013 I have moved it from MoinMoin to -[http://ikiwiki.info|ikiwiki]] and cleaned up everything unrelated -to software. - -- [[Tips and notes about some software I had to do with|tips]] -- EnterPriseNumber of MagmaSoft, some Schemas and MIB's -- SiteMap - +MagmaSofts "Software" Wiki +========================== + +Find your way around: + +- [[Tips and notes about some software I had to do with|tips]] +- Plan9Tutorial +- EnterPriseNumber of MagmaSoft, some Schemas and MIB's +- SiteMap + +A little bit of history +======================= + +This wiki has been around quite a long time and accumulated some bits of +knowledge. + +Somewhere around the millenium change I had my first webpage and +started to scribble around in a Kwiki Wiki installation. + +Later I discovered MoinMoin which I used a lot. The Kwiki Wiki +pages were slowly (and incompletely) moved to the new MoinMoin +wiki. + +In July/August 2013 I moved the MagmaSoft "Software Wiki from MoinMoin to +[[http://ikiwiki.info|ikiwiki]] and cleaned up everything unrelated +to software. + + +
creating index page AnsiForth
diff -rN -u old-sw.srcdir/AnsiForth.mdwn new-sw.srcdir/AnsiForth.mdwn --- old-sw.srcdir/AnsiForth.mdwn 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/AnsiForth.mdwn 2013-08-17 20:47:05.000000000 +0200 @@ -0,0 +1 @@ +[[!map pages="AnsiForth/* and ! AnsiForth/*/*"]]
MoinMoin 2 ikiWiki conversion
diff -rN -u old-sw.srcdir/AnsiForth/ControlFlow.mdwn new-sw.srcdir/AnsiForth/ControlFlow.mdwn --- old-sw.srcdir/AnsiForth/ControlFlow.mdwn 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/AnsiForth/ControlFlow.mdwn 2013-08-17 20:47:05.000000000 +0200 @@ -0,0 +1,214 @@ + + +## Control Flow +BEGIN +: + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Compilation: ( C: -- dest ) + + +: Put the next location for a transfer of control, dest, onto the control flow stack. Append the run-time semantics given below to the current definition. + + +: Run-time: ( -- ) + + +: Continue execution. + +DO +: + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Compilation: ( C: -- do-sys ) + + +: Place do-sys onto the control-flow stack. Append the run-time semantics given below to the current definition. The semantics are incomplete until resolved by a consumer of do-sys such as LOOP. + + +: Run-time: ( n1|u1 n2|u2 -- ) ( R: -- loop-sys ) + + +: Set up loop control parameters with index n2|u2 and limit n1|u1. An ambiguous condition exists if n1|u1 and n2|u2 are not both the same type. Anything already on the return stack becomes unavailable until the loop-control parameters are discarded. + +I +: Â + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Execution: ( -- n|u ) ( R: loop-sys -- loop-sys ) + + +: n|u is a copy of the current (innermost) loop index. An ambiguous condition exists if the loop control parameters are unavailable. + +IF +: Â + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Compilation: ( C: -- orig ) + + +: Put the location of a new unresolved forward reference orig onto the control flow stack. Append the run-time semantics given below to the current definition. The semantics are incomplete until orig is resolved, e.g., by THEN or ELSE. + + +: Run-time: ( x -- ) + + +: If all bits of x are zero, continue execution at the location specified by the resolution of orig. + +J +: + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Execution: ( -- n|u ) ( R: loop-sys1 loop-sys2 -- loop-sys1 loop-sys2 ) + + +: n|u is a copy of the next-outer loop index. An ambiguous condition exists if the loop control parameters of the next-outer loop, loop-sys1, are unavailable. + ++LOOP +: plus-loop + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Compilation: ( C: do-sys -- ) + + +: Append the run-time semantics given below to the current definition. Resolve the destination of all unresolved occurrences of LEAVE between the location given by do-sys and the next location for a transfer of control, to execute the words following +LOOP. + + +: Run-time: ( n -- ) ( R: loop-sys1 -- | loop-sys2 ) + + +: An ambiguous condition exists if the loop control parameters are unavailable. Add n to the loop index. If the loop index did not cross the boundary between the loop limit minus one and the loop limit, continue execution at the beginning of the loop. Otherwise, discard the current loop control parameters and continue execution immediately following the loop. + +ELSE +: + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Compilation: ( C: orig1 -- orig2 ) + + +: Put the location of a new unresolved forward reference orig2 onto the control flow stack. Append the run-time semantics given below to the current definition. The semantics will be incomplete until orig2 is resolved (e.g., by THEN). Resolve the forward reference orig1 using the location following the appended run-time semantics. + + +: Run-time: ( -- ) + + +: Continue execution at the location given by the resolution of orig2. + +LEAVE +: + + +: Interpretation:: Interpretation semantics for this word are undefined. + + +: Execution:: ( -- ) ( R: loop-sys -- ) + + +: Discard the current loop control parameters. An ambiguous condition exists if they are unavailable. Continue execution immediately following the innermost syntactically enclosing DO + + +1. .. LOOP or DO ... +LOOP. LOOP +: + + +: Interpretation:: Interpretation semantics for this word are undefined. + + +: Compilation:: ( C: do-sys -- ) + + +: Append the run-time semantics given below to the current definition. Resolve the destination of all unresolved occurrences of LEAVE between the location given by do-sys and the next location for a transfer of control, to execute the words following the LOOP. + + +: Run-time:: ( -- ) ( R: loop-sys1 -- | loop-sys2 ) + + +: An ambiguous condition exists if the loop control parameters are unavailable. Add one to the loop index. If the loop index is then equal to the loop limit, discard the loop parameters and continue execution immediately following the loop. Otherwise continue execution at the beginning of the loop. + +UNLOOP +: + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Execution: ( -- ) ( R: loop-sys -- ) + + +: Discard the loop-control parameters for the current nesting level. An UNLOOP is required for each nesting level before the definition may be EXITed. An ambiguous condition exists if the loop-control parameters are unavailable. + +REPEAT +: + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Compilation: ( C: orig dest -- ) + + +: Append the run-time semantics given below to the current definition, resolving the backward reference dest. Resolve the forward reference orig using the location following the appended run-time semantics. + + +: Run-time: ( -- ) + + +: Continue execution at the location given by dest. + +UNTIL +: + + +: Interpretation: Interpretation semantics for this word are undefined. + + +: Compilation: ( C: dest -- ) + + +: Append the run-time semantics given below to the current definition, resolving the backward reference dest. + + +: Run-time: ( x -- ) + + +: If all bits of x are zero, continue execution at the location specified by dest. + (Diff truncated)
HASH(0xac5becc)
diff -rN -u old-sw.srcdir/EnterpriseNumber/1.3.6.1.4.1.22692.2.7243.moin new-sw.srcdir/EnterpriseNumber/1.3.6.1.4.1.22692.2.7243.moin --- old-sw.srcdir/EnterpriseNumber/1.3.6.1.4.1.22692.2.7243.moin 2013-08-17 20:47:05.000000000 +0200 +++ new-sw.srcdir/EnterpriseNumber/1.3.6.1.4.1.22692.2.7243.moin 2013-08-17 20:47:05.000000000 +0200 @@ -1,4 +1,4 @@ -[[TableOfContents]] +<<TableOfContents>> = Object Identifiers =
HASH(0xac5c264)
diff -rN -u old-sw.srcdir/Plan9Tutorial/FossilVenti.moin new-sw.srcdir/Plan9Tutorial/FossilVenti.moin --- old-sw.srcdir/Plan9Tutorial/FossilVenti.moin 2013-08-17 20:47:06.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/FossilVenti.moin 2013-08-17 20:47:06.000000000 +0200 @@ -1,4 +1,4 @@ -[[TableOfContents]] +<<TableOfContents>> = Fossil =
HASH(0xac5c73c)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:06.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:06.000000000 +0200 @@ -73,4 +73,4 @@ == Step 5: fileserver == - * follow the respective tutorial starting from: Plan9Tutorial/FileServer#hostowner + * follow the respective tutorial starting from: Plan9Tutorial/FileServer#fileserver
HASH(0xac5dc28)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:06.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:06.000000000 +0200 @@ -1,3 +1,5 @@ +<<TableOfContents>> + == Motivation == Although discouraged in other places, a combined Auth/CPU/Fileserver can be useful.
HASH(0xac5e1c8)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:06.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:06.000000000 +0200 @@ -67,3 +67,8 @@ }}} * follow the instruccions in Plan9Tutorial/AuthServer#authserver for setting up `/lib/ndb/auth` * follow the instrucction in Plan9Tutorial/AuthServer 'hostowner' up to 'hostowners secstore account' + + +== Step 5: fileserver == + + * follow the respective tutorial starting from: Plan9Tutorial/FileServer#hostowner
HASH(0xac5e628)
diff -rN -u old-sw.srcdir/Plan9Tutorial/FileServer.moin new-sw.srcdir/Plan9Tutorial/FileServer.moin --- old-sw.srcdir/Plan9Tutorial/FileServer.moin 2013-08-17 20:47:06.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/FileServer.moin 2013-08-17 20:47:06.000000000 +0200 @@ -1,5 +1,4 @@ -## page was renamed from Plan9Tutorial/CpuServer -[[TableOfContents]] +<<TableOfContents>> This instructions suppose that you just have set up a plain Plan9 computer with fossil+venti support. You do not want to run a fileserver without venti.
HASH(0xac60b3c)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:07.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:07.000000000 +0200 @@ -65,3 +65,5 @@ cd /rc/bin/service mv authsrv.tcp567 tcp567 }}} + * follow the instruccions in Plan9Tutorial/AuthServer#authserver for setting up `/lib/ndb/auth` + * follow the instrucction in Plan9Tutorial/AuthServer 'hostowner' up to 'hostowners secstore account'
HASH(0xac610dc)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthServer.moin new-sw.srcdir/Plan9Tutorial/AuthServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthServer.moin 2013-08-17 20:47:07.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/AuthServer.moin 2013-08-17 20:47:07.000000000 +0200 @@ -1,4 +1,4 @@ -[[TableOfContents]] +<<TableOfContents>> This instructions suppose that you just have set up a plain Plan9 computer. Remember that setup is done with a terminal kernel, an authserver however will
HASH(0xac61474)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin
--- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:07.000000000 +0200
+++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:07.000000000 +0200
@@ -53,3 +53,15 @@
== Step 3: `cpurc` ==
?ToDo: paste diff from my cpurc
+
+
+== Step 4: authservice ==
+
+ * in `cpurc`:
+ * uncomment the lines with `auth/keyfs` and `auth/cron`
+ * change the line with `aux/listen -q tcp` to
+ `aux/listen -q -t /rc/bin/service.auth -d /rc/bin/service tcp`
+ * enable authservice startup {{{
+cd /rc/bin/service
+mv authsrv.tcp567 tcp567
+}}}
HASH(0xac629b0)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:07.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:07.000000000 +0200 @@ -28,8 +28,28 @@ == Overview of installation steps == - 1. install a Plan9 terminal with the 9Atom CD + 1. install a Plan9 terminal with the [[http://www.quanstro.net/plan9/9atom/|9atom]] CD 2. compile and test a cpu/auth/fileserver kernel matching your hardware 3. set up a `cpurc`, which also includes all `termrc` stuff, to get a rio environment 4. set up the authstore and the secstore and start authentication services 5. set up the fileserver and some user accounts + +== Step 2: cpu/auth/fileserver kernel == + +ToDo: paste diff from pcf to pcafc + + * goto `/sys/src/9/pc` + * `cp pcf pcafc` + * patch pcafc with above diff, adapt to your hardware configuration + * `mk 'CONF=pcafc'` + * `9fat:` + * `cp pcafc.gz /n/9fat` + +ToDo: show how to patch `plan9.ini` + + * reboot: `fshalt -r` + * boot into new kernel, fix if needed + +== Step 3: `cpurc` == + +ToDo: paste diff from my cpurc
HASH(0xac62d48)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:07.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:07.000000000 +0200 @@ -30,6 +30,6 @@ 1. install a Plan9 terminal with the 9Atom CD 2. compile and test a cpu/auth/fileserver kernel matching your hardware - 3. set up a `cpurc`, which also includes all termrc` stuff, to get a rio environment + 3. set up a `cpurc`, which also includes all `termrc` stuff, to get a rio environment 4. set up the authstore and the secstore and start authentication services 5. set up the fileserver and some user accounts
HASH(0xac63220)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:08.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:08.000000000 +0200 @@ -28,8 +28,8 @@ == Overview of installation steps == -1) install a Plan9 terminal with the 9Atom CD -2) compile and test a cpu/auth/fileserver kernel matching your hardware -3) set up a `cpurc`, which also includes all termrc` stuff, to get a rio environment -4) set up the authstore and the secstore and start authentication services -5) set up the fileserver and some user accounts + 1. install a Plan9 terminal with the 9Atom CD + 2. compile and test a cpu/auth/fileserver kernel matching your hardware + 3. set up a `cpurc`, which also includes all termrc` stuff, to get a rio environment + 4. set up the authstore and the secstore and start authentication services + 5. set up the fileserver and some user accounts
HASH(0xac636f8)
diff -rN -u old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin --- old-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/Plan9Tutorial/AuthFileCpuServer.moin 2013-08-17 20:47:08.000000000 +0200 @@ -0,0 +1,35 @@ +== Motivation == + +Although discouraged in other places, a combined Auth/CPU/Fileserver can be useful. + +The historical setup is based on the use case of a network of machines of different +capacities: fast CPU servers for execution of programs, machines with "large" disks as +fileservers, and around them a swarm of small workstations with little processing power. + +Nowadays a single personal computer combines as much or more computing power and disk space +as some Plan9 network of machines might have provided in previous times. + +An individual user interested in using Plan9 would rather set up one machine then a network +to play around with the system or use it on a day to day basis. + +Putting the authentication service on the same computer as the fileserver is deemed less secure +then separating them on different physical machines. This part of the Plan9 Tutorial expects, that +your are taking into account this disadvantage. + +== Goal == + +At the end of the tutorial, you will have set up Plan9 computer which brings up a rio session for the +host owner (Glenda), and features file and authentication services. You can 'drawterm' into the computer +as a different user from Windows or Linux, 'cpu' into the computer from a different Plan9 computer, and +use the archival file system remotely. + +Note: I am writing this chapter while setting up the system, so it will take days (weeks?, years?) until +finished. + +== Overview of installation steps == + +1) install a Plan9 terminal with the 9Atom CD +2) compile and test a cpu/auth/fileserver kernel matching your hardware +3) set up a `cpurc`, which also includes all termrc` stuff, to get a rio environment +4) set up the authstore and the secstore and start authentication services +5) set up the fileserver and some user accounts
HASH(0xac656cc)
diff -rN -u old-sw.srcdir/GeorgLehner.moin new-sw.srcdir/GeorgLehner.moin --- old-sw.srcdir/GeorgLehner.moin 2013-08-17 20:47:08.000000000 +0200 +++ new-sw.srcdir/GeorgLehner.moin 2013-08-17 20:47:08.000000000 +0200 @@ -5,7 +5,6 @@ * Email: <<MailTo(NO SPAM PLEASE jorge AT magma DOT com DOT ni, Jorge León)>> * Homepage: http://www.magma.com.ni/~jorge * http://www.pettingers.org/code/sshblack.html - * ?ConferenciaSanCarlos2011 ---- ?CategoryHomepage
HASH(0xac65b2c)
diff -rN -u old-sw.srcdir/CategoryLua.moin new-sw.srcdir/CategoryLua.moin --- old-sw.srcdir/CategoryLua.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/CategoryLua.moin 2013-08-17 20:47:08.000000000 +0200 @@ -0,0 +1,15 @@ +##master-page:CategoryTemplate +##master-date:Unknown-Date +#format wiki +#language en + +Tips, Ideas, or anything else about the [[http://www.lua.org|Lua Language]] + +To add a page to this category, add a link to this page on the last line of the page. You can add multiple categories to a page. + +'''List of pages in this category:''' + +<<FullSearchCached(category:CategoryLua)>> + +---- +CategoryCategory
HASH(0xac65eec)
diff -rN -u old-sw.srcdir/LuaFs.moin new-sw.srcdir/LuaFs.moin --- old-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 +++ new-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 @@ -40,7 +40,7 @@ * Permissions not handled here, we only operate on accessible filesystem objects. * Authentication not handled here, can be done when setting up a volume before mounting it. -The proposal also has been inspired by the [[http://wiki.tcl.tk/2138|Tcl Virtual Files System]] +The proposal also has been inspired by the [[http://wiki.tcl.tk/2138|Tcl Virtual File System]] = Proof-Of-Concept Implementation =
HASH(0xac66284)
diff -rN -u old-sw.srcdir/LuaFs.moin new-sw.srcdir/LuaFs.moin --- old-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 +++ new-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 @@ -40,6 +40,8 @@ * Permissions not handled here, we only operate on accessible filesystem objects. * Authentication not handled here, can be done when setting up a volume before mounting it. +The proposal also has been inspired by the [[http://wiki.tcl.tk/2138|Tcl Virtual Files System]] + = Proof-Of-Concept Implementation =
HASH(0xac67a10)
diff -rN -u old-sw.srcdir/LuaFs.moin new-sw.srcdir/LuaFs.moin --- old-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 +++ new-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 @@ -52,6 +52,10 @@ '''Caution:''' The implementation does not support union mounts, but rather features a simple mount/unmount mechanism via a single mount table with `mountpoint`=>`volume` entries. +The whole sample amounts to about 400 commented lines of Lua code. It has been tested under Debian Gnu Linux with the standard +Lua 5.1.4 package but should be trivially adaptable to other platforms or configurations + + == Files == The following files are available @@ -67,6 +71,10 @@ * The output of a sample test/demo run: * http://www.magma.com.ni/sw/lua/luafs/test.output +== Instructions == + +Download all files into one directory, run `test.lua` and compare with the sample session output in `test.output` +
HASH(0xac67e70)
diff -rN -u old-sw.srcdir/LuaFs.moin new-sw.srcdir/LuaFs.moin --- old-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 +++ new-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 @@ -47,15 +47,26 @@ * `luafs` the virtual filesystem layer as an `fs` module. * `fsio` a filesystem (volume) driver using only `io` and `os` library functions and the following POSIX utilities: - `ls`, `test`, `mkdir` and `rmdir`. + `ls`, `test`, `mkdir` and `rmdir`. -*Caution:* The implementation does not support union mounts, but rather features a simple mount/unmount mechanism via -mount table with `mountpoint`=>`volume` entries. +'''Caution:''' The implementation does not support union mounts, but rather features a simple mount/unmount mechanism via +a single mount table with `mountpoint`=>`volume` entries. == Files == The following files are available + * `fs` module, the virtual file system operations + * http://www.magma.com.ni/sw/lua/luafs/fs.lua + * `fsio` module, the sample implementation of a volume driver + * http://www.magma.com.ni/sw/lua/luafs/fsio.lua + * A test/demo script: `test.lua` + * http://www.magma.com.ni/sw/lua/luafs/test.lua + * A data file used by the test/demo script: + * http://www.magma.com.ni/sw/lua/luafs/testfile.txt + * The output of a sample test/demo run: + * http://www.magma.com.ni/sw/lua/luafs/test.output +
HASH(0xac68208)
diff -rN -u old-sw.srcdir/LuaFs.moin new-sw.srcdir/LuaFs.moin --- old-sw.srcdir/LuaFs.moin 2013-08-17 20:47:09.000000000 +0200 +++ new-sw.srcdir/LuaFs.moin 2013-08-17 20:47:10.000000000 +0200 @@ -1,7 +1,8 @@ = Overview = This page complements a proposal of implementing file system operations in [[http://www.lua.org|Lua]] via a -virtual filesystem layer in the lua interpreter. It describes the Proof-Of-Concept implementation `fsio`. +virtual filesystem layer in the lua interpreter. It describes the Proof-Of-Concept implementation +comprising `luafs` and `fsio`. Virtualizing file system operations has several advantages: @@ -39,9 +40,21 @@ * Permissions not handled here, we only operate on accessible filesystem objects. * Authentication not handled here, can be done when setting up a volume before mounting it. -= Proof-Of-Concept Implementation `fsio` = += Proof-Of-Concept Implementation = +A simplistic implementation of a virtual filesystem layer has been made which is comprised of two modules: + + * `luafs` the virtual filesystem layer as an `fs` module. + * `fsio` a filesystem (volume) driver using only `io` and `os` library functions and the following POSIX utilities: + `ls`, `test`, `mkdir` and `rmdir`. + +*Caution:* The implementation does not support union mounts, but rather features a simple mount/unmount mechanism via +mount table with `mountpoint`=>`volume` entries. + +== Files == + +The following files are available
HASH(0xac693b4)
diff -rN -u old-sw.srcdir/LuaFs.moin new-sw.srcdir/LuaFs.moin --- old-sw.srcdir/LuaFs.moin 2013-08-17 20:47:10.000000000 +0200 +++ new-sw.srcdir/LuaFs.moin 2013-08-17 20:47:10.000000000 +0200 @@ -1,7 +1,7 @@ = Overview = This page complements a proposal of implementing file system operations in [[http://www.lua.org|Lua]] via a -virtual filesystem layer in the lua interpreter. +virtual filesystem layer in the lua interpreter. It describes the Proof-Of-Concept implementation `fsio`. Virtualizing file system operations has several advantages: @@ -22,9 +22,24 @@ * efficiency * an additional function call level is interposed between the Application and the filesystem itself -= Details of the Proposal = +Specific motivations to propose a virtual filesystem layer for Lua: -* + * want to mount "remote" filesystems like http, imap, smb + * want to make [[http://equi4.com/starkit/|Starkit]] like One-File Lua applications + * want a comprehensive, clean interface to file and filesystem operations in Lua + * want to port my "Baccus" archival backup system to Lua, since it seams easier to make C-extensions to Lua than to Tcl + + += Some Specifics of the Proposal = + + * path separator is '/' + * path names are Lua strings + * Unified namespace, volumes (real filesystems) are mounted at arbitrary places in the namespace + * See http://doc.cat-v.org/plan_9/4th_edition/papers/lexnames for the inspiration + * Permissions not handled here, we only operate on accessible filesystem objects. + * Authentication not handled here, can be done when setting up a volume before mounting it. + += Proof-Of-Concept Implementation `fsio` =
HASH(0xac6988c)
diff -rN -u old-sw.srcdir/LuaFs.moin new-sw.srcdir/LuaFs.moin --- old-sw.srcdir/LuaFs.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/LuaFs.moin 2013-08-17 20:47:10.000000000 +0200 @@ -0,0 +1,35 @@ += Overview = + +This page complements a proposal of implementing file system operations in [[http://www.lua.org|Lua]] via a +virtual filesystem layer in the lua interpreter. + +Virtualizing file system operations has several advantages: + + * portability: + * the platform differences are hidden in the driver layer, Lua programs stay the same on different platforms + * the Lua interpreter sources can reduce platform dependend code + * extensibility: + * filesystems can be added without recompilation of the Lua interpreter + * generalization: + * anything which looks like a filesystem can be processed like a filesystem + * reuseabilty: + * tools which work on filesystems work on anything what can be made to look like a filesystems + +Disadvantages: + + * more code: + * you need the virtual filesystem functions *and* the physical filesystem functions + * efficiency + * an additional function call level is interposed between the Application and the filesystem itself + += Details of the Proposal = + +* + + + + + + +---- +CategoryLua
HASH(0xac69d8c)
diff -rN -u old-sw.srcdir/TripleUniverse.moin new-sw.srcdir/TripleUniverse.moin --- old-sw.srcdir/TripleUniverse.moin 2013-08-17 20:47:10.000000000 +0200 +++ new-sw.srcdir/TripleUniverse.moin 2013-08-17 20:47:10.000000000 +0200 @@ -27,7 +27,7 @@ The basic syntax of TripleUniverse "programs" is the triple: - (source,relation,destination) + {{{(source,relation,destination)}}} On startup the universe is empty, with exception of [[#primitives]]. Relations are declared either by sourcing in a file or by introducing them interactively via the console. @@ -37,7 +37,7 @@ Note that any of `source`, `relation` and `destination` above are by themselves references to triples, i.e. to relations. There exists a special 'Null' relation with the notation - (,,) + {{{(,,)}}} The Null relation is referred to by the empty string. @@ -49,21 +49,21 @@ appear in any position of a wildcard triple. The notation of wildcards is an asterisk followed by a number, e.g. *1, *2, *3. The following is an example of a TripleUniverse with pattern rewriting: - - (Jesus,child of,Mary) - ((*1,child of,*2),rewritten to,(*2,parent of,*1)) - + {{{ +(Jesus,child of,Mary) +((*1,child of,*2),rewritten to,(*2,parent of,*1)) + }}} This universe implicitely holds also the relation: - (Mary,parent of,Jesus) + {{{(Mary,parent of,Jesus)}}} and if expanded afterwards with - - (Mary,child of,Elisabeth) - + {{{ +(Mary,child of,Elisabeth) + }}} it also holds the implicit relation: - (Elisabeth,parent of,Mary) + {{{(Elisabeth,parent of,Mary)}}}
HASH(0xac6a124)
diff -rN -u old-sw.srcdir/TripleUniverse.moin new-sw.srcdir/TripleUniverse.moin --- old-sw.srcdir/TripleUniverse.moin 2013-08-17 20:47:10.000000000 +0200 +++ new-sw.srcdir/TripleUniverse.moin 2013-08-17 20:47:10.000000000 +0200 @@ -34,8 +34,52 @@ The triples are stored in the universe in the order in which they appear in the input stream. +Note that any of `source`, `relation` and `destination` above are by themselves references to +triples, i.e. to relations. There exists a special 'Null' relation with the notation + + (,,) + +The Null relation is referred to by the empty string. + + +== Pattern rewriting == + +Relations are either explicit, or declared implicitely via rewriting rules. A rewriting rule +is a member of the `rewritten to` relation, which links a /match/ to a /pattern/. #wildcards may +appear in any position of a wildcard triple. The notation of wildcards is an asterisk followed +by a number, e.g. *1, *2, *3. The following is an example of a TripleUniverse with pattern +rewriting: + + (Jesus,child of,Mary) + ((*1,child of,*2),rewritten to,(*2,parent of,*1)) + +This universe implicitely holds also the relation: + + (Mary,parent of,Jesus) + +and if expanded afterwards with + + (Mary,child of,Elisabeth) + +it also holds the implicit relation: + + (Elisabeth,parent of,Mary) + + + +== Wildcards == + +<<Anchor(wildcards)>> + +ToDo + + == Primitives == -<<Anchor(primitives>> +<<Anchor(primitives)>> + +ToDo + +
HASH(0xac6b678)
diff -rN -u old-sw.srcdir/TripleUniverse.moin new-sw.srcdir/TripleUniverse.moin --- old-sw.srcdir/TripleUniverse.moin 2013-08-17 20:47:10.000000000 +0200 +++ new-sw.srcdir/TripleUniverse.moin 2013-08-17 20:47:11.000000000 +0200 @@ -5,16 +5,50 @@ ---- = Abstract = +The TripleUniverse is a closed computing universe of triples representing elements of +binary relations `(source,relation,destination)`. The TripleUniverse starts empty and +can be expanded by explicit declaration as well as a simple pattern match and rewrite +operation. A minimum set of primitive relations and datatypes is built in, to perform +computational tasks which on the one hand are natural to programming and on the othe +hand would be cumbersome and slow to implement on top of purely relational algebra. +Meta commands allow to operate on the universe, loading new relations from files, +deleting and modifying existing relations and provoking side effects which implement +interaction with the outer world. The primary use case for the TripleUniverse is the +use in knowledge management, mainly in systems analysis, modeling of domains and creation +of ontology. Design goals of TripleUniverse are: absolute minimum of primitives to +maintain the highest level of abstraction possible. Absolute minimum of meta commands to +maintain all "programming" logic within the domain and syntax of binary relations. Both +goals should lead to the highest possible flexibility and to a minimum of core functionality, +allowing easy prototyping and rewriting of the TripleUniverse core. -= [Detailed Description Starting Here] = += Informal Introduction = + +The basic syntax of TripleUniverse "programs" is the triple: + + (source,relation,destination) + +On startup the universe is empty, with exception of [[#primitives]]. Relations are declared +either by sourcing in a file or by introducing them interactively via the console. + +The triples are stored in the universe in the order in which they appear in the input stream. + +== Primitives == +<<Anchor(primitives>> + = References = -* ?WikiPedia:Binary_relation -* ?WikiPedia:Set_theory + * ?WikiPedia:Binary_relation + * ?WikiPedia:Set_theory + * ?WikiPedia:Graph_rewriting + * ?WikiPedia:Semantic_Web + * ?WikiPedia:Web_Ontology_Language + * ?WikiPedia:Triple_store + * ?WikiPedia:Resource_Description_Framework + * ?WikiPedia:Ontology_(computer_science) ----
HASH(0xac6bb50)
diff -rN -u old-sw.srcdir/TripleUniverse.moin new-sw.srcdir/TripleUniverse.moin --- old-sw.srcdir/TripleUniverse.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TripleUniverse.moin 2013-08-17 20:47:11.000000000 +0200 @@ -0,0 +1,21 @@ +<<TableOfContents>> + + GeorgLehner ?AndreasHangler + +---- += Abstract = + + += [Detailed Description Starting Here] = + + + + += References = + +* ?WikiPedia:Binary_relation +* ?WikiPedia:Set_theory + + +---- +CategoryIdea
HASH(0xac6c050)
diff -rN -u old-sw.srcdir/GeorgLehner.moin new-sw.srcdir/GeorgLehner.moin --- old-sw.srcdir/GeorgLehner.moin 2013-08-17 20:47:11.000000000 +0200 +++ new-sw.srcdir/GeorgLehner.moin 2013-08-17 20:47:11.000000000 +0200 @@ -2,14 +2,10 @@ #language en == GeorgLehner == -Email: <<MailTo(NO SPAM PLEASE jorge AT magma DOT com DOT ni, Jorge León)>> - -Homepage: http://www.magma.com.ni/~jorge - -http://www.pettingers.org/code/sshblack.html - -SanCarlosGroup -ConferenciaSanCarlos2011 + * Email: <<MailTo(NO SPAM PLEASE jorge AT magma DOT com DOT ni, Jorge León)>> + * Homepage: http://www.magma.com.ni/~jorge + * http://www.pettingers.org/code/sshblack.html + * ?ConferenciaSanCarlos2011 ---- ?CategoryHomepage
HASH(0xac6e174)
diff -rN -u old-sw.srcdir/GeorgLehner.moin new-sw.srcdir/GeorgLehner.moin
--- old-sw.srcdir/GeorgLehner.moin 2013-08-17 20:47:11.000000000 +0200
+++ new-sw.srcdir/GeorgLehner.moin 2013-08-17 20:47:11.000000000 +0200
@@ -8,5 +8,8 @@
http://www.pettingers.org/code/sshblack.html
+SanCarlosGroup
+ConferenciaSanCarlos2011
+
----
?CategoryHomepage
HASH(0xac6e714)
diff -rN -u old-sw.srcdir/KwikiToMoin.moin new-sw.srcdir/KwikiToMoin.moin --- old-sw.srcdir/KwikiToMoin.moin 2013-08-17 20:47:11.000000000 +0200 +++ new-sw.srcdir/KwikiToMoin.moin 2013-08-17 20:47:11.000000000 +0200 @@ -12,4 +12,4 @@ || italic: `/text/` || `''test''` - two single quotes || || Force Wiki Link: `[the link]` || `["the link"]` || -The following provides an awk script, which does this translations: attachment:kwiki2moin.awk. It is dumb though. +The following provides an awk script, which does this translations: [[attachment:kwiki2moin.awk]]. It is dumb though.
HASH(0xac6eaac)
diff -rN -u old-sw.srcdir/Plan9Tutorial/XenInstall.moin new-sw.srcdir/Plan9Tutorial/XenInstall.moin --- old-sw.srcdir/Plan9Tutorial/XenInstall.moin 2013-08-17 20:47:12.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/XenInstall.moin 2013-08-17 20:47:12.000000000 +0200 @@ -4,7 +4,7 @@ === Xen === -[http://xensource.com/xen/ Xen] allows one to run several operating systems on one computer in parallel. +[[http://xensource.com/xen/|Xen]] allows one to run several operating systems on one computer in parallel. It is a perfect testbed for this tutorial, since you can set up a whole network of several computers on your desktop without the need for hardware. @@ -54,7 +54,7 @@ }}} If everything works right this will give you a console to a Plan9 kernel starting up, follow the procedure -outlined in the Plan9 Wiki for [http://plan9.bell-labs.com/wiki/plan9/installing_in_xen_3.0/index.html Plan9 installation with Xen 3.0] +outlined in the Plan9 Wiki for [[http://plan9.bell-labs.com/wiki/plan9/installing_in_xen_3.0/index.html| Plan9 installation with Xen 3.0]] However you may want to make a "p91inst" and a "p92inst" configuration file, sharing ro access to the cdrom drive, since the loopback access is dead slow, and you rather want to install the two
HASH(0xac6fce0)
diff -rN -u old-sw.srcdir/GeorgLehner.moin new-sw.srcdir/GeorgLehner.moin --- old-sw.srcdir/GeorgLehner.moin 2013-08-17 20:47:12.000000000 +0200 +++ new-sw.srcdir/GeorgLehner.moin 2013-08-17 20:47:12.000000000 +0200 @@ -2,19 +2,11 @@ #language en == GeorgLehner == -Email: [[MailTo(NO SPAM PLEASE jorge AT magma DOT com DOT ni, Jorge León)]] +Email: <<MailTo(NO SPAM PLEASE jorge AT magma DOT com DOT ni, Jorge León)>> Homepage: http://www.magma.com.ni/~jorge -81.10.165.246 - http://www.pettingers.org/code/sshblack.html - * liste - * von - * ?GegenStände - -http://www.google.com/ - ---- ?CategoryHomepage
HASH(0xac701b8)
diff -rN -u old-sw.srcdir/Plan9Tutorial/RcScripts.moin new-sw.srcdir/Plan9Tutorial/RcScripts.moin --- old-sw.srcdir/Plan9Tutorial/RcScripts.moin 2013-08-17 20:47:12.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/RcScripts.moin 2013-08-17 20:47:12.000000000 +0200 @@ -1,4 +1,4 @@ -[[TableOfContent<<TableOfContents>>] +<<TableOfContents>> == Installation common to a network ==
HASH(0xac70690)
diff -rN -u old-sw.srcdir/Plan9Tutorial/FrequentlyGivenAnswers.moin new-sw.srcdir/Plan9Tutorial/FrequentlyGivenAnswers.moin --- old-sw.srcdir/Plan9Tutorial/FrequentlyGivenAnswers.moin 2013-08-17 20:47:12.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/FrequentlyGivenAnswers.moin 2013-08-17 20:47:12.000000000 +0200 @@ -1,4 +1,4 @@ -[[TableOfContents]] +<<TableOfContents>> = cpu: server lies =
HASH(0xac70b68)
diff -rN -u old-sw.srcdir/AolserverMe/ConfigFileFormat.moin new-sw.srcdir/AolserverMe/ConfigFileFormat.moin --- old-sw.srcdir/AolserverMe/ConfigFileFormat.moin 2013-08-17 20:47:12.000000000 +0200 +++ new-sw.srcdir/AolserverMe/ConfigFileFormat.moin 2013-08-17 20:47:13.000000000 +0200 @@ -1,4 +1,4 @@ -[[TableOfContents]] +<<TableOfContents>> = By Example = {{{
HASH(0xac71e54)
diff -rN -u old-sw.srcdir/Plan9Tutorial.moin new-sw.srcdir/Plan9Tutorial.moin --- old-sw.srcdir/Plan9Tutorial.moin 2013-08-17 20:47:13.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial.moin 2013-08-17 20:47:13.000000000 +0200 @@ -1,14 +1,14 @@ -[[TableOfContents]] +<<TableOfContents>> = Plan9 = -[http://cm.bell-labs.com/plan9/ Plan9] is an operating system designed by developers at Bell Labs. +[[http://cm.bell-labs.com/plan9/|Plan9]] is an operating system designed by developers at Bell Labs. Although Plan 9 derives from Unix it uses a different approach, and is not compatible with Unix like Operating Systems.. Commands differ, the internal workings differ, setup, configuration and maintenance differ. -See the [http://cm.bell-labs.com/plan9/ Plan9 Homepage] for lots of Talk about this. +See the [[http://cm.bell-labs.com/plan9/ Plan9|Homepage]] for lots of Talk about this. = About this Tutorial = @@ -21,7 +21,7 @@ or any other Unix like operating system from the point of view of a Systemadministrator. I have put it together while figureing out things out for myself. The main source of information have been the -excelent manual pages of Plan9 as well as the papers, all found on the Plan9 [http://cm.bell-labs.com/plan9/ homepage]. +excelent manual pages of Plan9 as well as the papers, all found on the Plan9 [[http://cm.bell-labs.com/plan9/|homepage]]. There are two intended modes of reading: @@ -33,10 +33,10 @@ to the target system, or, as I do often for the Xen/textonly installations, copy them to an open editor window of the host operating system, modify what needs to, and copy and paste from the editor window to the Plan9 console or terminal. -Since this is a [http://c2.com/cgi/wiki?WikiWikiWeb Wiki], the whole tutorial is made up of single Wiki pages containing just +Since this is a [[http://c2.com/cgi/wiki?WikiWikiWeb|Wiki]], the whole tutorial is made up of single Wiki pages containing just the information of a certain context, and can be accessed directly. Find here the list of pages of the tutorial: -[[PageList(Plan9Tutorial/)]] +<<PageList(Plan9Tutorial/)>> = A Plan9 Network = @@ -47,7 +47,7 @@ fileserver::: the name is ambiguous, since a fileserver really is a program serving files either locally or via the network. As a machine, a "fileserver" runs a fileserver, thus providing its disk space, to other computers. Mainly: space for the user to store data as well as the program files the user is executing. - There can be several "fileservers" in a network, and a user will surely use external fileservers like for example the [http://cm.bell-labs.com/wiki/plan9/sources_repository/index.html Plan9 sources] fileserver. + There can be several "fileservers" in a network, and a user will surely use external fileservers like for example the [[http://cm.bell-labs.com/wiki/plan9/sources_repository/index.html|Plan9 sources]] fileserver. cpuserver::: programs can be executed either locally or on a cpuserver; also processortime is a shared resource to Plan9. There can be several cpuservers in a Plan9 Network. @@ -67,14 +67,14 @@ There is a distinction between "cpu" and "terminal" kernels: - terminal::: at bootup a terminal kernel asks for a username. This user will be the ''hostowner'' until the next reboot. If any resource on the network which requires authorization is accessed, authentication against the user with the same name in the authserver is initiated. [[BR]] It is often handy to have a terminal kernel around even on cpu machines for administrative and maintenance tasks, because you can become any user without being asked for a password. + terminal::: at bootup a terminal kernel asks for a username. This user will be the ''hostowner'' until the next reboot. If any resource on the network which requires authorization is accessed, authentication against the user with the same name in the authserver is initiated. <<BR>>It is often handy to have a terminal kernel around even on cpu machines for administrative and maintenance tasks, because you can become any user without being asked for a password. cpu::: a cpu kernel reads the username (an password) of the hostowner either from nvram, or from a 1 block partition on the harddisk which is used to simulate the nvram. Thus the cpu kernel can startup without user interaction. During the boot process an initial rc script is run. On a terminal kernel it is looked for at `/rc/bin/termrc`, on the cpu kernel in `/rc/bin/cpurc` -[[Include(Plan9Tutorial/SetupConsiderations, 'Setup Considerations', 1)]] +<<Include(Plan9Tutorial/SetupConsiderations, 'Setup Considerations', 1)>> = Os Installation = @@ -82,7 +82,7 @@ have several choices: * Install on a dedicated hardware: - * See the [http://cm.bell-labs.com/wiki/plan9/installation_instructions/ official installation instructions] + * See the [[http://cm.bell-labs.com/wiki/plan9/installation_instructions/|official installation instructions]] * Installation under Qemu * ./QemuInstall @@ -93,14 +93,14 @@ After this you can proceed with the network setup. If you are using Xen instances - which do not provide a grafical environment, you will want to -connect to your Plan9 computers via [http://swtch.com/drawterm/ drawterm] which runs under Linux, OsX +connect to your Plan9 computers via [[http://swtch.com/drawterm/|drawterm]] which runs under Linux, OsX and Windows. = Setup of different Services = -[[Include(Plan9Tutorial/AuthServer, 'Authentication Server', 2)]] +<<Include(Plan9Tutorial/AuthServer, 'Authentication Server', 2)>> -[[Include(Plan9Tutorial/FileServer, 'CPU & Fileserver', 2)]] +<<Include(Plan9Tutorial/FileServer, 'CPU & Fileserver', 2)>> == Connecting with a Terminal == @@ -110,6 +110,7 @@ TODO: termrc and especially /lib/ndb/* setup for the terminal + == Secstore == There are essentially two tasks to set up and fill a secstore for a user: @@ -158,7 +159,7 @@ = Administrative Tasks = -[[Include(Plan9Tutorial/AddUser, 'Adding a user', 2)]] +<<Include(Plan9Tutorial/AddUser, 'Adding a user', 2)>> = Other Helpful Things =
HASH(0xac7232c)
diff -rN -u old-sw.srcdir/TypeSafeIds.moin new-sw.srcdir/TypeSafeIds.moin --- old-sw.srcdir/TypeSafeIds.moin 2013-08-17 20:47:13.000000000 +0200 +++ new-sw.srcdir/TypeSafeIds.moin 2013-08-17 20:47:13.000000000 +0200 @@ -1,3 +1,7 @@ +[[TableOfContents]] + += Optical Similar Symbols = + {{{ 1 2 3 4 5 6 7 8 9 0 Letter|number|lowercase|Uppercase|number|letter @@ -27,9 +31,12 @@ ky x X K Y xj y Y K X z Z 2 +}}} + += Optical similar downcase letters = -Optical similar downcase letters: +{{{ a b c d e g h o p q f i j l r t k x y @@ -37,9 +44,11 @@ s z h c m t u x +}}} -Optical similar uppercase letters: += Optical similar uppercase letters = +{{{ A B D E F H P R C G O Q I J L @@ -48,10 +57,11 @@ S Z T U V +}}} += Optical similar letters to digits = -Optical similar letters to digits: - +{{{ 0 o O Q 1 lt I 2 z Z @@ -63,7 +73,10 @@ 8 AB 9 g P -Telefone Touch Pad: +}}} + += Telefone Touch Pad = +{{{ 2 ABC 3 DEF 4 GHI @@ -72,10 +85,12 @@ 7 PQRS 8 STUV 9 WXYZ +}}} += Type Safe Alphabets = -Selectable: +{{{ strict: 3 bit 12345678 CLMPTX41
HASH(0xac72804)
diff -rN -u old-sw.srcdir/TipsAnd/MoinMoin.moin new-sw.srcdir/TipsAnd/MoinMoin.moin --- old-sw.srcdir/TipsAnd/MoinMoin.moin 2013-08-17 20:47:13.000000000 +0200 +++ new-sw.srcdir/TipsAnd/MoinMoin.moin 2013-08-17 20:47:13.000000000 +0200 @@ -1,6 +1,8 @@ ^TipsAnd... -[[TableOfContents]] +<<TableOfContents>> + +<<PageList(TipsAnd/MoinMoin/)>> = Authentication =
HASH(0xac749f0)
diff -rN -u old-sw.srcdir/TipsAnd/MoinMoin/MonthCalendar/MonthCalendarTemplate.py new-sw.srcdir/TipsAnd/MoinMoin/MonthCalendar/MonthCalendarTemplate.py --- old-sw.srcdir/TipsAnd/MoinMoin/MonthCalendar/MonthCalendarTemplate.py 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TipsAnd/MoinMoin/MonthCalendar/MonthCalendarTemplate.py 2013-08-17 20:47:13.000000000 +0200 @@ -0,0 +1,465 @@ +""" + MoinMoin - ?MonthCalendar Macro + + You can use this macro to put a months calendar page on a Wiki page. + + The days are links to Wiki pages following this naming convention: + ?BasePageName/year-month-day + + Copyright (c) 2002 by Thomas Waldmann <ThomasWaldmann@gmx.de> + Licensed under GNU GPL - see COPYING for details. + Extended by Markus Maier <mkm@gmx.de> + +---- + + Revisions: + * first revision without a number (=1.0): + * was only online for a few hours and then replaced by 1.1 + * 1.1: + * changed name to ?MonthCalendar to avoid conflict with "calendar" under case-insensitive OSes like Win32 + * days as subpages + * basepage argument + * change order of year/month argument + * browsing links to prev/next month/year + * current limitation: you can only browse one calendar on the same + page/url, if you try to browse another calendar on the same page, + the first one jumps back to its original display + * show basepage in calendar header if basepage<>currentpage + * 1.2: + * minor fixes in argument parsing + * cosmetic fix for netscape, other cosmetic changes, changed css + * i18n support (weekday short names) + * 1.3: + * fixes to run with MoinMoin 0.11, thanks to ?JuergenHermann + * fix: withspace before "," allowed in argument list + * ?BasePage in calendar header (if present) is a link now + * more i18n + * HTML cleanup, generating code avoids bracketing errors + * colour cosmetics + * 1.4: + * new parameter for enabling fixed height of 6 "calendar weeks", + if you want to show a whole year's calendar, this just looks + better than having some months with 4, some with 5 and some with 6. + * group calendaring functions: + * you can give mutliple ?BasePages ?UserName1*UserName2*UserName3 + * first ?BasePage is considered "your" Basepage, + used days are bright red + * 2nd and all other ?BasePages are considered "others" ?BasePages + and lead to an increasing green component the more "used" days + the others have. So white gets greener and red gets more yellowish. + * in the head part of the calendar, you can click on each name + to get to the Page of the same name + * colouring of my and others ?BasePage is done in a way to show + the colouring used in the calendar: + * others use green colouring (increasingly green if multiply used) + * I use red colouring, which gets more and more yellowish as + the day is used by more and more others, too + * 1.5: + * fixed username colouring when using a ?BasePage + * fixed navigation header of ?MonthCalendar not to get broken into + multiple lines + * fixed ?SubPage handling (please do not use relative ?SubPages like + /SubPage yet. Use ?MyName/SubPage.) + * 1.6: + * syntactic cleanup + * removed i18n compatibility for moin<1.1 or cvs<2003-06-10 + * integrated Scott Chapman's changes: + * Made it configurable for Sunday or Monday as the first day of the week. + Search for "change here". + * Made it so that today is not only set to a seperate css style, but also boldfaced. + Some browsers don't show the other css style (Netscape). + * Made it so weekend dates have different color. + * 1.7: + * added request parameter where needed + * 1.8: + * some fixes for moin 1.2 (use this version ONLY if you run moin 1.2, too): + * .value backtrace fixed when selecting next/prev month/year + * request param added to macro function + * 1.9: + * adapted to moin 1.3 + * 1.10 + * added template parameter + + +TODO: + * integrate patch for including day page contents directly into cal + * still thinking over: does this make sense in a ?MonthCalendar? + * it would be definitely nice in a week or day calendar (more space to + burn) + * integr. daycal -link-> monthcal + +---- + + Usage: + [[MonthCalendar(BasePage,year,month,monthoffset,monthoffset2,height6)]] + + each parameter can be empty and then defaults to currentpage or currentdate or monthoffset=0 + + Samples (paste that to one of your pages for a first try): + +Calendar of current month for current page: +[[MonthCalendar]] + +Calendar of last month: +[[MonthCalendar(,,,-1)]] + +Calendar of next month: +[[MonthCalendar(,,,+1)]] + +Calendar of Page ?SampleUser, this years december: +[[MonthCalendar(SampleUser,,12)]] + +Calendar of current Page, this years december: +[[MonthCalendar(,,12)]] + +Calendar of December, 2001: +[[MonthCalendar(,2001,12)]] + +Calendar of the month two months after December, 2001 +(maybe doesn't make much sense, but is possible) +[[MonthCalendar(,2001,12,+2)]] + +Calendar of year 2002 (every month padded to height of 6): +||||||Year 2002|| +||[[MonthCalendar(,2002,1,,,1)]]||[[MonthCalendar(,2002,2,,,1)]]||[[MonthCalendar(,2002,3,,,1)]]|| +||[[MonthCalendar(,2002,4,,,1)]]||[[MonthCalendar(,2002,5,,,1)]]||[[MonthCalendar(,2002,6,,,1)]]|| +||[[MonthCalendar(,2002,7,,,1)]]||[[MonthCalendar(,2002,8,,,1)]]||[[MonthCalendar(,2002,9,,,1)]]|| +||[[MonthCalendar(,2002,10,,,1)]]||[[MonthCalendar(,2002,11,,,1)]]||[[MonthCalendar(,2002,12,,,1)]]|| + +Current calendar of me, also showing entries of A and B: +[[MonthCalendar(MyPage*TestUserA*TestUserB)]] + +SubPage calendars: +[[MonthCalendar(MyName/CalPrivate)]] +[[MonthCalendar(MyName/CalBusiness)]] +[[MonthCalendar(MyName/CalBusiness*MyName/CalPrivate)]] + +---- + + You need to have some stylesheet entries like the following. + Paste that to default.css / moinmoin.css: + +/* begin css for ?MonthCalendar macro */ +/* days without and with pages linked to them */ +a.cal-emptyday { + color: #777777; + text-align: center; +} +a.cal-usedday { + font-weight: bold; + color: #000000; + text-align: center; +} +/* general stuff: workdays, weekend, today */ +td.cal-workday { + background-color: #DDDDFF; + text-align: center; +} +td.cal-weekend { + background-color: #FFDDDD; + text-align: center; +} +td.cal-today { + background-color: #CCFFCC; + border-style: solid; + border-width: 2pt; + text-align: center; +} +/* invalid places on the monthly calendar sheet */ +td.cal-invalidday { + background-color: #CCCCCC; +} +/* links to prev/next month/year */ +a.cal-link { + color: #000000; + text-decoration: none; +} +th.cal-header { + background-color: #DDBBFF; + text-align: center; +} +/* end css for ?MonthCalendar macro */ + +---- + + If you want translated (german) messages, add something like this to + i18n/de.py (if you have >=0.11, the weekday translation might be already + there): + +'Mon':'Mo','Tue':'Di','Wed':'Mi','Thu':'Do','Fri':'Fr','Sat':'Sa','Sun':'So', + +'Invalid ?MonthCalendar calparms "%s"!': +'Ung\366ltige ?MonthCalendar calparms "%s"!', + +'Invalid ?MonthCalendar arguments "%s"!': +'Ung\366ltige ?MonthCalendar Argumente "%s"!', + (Diff truncated)
HASH(0xac74fa4)
diff -rN -u old-sw.srcdir/TipsAnd/MoinMoin/MonthCalendar.moin new-sw.srcdir/TipsAnd/MoinMoin/MonthCalendar.moin --- old-sw.srcdir/TipsAnd/MoinMoin/MonthCalendar.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TipsAnd/MoinMoin/MonthCalendar.moin 2013-08-17 20:47:14.000000000 +0200 @@ -0,0 +1,11 @@ +^TipsAnd... + +[[TableOfContents]] + +Markus Maier has another Macro, which is an extension to the !MonthCalender. +It allows to specify a different Template any time you create a day-page + +attachment:MonthCalendarTemplate.py + +---- +CategoryTips
HASH(0xac75364)
diff -rN -u old-sw.srcdir/TypeSafeIds.moin new-sw.srcdir/TypeSafeIds.moin --- old-sw.srcdir/TypeSafeIds.moin 2013-08-17 20:47:14.000000000 +0200 +++ new-sw.srcdir/TypeSafeIds.moin 2013-08-17 20:47:14.000000000 +0200 @@ -63,10 +63,24 @@ 8 AB 9 g P +Telefone Touch Pad: +2 ABC +3 DEF +4 GHI +5 JKL +6 MNO +7 PQRS +8 STUV +9 WXYZ + + + Selectable: strict: 3 bit 12345678 -CMPTUX42 +CLMPTX41 +Tel: +2578941 - 3,6,0 medium: 4 bit 1234567890123456
HASH(0xac756fc)
diff -rN -u old-sw.srcdir/TypeSafeIds.moin new-sw.srcdir/TypeSafeIds.moin --- old-sw.srcdir/TypeSafeIds.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TypeSafeIds.moin 2013-08-17 20:47:14.000000000 +0200 @@ -0,0 +1,85 @@ +{{{ +1 2 3 4 5 6 7 8 9 0 +Letter|number|lowercase|Uppercase|number|letter + +o a A 48 B + 6 b B 8 A +o c C + d D 0 O +o e E 3 +t f F P R +a 9 g G 6 + h H + j J +xy k K X Y + 1 l L + m M N +o n N M + o O 0 + p P 9 R F + 9 q Q 0 O + r R 2 P F +z s S 5 Z +f 1 t T 7 F +v u U V +u v V U + w W +ky x X K Y +xj y Y K X + z Z 2 + +Optical similar downcase letters: + +a b c d e g h o p q +f i j l r t +k x y +m n +s z + +h c m t u x + +Optical similar uppercase letters: + +A B D E F H P R +C G O Q +I J L +K X Y +M N W +S Z +T +U V + + +Optical similar letters to digits: + +0 o O Q +1 lt I +2 z Z +3 e E +4 A +5 S +6 b G +7 T +8 AB +9 g P + +Selectable: +strict: 3 bit +12345678 +CMPTUX42 + +medium: 4 bit +1234567890123456 +24678ABCHLMPSTUX + +relaxed: 5 bit +12345678901234567890123456789012 +123456789ABCDEGHJKLMNOPQRSTUVWXZ + +sloppy: 6bit +12345678901234567890123456789012 +0123456789abcdefghijklmnopqrstuv + +12345678901234567890123456789012 +wxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/. +}}}
HASH(0xac76c20)
diff -rN -u old-sw.srcdir/TipsAnd/MoinMoin/DataBase/GetUniqueValues.py new-sw.srcdir/TipsAnd/MoinMoin/DataBase/GetUniqueValues.py --- old-sw.srcdir/TipsAnd/MoinMoin/DataBase/GetUniqueValues.py 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TipsAnd/MoinMoin/DataBase/GetUniqueValues.py 2013-08-17 20:47:14.000000000 +0200 @@ -0,0 +1,60 @@ +# ?GetUniqueValues.py +''' + This macro shows a list of unique definition values from pages + a) whose names match the given regular expression and + b) who contain a definition with a certain heading + +Usage: [[GetUniqueValues(PageRE,DefinitionTermRE)]] + +Examples: + [[GetUniqueVals(.*Service,Host)]] might output the following: + Host ?SomeHost + ?AnotherHost + ?TestSystem + +TODO: + +History: + 1.0 First version, adapted from ?GetVals.py - ?MarkusMaier + 1.1 Outputs key/values as a definition list - ?MarkusMaier +''' + +Dependencies = [1] + +import re, sets +from MoinMoin.wikidicts import Dict + +def execute(macro,args): + page_re, key_re = args.split(",") + + isdict = re.compile(page_re, re.UNICODE).search + iskey = re.compile(key_re, re.UNICODE).search + + keys = {} + dictpages = macro.request.rootpage.getPageList(user='', filter=isdict) + for pagename in dictpages: + dict = Dict(macro.request, pagename) + for key in dict.keys(): + k = key.strip() + if iskey(k): + if keys.has_key(k): + keys[k] = keys[k] + [dict.get(key,"")] + else: + keys[k] = [dict.get(key,"")] + + result = "<dl>" + + all_keys = list(keys.keys()) + all_keys.sort() + for k in all_keys: + # iterate over keys in order + result += "<dt>" + k + "<dd>" + values = list(sets.Set(keys[k])) + values.sort() + for v in values: + # iterate over values for this key in order + result += v + "<br>" + result += "</dd>" + + result += "</dl>" + return macro.formatter.rawHTML(result)
HASH(0xac76fe0)
diff -rN -u old-sw.srcdir/TipsAnd/MoinMoin/DataBase/GetValues.py new-sw.srcdir/TipsAnd/MoinMoin/DataBase/GetValues.py --- old-sw.srcdir/TipsAnd/MoinMoin/DataBase/GetValues.py 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TipsAnd/MoinMoin/DataBase/GetValues.py 2013-08-17 20:47:15.000000000 +0200 @@ -0,0 +1,65 @@ +# ?GetValues.py +''' + This macro shows a list of pages + a) whose names match the given regular expression and + b) who contain a definition with a certain heading which optionally has + a value matching a certain re + + +Usage: [[GetValues(PageRE,DefinitionTermRE[,DefinitionValueRE])]] + +Examples: + [[GetValues(.*Service,Host)]] might output the following: + . ?FooService + Host: + ?FooHost + . ?BarService + Host: + ?BarHost + +TODO: + +History: + 1.0 First version - ?MarkusMaier + 1.1 Key is regular expression - ?MarkusMaier + 1.2 Added optional re as restriction on values - ?MarkusMaier + 1.3 Multiple matches for one page are collapsed to one list - ?MarkusMaier + 1.4 Output is now a definition list - ?MarkusMaier +''' + +Dependencies = [1] + +import re +from MoinMoin.wikidicts import Dict + +def execute(macro,args): + args = args.split(",") + page_re = args[0] + key_re = args[1] + + if (len(args) < 3): + def_re = ".*" + else: + def_re = args[2] + + result = "<ul>" + isdict = re.compile(page_re, re.UNICODE).search + iskey = re.compile(key_re, re.UNICODE).search + isdef = re.compile(def_re, re.UNICODE).search + dictpages = macro.request.rootpage.getPageList(user='', filter=isdict) + dictpages.sort() + for pagename in dictpages: + dict = Dict(macro.request, pagename) + page_link = 0 + for key in dict.keys(): + if iskey(key.strip()): + if isdef(dict.get(key,"")): + if page_link == 0: + page_link = 1 + result += "<li>" + macro.formatter.url(1, pagename) + pagename + macro.formatter.url(0) + "<dl>" + result += "<dt>" + key.strip() + "<dd>" + dict.get(key, "---") + "</dd>" + if page_link == 1: + result += "</dl>" + + result += "</ul>" + return macro.formatter.rawHTML(result)
HASH(0xac77454)
diff -rN -u old-sw.srcdir/TipsAnd/MoinMoin/DataBase.moin new-sw.srcdir/TipsAnd/MoinMoin/DataBase.moin --- old-sw.srcdir/TipsAnd/MoinMoin/DataBase.moin 2013-08-17 20:47:15.000000000 +0200 +++ new-sw.srcdir/TipsAnd/MoinMoin/DataBase.moin 2013-08-17 20:47:15.000000000 +0200 @@ -25,8 +25,8 @@ Examples: {{{[[GetUniqeVals(.*Service,Host)]]}}} might output the following: {{{ Host ?SomeHost - ?AnotherHost - ?TestSystem + ?AnotherHost + ?TestSystem }}}
HASH(0xac78a48)
diff -rN -u old-sw.srcdir/TipsAnd/MoinMoin/DataBase.moin new-sw.srcdir/TipsAnd/MoinMoin/DataBase.moin --- old-sw.srcdir/TipsAnd/MoinMoin/DataBase.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TipsAnd/MoinMoin/DataBase.moin 2013-08-17 20:47:15.000000000 +0200 @@ -0,0 +1,49 @@ +To be able to use a Wiki as a Database we thought we should hack up +some Macro. Markus Maier in fact wrote then two of them: + + + * attachment:GetValues.py + * attachment:GetUniqueValues.py + +These suppose you organize information in definition lists like: +{{{ + Host::: ?SomeHost + IP::: 182.168.0.1 +}}} + +The definition term is the database key, the definition itself is +the value. One Page with such definitions is a database record. + += ?GetUniqueValues = + +This macro shows a list of unique definition values from pages + + 1. whose names match the given regular expression and + 2. who contain a definition with a certain heading + +Usage: {{{[[GetUniqueValues(PageRE,DefinitionTermRE)]]}}} + +Examples: {{{[[GetUniqeVals(.*Service,Host)]]}}} might output the following: {{{ + Host ?SomeHost + ?AnotherHost + ?TestSystem + +}}} + += Get Values = + +This macro shows a list of pages + 1. whose names match the given regular expression and + 2. who contain a definition with a certain heading which optionally has + a value matching a certain regular expresion + +Usage: {{{[[GetValues(PageRE,DefinitionTermRE[,DefinitionValueRE])]]}}} + +Examples: {{{[[GetValues(.*Service,Host)]]}}} might output the following: {{{ + . ?FooService + Host: + ?FooHost + . ?BarService + Host: + ?BarHost +}}}
HASH(0xac78f48)
HASH(0xac79308)
HASH(0xac796c8)
HASH(0xac7c2a4)
diff -rN -u old-sw.srcdir/EarCons/learningandretentionofauditorywarnings.ps new-sw.srcdir/EarCons/learningandretentionofauditorywarnings.ps --- old-sw.srcdir/EarCons/learningandretentionofauditorywarnings.ps 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/EarCons/learningandretentionofauditorywarnings.ps 2013-08-17 20:47:16.000000000 +0200 @@ -0,0 +1,18204 @@ +%!PS-Adobe-3.0 +%%Pages: (atend) +%%BoundingBox: 53 75 559 736 +%%HiResBoundingBox: 53.900000 75.600000 558.600000 735.300000 +%..................................... +%%Creator: ESP Ghostscript 81503 (pswrite) +%%CreationDate: 2008/01/30 20:29:49 +%%DocumentData: ?Clean7Bit +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +% This copyright applies to everything between here and the %%EndProlog: +% Copyright (C) 2004 artofcode LLC, Benicia, CA. All rights reserved. +%%BeginResource: procset GS_pswrite_2_0_1001 +/GS_pswrite_2_0_1001 80 dict dup begin +/PageSize 2 array def/setpagesize{ ?PageSize aload pop 3 index eq exch +4 index eq and{ pop pop pop}{ ?PageSize dup 1 +5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get exec} +{ pop/setpagedevice where +{ pop 1 dict dup /PageSize ?PageSize put setpagedevice} +{ /setpage where{ pop ?PageSize aload pop pageparams 3 {exch pop} repeat +setpage}if}ifelse}ifelse}ifelse} bind def +/!{bind def}bind def/#{load def}!/N/counttomark # +/rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}! +/r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}! +/w/setlinewidth #/J/setlinecap # +/j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat # +/m/moveto #/l/lineto #/c/rcurveto # +/p{N 2 idiv{N -2 roll rlineto}repeat}! +/P{N 0 gt{N -2 roll moveto p}if}! +/h{p closepath}!/H{P closepath}! +/lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}! +/re{4 -2 roll m exch dup lx exch ly neg lx h}! +/^{3 index neg 3 index neg}! +/f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}! +/q/gsave #/Q/grestore #/rf{re fill}! +/Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}! +/|={pop exch 4 1 roll 1 array astore cvx 3 array astore cvx exch 1 index def exec}! +/|{exch string readstring |=}! +/+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}! +/@/currentfile #/${+ @ |}! +/B{{2 copy string{readstring pop}aload pop 4 array astore cvx +3 1 roll}repeat pop pop true}! +/Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}! +/,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! +/Ic{exch Ix false 3 colorimage}! +/F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>> +/CCITTFaxDecode filter}!/FX{<</EndOfBlock false F}! +/X{/ASCII85Decode filter}!/@X{@ X}!/&2{2 index 2 index}! +/@F{@ &2<<F}!/@C{@X &2 FX}! +/$X{+ @X |}!/&4{4 index 4 index}!/$F{+ @ &4<<F |}!/$C{+ @X &4 FX |}! +/IC{3 1 roll 10 dict begin 1{/ImageType/Interpolate/Decode/DataSource +/ImageMatrix/BitsPerComponent/Height/Width}{exch def}forall +currentdict end image}! +/~{@ read {pop} if}! +end def +%%EndResource +/pagesave null def +%%EndProlog +%%Page: 1 1 +%%BeginPageSetup +GS_pswrite_2_0_1001 begin +612 792 /letter setpagesize +/pagesave save store 197 dict begin +0.1 0.1 scale +%%EndPageSetup +gsave mark +Q q +0 0 6120 0 0 7920 ^ Y +0.2 i +K +1145 7338 -17.01 0 0 -131 82 0 0 15 -64.99 0 H +f +1316 7249 m +0 14.43 -1.07 23.08 -3.73 30.11 c +-6.04 15.5 -20.24 24.89 -37.65 24.89 c +-25.93 0 -42.62 -20.14 -42.62 -51.05 c +0 -30.91 16.22 -49.95 42.42 -49.95 c +21.39 0 36.18 12.19 39.94 32.63 c +-15.1 0 p +-4.13 -12.24 -12.57 -18.62 -24.61 -18.62 c +-9.52 0 -17.6 4.27 -22.63 12.09 c +-3.59 5.33 -4.85 10.66 -5.03 19.91 c +h +1247.22 7261.36 m +1.26 17.46 11.88 28.8 27 28.8 c +14.76 0 26.1 -12.24 26.1 -27.72 c +0 -0.36 0 -0.72 -0.18 -1.08 c +h +f +1420.3 7215.82 m +-1.62 0.18 -2.34 0.18 -3.23 0.18 c +-5.2 0 -8.07 2.68 -8.07 7.33 c +0 55.09 p +0 16.64 -12.25 25.58 -35.48 25.58 c +-13.69 0 -25.04 -3.96 -31.34 -10.98 c +-4.32 -4.86 -6.12 -10.25 -6.48 -19.6 c +15.11 0 p +1.26 11.41 8.09 16.57 22.13 16.57 c +13.49 0 21.05 -5.02 21.05 -13.99 c +0 -3.95 p +0 -6.28 -3.77 -8.97 -15.55 -10.41 c +-21.08 -2.69 -24.3 -3.41 -30.01 -5.74 c +-10.9 -4.48 -16.43 -12.92 -16.43 -25.11 c +0 -17.04 11.82 -27.8 30.8 -27.8 c +11.82 0 21.31 4.1 31.88 13.72 c +1.07 -9.45 5.73 -13.72 15.4 -13.72 c +3.05 0 5.38 0.36 10.23 1.6 c +h +1394 7236.7 m +0 -5.04 -1.45 -8.1 -5.97 -12.24 c +-6.14 -5.58 -13.55 -8.46 -22.41 -8.46 c +-11.75 0 -18.62 5.58 -18.62 15.12 c +0 9.9 6.69 14.94 22.77 17.28 c +15.91 2.16 19.16 2.88 24.23 5.23 c +h +f +1436 7301.3 0 -94.3 15 0 0 48.84 P +0 13.47 3.48 22.27 10.8 27.47 c +4.76 3.41 9.34 4.49 19.97 4.68 c +0 15.45 p +-2.55 0.36 -3.82 0.55 -5.82 0.55 c +-9.8 0 -17.25 -5.76 -25.96 -19.8 c +0 17.1 h +f +1507 7301.3 0 -94.3 15 0 0 52.08 P +0 19.29 10.08 31.91 25.56 31.91 c +11.88 0 19.44 -7.22 19.44 -18.58 c +0 -65.42 15 0 0 71.26 p +0 15.66 -11.66 25.73 -29.78 25.73 c +-13.99 0 -22.96 -5.4 -31.21 -18.54 c +0 15.84 h +f +1631 7301 -15 0 0 -94 ^ H +1631 7338 -15 0 0 -18.68 ^ H +f +1667 7301.3 0 -94.3 15 0 0 52.08 P +0 19.29 10.08 31.91 25.56 31.91 c +11.88 0 19.44 -7.22 19.44 -18.58 c +0 -65.42 15 0 0 71.26 p +0 15.66 -11.66 25.73 -29.78 25.73 c +-13.99 0 -22.96 -5.4 -31.21 -18.54 c +0 15.84 h +f +1838 7301 0 -13.36 P +-7.46 11.14 -16.52 16.36 -28.41 16.36 c +-23.61 0 -39.58 -20.86 -39.58 -51.41 c +0 -15.45 4.11 -28.03 11.79 -37.02 c +6.97 -7.91 16.97 -12.58 26.8 -12.58 c +11.79 0 20.01 5 28.41 16.79 c +0 -4.79 p +0 -12.57 -1.64 -20.19 -5.43 -25.32 c +-3.98 -5.49 -11.75 -8.68 -20.97 -8.68 c +-6.87 0 -13.01 1.73 -17.17 4.84 c +-3.43 2.59 -4.88 5.01 -5.78 10.37 c +-15.36 0 p +1.62 -17.68 15.47 -28.2 37.6 -28.2 c +14.03 0 26.09 4.48 32.2 12.01 c +7.2 8.61 9.91 20.44 9.91 42.48 c +0 78.52 h +1811.18 7290 m +16.25 0 25.82 -13.61 25.82 -37.04 c +0 -22.36 -9.75 -35.96 -25.64 -35.96 c +-16.43 0 -26.36 13.77 -26.36 36.5 c +0 22.54 10.11 36.5 26.18 36.5 c +h +f +2020.3 7215.82 m +-1.62 0.18 -2.34 0.18 -3.23 0.18 c +-5.2 0 -8.07 2.68 -8.07 7.33 c +0 55.09 p +0 16.64 -12.25 25.58 -35.48 25.58 c +-13.69 0 -25.04 -3.96 -31.34 -10.98 c +-4.32 -4.86 -6.12 -10.25 -6.48 -19.6 c +15.11 0 p +1.26 11.41 8.09 16.57 22.13 16.57 c +13.49 0 21.05 -5.02 21.05 -13.99 c +0 -3.95 p +0 -6.28 -3.77 -8.97 -15.55 -10.41 c +-21.08 -2.69 -24.3 -3.41 -30.01 -5.74 c +-10.9 -4.48 -16.43 -12.92 -16.43 -25.11 c +0 -17.04 11.82 -27.8 30.8 -27.8 c +11.82 0 21.31 4.1 31.88 13.72 c +1.07 -9.45 5.73 -13.72 15.4 -13.72 c +3.05 0 5.38 0.36 10.23 1.6 c +h +1994 7236.7 m +0 -5.04 -1.45 -8.1 -5.97 -12.24 c +-6.14 -5.58 -13.55 -8.46 -22.41 -8.46 c +-11.75 0 -18.62 5.58 -18.62 15.12 c +0 9.9 6.69 14.94 22.77 17.28 c +15.91 2.16 19.16 2.88 24.23 5.23 c +h +f +2037 7301.3 0 -94.3 15 0 0 52.08 P +0 19.29 10.08 31.91 25.56 31.91 c (Diff truncated)
HASH(0xac7c664)
HASH(0xac7cad8)
diff -rN -u old-sw.srcdir/EarCons.moin new-sw.srcdir/EarCons.moin --- old-sw.srcdir/EarCons.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/EarCons.moin 2013-08-17 20:47:17.000000000 +0200 @@ -0,0 +1 @@ +Describe EarCons here.
HASH(0xac7ce98)
diff -rN -u old-sw.srcdir/TipsAnd/Plan9Fs.moin new-sw.srcdir/TipsAnd/Plan9Fs.moin --- old-sw.srcdir/TipsAnd/Plan9Fs.moin 2013-08-17 20:47:17.000000000 +0200 +++ new-sw.srcdir/TipsAnd/Plan9Fs.moin 2013-08-17 20:47:17.000000000 +0200 @@ -1,6 +1,6 @@ * Main Home page: http://swtch.com/plan9port/ - * apt-get install libx11-dev libxext-dev libxt-dev + * apt-get install libx11-dev libxext-dev libxt-dev libc6-dev * Download the source tarball * Unpack it in /usr/local, it creates a subdirectory `plan9` * cd plan9 && ./INSTALL
HASH(0xac7f454)
diff -rN -u old-sw.srcdir/Plan9Tutorial/FromLinux.moin new-sw.srcdir/Plan9Tutorial/FromLinux.moin --- old-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:18.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:18.000000000 +0200 @@ -22,7 +22,7 @@ * follow the above steps until connecting, then: {{{ -sudo mount -t 9P \ +sudo mount -t 9p \ -o user=$USER,uid=`id -u`,gid=`id -g`,proto=unix \ `namespace`/schiefer.magma.com.ni <mntpoint> }}}
HASH(0xac7f92c)
diff -rN -u old-sw.srcdir/Plan9Tutorial/FromLinux.moin new-sw.srcdir/Plan9Tutorial/FromLinux.moin --- old-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:18.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:18.000000000 +0200 @@ -9,4 +9,23 @@ You are done +The above works only if the `9p` file system is not loaded into the +Linux kernel. It uses fuse then, and you can: {{{ +fusermount -u <mntpnt> +}}} + +fuse is somewhat unstable, at last it crashed on me silently on high +traffic or something similar, and at other times complained about +wrong permissions. + +== mounting with 9p kernel module == + + * follow the above steps until connecting, then: {{{ + +sudo mount -t 9P \ + -o user=$USER,uid=`id -u`,gid=`id -g`,proto=unix \ + `namespace`/schiefer.magma.com.ni <mntpoint> +}}} + +---- See and merge with: TipsAnd/Plan9Fs
HASH(0xac7fecc)
diff -rN -u old-sw.srcdir/EnterpriseNumber.moin new-sw.srcdir/EnterpriseNumber.moin --- old-sw.srcdir/EnterpriseNumber.moin 2013-08-17 20:47:18.000000000 +0200 +++ new-sw.srcdir/EnterpriseNumber.moin 2013-08-17 20:47:18.000000000 +0200 @@ -1,4 +1,4 @@ -[[TableOfContents]] +<<TableOfContents>> MagmaSoft has been asigned the Enterprise Number: @@ -16,19 +16,19 @@ This Schema adds attributes to the ''core'' and ''cosine'' schemes, allowing to define restrictions for Dialup-Access. It is used by MagmaSoft to generate `time.conf` (timely restrictions) and `limits.conf` (number of simultaneously allowed logins) definitions, used in conjunctions with the Pluggable Authentication Mecanism PAM found in GNU/Linux System.s - ["/1.3.6.1.4.1.22692.1.2"] + [["/1.3.6.1.4.1.22692.1.2"]] == ?WdAddressEntry == This schema provides additional attributes for the inetOrgPerson, and posixAccount ?ObjectClasses - ["/1.3.6.1.4.1.22692.1.3"] + [["/1.3.6.1.4.1.22692.1.3"]] == ?UniUserEntry == -This schema provides Attributes for the User entries at the [http://www.uni.edu.ni/ Universidad Nacional de Ingenieria] Managua/Nicaragua +This schema provides Attributes for the User entries at the [[http://www.uni.edu.ni/ Universidad Nacional de Ingenieria]] Managua/Nicaragua - ["/1.3.6.1.4.1.22692.1.4"] + [["/1.3.6.1.4.1.22692.1.4"]] = SNMP oid's = @@ -39,18 +39,27 @@ This implements an extension to the Net-SNMP package, allowing to query the status and data of Linux Software Raid devices. - ["/1.3.6.1.4.1.22692.2.7243"] + [["/1.3.6.1.4.1.22692.2.7243"]] == OpenVZ Beancounter MIB == This schema provides the Beancounters of Virtual Machines under ?OpenVz/Virtuozzo as in seen in http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp - ["/1.3.6.1.4.1.22692.2.25194"] + [["/1.3.6.1.4.1.22692.2.25194"]] + +== OpenVZ Quota MIB == + +This schema provides the vzquotas of Virtual Machines under ?OpenVz/Virtuozzo +as in seen in http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp + + [["/1.3.6.1.4.1.22692.2.25195"]] + + == Chrony Status MIB == - ["/1.3.6.1.4.1.22692.2.6396"] + [["/1.3.6.1.4.1.22692.2.6396"]] = References =
HASH(0xac80264)
diff -rN -u old-sw.srcdir/TipsAnd/Plan9Fs.moin new-sw.srcdir/TipsAnd/Plan9Fs.moin --- old-sw.srcdir/TipsAnd/Plan9Fs.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TipsAnd/Plan9Fs.moin 2013-08-17 20:47:19.000000000 +0200 @@ -0,0 +1,45 @@ + * Main Home page: http://swtch.com/plan9port/ + + * apt-get install libx11-dev libxext-dev libxt-dev + * Download the source tarball + * Unpack it in /usr/local, it creates a subdirectory `plan9` + * cd plan9 && ./INSTALL + +in `~/bashrc` put {{{ +PLAN9=/usr/local/plan9 export PLAN9 +PATH=$PATH:$PLAN9/bin export PATH +}}} + += Use = + +run Plan9 commands with {{{ +9 <cmd> +}}} + += Drawterm = +http://plan9.bell-labs.com/wiki/plan9/drawterm/index.html + +http://swtch.com/drawterm/drawterm-linux.gz + +{{{ +drawterm -a authserver -c cpuserver -s secstore -u user +}}} + += Mount P9 fileservers under Linux = + +v9fs: normally included in kernel. + +http://swtch.com/v9fs/ + + mkdir /mnt/acme; mount -t 9P -o proto=unix,name=$USER /tmp/ns.x40/acme /mnt/acme + + mkdir /n/sources; mount -t 9P -o proto=tcp 204.178.31.8 /n/sources # sources.cs.bell-labs.com + +/etc/fstab:: {{{ +204.178.31.8 /n/sources 9p default,user,noauto,proto=tcp 0 0 +}}} + + +See Also: Plan9Tutorial/FromLinux +---- +CategoryTips
HASH(0xac817f0)
diff -rN -u old-sw.srcdir/Plan9Tutorial/FromLinux.moin new-sw.srcdir/Plan9Tutorial/FromLinux.moin --- old-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:19.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:19.000000000 +0200 @@ -9,4 +9,4 @@ You are done -See and merge with: Plan9Tutorial/FromLinux +See and merge with: TipsAnd/Plan9Fs
HASH(0xac81b88)
diff -rN -u old-sw.srcdir/Plan9Tutorial/FromLinux.moin new-sw.srcdir/Plan9Tutorial/FromLinux.moin --- old-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:20.000000000 +0200 +++ new-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:20.000000000 +0200 @@ -1,4 +1,3 @@ - * install Plan9 from userspace * put your authserver into /usr/local/plan9/ndp/local * start `factotum` @@ -9,3 +8,5 @@ }}} You are done + +See and merge with: Plan9Tutorial/FromLinux
HASH(0xac82060)
diff -rN -u old-sw.srcdir/Plan9Tutorial/FromLinux.moin new-sw.srcdir/Plan9Tutorial/FromLinux.moin --- old-sw.srcdir/Plan9Tutorial/FromLinux.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/Plan9Tutorial/FromLinux.moin 2013-08-17 20:47:20.000000000 +0200 @@ -0,0 +1,11 @@ + + * install Plan9 from userspace + * put your authserver into /usr/local/plan9/ndp/local + * start `factotum` + * connect to your fileserver: `9fs schiefer.magma.com.ni` + * you will be asked username and password + * mount it: {{{ +9 mount `namespace`/schiefer.magma.com.ni <mntpoint> +}}} + +You are done
HASH(0xac83434)
diff -rN -u old-sw.srcdir/InterestingLinks.moin new-sw.srcdir/InterestingLinks.moin --- old-sw.srcdir/InterestingLinks.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/InterestingLinks.moin 2013-08-17 20:47:21.000000000 +0200 @@ -0,0 +1 @@ +http://lambda-the-ultimate.org/
HASH(0xac837f4)
diff -rN -u old-sw.srcdir/FrontPage.moin new-sw.srcdir/FrontPage.moin --- old-sw.srcdir/FrontPage.moin 2013-08-17 20:47:21.000000000 +0200 +++ new-sw.srcdir/FrontPage.moin 2013-08-17 20:47:21.000000000 +0200 @@ -1,10 +1,10 @@ -## Please edit system and help pages ONLY in the moinmaster wiki! For more -## information, please see ?MoinMaster:MoinPagesEditorGroup. -##master-page:FrontPage #format wiki #language en #pragma section-numbers off +Note: We had recently losses of Wiki Pages because of Hardware Failures. +Some day we will have a backup and time to do rescues... Meanwhile we apologize. + || Estamos moviendo el Kwiki - Wiki a MoinMoin. Favor ayuda: si buscas una página que no está todavia, buscala en http://www.magma.com.ni/wiki, copia el código. Después crea la página aqui y pega el código. En KwikiToMoin puedes leer como afinar el resultado después. || === Accesos directos | Shortcuts | Abkürzungen ===
HASH(0xac83b8c)
diff -rN -u old-sw.srcdir/TipsAnd/Supervise.moin new-sw.srcdir/TipsAnd/Supervise.moin --- old-sw.srcdir/TipsAnd/Supervise.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/TipsAnd/Supervise.moin 2013-08-17 20:47:21.000000000 +0200 @@ -0,0 +1,128 @@ +^TipsAnd... + +[[TableOfContents()]] + += Setting up a supervised service = + +Whenever you want to run a program permanently you maybe want to "supervise" it. [http://cr.yp.to Dan J. Bernstein] created the "daemontools" package, which contains supervise, [http://smarden.org/pape Gerrit Pape] has created `runit`, a GPL'd substitute. + +You tell supervise to supervise a certain ''program'', by + + 1. creating a directory for ''program'' + 2. putting a script named `run` into this directory. `run` must launch ''program'' + 3. optionally create a log subdirectory to set up a supervised log-service for /program/ + 4. create a symbolic link `/service/`''program'' which points to the directory with the `run`-script + +If a supervised program ends, it will be re-lauched by supervise within five seconds, so your services never die forever. + +It is easy to know if a services is running, and it is easy to restart a service. + +This document tells you how to set up a supervised service in Debian GNU/Linux. + += Required Packages = + +{{{ +apt-get install runit +}}} + +Read the html documentation of runit at file:///usr/share/doc/runit/index.html, especially the collection of runscripts at: +file:///usr/share/doc/runit/runscripts.html may be useful. + += Log User = + +I recommend strongly to create a user who will own the logs of your services. The securest practice is to create an individual log-user for each service, however it is better to have at least a separate user for all the supervised logs (and maybe others). +{{{ +adduser --gecos "Log - User" --ingroup adm \ + --home /var/log --no-create-home \ + --disabled-login --disabled-password \ + log +}}} + += Create a supervised directory = + +The supervised directories are usually created in `/etc` with the name of the ''program'' to supervise. + +{{{ +# mkdir /etc/program +# cd /etc/program +}}} + +the run script usually starts with: + +{{{ +#!/bin/sh +exec 2>&1 +... +exec ... program +}}} + +the `exec 2>&1` joins standard error and standard output of the supervised program, so they go both to the log. + +When you launch the program it is wise to `exec` it, instead of run it as a sub-process, so you spare memory by re-using the shell from the first line of the file. + +Don't forget to + +{{{ +# chmod +x run +}}} + +it has to be executable, of course, and you can test it with: + +{{{ +# ./run +}}} + +It should not go into the background, and it should be stoppable with `Ctrl+C`. + += Setting up a log service = + +From within the `/etc/`''program'' directory we do: + +{{{ +# mkdir log +# cd log +}}} + +and create a `run` script with the following contents: + +{{{ +#!/bin/sh +exec chpst -u log svlogd -t ./main +}}} + +then we create the log directory following Debian standards and link it to `main:` + +{{{ +# mkdir /var/log/program +# chown log:adm /var/log/program +# chmod u=rwx,g=rxs,o-rwx /var/log/program +# ln -s /var/log/program main +}}} + +of course you `chmod +x`'ed `run` and test it the same way like in the service directory. + += Starting it all up = + +{{{ + # cd .. + # ln -s `pwd` /service +... and repeating several times + # svstat . log +}}} + +will show us, if everything is running fine. + + +In case the services won't start up, but the log services does, you can follow the log with: + +{{{ +# tail -F /var/log/progam/current +}}} + += Removing a Service = + +{{{ +# cd /service/program +# rm /service/program +# svc -dx . log +}}}
HASH(0xac84140)
diff -rN -u old-sw.srcdir/TipsAnd.moin new-sw.srcdir/TipsAnd.moin --- old-sw.srcdir/TipsAnd.moin 2013-08-17 20:47:22.000000000 +0200 +++ new-sw.srcdir/TipsAnd.moin 2013-08-17 20:47:22.000000000 +0200 @@ -1,8 +1,8 @@ '''Bits, Tips and Recipes''' -[[TableOfContents()]] +<<TableOfContents()>> -[[PageList(TipsAnd/)]] +<<PageList(TipsAnd/)>> = Qmail DJB LDAP = * ?TipsQmailScanner @@ -78,6 +78,8 @@ = Plan9 = * TipsAnd/Plan9Setup * What was missing in the official papers to get things started + * TipsAnd/Plan9Fs + * Setup of Plan9fs support under Linux = How to write a Tip: =
HASH(0xac8562c)
diff -rN -u old-sw.srcdir/AnsiForth/InputOutputStrings.moin new-sw.srcdir/AnsiForth/InputOutputStrings.moin --- old-sw.srcdir/AnsiForth/InputOutputStrings.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/AnsiForth/InputOutputStrings.moin 2013-08-17 20:47:22.000000000 +0200 @@ -0,0 +1,87 @@ +== Input/Output, Strings == + + .:: dot ( n -- ), Display n in free field format. + + BL:: b-l ( -- char ), char is the character value for a space. + + CHAR:: char ( "<spaces>name" -- char ) + +Skip leading space delimiters. Parse name delimited by a space. Put +the value of its first character onto the stack. + + COUNT:: ( c-addr1 -- c-addr2 u ) + +Return the character string specification for the counted string +stored at c-addr1. c-addr2 is the address of the first character after +c-addr1. u is the contents of the character at c-addr1, which is the +length in characters of the string at c-addr2. + + CR:: c-r ( -- ) + +Cause subsequent output to appear at the beginning of the next line. + + EMIT:: ( x -- ) + +If x is a graphic character in the implementation-defined character +set, display x. The effect of EMIT for all other values of x is +implementation-defined. + +When passed a character whose character-defining bits have a value +between hex 20 and 7E inclusive, the corresponding standard character, +specified by 3.1.2.1 Graphic characters, is displayed. Because +different output devices can respond differently to control +characters, programs that use control characters to perform specific +functions have an environmental dependency. Each EMIT deals with only +one character. + + KEY:: ( -- char ) + +Receive one character char, a member of the implementation-defined +character set. Keyboard events that do not correspond to such +characters are discarded until a valid character is received, and +those events are subsequently unavailable. + +All standard characters can be received. Characters received by KEY +are not displayed. + +Any standard character returned by KEY has the numeric value specified +in 3.1.2.1 Graphic characters. Programs that require the ability to +receive control characters have an environmental dependency. + + SOURCE:: ( -- c-addr u ) + +c-addr is the address of, and u is the number of characters in, the +input buffer. + + + SPACE:: ( -- ), Display one space. + + SPACES:: ( n -- ), If n is greater than zero, display n spaces. + + THEN:: + Interpretation: Interpretation semantics for this word are undefined. + + Compilation: ( C: orig -- ) + +Append the run-time semantics given below to the current +definition. Resolve the forward reference orig using the location of +the appended run-time semantics. + + Run-time: ( -- ) + +Continue execution. + + TYPE:: ( c-addr u -- ) + +If u is greater than zero, display the character string specified by +c-addr and u. + +When passed a character in a character string whose character-defining +bits have a value between hex 20 and 7E inclusive, the corresponding +standard character, specified by 3.1.2.1 graphic characters, is +displayed. Because different output devices can respond differently to +control characters, programs that use control characters to perform +specific functions have an environmental dependency. + + + U.:: u-dot ( u -- ), Display u in free field format.
HASH(0xac85be0)
diff -rN -u old-sw.srcdir/AnsiForth/LogicalBitManipulation.moin new-sw.srcdir/AnsiForth/LogicalBitManipulation.moin --- old-sw.srcdir/AnsiForth/LogicalBitManipulation.moin 1970-01-01 01:00:00.000000000 +0100 +++ new-sw.srcdir/AnsiForth/LogicalBitManipulation.moin 2013-08-17 20:47:23.000000000 +0200 @@ -0,0 +1,128 @@ +== Logical/Bitmanipulation == + + 0<:: zero-less ( n -- flag ), flag is true if and only if n is less than zero. + + 0=:: zero-equals ( x -- flag ), flag is true if and only if x is equal to zero. + + <:: less-than ( n1 n2 -- flag ), flag is true if and only if n1 is less than n2. + + =:: equals ( x1 x2 -- flag ), flag is true if and only if x1 is bit-for-bit the same as x2. + + >:: greater-than ( n1 n2 -- flag ), flag is true if and only if n1 is greater than n2. + + AND:: ( x1 x2 -- x3 ), x3 is the bit-by-bit logical and of x1 with x2. + + INVERT:: ( x1 -- x2 ), Invert all bits of x1, giving its logical inverse x2. + + LSHIFT:: l-shift ( x1 u -- x2 ) + +Perform a logical left shift of u bit-places on x1, giving x2. Put +zeroes into the least significant bits vacated by the shift. An +ambiguous condition exists if u is greater than or equal to the number +of bits in a cell. + + OR:: ( x1 x2 -- x3 ), x3 is the bit-by-bit inclusive-or of x1 with x2. + + RSHIFT:: r-shift ( x1 u -- x2 ) + +Perform a logical right shift of u bit-places on x1, giving x2. Put +zeroes into the most significant bits vacated by the shift. An +ambiguous condition exists if u is greater than or equal to the number +of bits in a cell. + + U<:: u-less-than ( u1 u2 -- flag ) + +flag is true if and only if u1 is less than u2. + + XOR:: x-or ( x1 x2 -- x3 ) + +x3 is the bit-by-bit exclusive-or of x1 with x2. + + + +== Interpreter == + + ABORT:: ( i*x -- ) ( R: j*x -- ) + +Empty the data stack and perform the function of QUIT, which includes +emptying the return stack, without displaying a message. + + + ABORT":: abort-quote + Interpretation: Interpretation semantics for this word are undefined. + + Compilation: ( "ccc<quote>" -- ) + +Parse ccc delimited by a " (double-quote). Append the run-time semantics given below to the current definition. + + Run-time: ( i*x x1 -- | i*x ) ( R: j*x -- | j*x ) + +Remove x1 from the stack. If any bit of x1 is not zero, display ccc +and perform an implementation-defined abort sequence that includes the +function of ABORT. + + ACCEPT:: ( c-addr +n1 -- +n2 ) + +Receive a string of at most +n1 characters. An ambiguous condition +exists if +n1 is zero or greater than 32,767. Display graphic +characters as they are received. A program that depends on the +presence or absence of non-graphic characters in the string has an +environmental dependency. The editing functions, if any, that the +system performs in order to construct the string are +implementation-defined. + +Input terminates when an implementation-defined line terminator is +received. When input terminates, nothing is appended to the string, +and the display is maintained in an implementation-defined way. + ++n2 is the length of the string stored at c-addr. + + ENVIRONMENT?:: environment-query ( c-addr u -- false | i*x true ) + +c-addr is the address of a character string and u is the string's +character count. u may have a value in the range from zero to an +implementation-defined maximum which shall not be less than 31. The +character string should contain a keyword from 3.2.6 Environmental +queries or the optional word sets to be checked for correspondence +with an attribute of the present environment. If the system treats the +attribute as unknown, the returned flag is false; otherwise, the flag +is true and the i*x returned is of the type specified in the table for +the attribute queried. + + + EVALUATE:: ( i*x c-addr u -- j*x ) + +Save the current input source specification. Store minus-one (-1) in +SOURCE-ID if it is present. Make the string described by c-addr and u +both the input source and input buffer, set >IN to zero, and +interpret. When the parse area is empty, restore the prior input +source specification. Other stack effects are due to the words +EVALUATEd. + + + EXECUTE:: ( i*x xt -- j*x ) + +Remove xt from the stack and perform the semantics identified by +it. Other stack effects are due to the word EXECUTEd. + + + EXIT:: + Interpretation: Interpretation semantics for this word are undefined. + + Execution: ( -- ) ( R: nest-sys -- ) + +Return control to the calling definition specified by nest-sys. Before +executing EXIT within a do-loop, a program shall discard the +loop-control parameters by executing UNLOOP. + + QUIT:: ( -- ) ( R: i*x -- ) + +Empty the return stack, store zero in SOURCE-ID if it is present, make +the user input device the input source, and enter interpretation +state. Do not display a message. Repeat the following: + + * Accept a line from the input source into the input buffer, set >IN to zero, and interpret. + + * Display the implementation-defined system prompt if in + . interpretation state, all processing has been completed, and no + . ambiguous condition exists.
HASH(0xac86054)
HASH(0xac87210)
HASH(0xac87684)
HASH(0xac87a44)
HASH(0xac87e04)
HASH(0xac8a000)
HASH(0xac8a5b4)
HASH(0xac8aa14)
HASH(0xac8adac)
HASH(0xac8ce18)
HASH(0xac8d1b0)
HASH(0xac8d688)
HASH(0xac8ea1c)
HASH(0xac8eef4)
HASH(0xac8f3cc)
HASH(0xac8f8a4)
HASH(0xac90cb0)
HASH(0xac91188)
HASH(0xac91728)
HASH(0xac93654)
HASH(0xac93ab4)
HASH(0xac93f14)
HASH(0xac942ac)
HASH(0xac95858)
HASH(0xac95c18)
fixed toc macro level syntax
diff -rN -u old-sw.srcdir/EnterpriseNumber.mdwn new-sw.srcdir/EnterpriseNumber.mdwn
--- old-sw.srcdir/EnterpriseNumber.mdwn 2013-08-17 20:47:03.000000000 +0200
+++ new-sw.srcdir/EnterpriseNumber.mdwn 2013-08-17 20:47:03.000000000 +0200
@@ -1,4 +1,4 @@
-[[!toc level=2]]
+[[!toc levels=2]]
MagmaSoft has been asigned the
[[IANA Enterprise Number|http://www.iana.org/assignments/enterprise-numbers]]:
@@ -68,7 +68,7 @@
## OpenVZ Beancounter MIB
-This schema provides the Beancounters of Virtual Machines under ?OpenVz/Virtuozzo as in seen in [[http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp|http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp]]
+This schema provides the Beancounters of Virtual Machines under OpenVZ/Virtuozzo as in seen in [[http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp|http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp]]
* [[1.3.6.1.4.1.22692.2.25194]]
Link fix ups, minor changes
diff -rN -u old-sw.srcdir/EnterpriseNumber.mdwn new-sw.srcdir/EnterpriseNumber.mdwn --- old-sw.srcdir/EnterpriseNumber.mdwn 2013-08-17 20:47:03.000000000 +0200 +++ new-sw.srcdir/EnterpriseNumber.mdwn 2013-08-17 20:47:03.000000000 +0200 @@ -1,4 +1,4 @@ -[[!toc]] +[[!toc level=2]] MagmaSoft has been asigned the [[IANA Enterprise Number|http://www.iana.org/assignments/enterprise-numbers]]: @@ -27,14 +27,15 @@ > [[1.3.6.1.4.1.22692.1.2]] -## ?WdAddressEntry + +## \WdAddressEntry This schema provides additional attributes for the inetOrgPerson, and -posixAccount ?ObjectClasses. +posixAccount object classes. > [[1.3.6.1.4.1.22692.1.3]] -## ?UniUserEntry +## \UniUserEntry This schema provides Attributes for the User entries at the [[Universidad Nacional de Ingenieria|http://www.uni.edu.ni/]] @@ -53,14 +54,17 @@ # SNMP oid's -All SNMP-oid's used by MagmaSoft shall use the prefix: 1.3.6.1.4.1.22692.2 +All SNMP-oid's used by MagmaSoft shall use the prefix: + +> 1.3.6.1.4.1.22692.2 ## RAID MIB This implements an extension to the Net-SNMP package, allowing to query the status and data of Linux Software Raid devices. - * [[1.3.6.1.4.1.22692.2.7243"]] + * [[1.3.6.1.4.1.22692.2.7243]] + ## OpenVZ Beancounter MIB @@ -70,14 +74,16 @@ ## OpenVZ Quota MIB -This schema provides the vzquotas of Virtual Machines under ?OpenVz/Virtuozzo as in seen in [[http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp|http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp]] +This schema provides the vzquotas of Virtual Machines under OpenVZ/Virtuozzo as in seen in [[http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp|http://wiki.openvz.org/Monitoring_openvz_resources_using_nagios_and_snmp]] * [[1.3.6.1.4.1.22692.2.25195]] + ## Chrony Status MIB * [[1.3.6.1.4.1.22692.2.6396]] + # References [[http://www.alvestrand.no/objectid/|http://www.alvestrand.no/objectid/]]