- <title>Using appstream in Debian to locate packages with firmware and mime type support</title>
- <link>http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html</guid>
- <pubDate>Thu, 4 Feb 2016 16:40:00 +0100</pubDate>
- <description><p>The <a href="https://wiki.debian.org/DEP-11">appstream system</a>
-is taking shape in Debian, and one provided feature is a very
-convenient way to tell you which package to install to make a given
-firmware file available when the kernel is looking for it. This can
-be done using apt-file too, but that is for someone else to blog
-about. :)</p>
-
-<p>Here is a small recipe to find the package with a given firmware
-file, in this example I am looking for ctfw-3.2.3.0.bin, randomly
-picked from the set of firmware announced using appstream in Debian
-unstable. In general you would be looking for the firmware requested
-by the kernel during kernel module loading. To find the package
-providing the example file, do like this:</p>
-
-<blockquote><pre>
-% apt install appstream
-[...]
-% apt update
-[...]
-% appstreamcli what-provides firmware:runtime ctfw-3.2.3.0.bin | \
- awk '/Package:/ {print $2}'
-firmware-qlogic
-%
-</pre></blockquote>
-
-<p>See <a href="https://wiki.debian.org/AppStream/Guidelines">the
-appstream wiki</a> page to learn how to embed the package metadata in
-a way appstream can use.</p>
-
-<p>This same approach can be used to find any package supporting a
-given MIME type. This is very useful when you get a file you do not
-know how to handle. First find the mime type using <tt>file
---mime-type</tt>, and next look up the package providing support for
-it. Lets say you got an SVG file. Its MIME type is image/svg+xml,
-and you can find all packages handling this type like this:</p>
-
-<blockquote><pre>
-% apt install appstream
-[...]
-% apt update
-[...]
-% appstreamcli what-provides mimetype image/svg+xml | \
- awk '/Package:/ {print $2}'
-bkchem
-phototonic
-inkscape
-shutter
-tetzle
-geeqie
-xia
-pinta
-gthumb
-karbon
-comix
-mirage
-viewnior
-postr
-ristretto
-kolourpaint4
-eog
-eom
-gimagereader
-midori
-%
-</pre></blockquote>
-
-<p>I believe the MIME types are fetched from the desktop file for
-packages providing appstream metadata.</p>
+ <title>Coz can help you find bottlenecks in multi-threaded software - nice free software</title>
+ <link>http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html</guid>
+ <pubDate>Thu, 11 Aug 2016 12:00:00 +0200</pubDate>
+ <description><p>This summer, I read a great article
+"<a href="https://www.usenix.org/publications/login/summer2016/curtsinger">coz:
+This Is the Profiler You're Looking For</a>" in USENIX ;login: about
+how to profile multi-threaded programs. It presented a system for
+profiling software by running experiences in the running program,
+testing how run time performance is affected by "speeding up" parts of
+the code to various degrees compared to a normal run. It does this by
+slowing down parallel threads while the "faster up" code is running
+and measure how this affect processing time. The processing time is
+measured using probes inserted into the code, either using progress
+counters (COZ_PROGRESS) or as latency meters (COZ_BEGIN/COZ_END). It
+can also measure unmodified code by measuring complete the program
+runtime and running the program several times instead.</p>
+
+<p>The project and presentation was so inspiring that I would like to
+get the system into Debian. I
+<a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=830708">created
+a WNPP request for it</a> and contacted upstream to try to make the
+system ready for Debian by sending patches. The build process need to
+be changed a bit to avoid running 'git clone' to get dependencies, and
+to include the JavaScript web page used to visualize the collected
+profiling information included in the source package.
+But I expect that should work out fairly soon.</p>
+
+<p>The way the system work is fairly simple. To run an coz experiment
+on a binary with debug symbols available, start the program like this:
+
+<p><blockquote><pre>
+coz run --- program-to-run
+</pre></blockquote></p>
+
+<p>This will create a text file profile.coz with the instrumentation
+information. To show what part of the code affect the performance
+most, use a web browser and either point it to
+<a href="http://plasma-umass.github.io/coz/">http://plasma-umass.github.io/coz/</a>
+or use the copy from git (in the gh-pages branch). Check out this web
+site to have a look at several example profiling runs and get an idea what the end result from the profile runs look like. To make the
+profiling more useful you include &lt;coz.h&gt; and insert the
+COZ_PROGRESS or COZ_BEGIN and COZ_END at appropriate places in the
+code, rebuild and run the profiler. This allow coz to do more
+targeted experiments.</p>
+
+<p>A video published by ACM
+<a href="https://www.youtube.com/watch?v=jE0V-p1odPg">presenting the
+Coz profiler</a> is available from Youtube. There is also a paper
+from the 25th Symposium on Operating Systems Principles available
+titled
+<a href="https://www.usenix.org/conference/atc16/technical-sessions/presentation/curtsinger">Coz:
+finding code that counts with causal profiling</a>.</p>
+
+<p><a href="https://github.com/plasma-umass/coz">The source code</a>
+for Coz is available from github. It will only build with clang
+because it uses a
+<a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55606">C++
+feature missing in GCC</a>, but I've submitted
+<a href="https://github.com/plasma-umass/coz/pull/67">a patch to solve
+it</a> and hope it will be included in the upstream source soon.</p>
+
+<p>Please get in touch if you, like me, would like to see this piece
+of software in Debian. I would very much like some help with the
+packaging effort, as I lack the in depth knowledge on how to package
+C++ libraries.</p>
+</description>
+ </item>
+
+ <item>
+ <title>Sales number for the Free Culture translation, first half of 2016</title>
+ <link>http://people.skolelinux.org/pere/blog/Sales_number_for_the_Free_Culture_translation__first_half_of_2016.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Sales_number_for_the_Free_Culture_translation__first_half_of_2016.html</guid>
+ <pubDate>Fri, 5 Aug 2016 22:45:00 +0200</pubDate>
+ <description><p>As my regular readers probably remember, the last year I published
+a French and Norwegian translation of the classic
+<a href="http://www.free-culture.cc/">Free Culture book</a> by the
+founder of the Creative Commons movement, Lawrence Lessig. A bit less
+known is the fact that due to the way I created the translations,
+using docbook and po4a, I also recreated the English original. And
+because I already had created a new the PDF edition, I published it
+too. The revenue from the books are sent to the Creative Commons
+Corporation. In other words, I do not earn any money from this
+project, I just earn the warm fuzzy feeling that the text is available
+for a wider audience and more people can learn why the Creative
+Commons is needed.</p>
+
+<p>Today, just for fun, I had a look at the sales number over at
+Lulu.com, which take care of payment, printing and shipping. Much to
+my surprise, the English edition is selling better than both the
+French and Norwegian edition, despite the fact that it has been
+available in English since it was first published. In total, 24 paper
+books was sold for USD $19.99 between 2016-01-01 and 2016-07-31:</p>
+
+<table border="0">
+<tr><th>Title / language</th><th>Quantity</th></tr>
+<tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Culture Libre / French</a></td><td align="right">3</td></tr>
+<tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Fri kultur / Norwegian</a></td><td align="right">7</td></tr>
+<tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">Free Culture / English</a></td><td align="right">14</td></tr>
+</table>
+
+<p>The books are available both from Lulu.com and from large book
+stores like Amazon and Barnes&Noble. Most revenue, around $10 per
+book, is sent to the Creative Commons project when the book is sold
+directly by Lulu.com. The other channels give less revenue. The
+summary from Lulu tell me 10 books was sold via the Amazon channel, 10
+via Ingram (what is this?) and 4 directly by Lulu. And Lulu.com tells
+me that the revenue sent so far this year is USD $101.42. No idea
+what kind of sales numbers to expect, so I do not know if that is a
+good amount of sales for a 10 year old book or not. But it make me
+happy that the buyers find the book, and I hope they enjoy reading it
+as much as I did.</p>
+
+<p>The ebook edition is available for free from
+<a href="https://github.com/petterreinholdtsen/free-culture-lessig">Github</a>.</p>
+
+<p>If you would like to translate and publish the book in your native
+language, I would be happy to help make it happen. Please get in
+touch.</p>