<link>http://people.skolelinux.org/pere/blog/</link>
<atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
+ <item>
+ <title>UsingQR - "Electronic" paper invoices using JSON and QR codes</title>
+ <link>http://people.skolelinux.org/pere/blog/UsingQR____Electronic__paper_invoices_using_JSON_and_QR_codes.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/UsingQR____Electronic__paper_invoices_using_JSON_and_QR_codes.html</guid>
+ <pubDate>Sat, 19 Mar 2016 09:40:00 +0100</pubDate>
+ <description><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>
+</description>
+ </item>
+
+ <item>
+ <title>Making battery measurements a little easier in Debian</title>
+ <link>http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html</guid>
+ <pubDate>Tue, 15 Mar 2016 15:00:00 +0100</pubDate>
+ <description><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>
+</description>
+ </item>
+
<item>
<title>Creating, updating and checking debian/copyright semi-automatically</title>
<link>http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html</link>
dpkg-copyright' option:
<p><pre>
-cme update dpkg-copyright -quiet
+cme update dpkg-copyright
</pre></p>
<p>This will create or update debian/copyright. The cme tool seem to
<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><pre>
+licensecheck --copyright -r `find * -type f` | \
+ /usr/lib/cdbs/licensecheck2dep5 > debian/copyright.auto
+</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>
</description>
</item>
<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://ftp.debian.org/% tor+http://vwakviie2ienjx6t.onion/%' /etc/apt/sources.list
sed -i 's% http% tor+http%' /etc/apt/sources.list
</pre></blockquote>
</description>
</item>
- <item>
- <title>The GNU General Public License is not magic pixie dust</title>
- <link>http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html</guid>
- <pubDate>Mon, 30 Nov 2015 09:55:00 +0100</pubDate>
- <description><p>A blog post from my fellow Debian developer Paul Wise titled
-"<a href="http://bonedaddy.net/pabs3/log/2015/11/27/sfc-supporter/">The
-GPL is not magic pixie dust</a>" explain the importance of making sure
-the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> is enforced.
-I quote the blog post from Paul in full here with his permission:<p>
-
-<blockquote>
-
-<p><a href="https://sfconservancy.org/supporter/"><img src="https://sfconservancy.org/img/supporter-badge.png" width="194" height="90" alt="Become a Software Freedom Conservancy Supporter!" align="right" border="0" /></a></p>
-
-<blockquote>
-The GPL is not magic pixie dust. It does not work by itself.<br/>
-
-The first step is to choose a
-<a href="https://copyleft.org/">copyleft</a> license for your
-code.<br/>
-
-The next step is, when someone fails to follow that copyleft license,
-<b>it must be enforced</b><br/>
-
-and its a simple fact of our modern society that such type of
-work<br/>
-
-is incredibly expensive to do and incredibly difficult to do.
-</blockquote>
-
-<p><small>-- <a href="http://ebb.org/bkuhn/">Bradley Kuhn</a>, in
-<a href="http://faif.us/" title="Free as in Freedom">FaiF</a>
-<a href="http://faif.us/cast/2015/nov/24/0x57/">episode
-0x57</a></small></p>
-
-<p>As the Debian Website
-<a href="https://bugs.debian.org/794116">used</a>
-<a href="https://anonscm.debian.org/viewvc/webwml/webwml/english/intro/free.wml?r1=1.24&amp;r2=1.25">to</a>
-imply, public domain and permissively licensed software can lead to
-the production of more proprietary software as people discover useful
-software, extend it and or incorporate it into their hardware or
-software products. Copyleft licenses such as the GNU GPL were created
-to close off this avenue to the production of proprietary software but
-such licenses are not enough. With the ongoing adoption of Free
-Software by individuals and groups, inevitably the community's
-expectations of license compliance are violated, usually out of
-ignorance of the way Free Software works, but not always. As Karen
-and Bradley explained in <a href="http://faif.us/" title="Free as in
-Freedom">FaiF</a>
-<a href="http://faif.us/cast/2015/nov/24/0x57/">episode 0x57</a>,
-copyleft is nothing if no-one is willing and able to stand up in court
-to protect it. The reality of today's world is that legal
-representation is expensive, difficult and time consuming. With
-<a href="http://gpl-violations.org/">gpl-violations.org</a> in hiatus
-<a href="http://gpl-violations.org/news/20151027-homepage-recovers/">until</a>
-some time in 2016, the <a href="https://sfconservancy.org/">Software
-Freedom Conservancy</a> (a tax-exempt charity) is the major defender
-of the Linux project, Debian and other groups against GPL violations.
-In March the SFC supported a
-<a href="https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit/">lawsuit
-by Christoph Hellwig</a> against VMware for refusing to
-<a href="https://sfconservancy.org/linux-compliance/vmware-lawsuit-faq.html">comply
-with the GPL</a> in relation to their use of parts of the Linux
-kernel. Since then two of their sponsors pulled corporate funding and
-conferences
-<a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">blocked
-or cancelled their talks</a>. As a result they have decided to rely
-less on corporate funding and more on the broad community of
-individuals who support Free Software and copyleft. So the SFC has
-<a href="https://sfconservancy.org/news/2015/nov/23/2015fundraiser/">launched</a>
-a <a href="https://sfconservancy.org/supporter/">campaign</a> to create
-a community of folks who stand up for copyleft and the GPL by
-supporting their work on promoting and supporting copyleft and Free
-Software.</p>
-
-<p>If you support Free Software,
-<a href="https://sfconservancy.org/blog/2015/nov/26/like-what-I-do/">like</a>
-what the SFC do, agree with their
-<a href="https://sfconservancy.org/linux-compliance/principles.html">compliance
-principles</a>, are happy about their
-<a href="https://sfconservancy.org/supporter/">successes</a> in 2015,
-work on a project that is an SFC
-<a href="https://sfconservancy.org/members/current/">member</a> and or
-just want to stand up for copyleft, please join
-<a href="https://identi.ca/cwebber/image/JQGPA4qbTyyp3-MY8QpvuA">Christopher
-Allan Webber</a>,
-<a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">Carol
-Smith</a>,
-<a href="http://www.jonobacon.org/2015/11/25/supporting-software-freedom-conservancy/">Jono
-Bacon</a>, myself and
-<a href="https://sfconservancy.org/sponsors/#supporters">others</a> in
-becoming a
-<a href="https://sfconservancy.org/supporter/">supporter</a>. For the
-next week your donation will be
-<a href="https://sfconservancy.org/news/2015/nov/27/black-friday/">matched</a>
-by an anonymous donor. Please also consider asking your employer to
-match your donation or become a sponsor of SFC. Don't forget to
-spread the word about your support for SFC via email, your blog and or
-social media accounts.</p>
-
-</blockquote>
-
-<p>I agree with Paul on this topic and just signed up as a Supporter
-of Software Freedom Conservancy myself. Perhaps you should be a
-supporter too?</p>
-</description>
- </item>
-
- <item>
- <title>PGP key transition statement for key EE4E02F9</title>
- <link>http://people.skolelinux.org/pere/blog/PGP_key_transition_statement_for_key_EE4E02F9.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/PGP_key_transition_statement_for_key_EE4E02F9.html</guid>
- <pubDate>Tue, 17 Nov 2015 10:50:00 +0100</pubDate>
- <description><p>I've needed a new OpenPGP key for a while, but have not had time to
-set it up properly. I wanted to generate it offline and have it
-available on <a href="http://shop.kernelconcepts.de/#openpgp">a OpenPGP
-smart card</a> for daily use, and learning how to do it and finding
-time to sit down with an offline machine almost took forever. But
-finally I've been able to complete the process, and have now moved
-from my old GPG key to a new GPG key. See
-<a href="http://people.skolelinux.org/pere/blog/images/2015-11-17-new-gpg-key-transition.txt">the
-full transition statement, signed with both my old and new key</a> for
-the details. This is my new key:</p>
-
-<pre>
-pub 3936R/<a href="http://pgp.cs.uu.nl/stats/111D6B29EE4E02F9.html">111D6B29EE4E02F9</a> 2015-11-03 [expires: 2019-11-14]
- Key fingerprint = 3AC7 B2E3 ACA5 DF87 78F1 D827 111D 6B29 EE4E 02F9
-uid Petter Reinholdtsen &lt;pere@hungry.com&gt;
-uid Petter Reinholdtsen &lt;pere@debian.org&gt;
-sub 4096R/87BAFB0E 2015-11-03 [expires: 2019-11-02]
-sub 4096R/F91E6DE9 2015-11-03 [expires: 2019-11-02]
-sub 4096R/A0439BAB 2015-11-03 [expires: 2019-11-02]
-</pre>
-
-<p>The key can be downloaded from the OpenPGP key servers, signed by
-my old key.</p>
-
-<p>If you signed my old key
-(<a href="http://pgp.cs.uu.nl/stats/DB4CCC4B2A30D729.html">DB4CCC4B2A30D729</a>),
-I'd very much appreciate a signature on my new key, details and
-instructions in the transition statement. I m happy to reciprocate if
-you have a similarly signed transition statement to present.</p>
-</description>
- </item>
-
</channel>
</rss>