X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/31e78b216f079bfa709d1aa5fa4a5d91da9f46bd..47d68fecf3b10472c3afbc2a3341c3ed207bdebe:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index 2f02129b6d..bdf390a54a 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -7,736 +7,611 @@ - Full battery stats collector is now available in Debian - http://people.skolelinux.org/pere/blog/Full_battery_stats_collector_is_now_available_in_Debian.html - http://people.skolelinux.org/pere/blog/Full_battery_stats_collector_is_now_available_in_Debian.html - Wed, 23 Mar 2016 22:10:00 +0100 - <p>Since this morning, the battery-stats package in Debian include an -extended collector that will collect the complete battery history for -later processing and graphing. The original collector store the -battery level as percentage of last full level, while the new -collector also record battery vendor, model, serial number, design -full level, last full level and current battery level. This make it -possible to predict the lifetime of the battery as well as visualise -the energy flow when the battery is charging or discharging.</p> - -<p>The new tools are available in <tt>/usr/share/battery-stats/</tt> -in the version 0.5.1 package in unstable. Get the new battery level graph -and lifetime prediction by running: - -<p><pre> -/usr/share/battery-stats/battery-stats-graph /var/log/battery-stats.csv -</pre></p> - -<p>Or select the 'Battery Level Graph' from your application menu.</p> - -<p>The flow in/out of the battery can be seen by running (no menu -entry yet):</p> - -<p><pre> -/usr/share/battery-stats/battery-stats-graph-flow -</pre></p> - -<p>I'm not quite happy with the way the data is visualised, at least -when there are few data points. The graphs look a bit better with a -few years of data.</p> - -<p>A while back one important feature I use in the battery stats -collector broke in Debian. The scripts in -<tt>/usr/lib/pm-utils/power.d/</tt> were no longer executed. I -suspect it happened when Jessie started using systemd, but I do not -know. The issue is reported as bug #818649 against pm-utils. I -managed to work around it by adding an udev rule to call the collector -script every time the power connector is connected and disconnected. -With this fix in place it was finally time to make a new release of -the package, and get it into Debian.</p> - -<p>If you are interested in how your laptop battery is doing, please -check out the -<a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a> -in Debian unstable, or rebuild it on Jessie to get it working on -Debian stable. :) The upstream source is available from -<a href="https://github.com/petterreinholdtsen/battery-stats">github</a>. -As always, patches are very welcome.</p> + First draft Norwegian Bokmål edition of The Debian Administrator's Handbook now public + http://people.skolelinux.org/pere/blog/First_draft_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook_now_public.html + http://people.skolelinux.org/pere/blog/First_draft_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook_now_public.html + Tue, 30 Aug 2016 10:10:00 +0200 + <p>In April we +<a href="http://people.skolelinux.org/pere/blog/Lets_make_a_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook.html">started +to work</a> on a Norwegian Bokmål edition of the "open access" book on +how to set up and administrate a Debian system. Today I am happy to +report that the first draft is now publicly available. You can find +it on <a href="https://debian-handbook.info/get/">get the Debian +Administrator's Handbook page</a> (under Other languages). The first +eight chapters have a first draft translation, and we are working on +proofreading the content. If you want to help out, please start +contributing using +<a href="https://hosted.weblate.org/projects/debian-handbook/">the +hosted weblate project page</a>, and get in touch using +<a href="http://lists.alioth.debian.org/mailman/listinfo/debian-handbook-translators">the +translators mailing list</a>. Please also check out +<a href="https://debian-handbook.info/contribute/">the instructions for +contributors</a>. A good way to contribute is to proofread the text +and update weblate if you find errors.</p> + +<p>Our goal is still to make the Norwegian book available on paper as well as +electronic form.</p> - UsingQR - "Electronic" paper invoices using JSON and QR codes - http://people.skolelinux.org/pere/blog/UsingQR____Electronic__paper_invoices_using_JSON_and_QR_codes.html - http://people.skolelinux.org/pere/blog/UsingQR____Electronic__paper_invoices_using_JSON_and_QR_codes.html - Sat, 19 Mar 2016 09:40:00 +0100 - <p>Back in 2013 I proposed -<a href="http://people.skolelinux.org/pere/blog/_Electronic__paper_invoices___using_vCard_in_a_QR_code.html">a -way to make paper and PDF invoices easier to process electronically by -adding a QR code with the key information about the invoice</a>. I -suggested using vCard field definition, to get some standard format -for name and address, but any format would work. I did not do -anything about the proposal, but hoped someone one day would make -something like it. It would make it possible to efficiently send -machine readable invoices directly between seller and buyer.</p> - -<p>This was the background when I came across a proposal and -specification from the web based accounting and invoicing supplier -<a href="http://www.visma.com/">Visma</a> in Sweden called -<a href="http://usingqr.com/">UsingQR</a>. Their PDF invoices contain -a QR code with the key information of the invoice in JSON format. -This is the typical content of a QR code following the UsingQR -specification (based on a real world example, some numbers replaced to -get a more bogus entry). I've reformatted the JSON to make it easier -to read. Normally this is all on one long line:</p> - -<p><img src="http://people.skolelinux.org/pere/blog/images/2016-03-19-qr-invoice.png" align="right"><pre> -{ - "vh":500.00, - "vm":0, - "vl":0, - "uqr":1, - "tp":1, - "nme":"Din Leverandør", - "cc":"NO", - "cid":"997912345 MVA", - "iref":"12300001", - "idt":"20151022", - "ddt":"20151105", - "due":2500.0000, - "cur":"NOK", - "pt":"BBAN", - "acc":"17202612345", - "bc":"BIENNOK1", - "adr":"0313 OSLO" -} -</pre></p> - -</p>The interpretation of the fields can be found in the -<a href="http://usingqr.com/wp-content/uploads/2014/06/UsingQR_specification1.pdf">format -specification</a> (revision 2 from june 2014). The format seem to -have most of the information needed to handle accounting and payment -of invoices, at least the fields I have needed so far here in -Norway.</p> - -<p>Unfortunately, the site and document do not mention anything about -the patent, trademark and copyright status of the format and the -specification. Because of this, I asked the people behind it back in -November to clarify. Ann-Christine Savlid (ann-christine.savlid (at) -visma.com) replied that Visma had not applied for patent or trademark -protection for this format, and that there were no copyright based -usage limitations for the format. I urged her to make sure this was -explicitly written on the web pages and in the specification, but -unfortunately this has not happened yet. So I guess if there is -submarine patents, hidden trademarks or a will to sue for copyright -infringements, those starting to use the UsingQR format might be at -risk, but if this happen there is some legal defense in the fact that -the people behind the format claimed it was safe to do so. At least -with patents, there is always -<a href="http://www.paperspecs.com/paper-news/beware-the-qr-code-patent-trap/">a -chance of getting sued...</a></p> - -<p>I also asked if they planned to maintain the format in an -independent standard organization to give others more confidence that -they would participate in the standardization process on equal terms -with Visma, but they had no immediate plans for this. Their plan was -to work with banks to try to get more users of the format, and -evaluate the way forward if the format proved to be popular. I hope -they conclude that using an open standard organisation like -<a href="http://www.ietf.org/">IETF</a> is the correct place to -maintain such specification.</p> - -<p><strong>Update 2016-03-20</strong>: Via Twitter I became aware of -<a href="https://news.ycombinator.com/item?id=11319492">some comments -about this blog post</a> that had several useful links and references to -similar systems. In the Czech republic, the Czech Banking Association -standard #26, with short name SPAYD, uses QR codes with payment -information. More information is available from the Wikipedia page on -<a href="https://en.wikipedia.org/wiki/Short_Payment_Descriptor">Short -Payment Descriptor</a>. And in Germany, there is a system named -<a href="http://www.bezahlcode.de/">BezahlCode</a>, -(<a href="http://www.bezahlcode.de/wp-content/uploads/BezahlCode_TechDok.pdf">specification -v1.8 2013-12-05 available as PDF</a>), which uses QR codes with -URL-like formatting using "bank:" as the URI schema/protocol to -provide the payment information. There is also the -<a href="http://www.ferd-net.de/front_content.php?idcat=231">ZUGFeRD</a> -file format that perhaps could be transfered using QR codes, but I am -not sure if it is done already. Last, in Bolivia there are reports -that tax information since november 2014 need to be printed in QR -format on invoices. I have not been able to track down a -specification for this format, because of my limited language skill -sets.</p> + Coz can help you find bottlenecks in multi-threaded software - nice free software + http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html + http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html + Thu, 11 Aug 2016 12:00:00 +0200 + <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> - Making battery measurements a little easier in Debian - http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html - http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html - Tue, 15 Mar 2016 15:00:00 +0100 - <p>Back in September, I blogged about -<a href="http://people.skolelinux.org/pere/blog/The_life_and_death_of_a_laptop_battery.html">the -system I wrote to collect statistics about my laptop battery</a>, and -how it showed the decay and death of this battery (now replaced). I -created a simple deb package to handle the collection and graphing, -but did not want to upload it to Debian as there were already -<a href="https://tracker.debian.org/pkg/battery-stats">a battery-stats -package in Debian</a> that should do the same thing, and I did not see -a point of uploading a competing package when battery-stats could be -fixed instead. I reported a few bugs about its non-function, and -hoped someone would step in and fix it. But no-one did.</p> - -<p>I got tired of waiting a few days ago, and took matters in my own -hands. The end result is that I am now the new upstream developer of -battery stats (<a href="https://github.com/petterreinholdtsen/battery-stats">available from github</a>) and part of the team maintaining -battery-stats in Debian, and the package in Debian unstable is finally -able to collect battery status using the <tt>/sys/class/power_supply/</tt> -information provided by the Linux kernel. If you install the -battery-stats package from unstable now, you will be able to get a -graph of the current battery fill level, to get some idea about the -status of the battery. The source package build and work just fine in -Debian testing and stable (and probably oldstable too, but I have not -tested). The default graph you get for that system look like this:</p> - -<p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-03-15-battery-stats-graph-example.png" width="70%" align="center"></p> - -<p>My plans for the future is to merge my old scripts into the -battery-stats package, as my old scripts collected a lot more details -about the battery. The scripts are merged into the upstream -battery-stats git repository already, but I am not convinced they work -yet, as I changed a lot of paths along the way. Will have to test a -bit more before I make a new release.</p> - -<p>I will also consider changing the file format slightly, as I -suspect the way I combine several values into one field might make it -impossible to know the type of the value when using it for processing -and graphing.</p> - -<p>If you would like I would like to keep an close eye on your laptop -battery, check out the battery-stats package in -<a href="https://tracker.debian.org/pkg/battery-stats">Debian</a> and -on -<a href="https://github.com/petterreinholdtsen/battery-stats">github</a>. -I would love some help to improve the system further.</p> + Sales number for the Free Culture translation, first half of 2016 + http://people.skolelinux.org/pere/blog/Sales_number_for_the_Free_Culture_translation__first_half_of_2016.html + http://people.skolelinux.org/pere/blog/Sales_number_for_the_Free_Culture_translation__first_half_of_2016.html + Fri, 5 Aug 2016 22:45:00 +0200 + <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> - Creating, updating and checking debian/copyright semi-automatically - http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html - http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html - Fri, 19 Feb 2016 15:00:00 +0100 - <p>Making packages for Debian requires quite a lot of attention to -details. And one of the details is the content of the -debian/copyright file, which should list all relevant licenses used by -the code in the package in question, preferably in -<a href="https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/">machine -readable DEP5 format</a>.</p> - -<p>For large packages with lots of contributors it is hard to write -and update this file manually, and if you get some detail wrong, the -package is normally rejected by the ftpmasters. So getting it right -the first time around get the package into Debian faster, and save -both you and the ftpmasters some work.. Today, while trying to figure -out what was wrong with -<a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686447">the -zfsonlinux copyright file</a>, I decided to spend some time on -figuring out the options for doing this job automatically, or at least -semi-automatically.</p> - -<p>Lucikly, there are at least two tools available for generating the -file based on the code in the source package, -<tt><a href="https://tracker.debian.org/pkg/debmake">debmake</a></tt> -and <tt><a href="https://tracker.debian.org/pkg/cme">cme</a></tt>. I'm -not sure which one of them came first, but both seem to be able to -create a sensible draft file. As far as I can tell, none of them can -be trusted to get the result just right, so the content need to be -polished a bit before the file is OK to upload. I found the debmake -option in -<a href="http://goofying-with-debian.blogspot.com/2014/07/debmake-checking-source-against-dep-5.html">a -blog posts from 2014</a>. - -<p>To generate using debmake, use the -cc option: + Vitenskapen tar som vanlig feil igjen - relativt feil + http://people.skolelinux.org/pere/blog/Vitenskapen_tar_som_vanlig_feil_igjen___relativt_feil.html + http://people.skolelinux.org/pere/blog/Vitenskapen_tar_som_vanlig_feil_igjen___relativt_feil.html + Mon, 1 Aug 2016 16:00:00 +0200 + <p>For mange år siden leste jeg en klassisk tekst som gjorde såpass +inntrykk på meg at jeg husker den fortsatt, flere år senere, og bruker +argumentene fra den stadig vekk. Teksten var «The Relativity of +Wrong» som Isaac Asimov publiserte i Skeptical Inquirer i 1989. Den +gir litt perspektiv rundt formidlingen av vitenskapelige resultater. +Jeg har hatt lyst til å kunne dele den også med folk som ikke +behersker engelsk så godt, som barn og noen av mine eldre slektninger, +og har savnet å ha den tilgjengelig på norsk. For to uker siden tok +jeg meg sammen og kontaktet Asbjørn Dyrendal i foreningen Skepsis om +de var interessert i å publisere en norsk utgave på bloggen sin, og da +han var positiv tok jeg kontakt med Skeptical Inquirer og spurte om +det var greit for dem. I løpet av noen dager fikk vi tilbakemelding +fra Barry Karr hos The Skeptical Inquirer som hadde sjekket og fått OK +fra Robyn Asimov som representerte arvingene i Asmiov-familien og gikk +igang med oversettingen.</p> + +<p>Resultatet, <a href="http://www.skepsis.no/?p=1617">«Relativt +feil»</a>, ble publisert på skepsis-bloggen for noen minutter siden. +Jeg anbefaler deg på det varmeste å lese denne teksten og dele den med +dine venner.</p> + +<p>For å håndtere oversettelsen og sikre at original og oversettelse +var i sync brukte vi git, po4a, GNU make og Transifex. Det hele +fungerte utmerket og gjorde det enkelt å dele tekstene og jobbe sammen +om finpuss på formuleringene. Hadde hosted.weblate.org latt meg +opprette nye prosjekter selv i stedet for å måtte kontakte +administratoren der, så hadde jeg brukt weblate i stedet.</p> + + + + + Techno TV broadcasting live across Norway and the Internet (#debconf16, #nuug) on @frikanalen + http://people.skolelinux.org/pere/blog/Techno_TV_broadcasting_live_across_Norway_and_the_Internet___debconf16___nuug__on__frikanalen.html + http://people.skolelinux.org/pere/blog/Techno_TV_broadcasting_live_across_Norway_and_the_Internet___debconf16___nuug__on__frikanalen.html + Mon, 1 Aug 2016 10:30:00 +0200 + <p>Did you know there is a TV channel broadcasting talks from DebConf +16 across an entire country? Or that there is a TV channel +broadcasting talks by or about +<a href="http://beta.frikanalen.no/video/625529/">Linus Torvalds</a>, +<a href="http://beta.frikanalen.no/video/625599/">Tor</a>, +<a href="http://beta.frikanalen.no/video/624019/">OpenID</A>, +<a href="http://beta.frikanalen.no/video/625624/">Common Lisp</a>, +<a href="http://beta.frikanalen.no/video/625446/">Civic Tech</a>, +<a href="http://beta.frikanalen.no/video/625090/">EFF founder John Barlow</a>, +<a href="http://beta.frikanalen.no/video/625432/">how to make 3D +printer electronics</a> and many more fascinating topics? It works +using only free software (all of it +<a href="http://github.com/Frikanalen">available from Github</a>), and +is administrated using a web browser and a web API.</p> + +<p>The TV channel is the Norwegian open channel +<a href="http://www.frikanalen.no/">Frikanalen</a>, and I am involved +via <a href="https://www.nuug.no/">the NUUG member association</a> in +running and developing the software for the channel. The channel is +organised as a member organisation where its members can upload and +broadcast what they want (think of it as Youtube for national +broadcasting television). Individuals can broadcast too. The time +slots are handled on a first come, first serve basis. Because the +channel have almost no viewers and very few active members, we can +experiment with TV technology without too much flack when we make +mistakes. And thanks to the few active members, most of the slots on +the schedule are free. I see this as an opportunity to spread +knowledge about technology and free software, and have a script I run +regularly to fill up all the open slots the next few days with +technology related video. The end result is a channel I like to +describe as Techno TV - filled with interesting talks and +presentations.</p> + +<p>It is available on channel 50 on the Norwegian national digital TV +network (RiksTV). It is also available as a multicast stream on +Uninett. And finally, it is available as +<a href="http://beta.frikanalen.no/">a WebM unicast stream</a> from +Frikanalen and NUUG. Check it out. :)</p> + + + + + Unlocking HTC Desire HD on Linux using unruu and fastboot + http://people.skolelinux.org/pere/blog/Unlocking_HTC_Desire_HD_on_Linux_using_unruu_and_fastboot.html + http://people.skolelinux.org/pere/blog/Unlocking_HTC_Desire_HD_on_Linux_using_unruu_and_fastboot.html + Thu, 7 Jul 2016 11:30:00 +0200 + <p>Yesterday, I tried to unlock a HTC Desire HD phone, and it proved +to be a slight challenge. Here is the recipe if I ever need to do it +again. It all started by me wanting to try the recipe to set up +<a href="https://blog.torproject.org/blog/mission-impossible-hardening-android-security-and-privacy">an +hardened Android installation</a> from the Tor project blog on a +device I had access to. It is a old mobile phone with a broken +microphone The initial idea had been to just +<a href="http://wiki.cyanogenmod.org/w/Install_CM_for_ace">install +CyanogenMod on it</a>, but did not quite find time to start on it +until a few days ago.</p> + +<p>The unlock process is supposed to be simple: (1) Boot into the boot +loader (press volume down and power at the same time), (2) select +'fastboot' before (3) connecting the device via USB to a Linux +machine, (4) request the device identifier token by running 'fastboot +oem get_identifier_token', (5) request the device unlocking key using +the <a href="http://www.htcdev.com/bootloader/">HTC developer web +site</a> and unlock the phone using the key file emailed to you.</p> + +<p>Unfortunately, this only work fi you have hboot version 2.00.0029 +or newer, and the device I was working on had 2.00.0027. This +apparently can be easily fixed by downloading a Windows program and +running it on your Windows machine, if you accept the terms Microsoft +require you to accept to use Windows - which I do not. So I had to +come up with a different approach. I got a lot of help from AndyCap +on #nuug, and would not have been able to get this working without +him.</p> + +<p>First I needed to extract the hboot firmware from +<a href="http://www.htcdev.com/ruu/PD9810000_Ace_Sense30_S_hboot_2.00.0029.exe">the +windows binary for HTC Desire HD</a> downloaded as 'the RUU' from HTC. +For this there is is <a href="https://github.com/kmdm/unruu/">a github +project named unruu</a> using libunshield. The unshield tool did not +recognise the file format, but unruu worked and extracted rom.zip, +containing the new hboot firmware and a text file describing which +devices it would work for.</p> + +<p>Next, I needed to get the new firmware into the device. For this I +followed some instructions +<a href="http://www.htc1guru.com/2013/09/new-ruu-zips-posted/">available +from HTC1Guru.com</a>, and ran these commands as root on a Linux +machine with Debian testing:</p> <p><pre> -debmake -cc > debian/copyright +adb reboot-bootloader +fastboot oem rebootRUU +fastboot flash zip rom.zip +fastboot flash zip rom.zip +fastboot reboot </pre></p> -<p>Note there are some problems with python and non-ASCII names, so -this might not be the best option.</p> +<p>The flash command apparently need to be done twice to take effect, +as the first is just preparations and the second one do the flashing. +The adb command is just to get to the boot loader menu, so turning the +device on while holding volume down and the power button should work +too.</p> -<p>The cme option is based on a config parsing library, and I found -this approach in -<a href="https://ddumont.wordpress.com/2015/04/05/improving-creation-of-debian-copyright-file/">a -blog post from 2015</a>. To generate using cme, use the 'update -dpkg-copyright' option: +<p>With the new hboot version in place I could start following the +instructions on the HTC developer web site. I got the device token +like this:</p> <p><pre> -cme update dpkg-copyright -</pre></p> - -<p>This will create or update debian/copyright. The cme tool seem to -handle UTF-8 names better than debmake.</p> - -<p>When the copyright file is created, I would also like some help to -check if the file is correct. For this I found two good options, -<tt>debmake -k</tt> and <tt>license-reconcile</tt>. The former seem -to focus on license types and file matching, and is able to detect -ineffective blocks in the copyright file. The latter reports missing -copyright holders and years, but was confused by inconsistent license -names (like CDDL vs. CDDL-1.0). I suspect it is good to use both and -fix all issues reported by them before uploading. But I do not know -if the tools and the ftpmasters agree on what is important to fix in a -copyright file, so the package might still be rejected.</p> - -<p>The devscripts tool <tt>licensecheck</tt> deserve mentioning. It -will read through the source and try to find all copyright statements. -It is not comparing the result to the content of debian/copyright, but -can be useful when verifying the content of the copyright file.</p> +fastboot oem get_identifier_token 2>&1 | sed 's/(bootloader) //' +</pre> -<p>Are you aware of better tools in Debian to create and update -debian/copyright file. Please let me know, or blog about it on -planet.debian.org.</p> - -<p>As usual, if you use Bitcoin and want to show your support of my -activities, please send Bitcoin donations to my address -<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p> - -<p><strong>Update 2016-02-20</strong>: I got a tip from Mike Gabriel -on how to use licensecheck and cdbs to create a draft copyright file +<p>And once I got the unlock code via email, I could use it like +this:</p> <p><pre> -licensecheck --copyright -r `find * -type f` | \ - /usr/lib/cdbs/licensecheck2dep5 > debian/copyright.auto +fastboot flash unlocktoken Unlock_code.bin </pre></p> -<p>He mentioned that he normally check the generated file into the -version control system to make it easier to discover license and -copyright changes in the upstream source. I will try to do the same -with my packages in the future.</p> - -<p><strong>Update 2016-02-21</strong>: The cme author recommended -against using -quiet for new users, so I removed it from the proposed -command line.</p> - - - - - Using appstream in Debian to locate packages with firmware and mime type support - http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html - http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html - Thu, 4 Feb 2016 16:40:00 +0100 - <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> - - - - - Creepy, visualise geotagged social media information - nice free software - http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html - http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html - Sun, 24 Jan 2016 10:50:00 +0100 - <p>Most people seem not to realise that every time they walk around -with the computerised radio beacon known as a mobile phone their -position is tracked by the phone company and often stored for a long -time (like every time a SMS is received or sent). And if their -computerised radio beacon is capable of running programs (often called -mobile apps) downloaded from the Internet, these programs are often -also capable of tracking their location (if the app requested access -during installation). And when these programs send out information to -central collection points, the location is often included, unless -extra care is taken to not send the location. The provided -information is used by several entities, for good and bad (what is -good and bad, depend on your point of view). What is certain, is that -the private sphere and the right to free movement is challenged and -perhaps even eradicated for those announcing their location this way, -when they share their whereabouts with private and public -entities.</p> - -<p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-01-24-nice-creepy-desktop-window.png"></p> - -<p>The phone company logs provide a register of locations to check out -when one want to figure out what the tracked person was doing. It is -unavailable for most of us, but provided to selected government -officials, company staff, those illegally buying information from -unfaithful servants and crackers stealing the information. But the -public information can be collected and analysed, and a free software -tool to do so is called -<a href="http://www.geocreepy.com/">Creepy or Cree.py</a>. I -discovered it when I read -<a href="http://www.aftenposten.no/kultur/Slik-kan-du-bli-overvaket-pa-Twitter-og-Instagram-uten-a-ane-det-7787884.html">an -article about Creepy</a> in the Norwegian newspaper Aftenposten i -November 2014, and decided to check if it was available in Debian. -The python program was in Debian, but -<a href="https://tracker.debian.org/pkg/creepy">the version in -Debian</a> was completely broken and practically unmaintained. I -uploaded a new version which did not work quite right, but did not -have time to fix it then. This Christmas I decided to finally try to -get Creepy operational in Debian. Now a fixed version is available in -Debian unstable and testing, and almost all Debian specific patches -are now included -<a href="https://github.com/jkakavas/creepy">upstream</a>.</p> - -<p>The Creepy program visualises geolocation information fetched from -Twitter, Instagram, Flickr and Google+, and allow one to get a -complete picture of every social media message posted recently in a -given area, or track the movement of a given individual across all -these services. Earlier it was possible to use the search API of at -least some of these services without identifying oneself, but these -days it is impossible. This mean that to use Creepy, you need to -configure it to log in as yourself on these services, and provide -information to them about your search interests. This should be taken -into account when using Creepy, as it will also share information -about yourself with the services.</p> - -<p>The picture above show the twitter messages sent from (or at least -geotagged with a position from) the city centre of Oslo, the capital -of Norway. One useful way to use Creepy is to first look at -information tagged with an area of interest, and next look at all the -information provided by one or more individuals who was in the area. -I tested it by checking out which celebrity provide their location in -twitter messages by checkout out who sent twitter messages near a -Norwegian TV station, and next could track their position over time, -making it possible to locate their home and work place, among other -things. A similar technique have been -<a href="http://www.buzzfeed.com/maxseddon/does-this-soldiers-instagram-account-prove-russia-is-covertl">used -to locate Russian soldiers in Ukraine</a>, and it is both a powerful -tool to discover lying governments, and a useful tool to help people -understand the value of the private information they provide to the -public.</p> - -<p>The package is not trivial to backport to Debian Stable/Jessie, as -it depend on several python modules currently missing in Jessie (at -least python-instagram, python-flickrapi and -python-requests-toolbelt).</p> - -<p>(I have uploaded -<a href="https://screenshots.debian.net/package/creepy">the image to -screenshots.debian.net</a> and licensed it under the same terms as the -Creepy program in Debian.)</p> +<p>And with that final step in place, the phone was unlocked and I +could start stuffing the software of my own choosing into the device. +So far I only inserted a replacement recovery image to wipe the phone +before I start. We will see what happen next. Perhaps I should +install <a href="https://www.debian.org/">Debian</a> on it. :)</p> - Always download Debian packages using Tor - the simple recipe - http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html - http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html - Fri, 15 Jan 2016 00:30:00 +0100 - <p>During his DebConf15 keynote, Jacob Appelbaum -<a href="https://summit.debconf.org/debconf15/meeting/331/what-is-to-be-done/">observed -that those listening on the Internet lines would have good reason to -believe a computer have a given security hole</a> if it download a -security fix from a Debian mirror. This is a good reason to always -use encrypted connections to the Debian mirror, to make sure those -listening do not know which IP address to attack. In August, Richard -Hartmann observed that encryption was not enough, when it was possible -to interfere download size to security patches or the fact that -download took place shortly after a security fix was released, and -<a href="http://richardhartmann.de/blog/posts/2015/08/24-Tor-enabled_Debian_mirror/">proposed -to always use Tor to download packages from the Debian mirror</a>. He -was not the first to propose this, as the -<tt><a href="https://tracker.debian.org/pkg/apt-transport-tor">apt-transport-tor</a></tt> -package by Tim Retout already existed to make it easy to convince apt -to use <a href="https://www.torproject.org/">Tor</a>, but I was not -aware of that package when I read the blog post from Richard.</p> - -<p>Richard discussed the idea with Peter Palfrader, one of the Debian -sysadmins, and he set up a Tor hidden service on one of the central -Debian mirrors using the address vwakviie2ienjx6t.onion, thus making -it possible to download packages directly between two tor nodes, -making sure the network traffic always were encrypted.</p> - -<p>Here is a short recipe for enabling this on your machine, by -installing <tt>apt-transport-tor</tt> and replacing http and https -urls with tor+http and tor+https, and using the hidden service instead -of the official Debian mirror site. I recommend installing -<tt>etckeeper</tt> before you start to have a history of the changes -done in /etc/.</p> - -<blockquote><pre> -apt install apt-transport-tor -sed -i 's% http://ftp.debian.org/% tor+http://vwakviie2ienjx6t.onion/%' /etc/apt/sources.list -sed -i 's% http% tor+http%' /etc/apt/sources.list -</pre></blockquote> - -<p>If you have more sources listed in /etc/apt/sources.list.d/, run -the sed commands for these too. The sed command is assuming your are -using the ftp.debian.org Debian mirror. Adjust the command (or just -edit the file manually) to match your mirror.</p> - -<p>This work in Debian Jessie and later. Note that tools like -<tt>apt-file</tt> only recently started using the apt transport -system, and do not work with these tor+http URLs. For -<tt>apt-file</tt> you need the version currently in experimental, -which need a recent apt version currently only in unstable. So if you -need a working <tt>apt-file</tt>, this is not for you.</p> - -<p>Another advantage from this change is that your machine will start -using Tor regularly and at fairly random intervals (every time you -update the package lists or upgrade or install a new package), thus -masking other Tor traffic done from the same machine. Using Tor will -become normal for the machine in question.</p> - -<p>On <a href="https://wiki.debian.org/FreedomBox">Freedombox</a>, APT -is set up by default to use <tt>apt-transport-tor</tt> when Tor is -enabled. It would be great if it was the default on any Debian -system.</p> + How to use the Signal app if you only have a land line (ie no mobile phone) + http://people.skolelinux.org/pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html + http://people.skolelinux.org/pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html + Sun, 3 Jul 2016 14:20:00 +0200 + <p>For a while now, I have wanted to test +<a href="https://whispersystems.org/">the Signal app</a>, as it is +said to provide end to end encrypted communication and several of my +friends and family are already using it. As I by choice do not own a +mobile phone, this proved to be harder than expected. And I wanted to +have the source of the client and know that it was the code used on my +machine. But yesterday I managed to get it working. I used the +Github source, compared it to the source in +<a href="https://chrome.google.com/webstore/detail/signal-private-messenger/bikioccmkafdpakkkcpdbppfkghcmihk?hl=en-US">the +Signal Chrome app</a> available from the Chrome web store, applied +patches to use the production Signal servers, started the app and +asked for the hidden "register without a smart phone" form. Here is +the recipe how I did it.</p> + +<p>First, I fetched the Signal desktop source from Github, using + +<pre> +git clone https://github.com/WhisperSystems/Signal-Desktop.git +</pre> + +<p>Next, I patched the source to use the production servers, to be +able to talk to other Signal users:</p> + +<pre> +cat &lt;&lt;EOF | patch -p0 +diff -ur ./js/background.js userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/background.js +--- ./js/background.js 2016-06-29 13:43:15.630344628 +0200 ++++ userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/background.js 2016-06-29 14:06:29.530300934 +0200 +@@ -47,8 +47,8 @@ + }); + }); + +- var SERVER_URL = 'https://textsecure-service-staging.whispersystems.org'; +- var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments-staging.s3.amazonaws.com'; ++ var SERVER_URL = 'https://textsecure-service-ca.whispersystems.org:4433'; ++ var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments.s3.amazonaws.com'; + var messageReceiver; + window.getSocketStatus = function() { + if (messageReceiver) { +diff -ur ./js/expire.js userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/expire.js +--- ./js/expire.js 2016-06-29 13:43:15.630344628 +0200 ++++ userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/expire.js2016-06-29 14:06:29.530300934 +0200 +@@ -1,6 +1,6 @@ + ;(function() { + 'use strict'; +- var BUILD_EXPIRATION = 0; ++ var BUILD_EXPIRATION = 1474492690000; + + window.extension = window.extension || {}; + +EOF +</pre> + +<p>The first part is changing the servers, and the second is updating +an expiration timestamp. This timestamp need to be updated regularly. +It is set 90 days in the future by the build process (Gruntfile.js). +The value is seconds since 1970 times 1000, as far as I can tell.</p> + +<p>Based on a tip and good help from the #nuug IRC channel, I wrote a +script to launch Signal in Chromium.</p> + +<pre> +#!/bin/sh +cd $(dirname $0) +mkdir -p userdata +exec chromium \ + --proxy-server="socks://localhost:9050" \ + --user-data-dir=`pwd`/userdata --load-and-launch-app=`pwd` +</pre> + +<p> The script start the app and configure Chromium to use the Tor +SOCKS5 proxy to make sure those controlling the Signal servers (today +Amazon and Whisper Systems) as well as those listening on the lines +will have a harder time location my laptop based on the Signal +connections if they use source IP address.</p> + +<p>When the script starts, one need to follow the instructions under +"Standalone Registration" in the CONTRIBUTING.md file in the git +repository. I right clicked on the Signal window to get up the +Chromium debugging tool, visited the 'Console' tab and wrote +'extension.install("standalone")' on the console prompt to get the +registration form. Then I entered by land line phone number and +pressed 'Call'. 5 seconds later the phone rang and a robot voice +repeated the verification code three times. After entering the number +into the verification code field in the form, I could start using +Signal from my laptop. + +<p>As far as I can tell, The Signal app will leak who is talking to +whom and thus who know who to those controlling the central server, +but such leakage is hard to avoid with a centrally controlled server +setup. It is something to keep in mind when using Signal - the +content of your chats are harder to intercept, but the meta data +exposing your contact network is available to people you do not know. +So better than many options, but not great. And sadly the usage is +connected to my land line, thus allowing those controlling the server +to associate it to my home and person. I would prefer it if only +those I knew could tell who I was on Signal. There are options +avoiding such information leakage, but most of my friends are not +using them, so I am stuck with Signal for now.</p> - Nedlasting fra NRK, som Matroska med undertekster - http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html - http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html - Sat, 2 Jan 2016 13:50:00 +0100 - <p>Det kommer stadig nye løsninger for å ta lagre unna innslag fra NRK -for å se på det senere. For en stund tilbake kom jeg over et script -nrkopptak laget av Ingvar Hagelund. Han fjernet riktignok sitt script -etter forespørsel fra Erik Bolstad i NRK, men noen tok heldigvis og -gjorde det <a href="https://github.com/liangqi/nrkopptak">tilgjengelig -via github</a>.</p> - -<p>Scriptet kan lagre som MPEG4 eller Matroska, og bake inn -undertekster i fila på et vis som blant annet VLC forstår. For å -bruke scriptet, kopier ned git-arkivet og kjør</p> - -<p><pre> -nrkopptak/bin/nrk-opptak k <ahref="https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1">https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1</a> -</pre></p> - -<p>URL-eksemplet er dagens toppsak på tv.nrk.no. Argument 'k' ber -scriptet laste ned og lagre som Matroska. Det finnes en rekke andre -muligheter for valg av kvalitet og format.</p> - -<p>Jeg foretrekker dette scriptet fremfor youtube-dl, som -<a href="http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html"> -nevnt i 2014 støtter NRK</a> og en rekke andre videokilder, på grunn -av at nrkopptak samler undertekster og video i en enkelt fil, hvilket -gjør håndtering enklere på disk.</p> + The new "best" multimedia player in Debian? + http://people.skolelinux.org/pere/blog/The_new__best__multimedia_player_in_Debian_.html + http://people.skolelinux.org/pere/blog/The_new__best__multimedia_player_in_Debian_.html + Mon, 6 Jun 2016 12:50:00 +0200 + <p>When I set out a few weeks ago to figure out +<a href="http://people.skolelinux.org/pere/blog/What_is_the_best_multimedia_player_in_Debian_.html">which +multimedia player in Debian claimed to support most file formats / +MIME types</a>, I was a bit surprised how varied the sets of MIME types +the various players claimed support for. The range was from 55 to 130 +MIME types. I suspect most media formats are supported by all +players, but this is not really reflected in the MimeTypes values in +their desktop files. There are probably also some bogus MIME types +listed, but it is hard to identify which one this is.</p> + +<p>Anyway, in the mean time I got in touch with upstream for some of +the players suggesting to add more MIME types to their desktop files, +and decided to spend some time myself improving the situation for my +favorite media player VLC. The fixes for VLC entered Debian unstable +yesterday. The complete list of MIME types can be seen on the +<a href="https://wiki.debian.org/DebianMultimedia/PlayerSupport">Multimedia +player MIME type support status</a> Debian wiki page.</p> + +<p>The new "best" multimedia player in Debian? It is VLC, followed by +totem, parole, kplayer, gnome-mpv, mpv, smplayer, mplayer-gui and +kmplayer. I am sure some of the other players desktop files support +several of the formats currently listed as working only with vlc, +toten and parole.</p> + +<p>A sad observation is that only 14 MIME types are listed as +supported by all the tested multimedia players in Debian in their +desktop files: audio/mpeg, audio/vnd.rn-realaudio, audio/x-mpegurl, +audio/x-ms-wma, audio/x-scpls, audio/x-wav, video/mp4, video/mpeg, +video/quicktime, video/vnd.rn-realvideo, video/x-matroska, +video/x-ms-asf, video/x-ms-wmv and video/x-msvideo. Personally I find +it sad that video/ogg and video/webm is not supported by all the media +players in Debian. As far as I can tell, all of them can handle both +formats.</p> - OpenALPR, find car license plates in video streams - nice free software - http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html - http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html - Wed, 23 Dec 2015 01:00:00 +0100 - <p>When I was a kid, we used to collect "car numbers", as we used to -call the car license plate numbers in those days. I would write the -numbers down in my little book and compare notes with the other kids -to see how many region codes we had seen and if we had seen some -exotic or special region codes and numbers. It was a fun game to pass -time, as we kids have plenty of it.</p> - -<p>A few days I came across -<a href="https://github.com/openalpr/openalpr">the OpenALPR -project</a>, a free software project to automatically discover and -report license plates in images and video streams, and provide the -"car numbers" in a machine readable format. I've been looking for -such system for a while now, because I believe it is a bad idea that the -<a href="https://en.wikipedia.org/wiki/Automatic_number_plate_recognition">automatic -number plate recognition</a> tool only is available in the hands of -the powerful, and want it to be available also for the powerless to -even the score when it comes to surveillance and sousveillance. I -discovered the developer -<a href="https://bugs.debian.org/747509">wanted to get the tool into -Debian</a>, and as I too wanted it to be in Debian, I volunteered to -help him get it into shape to get the package uploaded into the Debian -archive.</p> - -<p>Today we finally managed to get the package into shape and uploaded -it into Debian, where it currently -<a href="https://ftp-master.debian.org//new/openalpr_2.2.1-1.html">waits -in the NEW queue</a> for review by the Debian ftpmasters.</p> - -<p>I guess you are wondering why on earth such tool would be useful -for the common folks, ie those not running a large government -surveillance system? Well, I plan to put it in a computer on my bike -and in my car, tracking the cars nearby and allowing me to be notified -when number plates on my watch list are discovered. Another use case -was suggested by a friend of mine, who wanted to set it up at his home -to open the car port automatically when it discovered the plate on his -car. When I mentioned it perhaps was a bit foolhardy to allow anyone -capable of placing his license plate number of a piece of cardboard to -open his car port, men replied that it was always unlocked anyway. I -guess for such use case it make sense. I am sure there are other use -cases too, for those with imagination and a vision.</p> - -<p>If you want to build your own version of the Debian package, check -out the upstream git source and symlink ./distros/debian to ./debian/ -before running "debuild" to build the source. Or wait a bit until the -package show up in unstable.</p> + A program should be able to open its own files on Linux + http://people.skolelinux.org/pere/blog/A_program_should_be_able_to_open_its_own_files_on_Linux.html + http://people.skolelinux.org/pere/blog/A_program_should_be_able_to_open_its_own_files_on_Linux.html + Sun, 5 Jun 2016 08:30:00 +0200 + <p>Many years ago, when koffice was fresh and with few users, I +decided to test its presentation tool when making the slides for a +talk I was giving for NUUG on Japhar, a free Java virtual machine. I +wrote the first draft of the slides, saved the result and went to bed +the day before I would give the talk. The next day I took a plane to +the location where the meeting should take place, and on the plane I +started up koffice again to polish the talk a bit, only to discover +that kpresenter refused to load its own data file. I cursed a bit and +started making the slides again from memory, to have something to +present when I arrived. I tested that the saved files could be +loaded, and the day seemed to be rescued. I continued to polish the +slides until I suddenly discovered that the saved file could no longer +be loaded into kpresenter. In the end I had to rewrite the slides +three times, condensing the content until the talk became shorter and +shorter. After the talk I was able to pinpoint the problem &ndash; +kpresenter wrote inline images in a way itself could not understand. +Eventually that bug was fixed and kpresenter ended up being a great +program to make slides. The point I'm trying to make is that we +expect a program to be able to load its own data files, and it is +embarrassing to its developers if it can't.</p> + +<p>Did you ever experience a program failing to load its own data +files from the desktop file browser? It is not a uncommon problem. A +while back I discovered that the screencast recorder +gtk-recordmydesktop would save an Ogg Theora video file the KDE file +browser would refuse to open. No video player claimed to understand +such file. I tracked down the cause being <tt>file --mime-type</tt> +returning the application/ogg MIME type, which no video player I had +installed listed as a MIME type they would understand. I asked for +<a href="http://bugs.gw.com/view.php?id=382">file to change its +behavour</a> and use the MIME type video/ogg instead. I also asked +several video players to add video/ogg to their desktop files, to give +the file browser an idea what to do about Ogg Theora files. After a +while, the desktop file browsers in Debian started to handle the +output from gtk-recordmydesktop properly.</p> + +<p>But history repeats itself. A few days ago I tested the music +system Rosegarden again, and I discovered that the KDE and xfce file +browsers did not know what to do with the Rosegarden project files +(*.rg). I've reported <a href="http://bugs.debian.org/825993">the +rosegarden problem to BTS</a> and a fix is commited to git and will be +included in the next upload. To increase the chance of me remembering +how to fix the problem next time some program fail to load its files +from the file browser, here are some notes on how to fix it.</p> + +<p>The file browsers in Debian in general operates on MIME types. +There are two sources for the MIME type of a given file. The output from +<tt>file --mime-type</tt> mentioned above, and the content of the +shared MIME type registry (under /usr/share/mime/). The file MIME +type is mapped to programs supporting the MIME type, and this +information is collected from +<a href="https://www.freedesktop.org/wiki/Specifications/desktop-entry-spec/">the +desktop files</a> available in /usr/share/applications/. If there is +one desktop file claiming support for the MIME type of the file, it is +activated when asking to open a given file. If there are more, one +can normally select which one to use by right-clicking on the file and +selecting the wanted one using 'Open with' or similar. In general +this work well. But it depend on each program picking a good MIME +type (preferably +<a href="http://www.iana.org/assignments/media-types/media-types.xhtml">a +MIME type registered with IANA</a>), file and/or the shared MIME +registry recognizing the file and the desktop file to list the MIME +type in its list of supported MIME types.</p> + +<p>The <tt>/usr/share/mime/packages/rosegarden.xml</tt> entry for +<a href="http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec">the +Shared MIME database</a> look like this:</p> + +<p><blockquote><pre> +&lt;?xml version="1.0" encoding="UTF-8"?&gt; +&lt;mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"&gt; + &lt;mime-type type="audio/x-rosegarden"&gt; + &lt;sub-class-of type="application/x-gzip"/&gt; + &lt;comment&gt;Rosegarden project file&lt;/comment&gt; + &lt;glob pattern="*.rg"/&gt; + &lt;/mime-type&gt; +&lt;/mime-info&gt; +</pre></blockquote></p> + +<p>This states that audio/x-rosegarden is a kind of application/x-gzip +(it is a gzipped XML file). Note, it is much better to use an +official MIME type registered with IANA than it is to make up ones own +unofficial ones like the x-rosegarden type used by rosegarden.</p> + +<p>The desktop file of the rosegarden program failed to list +audio/x-rosegarden in its list of supported MIME types, causing the +file browsers to have no idea what to do with *.rg files:</p> + +<p><blockquote><pre> +% grep Mime /usr/share/applications/rosegarden.desktop +MimeType=audio/x-rosegarden-composition;audio/x-rosegarden-device;audio/x-rosegarden-project;audio/x-rosegarden-template;audio/midi; +X-KDE-NativeMimeType=audio/x-rosegarden-composition +% +</pre></blockquote></p> + +<p>The fix was to add "audio/x-rosegarden;" at the end of the +MimeType= line.</p> + +<p>If you run into a file which fail to open the correct program when +selected from the file browser, please check out the output from +<tt>file --mime-type</tt> for the file, ensure the file ending and +MIME type is registered somewhere under /usr/share/mime/ and check +that some desktop file under /usr/share/applications/ is claiming +support for this MIME type. If not, please report a bug to have it +fixed. :)</p> - Using appstream with isenkram to install hardware related packages in Debian - http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html - http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html - Sun, 20 Dec 2015 12:20:00 +0100 - <p>Around three years ago, I created -<a href="http://packages.qa.debian.org/isenkram">the isenkram -system</a> to get a more practical solution in Debian for handing -hardware related packages. A GUI system in the isenkram package will -present a pop-up dialog when some hardware dongle supported by -relevant packages in Debian is inserted into the machine. The same -lookup mechanism to detect packages is available as command line -tools in the isenkram-cli package. In addition to mapping hardware, -it will also map kernel firmware files to packages and make it easy to -install needed firmware packages automatically. The key for this -system to work is a good way to map hardware to packages, in other -words, allow packages to announce what hardware they will work -with.</p> - -<p>I started by providing data files in the isenkram source, and -adding code to download the latest version of these data files at run -time, to ensure every user had the most up to date mapping available. -I also added support for storing the mapping in the Packages file in -the apt repositories, but did not push this approach because while I -was trying to figure out how to best store hardware/package mappings, -<a href="http://www.freedesktop.org/software/appstream/docs/">the -appstream system</a> was announced. I got in touch and suggested to -add the hardware mapping into that data set to be able to use -appstream as a data source, and this was accepted at least for the -Debian version of appstream.</p> - -<p>A few days ago using appstream in Debian for this became possible, -and today I uploaded a new version 0.20 of isenkram adding support for -appstream as a data source for mapping hardware to packages. The only -package so far using appstream to announce its hardware support is my -pymissile package. I got help from Matthias Klumpp with figuring out -how do add the required -<a href="https://appstream.debian.org/html/sid/main/metainfo/pymissile.html">metadata -in pymissile</a>. I added a file debian/pymissile.metainfo.xml with -this content:</p> - -<blockquote><pre> -&lt;?xml version="1.0" encoding="UTF-8"?&gt; -&lt;component&gt; - &lt;id&gt;pymissile&lt;/id&gt; - &lt;metadata_license&gt;MIT&lt;/metadata_license&gt; - &lt;name&gt;pymissile&lt;/name&gt; - &lt;summary&gt;Control original Striker USB Missile Launcher&lt;/summary&gt; - &lt;description&gt; - &lt;p&gt; - Pymissile provides a curses interface to control an original - Marks and Spencer / Striker USB Missile Launcher, as well as a - motion control script to allow a webcamera to control the - launcher. - &lt;/p&gt; - &lt;/description&gt; - &lt;provides&gt; - &lt;modalias&gt;usb:v1130p0202d*&lt;/modalias&gt; - &lt;/provides&gt; -&lt;/component&gt; -</pre></blockquote> - -<p>The key for isenkram is the component/provides/modalias value, -which is a glob style match rule for hardware specific strings -(modalias strings) provided by the Linux kernel. In this case, it -will map to all USB devices with vendor code 1130 and product code -0202.</p> - -<p>Note, it is important that the license of all the metadata files -are compatible to have permissions to aggregate them into archive wide -appstream files. Matthias suggested to use MIT or BSD licenses for -these files. A challenge is figuring out a good id for the data, as -it is supposed to be globally unique and shared across distributions -(in other words, best to coordinate with upstream what to use). But -it can be changed later or, so we went with the package name as -upstream for this project is dormant.</p> - -<p>To get the metadata file installed in the correct location for the -mirror update scripts to pick it up and include its content the -appstream data source, the file must be installed in the binary -package under /usr/share/appdata/. I did this by adding the following -line to debian/pymissile.install:</p> - -<blockquote><pre> -debian/pymissile.metainfo.xml usr/share/appdata -</pre></blockquote> - -<p>With that in place, the command line tool isenkram-lookup will list -all packages useful on the current computer automatically, and the GUI -pop-up handler will propose to install the package not already -installed if a hardware dongle is inserted into the machine in -question.</p> - -<p>Details of the modalias field in appstream is available from the -<a href="https://wiki.debian.org/DEP-11">DEP-11</a> proposal.</p> - -<p>To locate the modalias values of all hardware present in a machine, -try running this command on the command line:</p> - -<blockquote><pre> -cat $(find /sys/devices/|grep modalias) -</pre></blockquote> - -<p>To learn more about the isenkram system, please check out -<a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">my -blog posts tagged isenkram</a>.</p> + Tor - from its creators mouth 11 years ago + http://people.skolelinux.org/pere/blog/Tor___from_its_creators_mouth_11_years_ago.html + http://people.skolelinux.org/pere/blog/Tor___from_its_creators_mouth_11_years_ago.html + Sat, 28 May 2016 14:20:00 +0200 + <p>A little more than 11 years ago, one of the creators of Tor, and +the current President of <a href="https://www.torproject.org/">the Tor +project</a>, Roger Dingledine, gave a talk for the members of the +<a href="http://www.nuug.no/">Norwegian Unix User group</a> (NUUG). A +video of the talk was recorded, and today, thanks to the great help +from David Noble, I finally was able to publish the video of the talk +on Frikanalen, the Norwegian open channel TV station where NUUG +currently publishes its talks. You can +<a href="http://frikanalen.no/se">watch the live stream using a web +browser</a> with WebM support, or check out the recording on the video +on demand page for the talk +"<a href="http://beta.frikanalen.no/video/625599">Tor: Anonymous +communication for the US Department of Defence...and you.</a>".</p> + +<p>Here is the video included for those of you using browsers with +HTML video and Ogg Theora support:</p> + +<p><video width="70%" poster="http://simula.gunkies.org/media/625599/large_thumb/20050421-tor-frikanalen.jpg" controls> + <source src="http://simula.gunkies.org/media/625599/theora/20050421-tor-frikanalen.ogv" type="video/ogg"/> +</video></p> + +<p>I guess the gist of the talk can be summarised quite simply: If you +want to help the military in USA (and everyone else), use Tor. :)</p>