- <title>Typesetting a short story using docbook for PDF, HTML and EPUB</title>
- <link>http://people.skolelinux.org/pere/blog/Typesetting_a_short_story_using_docbook_for_PDF__HTML_and_EPUB.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Typesetting_a_short_story_using_docbook_for_PDF__HTML_and_EPUB.html</guid>
- <pubDate>Sun, 24 Mar 2013 17:30:00 +0100</pubDate>
- <description><p>A few days ago, during a discussion in
-<a href="http://www.efn.no/">EFN</a> about interesting books to read
-about copyright and the data retention directive, a suggestion to read
-the 1968 short story Kodémus by
-<a href="http://web2.gyldendal.no/toraage/">Tore Åge Bringsværd</a>
-came up. The text was only available in old paper books, and thus not
-easily available for current and future generations. Some of the
-people participating in the discussion contacted the author, and
-reported back 2013-03-19 that the author was OK with releasing the
-short story using a <a href="http://www.creativecommons.org/">Creative
-Commons</a> license. The text was quickly scanned and OCR-ed, and we
-were ready to start on the editing and typesetting.</p>
-
-<p>As I already had some experience formatting text in my project to
-provide a Norwegian version of the Free Culture book by Lawrence
-Lessig, I chipped in and set up a
-<a href="http://www.docbook.org/">DocBook</a> processing framework to
-generate PDF, HTML and EPUB version of the short story. The tools to
-transform DocBook to different formats are already in my Linux
-distribution of choice, <a href="http://www.debian.org/">Debian</a>, so
-all I had to do was to use the
-<a href="http://dblatex.sourceforge.net/">dblatex</a>,
-<a href="http://docbook.sourceforge.net/release/xsl/current/epub/README">dbtoepub</a>
-and <a href="https://fedorahosted.org/xmlto/">xmlto</a> tools to do the
-conversion. After a few days, we decided to replace dblatex with
-xsltproc/fop (aka
-<a href="http://wiki.docbook.org/DocBookXslStylesheets">docbook-xsl</a>),
-to get the copyright information to show up in the PDF and to get a
-nicer &lt;variablelist&gt; typesetting, but that is just a minor
-technical detail.</p>
-
-<p>There were a few challenges, of course. We want to typeset the
-short story to look like the original, and that require fairly good
-control over the layout. The original short story have three
-parts/scenes separated by a single horizontally centred star (*), and
-the paragraphs do not contain only flowing text, but dialogs and text
-that started on a new line in the middle of the paragraph.</p>
-
-<p>I initially solved the first challenge by using a paragraph with a
-single star in it, ie &lt;para&gt;*&lt;/para&gt;, but it made sure a
-placeholder indicated where the scene shifted. This did not look too
-good without the centring. The next approach was to create a new
-preprocessor directive &lt;?newscene?&gt;, mapping to "&lt;hr/&gt;"
-for HTML and "&lt;fo:block text-align="center"&gt;&lt;fo:leader
-leader-pattern="rule" rule-thickness="0.5pt"/&gt;&lt;/fo:block&gt;"
-for FO/PDF output (did not try to implement this in dblatex, as we had
-switched at this time). The HTML XSL file looked like this:</p>
-
-<p><blockquote><pre>
-&lt;?xml version='1.0'?&gt;
-&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
- &lt;xsl:template match="processing-instruction('newscene')"&gt;
- &lt;hr/&gt;
- &lt;/xsl:template&gt;
-&lt;/xsl:stylesheet&gt;
-</pre></blockquote></p>
-
-<p>And the FO/PDF XSL file looked like this:</p>
-
-<p><blockquote><pre>
-&lt;?xml version='1.0'?&gt;
-&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
- &lt;xsl:template match="processing-instruction('newscene')"&gt;
- &lt;fo:block text-align="center"&gt;
- &lt;fo:leader leader-pattern="rule" rule-thickness="0.5pt"/&gt;
- &lt;/fo:block&gt;
- &lt;/xsl:template&gt;
-&lt;/xsl:stylesheet&gt;
-</pre></blockquote></p>
-
-<p>Finally, I came across the &lt;bridgehead&gt; tag, which seem to be
-a good fit for the task at hand, and I replaced &lt;?newscene?&gt;
-with &lt;bridgehead&gt;*&lt;/bridgehead&gt;. It isn't centred, but we
-can fix it with some XSL rule if the current visual layout isn't
-enough.</p>
-
-<p>I did not find a good DocBook compliant way to solve the
-linebreak/paragraph challenge, so I ended up creating a new processor
-directive &lt;?linebreak?&gt;, mapping to &lt;br/&gt; in HTML, and
-&lt;fo:block/&gt; in FO/PDF. I suspect there are better ways to do
-this, and welcome ideas and patches on github. The HTML XSL file now
-look like this:</p>
-
-<p><blockquote><pre>
-&lt;?xml version='1.0'?&gt;
-&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
- &lt;xsl:template match="processing-instruction('linebreak)"&gt;
- &lt;br/&gt;
- &lt;/xsl:template&gt;
-&lt;/xsl:stylesheet&gt;
-</pre></blockquote></p>
-
-<p>And the FO/PDF XSL file looked like this:</p>
-
-<p><blockquote><pre>
-&lt;?xml version='1.0'?&gt;
-&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'
- xmlns:fo="http://www.w3.org/1999/XSL/Format"&gt;
- &lt;xsl:template match="processing-instruction('linebreak)"&gt;
- &lt;fo:block/&gt;
- &lt;/xsl:template&gt;
-&lt;/xsl:stylesheet&gt;
-</pre></blockquote></p>
-
-<p>One unsolved challenge is our wish to expose different ISBN numbers
-per publication format, while keeping all of them in some conditional
-structure in the DocBook source. No idea how to do this, so we ended
-up listing all the ISBN numbers next to their format in the colophon
-page.</p>
-
-<p>If you want to check out the finished result, check out the
-<a href="https://github.com/sickel/kodemus">source repository at
-github</a>
-(<a href="https://github.com/EFN/kodemus">future/new/official
-repository</a>). We expect it to be ready and announced in a few
-days.</p>
+ <title>Oslo community mesh network - with NUUG and Hackeriet at Hausmania</title>
+ <link>http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html</guid>
+ <pubDate>Fri, 11 Oct 2013 14:10:00 +0200</pubDate>
+ <description><p>Wireless mesh networks are self organising and self healing
+networks that can be used to connect computers across small and large
+areas, depending on the radio technology used. Normal wifi equipment
+can be used to create home made radio networks, and there are several
+successful examples like
+<a href="http://www.freifunk.net/">Freifunk</a> and
+<a href="http://www.awmn.net/">Athens Wireless Metropolitan Network</a>
+(see
+<a href="http://en.wikipedia.org/wiki/List_of_wireless_community_networks_by_region#Greece">wikipedia
+for a large list</a>) around the globe. To give you an idea how it
+work, check out the nice overview of the Kiel Freifunk community which
+can be seen from their
+<a href="http://freifunk.in-kiel.de/ffmap/nodes.html">dynamically
+updated node graph and map</a>, where one can see how the mesh nodes
+automatically handle routing and recover from nodes disappearing.
+There is also a small community mesh network group in Oslo, Norway,
+and that is the main topic of this blog post.</p>
+
+<p>I've wanted to check out mesh networks for a while now, and hoped
+to do it as part of my involvement with the <a
+href="http://www.nuug.no/">NUUG member organisation</a> community, and
+my recent involvement in
+<a href="https://wiki.debian.org/FreedomBox">the Freedombox project</a>
+finally lead me to give mesh networks some priority, as I suspect a
+Freedombox should use mesh networks to connect neighbours and family
+when possible, given that most communication between people are
+between those nearby (as shown for example by research on Facebook
+communication patterns). It also allow people to communicate without
+any central hub to tap into for those that want to listen in on the
+private communication of citizens, which have become more and more
+important over the years.</p>
+
+<p>So far I have only been able to find one group of people in Oslo
+working on community mesh networks, over at the hack space
+<a href="http://hackeriet.no/">Hackeriet</a> at Husmania. They seem to
+have started with some Freifunk based effort using OLSR, called
+<a href="http://oslo.freifunk.net/index.php?title=Main_Page">the Oslo
+Freifunk project</a>, but that effort is now dead and the people
+behind it have moved on to a batman-adv based system called
+<a href="http://meshfx.org/trac">meshfx</a>. Unfortunately the wiki
+site for the Oslo Freifunk project is no longer possible to update to
+reflect this fact, so the old project page can't be updated to point to
+the new project. A while back, the people at Hackeriet invited people
+from the Freifunk community to Oslo to talk about mesh networks. I
+came across this video where Hans Jørgen Lysglimt interview the
+speakers about this talk (from
+<a href="https://www.youtube.com/watch?v=N2Kd7CLkhSY">youtube</a>):</p>
+
+<p><iframe width="420" height="315" src="https://www.youtube.com/embed/N2Kd7CLkhSY" frameborder="0" allowfullscreen></iframe></p>
+
+<p>I mentioned OLSR and batman-adv, which are mesh routing protocols.
+There are heaps of different protocols, and I am still struggling to
+figure out which one would be "best" for some definitions of best, but
+given that the community mesh group in Oslo is so small, I believe it
+is best to hook up with the existing one instead of trying to create a
+completely different setup, and thus I have decided to focus on
+batman-adv for now. It sure help me to know that the very cool
+<a href="http://www.servalproject.org/">Serval project in Australia</a>
+is using batman-adv as their meshing technology when it create a self
+organizing and self healing telephony system for disaster areas and
+less industrialized communities. Check out this cool video presenting
+that project (from
+<a href="https://www.youtube.com/watch?v=30qNfzJCQOA">youtube</a>):</p>
+
+<p><iframe width="560" height="315" src="https://www.youtube.com/embed/30qNfzJCQOA" frameborder="0" allowfullscreen></iframe></p>
+
+<p>According to the wikipedia page on
+<a href="http://en.wikipedia.org/wiki/Wireless_mesh_network">Wireless
+mesh network</a> there are around 70 competing schemes for routing
+packets across mesh networks, and OLSR, B.A.T.M.A.N. and
+B.A.T.M.A.N. advanced are protocols used by several free software
+based community mesh networks.</p>
+
+<p>The batman-adv protocol is a bit special, as it provide layer 2
+(as in ethernet ) routing, allowing ipv4 and ipv6 to work on the same
+network. One way to think about it is that it provide a mesh based
+vlan you can bridge to or handle like any other vlan connected to your
+computer. The required drivers are already in the Linux kernel at
+least since Debian Wheezy, and it is fairly easy to set up. A
+<a href="http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide">good
+introduction</a> is available from the Open Mesh project. These are
+the key settings needed to join the Oslo meshfx network:</p>
+
+<p><table>
+<tr><th>Setting</th><th>Value</th></tr>
+<tr><td>Protocol / kernel module</td><td>batman-adv</td></tr>
+<tr><td>ESSID</td><td>meshfx@hackeriet</td></tr>
+<td>Channel / Frequency</td><td>11 / 2462</td></tr>
+<td>Cell ID</td><td>02:BA:00:00:00:01</td>
+</table></p>
+
+<p>The reason for setting ad-hoc wifi Cell ID is to work around bugs
+in firmware used in wifi card and wifi drivers. (See a nice post from
+VillageTelco about
+"<a href="http://tiebing.blogspot.no/2009/12/ad-hoc-cell-splitting-re-post-original.html">Information
+about cell-id splitting, stuck beacons, and failed IBSS merges!</a>
+for details.) When these settings are activated and you have some
+other mesh node nearby, your computer will be connected to the mesh
+network and can communicate with any mesh node that is connected to
+any of the nodes in your network of nodes. :)</p>
+
+<p>My initial plan was to reuse my old Linksys WRT54GL as a mesh node,
+but that seem to be very hard, as I have not been able to locate a
+firmware supporting batman-adv. If anyone know how to use that old
+wifi access point with batman-adv these days, please let me know.</p>
+
+<p>If you find this project interesting and want to join, please join
+us on IRC, either channel
+<a href="irc://irc.freenode.net/#oslohackerspace">#oslohackerspace</a>
+or <a href="irc://irc.freenode.net/#nuug">#nuug</a> on
+irc.freenode.net.</p>
+
+<p>While investigating mesh networks in Oslo, I came across an old
+research paper from the university of Stavanger and Telenor Research
+and Innovation called
+<a href="http://folk.uio.no/paalee/publications/netrel-egeland-iswcs-2008.pdf">The
+reliability of wireless backhaul mesh networks</a> and elsewhere
+learned that Telenor have been experimenting with mesh networks at
+Grünerløkka in Oslo. So mesh networks are also interesting for
+commercial companies, even though Telenor discovered that it was hard
+to figure out a good business plan for mesh networking and as far as I
+know have closed down the experiment. Perhaps Telenor or others would
+be interested in a cooperation?</p>
+
+<p><strong>Update 2013-10-12</strong>: I was just
+<a href="http://lists.alioth.debian.org/pipermail/freedombox-discuss/2013-October/005900.html">told
+by the Serval project developers</a> that they no longer use
+batman-adv (but are compatible with it), but their own crypto based
+mesh system.</p>