<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Debian</title>
	<link>http://planet.debian.org/</link>
	<language>en</language>
	<description>Planet Debian - http://planet.debian.org/</description>


<item>
	<title>Iustin Pop: More virtual cycling</title>
	<guid>http://k1024.org/~iustin/blog/entry/2016-07-26-more-virtual-cycling/</guid>
	<link>http://k1024.org/~iustin/blog/entry/2016-07-26-more-virtual-cycling/</link>
     <description>  &lt;p&gt;Last weekend I had to stay at home, so I did some more virtual
training (slowly, in order to not overwork myself &lt;em&gt;again&lt;/em&gt;). This time,
after all the Zwift, I wanted to test something else:
&lt;a href=&quot;https://www.tacx.com/products/software/tacx-trainer-software-4-advanced&quot;&gt;Tacx Trainer Software&lt;/a&gt;. Still
virtual, but of a different kind.&lt;/p&gt;

&lt;p&gt;The difference between Zwift, which does video-game-like worlds, is
that TTS, in the configuration that I used, uses a real-life video
which scrolls faster or slower, based on your speed. This speed
adjustment is so-so, but the appeal was that I could ride roads that I
actually know and drove before. Modern technology++!&lt;/p&gt;

&lt;p&gt;And this was the interesting part: I chose for the first ride the road
up to &lt;a href=&quot;https://en.wikipedia.org/wiki/Cap%20de%20Formentor&quot;&gt;Cap de Formentor&lt;/a&gt;, which is one of my favourite
places in Mallorca. The road itself is also nice, through some very
pleasant woods and with some very good viewpoints, ending at the
lighthouse, from where you have wonderful views of the sea.&lt;/p&gt;

&lt;p&gt;Now, I&#39;ve driven two times on this road, so I kind of remembered it,
but driving a road and cycling the same road, especially when it goes
up and down and up, are very different things. I remembered well the
first uphill (after the flat area around Port de Pollença), but after
that my recollection of how much uphill the road goes was slightly
off, and I actually didn&#39;t remember that there&#39;s that much downhill,
which was a very pleasant surprise. I did remember the view points
(since I took quite a few pictures along the road), but otherwise I
was completely off about the height profile of the road. Interesting
how the brain works ☺&lt;/p&gt;

&lt;p&gt;Overall, this is considered a &quot;short&quot; ride in Tacx&#39;s film library; it
was 21Km, 835m uphill, and I did it in 1h11m, which for me, after two
weeks of no sports, was good enough. Also Tacx has bike selection, and
I did this on a simulated mountain bike, with the result that downhill
speeds were quite slow (max. 57Km/h, at a -12% grade), so not
complaining at all.&lt;/p&gt;

&lt;p&gt;Next I&#39;ll have to see how the road to &lt;a href=&quot;https://en.wikipedia.org/wiki/Sa%20Calobra&quot;&gt;Sa Calobra&lt;/a&gt; is in
the virtual world. And next time I go to Mallorca (when/if), I&#39;ll have
to actually ride these in the real world.&lt;/p&gt;

&lt;p&gt;In the meantime, some pictures from an actual trip there. I definitely
recommend visiting this, preferably early in the morning (it&#39;s very
crowded):&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://photos.k1024.org/Outdoors/2013-07-02-Cap-de-Formentor/i-775XHz6/A&quot;&gt;&lt;img alt=&quot;Infinite blue&quot; src=&quot;https://photos.smugmug.com/Outdoors/2013-07-02-Cap-de-Formentor/i-775XHz6/0/L/dsc_8392-L.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://photos.k1024.org/Outdoors/2013-07-02-Cap-de-Formentor/i-5SXP8bP/A&quot;&gt;&lt;img alt=&quot;Sea, boats and mountains&quot; src=&quot;https://photos.smugmug.com/Outdoors/2013-07-02-Cap-de-Formentor/i-5SXP8bP/0/L/dsc_8410-L.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://photos.k1024.org/Outdoors/2013-07-02-Cap-de-Formentor/i-hG67hf2/A&quot;&gt;&lt;img alt=&quot;Mountains, vegetation and a bit of sea&quot; src=&quot;https://photos.smugmug.com/Outdoors/2013-07-02-Cap-de-Formentor/i-hG67hf2/0/L/dsc_8446-L.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://photos.k1024.org/Outdoors/2013-07-02-Cap-de-Formentor/i-PKrSphv/A&quot;&gt;&lt;img alt=&quot;View towards El Colomer&quot; src=&quot;https://photos.smugmug.com/Outdoors/2013-07-02-Cap-de-Formentor/i-PKrSphv/0/L/dsc_8485-L.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few more pictures and larger sizes
&lt;a href=&quot;http://photos.k1024.org/Outdoors/2013-07-02-Cap-de-Formentor/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; </description> 
	<pubDate>Tue, 26 Jul 2016 22:24:04 +0000</pubDate>

</item> 
<item>
	<title>Rhonda D&#39;Vine: Debian LGBTIQA+</title>
	<guid>http://rhonda.deb.at/blog/2016/07/26#debian-lgbtiqa</guid>
	<link>http://rhonda.deb.at/blog/2016/07/26#debian-lgbtiqa</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/rhonda.png&quot; width=&quot;89&quot; height=&quot;84&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I have a long overdue blog entry about what happened in recent times.  People that follow &lt;a href=&quot;https://twitter.com/lalobee&quot;&gt;my tweets&lt;/a&gt; did catch some things.  Most noteworthy there was the &lt;a href=&quot;http://www.transtagung-muenchen.com/&quot;&gt;Trans*Inter*Congress&lt;/a&gt; in Munich at the start of May.  It was an absolute blast.  I met so many nice and great people, talked and experienced so many great things there that I&#39;m still having a great motivational push from it every time I think back.  It was also the time when I realized that I in fact &lt;strong&gt;do&lt;/strong&gt; have body dysphoria even though I thought I&#39;m fine with my body in general:  Being tall is a huge issue for me.  Realizing that I have a huge issue (yes, pun intended) with my length was quite relieving, even though it doesn&#39;t make it go away.  It&#39;s something that makes passing and transitioning for me harder.  I&#39;m well aware that there are tall women, and that there are dedicated shops for lengthy women, but that&#39;s not the only thing that I have trouble with.  What bothers me most is what people read into tall people: that they are always someone they can lean on for comfort, that tall people are always considered to be self confident and standing up for themselves (another pun, I know ...  my bad).&lt;/p&gt;

&lt;p&gt;And while I&#39;m fine with people coming to me for leaning on to, I rarely get the chance to do so myself.  And people don&#39;t even consider it.  When I was there in Munich, talking with another great (... pun?) trans woman who was as tall as me I finally had the possibility to just rest my head on her shoulder and finally feel the comfort I need just as much as everyone else out there, too.  Probably that&#39;s also the reason why I&#39;m so touchy and do go &lt;a href=&quot;http://rhonda.deb.at/blog/personal/rfhg.html&quot;&gt;Free Hugging&lt;/a&gt; as often as possible.  But being tall also means that you are usually only the big spoon when cuddling up.  Having a small mental breakdown because of realizing that didn&#39;t change the feeling directly but definitely helped with looking for what I could change to fix that for myself.&lt;/p&gt;

&lt;p&gt;Then, at the end of may, the movie &lt;a href=&quot;https://vimeo.com/168649086&quot;&gt;FtWTF - female to what the fuck&lt;/a&gt; came to cinema.  It&#39;s a documentary about six people who got assigned female at birth.  And it&#39;s absolutely charming, and has great food for thoughts in it.  If you ever get the chance to watch it you definitely should.&lt;/p&gt;

&lt;p&gt;And then came &lt;a href=&quot;https://debconf16.debconf.org/&quot;&gt;debconf16 in Capetown&lt;/a&gt;.  The flight to there was canceled and we had to get rebooked.  The first offer was to go through Dubai, and gladly a colleague did point out to the person behind the desk that that wouldn&#39;t be safe for myself and thus out of scope.  In the end we managed to get to Capetown quite nice, and even though it was winter when the sun was shining it was quite nice.  Besides the cold nights that is.  Or being stuck on the way up to table mountain because a colleague had cramps in his lags and we had to call mountain rescue.  Gladly the night was clear, and when the mountain rescue finally got us to top and it was night already we had one of the nicest views from up there most people probably never will experience.&lt;/p&gt;

&lt;p&gt;And then ... I got invited to a trans meetup in Capetown.  I was both excited and nervous about it, what to expect there.  But it was simply great.  The group there was simply outstandingly great.  The host gave update information on progress on clinical support within south Africa, from what I took with me is that there is only one clinic there for &lt;acronym title=&quot;Sex Reassignment Surgery&quot;&gt;SRS&lt;/acronym&gt; which manages only two people a year which is simply ... yuck.  Guess you can guess how many years (yes, decades) the waiting line is ...  I was blown away though by the diversity of the group, on so many levels, most notably on the age spectrum.  It was a charm to meet you all there!  If you ever stop by in Capetown and you are part of the &lt;acronym title=&quot;Lesbian, Gay, Bisexual, Transgender, Intersex, Queer&quot;&gt;LGBTIQ&lt;/acronym&gt; community, make sure you get in contact with the &lt;a href=&quot;http://triangle.org.za/&quot;&gt;Triangle Project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But, about the real reason to write this entry:  I was approached at Debconf by at least two people who asked me what I thought about creating an LGBTIQA+ group within Debian, and if I&#39;d like to push for that.  Actually I think it would be a good idea to have some sort of exchange between people on the queer spectrum (and I hope I don&#39;t offend anyone with just saying queer for LGBTIQA+ people).  Given that I&#39;m quite outspoken people approach me every now and then so I&#39;m aware that there is a fair amount of people that would fall into that category.  On the other hand some of them wouldn&#39;t want to have it publicly known because it shouldn&#39;t matter and isn&#39;t really the business of others.&lt;/p&gt;

&lt;p&gt;So I&#39;m uncertain.  If we follow that path I guess something that is closed or at least offers the possibility to have a closed communication would be needed to not out someone by just joining in the discussion.  It&#39;s was easier with &lt;a href=&quot;https://www.debian.org/women/&quot;&gt;Debian Women&lt;/a&gt; where it was (somewhat) clear that male participants are allies supporting the cause and not considered being women themselves, but often enough (mostly cis hetero male) people are afraid to join a dedicated LGBTIQA+ group because they have the fear of having their identity judged.  These things should be considered before creating such a place so that people can feel comfortable when joining and know what to expect beforehand.&lt;/p&gt;

&lt;p&gt;For the time being I created #debian-diversity on irc.debian.org to discuss how to move forward.  Please bear in mind that even the channel name is up for discussion.  Acronyms might not be the way to go in my opinion, just read back up the discussion that lead to the &lt;a href=&quot;https://www.debian.org/intro/diversity&quot;&gt;Diversity Statement of Debian&lt;/a&gt; where the original approach was to start listing groups for inclusiveness but it was quickly clear that it can get outdated too easily.&lt;/p&gt;

&lt;p&gt;I am willing to be part of that effort, but right now I have some personal things to deal which eat up a fair amount of my time.  My kid starts school in September (yes, it&#39;s that long already, time flies ...).  And it looks like I&#39;ll have to move a second time in the near future:  I&#39;ll have to leave my current flat by the end of the year and the &lt;a href=&quot;https://queerbaudotat.wordpress.com/&quot;&gt;Que[e]rbau&lt;/a&gt; I&#39;m moving into won&#39;t be ready by that time to host me yet ...  F*ck. :(&lt;/p&gt;

&lt;p align=&quot;right&quot;&gt;
  &lt;i&gt;&lt;a href=&quot;http://rhonda.deb.at/blog/personal&quot;&gt;/personal&lt;/a&gt; | 
    &lt;a href=&quot;http://rhonda.deb.at/blog/personal/debian-lgbtiqa.html&quot;&gt;permanent link&lt;/a&gt; |
    &lt;a href=&quot;http://rhonda.deb.at/blog/personal/debian-lgbtiqa.html&quot;&gt;Comments: 1&lt;/a&gt; |
    &lt;a href=&quot;http://flattr.com/thing/46312/Rhondas-Blog&quot; target=&quot;_blank&quot;&gt;Flattr this&lt;/a&gt;&lt;/i&gt;
&lt;/p&gt; </description> 
	<pubDate>Tue, 26 Jul 2016 11:49:00 +0000</pubDate>

</item> 
<item>
	<title>Norbert Preining: TUG 2016 – Day 1 – Routers and Reading</title>
	<guid>https://www.preining.info/blog/?p=5768</guid>
	<link>https://www.preining.info/blog/2016/07/tug-2016-day-1-routers-and-reading/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/preining.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;The first day of the real conference started with an excellent overview of what one can do with TeX, spanning from traditional scientific journal styles to generating router configuration for cruising ships.&lt;br /&gt;
&lt;a href=&quot;http://www.preining.info/blog/wp-content/uploads/2016/07/tug2016-color.jpg&quot;&gt;&lt;img alt=&quot;tug2016-color&quot; class=&quot;aligncenter size-large wp-image-5769&quot; height=&quot;651&quot; src=&quot;http://www.preining.info/blog/wp-content/uploads/2016/07/tug2016-color-1024x1010.jpg&quot; width=&quot;660&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All this was crowned with an invited talk my Kevin Larson from Microsoft’s typography department on how to support reading comprehension. &lt;span id=&quot;more-5768&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;Pavneet Aurora – Opening: Passport to the TeX canvas&lt;/h4&gt;
&lt;p&gt;Pavneet, our never-sleeping host and master of organization, opened the conference with a very philosophical introduction, touching upon a wide range of topics ranging from Microsoft, Twitter to the beauty of books, pages, and type. I think at some point he even mentioned TeX, but I can’t remember for sure. His words put up a very nice and all-inclusive stage, a community that is open to all kind of influences with any disregard or prejudice. Let us hope that is reflects reality. Thanks Pavneet.&lt;/p&gt;
&lt;h4&gt;Geoffrey Poore – Advances in PythonTeX&lt;/h4&gt;
&lt;p&gt;Our first regular talk was by Geoffrey reporting on recent advances in PythonTeX, a package that allows including python code in your TeX document. Starting with an introduction to PythonTeX, Geoggrey reports about an improved verbatim environment, fvextra, which patches fancyvrb, and improved interaction between tikz and PythonTeX.&lt;/p&gt;
&lt;p&gt;As I am a heavy user of listings for my teaching on algebraic specification languages, I will surely take a look at this package and see how it compares to listings.&lt;/p&gt;
&lt;h4&gt;Stefan Kottwitz – TeX in industry I: Programming Cisco network switches using TeX&lt;/h4&gt;
&lt;p&gt;Next was Stefan from Lufthansa Industry Solutions, who reported first about his working environment, Cruise Ships with a very demanding IT infrastructure he has to design and implement. Then he introduced us to his way of generating IP configurations for all the devices using TeX. The reason he chose this method is that it allows him to generate at the same time proper documentation.&lt;/p&gt;
&lt;p&gt;It was surprising for me to hear that by using TeX he could far more efficiently and quicker produce well designed and easily accessible documentation, which helped both the company as well as made the clients happy!&lt;/p&gt;
&lt;h4&gt;Stefan Kottwitz – TeX in industry II: Designing converged network solutions&lt;/h4&gt;
&lt;p&gt;After a coffee break, Stefan continued his exploration into industrial usage of TeX, this time about using tikz to generate graphics representing the network topology on the ships.&lt;/p&gt;
&lt;h4&gt;Boris Veytsman – Making ACM LaTeX styles&lt;/h4&gt;
&lt;p&gt;Next up was Boris which brought us back to traditional realms of TeX when he guided us into the abyss of ACM LaTeX styles he tried to maintain for some time, until he plunged into a complete rewrite of the styles.&lt;/p&gt;
&lt;h4&gt;Frank Mittelbach – Alice goes floating — global optimized pagination including picture placements&lt;/h4&gt;
&lt;p&gt;The last talk before lunch (probably a strategic placement, otherwise Frank would continue for hours and hours) was Frank on global optimization of page breaks. Frank showed us what can and can not be done with current LaTeX, and how to play around with global optimization of pagination, using Alice in Wonderland as running example. We can only hope that his package is soon available in an easily consumable version to play around. &lt;/p&gt;
&lt;h4&gt;Thai lunch&lt;/h4&gt;
&lt;p&gt;Pavneet has organized three different lunch-styles for the three days of the conference, today’s was Thai with spring rools, fried noodles, one kind of very interesting orange noodles, and chicken something.&lt;/p&gt;
&lt;h4&gt;Michael Doob – baseball rules summary&lt;/h4&gt;
&lt;p&gt;After lunch Michael gave us an accessible explanation of the most arcane rules a game can have – the baseball rules – by using pseudo code. I think the total number of loc needed to explain the overall rules would fill more pages than the New York phonebook, so I am deeply impressed by all those who can understand these rules. Some of us even wandered off in the late afternoon to see a match with life explanations of Michael.&lt;/p&gt;
&lt;h4&gt;Amartyo Banerjee, S.K. Venkatesan – A Telegram bot for printing LaTeX files&lt;/h4&gt;
&lt;p&gt;Next up was Amartyo who showed a Telegram (as in messenger application) bot running on a Raspberry Pi, that receives (La)TeX files and sends back compiled PDF files. While it is not ready for consumption (If you sneeze the bot will crash!), it looks like a promising application. Furthermore, it is nice to see how open APIs (like Telegram) can spur development of useful tools, while closed APIs (including threatening users, like WhatApp) hinders it.&lt;/p&gt;
&lt;h4&gt;Norbert Preining – Security improvements in the TeX Live Manager and installer&lt;/h4&gt;
&lt;p&gt;Next up was my own talk about beefing up the security of TeX Live by providing integrity and authenticity checks via GnuPG, a feature that has been introduced with the recent release of TeX Live 2016.&lt;/p&gt;
&lt;p&gt;The following discussion gave me several good idea on how to further improve security and usability.&lt;/p&gt;
&lt;h4&gt;Arthur Reutenauer -The TeX Live M sub-project (and open discussion)&lt;/h4&gt;
&lt;p&gt;Arthur presented the &lt;em&gt;TeX Live M&lt;/em&gt; (where the M stands supposedly for Mojca, who couldn’t attend unfortunately) project: Their aim is to provide a curated and quality verified sub-part of TeX Live that is sufficiently complete for many applications, and easier for distributors and packagers.&lt;/p&gt;
&lt;p&gt;We had a lively discussion after Arthur’s short presentation, mostly about why TeX Live does not have a “on-the-fly” installation like MikTeX. I insisted that this is already possible, using the “tex-on-the-fly” package which uses the &lt;tt&gt;mktextex&lt;/tt&gt; infrastructure, but also caution against using it by default due to delays induced by repeatably reading the TeX Live database. I think this is a worth-while project for someone interested in learning the internals of TeX Live, but I am not sure whether I want to invest time into this feature.&lt;/p&gt;
&lt;p&gt;Another discussion point was about a testing infrastructure, which I am currently working on. This is in fact high on my list, to have some automatic minimal functionality testing – a LaTeX package should at least load!&lt;/p&gt;
&lt;h4&gt;Kevin Larson – Reading between the lines: Improving comprehension for students&lt;/h4&gt;
&lt;p&gt;Having a guest from Microsoft is rather rare in our quite Unix-centered environment, so big thanks to Pavneet again for setting up this contact, and big thanks to Kevin for coming.&lt;/p&gt;
&lt;p&gt;Kevin gave us a profound introduction to reading disabilities and how to improve reading comprehension. Starting with an excursion into what makes a font readable and how Microsoft develops optimally readable fonts,  he than turned to reading disabilities like dyslexia, and how markup of text can increase students comprehension rate. He also toppled my long-term believe that dyslexia is connected to the similar shape of letters which are somehow visually malprocessed – this was the scientific status from the 1920ies till the 70ies, but since then all researchers have abandoned this interpretation and dyslexia is now linked to problems linking shape to phonems.&lt;/p&gt;
&lt;p&gt;Kevin did an excellent job with a slightly difficult audience – some people picking about grammer differences between British and US English and permanently derailing the discussion, and even more the high percentage of typographically somehow specially tasted participants.&lt;/p&gt;
&lt;p&gt;After the talk I had a lengthy discussion with Kevin about if/how this research can be carried over to non-Roman writing systems, in particular Kanji/Hanzi based writing systems, where dyslexia shows itself probably in different context. Kevin also mentioned that they want to add interword space to Chinese to help learners of Chinese (children, foreigners) to better parse, and studies showed that this helps a lot in comprehension.&lt;/p&gt;
&lt;p&gt;On a meta-level, this talk bracketed with the morning introduction by Pavneet, describing an open environment with stimulus back and forth in all directions. I am very happy that Kevin took the pain to come in his tight schedule, and I hope that the future will bring better cooperation – at the end we are all working somehow on the same front – only the the tools differ.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img alt=&quot;izakaya-sake-party&quot; class=&quot;alignright size-medium wp-image-5773&quot; height=&quot;300&quot; src=&quot;http://www.preining.info/blog/wp-content/uploads/2016/07/izakaya-sake-party-267x300.jpg&quot; width=&quot;267&quot; /&gt;After the closing of the session, one part of our group went off to the baseball match, while another group dived into a Japanese-style Izakaya where we managed to kill huge amounts of sake and quite an amount of food. The photo shows me after the first bottle of sake, while just seeping on an intermediate small amount of genshu (kind of strong undiluted sake) before continuing to the next bottle. &lt;/p&gt;
&lt;p&gt;An interesting and stimulating first day of TUG, and I am sure that everyone was looking forward to day 2.&lt;/p&gt; </description> 
	<pubDate>Tue, 26 Jul 2016 11:20:31 +0000</pubDate>

</item> 
<item>
	<title>Simon Désaulniers: [GSOC] Week 8&amp;9 Report</title>
	<guid>http://sim590.github.io/post/gsoc/week89/</guid>
	<link>http://sim590.github.io/post/gsoc/week89/</link>
     <description>  &lt;h2 id=&quot;week-8:25ce5886c5ea1bf7ae6670267c09b4f7&quot;&gt;Week 8&lt;/h2&gt;

&lt;p&gt;This particular week has been tiresome as I did catch a cold ;). I did come back
from Cape Town where &lt;a href=&quot;http://sim590.github.io/post/gsoc/week567/&quot;&gt;debconf&lt;/a&gt; taking place. My arrival at Montreal was in the
middle of the week, so this week is not plenty of news…&lt;/p&gt;

&lt;h3 id=&quot;what-i-ve-done:25ce5886c5ea1bf7ae6670267c09b4f7&quot;&gt;What I’ve done&lt;/h3&gt;

&lt;p&gt;I have synced myself with my coworker Nicolas Reynaud, who’s working on building
the indexation system over the DHT. We have worked together on critical
algorithms: concurrent maintenance of data in the trie (PHT).&lt;/p&gt;

&lt;h2 id=&quot;week-9:25ce5886c5ea1bf7ae6670267c09b4f7&quot;&gt;Week 9&lt;/h2&gt;

&lt;h3 id=&quot;what-i-ve-done-1:25ce5886c5ea1bf7ae6670267c09b4f7&quot;&gt;What I’ve done&lt;/h3&gt;

&lt;p&gt;Since my mentor, who’s also the main author of OpenDHT, was gone for presenting
&lt;a href=&quot;https://ring.cx&quot;&gt;Ring&lt;/a&gt; at the &lt;a href=&quot;https://sec2016.rmll.info/&quot;&gt;RMLL&lt;/a&gt;, I’ve been attributed tasks that needed attention
quickly. I’ve been working on making OpenDHT run properly when compiled with
some failing version of Apple’s LLVM. I’ve had the pleasure of debugging obscure
runtime errors that you don’t get depending on the compiler you use, but I mean
very obscure.&lt;/p&gt;

&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://images.duckduckgo.com/iu/?u=http%3A%2F%2Fwanna-joke.com%2Fwp-content%2Fuploads%2F2013%2F11%2Ffunny-picture-programmers-problems.jpg&amp;amp;f=1&quot; /&gt;&lt;/div&gt;

&lt;p&gt;I have released OpenDHT 0.6.2! This release was meant to fix a critical
functionality bug that would arise if one of the two routing table (IPv4, IPv6)
was empty. This was really critical for Ring to have the 0.6.2 version because
it is not rare that a user connects to some router not giving IPv6 address.&lt;/p&gt;

&lt;p&gt;Finally, I have fixed some minor bugs in my work on the &lt;a href=&quot;http://sim590.github.io/post/gsoc/week34/&quot;&gt;queries&lt;/a&gt;.&lt;/p&gt; </description> 
	<pubDate>Mon, 25 Jul 2016 23:41:44 +0000</pubDate>

</item> 
<item>
	<title>Reproducible builds folks: Reprotest 0.2 released, with virtualization support</title>
	<guid>https://reproducible.alioth.debian.org/blog/posts/people/ceridwen/reprotest_week9/</guid>
	<link>https://reproducible.alioth.debian.org/blog/posts/people/ceridwen/reprotest_week9/</link>
     <description>  &lt;p&gt;Author: ceridwen&lt;/p&gt;

&lt;p&gt;reprotest 0.2 is available in
&lt;a href=&quot;https://pypi.python.org/pypi/reprotest/0.2&quot;&gt;PyPi&lt;/a&gt; and should hit
&lt;a href=&quot;https://tracker.debian.org/pkg/reprotest&quot;&gt;Debian&lt;/a&gt; soon.  I have
tested null (no container, build on the host system),
&lt;a href=&quot;https://wiki.debian.org/Schroot&quot;&gt;schroot&lt;/a&gt;, and
&lt;a href=&quot;https://wiki.debian.org/QEMU&quot;&gt;qemu&lt;/a&gt;, but it&#39;s likely that chroot,
Linux containers (lxc/lxd), and quite possibly ssh are also working.
I haven&#39;t tested the autopkgtest code on a non-Debian system, but
again, it probably works.  At this point, reprotest is not quite a
replacement for the
&lt;a href=&quot;https://anonscm.debian.org/cgit/reproducible/misc.git/tree/prebuilder&quot;&gt;prebuilder&lt;/a&gt;
script because I haven&#39;t implemented all the variations yet, but it
offers better virtualization because it supports qemu, and it can
build non-Debian software because it doesn&#39;t rely on pbuilder.&lt;/p&gt;

&lt;p&gt;With HW42&#39;s help, I fixed the schroot/disorderfs/autopkgtest
permission error and got pip/setuptools to install the autopkgtest
code from &lt;code&gt;virt/&lt;/code&gt;.  The permission error came from autopkgtest
automatically running all commands on a testbed as root, if it can run
commands as root, which caused schroot to mount disorderfs as root.
This caused the build artifact to be owned by root, but unlike qemu, a
chroot shares the same file system, so it would then try to copy this
root-owned file with a process running with ordinary user permissions.
The fix was to mount disorderfs with &lt;code&gt;--multi-user=yes&lt;/code&gt; when the
container has root permissions, allowing a user process to access it
even when it&#39;s mounted by root.  The fix for setuptools is an ugly
hack: including the &lt;code&gt;virt/&lt;/code&gt; scripts as non-code data with &lt;code&gt;include
reprotest/virt/*&lt;/code&gt; in &lt;code&gt;MANIFEST.in&lt;/code&gt; works.  (According to the
documentation, &lt;code&gt;graft reprotest/virt/&lt;/code&gt;, which I also tried, &lt;em&gt;ought&lt;/em&gt; to
work, but in my testing it doesn&#39;t.)  This still uses sys.path hacking
as a consequence of autopkgtest&#39;s design choices.&lt;/p&gt;

&lt;p&gt;For the next release, I want to finish all the remaining variations,
which at this point are build path, domain, host, group, shell, and
user.  I also want to ensure that reprotest runs on non-Debian and
possibly non-Linux systems.&lt;/p&gt;

&lt;p&gt;For now, what I need most is more real-world testing.  If you have any
interest in reproducible builds, please try reprotest out!  There&#39;s a
README included which describes how to set up appropriate containers
and run the tests.&lt;/p&gt; </description> 
	<pubDate>Mon, 25 Jul 2016 18:54:47 +0000</pubDate>

</item> 
<item>
	<title>Norbert Preining: TUG 2016 – Day 0 – Books and Beers</title>
	<guid>https://www.preining.info/blog/?p=5755</guid>
	<link>https://www.preining.info/blog/2016/07/tug-2016-day-0-books-and-beers/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/preining.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;The second pre-conference day was dedicated to books and beers, with a visit to an exquisite print studio, and a beer tasting session at one of the craft breweries in Canada. In addition we could grab a view into the Canadian lifestyle by visiting Pavneet’s beautiful house in the countryside, as well as enjoying traditional style pastries from a bakery.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5629-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5629/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Heidelberg printing machine at Porcupine&#39;s quilt&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221414-62fbbf9c-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;In short, a perfect combination for us typography and beer savvy freaks! &lt;span id=&quot;more-5755&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This morning we had somehow an early start from the hotel. Soon the bus left downtown Toronto and entered countryside Ontario, large landscapes filled with huge (for my Japanese feeling) estates and houses, separated by fields, forests and wild landscape. Very beautiful and inviting to live there. On our way to the printing workshop we stopped at Pavneet’s house for a very short visit of the exterior, which includes mathematics in the bricking. According to Pavneet, his kids hate to see math on the wall – I would be proud to have it.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5623-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5623/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Pavneet&#39;s house is hiding some mathematics&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221345-9d5549f3-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;A bit further on we entered into Erin, where the &lt;a href=&quot;http://porcupinesquill.ca/&quot;&gt;Porcupine’s Quill&lt;/a&gt; is located. A small building along the street, one could easily oversee that rare jewel! In addition considering that according to the owners, Google Maps has a bad error which would lead you to a completely different location. This printing workshop, led by Tim and Elke Inkster, is producing books in a traditional style using an old Heidelberg Offset printing machine.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5624-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5624/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Entrance to the Porcupine&#39;s Quill, a local bookshop doing excellent printing&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221349-99fa3438-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;Elke introduced us to the sewing of folded signatures together with a lovely old sewing machine. It was the first time I actually saw one in action.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5626-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5626/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Sewn signatures&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221357-2e16f7d7-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;Tim, the head master of the printing shop, first entertained us with stories about Chinese publishers visiting them in the old cold-war times, before diving into explanations of the actual machines around, like the Heidelberg offset printing machine.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5630-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5630/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Master Tim is showing us offset technique&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221418-fc32fe7a-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;In the back of the basement of the little studio there is also a huge folding machine, which cuts up the big signatures of 16 pages and folds them into bundles. An impressive example of tricky engineering.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5632-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5632/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;The folding machine creates from a printed signature 16 pages in proper order.&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221425-c130f55f-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;Due to the small size of the printing studio, our groups were actually split into two groups, and while the other group got its guided tour, we grabbed coffee and traditional cookies and pastries from the nearby Holtom’s bakery. Loads of nice pastries with various filling, my favorite being the slightly salty cherry pie, and above all the rhubarb-raspberry pie.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5635-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5635/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Nearby old-style bakery, selling Viennese-style &amp;quot;Kaisersemmel&amp;quot;, calling them &amp;quot;Kaiser buns&amp;quot;. There must be an Austrian hiding somewhere around.&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221438-21a6d1d8-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;To my absolute astonishment I also found there a Viennese “&lt;a href=&quot;https://en.wikipedia.org/wiki/Kaiser_roll&quot;&gt;Kaisersemmel&lt;/a&gt;“, called “Kaiser bun” here, but keeping the shape and the idea (but unfortunately not the crispy cracky quality of the original in Vienna). Of course I got two of them, together with a nice jam from the region, and enjoyed these “Viennese breakfast” the next day morning.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5642-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5642/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Viennese breakfast from the Bakery near Porcupine&#39;s Quill&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221506-4064bdaf-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;Leaving the Quill we headed for a lunch in a nice pizzeria (I got Pizza Toscana) which also served excellent local beer – how would I like to have something like this over in Japan! Our last stop on this excursion was &lt;a href=&quot;http://www.stonehammer.ca/&quot;&gt;Stone Hammer Brewery&lt;/a&gt;, ne of the most famous craft breweries in Canada.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5638-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5638/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;One of the top craft breweries in Canada, the Stone Hammer&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221451-3c48b4c4-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.preining.info/blog/wp-content/uploads/2016/07/keep-calm.jpg&quot;&gt;&lt;img alt=&quot;keep-calm&quot; class=&quot;alignright size-thumbnail wp-image-5765&quot; height=&quot;150&quot; src=&quot;https://www.preining.info/blog/wp-content/uploads/2016/07/keep-calm-150x150.jpg&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;Although they wont win a prize for typography (besides one page of a coaster there that carried a nice pun), their beers are exquisite. We got five different beers to taste, plus extensive explanations on brewing methods and differences. Now I finally understand why most of the new craft breweries in Japan are making Ales: Ales don’t need a long process and are ready for sale in rather short time, compared to e.g. lagers.)&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5640-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5640/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Explanations of the the secrets of beer brewing&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221459-c2ea27ff-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5641-xs&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow alignright&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5641/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Nothing to add to this poster found in the Stone Hammer Brewery!&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221503-5f4c6b68-xs.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; Also at the Stone Hammer Brewery I spotted this very nice poster on the wall of the toilet. And I cannot agree more, everything can easily be discussed over a good beer – it calms down aversions, makes even the worst enemies friends, and is healthy for both the mind and body. &lt;p&gt;&lt;/p&gt;
&lt;p&gt;Filled with excellent beer, some of us (notably an unnamed US TeXnician and politician), stacked up on beers to carry home. I was very tempted to get a huge batch, but putting cans into an airplane seems to be not the optimal idea. Since we are talking cans, I was surprised to hear that many craft beer brewers nowadays prefer cans due to their better protection of the beer from light and oxygen, both killers of good beer.&lt;/p&gt;
&lt;p&gt;Before leaving we took a last look at the Periodic Table of Beer Types, which left me in awe about how much I don’t know and I probably never will know. In particular, I heard the first time of a “Vienna style beer” – Vienna is not really famous for beer, better to say, it is infamous. So maybe this is a different Vienna than my home town that is meant here.&lt;br /&gt;
	&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5639-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5639/category/tug2016-day-0&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Lots to study here, the Periodic Table of Beers&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725221455-a16736eb-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;Another two hour bus ride brought us back to Toronto, where we met with other participants at the reception in a restaurant of Mediterranean cuisine, where I could enjoy for the first time in years a good Tahina and Humus. &lt;/p&gt;
&lt;p&gt;All around another excellent day, now I only would like to have two days of holidays, guess I need to relax in the lectures starting from tomorrow. &lt;/p&gt;

&lt;hr /&gt; </description> 
	<pubDate>Mon, 25 Jul 2016 18:09:14 +0000</pubDate>

</item> 
<item>
	<title>Sven Hoexter: me vs terminal emulator</title>
	<guid>http://sven.stormbind.net/blog/posts/misc_me_vs_terminal_emulator/</guid>
	<link>http://sven.stormbind.net/blog/posts/misc_me_vs_terminal_emulator/</link>
     <description>  &lt;p&gt;I think my demands for a terminal emulator are pretty basic but none
the less I run into trouble every now and then. This time it was a
new laptop and starting from scratch with an empty $HOME and the
current Debian/testing instead of good old Jessie.&lt;/p&gt;

&lt;p&gt;For the last four or five years I&#39;ve been a happy user of gnome-terminal,
configured a mono space font, a light grey background with black text
color, create new tabs with Ctrl-n, navigate the tabs with Ctrl-Left and
Ctrl-Right, show no menubar, select URLs with double click. Suited me well
with my similarly configured awesome window manager, where I navigate with
Mod4-Left and Mod4-Right between the desktops on the local screen and only
activate a handful of the many default tiling modes.&lt;/p&gt;

&lt;p&gt;While I could get back most of my settings, somehow all cited gconf kung-foo
to reconfigure the URL selection pattern in gnome-terminal failed, and copy&amp;amp;pasting
URLs from the terminal was a pain in the ass. Long story short I now followed
the advice of a coworker to just use the xfce4-terminal.&lt;/p&gt;

&lt;p&gt;That still required a few tweaks to get back to do what I want it to do. To
edit the keybindings you&#39;ve to know that you&#39;ve to use the GTK way and edit
them within in the menu while selecting the menu entry. But you&#39;ve to allow
that first (why oh why?):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;echo &quot;gtk-can-change-accels=1&quot; &amp;gt;&amp;gt; ~/.gtkrc-2.0
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Fair enough that is &lt;a href=&quot;http://docs.xfce.org/faq&quot;&gt;documented&lt;/a&gt;.
Changing the keybinding generates fancy things in ~/.config/xfce4/terminal/accels.scm in
case you plan to hand edit a few more of them.&lt;/p&gt;

&lt;p&gt;I also edited a few things in ~/.config/xfce4/terminal/terminalrc:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;MiscAlwaysShowTabs=TRUE
MiscMenubarDefault=FALSE
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So I guess I can remove gnome-terminal for now and stay with another
GTK2 application. Doesn&#39;t feel that good but well at least it works.&lt;/p&gt; </description> 
	<pubDate>Mon, 25 Jul 2016 16:44:09 +0000</pubDate>

</item> 
<item>
	<title>Mike Hommey: Announcing git-cinnabar 0.4.0 beta 2</title>
	<guid>https://glandium.org/blog/?p=3695</guid>
	<link>https://glandium.org/blog/?p=3695</link>
     <description>  &lt;p&gt;Git-cinnabar is a git remote helper to interact with mercurial repositories. It allows to clone, pull and push from/to mercurial remote repositories, using git.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/glandium/git-cinnabar/releases/tag/0.4.0b2&quot;&gt;Get it on github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;These release notes are also available on the &lt;a href=&quot;https://github.com/glandium/git-cinnabar/wiki/Release-Notes:-0.4.0b2&quot;&gt; git-cinnabar wiki&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;What’s new since 0.4.0b1?&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Some more bug fixes.&lt;/li&gt;
&lt;li&gt;Updated git to 2.9.2 for cinnabar-helper.&lt;/li&gt;
&lt;li&gt;Now supports `git push –dry-run`.&lt;/li&gt;
&lt;li&gt;Added a new `git cinnabar fetch` command to fetch a specific revision that is not necessarily a head.&lt;/li&gt;
&lt;li&gt;Some improvements to the experimental native wire protocol support.&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Mon, 25 Jul 2016 08:38:17 +0000</pubDate>

</item> 
<item>
	<title>Norbert Preining: TUG 2016 – Day -1 – Wines and Waters</title>
	<guid>https://www.preining.info/blog/?p=5743</guid>
	<link>https://www.preining.info/blog/2016/07/tug-2016-day-minus-1/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/preining.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;This years TUG is held in Toronto, Canada, and our incredible host Pavneet has managed to put together an busy program of excursions and events around the real conference. The -1st day (yeah, you read right, the minus-first day), that is two days before the actual conference starts, was dedicated to an excursion to enjoying wines at the wine estate Château des Charmes, followed by a visit to the Niagara falls.&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5616-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5616/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;The amount of water running down the Horseshoe Falls is incredible&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134435-da44547e-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;
&lt;p&gt;What should I say, if the first thing after getting out of the bus is a good wine, then there is nothing to go wrong … &lt;span id=&quot;more-5743&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I arrived in Toronto already two days earlier in the late afternoon, and spend Friday relaxing, recovering from the long flight, walking the city a bit, trying to fix my cold, and simply going slowly. Saturday morning we met already at a comfortable 10am in the morning (still to early for me, due to jet lag and a slightly late evening before), but the first 2h of bus drive allowed us to relax. Our first stop was the &lt;a href=&quot;http://www.fromtheboscfamily.com/chateau-des-charmes&quot;&gt;Château des Charmes&lt;/a&gt;, and impressive building surrounded by vineyards. &lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5595-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5595/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Entrance to the Château des Charmes&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134224-c7303208-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;We were immediately handed over to a sandwich lunch with white, red, and ice wine. Good start! And although the breakfast wasn’t that long time ago, the delicious sandwiches (at least the vegetarian ones I tried) were good foundation for the wine.&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5598-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5598/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Lunch impressions at Château des Charmes&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134240-a8018090-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;After having refilled our energy reserves, we are ready to start our tour. Our guide, very, if not over, enthusiastic, explains us that practically everything related to wine in Canada has been started at this Château from the current owner – the Château system where farmer and wine producer are the same, import of European grapes, winter protection methods, wine making – I was close to forgetting our Roman and Greek ancestors. At least she admitted that the Ice wine was brought over by an Austrian – but perfection was done here, were the controls of the government are much stricter than anywhere else … hmmm, somehow I cannot completely believe all this narrative, but at least it is enjoyable. So now that we know all about the history, we dive into the production process area, and the barrel space, always accompanied with extensive comments and (self-)praise.&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5601-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5601/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Enjoying the explanations of our very enthusiastic guide&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134300-303a3149-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;After this exhaustive and exhausting round, we are guided back to the patio to taste another three different wines, a white (bit too warm, not so much my taste), a rose (very good), and a red made from a new grape variety that has mutated first here on the Château (interesting). As I didn’t have enough, I tried to get something out of the big containers directly, but without success!&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5600-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5600/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Me trying to get a full load of wine&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134252-514be585-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Happy and content, and after passing through the shopping area, we are boarding the bus to continue direction of the Niagara Falls. Passing by at quite some nice houses of definitely quite rich people (although Pavneet told me that houses in Toronto are far more expensive than those here – how can someone afford this?), we first have a view onto the lower Niagara river. A bit further one we are let out to see huge whirlpools in the river, where boat tours are bringing sightseers on a rough ride ride into the pool.&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5603-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5603/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Whirlpools along the Niagara river&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134326-fdb67ac8-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Only a slight bit further on we finally reach the Niagara falls, with the great view onto the American falls in full power, and the Horseshoe Falls further up.&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5608-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5608/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Horseshoe Falls in view&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134356-99401a4b-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;We immediately boarded a boat tour making a short trip to the Horseshoe Fall. Lining up with hundreds and hundreds of other spectators, we prepare for the splash with red rain wear (the US side uses blue, not that any side would rescue a wrong person and create an illegal immigrant!). The trip passes first under the American Falls and continues right into the mist that fills all the area in the middle of the Horseshoe falls. Spectacular impression with walls of water falling down on both sidess.&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5610-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5610/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Panorama of the Horseshoe Falls&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134410-1a49b9bf-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Returned from the splash and having dried our feet, we walk along the ridge to see the Horseshoe falls from close up. The amount of water falling down these falls is incredible, and so is the erosion that creates the brown foam on the water down in the pool, made up from pulverized limestone. Blessed as we were, the sun was laughing all the day and we got a nice rainbow right in the fall.&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5617-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5617/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Horseshoe Falls with boat and rainbow, lovely.&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134439-96b8dfe1-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The surroundings of the fall are less impressive – Disney land? Horror cabinet? Jodel bar? A wild mixture of amusement park style locations squeezed together and overly full with people – as if enjoying the nature itself would not be enough. All immersed by ever blasting loudspeaker music. &lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5620-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5620/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Torture around Niagara falls&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134452-7050a19e-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The only plus point I could find in this encampment of forced happiness was a local craft beer brewer where one could taste 8 different beers – I made it only to four, though.&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5618-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5618/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Beer tasting at Niagara Brewery, IPA, Amber ale, Lager, and some Light Fruity Radler beer.&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134443-554ccd80-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Finally night was falling in and we moved down to the falls again to enjoy the illumination of the falls.&lt;/p&gt;
&lt;div class=&quot;PiwigoPress_photoblog&quot; id=&quot;Photo-5621-me&quot;&gt;&lt;div class=&quot;PWGP_shortcode img-shadow center&quot;&gt;&lt;a href=&quot;http://www.preining.info/photo/picture.php?/5621/category/tug2016-day-minus-1&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;&lt;img alt=&quot;Night view onto Niagara falls&quot; class=&quot;PWGP_photo&quot; src=&quot;http://www.preining.info/photo/_data/i/upload/2016/07/25/20160725134457-08379f30-me.jpg&quot; /&gt;&lt;/a&gt;

      &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;After this wonderful finish we boarded the bus and back to Toronto, where we arrived around mid-night. A long but very pleasurable Day Minus One!&lt;/p&gt;
&lt;p&gt;Further photos can be seen at the gallery &lt;a href=&quot;http://www.preining.info/photo/index.php?/category/tug2016-day-minus-1&quot;&gt;TUG 2016 – Day Minus One.&lt;/a&gt;&lt;/p&gt; </description> 
	<pubDate>Mon, 25 Jul 2016 05:23:50 +0000</pubDate>

</item> 
<item>
	<title>Martin Michlmayr: Debian on Jetson TK1</title>
	<guid>tag:www.cyrius.com,2016-07-24:/blog/debian/tegra/debian-on-jetson-tk1/</guid>
	<link>http://www.cyrius.com/blog/debian/tegra/debian-on-jetson-tk1/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/tbm.png&quot; width=&quot;67&quot; height=&quot;90&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;img alt=&quot;Debian on Jetson TK1&quot; class=&quot;right&quot; height=&quot;378&quot; src=&quot;http://www.cyrius.com/images/jetson-tk1-debian8.jpg&quot; width=&quot;504&quot; /&gt;
&lt;p&gt;I became interested in running Debian on NVIDIA&#39;s Tegra platform recently. NVIDIA is doing a great job getting support for Tegra upstream (u-boot, kernel, X.org and other projects). As part of ensuring good Debian support for Tegra, I wanted to install Debian on a Jetson TK1, a development board from NVIDIA based on the Tegra K1 chip (Tegra 124), a 32-bit ARM chip.&lt;/p&gt;
&lt;p&gt;Ian Campbell enabled u-boot and Linux kernel support and added support in the installer for this device about a year ago. I updated some kernel options since there has been a lot of progress upstream in the meantime, performed a lot of tests and documented the installation process on the Debian wiki. Wookey made substantial improvements to the wiki as well.&lt;/p&gt;
&lt;p&gt;If you&#39;re interested in a good 32-bit ARM development platform, give &lt;a href=&quot;https://wiki.debian.org/InstallingDebianOn/NVIDIA/Jetson-TK1&quot;&gt;Debian on the Jetson TK1&lt;/a&gt; a try.&lt;/p&gt;
&lt;p&gt;There&#39;s also a 64-bit board. More on that later...&lt;/p&gt; </description> 
	<pubDate>Mon, 25 Jul 2016 01:31:28 +0000</pubDate>

</item> 
<item>
	<title>Tom Marble: jai-gagne-le-tour-de-crosstown-2016</title>
	<guid>http://sept.info9.net/wiki//tmarble/posts/jai-gagne-le-tour-de-crosstown-2016/</guid>
	<link>http://sept.info9.net/wiki//tmarble/posts/jai-gagne-le-tour-de-crosstown-2016/</link>
     <description>  &lt;h1&gt;J&#39;ai gagné le Tour de Crosstown 2016!&lt;/h1&gt;

&lt;p&gt;Everyone knows that today the finish line for &lt;a href=&quot;http://www.letour.fr/&quot;&gt;Le Tour de France&lt;/a&gt;
was crossed on &lt;em&gt;Les Champs-Élysées&lt;/em&gt; in Paris... And if you haven&#39;t
seen some of the &lt;a href=&quot;https://www.youtube.com/user/letourdefrance&quot;&gt;videos&lt;/a&gt; I highly recommend checking
out the onboard camera views and the landscapes! &lt;em&gt;Quel beau pays&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I&#39;m happy to let you know that today I won the &lt;strong&gt;Tour de Crosstown 2016&lt;/strong&gt;
which is the cycling competition at &lt;a href=&quot;https://www.lifetimefitness.com/en/programs-and-events/sports/cycle/minnesota/Eden-Prairie-Crosstown-Cycle-Club.html&quot;&gt;Lifetime Crosstown&lt;/a&gt; inspired
by and concurrent to &lt;em&gt;Le Tour de France&lt;/em&gt;. There were about twenty cyclists
competing to see who could earn the most points -- by attending cycling class
&lt;em&gt;bien sûr&lt;/em&gt;. I earned the &lt;em&gt;maillot jaune&lt;/em&gt; with 23 points and my next closest
competitor had 16 points (with the &lt;em&gt;peloton&lt;/em&gt; far behind). But that&#39;s just
part of the story.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.lifetimefitness.com/en/programs-and-events/sports/cycle/minnesota/Eden-Prairie-Crosstown-Cycle-Club.html&quot;&gt;
&lt;img alt=&quot;Tour de Crosstown 2016&quot; src=&quot;http://info9.net/images/tour-de-crosstown-2016-bis.jpg&quot; /&gt;
&lt;/a&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;For some time I&#39;ve been coming to Life Time Fitness at Crosstown
for yoga (in Josefina&#39;s class) and playing racquetball with my friend David.
The cycling studio is right next to the racquetball courts and
there&#39;s been a class on Saturday&#39;s at the same time we usually play.
I told David that it looked like fun and he said, having tried it,
that it is fun (and a big workout). In early June David got busy
and then had an injury that has kept him off the court ever since.
So one Saturday morning I decided to try cycling.&lt;/p&gt;

&lt;p&gt;I borrowed a heart rate monitor (but had no idea what it was for) and
tried to bike along in my regular gym shorts, shoes and a t-shirt.
Despite being a cycling newbie I was immediately captured by
&lt;a href=&quot;https://twitter.com/abcdutton&quot;&gt;Alison&#39;s&lt;/a&gt; &lt;a href=&quot;http://spincyclebike.com/about-indoor-cycling-music/&quot;&gt;music and enthusiasm&lt;/a&gt;.
She&#39;s dancing on her bike and you can&#39;t
help but lock in the beat. Of course that&#39;s &lt;em&gt;just after&lt;/em&gt; she tells
you to dial up the resistance... and the sweat just pours out!&lt;/p&gt;

&lt;p&gt;I admit that workout hit me pretty hard, but I had to come
back and try the 5:45 am Wednesday EDGE cycle class (gulp). Despite what
sounds like a crazy impossible time to get out and on a bike
it actually works out super well. This plan requires one to up-level one&#39;s
organization and after the workout I can assure
you that you&#39;re fully awake and charged for the day!&lt;/p&gt;

&lt;p&gt;Soon I invested in my own heart rate monitor. Then I realized
it would work &lt;em&gt;so much better&lt;/em&gt; if I had a metabolic assessment to
tune my aerobic and anaerobic training zones. While I signed
up for the assessment I decided to work with &lt;a href=&quot;https://www.facebook.com/may.bend.1&quot;&gt;May&lt;/a&gt; as my
personal trainer. In addition to helping me with my upper body
(complementing the cycling) May is a nutritionist and
has helped me dial in this critical facet of training.
Even though I&#39;m still working to tune my diet around my
workouts, I&#39;ve already learned a lot by using &lt;a href=&quot;http://www.myfitnesspal.com/&quot;&gt;My Fitness Pal&lt;/a&gt;
and, most importantly, I have a whole new attitude about food.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pour les curieux, la nutritioniste maison s&#39;est absentée en France pendant le mois de juillet.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Soon I would invest in bike shoes, jerseys and shorts and begin
to push myself into the proper zones during workouts and
fuel my body properly afterwords. All these changes have led
to dramatic weight loss \o/&lt;/p&gt;

&lt;p&gt;A few of you know that the past two years have involved
a lot of personal hardship. Upon reflection I have come to appreciate
that things in my life that I can actually control are a massive opportunity.
I decided that fixing my exercise and nutrition were
the opportunities I want to focus on. A note for for my Debian friends...
I&#39;m sorry to have missed you in Cape Town, but I hope to join you in Montréal
next year.&lt;/p&gt;

&lt;p&gt;So when the &lt;strong&gt;Tour de Crosstown&lt;/strong&gt; started in July I decided this
was the time for me to get serious. I want to thank all the instructors for the
great workouts (and for all the calories I&#39;ve left on the bike):
Alison, Kristine, Olivia, Tasha, and Caroline!&lt;/p&gt;

&lt;p&gt;The result of my lifestyle changes are hard to describe.. I feel an
amazing amount of energy every day. The impact of prior back injury is
now almost non-existent.  And what range of motion I hadn&#39;t recovered
from the previous summer&#39;s being &quot;washing machined&quot; by a 3 meter wave
while body surfing at the beach in &lt;a href=&quot;https://en.wikipedia.org/wiki/Soorts-Hossegor&quot;&gt;Hossegor&lt;/a&gt; is now fully working.&lt;/p&gt;

&lt;p&gt;Now I&#39;m thinking it&#39;s time to treat myself to a new bike &lt;img alt=&quot;:)&quot; src=&quot;http://sept.info9.net/wiki//smileys/smile.png&quot; /&gt;
I&#39;m looking at large touring frames and am currently thinking
of the &lt;a href=&quot;http://surlybikes.com/bikes/disc_trucker&quot;&gt;Surly Disc Trucker&lt;/a&gt;. In terms of bike shops I&#39;ve had
a good experience with &lt;a href=&quot;http://www.oneononebike.com/&quot;&gt;One on One&lt;/a&gt; and &lt;a href=&quot;http://www.gpbicycles.com/&quot;&gt;Grand Performance&lt;/a&gt; has
come highly recommended. If anyone has suggestions for bikes,
bike features, or good shops please let me know!&lt;/p&gt;

&lt;p&gt;I would encourage everyone here in Minneapolis to join me as guest
for a Wed morning 5:45am EDGE cycle class. I&#39;m betting you&#39;ll have as
much fun as a I do.. and I guarantee you will sweat! The challenge in waking up
will pay off handsomely in making you energized for the whole day.&lt;/p&gt;

&lt;p&gt;Let&#39;s bike &lt;em&gt;allons-y&lt;/em&gt;!&lt;/p&gt; </description> 
	<pubDate>Sun, 24 Jul 2016 23:22:51 +0000</pubDate>

</item> 
<item>
	<title>Dirk Eddelbuettel: RcppArmadillo 0.7.200.2.0</title>
	<guid>http://dirk.eddelbuettel.com/blog/2016/07/24#rcpparmadillo_0.7.200.2.0</guid>
	<link>http://dirk.eddelbuettel.com/blog/2016/07/24#rcpparmadillo_0.7.200.2.0</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/dirk.png&quot; width=&quot;65&quot; height=&quot;90&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;img alt=&quot;armadillo image&quot; src=&quot;http://arma.sourceforge.net/img/armadillo_logo.png&quot; style=&quot;float: left; margin: 10px 10px 10px 0;&quot; width=&quot;248&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The second &lt;a href=&quot;http://arma.sourceforge.net/&quot;&gt;Armadillo&lt;/a&gt; release of the 7.* series came out a few weeks ago: version 7.200.2. And &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.armadillo.html&quot;&gt;RcppArmadillo&lt;/a&gt; version 0.7.200.2.0 is now on &lt;a href=&quot;http://cran.r-project.org&quot;&gt;CRAN&lt;/a&gt; and uploaded to &lt;a href=&quot;http://www.debian.org&quot;&gt;Debian&lt;/a&gt;. This followed the usual thorough reverse-dependecy checking of by now over 240 packages using it.&lt;/p&gt;
&lt;p&gt;For once, I let it simmer a little preparing only a package update via the &lt;a href=&quot;https://github.com/RcppCore/RcppArmadillo&quot;&gt;GitHub repo&lt;/a&gt; without preparing a &lt;a href=&quot;http://cran.r-project.org&quot;&gt;CRAN&lt;/a&gt; upload to lower the update frequency a little. Seeing that &lt;a href=&quot;http://conradsanderson.id.au/&quot;&gt;Conrad&lt;/a&gt; has started to release 7.300.0 tarballs, the time for a (final) 7.200.2 upload was now right.&lt;/p&gt;
&lt;p&gt;Just like the previous, it now &lt;em&gt;requires&lt;/em&gt; a recent enough compiler. As &lt;code&gt;g++&lt;/code&gt; is so common, we explicitly test for version 4.6 or newer. So if you happen to be on an older RHEL or CentOS release, you may need to get yourself a more modern compiler. R on Windows is now at 4.9.3 which is decent (yet stable) choice; the 4.8 series of &lt;code&gt;g++&lt;/code&gt; will also do. For reference, the current LTS of Ubuntu is at 5.4.0, and we have &lt;code&gt;g++&lt;/code&gt; 6.1 available in Debian testing.&lt;/p&gt;
&lt;p&gt;This new upstream release adds new indexing helpers, additional return codes on some matrix transformations, increased speed for compound expressions via &lt;code&gt;vectorise&lt;/code&gt;, corrects some LAPACK feature detections (affecting principally complex number use under OS X), and a rewritten &lt;code&gt;sample()&lt;/code&gt; function thanks to James Balamuta.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://arma.sourceforge.net/&quot;&gt;Armadillo&lt;/a&gt; is a powerful and expressive C++ template library for linear algebra aiming towards a good balance between speed and ease of use with a syntax deliberately close to a Matlab.&lt;/p&gt;
&lt;p&gt;Changes in this release (and the preceding GitHub-only release 0.7.200.1.0 are as follows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h4&gt;
Changes in RcppArmadillo version 0.7.200.2.0 (2016-07-22)
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
Upgraded to Armadillo release 7.200.2
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The sampling extension was rewritten to use Armadillo vector types instead of Rcpp types (PR &lt;a href=&quot;https://github.com/RcppCore/RcppArmadillo/pull/101&quot;&gt;#101&lt;/a&gt; by James Balamuta)
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
Changes in RcppArmadillo version 0.7.200.1.0 (2016-06-06)
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
Upgraded to Armadillo release 7.200.1
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
added &lt;code&gt;.index_min()&lt;/code&gt; and &lt;code&gt;.index_max()&lt;/code&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
expanded &lt;code&gt;ind2sub()&lt;/code&gt; to handle vectors of indices
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
expanded &lt;code&gt;sub2ind()&lt;/code&gt; to handle matrix of subscripts
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
expanded &lt;code&gt;expmat()&lt;/code&gt;, &lt;code&gt;logmat()&lt;/code&gt; and &lt;code&gt;sqrtmat()&lt;/code&gt; to optionally return a bool indicating success
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
faster handling of compound expressions by &lt;code&gt;vectorise()&lt;/code&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The &lt;code&gt;configure&lt;/code&gt; code now (once again) sets the values for the LAPACK feature &lt;code&gt;#define&lt;/code&gt; correctly.
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Courtesy of &lt;a href=&quot;http://dirk.eddelbuettel.com/cranberries/&quot;&gt;CRANberries&lt;/a&gt;, there is a &lt;a href=&quot;http://dirk.eddelbuettel.com/cranberries/2016/07/24#RcppArmadillo_0.7.200.2.0&quot;&gt;diffstat report&lt;/a&gt;. More detailed information is on the &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.armadillo.html&quot;&gt;RcppArmadillo page&lt;/a&gt;. Questions, comments etc should go to the &lt;a href=&quot;https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel&quot;&gt;rcpp-devel mailing list&lt;/a&gt; off the &lt;a href=&quot;http://r-forge.r-project.org/projects/rcpp/&quot;&gt;R-Forge&lt;/a&gt; page.&lt;/p&gt;
&lt;p style=&quot;font-size: 80%; font-style: italic;&quot;&gt;
This post by &lt;a href=&quot;http://dirk.eddelbuettel.com&quot;&gt;Dirk Eddelbuettel&lt;/a&gt; originated on his &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/&quot;&gt;Thinking inside the box&lt;/a&gt; blog. Please report excessive re-aggregation in third-party for-profit settings.
&lt;/p&gt;&lt;p&gt;&lt;/p&gt; </description> 
	<pubDate>Sun, 24 Jul 2016 19:35:00 +0000</pubDate>

</item> 
<item>
	<title>Elena &#39;valhalla&#39; Grandi: One Liberated Laptop</title>
	<guid>urn:X-dfrn:social.gl-como.it:2:3e3ce0df6557950a87a37e8430876616</guid>
	<link>http://social.gl-como.it/display/3e3ce0df6557950a87a37e8430876616</link>
     <description>  &lt;strong&gt;One Liberated Laptop&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Immagine/foto&quot; src=&quot;http://social.gl-como.it/photo/5a480cd2d5842101fc8975d927d030f3-1.jpg&quot; /&gt;&lt;a href=&quot;http://social.gl-como.it/photos/valhalla/image/5a480cd2d5842101fc8975d927d030f3&quot; target=&quot;_blank&quot;&gt;http://social.gl-como.it/photos/valhalla/image/5a480cd2d5842101fc8975d927d030f3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After many days of failed attempts, yesterday @&lt;span class=&quot;vcard&quot;&gt;&lt;a class=&quot;url&quot; href=&quot;http://social.gl-como.it/profile/diegor&quot; title=&quot;Diego Roversi&quot;&gt;&lt;span class=&quot;fn nickname mention&quot;&gt;Diego Roversi&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; finally managed to setup SPI on the BeagleBone White¹, and that means that today at our home it was Laptop Liberation Day!&lt;br /&gt;&lt;br /&gt;We took the spare X200, opened it, found the point we were on in the tutorial installing libreboot on x200 &lt;a href=&quot;https://libreboot.org/docs/install/x200_external.html&quot; target=&quot;_blank&quot;&gt;https://libreboot.org/docs/install/x200_external.html&lt;/a&gt;, connected all of the proper cables on the clip³ and did some reading tests of the original bios.&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Immagine/foto&quot; src=&quot;http://social.gl-como.it/photo/77e61745d9c43833b7c0a4a919d17222-1.jpg&quot; /&gt;&lt;a href=&quot;http://social.gl-como.it/photos/valhalla/image/77e61745d9c43833b7c0a4a919d17222&quot; target=&quot;_blank&quot;&gt;http://social.gl-como.it/photos/valhalla/image/77e61745d9c43833b7c0a4a919d17222&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While the tutorial mentioned a very conservative setting (512kHz), just for fun we tried to read it at different speed and all results up to 16384 kHz were equal, with the first failure at 32784 kHz, so we settled on using 8192 kHz. &lt;br /&gt;&lt;br /&gt;Then it was time to customize our libreboot image with the right MAC address, and that&#39;s when we realized that the sheet of paper where we had written it down the last time had been put in a safe place… somewhere…&lt;br /&gt;&lt;br /&gt;Luckily we also had taken a picture, and that was easier to find, so we checked the keyboard map², followed the instructions to customize the image &lt;a href=&quot;https://libreboot.org/docs/hcl/gm45_remove_me.html#ich9gen&quot; target=&quot;_blank&quot;&gt;https://libreboot.org/docs/hcl/gm45_remove_me.html#ich9gen&lt;/a&gt;, flashed the chip, partially reassembled the laptop, started it up and… a black screen, some fan noise and nothing else.&lt;br /&gt;&lt;br /&gt;We tried to reflash the chip (nothing was changed), tried the us keyboard image, in case it was the better tested one (same results) and reflashed the original bios, just to check that the laptop was still working (it was).&lt;br /&gt;&lt;br /&gt;It was lunchtime, so we stopped our attempts. As soon as we started eating, however, we realized that this laptop came with 3GB of RAM, and that surely meant &quot;no matching pairs of RAM&quot;, so just after lunch we reflashed the first image, removed one dimm, rebooted and finally saw a gnu-hugging penguin!&lt;br /&gt;&lt;br /&gt;We then tried booting some random live usb key &lt;a href=&quot;https://tails.boum.org/&quot; target=&quot;_blank&quot;&gt;https://tails.boum.org/&lt;/a&gt; we had around (failed the first time, worked the second and further one with no changes), and then proceeded to install Debian.&lt;br /&gt;&lt;br /&gt;Running the installer required some attempts and a bit of duckduckgoing: parsing the isolinux / grub configurations from the libreboot menu didn&#39;t work, but in the end it was as easy as going to the command line and running:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;linux (usb0)/install.amd/vmlinuz&lt;br /&gt;initrd (usb0)/install.amd/initrd.gz&lt;br /&gt;boot&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From there on, it was the usual debian installation and a well know environment, and there were no surprises. I&#39;ve noticed that grub-coreboot is not installed (grub-pc is) and I want to investigate a bit, but rebooting worked out of the box with no issue.&lt;br /&gt;&lt;br /&gt;Next step will be liberating my own X200 laptop, and then if you are around the @&lt;span class=&quot;vcard&quot;&gt;&lt;a class=&quot;url&quot; href=&quot;http://social.gl-como.it/profile/gl-como&quot; title=&quot;Gruppo Linux Como&quot;&gt;&lt;span class=&quot;fn nickname mention&quot;&gt;Gruppo Linux Como&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; area and need a 16 pin clip let us know and we may bring everything to one of the LUG meetings⁴&lt;br /&gt;&lt;br /&gt;¹ yes, white, and most of the instructions on the interwebz talk about the black, which is extremely similar to the white… except where it isn&#39;t&lt;br /&gt;&lt;br /&gt;² wait? there are keyboard maps? doesn&#39;t everybody just use the us one regardless of what is printed on the keys? Do I *live* with somebody who doesn&#39;t? :D&lt;br /&gt;&lt;br /&gt;³ the breadboard in the picture is only there for the power supply, the chip on it is a cheap SPI flash used to test SPI on the bone without risking the laptop :)&lt;br /&gt;&lt;br /&gt;⁴ disclaimer: it worked for us. it may not work on *your* laptop. it may brick it. it may invoke a tentacled monster, it may bind your firstborn son to a life of servitude to some supernatural being. Whatever happens, it&#39;s not our fault. </description> 
	<pubDate>Sun, 24 Jul 2016 18:35:51 +0000</pubDate>

</item> 
<item>
	<title>Gregor Herrmann: RC bugs 2016/01-29</title>
	<guid>https://info.comodo.priv.at/blog/rc_bugs_2016_01_29.html</guid>
	<link>https://info.comodo.priv.at/blog/rc_bugs_2016_01_29.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/gregoa.png&quot; width=&quot;69&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;
seems I&#39;ve neglected both my blog &amp;amp; my RC bug fixing activities in the
last months. – anyway, since I still keep track of RC bugs I worked
on, I thought I might as well publish the list:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/798023&quot;&gt;&lt;del&gt;#798023&lt;/del&gt;&lt;/a&gt; – src:cssutils: &quot;cssutils: FTBFS with Python 3.5&quot;&lt;br /&gt;sponsor NMU by Chris Knadle, upload to DELAYED/2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/800303&quot;&gt;&lt;del&gt;#800303&lt;/del&gt;&lt;/a&gt; – src:libipc-signal-perl: &quot;libipc-signal-perl: Please migrate a supported debhelper compat level&quot;&lt;br /&gt;bump debhelper compat level, upload to DELAYED/5&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/808331&quot;&gt;&lt;del&gt;#808331&lt;/del&gt;&lt;/a&gt; – src:libpgplot-perl: &quot;libpgplot-perl: needs manual rebuild for Perl 5.22 transition&quot;&lt;br /&gt;manually build+upload packages (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/809056&quot;&gt;&lt;del&gt;#809056&lt;/del&gt;&lt;/a&gt; – src:xca: &quot;xca: FTBFS due to CPPFLAGS containing spaces&quot;&lt;br /&gt;sponsor NMU by Chris Knadle, upload to DELAYED/5&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/810017&quot;&gt;&lt;del&gt;#810017&lt;/del&gt;&lt;/a&gt; – src:psi4: &quot;psi4: FTBFS with perl 5.22&quot;&lt;br /&gt;propose a patch&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/810707&quot;&gt;&lt;del&gt;#810707&lt;/del&gt;&lt;/a&gt; – src:libdbd-sqlite3-perl: &quot;libdbd-sqlite3-perl: FTBFS: t/virtual_table/21_perldata_charinfo.t (Wstat: 512 Tests: 4 Failed: 1)&quot;&lt;br /&gt;investigate a bit (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/810710&quot;&gt;&lt;del&gt;#810710&lt;/del&gt;&lt;/a&gt; – src:libdata-objectdriver-perl: &quot;libdata-objectdriver-perl: FTBFS: t/02-basic.t (Wstat: 256 Tests: 67 Failed: 1)&quot;&lt;br /&gt;add patch to handle sqlite 3.10 in test suite&#39;s version comparison (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/810900&quot;&gt;&lt;del&gt;#810900&lt;/del&gt;&lt;/a&gt; – libanyevent-rabbitmq-perl: &quot;libanyevent-rabbitmq-perl: Can&#39;t locate object method &quot;bind_exchange&quot; via package &quot;AnyEvent::RabbitMQ::Channel&quot;&quot;&lt;br /&gt;add info, versioned close (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/810910&quot;&gt;&lt;del&gt;#810910&lt;/del&gt;&lt;/a&gt; – libmath-bigint-gmp-perl: &quot;libmath-bigint-gmp-perl: FTBFS: test failures with newer libmath-bigint-perl&quot;&lt;br /&gt;upload new upstream release (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/810912&quot;&gt;&lt;del&gt;#810912&lt;/del&gt;&lt;/a&gt; – libx11-xcb-perl: &quot;libx11-xcb-perl: missing dependency on libxs-object-magic-perl&quot;&lt;br /&gt;update dependencies (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/813420&quot;&gt;&lt;del&gt;#813420&lt;/del&gt;&lt;/a&gt; – src:libnet-server-mail-perl: &quot;libnet-server-mail-perl: FTBFS: error: Can&#39;t call method &quot;peerhost&quot; on an undefined value at t/starttls.t line 78.&quot;&lt;br /&gt;close, as the underlying problem is fixed (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/814730&quot;&gt;&lt;del&gt;#814730&lt;/del&gt;&lt;/a&gt; – src:libmath-mpfr-perl: &quot;libmath-mpfr-perl: FTBFS on most architectures&quot;&lt;br /&gt;upload new upstream release (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/815775&quot;&gt;&lt;del&gt;#815775&lt;/del&gt;&lt;/a&gt; – zeroc-ice: &quot;Build-Depends on unavailable packages mono-gmcs libmono2.0-cil&quot;&lt;br /&gt;sponsor NMU by Chris Knadle, upload to DELAYED/2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/816527&quot;&gt;&lt;del&gt;#816527&lt;/del&gt;&lt;/a&gt; – src:libtest-file-contents-perl: &quot;libtest-file-contents-perl: FTBFS with Text::Diff 1.44&quot;&lt;br /&gt;upload new upstream release (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/816638&quot;&gt;&lt;del&gt;#816638&lt;/del&gt;&lt;/a&gt; – mhonarc: &quot;mhonarc: fails to run with perl5.22&quot;&lt;br /&gt;propose a patch in the BTS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/817528&quot;&gt;&lt;del&gt;#817528&lt;/del&gt;&lt;/a&gt; – src:libemail-foldertype-perl: &quot;libemail-foldertype-perl: Removal of debhelper compat 4&quot;&lt;br /&gt;raise debhelper compat level, upload to DELAYED/2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/817529&quot;&gt;&lt;del&gt;#817529&lt;/del&gt;&lt;/a&gt; – src:libimage-base-bundle-perl: &quot;libimage-base-bundle-perl: Removal of debhelper compat 4&quot;&lt;br /&gt;raise debhelper compat level, upload to DELAYED/2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/817530&quot;&gt;&lt;del&gt;#817530&lt;/del&gt;&lt;/a&gt; – src:liberror-perl: &quot;liberror-perl: Removal of debhelper compat 4&quot;&lt;br /&gt;raise debhelper compat level, upload to DELAYED/2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/817531&quot;&gt;&lt;del&gt;#817531&lt;/del&gt;&lt;/a&gt; – src:libimage-info-perl: &quot;libimage-info-perl: Removal of debhelper compat 4&quot;&lt;br /&gt;raise debhelper compat level, upload to DELAYED/2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/817647&quot;&gt;&lt;del&gt;#817647&lt;/del&gt;&lt;/a&gt; – src:randomplay: &quot;randomplay: Removal of debhelper compat 4&quot;&lt;br /&gt;raise debhelper compat level, upload to DELAYED/2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/818924&quot;&gt;&lt;del&gt;#818924&lt;/del&gt;&lt;/a&gt; – libjson-webtoken-perl: &quot;libjson-webtoken-perl: missing dependency on libmodule-runtime-perl&quot;&lt;br /&gt;add missing (build) dependency (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/819787&quot;&gt;&lt;del&gt;#819787&lt;/del&gt;&lt;/a&gt; – libdbix-class-schema-loader-perl: &quot;libdbix-class-schema-loader-perl: FTBFS: t/10_01sqlite_common.t failure&quot;&lt;br /&gt;close bug, works again with recent sqlite3 (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/821412&quot;&gt;&lt;del&gt;#821412&lt;/del&gt;&lt;/a&gt; – libnet-rblclient-perl: &quot;libnet-rblclient-perl: Net::DNS 1.01 breaks Net::RBLClient&quot;&lt;br /&gt;add patch (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/823310&quot;&gt;&lt;del&gt;#823310&lt;/del&gt;&lt;/a&gt; – libnanomsg-raw-perl: &quot;libnanomsg-raw-perl: FTBFS: test failures&quot;&lt;br /&gt;add patch from upstream git repo (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/824046&quot;&gt;#824046&lt;/a&gt; – src:libtkx-perl: &quot;libtkx-perl: FTBFS: Tcl error &#39;Foo at /usr/lib/x86_64-linux-gnu/perl5/5.22/Tcl.pm line 585.\n&#39; while invoking scalar result call&quot;&lt;br /&gt;first investigation (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/824143&quot;&gt;&lt;del&gt;#824143&lt;/del&gt;&lt;/a&gt; – libperinci-sub-normalize-perl: &quot;libperinci-sub-normalize-perl: FTBFS: Can&#39;t locate Sah/Schema/Rinci.pm in @INC&quot;&lt;br /&gt;upload new upstream version (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/825366&quot;&gt;&lt;del&gt;#825366&lt;/del&gt;&lt;/a&gt; – src:libdist-zilla-plugin-ourpkgversion-perl: &quot;libdist-zilla-plugin-ourpkgversion-perl: FTBFS: Can&#39;t locate Path/Class.pm in @INC&quot;&lt;br /&gt;add missing dependency (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/825424&quot;&gt;&lt;del&gt;#825424&lt;/del&gt;&lt;/a&gt; – libdist-zilla-plugin-test-podspelling-perl: &quot;libdist-zilla-plugin-test-podspelling-perl: FTBFS: Can&#39;t locate Path/Class.pm in @INC&quot;&lt;br /&gt;first triaging, forward upstream, import new release (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/825608&quot;&gt;#825608&lt;/a&gt; – libnet-jifty-perl: &quot;libnet-jifty-perl: FTBFS: t/006-uploads.t failure&quot;&lt;br /&gt;triaging, mark unreproducible (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/825629&quot;&gt;#825629&lt;/a&gt; – src:libgd-perl: &quot;libgd-perl: FTBFS: Could not find gdlib-config in the search path. &quot;&lt;br /&gt;first triaging, forward upstream (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829064&quot;&gt;&lt;del&gt;#829064&lt;/del&gt;&lt;/a&gt; – libparse-debianchangelog-perl: &quot;libparse-debianchangelog-perl: FTBFS with new tidy version&quot;&lt;br /&gt;patch TML template (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829066&quot;&gt;&lt;del&gt;#829066&lt;/del&gt;&lt;/a&gt; – libparse-plainconfig-perl: &quot;FTBFS: Can&#39;t modify constant item in scalar assignment&quot;&lt;br /&gt;new upstream release (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829176&quot;&gt;&lt;del&gt;#829176&lt;/del&gt;&lt;/a&gt; – src:libapache-htpasswd-perl: &quot;libapache-htpasswd-perl: FTBFS: dh_clean: Please specify the compatibility level in debian/compat&quot;&lt;br /&gt;add debian/compat, upload to DELAYED/2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829409&quot;&gt;&lt;del&gt;#829409&lt;/del&gt;&lt;/a&gt; – src:libhtml-tidy-perl: &quot;libhtml-tidy-perl: FTBFS: Failed 7/21 test programs. 8/69 subtests failed.&quot;&lt;br /&gt;apply patches from Simon McVittie (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829668&quot;&gt;&lt;del&gt;#829668&lt;/del&gt;&lt;/a&gt; – libparse-debianchangelog-perl: &quot;libparse-debianchangelog-perl: FTBFS: Failed test &#39;Output of dpkg_str equal to output of dpkg-parsechangelog&#39;&quot;&lt;br /&gt;add patch for compatibility with new dpkg (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829746&quot;&gt;&lt;del&gt;#829746&lt;/del&gt;&lt;/a&gt; – src:license-reconcile: &quot;license-reconcile: FTBFS: Failed 7/30 test programs. 11/180 subtests failed.&quot;&lt;br /&gt;versioned close, already fixed in latest upload (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/830275&quot;&gt;&lt;del&gt;#830275&lt;/del&gt;&lt;/a&gt; – src:libgravatar-url-perl: &quot;libgravatar-url-perl: accesses the internet during build&quot;&lt;br /&gt;skip test which needs internet access (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/830324&quot;&gt;&lt;del&gt;#830324&lt;/del&gt;&lt;/a&gt; – src:libhttp-async-perl: &quot;libhttp-async-perl: accesses the internet during build&quot;&lt;br /&gt;add patch to skip tests with DNS queries (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/830354&quot;&gt;&lt;del&gt;#830354&lt;/del&gt;&lt;/a&gt; – src:libhttp-proxy-perl: &quot;libhttp-proxy-perl: accesses the internet during build&quot;&lt;br /&gt;skip tests which need internet access (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/830355&quot;&gt;&lt;del&gt;#830355&lt;/del&gt;&lt;/a&gt; – src:libanyevent-http-perl: &quot;libanyevent-http-perl: accesses the internet during build&quot;&lt;br /&gt;skip tests which need internet access (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/830356&quot;&gt;&lt;del&gt;#830356&lt;/del&gt;&lt;/a&gt; – src:libhttp-oai-perl: &quot;libhttp-oai-perl: accesses the internet during build&quot;&lt;br /&gt;add patch to skip tests with DNS queries (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/830476&quot;&gt;&lt;del&gt;#830476&lt;/del&gt;&lt;/a&gt; – src:libpoe-component-client-http-perl: &quot;libpoe-component-client-http-perl: accesses the internet during build&quot;&lt;br /&gt;update existing patch (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/831233&quot;&gt;#831233&lt;/a&gt; – src:libmongodb-perl: &quot;libmongodb-perl: build hangs with sbuild and libeatmydata&quot;&lt;br /&gt;lower severity (pkg-perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/832361&quot;&gt;&lt;del&gt;#832361&lt;/del&gt;&lt;/a&gt; – src:libmousex-getopt-perl: &quot;libmousex-getopt-perl: FTBFS: Failed 2/22 test programs. 2/356 subtests failed.&quot;&lt;br /&gt;upload new upstream release (pkg-perl)&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Sun, 24 Jul 2016 16:34:24 +0000</pubDate>

</item> 
<item>
	<title>Russ Allbery: Review: The Run of His Life</title>
	<guid>http://www.eyrie.org/~eagle/reviews/books/0-307-82916-2.html</guid>
	<link>http://www.eyrie.org/~eagle/reviews/books/0-307-82916-2.html</link>
     <description>  &lt;p&gt;Review: &lt;cite&gt;The Run of His Life&lt;/cite&gt;, by Jeffrey Toobin&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;td&gt;Publisher:&lt;/td&gt;
    &lt;td&gt;Random House&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Copyright:&lt;/td&gt;
    &lt;td&gt;1996, 1997&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Printing:&lt;/td&gt;
    &lt;td&gt;2015&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;ISBN:&lt;/td&gt;
    &lt;td&gt;0-307-82916-2&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Format:&lt;/td&gt;
    &lt;td&gt;Kindle&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Pages:&lt;/td&gt;
    &lt;td&gt;498&lt;/td&gt;
  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;
The O.J. Simpson trial needs little introduction to anyone who lived
through it in the United States, but a brief summary for those who didn&#39;t.
&lt;/p&gt;

&lt;p&gt;
O.J. Simpson is a Hall of Fame football player and one of the best running
backs to ever play the game.  He&#39;s also black, which is very relevant much
of what later happened.  After he retired from professional play, he
became a television football commentator and a spokesperson for various
companies (particularly Hertz, a car rental business).  In 1994, he was
arrested for the murder of two people: his ex-wife, Nicole Brown Simpson,
and Ron Goldman (a friend of Nicole&#39;s).  The arrest happened after a
bizarre low-speed police chase across Los Angeles in a white Bronco that
was broadcast live on network television.  The media turned the resulting
criminal trial into a reality TV show, with live cable television
broadcasts of all of the court proceedings.  After nearly a full year of
trial (with the jury sequestered for nine months — more on that later), a
mostly black jury returned a verdict of not guilty after a mere four hours
of deliberation.
&lt;/p&gt;

&lt;p&gt;
Following the criminal trial, in an extremely unusual legal proceeding,
Simpson was found civilly liable for Ron Goldman&#39;s death in a lawsuit
brought by his family.  Bizarre events surrounding the case continued long
afterwards.  A book titled &lt;cite&gt;If I Did It&lt;/cite&gt; (with &quot;if&quot; in very tiny
letters on the cover) was published, ghost-written but allegedly with
Simpson&#39;s input and cooperation, and was widely considered a confession.
Another legal judgment let the Goldman family get all the profits from
that book&#39;s publication.  In an unrelated (but also bizarre) incident in
Las Vegas, Simpson was later arrested for kidnapping and armed robbery and
is currently in prison until at least 2017.
&lt;/p&gt;

&lt;p&gt;
It is almost impossible to have lived through the O.J. Simpson trial in
the United States and not have formed some opinion on it.  I was in
college and without a TV set at the time, and even I watched some of the
live trial coverage.  Reactions to the trial were extremely racially
polarized, as you might have guessed.  A lot of black people believed at
the time that Simpson was innocent (probably fewer now, given subsequent
events).  A lot of white people thought he was obviously guilty and was
let off by a black jury for racial reasons.  My personal opinion, prior to
reading this book, was a common &quot;third way&quot; among white liberals: Simpson
almost certainly committed the murders, but the racist Los Angeles police
department decided to frame him for a crime that he did commit by trying
to make the evidence stronger.  That&#39;s a legitimate reason in the US
justice system for finding someone innocent: the state has an obligation
to follow correct procedure and treat the defendant fairly in order to get
a conviction.  I have a strong bias towards trusting juries; frequently,
it seems that the media second-guesses the outcome of a case that makes
perfect sense as soon as you see all the information the jury had (or
didn&#39;t have).
&lt;/p&gt;

&lt;p&gt;
Toobin&#39;s book changed my mind.  Perhaps because I wasn&#39;t watching all of
the coverage, I was greatly underestimating the level of incompetence and
bad decision-making by everyone involved: the prosecution, the defense,
the police, the jury, and the judge.  This court case was a disaster from
start to finish; no one involved comes away looking good.  Simpson was
clearly guilty given the evidence presented, but the case was so badly
mishandled that it gave the jury room to reach the wrong verdict.  (It&#39;s
telling that, in the far better managed subsequent civil case, the jury
had no trouble reaching a guilty verdict.)
&lt;/p&gt;

&lt;p&gt;
&lt;cite&gt;The Run of His Life&lt;/cite&gt; is a very detailed examination of the entire
Simpson case, from the night of the murder through the end of the trial
and (in an epilogue) the civil case.  Toobin was himself involved in the
media firestorm, breaking some early news of the defense&#39;s decision to
focus on race in &lt;cite&gt;The New Yorker&lt;/cite&gt; and then involved throughout the
trial as a legal analyst, and he makes it clear when he becomes part of
the story.  But despite that, this book felt objective to me.  There are
tons of direct quotes, lots of clear description of the evidence,
underlying interviews with many of the people involved to source
statements in the book, and a comprehensive approach to the facts.  I
think Toobin is a bit baffled by the black reaction to the case, and that
felt like a gap in the comprehensiveness and the one place where he might
be accused of falling back on stereotypes and easy judgments.  But other
than hole, Toobin applies his criticism even-handedly and devastatingly to
all parties.
&lt;/p&gt;

&lt;p&gt;
I won&#39;t go into all the details of how Toobin changed my mind.  It was a
cumulative effect across the whole book, and if you&#39;re curious, I do
recommend reading it.  A lot was the detailed discussion of the forensic
evidence, which was undermined for the jury at trial but looks very solid
outside the hothouse of the case.  But there is one critical piece that I
would hope would be handled differently today, twenty years later, than it
was by the prosecutors in that case: Simpson&#39;s history of domestic
violence against Nicole.  With what we now know about patterns of domestic
abuse, the escalation to murder looks entirely unsurprising.  And that
history of domestic abuse was exceedingly well-documented: multiple
external witnesses, police reports, and one actual prior conviction for
spousal abuse (for which Simpson did &quot;community service&quot; that was
basically a joke).  The prosecution did a very poor job of establishing
this history and the jury discounted it.  That was a huge mistake by both
parties.
&lt;/p&gt;

&lt;p&gt;
I&#39;ll mention one other critical collection of facts that Toobin explains
well and that contradicted my previous impression of the case: the
relationship between Simpson and the police.
&lt;/p&gt;

&lt;p&gt;
Today, in the era of Black Lives Matter, the routine abuse of black
Americans by the police is more widely known.  At the time of the murders,
it was less recognized among white Americans, although black Americans
certainly knew about it.  But even in 1994, the Los Angeles police
department was notorious as one of the most corrupt and racist big-city
police departments in the United States.  This is the police department
that beat Rodney King.  Mark Fuhrman, one of the police officers involved
in the case (although not that significantly, despite his role at the
trial), was clearly racist and had no business being a police officer.  It
was therefore entirely believable that these people would have decided to
frame a black man for a murder he actually committed.
&lt;/p&gt;

&lt;p&gt;
What Toobin argues, quite persuasively and with quite a lot of evidence,
is that this analysis may make sense given the racial tensions in Los
Angeles but ignores another critical characteristic of Los Angeles
politics, namely a deference to celebrity.  Prior to this trial,
O.J. Simpson largely followed the path of many black athletes who become
broadly popular in white America: underplaying race and focusing on his
personal celebrity and connections.  (Toobin records a quote from Simpson
earlier in his life that perfectly captures this approach: &quot;I&#39;m not black,
I&#39;m O.J.&quot;)  Simpson spent more time with white businessmen than the black
inhabitants of central Los Angeles.  And, more to the point, the police
treated him as a celebrity, not as a black man.
&lt;/p&gt;

&lt;p&gt;
Toobin takes some time to chronicle the remarkable history of deference
and familiarity that the police showed Simpson.  He regularly invited
police officers to his house for parties.  The police had a long history
of largely ignoring or downplaying his abuse of his wife, including not
arresting him in situations that clearly seemed to call for that, showing
a remarkable amount of deference to his side of the story, not pursuing
clear violations of the court judgment after his one conviction for
spousal abuse, and never showing much inclination to believe or protect
Nicole.  Even on the night of the murder, they started following a
standard playbook for giving a celebrity advance warning of investigations
that might involve them before the news media found out about them.  It
seems clear, given the evidence that Toobin collected, that the racist Los
Angeles police didn&#39;t focus that animus at Simpson, a wealthy celebrity
living in Brentwood.  He wasn&#39;t a black man in their eyes; he was a rich
Hall of Fame football player and a friend.
&lt;/p&gt;

&lt;p&gt;
This obviously raises the question of how the jury could return an
innocent verdict.  Toobin provides plenty of material to analyze that
question from multiple angles in his detailed account of the case, but I
can tell you my conclusion: Judge Lance Ito did a horrifically incompetent
job of managing the case.  He let the lawyers wander all over the case,
interacted bizarrely with the media coverage (and was part of letting the
media turn it into a daytime drama), was not crisp or clear about his
standards of evidence and admissibility, and, perhaps worst of all, let
the case meander on at incredible length.  With a fully sequestered jury
allowed only brief conjugal visits and no media contact (not even
bookstore shopping!).
&lt;/p&gt;

&lt;p&gt;
Quite a lot of anger was focused on the jury after the acquittal, and I do
think they reached the wrong conclusion and had all the information they
would have needed to reach the correct one.  But Toobin touches on
something that I think would be very hard to comprehend without having
lived through it.  The jury and alternate pool essentially lived in prison
for nine months, with guards and very strict rules about contact with the
outside world, in a country where compensation for jury duty is almost
nonexistent.  There were a lot of other factors behind their decision,
including racial tensions and the sheer pressure from judging a celebrity
case about which everyone has an opinion, but I think it&#39;s nearly
impossible to underestimate the psychological tension and stress from
being locked up with random other people under armed guard for three
quarters of a year.  It&#39;s hard for jury members to do an exhaustive and
careful deliberation in a typical trial that takes a week and doesn&#39;t
involve sequestration.  People want to get back to their lives and
families.  I can only imagine the state I would be in after &lt;em&gt;nine
months&lt;/em&gt; of this, or how poor psychological shape I would be in to make a
careful and considered decision.
&lt;/p&gt;

&lt;p&gt;
Similarly, for those who condemned the jury for profiting via books and
media appearances after the trial, the &lt;em&gt;current&lt;/em&gt; compensation for
jurors is $15 per day (not hour).  I believe at the time it was around $5
per day.  There are a few employers who will pay full salary for the
entire jury service, but only a few; many cap the length at a few weeks,
and some employers treat all jury duty as unpaid leave.  The only legal
requirement for employers in the United States is that employees that
serve on a jury have their job held for them to return to, but
compensation is pathetic, not tied to minimum wage, and employers do not
have to supplement it.  I&#39;m much less inclined to blame the jurors than
the system that badly mistreated them.
&lt;/p&gt;

&lt;p&gt;
As you can probably tell from the length of this review, I found &lt;cite&gt;The
Run of His Life&lt;/cite&gt; fascinating.  If I had followed the whole saga more
closely at the time, this may have been old material, but I think my vague
impressions and patchwork of assumptions were more typical than not among
people who were around for the trial but didn&#39;t invest a lot of effort
into following it.  If you are like me, and you have any interest in the
case or the details of how the US criminal justice system works, this is a
fascinating case study, and Toobin does a great job with it.  Recommended.
&lt;/p&gt;

&lt;p&gt;Rating: 8 out of 10&lt;/p&gt; </description> 
	<pubDate>Sun, 24 Jul 2016 02:13:00 +0000</pubDate>

</item> 
<item>
	<title>Steve Kemp: A final post about the lua-editor.</title>
	<guid>https://blog.steve.fi/A_final_post_about_the_lua_editor_.html</guid>
	<link>https://blog.steve.fi/A_final_post_about_the_lua_editor_.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/skx.png&quot; width=&quot;76&quot; height=&quot;105&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I &lt;a href=&quot;https://blog.steve.fi/Adding_lua_to_all_the_things_.html&quot;&gt;recently mentioned&lt;/a&gt; that I&#39;d forked Antirez&#39;s editor and added lua to it.&lt;/p&gt;

&lt;p&gt;I&#39;ve been working on it, on and off, for the past week or two now.  It&#39;s finally reached a point where I&#39;m content:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The undo-support is improved.&lt;/li&gt;
&lt;li&gt;It has buffers, such that you can open multiple files and switch between them.
&lt;ul&gt;
&lt;li&gt;This allows this to work &quot;&lt;code&gt;kilua *.txt&lt;/code&gt;&quot;, for example.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The syntax-highlighting is improved.
&lt;ul&gt;
&lt;li&gt;We can now change the size of TAB-characters.&lt;/li&gt;
&lt;li&gt;We can now enable/disable highlighting of trailing whitespace.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The default configuration-file is now embedded in the body of the editor, so you can run it portably.&lt;/li&gt;
&lt;li&gt;The keyboard input is better, allowing multi-character bindings.
&lt;ul&gt;
&lt;li&gt;The following are possible, for example &lt;code&gt;^C&lt;/code&gt;, &lt;code&gt;M-!&lt;/code&gt;, &lt;code&gt;^X^C&lt;/code&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the obvious things I use in Emacs are present, such as the
ability to customize the status-bar (right now it shows the cursor
position, the number of characters, the number of words, etc, etc).&lt;/p&gt;

&lt;p&gt;Anyway I&#39;ll stop talking about it now :)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/skx/kilua&quot;&gt;https://github.com/skx/kilua&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Sat, 23 Jul 2016 05:30:24 +0000</pubDate>

</item> 
<item>
	<title>Francois Marier: Replacing a failed RAID drive</title>
	<guid>http://feeding.cloud.geek.nz/posts/replacing-a-failed-raid-drive/</guid>
	<link>http://feeding.cloud.geek.nz/posts/replacing-a-failed-raid-drive/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/francois.png&quot; width=&quot;65&quot; height=&quot;93&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Here&#39;s the complete procedure I followed to replace a failed drive from a
RAID array on a Debian machine.&lt;/p&gt;

&lt;h1 id=&quot;Replace_the_failed_drive&quot;&gt;Replace the failed drive&lt;/h1&gt;

&lt;p&gt;After seeing that &lt;code&gt;/dev/sdb&lt;/code&gt; had been kicked out of my RAID array, I used
&lt;a href=&quot;https://packages.debian.org/jessie/smartmontools&quot;&gt;smartmontools&lt;/a&gt; to
identify the serial number of the drive to pull out:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;smartctl -a /dev/sdb
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Armed with this information, I shutdown the computer, pulled the bad drive
out and put the new blank one in.&lt;/p&gt;

&lt;h1 id=&quot;Initialize_the_new_drive&quot;&gt;Initialize the new drive&lt;/h1&gt;

&lt;p&gt;After booting with the new blank drive in, I copied the partition table
using &lt;a href=&quot;https://packages.debian.org/jessie/parted&quot;&gt;parted&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First, I took a look at what the partition table looks like on the good
drive:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ parted /dev/sda
unit s
print
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and created a new empty one on the replacement drive:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ parted /dev/sdb
unit s
mktable gpt
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;then I ran &lt;code&gt;mkpart&lt;/code&gt; for all 4 partitions and made them all the same size as
the matching ones on &lt;code&gt;/dev/sda&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Finally, I ran &lt;code&gt;toggle 1 bios_grub&lt;/code&gt; (boot partition) and &lt;code&gt;toggle X raid&lt;/code&gt;
(where &lt;em&gt;X&lt;/em&gt; is the partition number) for all RAID partitions, before
verifying using &lt;code&gt;print&lt;/code&gt; that the two partition tables were now the same.&lt;/p&gt;

&lt;h1 id=&quot;Resync.2Frecreate_the_RAID_arrays&quot;&gt;Resync/recreate the RAID arrays&lt;/h1&gt;

&lt;p&gt;To sync the data from the good drive (&lt;code&gt;/dev/sda&lt;/code&gt;) to the replacement one
(&lt;code&gt;/dev/sdb&lt;/code&gt;), I ran the following on my RAID1 partitions:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mdadm /dev/md0 -a /dev/sdb2
mdadm /dev/md2 -a /dev/sdb4
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and kept an eye on the status of this sync using:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;watch -n 2 cat /proc/mdstat
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In order to &lt;a href=&quot;http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html&quot;&gt;speed up the
sync&lt;/a&gt;,
I used the following trick:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;blockdev --setra 65536 &quot;/dev/md0&quot;
blockdev --setra 65536 &quot;/dev/md2&quot;
echo 300000 &amp;gt; /proc/sys/dev/raid/speed_limit_min
echo 1000000 &amp;gt; /proc/sys/dev/raid/speed_limit_max
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then, I recreated my RAID0 swap partition like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mdadm /dev/md1 --create --level=0 --raid-devices=2 /dev/sda3 /dev/sdb3
mkswap /dev/md1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Because the swap partition is brand new (you can&#39;t restore a RAID0, you need
to re-create it), I had to update two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;replace the UUID for the swap mount in &lt;code&gt;/etc/fstab&lt;/code&gt;, with the one returned
by &lt;code&gt;mkswap&lt;/code&gt; (or running &lt;code&gt;blkid&lt;/code&gt; and looking for &lt;code&gt;/dev/md1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;replace the UUID for &lt;code&gt;/dev/md1&lt;/code&gt; in &lt;code&gt;/etc/mdadm/mdadm.conf&lt;/code&gt; with the one
returned for &lt;code&gt;/dev/md1&lt;/code&gt; by &lt;code&gt;mdadm --detail --scan&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h1 id=&quot;Ensuring_that_I_can_boot_with_the_replacement_drive&quot;&gt;Ensuring that I can boot with the replacement drive&lt;/h1&gt;

&lt;p&gt;In order to be able to boot from both drives, I reinstalled the grub boot
loader onto the replacement drive:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;grub-install /dev/sdb
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;before rebooting with both drives to first make sure that my new config
works.&lt;/p&gt;

&lt;p&gt;Then I booted without &lt;code&gt;/dev/sda&lt;/code&gt; to make sure that everything would be fine
should that drive fail and leave me with just the new one (&lt;code&gt;/dev/sdb&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;This test obviously gets the two drives out of sync, so I rebooted with both
drives plugged in and then had to re-add &lt;code&gt;/dev/sda&lt;/code&gt; to the RAID1 arrays:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mdadm /dev/md0 -a /dev/sda2
mdadm /dev/md2 -a /dev/sda4
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once that finished, I rebooted again with both drives plugged in to confirm
that everything is fine:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cat /proc/mdstat
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then I ran a full SMART test over the new replacement drive:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;smartctl -t long /dev/sdb
&lt;/code&gt;&lt;/pre&gt; </description> 
	<pubDate>Sat, 23 Jul 2016 05:00:00 +0000</pubDate>

</item> 
<item>
	<title>Mateus Bellomo: Send/receive text messages to buddies</title>
	<guid>http://mateusbellomo.wordpress.com/?p=87</guid>
	<link>https://mateusbellomo.wordpress.com/2016/07/23/sendreceive-text-messages-to-buddies/</link>
     <description>  &lt;p&gt;Some weeks ago I’ve implemented the option to send a text message from telepathy-resiprocate Empathy. At that time I just implemented it at apps/telepathy/TextChannel class which wasn’t the ideal. Now, with a better understand of the resip/recon and resip/dum APIs, I was able to move this implementation there.&lt;/p&gt;
&lt;p&gt;Besides that I also have implemented the option to receive a text message. For that I have done some changes at resip/recon/ConversationManager and resip/recon/UserAgent classes, along some other.&lt;/p&gt;
&lt;p&gt;The complete changes could be seen at [1]. This branch also holds modifications related to send/receive presence. This is necessary since to send a message to a contact he/she should be online.&lt;/p&gt;
&lt;p&gt;There is still work to be done specially checking the possible error cases but at least we could see a first prototype working. Follow some images:&lt;/p&gt;
&lt;figure class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_116&quot; style=&quot;width: 746px;&quot;&gt;&lt;img alt=&quot;textChannel_Jitsi&quot; class=&quot; size-full wp-image-116 aligncenter&quot; src=&quot;https://mateusbellomo.files.wordpress.com/2016/07/textchannel_jitsi1.png?w=739&quot; /&gt;Account logged in with Jitsi&lt;/figure&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;figure class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_119&quot; style=&quot;width: 979px;&quot;&gt;&lt;img alt=&quot;textChannel_Empathy&quot; class=&quot; size-full wp-image-119 aligncenter&quot; src=&quot;https://mateusbellomo.files.wordpress.com/2016/07/textchannel_empathy1.png?w=739&quot; /&gt;Account logged in with Empathy using telepathy-resiprocate&lt;/figure&gt;
&lt;p&gt;[1] &lt;a href=&quot;https://github.com/resiprocate/resiprocate/compare/master…MateusBellomo:mateus-presence-text&quot; rel=&quot;nofollow&quot;&gt;https://github.com/resiprocate/resiprocate/compare/master…MateusBellomo:mateus-presence-text&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/mateusbellomo.wordpress.com/87/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/mateusbellomo.wordpress.com/87/&quot; /&gt;&lt;/a&gt; </description> 
	<pubDate>Sat, 23 Jul 2016 04:00:55 +0000</pubDate>

</item> 
<item>
	<title>Norbert Preining: Yukio Mishima – The Temple of the Golden Pavilion</title>
	<guid>https://www.preining.info/blog/?p=5738</guid>
	<link>https://www.preining.info/blog/2016/07/yukio-mishima-the-temple-of-the-golden-pavilion/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/preining.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;A masterpiece of modern Japanese literature: &lt;a href=&quot;https://en.wikipedia.org/wiki/Yukio_Mishima&quot;&gt;Yukio Mishima&lt;/a&gt; (&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E4%B8%89%E5%B3%B6%E7%94%B1%E7%B4%80%E5%A4%AB&quot;&gt;三島由紀夫&lt;/a&gt;) &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Temple_of_the_Golden_Pavilion&quot;&gt;The Temple of the Golden Pavilion&lt;/a&gt; (&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E9%87%91%E9%96%A3%E5%AF%BA_(%E5%B0%8F%E8%AA%AC)&quot;&gt;金閣寺&lt;/a&gt;). The fictional story about the very real arson attack that destroyed the Golden Pavilion in 1950.&lt;br /&gt;
&lt;img alt=&quot;mishima-golden-temple&quot; class=&quot;aligncenter size-full wp-image-5739&quot; height=&quot;680&quot; src=&quot;http://www.preining.info/blog/wp-content/uploads/2016/07/mishima-golden-temple.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A bit different treatise on beauty and ugliness! &lt;span id=&quot;more-5738&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;How shall I put it? Beauty – yes, beauty is like a decayed tooth. It rubs against one’s tongue, it hangs there, hurting one, insisting on its own existence, finally […] the tooth extracted. Then, as one looks at the small, dirty, brown, blood-stained tooth lying in one’s hand, one’s thoughts are likely to be as follows: ‘Is this it?’&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Mizoguchi, a stutterer, is from young years on taken by a near mystical imagination of the Golden Pavilion, influence by his father who considers it the most beautiful object in the world. After his father’s death he moves to Kyoto and becomes acolyte in the temple. He develops a friendship with Kashiwagi, who uses his clubfeet to make women feel sorry for him and &lt;em&gt;make them fall in love with his clubfeet&lt;/em&gt;, as he puts it. Kashiwagi also puts Mizoguchi onto the first tracks of amorous experiences, but Mizoguchi invariably turns out to be impotent – but not due to his stuttering, but due to the image of the Golden Pavilion appearing in the essential moment and destroying every chance.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Yes, this was really the coast of the Sea of Japan! Here was the source of all my unhappiness, of all my gloomy thoughts, the origin of all my ugliness and all my strength. It was a wild sea.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Mizoguchi is getting more and more mentally about his relation with the head monk, neglects his studies, and after a stark reprimand he escapes to the north coast, from where he is brought back by police to the temple. He decides to burn down the Golden Pavilion, which has taken more and more command of his thinking and doing. He carries out the deed with the aim to burn himself in the top floor, but escapes in the last second to retreat into the hills to watch the spectacle.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Closely based on the true story of the arsonist of the Golden Pavilion, whom Mishima even visited in prison, the book is a treatise about beauty and ugly. &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;At his trial he [the real arsonist] said: “I hate myself, my evil, ugly, stammering self.” Yet he also said that he did not in any way regret having burned down the Kinkakuji.&lt;br /&gt;
&lt;cite&gt;Nancy Wilson Ross in the preface&lt;/cite&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Mishima is master in showing these two extremes by contrasting the refined qualities of Japanese culture – flower arrangement, playing the shakuhachi, … – with immediate outburst of contrasting behavior: cold and brutal recklessness. Take for example the scene were Kashiwagi is arranging flowers, stolen by Mizoguchi from the temple grounds, while Mizoguchi is playing the flute. They also discuss koans and various interpretations. Enters the Ikebana teacher, and mistress of Kashiwagi. She congratulates Kashiwagi to his excellent arrangement, which he answers coldly by quitting their relationship, both as teacher as well as mistress, and telling her not to see him again in a formal style. She, still ceremonially kneeling, suddenly destroys the flower arrangement, only to be beaten and thrown out by Kashiwagi. And the beauty and harmony has turned to ugliness and hate in seconds.&lt;/p&gt;
&lt;p&gt;Beauty and Ugliness, two sides of the same medal, or inherently the same, because it is only up to the point of view. Mishima ingeniously plays with this duality, and leads us through the slow and painful development of Mizoguchi to the bitter end, which finally gives him freedom, freedom from the force of beauty. Sometimes seeing how our society is obsessed with beauty – I cannot get rid of the feeling that there are far more Mizoguchis at heart.&lt;/p&gt; </description> 
	<pubDate>Fri, 22 Jul 2016 15:37:28 +0000</pubDate>

</item> 
<item>
	<title>Paul Tagliamonte: HOPE 11</title>
	<guid>http://blog.pault.ag/post/147794877863</guid>
	<link>http://blog.pault.ag/post/147794877863</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/paultag.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I’ll be at HOPE 11 this year - if anyone else will be around, feel free to send me an email! I won’t have a phone on me (so texting only works if you use Signal!)&lt;/p&gt;

&lt;p&gt;Looking forward for a chance to see everyone soon!&lt;/p&gt; </description> 
	<pubDate>Fri, 22 Jul 2016 12:16:06 +0000</pubDate>

</item> 
<item>
	<title>Russell Coker: 802.1x Authentication on Debian</title>
	<guid>https://etbe.coker.com.au/?p=4340</guid>
	<link>https://etbe.coker.com.au/2016/07/22/802-1x-authentication-on-debian/</link>
     <description>  &lt;p&gt;I recently had to setup some Linux workstations with 802.1x authentication (described as “Ethernet authentication”) to connect to a smart switch. The most useful web site I found was &lt;a href=&quot;https://help.ubuntu.com/community/Network802.1xAuthentication&quot;&gt;the Ubuntu help site about 802.1x Authentication [1]&lt;/a&gt;. But it didn’t describe exactly what I needed so I’m writing a more concise explanation.&lt;/p&gt;
&lt;p&gt;The first thing to note is that the authentication mechanism works the same way as 802.11 wireless authentication, so it’s a good idea to have the wpasupplicant package installed on all laptops just in case you need to connect to such a network.&lt;/p&gt;
&lt;p&gt;The first step is to create a wpa_supplicant config file, I named mine &lt;b&gt;/etc/wpa_supplicant_SITE.conf&lt;/b&gt;. The file needs contents like the following:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;
&lt;/b&gt;&lt;/p&gt;&lt;pre&gt;&lt;b&gt;network={
 key_mgmt=IEEE8021X
 eap=PEAP
 identity=&quot;USERNAME&quot;
 anonymous_identity=&quot;USERNAME&quot;
 password=&quot;PASS&quot;
 phase1=&quot;auth=MD5&quot;
 phase2=&quot;auth=CHAP password=PASS&quot;
 eapol_flags=0
}&lt;/b&gt;&lt;/pre&gt;&lt;b&gt;
&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The first difference between what I use and the Ubuntu example is that I’m using “&lt;b&gt;eap=PEAP&lt;/b&gt;“, that is an issue of the way the network is configured, whoever runs your switch can tell you the correct settings for that. The next difference is that I’m using “&lt;b&gt;auth=CHAP&lt;/b&gt;” and the Ubuntu example has “&lt;b&gt;auth=PAP&lt;/b&gt;“. The difference between those protocols is that CHAP has a challenge-response and PAP just has the password sent (maybe encrypted) over the network. If whoever runs the network says that they “don’t store unhashed passwords” or makes any similar claim then they are almost certainly using CHAP.
&lt;/p&gt;&lt;p&gt;Change USERNAME and PASS to your user name and password.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;wpa_supplicant -c /etc/wpa_supplicant_SITE.conf -D wired -i eth0&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The above command can be used to test the operation of wpa_supplicant.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;
&lt;/b&gt;&lt;/p&gt;&lt;pre&gt;&lt;b&gt;Successfully initialized wpa_supplicant
eth0: Associated with 00:01:02:03:04:05
eth0: CTRL-EVENT-EAP-STARTED EAP authentication started
eth0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25
TLS: Unsupported Phase2 EAP method &#39;CHAP&#39;
eth0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected
eth0: CTRL-EVENT-EAP-PEER-CERT depth=0 subject=&#39;&#39;
eth0: CTRL-EVENT-EAP-PEER-CERT depth=0 subject=&#39;&#39;
EAP-MSCHAPV2: Authentication succeeded
EAP-TLV: TLV Result - Success - EAP-TLV/Phase2 Completed
eth0: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
eth0: CTRL-EVENT-CONNECTED - Connection to 00:01:02:03:04:05 completed [id=0 id_str=]&lt;/b&gt;&lt;/pre&gt;&lt;b&gt;
&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Above is the output of a successful test with wpa_supplicant. I replaced the MAC of the switch with 00:01:02:03:04:05. Strangely it doesn’t like “CHAP” but is automatically selecting “MSCHAPV2” and working, maybe anything other than “PAP” would do.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;
&lt;/b&gt;&lt;/p&gt;&lt;pre&gt;&lt;b&gt;auto eth0
iface eth0 inet dhcp
  wpa-driver wired
  wpa-conf /etc/wpa_supplicant_SITE.conf&lt;/b&gt;&lt;/pre&gt;&lt;b&gt;
&lt;/b&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Above is a snippet of /etc/network/interfaces that works with this configuration.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[1]&lt;a href=&quot;https://help.ubuntu.com/community/Network802.1xAuthentication&quot;&gt; https://help.ubuntu.com/community/Network802.1xAuthentication&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;yarpp-related-rss&quot;&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://etbe.coker.com.au/2012/06/20/sasl-authentication-wheezy/&quot; rel=&quot;bookmark&quot; title=&quot;SASL Authentication and Debian/Wheezy&quot;&gt;SASL Authentication and Debian/Wheezy &lt;/a&gt; &lt;small&gt;After upgrading a mail server to Debian/Unstable (which will soon...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://etbe.coker.com.au/2014/02/10/fingerprints-authentication/&quot; rel=&quot;bookmark&quot; title=&quot;Fingerprints and Authentication&quot;&gt;Fingerprints and Authentication &lt;/a&gt; &lt;small&gt;Dustin Kirkland wrote an interesting post about fingerprint authentication [1]....&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://etbe.coker.com.au/2007/01/01/installing-xen-domu-on-debian-etch/&quot; rel=&quot;bookmark&quot; title=&quot;installing Xen domU on Debian Etch&quot;&gt;installing Xen domU on Debian Etch &lt;/a&gt; &lt;small&gt;I have just been installing a Xen domU on Debian...&lt;/small&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt; </description> 
	<pubDate>Fri, 22 Jul 2016 06:10:11 +0000</pubDate>

</item> 
<item>
	<title>Dirk Eddelbuettel: RcppCCTZ 0.0.5</title>
	<guid>http://dirk.eddelbuettel.com/blog/2016/07/21#rcppcctz_0.0.5</guid>
	<link>http://dirk.eddelbuettel.com/blog/2016/07/21#rcppcctz_0.0.5</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/dirk.png&quot; width=&quot;65&quot; height=&quot;90&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Version 0.0.5 of &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.cctz.html&quot;&gt;RcppCCTZ&lt;/a&gt; arrived on &lt;a href=&quot;https://cloud.r-project.org&quot;&gt;CRAN&lt;/a&gt; a couple of days ago. It reflects an upstream fixed made a few weeks ago. &lt;a href=&quot;https://cloud.r-project.org&quot;&gt;CRAN&lt;/a&gt; tests revealed that &lt;code&gt;g++-6&lt;/code&gt; was tripping over one missing &lt;code&gt;#define&lt;/code&gt;; this was added &lt;a href=&quot;https://github.com/google/cctz/commit/6bff56627bcb385234055ebf8c557683758f237c&quot;&gt;upstream&lt;/a&gt; and I subsequently synchronized with upstream. At the same time the set of examples was extended (see below).&lt;/p&gt;
&lt;p&gt;Somehow &lt;a href=&quot;https://useR2016.org&quot;&gt;useR! 2016&lt;/a&gt; got in the way and while working on the then-incomplete examples during the traveling I forgot to release this until &lt;a href=&quot;https://cloud.r-project.org&quot;&gt;CRAN&lt;/a&gt; reminded me that their tests still failed. I promptly prepared the 0.0.5 release but somehow failed to update NEWS files etc. They are correct in the repo but not in the shipped package. Oh well.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/google/cctz&quot;&gt;CCTZ&lt;/a&gt; is &lt;em&gt;a C++ library for translating between absolute and civil times using the rules of a time zone&lt;/em&gt;. In fact, it is &lt;em&gt;two&lt;/em&gt; libraries. One for dealing with &lt;em&gt;civil time&lt;/em&gt;: human-readable dates and times, and one for converting between between absolute and civil times via time zones. It requires only a proper C++11 compiler and the standard IANA time zone data base which standard Unix, Linux, OS X, ... computers tend to have in &lt;code&gt;/usr/share/zoneinfo&lt;/code&gt;. &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.cctz.html&quot;&gt;RcppCCTZ&lt;/a&gt; connects this library to R by relying on &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.html&quot;&gt;Rcpp&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Two good examples are now included, and shown here. The first one tabulates the time difference between New York and London (at a weekly level for compactness):&lt;/p&gt;
&lt;div class=&quot;sourceCode&quot;&gt;&lt;pre class=&quot;sourceCode r&quot;&gt;&lt;code class=&quot;sourceCode r&quot;&gt;R&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw&quot;&gt;example&lt;/span&gt;(tzDiff)

tzDiffR&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;span class=&quot;co&quot;&gt;# simple call: difference now&lt;/span&gt;
tzDiffR&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw&quot;&gt;tzDiff&lt;/span&gt;(&lt;span class=&quot;st&quot;&gt;&quot;America/New_York&quot;&lt;/span&gt;, &lt;span class=&quot;st&quot;&gt;&quot;Europe/London&quot;&lt;/span&gt;, &lt;span class=&quot;kw&quot;&gt;Sys.time&lt;/span&gt;())
[&lt;span class=&quot;dv&quot;&gt;1&lt;/span&gt;] &lt;span class=&quot;dv&quot;&gt;5&lt;/span&gt;

tzDiffR&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;span class=&quot;co&quot;&gt;# tabulate difference for every week of the year&lt;/span&gt;
tzDiffR&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw&quot;&gt;table&lt;/span&gt;(&lt;span class=&quot;kw&quot;&gt;sapply&lt;/span&gt;(&lt;span class=&quot;dv&quot;&gt;0&lt;/span&gt;:&lt;span class=&quot;dv&quot;&gt;52&lt;/span&gt;, function(d) &lt;span class=&quot;kw&quot;&gt;tzDiff&lt;/span&gt;(&lt;span class=&quot;st&quot;&gt;&quot;America/New_York&quot;&lt;/span&gt;, &lt;span class=&quot;st&quot;&gt;&quot;Europe/London&quot;&lt;/span&gt;,
tzDiff+&lt;span class=&quot;st&quot;&gt;                                       &lt;/span&gt;&lt;span class=&quot;kw&quot;&gt;as.POSIXct&lt;/span&gt;(&lt;span class=&quot;kw&quot;&gt;as.Date&lt;/span&gt;(&lt;span class=&quot;st&quot;&gt;&quot;2016-01-01&quot;&lt;/span&gt;) +&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;d*&lt;span class=&quot;dv&quot;&gt;7&lt;/span&gt;))))

 &lt;span class=&quot;dv&quot;&gt;4&lt;/span&gt;  &lt;span class=&quot;dv&quot;&gt;5&lt;/span&gt; 
 &lt;span class=&quot;dv&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;dv&quot;&gt;50&lt;/span&gt; 
R&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Because the two continents happen to &lt;em&gt;spring forward&lt;/em&gt; and &lt;em&gt;fall backwards&lt;/em&gt; between regular and daylight savings times, there are, respectively, two and one week periods where the difference is one hour less than usual.&lt;/p&gt;
&lt;p&gt;A second example shifts the time to a different time zone:&lt;/p&gt;
&lt;div class=&quot;sourceCode&quot;&gt;&lt;pre class=&quot;sourceCode r&quot;&gt;&lt;code class=&quot;sourceCode r&quot;&gt;R&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw&quot;&gt;example&lt;/span&gt;(toTz)

toTzR&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw&quot;&gt;toTz&lt;/span&gt;(&lt;span class=&quot;kw&quot;&gt;Sys.time&lt;/span&gt;(), &lt;span class=&quot;st&quot;&gt;&quot;America/New_York&quot;&lt;/span&gt;, &lt;span class=&quot;st&quot;&gt;&quot;Europe/London&quot;&lt;/span&gt;)
[&lt;span class=&quot;dv&quot;&gt;1&lt;/span&gt;] &lt;span class=&quot;st&quot;&gt;&quot;2016-07-14 10:28:39.91740 CDT&quot;&lt;/span&gt;
R&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note that because we return a &lt;code&gt;POSIXct&lt;/code&gt; object, it is printed by R with the default (local) TZ attribute (for &quot;America/Chicago&quot; in my case). A more direct example asks what time it is in my time zone when it is midnight in Tokyo:&lt;/p&gt;
&lt;div class=&quot;sourceCode&quot;&gt;&lt;pre class=&quot;sourceCode r&quot;&gt;&lt;code class=&quot;sourceCode r&quot;&gt;R&amp;gt;&lt;span class=&quot;st&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw&quot;&gt;toTz&lt;/span&gt;(&lt;span class=&quot;kw&quot;&gt;ISOdatetime&lt;/span&gt;(&lt;span class=&quot;dv&quot;&gt;2016&lt;/span&gt;,&lt;span class=&quot;dv&quot;&gt;7&lt;/span&gt;,&lt;span class=&quot;dv&quot;&gt;15&lt;/span&gt;,&lt;span class=&quot;dv&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;dv&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;dv&quot;&gt;0&lt;/span&gt;), &lt;span class=&quot;st&quot;&gt;&quot;Japan&quot;&lt;/span&gt;, &lt;span class=&quot;st&quot;&gt;&quot;America/Chicago&quot;&lt;/span&gt;)
[&lt;span class=&quot;dv&quot;&gt;1&lt;/span&gt;] &lt;span class=&quot;st&quot;&gt;&quot;2016-07-14 15:00:00 CDT&quot;&lt;/span&gt;
R&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;More changes will come in 0.0.6 as soon as I find time to translate the nice &lt;code&gt;time_tool&lt;/code&gt; (command-line) example into an R function.&lt;/p&gt;
&lt;p&gt;Changes in this version are summarized here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h4&gt;
Changes in version 0.0.5 (2016-07-09)
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
New utility example functions &lt;code&gt;toTz()&lt;/code&gt; and &lt;code&gt;tzDiff&lt;/code&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Synchronized with small upstream change for additional &lt;code&gt;#ifdef&lt;/code&gt; for compiler differentiation
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;We also have a &lt;a href=&quot;http://dirk.eddelbuettel.com/cranberries/2016/07/10#RcppCCTZ_0.0.5&quot;&gt;diff to the previous version&lt;/a&gt; thanks to &lt;a href=&quot;http://dirk.eddelbuettel.com/cranberries&quot;&gt;CRANberries&lt;/a&gt;. More details are at the &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.cctz.html&quot;&gt;RcppCCTZ page&lt;/a&gt;; code, issue tickets etc at the &lt;a href=&quot;https://github.com/eddelbuettel/rcppcctz&quot;&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;font-size: 80%; font-style: italic;&quot;&gt;
This post by &lt;a href=&quot;http://dirk.eddelbuettel.com&quot;&gt;Dirk Eddelbuettel&lt;/a&gt; originated on his &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/&quot;&gt;Thinking inside the box&lt;/a&gt; blog. Please report excessive re-aggregation in third-party for-profit settings.
&lt;/p&gt;&lt;p&gt;&lt;/p&gt; </description> 
	<pubDate>Fri, 22 Jul 2016 03:08:00 +0000</pubDate>

</item> 
<item>
	<title>Martin Michlmayr: Debian on Seagate Personal Cloud and Seagate NAS</title>
	<guid>tag:www.cyrius.com,2016-07-21:/blog/debian/marvell/debian-on-seagate-personal-cloud-nas/</guid>
	<link>http://www.cyrius.com/blog/debian/marvell/debian-on-seagate-personal-cloud-nas/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/tbm.png&quot; width=&quot;67&quot; height=&quot;90&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;The majority of NAS devices supported in Debian are based on Marvell&#39;s Kirkwood platform. This platform is quite dated now and can only run Debian&#39;s &lt;code&gt;armel&lt;/code&gt; port.&lt;/p&gt;
&lt;p&gt;Debian now supports the Seagate Personal Cloud and Seagate NAS devices. They are based on Marvell&#39;s Armada 370, a platform which can run Debian&#39;s &lt;code&gt;armhf&lt;/code&gt; port. Unfortunately, even the Armada 370 is a bit dated now, so I would not recommend these devices for new purchases. If you have one already, however, you now have the option to run native Debian.&lt;/p&gt;
&lt;p&gt;There are some features I like about the Seagate NAS devices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Network console: you can connect to the boot loader via the network. This is useful to load Debian or to run recovery commands if needed.&lt;/li&gt;
&lt;li&gt;Mainline support: the devices are supported in the mainline kernel.&lt;/li&gt;
&lt;li&gt;Good contacts: Seagate engineer Simon Guinot is interested in Debian support and is a joy to work with. There&#39;s also a community for &lt;a href=&quot;http://lacie-nas.org/&quot;&gt;LaCie NAS devices&lt;/a&gt; (Seagate acquired LaCie).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have a Seagate Personal Cloud and Seagate NAS, you can follow the &lt;a href=&quot;https://wiki.debian.org/InstallingDebianOn/Seagate/PersonalCloud&quot;&gt;instructions on the Debian wiki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If Seagate releases more NAS devices on Marvell&#39;s Armada platform, I intend to add Debian support.&lt;/p&gt; </description> 
	<pubDate>Fri, 22 Jul 2016 02:50:27 +0000</pubDate>

</item> 
<item>
	<title>Vincent Fourmond: QSoas version 2.0 is out / QSoas paper</title>
	<guid>tag:blogger.com,1999:blog-3019054489127059271.post-1621642607021438589</guid>
	<link>http://vince-debian.blogspot.com/2016/07/qsoas-version-20-is-out-qsoas-paper.html</link>
     <description>  I thought it would come before that, but I&#39;ve finally gotten around releasing version 2.0 of my data analysis program, &lt;a href=&quot;http://www.qsoas.org&quot;&gt;QSoas&lt;/a&gt; !&lt;p&gt;&lt;br /&gt;
It provides significant improvements to the fit interface, in particular for multi-buffer fits, with a “Multi” fit engine that performs very well for large multibuffer fits, a spreadsheet editor for fit parameters, and more usability improvements. It also features the definition of fits with distribution of  values of one of the fit parameter, and new built-in fits. In addition, QSoas version 2.0 features new commands to derive data, to flag buffers and handle large multi-column datasets, and improvements of existing commands. The full list of changes since version 1.0 can be found &lt;a href=&quot;http://www.qsoas.org/changes.html&quot;&gt;there&lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;As before, you can download the source code from our &lt;a href=&quot;http://www.qsoas.org/downloads.html&quot;&gt;website&lt;/a&gt;, and purchase the pre-built binaries following the links from that page too.&lt;/p&gt;&lt;p&gt;In addition, I am glad to announce that QSoas is now described in a recent publication, &lt;a href=&quot;http://dx.doi.org/10.1021/acs.analchem.6b00224&quot;&gt;Fourmond, Anal. Chem., 2016, 88, 5050-5052&lt;/a&gt;. Please cite this publication if you used QSoas to process your data.&lt;/p&gt; </description> 
	<pubDate>Thu, 21 Jul 2016 21:04:22 +0000</pubDate>
  <author>noreply@blogger.com (Vincent Fourmond)</author>  
</item> 
<item>
	<title>Olivier Grégoire: Height week: create an API on library ring client (LRC)</title>
	<guid>https://gasuleg.github.io//weekly/report/2016/07/21/welcome-to-jekyll01000.html</guid>
	<link>https://gasuleg.github.io//weekly/report/2016/07/21/welcome-to-jekyll01000.html</link>
     <description>  &lt;p&gt;At the beginning of the week, I didn’t really use the LRC to communicate with my client.&lt;br /&gt;
-The client calls an function in it to call my method who calls my program&lt;br /&gt;
-The daemon sends his signal connect to an Qslot in LRC. After that, I just send another signal connect to a lambda function of the client&lt;/p&gt;

&lt;p&gt;I have never programmed API before and I began to write some code without checking how doing that. I needed to extract all the information of my map&amp;lt;s,s&amp;gt; sending by the daemon to present all it in my API. After observing the code, I saw LRC follow the &lt;a href=&quot;https://community.kde.org/Policies/Library_Code_Policy&quot;&gt;kde library code policy&lt;/a&gt;. So, I change my architecture to follow the same policies . Basically, I needed to create a public and private header by using the D-Pointer. My private header contains my slot who is connect with the daemon and all private variable. My public header contains a signal connect to lambda function who indicates to the client when some information change and he need to refresh it. This header contains obviously all the getters too.&lt;/p&gt;

&lt;p&gt;I have now a functional API. &lt;br /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;br /&gt;Next week I will work on the gnome client to use this new API.&lt;/p&gt; </description> 
	<pubDate>Thu, 21 Jul 2016 16:57:51 +0000</pubDate>

</item> 
<item>
	<title>Reproducible builds folks: Reproducible builds: week 62 in Stretch cycle</title>
	<guid>https://reproducible.alioth.debian.org/blog/posts/62/</guid>
	<link>https://reproducible.alioth.debian.org/blog/posts/62/</link>
     <description>  &lt;p&gt;What happened in the &lt;a href=&quot;https://wiki.debian.org/ReproducibleBuilds&quot;&gt;Reproducible
Builds&lt;/a&gt; effort between June 26th and July 2nd 2016:&lt;/p&gt;

&lt;p&gt;Read on to find out why we&#39;re lagging some weeks behind…!&lt;/p&gt;

&lt;h2&gt;GSoC and Outreachy updates&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ceridwen
&lt;a href=&quot;https://reproducible.alioth.debian.org/blog/posts/people/ceridwen/reprotest_week5/&quot;&gt;described&lt;/a&gt;
using autopkgtest code to communicate with containers and how to test the container handling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;reprotest 0.1 has been accepted into Debian unstable, and any user
reports, bug reports, feature requests, etc.  would be appreciated.
This is still an alpha release, and nothing is set in stone.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Toolchain fixes&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Matthias Klose uploaded &lt;a href=&quot;https://tracker.debian.org/pkg/doxygen&quot;&gt;doxygen&lt;/a&gt;/1.8.11-3 to Debian unstable (closing
&lt;a href=&quot;https://bugs.debian.org/792201&quot;&gt;#792201&lt;/a&gt;) with the
&lt;a href=&quot;https://github.com/doxygen/doxygen/commit/9a2c7bbfb0c53b4532db7280e6804c7ce76d70a3&quot;&gt;upstream patch&lt;/a&gt;
improving &lt;code&gt;SOURCE_DATE_EPOCH&lt;/code&gt; support by using UTC as timezone when parsing the
value.  This was the last patch we were carrying in our repository, thus this
upload obsoletes the version in our experimental repository.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tracker.debian.org/pkg/cmake&quot;&gt;cmake&lt;/a&gt;/3.5.2-2 was uploaded by Felix Geyer, which sorts file lists obtained
with &lt;code&gt;file(GLOB)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Dmitry Shachnev uploaded &lt;a href=&quot;https://tracker.debian.org/pkg/sphinx&quot;&gt;sphinx&lt;/a&gt;/1.4.4-2, which fixes a timezone
related issue when &lt;code&gt;SOURCE_DATE_EPOCH&lt;/code&gt; is set.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;With the doxygen upload we are now down to only 2 modified packages in our
repository: &lt;a href=&quot;https://tracker.debian.org/pkg/dpkg&quot;&gt;dpkg&lt;/a&gt; and &lt;a href=&quot;https://tracker.debian.org/pkg/rdfind&quot;&gt;rdfind&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Weekly reports delay and the future of statistics&lt;/h2&gt;

&lt;p&gt;To catch up with our backlog of weekly reports we have decided to skip some of the
statistics for this week. We might publish them in a future report, or we might
switch to a format where we summarize them more (and which we can create (even) more
automatically), we&#39;ll see.&lt;/p&gt;

&lt;p&gt;We are doing these weekly statistics because we believe it&#39;s appropriate and
useful to credit people&#39;s work and make it more visible. What do you think? We would
love to hear your thoughts on this matter! Do you read these statistics? Somewhat?&lt;/p&gt;

&lt;p&gt;Actually, thanks to the power of &lt;a href=&quot;https://tracker.debian.org/pkg/notmuch&quot;&gt;notmuch&lt;/a&gt;, Holger came up with what you can
see below, so what&#39;s missing for this week are the uploads fixing irreprodubilities.
Which we really would like to show for the reasons stated above and because we really
really need these uploads to happen &lt;img alt=&quot;;-)&quot; src=&quot;https://reproducible.alioth.debian.org/blog/./smileys/smile4.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;But then we also like to confirm the bugs are really gone, which (atm) requires manual
checking, and to look for the words &quot;reproducible&quot; and &quot;deterministic&quot;
(and spelling variations) in debian/changelogs of all uploads, to spot reproducible work
not tracked via the BTS.&lt;/p&gt;

&lt;p&gt;And we still need to catch up on the backlog of weekly reports.&lt;/p&gt;

&lt;h2&gt;Bugs submitted with reproducible usertags&lt;/h2&gt;

&lt;p&gt;It seems &lt;a href=&quot;https://debconf16.debconf.org/&quot;&gt;DebCamp in Cape Town&lt;/a&gt; was hugely successful and made some people get a lot of work done:&lt;/p&gt;

&lt;p&gt;61 bugs have been filed with reproducible builds usertags and 60 of them had patches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829365&quot;&gt;#829365&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/pdl&quot;&gt;pdl&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829362&quot;&gt;#829362&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/ruby-ronn&quot;&gt;ruby-ronn&lt;/a&gt; by Chris Lamb: please make the output reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829357&quot;&gt;#829357&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/ctop&quot;&gt;ctop&lt;/a&gt; by Chris Lamb: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829325&quot;&gt;#829325&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/txt2tags&quot;&gt;txt2tags&lt;/a&gt; by Chris Lamb: please make the output reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829323&quot;&gt;#829323&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/pdl&quot;&gt;pdl&lt;/a&gt; by Reiner Herrmann: please generated sorted output.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829322&quot;&gt;#829322&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libpdl-netcdf-perl&quot;&gt;libpdl-netcdf-perl&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829320&quot;&gt;#829320&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libpdl-io-hdf5-perl&quot;&gt;libpdl-io-hdf5-perl&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829297&quot;&gt;#829297&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/check-all-the-things&quot;&gt;check-all-the-things&lt;/a&gt; by Chris Lamb: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829296&quot;&gt;#829296&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/perl&quot;&gt;perl&lt;/a&gt; by Chris Lamb: please make the output of ParseXS.pm reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829295&quot;&gt;#829295&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libextutils-parsexs-perl&quot;&gt;libextutils-parsexs-perl&lt;/a&gt; by Chris Lamb: please make the output reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829270&quot;&gt;#829270&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/tomsfastmath&quot;&gt;tomsfastmath&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829263&quot;&gt;#829263&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libmemcached-libmemcached-perl&quot;&gt;libmemcached-libmemcached-perl&lt;/a&gt; by Chris Lamb: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829262&quot;&gt;#829262&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/slashem&quot;&gt;slashem&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829261&quot;&gt;#829261&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/passwordsafe&quot;&gt;passwordsafe&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829249&quot;&gt;#829249&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/ncftp&quot;&gt;ncftp&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829133&quot;&gt;#829133&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/icon&quot;&gt;icon&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829129&quot;&gt;#829129&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/ayttm&quot;&gt;ayttm&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829011&quot;&gt;#829011&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/link-grammar&quot;&gt;link-grammar&lt;/a&gt; by Jeremy Bicha and Chris Lamb: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/829000&quot;&gt;#829000&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/fracplanet&quot;&gt;fracplanet&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828994&quot;&gt;#828994&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/syncthing&quot;&gt;syncthing&lt;/a&gt; by Dhole: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828993&quot;&gt;#828993&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/openttd&quot;&gt;openttd&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828989&quot;&gt;#828989&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/ntp&quot;&gt;ntp&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828977&quot;&gt;#828977&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/faust&quot;&gt;faust&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828971&quot;&gt;#828971&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/clasp&quot;&gt;clasp&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828969&quot;&gt;#828969&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/dogecoin&quot;&gt;dogecoin&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828909&quot;&gt;#828909&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/qtruby&quot;&gt;qtruby&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828906&quot;&gt;#828906&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/mailfilter&quot;&gt;mailfilter&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828898&quot;&gt;#828898&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/lordsawar&quot;&gt;lordsawar&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828891&quot;&gt;#828891&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/bbdb&quot;&gt;bbdb&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828890&quot;&gt;#828890&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libsdl2-gfx&quot;&gt;libsdl2-gfx&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828888&quot;&gt;#828888&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/aspell-en&quot;&gt;aspell-en&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828876&quot;&gt;#828876&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/ario&quot;&gt;ario&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828867&quot;&gt;#828867&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/zephyr&quot;&gt;zephyr&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828856&quot;&gt;#828856&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/lrzsz&quot;&gt;lrzsz&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828855&quot;&gt;#828855&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/wmweather&quot;&gt;wmweather&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828852&quot;&gt;#828852&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/moblin-icon-theme&quot;&gt;moblin-icon-theme&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828810&quot;&gt;#828810&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/fakeroot&quot;&gt;fakeroot&lt;/a&gt; by Juan Picca: [PATCH] Make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828793&quot;&gt;#828793&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/minicom&quot;&gt;minicom&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828791&quot;&gt;#828791&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/fio&quot;&gt;fio&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828790&quot;&gt;#828790&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/debiandoc-sgml-doc&quot;&gt;debiandoc-sgml-doc&lt;/a&gt; by Dhole: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828788&quot;&gt;#828788&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/pyparted&quot;&gt;pyparted&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828786&quot;&gt;#828786&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/tcptraceroute&quot;&gt;tcptraceroute&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828780&quot;&gt;#828780&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/iptraf&quot;&gt;iptraf&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828778&quot;&gt;#828778&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/module-assistant&quot;&gt;module-assistant&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828766&quot;&gt;#828766&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/liblucy-perl&quot;&gt;liblucy-perl&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828762&quot;&gt;#828762&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/slang2&quot;&gt;slang2&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828756&quot;&gt;#828756&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/python-reportlab&quot;&gt;python-reportlab&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828752&quot;&gt;#828752&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/mod-dnssd&quot;&gt;mod-dnssd&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828749&quot;&gt;#828749&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/telepathy-salut&quot;&gt;telepathy-salut&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828748&quot;&gt;#828748&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libphonenumber&quot;&gt;libphonenumber&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828745&quot;&gt;#828745&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/directfb&quot;&gt;directfb&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828683&quot;&gt;#828683&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/mc&quot;&gt;mc&lt;/a&gt; by Reiner Herrmann and Yury V. Zaytsev: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828681&quot;&gt;#828681&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/keyutils&quot;&gt;keyutils&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828680&quot;&gt;#828680&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/debiandoc-sgml-doc-pt-br&quot;&gt;debiandoc-sgml-doc-pt-br&lt;/a&gt; by Dhole: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828639&quot;&gt;#828639&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libmarpa-r2-perl&quot;&gt;libmarpa-r2-perl&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828636&quot;&gt;#828636&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libembperl-perl&quot;&gt;libembperl-perl&lt;/a&gt; by Axel Beckert, Reiner Herrmann and gregor herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828635&quot;&gt;#828635&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/libnet-tclink-perl&quot;&gt;libnet-tclink-perl&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828628&quot;&gt;#828628&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/media-player-info&quot;&gt;media-player-info&lt;/a&gt; by Reiner Herrmann: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828627&quot;&gt;#828627&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/uim&quot;&gt;uim&lt;/a&gt; by Alexis Bienvenüe: please make the build reproducible (locale).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828226&quot;&gt;#828226&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/tiger&quot;&gt;tiger&lt;/a&gt; by Alexis Bienvenüe: please make the build reproducible (environment, locale).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828222&quot;&gt;#828222&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/pygoocanvas&quot;&gt;pygoocanvas&lt;/a&gt; by Chris Lamb: please make the build reproducible.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/828216&quot;&gt;#828216&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/pyinfra&quot;&gt;pyinfra&lt;/a&gt; by Daniel Stender: assertion error with timestamps.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Package reviews&lt;/h2&gt;

&lt;p&gt;437 new reviews have been added (though most of them were just linking the bug, &quot;only&quot; 56 new issues in packages were found), an unknown number has been been updated and 60 have been removed in this week, adding to our knowledge about &lt;a href=&quot;https://tests.reproducible-builds.org/debian/index_issues.html&quot;&gt;identified issues&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;4 new issue types have been found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tests.reproducible-builds.org/issues/unstable/random_order_of_pdf_ids_generated_by_latex_issue.html&quot;&gt;random_order_of_pdf_ids_generated_by_latex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tests.reproducible-builds.org/issues/unstable/unsorted_pdl_output_issue.html&quot;&gt;unsorted_pdl_output&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tests.reproducible-builds.org/issues/unstable/timestamps_in_output_generated_by_txt2tags_issue.html&quot;&gt;timestamps_in_output_generated_by_txt2tags&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tests.reproducible-builds.org/issues/unstable/random_order_in_documentation_generated_by_naturaldocs_issue.html&quot;&gt;random_order_in_documentation_generated_by_naturaldocs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Weekly QA work&lt;/h2&gt;

&lt;p&gt;98 FTBFS bugs have been reported by Chris Lamb and Santiago Vila.&lt;/p&gt;

&lt;h2&gt;diffoscope development&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Reiner Herrmann &lt;a href=&quot;https://bugs.debian.org/826894&quot;&gt;clarified the help text for the input arguments&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://bugs.debian.org/829115&quot;&gt;#829115&lt;/a&gt; against &lt;a href=&quot;https://tracker.debian.org/pkg/diffoscope&quot;&gt;diffoscope&lt;/a&gt; by Axel Beckert and Mattia Rizzolo:: …/comparators/ps.py: TypeError: cannot use a string pattern on a bytes-like object.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;strip-nondeterminism development&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Chris Lamb made sure that .zhfst files are treated as ZIP files.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;tests.reproducible-builds.org&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Mattia Rizzolo uploaded &lt;a href=&quot;https://tracker.debian.org/pkg/pbuilder&quot;&gt;pbuilder&lt;/a&gt;/0.225.1~bpo8+1 to jessie-backports
and it has been installed on all build nodes.  As a consequence all armhf and
i386 builds will be done with &lt;a href=&quot;https://tracker.debian.org/pkg/eatmydata&quot;&gt;eatmydata&lt;/a&gt;; this will hopefully cut down
the build time by a noticable factor.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Misc.&lt;/h2&gt;

&lt;p&gt;This week&#39;s edition was written by Mattia Rizzolo, Reiner Herrmann, Ceridwen and Holger Levsen and reviewed by a bunch of Reproducible builds folks on IRC.&lt;/p&gt; </description> 
	<pubDate>Thu, 21 Jul 2016 13:13:00 +0000</pubDate>

</item> 
<item>
	<title>Chris Lamb: Python quirk: Signatures are evaluated at import time</title>
	<guid>https://chris-lamb.co.uk/posts/python-quirk-signatures-are-evaluated-import-time</guid>
	<link>https://chris-lamb.co.uk/posts/python-quirk-signatures-are-evaluated-import-time</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/lamby.png&quot; width=&quot;70&quot; height=&quot;87&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Every Python programmer knows to avoid mutable default arguments:&lt;/p&gt;
&lt;div class=&quot;syntax&quot;&gt;&lt;pre&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mutable&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[]):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mutable&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;elem&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mutable&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;pre class=&quot;literal-block&quot;&gt;$ python test.py
[&#39;elem&#39;]
[&#39;elem&#39;, &#39;elem&#39;]
&lt;/pre&gt;
&lt;p&gt;However, many are not clear that this is due to arguments being evaluated at &lt;em&gt;import&lt;/em&gt; time, rather than the first time the function is evaluated.&lt;/p&gt;
&lt;p&gt;This results in related quirks such as:&lt;/p&gt;
&lt;div class=&quot;syntax&quot;&gt;&lt;pre&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;never_called&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;pass&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;pre class=&quot;literal-block&quot;&gt;$ python test.py
Traceback (most recent call last):
  File &quot;test.py&quot;, line 1, in &amp;lt;module&amp;gt;
ZeroDivisionError: integer division or modulo by zero
&lt;/pre&gt;
&lt;p&gt;... and an—implementation-specific—quirk caused by naive constant folding:&lt;/p&gt;
&lt;div class=&quot;syntax&quot;&gt;&lt;pre&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;never_called&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;mi&quot;&gt;99999999&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;**&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;9999999&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;pre class=&quot;literal-block&quot;&gt;$ python test.py
[hangs]
&lt;/pre&gt;
&lt;p&gt;I suspect that this can be used as denial-of-service vector.&lt;/p&gt; </description> 
	<pubDate>Thu, 21 Jul 2016 11:07:35 +0000</pubDate>

</item> 
<item>
	<title>Daniel Pocock: How many mobile phone accounts will be hijacked this summer?</title>
	<guid>https://danielpocock.com/310 at https://danielpocock.com</guid>
	<link>https://danielpocock.com/how-many-mobile-phone-accounts-will-be-hijacked-this-summer</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/pocock.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;p&gt;Summer vacations have been getting tougher in recent years.  Airlines cut into your precious vacation time with their online check-in procedures and a dozen reminder messages, there is growing concern about &lt;a href=&quot;https://en.wikipedia.org/wiki/Full_body_scanner#Privacy&quot;&gt;airport security&lt;/a&gt; and &lt;a href=&quot;http://www.thetimes.co.uk/article/thousands-lose-holidays-as-travel-firm-is-hit-by-brexit-66mptzwfq&quot;&gt;Brexit has already put one large travel firm into liquidation&lt;/a&gt; leaving holidaymakers in limbo.&lt;/p&gt;
&lt;p&gt;&lt;img align=&quot;left&quot; src=&quot;https://danielpocock.com/sites/danielpocock.com/files/bleeding-phone.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If that wasn&#39;t all bad enough, now there is a new threat: while you are relaxing in the sun, scammers fool your phone company into issuing a replacement SIM card or transferring your mobile number to a new provider and then proceed to use it to take over all your email, social media, Paypal and bank accounts.  The same scam has been appearing around the globe, from &lt;a href=&quot;https://www.theguardian.com/money/2015/sep/26/sim-swap-fraud-mobile-phone-vodafone-customer&quot;&gt;Britain&lt;/a&gt; to &lt;a href=&quot;http://www.theage.com.au/victoria/identity-thieves-targeting-apartments-in-melbournes-west-20150624-ghwlsk.html&quot;&gt;Australia&lt;/a&gt; and everywhere in between.  Many of these scams were predicted in my earlier blog &lt;a href=&quot;https://danielpocock.com/sms-logins-an-illusion-of-security&quot;&gt;SMS logins: an illusion of security (April 2014)&lt;/a&gt; but they are only starting to get publicity now as more aspects of our lives are at risk, scammers are ramping up their exploits and phone companies are floundering under the onslaught.&lt;/p&gt;
&lt;p&gt;With the vast majority of Internet users struggling to keep their passwords out of the wrong hands, many organizations have started offering their customers the option of receiving &lt;a href=&quot;https://en.wikipedia.org/wiki/Multi-factor_authentication&quot;&gt;two-factor authentication&lt;/a&gt; codes on their mobile phone during login.  Rather than making people safer, this has simply given scammers an incentive to seize control of telephones, usually by tricking the phone company to issue a replacement SIM or port the number.  It also provides a fresh incentive for criminals to steal phones while cybercriminals have been embedding code into many &quot;free&quot; apps to surreptitiously re-route the text messages and gather other data they need for an identity theft sting.&lt;/p&gt;
&lt;p&gt;Sadly, telephone networks were never designed for secure transactions.  Telecoms experts &lt;a href=&quot;http://www.itnews.com.au/news/telcos-declare-sms-unsafe-for-bank-transactions-322194&quot;&gt;have made this clear&lt;/a&gt; numerous times.  Some of the largest scams in the history of financial services exploited phone verification protocols as the weakest link in the chain, including a &lt;a href=&quot;http://www.smh.com.au/articles/2006/03/17/1142582520870.html?from=rss&quot;&gt;$150 million heist reminiscent of Ocean&#39;s 11&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;https://danielpocock.com/sites/danielpocock.com/files/elephant_240.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For phone companies, SMS messaging came as a side-effect of digital communications for mobile handsets.  It is less than one percent of their business.  SMS authentication is less than one percent of that.  Phone companies lose little or nothing when SMS messages are hijacked so there is little incentive for them to secure it.  Nonetheless, like insects riding on an elephant, numerous companies have popped up with a business model that involves linking websites to the wholesale telephone network and dressing it up as a &quot;security&quot; solution.  These companies are able to make eye-watering profits by &quot;purchasing&quot; text messages for $0.01 and selling them for $0.02 (one hundred percent gross profit), but they also have nothing to lose when SIM cards are hijacked and therefore minimal incentive to take any responsibility.&lt;/p&gt;
&lt;p&gt;Companies like Google, Facebook and Twitter have thrown more fuel on the fire by encouraging and sometimes even demanding users provide mobile phone numbers to &quot;prove they are human&quot; or &quot;protect&quot; their accounts.  Through these antics, these high profile companies have given a vast percentage of the population a false sense of confidence in codes delivered by mobile phone, yet the real motivation for these companies does not appear to be security at all: they have worked out that the mobile phone number is the holy grail in cross-referencing vast databases of users and customers from different sources for all sorts of creepy purposes.  As most of their services don&#39;t involve any financial activity, they have little to lose if accounts are compromised and everything to gain by accurately gathering mobile phone numbers from as many users as possible.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://danielpocock.com/sites/danielpocock.com/files/beach_phone.png&quot; /&gt;&lt;br /&gt;&lt;em&gt;Can you escape your mobile phone while on vacation?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Just how hard is it to get a replacement SIM card or transfer/port a user&#39;s phone number while they are on vacation?  Many phone companies will accept instructions through a web form or a phone call.  Scammers need little more than a user&#39;s full name, home address and date of birth: vast lists of these private details are circulating on the black market, sourced from social media, data breaches (99% of which are never detected or made public), marketing companies and even the web sites that encourage your friends to send you free online birthday cards.&lt;/p&gt;
&lt;p&gt;Every time a company has asked me to use mobile phone authentication so far, I&#39;ve opted out and I&#39;ll continue to do so.  Even if somebody does hijack my phone account while I&#39;m on vacation, the consequences for me are minimal as it will not give them access to any other account or service, can you and your family members say the same thing?&lt;/p&gt;
&lt;h3&gt;What can be done?&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Opt-out of mobile phone authentication schemes.&lt;/li&gt;
&lt;li&gt;Never give the mobile phone number to web sites unless there is a real and pressing need for them to call you.&lt;/li&gt;
&lt;li&gt;Tell firms you don&#39;t have a mobile phone or that you share your phone with your family and can&#39;t use it for private authentication.&lt;/li&gt;
&lt;li&gt;If you need to use two-factor authentication, only use technical solutions such as smart cards or security tokens that have been engineered exclusively for computer security.  Leave them in a locked drawer or safe while on vacation.  Be wary of anybody who insists on SMS and doesn&#39;t offer these other options.&lt;/li&gt;
&lt;li&gt;Rather than seeking to &quot;protect&quot; accounts, simply close some or all social media accounts to reduce your exposure and eliminate the effort of keeping them &quot;secure&quot; and updating &quot;privacy&quot; settings.&lt;/li&gt;
&lt;li&gt;If your bank provides a relationship manager or other personal contact, this&lt;br /&gt;
 can also provide a higher level of security as they get to know you.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;em&gt;Previous blogs on &lt;a href=&quot;https://danielpocock.com/tags/sms&quot;&gt;SMS messaging, security and two factor authentication&lt;/a&gt;, including my earlier blog &lt;a href=&quot;https://danielpocock.com/sms-logins-an-illusion-of-security&quot;&gt;SMS Logins: an illusion of security&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; </description> 
	<pubDate>Wed, 20 Jul 2016 17:48:47 +0000</pubDate>

</item> 
<item>
	<title>Michal &amp;#268;iha&amp;#345;: New projects on Hosted Weblate</title>
	<guid>http://blog.cihar.com/archives/2016/07/20/new-projects-hosted-weblate/?utm_source=rss2</guid>
	<link>http://blog.cihar.com/archives/2016/07/20/new-projects-hosted-weblate/?utm_source=rss2</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/nijel.png&quot; width=&quot;64&quot; height=&quot;67&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;For almost two months I found very little time to process requests to &lt;a href=&quot;https://weblate.org/hosting/&quot;&gt;host free software on Hosted Weblate&lt;/a&gt;. Today the queue has been emptied, what means that you can find many new translations there.&lt;/p&gt;
&lt;p&gt;To make it short, here is list of new projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/gnome-twofactorauth/translation/&quot;&gt;Gnome TwoFactorAuth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/jclic/jclicjs/&quot;&gt;JClic.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/qooxdoo/&quot;&gt;qooxdoo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/openorienteering/mapper/&quot;&gt;OpenOrienteering Mapper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/debian-member-portfolio-service/translations/&quot;&gt;Debian Member Portfolio Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/tox/website/&quot;&gt;qTox Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/debian-reference/translations/&quot;&gt;Debian Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/quill/strings/&quot;&gt;Quill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/rockpool/translations/&quot;&gt;Rockpool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PS: If you didn&#39;t receive reply for your hosting request today, it was probably lost, so don&#39;t hesitate to ask again.&lt;/p&gt;

&lt;p style=&quot;font-size: smaller;&quot;&gt;
Filed under: 

&lt;a href=&quot;http://blog.cihar.com/archives/debian/&quot;&gt;Debian&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/english/&quot;&gt;English&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/weblate/&quot;&gt;Weblate&lt;/a&gt;

|

&lt;a href=&quot;http://blog.cihar.com/archives/2016/07/20/new-projects-hosted-weblate/#comments&quot;&gt;0 comments&lt;/a&gt;
&lt;/p&gt; </description> 
	<pubDate>Wed, 20 Jul 2016 17:00:19 +0000</pubDate>

</item> 
<item>
	<title>Shirish Agarwal: Debconf 16 and My Experience with Debian</title>
	<guid>http://flossexperiences.wordpress.com/?p=3073</guid>
	<link>https://flossexperiences.wordpress.com/2016/07/20/debconf-16-and-my-experience-with-debian/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/shirish.png&quot; width=&quot;80&quot; height=&quot;80&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;It has been often said that you should continually try new things in life so that &lt;/p&gt;
&lt;p&gt;a. Unlike the fish you do not mistake the pond to be the sea. &lt;/p&gt;
&lt;p&gt;b. You see other people, other types and ways of living and being which you normally won’t in your day-to-day existence. &lt;/p&gt;
&lt;p&gt;With both of those as mantras I decided to take a leap into the unknown. I was unsure both about the visa process as well as the travel bit as I was traveling to an unknown place and although I had done some research about the place I was unsure about the authenticity of whatever is/was shared on the web. &lt;/p&gt;
&lt;p&gt;During the whole journey both to and fro, I couldn’t sleep a wink. The Doha airport is huge. There are 5 Concourses, A, B , C, D, E and around 30+ gates in each Concourse. The ambition of the small state is something to be reckoned with. Almost 95% of the blue workers in the entire airport were of Asian sub-continent. While the Qatari Rial is 19 times stronger to us, the workers I suspect are worse-off than people doing similar things back home. Add to that the sharia law, even for all the money in the world, I wouldn’t want to settle therein. &lt;/p&gt;
&lt;p&gt;Anyways, during the journey, a small surprise awaited me, Ritesh Raj Saraff, a DD was also traveling to Debconf. We bumped into each other while going to see the Doha City, courtesy Al-Hamad International Airport. I would probably share a bit more about Doha and my experiences with the city in upcoming posts. &lt;/p&gt;
&lt;p&gt;Cut to Cape Town, South Africa, we landed in the city half an hour after our scheduled time and then we sped along to University of Cape Town (UCT) which was to become our home for the next 13 odd days. &lt;/p&gt;
&lt;p&gt;The first few days were a whirlwind as there were new people to meet, old people whom I knew only as an e-mail id or an IRC nickname turned out to be real people and you have to try to articulate yourself in English, which is not a native language of mine. During Debcamp I was fortunate to be able visit some of the places and the wiki page had a lot of places which I knew I wouldn’t be able to complete unless I had 15 days unlimited time and money to go around so didn’t even try. &lt;/p&gt;
&lt;p&gt;I had gone with few goals in mind :-&lt;/p&gt;
&lt;p&gt;a. Do some documentation of the event – In this I failed completely as just the walk from the venue to where the talks were energy-draining for me. Apart from that, you get swept in meeting new people and talking about one of million topics in Debian which interest you or the other person and while they are fulfilling, it is and was both physically and emotionally draining for me (in a good way). Bernelle (one of the organizers) had warned us of this phenomenon but you disregard it as you know you have a limited time-frame in which to meet and greet people and it is all a over-whelming experience. &lt;/p&gt;
&lt;p&gt;b. Another goal was to meet my Indian brethren who had left the country around 60~100 years mostly as slaves of East India company – In this I was partially successful. I met a couple of beautiful ladies who had either a father or a mother who was Indian while the other was of African heritage. It seemed in them a yearning to know the culture but from what little they had, only Bollywood and Indian cuisine was what they could make of Indian culture. One of the girls, ummm… women to be more truer, shared a somewhat grim tale. She had both an African boyfriend as well as Indian boyfriend in her life and in both cases, she was rejected by the boy’s parents because she wasn’t pure enough. This was deja vu all over again as the same thing can be seen here happening in casteism so there wasn’t any advice I could give but just nod in empathy. What was sort of relevation was when their parents or grandparents came, the name and surnames were thrown off and the surname was just the place from where they belong. From the discussions it emerged that there were also lot of cases of forced conversions to Christianity during that era as well as temptations of a better life. &lt;/p&gt;
&lt;p&gt;As shared, this goal succeeded partially, as I was actually interested in their parents or grand-parents to know the events that shaped the Indian diaspora over there. While the children know only of today, yester-years could only be known by those people who made the unwilling perilous journey to Africa. I had also wanted to know more about Gandhiji’s role in that era but alas, that part of history would have to wait for another day as I guess, both those goals would only have met had I visited Durban but that was not to be. &lt;/p&gt;
&lt;p&gt;I had applied for one talk ‘My Experience with Debian’ and one workshop for Installation of Debian on systems. The ‘My Experience with Debian’ was aimed at newbies and I had thought of using show-and-tell to share the differences between proprietary Operating Systems and a FOSS distribution such as Debian. I was going to take simple things such as changelogs, apt-listbugs, real-time knowledge of updates and upgrades as well as /etc/apt/sources.list to share both the versatility of the Debian desktop and real improvements than what proprietary Operating Systems had to offer. But I found myself engaging with Debian Developers (DD’s) rather than the newbies so had to change the orientation and fundamentals of the talk on the fly. I knew or suspected rather that the old idea would not work as it would just be repeating to the choir. With that in the back of mind, and the idea that perhaps they would not be so aware of the politics and events which happened in India over the last couple of decades, I tried to share what little I was able to recollect what little I was able to remember about those times. Apart from that, I was also highly conscious that I had been given just the before lunch slot aka ‘You are in the way of my lunch’ slot. So I knew I had to speak my piece as quickly as possible being as clear as can be. Later, I did get feedback that I was fast and seeing it through couple of times, do agree that I could have done a better job. What’s done is done and the only thing I could do to salvage it a bit is to make a presentation which I am sharing as below. &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://flossexperiences.files.wordpress.com/2016/07/my_experience_with_debian.pdf&quot;&gt;my_experience_with_debian&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Would be nice if somebody could come up with a lighter template for presentations. For reference the template I have taken it from is shared at &lt;a href=&quot;https://wiki.debian.org/Presentations&quot; rel=&quot;nofollow&quot;&gt;https://wiki.debian.org/Presentations&lt;/a&gt; . Some pictures from the presentation.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://flossexperiences.files.wordpress.com/2016/07/vlcsnap-00004.png&quot;&gt;&lt;img alt=&quot;vlcsnap-00004&quot; class=&quot;aligncenter size-medium wp-image-3081&quot; height=&quot;220&quot; src=&quot;https://flossexperiences.files.wordpress.com/2016/07/vlcsnap-00004.png?w=300&amp;amp;h=220&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://flossexperiences.files.wordpress.com/2016/07/me_sharing.png&quot;&gt;&lt;img alt=&quot;me_sharing&quot; class=&quot;aligncenter size-medium wp-image-3082&quot; height=&quot;220&quot; src=&quot;https://flossexperiences.files.wordpress.com/2016/07/me_sharing.png?w=300&amp;amp;h=220&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://flossexperiences.files.wordpress.com/2016/07/my_experience_with_debian.png&quot;&gt;&lt;img alt=&quot;my_experience_with_debian&quot; class=&quot;aligncenter size-medium wp-image-3083&quot; height=&quot;220&quot; src=&quot;https://flossexperiences.files.wordpress.com/2016/07/my_experience_with_debian.png?w=300&amp;amp;h=220&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can find the video at &lt;a href=&quot;http://meetings-archive.debian.net/pub/debian-meetings/2016/debconf16/My_Experience_with_Debian.webm&quot; rel=&quot;nofollow&quot;&gt;http://meetings-archive.debian.net/pub/debian-meetings/2016/debconf16/My_Experience_with_Debian.webm&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;This is by no means the end of the Debconf16 experience, but actually the starting. I hope to share more of my thoughts, ideas and get as much feedback from all the wonderful people I met during Debconf. &lt;/p&gt;&lt;br /&gt;Filed under: &lt;a href=&quot;https://flossexperiences.wordpress.com/category/miscellenous/&quot;&gt;Miscellenous&lt;/a&gt; Tagged: &lt;a href=&quot;https://flossexperiences.wordpress.com/tag/debconf16/&quot;&gt;#Debconf16&lt;/a&gt;, &lt;a href=&quot;https://flossexperiences.wordpress.com/tag/doha/&quot;&gt;Doha&lt;/a&gt;, &lt;a href=&quot;https://flossexperiences.wordpress.com/tag/my-talk/&quot;&gt;My talk&lt;/a&gt;, &lt;a href=&quot;https://flossexperiences.wordpress.com/tag/qatar/&quot;&gt;Qatar&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/flossexperiences.wordpress.com/3073/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/flossexperiences.wordpress.com/3073/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/flossexperiences.wordpress.com/3073/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/flossexperiences.wordpress.com/3073/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/flossexperiences.wordpress.com/3073/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/flossexperiences.wordpress.com/3073/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/flossexperiences.wordpress.com/3073/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/flossexperiences.wordpress.com/3073/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/flossexperiences.wordpress.com/3073/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/flossexperiences.wordpress.com/3073/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/flossexperiences.wordpress.com/3073/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/flossexperiences.wordpress.com/3073/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/flossexperiences.wordpress.com/3073/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/flossexperiences.wordpress.com/3073/&quot; /&gt;&lt;/a&gt; </description> 
	<pubDate>Wed, 20 Jul 2016 14:38:18 +0000</pubDate>

</item> 
<item>
	<title>Steinar H. Gunderson: Solskogen 2016 videos</title>
	<guid>http://blog.sesse.net/blog/tech/2016-07-20-11-23_solskogen_2016_videos.html</guid>
	<link>http://blog.sesse.net/blog/tech/2016-07-20-11-23_solskogen_2016_videos.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/sesse.png&quot; width=&quot;74&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I just published the videos from &lt;a href=&quot;http://www.solskogen.no&quot;&gt;Solskogen 2016&lt;/a&gt;
on Youtube; you can find them all in &lt;a href=&quot;https://www.youtube.com/playlist?list=PL0xwXotH_7r85hNYCpD3_Gd6qkH-tMpsQ&quot;&gt;this
playlist&lt;/a&gt;.
The are basically exactly what was being sent out on the live stream, frame
for frame, except that the audio for the live shader compos has been
remastered, and of course a &lt;em&gt;lot&lt;/em&gt; of dead time has been cut out (the stream
was sending over several days, but most of the time, only the information
loop from the bigscreen).&lt;/p&gt;

&lt;p&gt;YouTube doesn&#39;t really support the variable 50/60 Hz frame
rate we&#39;ve been using well as far as I can tell, but mostly it seems to go to
some 60 Hz upconversion, which is okay enough, because the rest of your setup
most likely isn&#39;t free-framerate anyway.&lt;/p&gt;

&lt;p&gt;Solskogen is interesting in that we&#39;re trying to do a high-quality stream
with essentially zero money allocated to it; where something like Debconf
can use €2500 for renting and transporting equipment (granted, for two
or three rooms and not our single stream), we&#39;re largely dependent on
personal equipment as well as borrowing things here and there. (I think
we borrowed stuff from more or less ten distinct places.) Furthermore,
we&#39;re nowhere near the situation of “two cameras, a laptop, perhaps a few
microphones”; not only do you expect to run full 1080p60 to the bigscreen
and switch between that and information slides for each production, but
an Amiga 500 doesn&#39;t really have an HDMI port, and Commodore 64 delivers an
infamously broken 50.12 Hz signal that you really need to deal with carefully
if you want it to not look like crap.&lt;/p&gt;

&lt;p&gt;These two factors together lead to a rather eclectic setup; here, visualized
beautifully from my ASCII art by
&lt;a href=&quot;https://github.com/stathissideris/ditaa&quot;&gt;ditaa&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Solskogen 2016 A/V setup diagram&quot; src=&quot;http://storage.sesse.net/solskogen2016-av-setup.png&quot; style=&quot;border: 0px; width: 1280px; height: 728px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Of course, for me, the really interesting part here is near the end of the
chain, with &lt;a href=&quot;https://nageru.sesse.net/&quot;&gt;Nageru&lt;/a&gt;, my live video mixer, doing
the stream mixing and encoding. (There&#39;s also
&lt;a href=&quot;https://blog.sesse.net/blog/tech/git.sesse.net/?p=cubemap&quot;&gt;Cubemap&lt;/a&gt;, the video reflector, but honestly,
I never worry about that anymore. Serving 150 simultaneous clients is just
not something to write home about anymore; the only adjustment I would want
to make would probably be some WebSockets support to be able to deal with iOS
without having to use a secondary HLS stream.) Of course, to make things
even more complicated, the live shader compo needs two different inputs
(the two coders&#39; laptops) live on the bigscreen, which was done with two
video capture cards, text chroma-keyed on top from Chroma, and
&lt;a href=&quot;https://obsproject.com/&quot;&gt;OBS&lt;/a&gt;, because the guy
controlling the bigscreen has different preferences from me. I would take
his screen in as a “dirty feed” and then put my own stuff around it, like
this:&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Solskogen 2016 shader compo screenshot&quot; src=&quot;http://storage.sesse.net/solskogen2016-shader-compo.png&quot; style=&quot;border: 0px; width: 1280px; height: 720px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;(Unfortunately, I forgot to take a screenshot of Nageru itself during this
run.)&lt;/p&gt;

&lt;p&gt;Solskogen was the first time I&#39;d really used Nageru in production, and
despite super-extensive testing, there&#39;s always something that can go wrong.
And indeed there was: First of all, we discovered that the local Internet
line was reduced from 30/10 to 5/0.5 (which is, frankly, unusable for
streaming video), and after we&#39;d half-way fixed that (we got it to
25/4 or so by prodding the ISP, of which we could reserve about 2 for
video—demoscene content is &lt;em&gt;really hard&lt;/em&gt; to encode, so I&#39;d prefer a lot
more)… Nageru started crashing.&lt;/p&gt;

&lt;p&gt;It wasn&#39;t even crashes I understood anything of. Generally it seemed like the
NVIDIA drivers were returning GL_OUT_OF_MEMORY on things like creating
mipmaps; it&#39;s logical that they&#39;d be allocating memory, but we had 6 GB of
GPU memory and 16 GB of CPU memory, and lots of it was free. (The PC we used for encoding was much,
much faster than what you need to run Nageru smoothly, so we had plenty of
CPU power left to run x264 in, although you can of course always want more.)
It seemed to be mostly related to zoom transitions, so I generally avoided
those and ran that night&#39;s compos in a more static fashion.&lt;/p&gt;

&lt;p&gt;It wasn&#39;t until later that night (or morning, if you will) that I actually
understood the bug (through the godsend of the
&lt;a href=&quot;https://www.opengl.org/registry/specs/NVX/gpu_memory_info.txt&quot;&gt;NVX_gpu_memory_info&lt;/a&gt;
extension, which gave me enough information about the GPU memory state that I
understood I wasn&#39;t leaking GPU memory at all); I had set Nageru to lock all of its memory used in RAM,
so that it would never ever get swapped out and lose frames for that reason.
I had set the limit for lockable RAM based on my test setup, with 4 GB of RAM, but this
setup had much more RAM, a 1080p60 input (which uses more RAM, of course)
and a second camera, all of which I hadn&#39;t been able to test before, since I
simply didn&#39;t have the hardware available. So I wasn&#39;t hitting the available
RAM, but I was hitting the amount of RAM that Linux was willing to lock into
memory for me, and at that point, it&#39;d rather return errors on memory
allocations (including the allocations the driver needed to
make for its texture memory backings) than to violate the “never swap“
contract.&lt;/p&gt;

&lt;p&gt;Once I fixed this (by simply increasing the amount of lockable memory in
limits.conf), everything was rock-stable, just like it should be, and I could
turn my attention to the actual production. Often during compos, I don&#39;t
really need the mixing power of Nageru (it just shows a single input, albeit
scaled using high-quality Lanczos3 scaling on the GPU to get it down from
1080p60 to 720p60), but since entries come in using different sound levels
(I wanted the stream to conform to EBU R128, which it generally did)
and different platforms expect different audio work (e.g., you wouldn&#39;t put a
compressor on an MP3 track that was already mastered, but we did that on e.g.
SID tracks since they have nearly zero ability to control the overall volume),
there was a fair bit of manual audio tweaking during some of the compos.&lt;/p&gt;

&lt;p&gt;That, and of course, the live 50/60 Hz switches were a lot of fun: If an
Amiga entry was coming up, we&#39;d 1. fade to a camera, 2. fade in an overlay
saying we were switching to 50 Hz so have patience, 3. set the camera as
master clock (because the bigscreen&#39;s clock is going to go away soon), 4.
change the scaler from 60 Hz to 50 Hz (takes two clicks and a bit of
waiting), 5. change the scaler input in Nageru from 1080p60 to 1080p50, 6.
steps 3,2,1 in reverse. Next time, I&#39;ll try to make that slightly smoother,
especially as the lack of audio during the switch (it comes in on the
bigscreen SDI feed) tended to confuse viewers.&lt;/p&gt;

&lt;p&gt;So, well, that was a lot of fun, and it certainly validated that you can
do a pretty complicated real-life stream with Nageru. I have a long list
of small tweaks I want to make, though; nothing beats actual experience
when it comes to improving processes. :-)&lt;/p&gt; </description> 
	<pubDate>Wed, 20 Jul 2016 10:23:00 +0000</pubDate>

</item> 
<item>
	<title>Daniel Stender: Theano in Debian: maintenance, BLAS and CUDA</title>
	<guid>tag:www.danielstender.com,2016-07-20:blog/theano1.html</guid>
	<link>http://www.danielstender.com/blog/theano1.html</link>
     <description>  &lt;p&gt;I&#39;m glad to announce that we have the current release of &lt;a href=&quot;https://github.com/Theano/Theano&quot;&gt;Theano&lt;/a&gt; (0.8.2) in Debian unstable now, it&#39;s on its way into the testing branch and the Debian derivatives, heading for Debian 9.
The &lt;a href=&quot;https://packages.qa.debian.org/t/theano.html&quot;&gt;Debian package&lt;/a&gt; is maintained in behalf of the Debian Science Team.&lt;/p&gt;


&lt;p&gt;We have a binary package with the modules in the Python 2.7 import path (python-theano), if you want or need to stick to that branch a little longer (as a matter of fact, in the current &lt;a href=&quot;https://qa.debian.org/popcon.php?package=theano&quot;&gt;popcon stats&lt;/a&gt; it&#39;s the most installed package), and a package running on the default Python 3 version (python3-theano).
The comprehensive &lt;a href=&quot;http://www.deeplearning.net/software/theano/&quot;&gt;documentation&lt;/a&gt; is available for offline usage in another binary package (theano-doc).&lt;/p&gt;


&lt;p&gt;Although Theano builds its extensions on run time and therefore all binary packages contain the same code, the source package generates arch specific packages&lt;sup id=&quot;fnref:0717-0215&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:0717-0215&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; for the reason that the exhaustive test suite could run over all the architectures to detect if there are problems somewhere (&lt;a href=&quot;https://bugs.debian.org/824116&quot;&gt;#824116&lt;/a&gt;).&lt;/p&gt;
&lt;h1&gt;what&#39;s this?&lt;/h1&gt;
&lt;p&gt;In a nutshell, Theano is a computer algebra system (CAS) and expression compiler, which is implemented in Python as a library.
It is named after a Classical Greek female mathematician and it&#39;s developed at the LISA lab (located at MILA, the Montreal Institute for Learning Algorithms) at the Université de Montréal.&lt;/p&gt;


&lt;p&gt;Theano tightly integrates multi-dimensional arrays (N-dimensional, ND-array) from NumPy (&lt;code&gt;numpy.ndarray&lt;/code&gt;), which are broadly used in Scientific Python for the representation of numeric data.
It features a declarative Python based language with symbolic operations for the functional definition of mathematical expressions, which allows to create functions that compute values for them.
Internally the expressions are represented as directed graphs with nodes for variables and operations.
The internal compiler then optimizes those graphs for stability and speed and then generates high-performance native machine code to evaluate resp. compute these mathematical expressions&lt;sup id=&quot;fnref:0807-1112&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:0807-1112&quot; rel=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;


&lt;p&gt;One of the main features of Theano is that it&#39;s capable to compute also on GPU processors (graphical processor unit), like on custom graphic cards (e.g. the developers are using a GeForce GTX Titan X for benchmarks).
Today&#39;s GPUs became very powerful parallel floating point devices which can be employed also for scientific computations instead of 3D video games&lt;sup id=&quot;fnref:0707-2236&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:0707-2236&quot; rel=&quot;footnote&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;.
The acronym &quot;GPGPU&quot; (general purpose graphical processor unit) refers to special cards like NVIDIA&#39;s Tesla&lt;sup id=&quot;fnref:0907-1030&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:0907-1030&quot; rel=&quot;footnote&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;, which could be used alike (more on that below).
Thus, Theano is a high-performance number cruncher with an own computing engine which could be used for large-scale scientific computations.&lt;/p&gt;


&lt;p&gt;If you haven&#39;t came across Theano as a Pythonistic professional mathematician, it&#39;s also one of the most prevalent frameworks for implementing deep learning applications (training multi-layered, &quot;deep&quot; artificial neural networks, DNN) around&lt;sup id=&quot;fnref:0907-1847&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:0907-1847&quot; rel=&quot;footnote&quot;&gt;5&lt;/a&gt;&lt;/sup&gt;, and has been developed with a focus on machine learning from the ground up.
There are several higher level user interfaces build in the top of Theano (for DNN, Keras, Lasagne, Blocks, and others, or for Python probalistic programming, PyMC3).
I&#39;ll seek for some of them also becoming available in Debian, too.&lt;/p&gt;
&lt;h1&gt;helper scripts&lt;/h1&gt;
&lt;p&gt;Both binary packages ship three convenience scripts, &lt;code&gt;theano-cache&lt;/code&gt;, &lt;code&gt;theano-test&lt;/code&gt;, and &lt;code&gt;theano-nose&lt;/code&gt;.
Instead of them being copied into &lt;code&gt;/usr/bin&lt;/code&gt;, which would result into a &lt;a href=&quot;http://www.danielstender.com/blog/feeds/binaries-have-conflict&quot;&gt;binaries-have-conflict&lt;/a&gt; violation, the scripts are to be found in &lt;code&gt;/usr/share/python-theano&lt;/code&gt; (python3-theano respectively), so that both module packages of Theano can be installed at the same time.&lt;/p&gt;


&lt;p&gt;The scripts could be run directly from these folders, e.g. do &lt;code&gt;$ python /usr/share/python-theano/theano-nose&lt;/code&gt; to achieve that.
If you&#39;re going to heavy use them, you could add the directory of the flavour you prefer (Python 2 or Python 3) to the &lt;code&gt;$PATH&lt;/code&gt; environment variable manually by either typing e.g. &lt;code&gt;$ export PATH=/usr/share/python-theano:$PATH&lt;/code&gt; on the prompt, or save that line into &lt;code&gt;~/.bashrc&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Manpages aren&#39;t available for these little helper scripts&lt;sup id=&quot;fnref:1007-2234&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:1007-2234&quot; rel=&quot;footnote&quot;&gt;6&lt;/a&gt;&lt;/sup&gt;, but you could always get info on what they do and which arguments they accept by invoking them with the &lt;code&gt;-h&lt;/code&gt; (for &lt;code&gt;theano-nose&lt;/code&gt;) resp. &lt;code&gt;help&lt;/code&gt; flag (for &lt;code&gt;theano-cache&lt;/code&gt;).&lt;/p&gt;
&lt;h1&gt;running the tests&lt;/h1&gt;
&lt;p&gt;On some occasions you might want to run the testsuite of the installed library, like to check over if everything runs fine on your GPU hardware.
There are two different ways to run the tests (anyway you need to have &lt;code&gt;python{,3}-nose&lt;/code&gt; installed).
One is, you could launch the test suite by doing &lt;code&gt;$ python -c &#39;import theano; theano.test()&lt;/code&gt; (or the same with &lt;code&gt;python3&lt;/code&gt; to test the other flavour), that&#39;s the same what the helper script &lt;code&gt;theano-test&lt;/code&gt; does.
However, by doing it that way some particular tests might fail by raising errors also for the group of known failures.&lt;/p&gt;


&lt;p&gt;Known failures are excluded from being errors if you run the tests by &lt;code&gt;theano-nose&lt;/code&gt;, which is a wrapper around nosetests, so this might be always the better choice.
You can run this convenience script with the option &lt;code&gt;--theano&lt;/code&gt; on the installed library, or from the source package root, which you could pull by &lt;code&gt;$ sudo apt-get source theano&lt;/code&gt; (there you have also the option to use &lt;code&gt;bin/theano-nose&lt;/code&gt;).
The script accept options for nosetests, so you might run it with &lt;code&gt;-v&lt;/code&gt; to increase verbosity.&lt;/p&gt;


&lt;p&gt;For the tests the configuration switch &lt;code&gt;config.device&lt;/code&gt; must be set to &lt;code&gt;cpu&lt;/code&gt;.
This will also include the GPU tests when a proper accessible device is detected, so that&#39;s a little misleading in the sense of it doesn&#39;t mean &quot;run everything on the CPU&quot;.
You&#39;re on the safe side if you run it always like this: &lt;code&gt;$ THEANO_FLAGS=device=cpu theano-nose&lt;/code&gt;, if you&#39;ve set &lt;code&gt;config.device&lt;/code&gt; to &lt;code&gt;gpu&lt;/code&gt; in your &lt;code&gt;~/.theanorc&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Depending on the available hardware and the used BLAS implementation (see below) it could take quite a long time to run the whole test suite through, on the Core-i5 in my laptop that takes around an hour even excluded the GPU related tests (which perform pretty fast, though).
Theano features a couple of switches to manipulate the default configuration for optimization and compilation.
There is a rivalry between optimization and compilation costs against performance of the test suite, and it turned out the test suite performs a quicker with lesser graph optimization.
There are two different switches available to control &lt;code&gt;config.optimizer&lt;/code&gt;, the &lt;code&gt;fast_run&lt;/code&gt; toggles maximal &lt;a href=&quot;http://www.deeplearning.net/software/theano/optimizations.html#optimizations&quot;&gt;optimization&lt;/a&gt;, while &lt;code&gt;fast_compile&lt;/code&gt; runs only a minimal set of graph optimization features.
These settings are used by the general &lt;a href=&quot;http://www.deeplearning.net/software/theano/tutorial/modes.html#mode&quot;&gt;mode&lt;/a&gt; switches for &lt;code&gt;config.mode&lt;/code&gt;, which is either &lt;code&gt;FAST_RUN&lt;/code&gt; by default, or &lt;code&gt;FAST_COMPILE&lt;/code&gt;.
The default mode &lt;code&gt;FAST_RUN&lt;/code&gt; (optimizer=fast_run, linker=cvm) needs around 72 minutes on my lower mid-level machine (on un-optimized BLAS).
To set &lt;code&gt;mode=FAST_COMPILE&lt;/code&gt; (optimizer=fast_compile, linker=py) brings some boost for the performance of the test suite because it runs the whole suite in 46 minutes.
The downside of that is that C code compilation is disabled in this mode by using the linker &lt;code&gt;py&lt;/code&gt;, and also the GPU related tests are not included.
I&#39;ve played around with using the optimizer &lt;code&gt;fast_compile&lt;/code&gt; with some of the other linkers (&lt;code&gt;c|py&lt;/code&gt; and &lt;code&gt;cvm&lt;/code&gt;, and their versions without garbage collection) as alternative to &lt;code&gt;FAST_COMPILE&lt;/code&gt; with minimal optimization but also machine code compilation incl. GPU testing.
But to my experience, &lt;code&gt;fast_compile&lt;/code&gt; without another than the linker &lt;code&gt;py&lt;/code&gt; results in some new errors and failures of some tests on amd64, and this might the case also on other architectures, too.&lt;/p&gt;


&lt;p&gt;By the way, another useful feature is &lt;code&gt;DebugMode&lt;/code&gt; for &lt;code&gt;config.mode&lt;/code&gt;, which verifies the correctness of all optimizations and compares the C to Python results.
If you want to have detailed info on the configuration settings of Theano, do &lt;code&gt;$ python -c &#39;import theano; print theano.config&#39; | less&lt;/code&gt;, and check out the chapter &lt;a href=&quot;http://www.deeplearning.net/software/theano/library/config.html&quot;&gt;config&lt;/a&gt; in the library documentation in the documentation.&lt;/p&gt;
&lt;h1&gt;cache maintenance&lt;/h1&gt;
&lt;p&gt;Theano isn&#39;t a JIT (just-in-time) compiler like Numba, which generates native machine code in the memory and executes it immediately, but it saves the generated native machine code into &lt;em&gt;compiledirs&lt;/em&gt;.
The reason for doing it that way is quite practical like the docs explain, the persistent cache on disk makes it possible to avoid generating code for the same operation, and to avoid compiling again when different operations generate the same code.
The compiledirs by default are located within &lt;code&gt;$(HOME)/.theano/&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;After some time the folder becomes quite large, and might look something like this:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ ls ~/.theano
compiledir_Linux-4.5--amd64-x86_64-with-debian-stretch-sid--2.7.11+-64
compiledir_Linux-4.5--amd64-x86_64-with-debian-stretch-sid--2.7.12-64
compiledir_Linux-4.5--amd64-x86_64-with-debian-stretch-sid--2.7.12rc1-64
compiledir_Linux-4.5--amd64-x86_64-with-debian-stretch-sid--3.5.1+-64
compiledir_Linux-4.5--amd64-x86_64-with-debian-stretch-sid--3.5.2-64
compiledir_Linux-4.5--amd64-x86_64-with-debian-stretch-sid--3.5.2rc1-64
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;If the used Python version changed like in this example you might to want to purge obsolete cache.
For working with the cache resp. the compiledirs, the helper &lt;code&gt;theano-cache&lt;/code&gt; comes in handy.
If you invoke it without any arguments the current cache location is put out like &lt;code&gt;~/.theano/compiledir_Linux-4.5--amd64-x86_64-with-debian-stretch-sid--2.7.12-64&lt;/code&gt; (the script is run from &lt;code&gt;/usr/share/python-theano&lt;/code&gt;).
So, the compiledirs for the old Python versions in this example (11+ and 12rc1) can be removed to free the space they occupy.&lt;/p&gt;


&lt;p&gt;All compiledirs resp. cache directories meaning the whole cache could be erased by &lt;code&gt;$ theano-cache basecompiledir purge&lt;/code&gt;, the effect is the same as by performing &lt;code&gt;$ rm -rf ~/.theano&lt;/code&gt;.
You might want to do that e.g. if you&#39;re using different hardware, like when you got yourself another graphics card.
Or habitual from time to time when the compiledirs fill up so much that it slows down processing with the harddisk being very busy all the time, if you don&#39;t have an SSD drive available.
For example, the disk space of build chroots carrying (mainly) the tests completely compiled through on default Python 2 and Python 3 consumes around 1.3 GB (see &lt;a href=&quot;https://buildd.debian.org/status/logs.php?pkg=theano&amp;amp;ver=0.8.2-3&amp;amp;arch=amd64&quot;&gt;here&lt;/a&gt;).&lt;/p&gt;
&lt;h1&gt;BLAS implementations&lt;/h1&gt;
&lt;p&gt;Theano needs a level 3 implementation of &lt;a href=&quot;https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms&quot;&gt;BLAS&lt;/a&gt; (Basic Linear Algebra Subprograms) for operations between vectors (one-dimensional mathematical objects) and matrices (two-dimensional objects) carried out on the CPU.
NumPy is already build on BLAS and pulls the standard implementation (libblas3, soure package: lapack), but Theano links directly to it instead of using NumPy as intermediate layer to reduce the computational overhead.
For this, Theano needs development headers and the binary packages pull libblas-dev by default, if any other development package of another BLAS &lt;a href=&quot;https://wiki.debian.org/DebianScience/LinearAlgebraLibraries&quot;&gt;implementation&lt;/a&gt; (like OpenBLAS or ATLAS) isn&#39;t already installed, or pulled with them (providing the virtual package &lt;code&gt;libblas.so&lt;/code&gt;).
The linker flags could be manipulated directly through the configuration switch &lt;code&gt;config.blas.ldflags&lt;/code&gt;, which is by default set to &lt;code&gt;-L/usr/lib -lblas -lblas&lt;/code&gt;.
By the way, if you set it to an empty value, Theano falls back to using BLAS through NumPy, if you want to have that for some reason.&lt;/p&gt;


&lt;p&gt;On Debian, there is a very convenient way to switch between BLAS implementations by the alternatives mechanism.
If you have several alternative implementations installed at the same time, you can switch from one to another easily by just doing:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ sudo update-alternatives --config libblas.so
There are &lt;span class=&quot;m&quot;&gt;3&lt;/span&gt; choices &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; the alternative libblas.so &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;providing /usr/lib/libblas.so&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;.

  Selection    Path                                  Priority   Status
------------------------------------------------------------
* &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;            /usr/lib/openblas-base/libblas.so      &lt;span class=&quot;m&quot;&gt;40&lt;/span&gt;        auto mode
  &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;            /usr/lib/atlas-base/atlas/libblas.so   &lt;span class=&quot;m&quot;&gt;35&lt;/span&gt;        manual mode
  &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;            /usr/lib/libblas/libblas.so            &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;        manual mode
  &lt;span class=&quot;m&quot;&gt;3&lt;/span&gt;            /usr/lib/openblas-base/libblas.so      &lt;span class=&quot;m&quot;&gt;40&lt;/span&gt;        manual mode

Press &amp;lt;enter&amp;gt; to keep the current choice&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;*&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;, or &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt; selection number:
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The implementations are performing differently on different hardware, so you might want to take the time to compare which one does it best on your processor (the other packages are libatlas-base-dev and libopenblas-dev), and choose that to optimize your system.
If you want to squeeze out all which is in there for carrying out Theano&#39;s computations on the CPU, another option is to compile an optimized version of a BLAS library especially for your processor.
I&#39;m going to write another blog posting on this issue.&lt;/p&gt;


&lt;p&gt;The binary packages of Theano ship the script &lt;code&gt;check_blas.py&lt;/code&gt; to check over how well a BLAS implementation performs with it, and if everything works right.
That script is located in the &lt;code&gt;misc&lt;/code&gt; subfolder of the library, you could locate it by doing &lt;code&gt;$ dpkg -L python-theano | grep check_blas&lt;/code&gt; (or for the package python3-theano accordingly), and run it with the Python interpreter.
By default the scripts puts out a lot of info like a huge perfomance comparison reference table, the current setting of &lt;code&gt;blas.ldflags&lt;/code&gt;, the compiledir, the setting of &lt;code&gt;floatX&lt;/code&gt;, OS information, the GCC version, the current NumPy config towards BLAS, NumPy location and version, if Theano linked directly or has used the NumPy binding, and finally and most important, the execution time.
If just the execution time for quick perfomance comparisons is needed this script could be invoked with &lt;code&gt;-q&lt;/code&gt;.&lt;/p&gt;
&lt;h1&gt;Theano on CUDA&lt;/h1&gt;
&lt;p&gt;The function compiler of Theano works with alternative backends to carry out the computations, like the ones for graphics cards.
Currently, there are two different backends for GPU processing available, one docks onto NVIDIA&#39;s CUDA (Compute Unified Device Architecture) technology&lt;sup id=&quot;fnref:1907-1520&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:1907-1520&quot; rel=&quot;footnote&quot;&gt;7&lt;/a&gt;&lt;/sup&gt;, and another one for &lt;a href=&quot;https://github.com/Theano/libgpuarray&quot;&gt;libgpuarray&lt;/a&gt;, which is also developed by the Theano developers in parallel.&lt;/p&gt;


&lt;p&gt;The &lt;a href=&quot;http://deeplearning.net/software/libgpuarray/&quot;&gt;libgpuarray library&lt;/a&gt; is an interesting alternative for Theano, it&#39;s a GPU tensor (multi-dimensional mathematical object) array written in C with Python bindings based on Cython, which has the advantage of running also on OpenCL&lt;sup id=&quot;fnref:1907-1521&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:1907-1521&quot; rel=&quot;footnote&quot;&gt;8&lt;/a&gt;&lt;/sup&gt;.
OpenCL, unlike CUDA&lt;sup id=&quot;fnref:1907-1534&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:1907-1534&quot; rel=&quot;footnote&quot;&gt;9&lt;/a&gt;&lt;/sup&gt;, is full free software, vendor neutral and overcomes the limitation of the CUDA toolkit being only available for amd64 and the ppc64el port (see &lt;a href=&quot;https://buildd.debian.org/status/package.php?p=nvidia-cuda-toolkit&amp;amp;suite=unstable&quot;&gt;here&lt;/a&gt;).
I&#39;ve opened an &lt;a href=&quot;https://bugs.debian.org/819012&quot;&gt;ITP on libgpuarray&lt;/a&gt; and we&#39;ll see if and how this works out.
Another reason for it would be great to have it available is that it looks like CUDA currently runs into problems with GCC 6&lt;sup id=&quot;fnref:1907-1540&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:1907-1540&quot; rel=&quot;footnote&quot;&gt;10&lt;/a&gt;&lt;/sup&gt;.
More on that, soon.&lt;/p&gt;


&lt;p&gt;Here&#39;s a litle checklist for setting up your CUDA device so that you don&#39;t have to experience something like this:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ &lt;span class=&quot;nv&quot;&gt;THEANO_FLAGS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;device&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;gpu,floatX&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;float32 python ./cat_dog_classifier.py 
WARNING &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;theano.sandbox.cuda&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: CUDA is installed, but device gpu is not available &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;error: Unable to get the number of gpus available: no CUDA-capable device is detected&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;hardware check&lt;/h2&gt;
&lt;p&gt;For running Theano on CUDA you need an NVIDIA graphics card which is capable of doing that.
You can recheck if your device is supported by CUDA &lt;a href=&quot;http://developer.nvidia.com/cuda-gpus&quot;&gt;here&lt;/a&gt;.
When the hardware isn&#39;t too old (CUDA support started with GeForce 8 and Quadro X series) or too strange I think it isn&#39;t working only in exceptional cases.
You can check your model and if the device is present in the system on the bare hardware level by doing this:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ lspci &lt;span class=&quot;p&quot;&gt;|&lt;/span&gt; grep -i nvidia
04:00.0 3D controller: NVIDIA Corporation GM108M &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;GeForce 940M&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;rev a2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;If a line like this doesn&#39;t get returned, your device most probably is broken, or not properly connected (ouch).
If &lt;code&gt;rev ff&lt;/code&gt; appears at the end of the line that means the device is off meaning powered down.
This might be happening if you have a laptop with Optimus graphics hardware, and the related drivers have switched off the unoccupied device to safe energy&lt;sup id=&quot;fnref:0207-0545&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:0207-0545&quot; rel=&quot;footnote&quot;&gt;11&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;h2&gt;kernel module&lt;/h2&gt;
&lt;p&gt;Running CUDA applications requires the proprietary &lt;a href=&quot;https://packages.qa.debian.org/n/nvidia-graphics-drivers.html&quot;&gt;NVIDIA driver&lt;/a&gt; kernel module to be loaded into the kernel and working.&lt;/p&gt;


&lt;p&gt;If you haven&#39;t already installed it for another purpose, the NVIDIA driver and the CUDA toolkit are both in the non-free section of the Debian archive, which is not enabled by default.
To get non-free packages you have to add &lt;code&gt;non-free&lt;/code&gt; (and it&#39;s better to do so, also &lt;code&gt;contrib&lt;/code&gt;) to your package source in &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;, which might then look like this:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;deb&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;http://httpredir.debian.org/debian/&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;testing&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;contrib&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;non-free&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;After doing that, perform &lt;code&gt;$ apt-cache update&lt;/code&gt; to update the package lists, and there you go with the non-free packages.&lt;/p&gt;


&lt;p&gt;The headers of the running kernel are needed to compile modules, you can get them together with the NVIDIA kernel module package by running:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ sudo apt-get install linux-headers-&lt;span class=&quot;k&quot;&gt;$(&lt;/span&gt;uname -r&lt;span class=&quot;k&quot;&gt;)&lt;/span&gt; nvidia-kernel-dkms build-essential
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;DKMS will then build the NVIDIA module for the kernel and does some other things on the system.
When the installation has finished, it&#39;s generally advised to reboot the system completely.&lt;/p&gt;
&lt;h2&gt;troubleshooting&lt;/h2&gt;
&lt;p&gt;If you have problems with the CUDA device, it&#39;s advised to verify if the following things concerning the NVIDIA driver resp. kernel module are in order:&lt;/p&gt;
&lt;h3&gt;blacklist nouveau&lt;/h3&gt;
&lt;p&gt;Check if the default Nouveau kernel module driver (which blocks the NVIDIA module) for some reason still gets loaded by doing &lt;code&gt;$ lsmod | grep nouveau&lt;/code&gt;.
If nothing gets returned, that&#39;s right.
If it&#39;s still in the kernel, just add &lt;code&gt;blacklist nouveau&lt;/code&gt; to &lt;code&gt;/etc/modprobe.d/blacklist.conf&lt;/code&gt;, and update the booting ramdisk with &lt;code&gt;§ sudo update-initramfs -u&lt;/code&gt; afterwards.
Then reboot once more, this shouldn&#39;t be the case then anymore.&lt;/p&gt;
&lt;h3&gt;rebuild kernel module&lt;/h3&gt;
&lt;p&gt;To fix it when the module haven&#39;t been properly compiled for some reason you could trigger a rebuild of the NVIDIA kernel module with &lt;code&gt;$ sudo dpkg-reconfigure nvidia-kernel-dkms&lt;/code&gt;.
When you&#39;re about to send your hardware in to repair because everything looks all right but the device just isn&#39;t working, that really could help (own experience).&lt;/p&gt;
&lt;p&gt;After the rebuild of the module or modules (if you have a few kernel packages installed) has completed, you could recheck if the module really is available by running:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ sudo modinfo nvidia-current
filename:       /lib/modules/4.4.0-1-amd64/updates/dkms/nvidia-current.ko
alias:          char-major-195-*
version:        352.79
supported:      external
license:        NVIDIA
alias:          pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        drm
vermagic:       4.4.0-1-amd64 SMP mod_unload modversions 
parm:           NVreg_Mobile:int
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;It should be something similiar to this when everything is all right.&lt;/p&gt;
&lt;h3&gt;reload kernel module&lt;/h3&gt;
&lt;p&gt;When there are problems with the GPU, maybe the kernel module isn&#39;t properly loaded.
You could recheck if the module has been properly loaded by doing&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ lsmod &lt;span class=&quot;p&quot;&gt;|&lt;/span&gt; grep nvidia
nvidia_uvm             &lt;span class=&quot;m&quot;&gt;73728&lt;/span&gt;  0
nvidia               &lt;span class=&quot;m&quot;&gt;8540160&lt;/span&gt;  &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; nvidia_uvm
drm                   &lt;span class=&quot;m&quot;&gt;356352&lt;/span&gt;  &lt;span class=&quot;m&quot;&gt;7&lt;/span&gt; i915,drm_kms_helper,nvidia
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The kernel module could be loaded resp. reloaded with &lt;code&gt;$ sudo nvidia-modprobe&lt;/code&gt; (that tool is from the package nvidia-modprobe).&lt;/p&gt;
&lt;h3&gt;unsupported graphics card&lt;/h3&gt;
&lt;p&gt;Be sure that you graphics cards is supported by the current driver kernel module.
If you have bought new hardware, that&#39;s quite possible to come out being a problem.
You can get the version of the current NVIDIA driver with:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ cat /proc/driver/nvidia/version 
NVRM version: NVIDIA UNIX x86_64 Kernel Module 352.79  Wed Jan &lt;span class=&quot;m&quot;&gt;13&lt;/span&gt; 16:17:53 PST 2016
GCC version:  gcc version 5.3.1 &lt;span class=&quot;m&quot;&gt;20160528&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Debian 5.3.1-21&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Then, google the version number like &lt;code&gt;nvidia 352.79&lt;/code&gt;, this should get you onto an official driver download page &lt;a href=&quot;http://www.nvidia.de/Download/driverResults.aspx/97654&quot;&gt;like this&lt;/a&gt;.
There, check for what&#39;s to be found under &quot;Supported Products&quot;.&lt;/p&gt;
&lt;p&gt;I you&#39;re stuck with that there are two options, to wait until the driver in Debian got updated, or replace it with the latest driver package from NVIDIA.
That&#39;s possible to do, but something more for experienced users.&lt;/p&gt;
&lt;h3&gt;occupied graphics card&lt;/h3&gt;
&lt;p&gt;The CUDA driver cannot work while the graphical interface is busy like by processing the graphical display of your X.Org server.
Which kernel driver actually is used to process the desktop could be examined by this command:&lt;sup id=&quot;fnref:1907-2040&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:1907-2040&quot; rel=&quot;footnote&quot;&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;$&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;II&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Xorg&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;.0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;log&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;    &lt;span class=&quot;mf&quot;&gt;37.700&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;II&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;intel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Using&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Kernel&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Mode&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Setting&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;driver&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i915&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;version&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;1.6.0&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;20150522&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;    &lt;span class=&quot;mf&quot;&gt;37.700&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;II&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;intel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;SNA&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;compiled&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xserver&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xorg&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;video&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;intel&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;2.99.917&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Vincent&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Cheng&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vcheng&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;debian&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;org&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{...}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;    &lt;span class=&quot;mf&quot;&gt;39.808&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;II&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;intel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mode&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1920&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x1080&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;@60.0&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;on&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eDP1&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pipe&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;position&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rotation&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;normal&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;reflection&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;    &lt;span class=&quot;mf&quot;&gt;39.810&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;II&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;intel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Setting&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;screen&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;physical&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;508&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;285&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;    &lt;span class=&quot;mf&quot;&gt;67.576&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;II&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;intel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EDID&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;vendor&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;CMN&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;prod&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;id&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;5941&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;    &lt;span class=&quot;mf&quot;&gt;67.576&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;II&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;intel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Printing&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DDC&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gathered&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;Modelines&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;    &lt;span class=&quot;mf&quot;&gt;67.576&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;II&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;intel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Modeline&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;1920x1080&quot;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x0&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;.0&lt;/span&gt;  &lt;span class=&quot;mf&quot;&gt;152.84&lt;/span&gt;  &lt;span class=&quot;mi&quot;&gt;1920&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1968&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2000&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2250&lt;/span&gt;  &lt;span class=&quot;mi&quot;&gt;1080&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1083&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1088&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1132&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;hsync&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vsync&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;67.9&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;kHz&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This example shows that the rendering of the desktop is performed by the graphical device of the Intel CPU, which is just like it&#39;s needed for running CUDA applications on your NVIDIA graphics card, if you don&#39;t have another one.&lt;/p&gt;
&lt;h2&gt;nvidia-cuda-toolkit&lt;/h2&gt;
&lt;p&gt;With the &lt;a href=&quot;https://packages.qa.debian.org/n/nvidia-cuda-toolkit.html&quot;&gt;Debian package&lt;/a&gt; of the CUDA toolkit everything pretty much runs out of the box for Theano.
Just install it with &lt;code&gt;apt-get&lt;/code&gt;, and you&#39;re ready to go, the CUDA backend is the default one.
Pycuda is also a suggested dependency of the binary packages, it could be pulled together with the CUDA toolkit.&lt;/p&gt;


&lt;p&gt;The up-to-date CUDA release 7.5 is of course available, with that you have Maxwell architecture support so that you can run Theano on e.g. a GeForce GTX Titan X with 6,2 TFLOPS on single precision&lt;sup id=&quot;fnref:2007-0603&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:2007-0603&quot; rel=&quot;footnote&quot;&gt;13&lt;/a&gt;&lt;/sup&gt; at an affordable price.
CUDA 8&lt;sup id=&quot;fnref:2007-0607&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:2007-0607&quot; rel=&quot;footnote&quot;&gt;14&lt;/a&gt;&lt;/sup&gt; is &lt;a href=&quot;https://bugs.debian.org/822434&quot;&gt;around the corner&lt;/a&gt; with support for the new Pascal architecture&lt;sup id=&quot;fnref:2007-0609&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:2007-0609&quot; rel=&quot;footnote&quot;&gt;15&lt;/a&gt;&lt;/sup&gt;.
Like the GeForce GTX 1080 high-end gaming graphics card already has 8,23 TFLOPS&lt;sup id=&quot;fnref:0207-0611&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:0207-0611&quot; rel=&quot;footnote&quot;&gt;16&lt;/a&gt;&lt;/sup&gt;.
When it comes to professional GPGPU hardware like the Tesla P100 there is much more computational power available, scalable by multiplication of cores resp. cards up to genuine little supercomputers which fit on a desk, like the DGX-1&lt;sup id=&quot;fnref:2307-0256&quot;&gt;&lt;a class=&quot;footnote-ref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fn:2307-0256&quot; rel=&quot;footnote&quot;&gt;17&lt;/a&gt;&lt;/sup&gt;.
Theano can use multiple GPUs for calculations to work with high scaled hardware, I&#39;ll write another blog post on this issue.&lt;/p&gt;
&lt;h2&gt;Theano on the GPU&lt;/h2&gt;
&lt;p&gt;It&#39;s not difficult to run &lt;a href=&quot;http://www.deeplearning.net/software/theano/tutorial/using_gpu.html&quot;&gt;Theano on the GPU&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Only single precision floating point numbers (float32) are supported on the GPU, but that is sufficient for deep learning applications.
Theano uses double precision floats (float64) by default, so you have to set the configuration variable &lt;code&gt;config.floatX&lt;/code&gt; to &lt;code&gt;float32&lt;/code&gt;, like written on above, either with the &lt;code&gt;THEANO_FLAGS&lt;/code&gt; environment variable or better in your &lt;code&gt;.theanorc&lt;/code&gt; file, if you&#39;re going to use the GPU a lot.&lt;/p&gt;


&lt;p&gt;Switching to the GPU actually happens with the &lt;code&gt;config.device&lt;/code&gt; configuration variable, which must be set to either &lt;code&gt;gpu&lt;/code&gt; or &lt;code&gt;gpu0&lt;/code&gt;, &lt;code&gt;gpu1&lt;/code&gt; etc., to choose a particular one if multiple devices are available.&lt;/p&gt;


&lt;p&gt;Here&#39;s is a little test script, it&#39;s taken from the docs but slightly altered:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;__future__&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;print_function&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;theano&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sandbox&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;theano.tensor&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;T&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numpy&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;six.moves&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;vlen&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;30&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;768&lt;/span&gt;  &lt;span class=&quot;c1&quot;&gt;# 10 x #cores x # threads per core&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;iters&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1000&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;rng&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;numpy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RandomState&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;numpy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;asarray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rng&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rand&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vlen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;floatX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;exp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;maker&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fgraph&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;toposort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;t0&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;r&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;t1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Looping &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%d&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; times took &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%f&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; seconds&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;t1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;t0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Result is &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,))&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;numpy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;isinstance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;op&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Elemwise&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;maker&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fgraph&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;toposort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()]):&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Used the cpu&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Used the gpu&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;You can run that script either with &lt;code&gt;python&lt;/code&gt; or &lt;code&gt;python3&lt;/code&gt; (there was a single test failure on the Python 3 package, so the Python 2 library might be a little more stable currently).
For comparison, here&#39;s an example on how it perfoms on my hardware, one time on the CPU, one more time on the GPU:&lt;/p&gt;
&lt;div class=&quot;codehilite&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ &lt;span class=&quot;nv&quot;&gt;THEANO_FLAGS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;floatX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;float32 python ./check1.py 
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Elemwise&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;exp,no_inplace&lt;span class=&quot;o&quot;&gt;}(&lt;/span&gt;&amp;lt;TensorType&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;float32, vector&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&amp;gt;&lt;span class=&quot;o&quot;&gt;)]&lt;/span&gt;
Looping &lt;span class=&quot;m&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;times&lt;/span&gt; took 4.481719 seconds
Result is &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; 1.23178029  1.61879337  1.52278066 ...,  2.20771813  2.29967761
  1.62323284&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;
Used the cpu

$ &lt;span class=&quot;nv&quot;&gt;THEANO_FLAGS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;floatX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;float32,device&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;gpu python ./check1.py 
Using gpu device 0: GeForce 940M &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;CNMeM is disabled, cuDNN not available&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;GpuElemwise&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;exp,no_inplace&lt;span class=&quot;o&quot;&gt;}(&lt;/span&gt;&amp;lt;CudaNdarrayType&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;float32, vector&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&amp;gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, HostFromGpu&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;GpuElemwise&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;exp,no_inplace&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;.0&lt;span class=&quot;o&quot;&gt;)]&lt;/span&gt;
Looping &lt;span class=&quot;m&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;times&lt;/span&gt; took 1.164906 seconds
Result is &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
  1.62323296&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;
Used the gpu
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;If you got a result like this you&#39;re ready to go with Theano on Debian, training computer vision classifiers or whatever you want to do with it.
I&#39;ll write more on for what Theano could be used, soon.&lt;/p&gt;
&lt;div class=&quot;footnote&quot;&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id=&quot;fn:0717-0215&quot;&gt;
&lt;p&gt;Some ports are disabled because they are currently not supported by Theano.
 There are NotImplementedErrors and other errors in the tests on the numpy.ndarray object being not aligned.
 The developers commented on that, see &lt;a href=&quot;https://groups.google.com/forum/#!topic/theano-dev/y4e0ABnb_8o&quot;&gt;here&lt;/a&gt;.
 And on some ports the build flags &lt;code&gt;-m32&lt;/code&gt; resp. &lt;code&gt;-m64&lt;/code&gt; of Theano aren&#39;t supported by g++, the build flags can&#39;t be manipulated easily. &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:0717-0215&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 1 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:0807-1112&quot;&gt;
&lt;p&gt;Theano Development Team: &quot;&lt;a href=&quot;http://arxiv.org/pdf/1605.02688.pdf&quot;&gt;Theano: a Python framework for fast computation of mathematical expressions&lt;/a&gt;&quot; &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:0807-1112&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 2 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:0707-2236&quot;&gt;
&lt;p&gt;Marc Couture: &quot;&lt;a href=&quot;http://www.rtcmagazine.com/articles/view/112305&quot;&gt;Today&#39;s high-powered GPUs: strong for graphics and for maths&lt;/a&gt;&quot;. In: &lt;em&gt;RTC magazine&lt;/em&gt; June 2015, pp. 22–25 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:0707-2236&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 3 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:0907-1030&quot;&gt;
&lt;p&gt;Ogier Maitre: &quot;&lt;a href=&quot;http://www.springer.com/cda/content/document/cda_downloaddocument/9783642379581-c1.pdf?SGWID=0-0-45-1430823-p175116730&quot;&gt;Understanding NVIDIA GPGPU hardware&lt;/a&gt;&quot;. In: Tsutsui/Collet (eds.): &lt;em&gt;Massively parallel evolutionary computation on GPGPUs&lt;/em&gt;. Berlin, Heidelberg: Springer 2013, pp. 15-34 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:0907-1030&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 4 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:0907-1847&quot;&gt;
&lt;p&gt;Geoffrey French: &quot;&lt;a href=&quot;https://www.youtube.com/watch?v=DlNR1MrK4qE&amp;amp;index=63&amp;amp;list=PLGVZCDnMOq0qfJkoiFj-hN7lSHgQzXtqQ&quot;&gt;Deep learing tutorial: advanved techniques&lt;/a&gt;&quot;. PyData London 2016 presentation &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:0907-1847&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 5 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:1007-2234&quot;&gt;
&lt;p&gt;Like the description of the Lintian tag &lt;a href=&quot;https://lintian.debian.org/tags/binary-without-manpage.html&quot;&gt;binary-without-manpage&lt;/a&gt; says, that&#39;s not needed for them being in &lt;code&gt;/usr/share&lt;/code&gt;. &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:1007-2234&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 6 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:1907-1520&quot;&gt;
&lt;p&gt;Tom. R. Halfhill: &quot;&lt;a href=&quot;http://www.nvidia.com/docs/IO/47906/220401_Reprint.pdf&quot;&gt;Parallel processing with CUDA: Nvidia&#39;s high-performance computing platform uses massive multithreading&lt;/a&gt;&quot;. In: &lt;em&gt;Microprocessor Report&lt;/em&gt; January 28, 2008 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:1907-1520&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 7 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:1907-1521&quot;&gt;
&lt;p&gt;Faber et.al: &quot;Parallelwelten: GPU-Programmierung mit OpenCL&quot;. In: &lt;em&gt;C&#39;t&lt;/em&gt; 26/2014, pp. 160-165 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:1907-1521&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 8 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:1907-1534&quot;&gt;
&lt;p&gt;For comparison, see: Valentine Sinitsyn: &quot;&lt;a href=&quot;https://www.linuxvoice.com/issues/011/gpu.pdf&quot;&gt;Feel the taste of GPU programming&lt;/a&gt;&quot;. In: &lt;em&gt;Linux Voice&lt;/em&gt; February 2015, pp. 106-109 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:1907-1534&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 9 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:1907-1540&quot;&gt;
&lt;p&gt;&lt;a href=&quot;https://lists.debian.org/debian-devel/2016/07/msg00004.html&quot;&gt;https://lists.debian.org/debian-devel/2016/07/msg00004.html&lt;/a&gt; &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:1907-1540&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 10 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:0207-0545&quot;&gt;
&lt;p&gt;If Optimus (hybrid) graphics hardware is present (like commonly today on PC laptops), Debian launches the X-server on the graphics processing unit of the CPU, which is ideal for CUDA.
The problem with Optimus actually is the graphics processing on the dedicated GPU.
If you are using Bumblebee, the Python interpreter which you want to run Theano on has be to be started with the launcher primusrun, because Bumblebee powers the GPU down with the tool bbswitch every time it isn&#39;t used, and I think also the kernel module of the driver is dynamically loaded. &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:0207-0545&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 11 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:1907-2040&quot;&gt;
&lt;p&gt;Thorsten Leemhuis: &quot;Treiberreviere. Probleme mit Grafiktreibern für Linux lösen&quot;: In: &lt;em&gt;C&#39;t&lt;/em&gt; Nr.2/2013, pp. 156-161 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:1907-2040&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 12 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:2007-0603&quot;&gt;
&lt;p&gt;Martin Fischer: &quot;4K-Rakete: Die schnellste Single-GPU-Grafikkarte der Welt&quot;. In &lt;em&gt;C&#39;t&lt;/em&gt; 13/2015, pp. 60-61 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:2007-0603&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 13 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:2007-0607&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://www.heise.de/developer/meldung/Nvidia-CUDA-8-bringt-Optimierungen-fuer-die-Pascal-Architektur-3164254.html&quot;&gt;http://www.heise.de/developer/meldung/Nvidia-CUDA-8-bringt-Optimierungen-fuer-die-Pascal-Architektur-3164254.html&lt;/a&gt; &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:2007-0607&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 14 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:2007-0609&quot;&gt;
&lt;p&gt;Martin Fischer: &quot;All In: Nvidia enthüllt die GPU-Architektur &#39;Pascal&#39;&quot;. In: &lt;em&gt;C&#39;t&lt;/em&gt; 9/2016, pp. 30-31 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:2007-0609&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 15 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:0207-0611&quot;&gt;
&lt;p&gt;Martin Fischer: &quot;Turbo-Pascal: High-End-Grafikkarte für Spieler: GeForce GTX 1080&quot;. In: &lt;em&gt;C&#39;t&lt;/em&gt; 13/2016, pp. 100-103 &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:0207-0611&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 16 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn:2307-0256&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://www.golem.de/news/dgx-1-nvidias-supercomputerchen-mit-8x-tesla-p100-1604-120155.html&quot;&gt;http://www.golem.de/news/dgx-1-nvidias-supercomputerchen-mit-8x-tesla-p100-1604-120155.html&lt;/a&gt; &lt;a class=&quot;footnote-backref&quot; href=&quot;http://www.danielstender.com/blog/feeds/debian-gnulinux.atom.xml#fnref:2307-0256&quot; rev=&quot;footnote&quot; title=&quot;Jump back to footnote 17 in the text&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt; </description> 
	<pubDate>Wed, 20 Jul 2016 05:13:00 +0000</pubDate>

</item> 
<item>
	<title>Michael Prokop: DebConf16 in Capetown/South Africa:  Lessons learnt</title>
	<guid>http://michael-prokop.at/blog/?p=4070</guid>
	<link>http://michael-prokop.at/blog/2016/07/19/debconf16-in-capetownsouth-africa-lessons-learnt/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/mikap.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;a href=&quot;https://debconf16.debconf.org/&quot;&gt;DebConf 16&lt;/a&gt; in Capetown/South Africa was fantastic for &lt;em&gt;many&lt;/em&gt; reasons.&lt;/p&gt;
&lt;h3&gt;My Capetown/South Africa/Culture/Flight related lessons:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Avoid flying on Sundays (especially in/from Austria where plenty of hotlines are closed on Sundays or at least not open when you need them)&lt;/li&gt;
&lt;li&gt;Actually turn back your seat on the flight when trying to sleep and not forget that this option exists *cough*&lt;/li&gt;
&lt;li&gt;While &lt;abbr title=&quot;University of Cape Town&quot;&gt;&lt;a href=&quot;http://www.uct.ac.za/&quot;&gt;UCT&lt;/a&gt;&lt;/abbr&gt; claims to take energy saving quite serious (e.g. “turn off the lights” mentioned at many places around the campus), several toilets flush all their water, even when trying to do just small™ business and also two big lights in front of a main building seem to be shining all day long for no apparent reason&lt;/li&gt;
&lt;li&gt;There doesn’t seem to be a standard for the side of hot vs. cold water-taps&lt;/li&gt;
&lt;li&gt;Soap &lt;em&gt;pieces&lt;/em&gt; and towels on several toilets&lt;/li&gt;
&lt;li&gt;For pedestrians there’s just a &lt;em&gt;very&lt;/em&gt; short time of green at the traffic lights (~2-3 seconds), then red blinking lights show that you can continue walking across the street (but *should* not &lt;em&gt;start&lt;/em&gt; walking) until it’s fully red again (but not many people seem to care about the rules anyway :))&lt;/li&gt;
&lt;li&gt;Warning lights of cars are used for saying thanks (compared to hand waving in e.g. Austria)&lt;/li&gt;
&lt;li&gt;The 40km/h speed limit signs on the roads seem to be showing the recommended &lt;em&gt;minimum&lt;/em&gt; speed :-)&lt;/li&gt;
&lt;li&gt;There are many speed bumps on the roads&lt;/li&gt;
&lt;li&gt;Geese quacking past 11:00 p.m. close to a sleeping room are something I’m also not used to :-)&lt;/li&gt;
&lt;li&gt;Announced downtimes for the Internet connection are something I’m not used to&lt;/li&gt;
&lt;li&gt;WLAN in the dorms of UCT as well as in any other place I went to at UCT worked excellent (measured ~22-26 Mbs downstream in my room, around 26Mbs in the hacklab) (kudos!)&lt;/li&gt;
&lt;li&gt;WLAN is available even on top of the &lt;a href=&quot;http://www.tablemountain.net/&quot;&gt;Table Mountain&lt;/a&gt; (WLAN working &lt;em&gt;and&lt;/em&gt; being free without any registration) &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://number26.de/&quot;&gt;Number26&lt;/a&gt; credit card is great to withdraw money from ATMs without any extra fees from common credit card companies (except for the fee the ATM itself charges but displays ahead on-site anyway)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.splitwise.com/&quot;&gt;Splitwise&lt;/a&gt; is a nice way to share expenses on the road, especially with its mobile app and the money beaming using the Number26 mobile app&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;My technical lessons from DebConf16:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ran into &lt;em&gt;way&lt;/em&gt; too many yak-shaving situations, some of them might warrant separate blog posts…&lt;/li&gt;
&lt;li&gt;finally got my hands on &lt;a href=&quot;http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/man.gbp.pq.html&quot;&gt;gbp-pq&lt;/a&gt; (manage quilt patches on patch queue branches in git): very nice to be able to work with plain git and then get patches for your changes, also having upstream patches (like cherry-picks) inside debian/patches/ and the debian specific changes inside debian/patches/debian/ is a lovely idea, this can be easily achieved via “Gbp-Pq: Topic debian” with gbp’s pq and is used e.g. in &lt;a href=&quot;http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/&quot;&gt;pkg-systemd&lt;/a&gt;, thanks to Michael Biebl for the hint and helping hand&lt;/li&gt;
&lt;li&gt;David Bremner’s &lt;a href=&quot;http://www.cs.unb.ca/~bremner/blog/posts/debcamp12/&quot;&gt;gitpkg/git-debcherry&lt;/a&gt; is something to also be aware of (thanks for the reminder, gregoa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://autorevision.github.io/&quot;&gt;autorevision&lt;/a&gt;: extracts revision metadata from your VCS repository (thanks to &lt;a href=&quot;http://bonedaddy.net/pabs3/log/2016/06/24/debcamp16-day-1&quot;&gt;pabs&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://packages.debian.org/sid/utils/blhc&quot;&gt;blhc&lt;/a&gt;: build log hardening check&lt;/li&gt;
&lt;li&gt;Guido’s &lt;a href=&quot;http://permalink.gmane.org/gmane.comp.version-control.git.git-buildpackage/79&quot;&gt;gbp skills exchange session&lt;/a&gt; reminded me once again that I should use `gbp import-dsc –download $URL_TO_DSC` more often&lt;/li&gt;
&lt;li&gt;sources.debian.net features specific &lt;a href=&quot;http://sources.debian.net/copyright/&quot;&gt;copyright&lt;/a&gt; + &lt;a href=&quot;http://sources.debian.net/patches/&quot;&gt;patches&lt;/a&gt; sections (thanks, Matthieu Caneill)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://raphaelhertzog.com/2009/10/08/3-way-merge-of-debian-changelog-files/&quot;&gt;dpkg-mergechangelogs(1)&lt;/a&gt; for 3-way merge of debian/changelog files (thanks, buxy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pkg-perl.alioth.debian.org/git.html#what_s_in_meta_git&quot;&gt;meta-git from pkg-perl&lt;/a&gt; is always worth a closer look&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://packages.debian.org/sid/ifupdown2&quot;&gt;ifupdown2&lt;/a&gt; (its current version is also available in jessie-backports!) has some nice features, like `&lt;em&gt;ifquery –running $interface&lt;/em&gt;` to get the life configuration of a network interface, json support (`ifquery –format=json …`) and makotemplates support to generate configuration for plenty of interfaces&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BTW, thanks to the video team the recordings from the sessions are &lt;a href=&quot;http://meetings-archive.debian.net/pub/debian-meetings/2016/debconf16/&quot;&gt;available online&lt;/a&gt;.&lt;/p&gt; </description> 
	<pubDate>Tue, 19 Jul 2016 20:48:57 +0000</pubDate>

</item> 
<item>
	<title>Joey Hess: Re: Debugging over email</title>
	<guid>http://joeyh.name/blog/entry/Re:_Debugging_over_email/</guid>
	<link>http://joeyh.name/blog/entry/Re:_Debugging_over_email/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/joeyh2.png&quot; width=&quot;84&quot; height=&quot;75&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;a href=&quot;http://blog.liw.fi/posts/debugging-over-email/&quot;&gt;Lars wrote about the remote debugging problem.&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I write free software and I have some users. My primary support channels are
over email and IRC, which means I do not have direct access to the system
where my software runs. When one of my users has a problem, we go through one
or more cycles of them reporting what they see and me asking them for more
information, or asking them to try this thing or that thing and report
results. This can be quite frustrating.&lt;/p&gt;

&lt;p&gt;I want, nay, need to improve this.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This is also something I&#39;ve thought about on and off, that affects me
most every day.&lt;/p&gt;

&lt;p&gt;I&#39;ve found that building the test suite into the program, such that
users can run it at any time, is a great way to smoke out problems. If a
user thinks they have problem A but the test suite explodes, or
also turns up problems B C D, then I have much more than the user&#39;s
problem report to go on. &lt;code&gt;git annex test&lt;/code&gt; is a good example of this.&lt;/p&gt;

&lt;p&gt;Asking users to provide a recipe to reproduce the bug is very helpful;
I do it in the git-annex bug report template, and while not all users
do, and users often provide a reproducion recipe that doesn&#39;t quite
work, it&#39;s great in triage to be able to try a set of steps without
thinking much and see if you can reproduce the bug. So I tend to look at
such bug reports first, and solve them more quickly, which tends towards
a virtuous cycle.&lt;/p&gt;

&lt;p&gt;I&#39;ve noticed that reams of debugging output, logs, test suite failures, etc
can be useful once I&#39;m well into tracking a problem down. But during
triage, they make it harder to understand what the problem actually is.
Information overload. Being able to reproduce the problem myself is far
more valuable than this stuff.&lt;/p&gt;

&lt;p&gt;I&#39;ve noticed that once I am in a position to run some commands in the
environment that has the problem, it seems to be much easier to solve
it than when I&#39;m trying to get the user to debug it remotely. This must
be partly psychological?&lt;/p&gt;

&lt;p&gt;Partly, I think that the feeling of being at a remove from the system,
makes it harder to think of what to do. And then there are the times where
the user pastes some output of running some commands and I mentally skip
right over an important part of it. Because I didn&#39;t think to run one of
the commands myself.&lt;/p&gt;

&lt;p&gt;I wonder if it would be helpful to have a kind of ssh equivilant, where
all commands get vetted by the remote user before being run on their
system. (And the user can also see command output before it gets
sent back, to NACK sending of personal information.)
So, it looks and feels a lot like you&#39;re in a mosh session to the user&#39;s
computer (which need not have a public IP or have an open ssh port at all),
although one with a lot of lag and where &lt;code&gt;rm -rf /&lt;/code&gt; doesn&#39;t go through.&lt;/p&gt; </description> 
	<pubDate>Tue, 19 Jul 2016 16:57:07 +0000</pubDate>

</item> 
<item>
	<title>Lars Wirzenius: Debugging over email</title>
	<guid>http://blog.liw.fi/posts/debugging-over-email/</guid>
	<link>http://blog.liw.fi/posts/debugging-over-email/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/lars.png&quot; width=&quot;85&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I write free software and I have some users. My primary support
channels are over email and IRC, which means I do not have direct
access to the system where my software runs. When one of my users has
a problem, we go through one or more cycles of them reporting what
they see and me asking them for more information, or asking them to
try this thing or that thing and report results. This can be quite
frustrating.&lt;/p&gt;

&lt;p&gt;I want, nay, need to improve this. I&#39;ve been thinking about this for a
while, and talking with friends about it, and here&#39;s my current ideas.&lt;/p&gt;

&lt;p&gt;First idea: have a script that gathers as much information as
possible, which the user can run. For example, log files, full
configuration, full environment, etc. The user would then mail the
output to me. The information will need to be anonymised suitably so
that no actual secrets are leaked. This would be similar to Debian&#39;s
package specific reportbug scripts.&lt;/p&gt;

&lt;p&gt;Second idea: make it less likely that the user needs help solving
their issue, with better error messages. This would require error
messages to have sufficient explanation that a user can solve their
problem. That doesn&#39;t necessarily mean a lot of text, but also code
that analyses the situation when the error happens to include things
that are relevant for the problem resolving process, and giving error
messages that are as specific as possible. Example: don&#39;t just fail
saying &quot;write error&quot;, but make the code find out why writing caused an
error.&lt;/p&gt;

&lt;p&gt;Third idea: in addition to better error messages, might provide
diagnostics tools as well.&lt;/p&gt;

&lt;p&gt;A friend suggested having a script that sets up a known good set of
operations and verifies they work. This would establish a
known-working baseline, or smoke test, so that we can rule things like
&quot;software isn&#39;t completely installed&quot;.&lt;/p&gt;

&lt;p&gt;Do you have ideas? Mail me (liw@liw.fi) or tell me on identi.ca (@liw)
or Twitter (@larswirzenius).&lt;/p&gt; </description> 
	<pubDate>Tue, 19 Jul 2016 15:08:13 +0000</pubDate>

</item> 
<item>
	<title>Dirk Eddelbuettel: Rcpp 0.12.6: Rolling on</title>
	<guid>http://dirk.eddelbuettel.com/blog/2016/07/19#rcpp_0.12.6</guid>
	<link>http://dirk.eddelbuettel.com/blog/2016/07/19#rcpp_0.12.6</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/dirk.png&quot; width=&quot;65&quot; height=&quot;90&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;The sixth update in the 0.12.* series of &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.html&quot;&gt;Rcpp&lt;/a&gt; has arrived on the &lt;a href=&quot;http://cran.r-project.org&quot;&gt;CRAN&lt;/a&gt; network for &lt;a href=&quot;http://www.r-project.org&quot;&gt;GNU R&lt;/a&gt; a few hours ago, and was just pushed to &lt;a href=&quot;http://www.debian.org&quot;&gt;Debian&lt;/a&gt;. This 0.12.6 release follows the &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/2015/07/25#rcpp_0.12.0&quot;&gt;0.12.0 release&lt;/a&gt; from late July, the &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/2015/09/10#rcpp_0.12.1&quot;&gt;0.12.1 release&lt;/a&gt; in September, the &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/2015/11/15#rcpp_0.12.2&quot;&gt;0.12.2 release&lt;/a&gt; in November, the &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/2016/01/10#rcpp_0.12.3&quot;&gt;0.12.3 release&lt;/a&gt; in January, the &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/2016/03/26#rcpp_0.12.4&quot;&gt;0.12.4 release&lt;/a&gt; in March, and the &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/2016/05/14#rcpp_0.12.5&quot;&gt;0.12.5 release&lt;/a&gt; in May --- making it the tenth release at the steady bi-montly release frequency. Just like the previous release, this one is once again more of a refining maintenance release which addresses small bugs, nuisances or documentation issues without adding any major new features. That said, some nice features (such as caching support for &lt;code&gt;sourceCpp()&lt;/code&gt; and friends) were added.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.html&quot;&gt;Rcpp&lt;/a&gt; has become &lt;em&gt;the&lt;/em&gt; most popular way of enhancing &lt;a href=&quot;http://www.r-project.org&quot;&gt;GNU R&lt;/a&gt; with C or C++ code. As of today, 703 packages on &lt;a href=&quot;http://cran.r-project.org&quot;&gt;CRAN&lt;/a&gt; depend on &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.html&quot;&gt;Rcpp&lt;/a&gt; for making analytical code go faster and further. That is up by about fourty packages from the last release in May!&lt;/p&gt;
&lt;p&gt;Similar to the previous releases, we have contributions from first-time committers. &lt;a href=&quot;http://statexpert.org/&quot;&gt;Artem Klevtsov&lt;/a&gt; made &lt;code&gt;na_omit&lt;/code&gt; run faster on vectors without &lt;code&gt;NA&lt;/code&gt; values. Otherwise, we had many contributions from &quot;regulars&quot; like &lt;a href=&quot;https://github.com/krlmlr&quot;&gt;Kirill Mueller&lt;/a&gt;, &lt;a href=&quot;http://thecoatlessprofessor.com/&quot;&gt;James &quot;coatless&quot; Balamuta&lt;/a&gt; and &lt;a href=&quot;https://github.com/dcdillon&quot;&gt;Dan Dillon&lt;/a&gt; as well as from fellow Rcpp Core contributors. Some noteworthy highlights are encoding and string fixes, generally more robust builds, a new iterator-based approach for vectorized programming, the aforementioned caching for &lt;code&gt;sourceCpp()&lt;/code&gt;, and several documentation enhancements. More details are below.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;
Changes in Rcpp version 0.12.6 (2016-07-18)
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
Changes in Rcpp API:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
The &lt;code&gt;long long&lt;/code&gt; data type is used only if it is available, to avoid compiler warnings (Kirill Müller in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/488&quot;&gt;#488&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The compiler is made aware that &lt;code&gt;stop()&lt;/code&gt; never returns, to improve code path analysis (Kirill Müller in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/487&quot;&gt;#487&lt;/a&gt; addressing issue &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/486&quot;&gt;#486&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
String replacement was corrected (Qiang in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/479&quot;&gt;#479&lt;/a&gt; following mailing list bug report by Masaki Tsuda)
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Allow for UTF-8 encoding in error messages via &lt;code&gt;RCPP_USING_UTF8_ERROR_STRING&lt;/code&gt; macro (Qin Wenfeng in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/493&quot;&gt;#493&lt;/a&gt;)
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The R function &lt;code&gt;Rf_warningcall&lt;/code&gt; is now provided as well (as usual without leading &lt;code&gt;Rf_&lt;/code&gt;) (&lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/497&quot;&gt;#497&lt;/a&gt; fixing &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/495&quot;&gt;#495&lt;/a&gt;)
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Changes in Rcpp Sugar:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
Const-ness of &lt;code&gt;min&lt;/code&gt; and &lt;code&gt;max&lt;/code&gt; functions has been corrected. (Dan Dillon in PR &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/478&quot;&gt;#478&lt;/a&gt; fixing issue &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/477&quot;&gt;#477&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Ambiguities for matrix/vector and scalar operations have been fixed (Dan Dillon in PR &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/476&quot;&gt;#476&lt;/a&gt; fixing issue &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/475&quot;&gt;#475&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
New &lt;code&gt;algorithm&lt;/code&gt; header using iterator-based approach for vectorized functions (Dan in PR &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/481&quot;&gt;#481&lt;/a&gt; revisiting PR &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/428&quot;&gt;#428&lt;/a&gt; and addressing issue &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/426&quot;&gt;#426&lt;/a&gt;, with futher work by Kirill in PR &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/488&quot;&gt;#488&lt;/a&gt; and Nathan in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/503&quot;&gt;#503&lt;/a&gt; fixing issue &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/502&quot;&gt;#502&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The &lt;code&gt;na_omit()&lt;/code&gt; function is now faster for vectors without &lt;code&gt;NA&lt;/code&gt; values (Artem Klevtsov in PR &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/492&quot;&gt;#492&lt;/a&gt;)
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Changes in Rcpp Attributes:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
Add &lt;code&gt;cacheDir&lt;/code&gt; argument to &lt;code&gt;sourceCpp()&lt;/code&gt; to enable caching of shared libraries across R sessions (JJ in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/504&quot;&gt;#504&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Code generation now deals correctly which packages containing a dot in their name (Qiang in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/501&quot;&gt;#501&lt;/a&gt; fixing &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/500&quot;&gt;#500&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Changes in Rcpp Documentation:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
A section on default parameters was added to the Rcpp FAQ vignette (James Balamuta in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/505&quot;&gt;#505&lt;/a&gt; fixing &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/418&quot;&gt;#418&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The Rcpp-attributes vignette is now mentioned more prominently in question one of the Rcpp FAQ vignette.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The Rcpp Quick Reference vignette received a facelift with new sections on Rcpp attributes and plugins begin added. (James Balamuta in &lt;a href=&quot;https://github.com/RcppCore/Rcpp/pull/509&quot;&gt;#509&lt;/a&gt; fixing &lt;a href=&quot;https://github.com/RcppCore/Rcpp/issues/484&quot;&gt;#484&lt;/a&gt;).
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
The bib file was updated with respect to the recent JSS publication for RProtoBuf.
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;http://dirk.eddelbuettel.com/cranberries/&quot;&gt;CRANberries&lt;/a&gt;, you can also look at a &lt;a href=&quot;http://dirk.eddelbuettel.com/cranberries/2016/07/19#Rcpp_0.12.6&quot;&gt;diff to the previous release&lt;/a&gt;. As always, even fuller details are on the &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.changelog.html&quot;&gt;Rcpp Changelog page&lt;/a&gt; and the &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp.html&quot;&gt;Rcpp page&lt;/a&gt; which also leads to the downloads page, the &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp/html/index.html&quot;&gt;browseable doxygen docs&lt;/a&gt; and zip files of doxygen output for the standard formats. A &lt;a href=&quot;http://dirk.eddelbuettel.com/code/rcpp/&quot;&gt;local directory&lt;/a&gt; has source and documentation too. Questions, comments etc should go to the &lt;a href=&quot;https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel&quot;&gt;rcpp-devel mailing list&lt;/a&gt; off the &lt;a href=&quot;http://r-forge.r-project.org/projects/rcpp/&quot;&gt;R-Forge page&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;font-size: 80%; font-style: italic;&quot;&gt;
This post by &lt;a href=&quot;http://dirk.eddelbuettel.com&quot;&gt;Dirk Eddelbuettel&lt;/a&gt; originated on his &lt;a href=&quot;http://dirk.eddelbuettel.com/blog/&quot;&gt;Thinking inside the box&lt;/a&gt; blog. Please report excessive re-aggregation in third-party for-profit settings.
&lt;/p&gt;&lt;p&gt;&lt;/p&gt; </description> 
	<pubDate>Tue, 19 Jul 2016 12:49:00 +0000</pubDate>

</item> 
<item>
	<title>Chris Lamb: Python quirk: os.stat&#39;s return type</title>
	<guid>https://chris-lamb.co.uk/posts/python-quirk-osstats-return-type</guid>
	<link>https://chris-lamb.co.uk/posts/python-quirk-osstats-return-type</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/lamby.png&quot; width=&quot;70&quot; height=&quot;87&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;div class=&quot;syntax&quot;&gt;&lt;pre&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;stat&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;st&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;/etc/fstab&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# __getitem__&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;st&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stat&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ST_MTIME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# __getattr__&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;st&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;st_mtime&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;pre class=&quot;literal-block&quot;&gt;(1441565864, &amp;lt;class &#39;int&#39;&amp;gt;)
(1441565864.3485234, &amp;lt;class &#39;float&#39;&amp;gt;)
&lt;/pre&gt; </description> 
	<pubDate>Tue, 19 Jul 2016 10:20:32 +0000</pubDate>

</item> 
<item>
	<title>John Goerzen: Building a home firewall: review of pfsense</title>
	<guid>http://changelog.complete.org/?p=9700</guid>
	<link>http://changelog.complete.org/archives/9700-building-a-home-firewall-review-of-pfsense</link>
     <description>  &lt;p&gt;For some time now, I’ve been running OpenWRT on an RT-N66U device.  I initially set that because I had previously been using my Debian-based file/VM server as a firewall, and this had some downsides: every time I wanted to reboot that, Internet for the whole house was down; shorewall took a fair bit of care and feeding; etc.&lt;/p&gt;
&lt;p&gt;I’ve been having indications that all is not well with OpenWRT or the N66U in the last few days, and some long-term annoyances prompted me to search out a different solution.  I figured I could buy an embedded x86 device, slap Debian on it, and be set.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://amzn.to/29GZqF8&quot;&gt;device I wound up purchasing&lt;/a&gt; happened to have &lt;a href=&quot;http://www.pfsense.org/&quot;&gt;pfsense&lt;/a&gt; preinstalled, so I thought I’d give it a try.&lt;/p&gt;
&lt;p&gt;As expected, with hardware like that to work with, it was a lot more capable than OpenWRT and had more features.  However, I encountered a number of surprising issues.&lt;/p&gt;
&lt;p&gt;The biggest annoyance was that the system wouldn’t allow me to set up a static DHCP entry with the same IP for multiple MAC addresses.  This is a very simple configuration in the underlying DHCP server, and OpenWRT permitted it without issue.  It is quite useful so my laptop has the same IP whether connected by wifi or Ethernet, and I have used it for years with no issue.  Googling it a bit turned up some rather arrogant pfsense people saying that this is “broken” and poor design, and that your wired and wireless networks should be on different VLANs anyhow.  They also said “just give it the same hostname for the different IPs” — but it rejects this too.  Sigh.  I discovered, however, that downloading the pfsense backup XML file, editing the IP within, and re-uploading it gets me what I want with no ill effects!&lt;/p&gt;
&lt;p&gt;So then I went to set up DNS.  I tried to enable the “DNS Forwarder”, but it wouldn’t let me do that while the “DNS Resolver” was still active.  Digging in just a bit, it appears that the DNS Forwarder and DNS Resolver both provide forwarding and resolution features; they just have different underlying implementations.  This is not clear at all in the interface.&lt;/p&gt;
&lt;p&gt;Next stop: traffic shaping.  Since I use VOIP for work, this is vitally important for me.  I dove in, and found a list of XML filenames for wizards: one for “Dedicated Links” and another for “Multiple Lan/Wan”.  Hmmm.  Some Googling again turned up that everyone suggests using the “Multiple Lan/Wan” wizard.  Fine.  I set it up, and notice that when I start an upload, my download performance absolutely tanks.  Some investigation shows that outbound ACKs aren’t being handled properly.  The wizard had created a qACK queue, but neglected to create a packet match rule for it, so ACKs were not being dealt with appropriately.  Fixed that with a rule of my own design, and now downloads are working better again.  I also needed to boost the bandwidth allocated to qACK (setting it to 25% seemed to do the trick).&lt;/p&gt;
&lt;p&gt;Then there was the firewall rules.  The “interface” section is first-match-wins, whereas the “floating” section is last-match-wins.  This is rather non-obvious.&lt;/p&gt;
&lt;p&gt;Getting past all the interface glitches, however, the system looks powerful, solid, and well-engineered under the hood, and fairly easy to manage.&lt;/p&gt; </description> 
	<pubDate>Mon, 18 Jul 2016 21:34:02 +0000</pubDate>

</item> 
<item>
	<title>Reproducible builds folks: Preparing for the second release of reprotest</title>
	<guid>https://reproducible.alioth.debian.org/blog/posts/people/ceridwen/reprotest_week8/</guid>
	<link>https://reproducible.alioth.debian.org/blog/posts/people/ceridwen/reprotest_week8/</link>
     <description>  &lt;p&gt;Author: ceridwen&lt;/p&gt;

&lt;p&gt;I now have working test environments set up for null (no container,
build on the host system), &lt;a href=&quot;https://wiki.debian.org/Schroot&quot;&gt;schroot&lt;/a&gt;,
and &lt;a href=&quot;https://wiki.debian.org/QEMU&quot;&gt;qemu&lt;/a&gt;.  After fixing some bugs,
null and qemu now pass all their tests!&lt;/p&gt;

&lt;p&gt;schroot still has a permission error related to disorderfs.  Since the
same code works for null and qemu and for schroot when disorderfs is
disabled, it&#39;s something specific to disorderfs and/or its combination
with schroot.  The following is debug output that shows &lt;code&gt;ls&lt;/code&gt; for the
build directory on the testbed before and after the mock build, and
&lt;code&gt;stat&lt;/code&gt; for both the build directory and the mock build artifact
itself.  The first control run, without disorderfs, succeeds:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;test.py: DBG: testbed command [&#39;ls&#39;, &#39;-l&#39;, &#39;/tmp/autopkgtest.5oMipL/control/&#39;], kind short, sout raw, serr raw, env []
total 20
drwxr-xr-x 2 user user 4096 Jul 15 23:43 __pycache__
-rwxr--r-- 1 user user 2340 Jun 28 18:43 mock_build.py
-rwxr--r-- 1 user user  175 Jun  3 15:42 mock_failure.py
-rw-r--r-- 1 user user  252 Jun 14 16:06 template.ini
-rwxr-xr-x 1 user user 1600 Jul 15 23:18 tests.py
test.py: DBG: testbed command exited with code 0
test.py: DBG: testbed command [&#39;sh&#39;, &#39;-ec&#39;, &#39;cd /tmp/autopkgtest.5oMipL/control/ ;\n python3 mock_build.py ;\n&#39;], kind short, sout raw, serr pipe, env [&#39;LANG=en_US.UTF-8&#39;, &#39;HOME=/nonexistent/first-build&#39;, &#39;VIRTUAL_ENV=~/code/reprotest/.tox/py35&#39;, &#39;PATH=~/code/reprotest/.tox/py35/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin&#39;, &#39;PYTHONHASHSEED=559200286&#39;, &#39;TZ=GMT+12&#39;]
test.py: DBG: testbed command exited with code 0
test.py: DBG: testbed command [&#39;ls&#39;, &#39;-l&#39;, &#39;/tmp/autopkgtest.5oMipL/control/&#39;], kind short, sout raw, serr raw, env []
total 20
drwxr-xr-x 2 user user 4096 Jul 15 23:43 __pycache__
-rw-r--r-- 1 root root    0 Jul 18 15:06 artifact
-rwxr--r-- 1 user user 2340 Jun 28 18:43 mock_build.py
-rwxr--r-- 1 user user  175 Jun  3 15:42 mock_failure.py
-rw-r--r-- 1 user user  252 Jun 14 16:06 template.ini
-rwxr-xr-x 1 user user 1600 Jul 15 23:18 tests.py
test.py: DBG: testbed command exited with code 0
test.py: DBG: testbed command [&#39;stat&#39;, &#39;/tmp/autopkgtest.5oMipL/control/&#39;], kind short, sout raw, serr raw, env []
  File: &#39;/tmp/autopkgtest.5oMipL/control/&#39;
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 56h/86d Inode: 1351634     Links: 3
Access: (0755/drwxr-xr-x)  Uid: ( 1000/    user)   Gid: ( 1000/    user)
Access: 2016-07-18 15:06:31.105915342 -0400
Modify: 2016-07-18 15:06:31.089915352 -0400
Change: 2016-07-18 15:06:31.089915352 -0400
 Birth: -
test.py: DBG: testbed command exited with code 0
test.py: DBG: testbed command [&#39;stat&#39;, &#39;/tmp/autopkgtest.5oMipL/control/artifact&#39;], kind short, sout raw, serr raw, env []
  File: &#39;/tmp/autopkgtest.5oMipL/control/artifact&#39;
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 40767795    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-18 15:06:31.089915352 -0400
Modify: 2016-07-18 15:06:31.089915352 -0400
Change: 2016-07-18 15:06:31.089915352 -0400
 Birth: -
test.py: DBG: testbed command exited with code 0
test.py: DBG: sending command to testbed: copyup /tmp/autopkgtest.5oMipL/control/artifact /tmp/tmpw_mwks82/control_artifact
schroot: DBG: executing copyup /tmp/autopkgtest.5oMipL/control/artifact /tmp/tmpw_mwks82/control_artifact
schroot: DBG: copyup_shareddir: tb /tmp/autopkgtest.5oMipL/control/artifact host /tmp/tmpw_mwks82/control_artifact is_dir False downtmp_host /var/lib/schroot/mount/jessie-amd64-ac94881d-ae71-4f24-a004-1847889d5d52//tmp/autopkgtest.5oMipL
schroot: DBG: copyup_shareddir: tb(host) /var/lib/schroot/mount/jessie-amd64-ac94881d-ae71-4f24-a004-1847889d5d52/tmp/autopkgtest.5oMipL/control/artifact is not already at destination /tmp/tmpw_mwks82/control_artifact, copying
test.py: DBG: got reply from testbed: ok
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That last bit indicates that copy command for the build artifact from
the testbed to a temporary directory on the host succeeded.  This is the
debug output from the second run, with disorderfs enabled:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;test.py: DBG: testbed command [&#39;ls&#39;, &#39;-l&#39;, &#39;/tmp/autopkgtest.5oMipL/disorderfs/&#39;], kind short, sout raw, serr raw, env []
total 20
drwxr-xr-x 2 user user 4096 Jul 15 23:43 __pycache__
-rwxr--r-- 1 user user 2340 Jun 28 18:43 mock_build.py
-rwxr--r-- 1 user user  175 Jun  3 15:42 mock_failure.py
-rw-r--r-- 1 user user  252 Jun 14 16:06 template.ini
-rwxr-xr-x 1 user user 1600 Jul 15 23:18 tests.py
test.py: DBG: testbed command exited with code 0
test.py: DBG: testbed command [&#39;sh&#39;, &#39;-ec&#39;, &#39;cd /tmp/autopkgtest.5oMipL/disorderfs/ ;\n umask 0002 ;\n linux64 --uname-2.6 python3 mock_build.py ;\n&#39;], kind short, sout raw, serr pipe, env [&#39;LC_ALL=fr_CH.UTF-8&#39;, &#39;CAPTURE_ENVIRONMENT=i_capture_the_environment&#39;, &#39;HOME=/nonexistent/second-build&#39;, &#39;VIRTUAL_ENV=~/code/reprotest/.tox/py35&#39;, &#39;PATH=~/code/reprotest/.tox/py35/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin/i_capture_the_path&#39;, &#39;LANG=fr_CH.UTF-8&#39;, &#39;PYTHONHASHSEED=559200286&#39;, &#39;TZ=GMT-14&#39;]
test.py: DBG: testbed command exited with code 0
test.py: DBG: testbed command [&#39;ls&#39;, &#39;-l&#39;, &#39;/tmp/autopkgtest.5oMipL/disorderfs/&#39;], kind short, sout raw, serr raw, env []
total 20
drwxr-xr-x 2 user user 4096 Jul 15 23:43 __pycache__
-rw-r--r-- 1 root root    0 Jul 18 15:06 artifact
-rwxr--r-- 1 user user 2340 Jun 28 18:43 mock_build.py
-rwxr--r-- 1 user user  175 Jun  3 15:42 mock_failure.py
-rw-r--r-- 1 user user  252 Jun 14 16:06 template.ini
-rwxr-xr-x 1 user user 1600 Jul 15 23:18 tests.py
test.py: DBG: testbed command exited with code 0
test.py: DBG: testbed command [&#39;stat&#39;, &#39;/tmp/autopkgtest.5oMipL/disorderfs/&#39;], kind short, sout raw, serr raw, env []
  File: &#39;/tmp/autopkgtest.5oMipL/disorderfs/&#39;
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 58h/88d Inode: 1           Links: 3
Access: (0755/drwxr-xr-x)  Uid: ( 1000/    user)   Gid: ( 1000/    user)
Access: 2016-07-18 15:06:31.201915291 -0400
Modify: 2016-07-18 15:06:31.185915299 -0400
Change: 2016-07-18 15:06:31.185915299 -0400
 Birth: -
test.py: DBG: testbed command exited with code 0
test.py: DBG: testbed command [&#39;stat&#39;, &#39;/tmp/autopkgtest.5oMipL/disorderfs/artifact&#39;], kind short, sout raw, serr raw, env []
  File: &#39;/tmp/autopkgtest.5oMipL/disorderfs/artifact&#39;
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 58h/88d Inode: 7           Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-18 15:06:31.185915299 -0400
Modify: 2016-07-18 15:06:31.185915299 -0400
Change: 2016-07-18 15:06:31.185915299 -0400
 Birth: -
test.py: DBG: testbed command exited with code 0
test.py: DBG: sending command to testbed: copyup /tmp/autopkgtest.5oMipL/disorderfs/artifact /tmp/tmpw_mwks82/experiment_artifact
schroot: DBG: executing copyup /tmp/autopkgtest.5oMipL/disorderfs/artifact /tmp/tmpw_mwks82/experiment_artifact
schroot: DBG: copyup_shareddir: tb /tmp/autopkgtest.5oMipL/disorderfs/artifact host /tmp/tmpw_mwks82/experiment_artifact is_dir False downtmp_host /var/lib/schroot/mount/jessie-amd64-ac94881d-ae71-4f24-a004-1847889d5d52//tmp/autopkgtest.5oMipL
schroot: DBG: copyup_shareddir: tb(host) /var/lib/schroot/mount/jessie-amd64-ac94881d-ae71-4f24-a004-1847889d5d52/tmp/autopkgtest.5oMipL/disorderfs/artifact is not already at destination /tmp/tmpw_mwks82/experiment_artifact, copying
schroot: DBG: cleanup...
schroot: DBG: execute-timeout: schroot --run-session --quiet --directory=/ --chroot jessie-amd64-ac94881d-ae71-4f24-a004-1847889d5d52 --user=root -- rm -rf -- /tmp/autopkgtest.5oMipL
rm: cannot remove &#39;/tmp/autopkgtest.5oMipL/disorderfs&#39;: Device or resource busy
schroot: DBG: execute-timeout: schroot --quiet --end-session --chroot jessie-amd64-ac94881d-ae71-4f24-a004-1847889d5d52
Unexpected error:
Traceback (most recent call last):
  File &quot;~/code/reprotest/reprotest/lib/VirtSubproc.py&quot;, line 708, in mainloop
    command()
  File &quot;~/code/reprotest/reprotest/lib/VirtSubproc.py&quot;, line 646, in command
    r = f(c, ce)
  File &quot;~/code/reprotest/reprotest/lib/VirtSubproc.py&quot;, line 584, in cmd_copyup
    copyupdown(c, ce, True)
  File &quot;~/code/reprotest/reprotest/lib/VirtSubproc.py&quot;, line 469, in copyupdown
    copyupdown_internal(ce[0], c[1:], upp)
  File &quot;~/code/reprotest/reprotest/lib/VirtSubproc.py&quot;, line 494, in copyupdown_internal
    copyup_shareddir(sd[0], sd[1], dirsp, downtmp_host)
  File &quot;~/code/reprotest/reprotest/lib/VirtSubproc.py&quot;, line 408, in copyup_shareddir
    shutil.copy(tb, host)
  File &quot;/usr/lib/python3.5/shutil.py&quot;, line 235, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File &quot;/usr/lib/python3.5/shutil.py&quot;, line 114, in copyfile
    with open(src, &#39;rb&#39;) as fsrc:
PermissionError: [Errno 13] Permission denied: &#39;/var/lib/schroot/mount/jessie-amd64-ac94881d-ae71-4f24-a004-1847889d5d52/tmp/autopkgtest.5oMipL/disorderfs/artifact&#39;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;ls&lt;/code&gt; shows that the artifact is created in the right place.  However,
when reprotest tries to copy it from the testbed to the host, it gets
a permission error.  The traceback is coming from &lt;code&gt;virt/schroot&lt;/code&gt;, and
it&#39;s a Python &lt;code&gt;open()&lt;/code&gt; call that&#39;s failing.  Note that the permissions
are wrong for the second run, but that&#39;s expected because my schroot
is stable so the umask bug isn&#39;t fixed yet; and that the &lt;code&gt;rm&lt;/code&gt; error
from disorderfs not being unmounted early enough (see below).  I
expect to see the umask test fail, though, not a crash in every test
where the build succeeds.&lt;/p&gt;

&lt;p&gt;After a great deal of effort, I isolated the bug that was causing the
process to hang not to my code or autopkgtest&#39;s code, but to
&lt;a href=&quot;https://bugs.python.org/issue25782&quot;&gt;CPython&lt;/a&gt; and
&lt;a href=&quot;https://bugs.python.org/issue25786&quot;&gt;contextlib&lt;/a&gt;.  It&#39;s supposed to be
fixed in CPython 3.5.3, but for now I&#39;ve worked around the problem by
monkey-patching the patch provided in the latter issue onto
contextlib.&lt;/p&gt;

&lt;p&gt;Here is my current to-do list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fix PyPi not installing the virt/ scripts correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Move the disorderfs unmount into the shell script.  (When the virt/
scripts encounter an error, they try to delete a temporary
directory, which fails if disorderfs is mounted, so the script needs
to unmount it before that happens.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find and fix the schroot/disorderfs permission error bug.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Convert my notes on setting up for the tests into something useful
for users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write scripts to synch version numbers and documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix the headers in the autopkgtest code to conform to reprotest
style.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add copyright information for the contextlib monkey-patch and the
autopkgtest files I&#39;ve changed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Close
&lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829113&quot;&gt;#829113&lt;/a&gt;
as wontfix.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;And here are the questions I&#39;d like to resolve before the second release:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Is there any other documentation that&#39;s &lt;em&gt;essential&lt;/em&gt;?  Finishing the
documentation will come later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Should I release before finishing the rest of the variation?  This
will slow down the release of the first version with something
resembling full fuctionality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do I need to write a chroot test now?  Given the duplication with
schroot, I&#39;m unconvinced this is worthwhile.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Mon, 18 Jul 2016 15:51:31 +0000</pubDate>

</item> 
<item>
	<title>Lisandro Damián Nicanor Pérez Meyer: KDEPIM ready to be more broadly tested</title>
	<guid>tag:blogger.com,1999:blog-6357172297737057475.post-3186608795665741087</guid>
	<link>http://perezmeyer.blogspot.com/2016/07/kdepim-ready-to-be-more-broadly-tested.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/lisandropm.png&quot; width=&quot;78&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  As was posted &lt;a href=&quot;http://perezmeyer.blogspot.com/2016/07/upcoming-kdepim-changes-in-unstable.html&quot;&gt;a couple of weeks ago&lt;/a&gt;, the latest version of KDEPIM has been uploaded to unstable.&lt;br /&gt;&lt;br /&gt;All packages are now uploaded and built and we believe this version is ready to be more broadly tested.&lt;br /&gt;&lt;br /&gt;If you run unstable but have refrained from installing the kdepim packages up to now, we would appreciate it if you go ahead and install them now, reporting any issues that you may find.&lt;br /&gt;&lt;br /&gt;Given that this is a big update that includes quite a number of plugins and libraries, it&#39;s strongly recommended that you restart your KDE session after updating the packages.&lt;br /&gt;&lt;br /&gt;Happy hacking,&lt;br /&gt;&lt;br /&gt;The Debian Qt/KDE Team.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b&gt;Note &lt;/b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;b&gt;lun jul 18 08:58:53 ART 2016:&lt;/b&gt; Link fixed and s/KDE/KDEPIM/.&lt;/span&gt;&lt;/span&gt; </description> 
	<pubDate>Sun, 17 Jul 2016 23:15:00 +0000</pubDate>
  <author>noreply@blogger.com (Lisandro Damián Nicanor Pérez Meyer)</author>  
</item> 
<item>
	<title>Iustin Pop: Energy bar restored!</title>
	<guid>http://k1024.org/~iustin/blog/entry/2016-07-17-energy-bar-restored/</guid>
	<link>http://k1024.org/~iustin/blog/entry/2016-07-17-energy-bar-restored/</link>
     <description>  &lt;p&gt;So, I&#39;ve been sick. Quite sick, as for the past ~2 weeks I wasn&#39;t able
to bike, run, work or do much beside watch movies, look at photos and
play some light games (ARPGs rule in this case, all you need to do is
keep the left mouse button pressed).&lt;/p&gt;

&lt;p&gt;It was supposed to be only a light viral infection, but it took longer
to clear out than I expected, probably due to it happening right after
my dental procedure (and possibly me wanting to restart exercise too
soon, to fast). Not fun, it felt like the thing that refills your
energy/mana bar in games broke. I simply didn&#39;t feel restored, despite
sleeping a lot; 2-3 naps per day sound good as long as they are
restorative, if they&#39;re not, sleeping is just a chore.&lt;/p&gt;

&lt;p&gt;The funny thing is that recovery happened so slow, that when I finally
had energy it took me by surprise. It was like “oh, wait, I can
actually stand and walk without feeling dizzy! Wohoo!” As such,
yesterday was a glorious Saturday ☺&lt;/p&gt;

&lt;p&gt;I was therefore able to walk a bit outside the house this weekend and
feel like having a normal cold, not like being under a “&lt;em&gt;cursed: -4
vitality&lt;/em&gt;” spell. I expect the final symptoms to clear out soon, and
that I can very slowly start doing some light exercise again. Not
tomorrow, though…&lt;/p&gt;

&lt;p&gt;In the meantime, I&#39;m sharing a picture from earlier this year that I
found while looking through my stash. Was walking in the forest in
Pontresina on a beatiful sunny day, when a sudden gust of wind caused
a lot of the snow on the trees to fly around and make it look a bit
magical (photo is unprocessed beside conversion from raw to jpeg, this
is how it was straight out of the camera):&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://photos.k1024.org/Featured/i-G86qbPD/A&quot;&gt;&lt;img alt=&quot;Winter in the forest&quot; src=&quot;https://photos.smugmug.com/Featured/i-G86qbPD/0/XL/dsc_1964-XL.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why a winter photo? Because that&#39;s exactly how cold I felt the
previous weekend: 30°C outside, but I was going to the doctor in jeans
and hoodie and cap, shivering…&lt;/p&gt; </description> 
	<pubDate>Sun, 17 Jul 2016 21:32:45 +0000</pubDate>

</item> 
<item>
	<title>Michael Stapelberg: mergebot: easily merging contributions</title>
	<guid>https://people.debian.org/~stapelberg//2016/07/17/mergebot</guid>
	<link>https://people.debian.org/~stapelberg//2016/07/17/mergebot.html</link>
     <description>  &lt;p&gt;
Recently, I was wondering why I was pushing off accepting contributions in Debian for longer than in other projects. It occurred to me that the effort to accept a contribution in Debian is way higher than in other FOSS projects. My remaining FOSS projects are on GitHub, where I can just click the “Merge” button after deciding a contribution looks good. In Debian, merging is actually a lot of work: I need to clone the repository, configure it, merge the patch, update the changelog, build and upload.
&lt;/p&gt;

&lt;p&gt;
I wondered how close we can bring Debian to a model where accepting a contribution is just a single click as well. In principle, I think it can be done.
&lt;/p&gt;

&lt;p&gt;
To demonstrate the feasibility and collect some feedback, I wrote a program called &lt;code&gt;mergebot&lt;/code&gt;. The first stage is done: &lt;code&gt;mergebot&lt;/code&gt; can be used on your local machine as a command-line tool. You provide it with the source package and bug number which contains the patch in question, and it will do the rest:
&lt;/p&gt;

&lt;pre style=&quot;background-color: black; color: white; padding: 0.1em;&quot;&gt;&lt;span style=&quot;background-color: #04B5B8; color: black;&quot;&gt;midna&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;~&lt;/span&gt; $ mergebot -source_package=wit -bug=#831331
2016/07/17 12:06:06 will work on package &quot;wit&quot;, bug &quot;831331&quot;
2016/07/17 12:06:07 Skipping MIME part with invalid Content-Disposition header (mime: no media type)
2016/07/17 12:06:07 gbp clone --pristine-tar git+ssh://git.debian.org/git/collab-maint/wit.git /tmp/mergebot-743062986/repo
2016/07/17 12:06:09 git config push.default matching
2016/07/17 12:06:09 git config --add remote.origin.push +refs/heads/*:refs/heads/*
2016/07/17 12:06:09 git config --add remote.origin.push +refs/tags/*:refs/tags/*
2016/07/17 12:06:09 git config user.email stapelberg AT debian DOT org
2016/07/17 12:06:09 patch -p1 -i ../latest.patch
2016/07/17 12:06:09 git add .
2016/07/17 12:06:09 git commit -a --author Chris Lamb &amp;lt;lamby AT debian DOT org&amp;gt; --message Fix for “wit: please make the build reproducible” (Closes: #831331)
2016/07/17 12:06:09 gbp dch --release --git-author --commit
2016/07/17 12:06:09 gbp buildpackage --git-tag --git-export-dir=../export --git-builder=sbuild -v -As --dist=unstable
2016/07/17 12:07:16 Merge and build successful!
2016/07/17 12:07:16 Please introspect the resulting Debian package and git repository, then push and upload:
2016/07/17 12:07:16 cd &quot;/tmp/mergebot-743062986&quot;
2016/07/17 12:07:16 (cd repo &amp;amp;&amp;amp; git push)
2016/07/17 12:07:16 (cd export &amp;amp;&amp;amp; debsign *.changes &amp;amp;&amp;amp; dput *.changes)

&lt;span style=&quot;background-color: #04B5B8; color: black;&quot;&gt;midna&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;~&lt;/span&gt; $ cd /tmp/mergebot-743062986/repo
&lt;span style=&quot;background-color: #04B5B8; color: black;&quot;&gt;midna&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;/tmp/mergebot-743062986/repo&lt;/span&gt; $ git log HEAD~2..
commit d983d242ee546b2249a866afe664bac002a06859
Author: Michael Stapelberg &amp;lt;stapelberg AT debian DOT org&amp;gt;
Date:   Sun Jul 17 13:32:41 2016 +0200

    Update changelog for 2.31a-3 release

commit 5a327f5d66e924afc656ad71d3bfb242a9bd6ddc
Author: Chris Lamb &amp;lt;lamby AT debian DOT org&amp;gt;
Date:   Sun Jul 17 13:32:41 2016 +0200

    Fix for “wit: please make the build reproducible” (Closes: #831331)
&lt;span style=&quot;background-color: #04B5B8; color: black;&quot;&gt;midna&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;/tmp/mergebot-743062986/repo&lt;/span&gt; $ git push
Counting objects: 11, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (11/11), 1.59 KiB | 0 bytes/s, done.
Total 11 (delta 6), reused 0 (delta 0)
remote: Sending notification emails to: dispatch+wit_vcs@tracker.debian.org
remote: Sending notification emails to: dispatch+wit_vcs@tracker.debian.org
To git+ssh://git.debian.org/git/collab-maint/wit.git
   650ee05..d983d24  master -&amp;gt; master
 * [new tag]         debian/2.31a-3 -&amp;gt; debian/2.31a-3
&lt;span style=&quot;background-color: #04B5B8; color: black;&quot;&gt;midna&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;/tmp/mergebot-743062986/repo&lt;/span&gt; $ cd ../export
&lt;span style=&quot;background-color: #04B5B8; color: black;&quot;&gt;midna&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;/tmp/mergebot-743062986/export&lt;/span&gt; $ debsign *.changes &amp;amp;&amp;amp; dput *.changes
[…]
Uploading wit_2.31a-3.dsc
Uploading wit_2.31a-3.debian.tar.xz
Uploading wit_2.31a-3_amd64.deb
Uploading wit_2.31a-3_amd64.changes
&lt;/pre&gt;

&lt;p&gt;
Of course, this is not quite as convenient as clicking a “Merge” button yet. I have &lt;a href=&quot;https://github.com/Debian/mergebot#future-ideas&quot;&gt;some ideas&lt;/a&gt; on how to make that happen, but I need to know whether people are interested before I spend more time on this.
&lt;/p&gt;

&lt;p&gt;
Please see &lt;a href=&quot;https://github.com/Debian/mergebot&quot;&gt;github.com/Debian/mergebot&lt;/a&gt; for more details, and please get in touch if you think this is worthwhile or would even like to help. Feedback is accepted in the GitHub issue tracker for mergebot or &lt;a href=&quot;https://lists.alioth.debian.org/cgi-bin/mailman/listinfo/mergebot-discuss&quot;&gt;the project mailing list mergebot-discuss&lt;/a&gt;. Thanks!
&lt;/p&gt; </description> 
	<pubDate>Sun, 17 Jul 2016 12:00:00 +0000</pubDate>

</item> 
<item>
	<title>Vasudev Kamath: Switching from approx to apt-cacher-ng</title>
	<guid>tag:copyninja.info,2016-07-17:blog/approx_to_acng.html</guid>
	<link>https://copyninja.info/blog/approx_to_acng.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/vasudev.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;After a long ~5 years (from 2011) journey with approx I finally wanted
to switch to something new like apt-cacher-ng. And after a bit of
changes I finally managed to get apt-cacher-ng into my work flow.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;bit-of-history&quot;&gt;
&lt;h2&gt;Bit of History&lt;/h2&gt;
&lt;p&gt;I should first give you a brief on how I started using approx. It all
started in MiniDebconf 2011 which I organized at my Alma-mater. I met
Jonas Smedegaard here and from him I learned about approx. Jonas has a
bunch of machines at his home and he was active user of approx and he
showed it to me while explaining the &lt;em&gt;Boxer&lt;/em&gt; project. I was quite
impressed with approx. Back then I was using a 230kbps slow INTERNET
connection and I was also maintaining a couple of packages in
Debian. Updating the pbuilder chroots was time consuming task for me
as I had to download multiple times over slow net. And approx largely
solved this problem and I started using it.&lt;/p&gt;
&lt;p&gt;5 years fast forward I now have quite fast INTERNET with good
FUP. (About 50GB a month), but I still tend to use approx which makes
building packages quite faster. I also use couple of containers on my
laptop which all use my laptop as approx cache.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;why-switch&quot;&gt;
&lt;h2&gt;Why switch?&lt;/h2&gt;
&lt;p&gt;So why change to apt-cacher-ng?. Approx is a simple tool, it runs
mainly with inetd and sits between apt and the repository on
INTERNET. Where as apt-cacher-ng provides a lot of features. Below are
some listed from the apt-cacher-ng manual.&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;use of TLS/SSL repositories (may be possible with approx but I&#39;m notsure how to do it)&lt;/li&gt;
&lt;li&gt;Access control of who can access caching server&lt;/li&gt;
&lt;li&gt;Integration with debdelta (I&#39;ve not tried, approx also supports
debdelta)&lt;/li&gt;
&lt;li&gt;Avoiding use of apt-cacher-ng for some hosts&lt;/li&gt;
&lt;li&gt;Avoiding caching of some file types&lt;/li&gt;
&lt;li&gt;Partial mirroring for offline usage.&lt;/li&gt;
&lt;li&gt;Selection of ipv4 or ipv6 for connections.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The biggest change I see is the speed difference between approx and
apt-cacher-ng. I think this is mainly because apt-cacher-ng is threaded where as approx
runs using inetd.&lt;/p&gt;
&lt;p&gt;I do not want all features of apt-cacher-ng at the moment, but who knows in
future I might need some features and hence I decided to switch to
apt-cacher-ng over approx.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;transition&quot;&gt;
&lt;h2&gt;Transition&lt;/h2&gt;
&lt;p&gt;Transition from approx to apt-cacher-ng was smoother than I
expected. There are 2 approaches you can use one is explicit routing
another is transparent routing. I prefer transparent routing and I
only had to change my /etc/apt/sources.list to use the actual
repository URL.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;deb&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;http://deb.debian.org/debian&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;unstable&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;contrib&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;non-free&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;deb-src&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;http://deb.debian.org/debian&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;unstable&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;main&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;deb&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;http://deb.debian.org/debian&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;experimental&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;contrib&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;non-free&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;deb-src&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;http://deb.debian.org/debian&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;experimental&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;main&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;After above change I had to add a &lt;em&gt;01proxy&lt;/em&gt; configuration file to
&lt;em&gt;/etc/apt/apt.conf.d/&lt;/em&gt; with following content.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Acquire::http::Proxy &quot;http://localhost:3142/&quot;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I use explicit routing only when using apt-cacher-ng with pbuilder and
debootstrap. Following snippet shows explicit routing through &lt;em&gt;/etc/apt/sources.list&lt;/em&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;deb&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;http://localhost:3142/deb.debian.org/debian&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;unstable&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;main&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;usage-with-pbuilder-and-friends&quot;&gt;
&lt;h3&gt;Usage with pbuilder and friends&lt;/h3&gt;
&lt;p&gt;To use apt-cacher-ng with pbuilder you need to modify /etc/pbuilderrc
to contain following line&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MIRRORSITE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;http://localhost:3142/deb.debian.org/debian
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;usage-with-debootstrap&quot;&gt;
&lt;h3&gt;Usage with debootstrap&lt;/h3&gt;
&lt;p&gt;To use apt-cacher-ng with debootstrap, pass MIRROR argument of
debootstrap as &lt;cite&gt;http://localhost:3142/deb.debian.org/debian&lt;/cite&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;conclusion&quot;&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I&#39;ve now completed full transition of my work flow to apt-cacher-ng
and purged approx and its cache.&lt;/p&gt;
&lt;div class=&quot;strike container&quot;&gt;
Though it works fine I feel that there will be 2 caches created when
you use transparent and explicit proxy using localhost:3142 URL. I&#39;m
sure it is possible to configure this to avoid duplication, but I&#39;ve
not yet figured it. If you know how to fix this do let me know.&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;update&quot;&gt;
&lt;h3&gt;Update&lt;/h3&gt;
&lt;p&gt;Jonas told me that its not 2 caches but 2 routing paths, one for
transparent routing and another for explicit routing. So I guess there
is nothing here to fix :-).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt; </description> 
	<pubDate>Sun, 17 Jul 2016 11:00:00 +0000</pubDate>

</item> 
<item>
	<title>Neil Williams: Deprecating dpkg-cross</title>
	<guid>tag:linux.codehelp.co.uk,2016-07-17:deprecating-dpkg-cross.html</guid>
	<link>https://linux.codehelp.co.uk/deprecating-dpkg-cross.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/codehelp.png&quot; width=&quot;85&quot; height=&quot;113&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;div class=&quot;section&quot; id=&quot;deprecating-the-dpkg-cross-binary&quot;&gt;
&lt;h2&gt;Deprecating the dpkg-cross binary&lt;/h2&gt;
&lt;p&gt;After a discussion in the
&lt;a class=&quot;reference external&quot; href=&quot;https://debconf16.debconf.org/talks/141/&quot;&gt;cross-toolchain BoF&lt;/a&gt;
at &lt;a class=&quot;reference external&quot; href=&quot;https://debconf16.debconf.org/&quot;&gt;DebConf16&lt;/a&gt;,
the gross hack which is packaged as the
&lt;a class=&quot;reference external&quot; href=&quot;https://tracker.debian.org/pkg/dpkg-cross&quot;&gt;dpkg-cross&lt;/a&gt; binary package
and supporting perl module have &lt;strong&gt;finally&lt;/strong&gt; been deprecated, long after
multiarch was actually delivered. Various reasons have complicated the
final steps for &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;dpkg-cross&lt;/span&gt;&lt;/tt&gt; and there remains one use for some of the
files within the package although not the &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;dpkg-cross&lt;/span&gt;&lt;/tt&gt; binary itself.&lt;/p&gt;
&lt;p&gt;&lt;tt class=&quot;docutils literal&quot;&gt;2.6.14&lt;/tt&gt; has now been uploaded to unstable and introduces a new
binary package &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;cross-config&lt;/span&gt;&lt;/tt&gt;, so will spend a time in NEW. The
changes are summarised in the NEWS entry for 2.6.14.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The cross architecture configuration files have moved to the
new cross-config package and the older dpkg-cross binary with
supporting perl module are now deprecated. Future uploads will
only include the cross-config package.&lt;/p&gt;
&lt;p&gt;Use cross-config to retain support for autotools and CMake
cross-building configuration.&lt;/p&gt;
&lt;p&gt;If you use the deprecated dpkg-cross binary, now is the time
to migrate away from these path changes. The dpkg-cross binary
and the supporting perl module should NOT be expected to be
part of Debian by the time of the Stretch release.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;2.6.14 also marks the end of my involvement with &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;dpkg-cross&lt;/span&gt;&lt;/tt&gt;. The
Uploaders list has been shortened but I&#39;m still listed to be able to
get 2.6.14 into NEW. A future release will drop the
&lt;a class=&quot;reference external&quot; href=&quot;https://packages.debian.org/unstable/libdebian-dpkgcross-perl&quot;&gt;perl module&lt;/a&gt;
and the &lt;a class=&quot;reference external&quot; href=&quot;https://packages.debian.org/unstable/dpkg-cross&quot;&gt;dpkg-cross binary&lt;/a&gt;,
retaining just the new &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;cross-config&lt;/span&gt;&lt;/tt&gt; package.&lt;/p&gt;
&lt;/div&gt; </description> 
	<pubDate>Sun, 17 Jul 2016 10:30:24 +0000</pubDate>

</item> 
<item>
	<title>Valerie Young: Work after DebConf</title>
	<guid>http://www.spectranaut.cc/?p=45</guid>
	<link>http://www.spectranaut.cc/?p=45</link>
     <description>  &lt;p&gt;First week after DebCamp and DebConf! Both were incredible — the debian project and it’s contributors never fail to impress and delight me. None the less it felt great to have a few quiet, peaceful days of uninterrupted programming.&lt;/p&gt;
&lt;p&gt;Notes about last week:&lt;/p&gt;
&lt;p&gt;1. Finished Mattia’s final suggestions for the conversion of the &lt;a href=&quot;https://tests.reproducible-builds.org/debian/unstable/amd64/index_pkg_sets.html&quot;&gt;package set pages&lt;/a&gt; script to python.&lt;/p&gt;
&lt;p&gt;Hopefully it will be deployed soon, awaiting final approval &lt;img alt=&quot;🙂&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/72x72/1f642.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2. Replace the bash code that produced the left navigation on the &lt;a href=&quot;https://tests.reproducible-builds.org/debian/reproducible.html&quot;&gt;home page&lt;/a&gt; (and most other pages) with the mustache template the python scripts use.&lt;/p&gt;
&lt;p&gt;Previously, html was constructed and spat out from both a python and shell script — now we have a single, DRY mustache template. (At the top of the bash function that produced the navigation html, you will find the comment: “this is really quite incomprehensible and should be killed, the solution is to write all html pages with python…”. Turns out the intermediate solution is to use templates &lt;img alt=&quot;😉&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/72x72/1f609.png&quot; style=&quot;height: 1em;&quot; /&gt; )&lt;/p&gt;
&lt;p&gt;3. Thought hard about navigation of the test website, and redesigned (by rearranging) links in the left hand navigation.&lt;/p&gt;
&lt;p&gt;After code review, you will see these changes as well! Things to look forward to include:&lt;br /&gt;
– A link to the Debian dashboard on the top left of every page (except the package specific pages).&lt;br /&gt;
– The title of each page (except the package pages) stretches across the whole page (instead of being squashed into the top left).&lt;br /&gt;
– Hover text has been added to most links in the left navigation.&lt;br /&gt;
– Links in left navigation have been reordered, and headers added.&lt;/p&gt;
&lt;p&gt;Once you see the changes, please let me know if you think anything is unintuitive or confusion, everything can be easily changed!&lt;/p&gt;
&lt;p&gt;4. Cross suite and architecture navigation enabled for most pages.&lt;/p&gt;
&lt;p&gt;For most pages, you will be one click away from seeing the same statistics for a different suite or architecture! Whoo!&lt;/p&gt;
&lt;p&gt;Notes about next week:&lt;/p&gt;
&lt;p&gt;Last week I got carried away imagining minor improvements that can be made to the test websites UI, and I now have a backlog of ideas I’d like to implement. I’ve begun editing the script that makes most of the pages with statistics or package list (for example, &lt;a href=&quot;https://tests.reproducible-builds.org/debian/unstable/amd64/index_notes.html&quot;&gt;all packages with notes&lt;/a&gt;, or &lt;a href=&quot;https://tests.reproducible-builds.org/debian/unstable/amd64/index_last_24h.html&quot;&gt;all recently tested packages&lt;/a&gt;) to use templates and contain a bit more descriptive text. I’d also like to do a some revamping of the package set pages I converted.&lt;/p&gt;
&lt;p&gt;These addition UI changes will be my first tasks for the coming week — since they are fresh on my mind and I’m quite excited about them. The following week I’d like to get back to extensibility and database issues mentioned previously!&lt;/p&gt; </description> 
	<pubDate>Sun, 17 Jul 2016 01:42:58 +0000</pubDate>

</item> 
<item>
	<title>Paul Tagliamonte: The Open Source License API</title>
	<guid>tag:notes.pault.ag,2016-07-16:osi-license-api</guid>
	<link>https://notes.pault.ag/osi-license-api</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/paultag.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Around a year ago, I started hacking together a machine readable version
of the OSI approved licenses list, and casually picking parts up until it
was ready to launch. A few weeks ago, we officially announced
the &lt;a href=&quot;https://opensource.org/node/822&quot;&gt;osi license api&lt;/a&gt;, which is now
live at &lt;a href=&quot;https://api.opensource.org/&quot;&gt;api.opensource.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I also took a whack at writing a few API bindings, in
&lt;a href=&quot;https://github.com/opensourceorg/python-opensource&quot;&gt;Python&lt;/a&gt;,
&lt;a href=&quot;https://github.com/opensourceorg/ruby-opensourceapi&quot;&gt;Ruby&lt;/a&gt;,
and using the models from the API implementation itself in
&lt;a href=&quot;https://github.com/OpenSourceOrg/api/tree/master/client&quot;&gt;Go&lt;/a&gt;. In the following
few weeks, &lt;a href=&quot;https://github.com/clinty&quot;&gt;Clint&lt;/a&gt; wrote one in &lt;a href=&quot;https://github.com/OpenSourceOrg/haskell-opensource&quot;&gt;Haskell&lt;/a&gt;,
&lt;a href=&quot;https://mornie.org/&quot;&gt;Eriol&lt;/a&gt; wrote one in &lt;a href=&quot;https://github.com/opensourceorg/rust-opensource&quot;&gt;Rust&lt;/a&gt;,
and &lt;a href=&quot;https://ironholds.org/&quot;&gt;Oliver&lt;/a&gt; wrote one in &lt;a href=&quot;https://cran.r-project.org/web/packages/osi/&quot;&gt;R&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The data is sourced from a &lt;a href=&quot;https://github.com/opensourceorg/licenses&quot;&gt;repo on GitHub&lt;/a&gt;,
the &lt;code&gt;licenses&lt;/code&gt; repo under &lt;code&gt;OpenSourceOrg&lt;/code&gt;. Pull Requests against that repo are
wildly encouraged! Additional data ideas, cleanup or more hand collected data
would be wonderful!&lt;/p&gt;
&lt;p&gt;In the meantime, use-cases for using this API range from language package
managers pulling OSI approval of a licence programatically to using a license
identifier as defined in one dataset (SPDX, for exampele), and using that
to find the identifer as it exists in another system (DEP5, Wikipedia,
TL;DR Legal).&lt;/p&gt;
&lt;p&gt;Patches are hugly welcome, as are bug reports or ideas! I&#39;d also love more
API wrappers for other languages!&lt;/p&gt; </description> 
	<pubDate>Sat, 16 Jul 2016 19:30:00 +0000</pubDate>

</item> 
<item>
	<title>Rapha&amp;#235;l Hertzog: Freexian’s report about Debian Long Term Support, June 2016</title>
	<guid>https://raphaelhertzog.com/?p=3467</guid>
	<link>https://raphaelhertzog.com/2016/07/16/freexians-report-about-debian-long-term-support-june-2016/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/hertzog.png&quot; width=&quot;65&quot; height=&quot;93&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;img alt=&quot;A Debian LTS logo&quot; class=&quot;alignright size-full wp-image-3226&quot; height=&quot;128&quot; src=&quot;https://raphaelhertzog.com/files/2015/03/Debian-LTS-2-small.png&quot; width=&quot;128&quot; /&gt;Like &lt;a href=&quot;https://raphaelhertzog.com/tag/Freexian+LTS/&quot;&gt;each month&lt;/a&gt;, here comes a report about the work of &lt;a href=&quot;http://www.freexian.com/services/debian-lts.html&quot;&gt;paid contributors&lt;/a&gt; to &lt;a href=&quot;https://wiki.debian.org/LTS&quot;&gt;Debian LTS&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Individual reports&lt;/h3&gt;
&lt;p&gt;In June, 158.25 work hours have been dispatched among 11 paid contributors. Their reports are available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://raphaelhertzog.com/feed/planets/&quot;&gt;Antoine Beaupré&lt;/a&gt; has been allocated 4 hours but did not publish his report yet.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lists.debian.org/msgid-search/73b8b32d-96c3-6f22-aebc-3e97c4bc0a0c@balintreczey.hu&quot;&gt;Balint Reczey&lt;/a&gt; did 3 hours (out of 16 hours allocated, thus keeping 13 extra hours for July).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.decadent.org.uk/ben/blog/debian-lts-work-june-2016.html&quot;&gt;Ben Hutchings&lt;/a&gt; did 19 hours (out of 15 hours allocated + 5 remaining, keeping 1 extra hour for July).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lists.debian.org/debian-lts/2016/07/msg00000.html&quot;&gt;Brian May&lt;/a&gt; did 15 hours.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chris-lamb.co.uk/posts/free-software-activities-in-june-2016&quot;&gt;Chris Lamb&lt;/a&gt; did 18 hours.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lists.debian.org/debian-lts/2016/07/msg00003.html&quot;&gt;Emilio Pozuelo Monfort&lt;/a&gt; did 16 hours.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://honk.sigxcpu.org/con/Debian_Fun_in_June_2016.html&quot;&gt;Guido Günther&lt;/a&gt; did 8 hours.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gambaru.de/blog/2016/07/07/my-free-software-activities-in-june-2016/&quot;&gt;Markus Koschany&lt;/a&gt; did 19.75 hours (out of 18.75 hours allocated + 1 remaining).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://inguza.com/report/debian-long-term-support-work-2016-june&quot;&gt;Ola Lundqvist&lt;/a&gt; did 10 hours.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lists.debian.org/msgid-search/20160707162747.GA23288@riseup.net&quot;&gt;Santiago Ruano Rincón&lt;/a&gt; did 15.5 hours (out of 18.75h allocated + 8 remaining, thus keeping 11.25 extra hours for July).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.alteholz.eu/2016/06/my-debian-activities-in-june-2016/&quot;&gt;Thorsten Alteholz&lt;/a&gt; did 18.75 hours.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;DebConf 16 Presentation&lt;/h3&gt;
&lt;p&gt;If you want to know more about how the LTS project is organized, you can watch the &lt;a href=&quot;http://meetings-archive.debian.net/pub/debian-meetings/2016/debconf16/2_Years_of_Work_of_Paid_Contributors_in_the_Debian_LTS_Project.webm&quot;&gt;presentation&lt;/a&gt; I gave during DebConf 16 in Cape Town.&lt;/p&gt;
&lt;p&gt;&lt;video controls=&quot;controls&quot; height=&quot;450&quot; width=&quot;600&quot;&gt;&lt;source src=&quot;http://meetings-archive.debian.net/pub/debian-meetings/2016/debconf16/2_Years_of_Work_of_Paid_Contributors_in_the_Debian_LTS_Project.webm&quot; type=&quot;video/webm&quot; /&gt;&lt;/video&gt;&lt;/p&gt;
&lt;h3&gt;Evolution of the situation&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.freexian.com/services/debian-lts.html&quot;&gt;number of sponsored hours&lt;/a&gt; increased a little bit at 135 hours per month thanks to 3 new sponsors (&lt;a href=&quot;http://www.legi.grenoble-inp.fr&quot;&gt;Laboratoire LEGI – UMR 5519 / CNRS&lt;/a&gt;, &lt;a href=&quot;https://quarantainenet.nl&quot;&gt;Quarantainenet BV&lt;/a&gt;, &lt;a href=&quot;http://www.allogarage.fr&quot;&gt;GNI MEDIA&lt;/a&gt;). Our funding goal is getting closer but it’s not there yet.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://security-tracker.debian.org/tracker/status/release/oldstable&quot;&gt;security tracker&lt;/a&gt; currently lists 40 packages with a known CVE and the &lt;a href=&quot;https://anonscm.debian.org/viewvc/secure-testing/data/dla-needed.txt?view=markup&quot;&gt;dla-needed.txt file&lt;/a&gt; lists 38 packages awaiting an update.&lt;/p&gt;
&lt;h3&gt;Thanks to our sponsors&lt;/h3&gt;
&lt;p&gt;New sponsors are in bold.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Platinum sponsors:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.toshiba.co.jp/worldwide/index.html&quot;&gt;TOSHIBA&lt;/a&gt; (for 9 months)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Gold sponsors:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.positive-internet.com&quot;&gt;The Positive Internet&lt;/a&gt; (for 25 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blablacar.fr&quot;&gt;Blablacar&lt;/a&gt; (for 24 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.linode.com&quot;&gt;Linode LLC&lt;/a&gt; (for 14 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.babiel.com&quot;&gt;Babiel GmbH&lt;/a&gt; (for 3 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.plathome.com&quot;&gt;Plat’Home&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Silver sponsors:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.domainnameshop.com&quot;&gt;Domeneshop AS&lt;/a&gt; (for 24 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.univ-lille3.fr&quot;&gt;Université Lille 3&lt;/a&gt; (for 24 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://trollweb.no&quot;&gt;Trollweb Solutions&lt;/a&gt; (for 22 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nantesmetropole.fr/&quot;&gt;Nantes Métropole&lt;/a&gt; (for 18 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://hpc.uni.lu/&quot;&gt;University of Luxembourg&lt;/a&gt; (for 16 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.dalenys.com&quot;&gt;Dalenys&lt;/a&gt; (for 15 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.univention.de&quot;&gt;Univention GmbH&lt;/a&gt; (for 10 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://portail.univ-st-etienne.fr/&quot;&gt;Université Jean Monnet de St Etienne&lt;/a&gt; (for 10 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.sonusnet.com&quot;&gt;Sonus Networks&lt;/a&gt; (for 4 months)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Bronze sponsors:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.intars.at&quot;&gt;David Ayers – IntarS Austria&lt;/a&gt; (for 25 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.evolix.fr&quot;&gt;Evolix&lt;/a&gt; (for 25 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.offensive-security.com&quot;&gt;Offensive Security&lt;/a&gt; (for 25 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.seznam.cz&quot;&gt;Seznam.cz, a.s.&lt;/a&gt; (for 25 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://freeside.biz&quot;&gt;Freeside Internet Service&lt;/a&gt; (for 24 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mytux.fr&quot;&gt;MyTux&lt;/a&gt; (for 24 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxhotel.de&quot;&gt;Linuxhotel GmbH&lt;/a&gt; (for 22 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://intevation.de&quot;&gt;Intevation GmbH&lt;/a&gt; (for 21 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://daevel.fr&quot;&gt;Daevel SARL&lt;/a&gt; (for 20 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bitfolk.com&quot;&gt;Bitfolk LTD&lt;/a&gt; (for 19 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.megaspace.de&quot;&gt;Megaspace Internet Services GmbH&lt;/a&gt; (for 19 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.greenbone.net&quot;&gt;Greenbone Networks GmbH&lt;/a&gt; (for 18 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://numlog.fr&quot;&gt;NUMLOG&lt;/a&gt; (for 18 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wingo.ch/&quot;&gt;WinGo AG&lt;/a&gt; (for 17 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://lheea.ec-nantes.fr&quot;&gt;Ecole Centrale de Nantes – LHEEA&lt;/a&gt; (for 14 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sig-io.nl&quot;&gt;Sig-I/O&lt;/a&gt; (for 11 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.entrouvert.com/&quot;&gt;Entr’ouvert&lt;/a&gt; (for 9 months)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://adfinis-sygroup.ch&quot;&gt;Adfinis SyGroup AG&lt;/a&gt; (for 6 months)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.legi.grenoble-inp.fr&quot;&gt;Laboratoire LEGI – UMR 5519 / CNRS&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://quarantainenet.nl&quot;&gt;Quarantainenet BV&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.allogarage.fr&quot;&gt;GNI MEDIA&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;shariff&quot;&gt;&lt;/div&gt;&lt;p style=&quot;font-size: smaller;&quot;&gt;&lt;a href=&quot;https://raphaelhertzog.com/2016/07/16/freexians-report-about-debian-long-term-support-june-2016/#comments&quot;&gt;No comment&lt;/a&gt; | Liked this article? &lt;a href=&quot;http://raphaelhertzog.com/support-my-work/&quot;&gt;Click here&lt;/a&gt;. | My blog is &lt;a href=&quot;http://flattr.com/thing/26545/apt-get-install-debian-wizard&quot;&gt;Flattr-enabled&lt;/a&gt;.&lt;/p&gt;&lt;/ul&gt; </description> 
	<pubDate>Sat, 16 Jul 2016 06:31:25 +0000</pubDate>

</item> 
<item>
	<title>Lars Wirzenius: Two-factor auth for local logins in Debian using U2F keys</title>
	<guid>http://blog.liw.fi/posts/u2f-pam/</guid>
	<link>http://blog.liw.fi/posts/u2f-pam/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/lars.png&quot; width=&quot;85&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; This blog post includes instructions for a procedure that
can lead you to lock yourself out of your computer. Even if everything
goes well, you&#39;ll be hunted by dragons. Keep backups, have a rescue
system on a USB stick, and wear flameproof clothing. Also, have fun,
and tell your loved ones you love them.&lt;/p&gt;

&lt;p&gt;I&#39;ve recently gotten two &lt;a href=&quot;https://en.wikipedia.org/wiki/Universal_2nd_Factor&quot;&gt;U2F&lt;/a&gt; keys. U2F is a open standard for
authentication using hardware tokens. It&#39;s probably mostly meant for
website logins, but I wanted to have it for local logins on my laptop
running Debian. (I also offer a line of stylish aluminium foil hats.)&lt;/p&gt;

&lt;p&gt;Having two-factor authentication (2FA) for local logins improves
security if you need to log in (or unlock a screen lock) in a public
or potentially hostile place, such as a cafe, a train, or a meeting
room at a client. If they have video cameras, they can film you typing
your password, and get the password that way.&lt;/p&gt;

&lt;p&gt;If you set up 2FA using a hardware token, your enemies will also need
to lure you into a cave, where a dragon will use a precision flame to
incinerate you in a way that leaves the U2F key intact, after which
your enemies steal the key, log into your laptop and leak your cat GIF
collection.&lt;/p&gt;

&lt;p&gt;Looking up information for how to set this up, I found a blog post by
&lt;a href=&quot;http://seabre.github.io/blog/2015/10/17/local-two-factor-authentication-with-u2f-on-ubuntu-14-dot-04/&quot;&gt;Sean Brewer&lt;/a&gt;, for Ubuntu 14.04. That got me started. Here&#39;s what I
understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;PAM is the technology in Debian for handling authentication for
logins and similar things. It has a plugin architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yubico (maker of Yubikeys) have written a PAM plugin for U2F. It is
packaged in Debian as &lt;code&gt;libpam-u2f&lt;/code&gt;. The package includes documentation
in &lt;code&gt;/usr/share/doc/libpam-u2f/README.gz&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By configuring PAM to use &lt;code&gt;libpam-u2f&lt;/code&gt;, you can require both password
and the hardware token for logging into your machine.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Here are the detailed steps for Debian stretch, with minute
differences from those for Ubuntu 14.04. If you follow these, and lock
yourself out of your system, it wasn&#39;t my fault, you can&#39;t blame me,
and look, squirrels! Also not my fault if you don&#39;t wear sufficient
protection against dragons.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;code&gt;pamu2fcfg&lt;/code&gt; and &lt;code&gt;libpam-u2f&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;As your normal user, &lt;code&gt;mkdir ~/.config/Yubico&lt;/code&gt;. The list of allowed
 U2F keys will be put there.&lt;/li&gt;
&lt;li&gt;Insert your U2F key and run &lt;code&gt;pamu2fcfg -u$USER &amp;gt;
~/.config/Yubico/u2f_keys&lt;/code&gt;, and press the button on your U2F key when
the key is blinking.&lt;/li&gt;
&lt;li&gt;Edit &lt;code&gt;/etc/pam.d/common-auth&lt;/code&gt; and append the line
&lt;code&gt;auth required pam_u2f.so cue&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reboot (or at least log out and back in again).&lt;/li&gt;
&lt;li&gt;Log in, type in your password, and when prompted and the U2F key is
blinking, press its button to complete the login.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;code&gt;pamu2fcfg&lt;/code&gt; reads the hardware token and writes out its identifying data
in a form that the PAM module understands; see the &lt;a href=&quot;https://developers.yubico.com/pam-u2f/&quot;&gt;pam-u2f&lt;/a&gt;
documentation for details. The data can be stored in the user&#39;s home
directory (my preference) or in &lt;code&gt;/etc/u2f_mappings&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Once this is set up, anything that uses PAM for local authentication
(console login, GUI login, sudo, desktop screen lock) will need to use
the U2F key as well. ssh logins won&#39;t.&lt;/p&gt;

&lt;p&gt;Next, add a second key to your &lt;code&gt;u2f_keys&lt;/code&gt;. This is important, because if
you lose your first key, or it&#39;s damaged, you&#39;ll otherwise have no way
to log in.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Insert your second U2F key and run &lt;code&gt;pamu2fcfg -n &amp;gt; second&lt;/code&gt;, and press
the second key&#39;s button when prompted.&lt;/li&gt;
&lt;li&gt;Edit &lt;code&gt;~/.config/Yubico/u2f_keys&lt;/code&gt; and append the output of &lt;code&gt;second&lt;/code&gt; to
the line with your username.&lt;/li&gt;
&lt;li&gt;Verify that you can log in using your second key as well as the first
key. Note that you should have only one of the keys plugged in at
the same time when logging in: the PAM module wants the first key
it finds so you can&#39;t test both keys plugged in at once.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;This is not too difficult, but rather fiddly, and it&#39;d be nice if
someone wrote at least a way to manage the list of U2F keys in a nicer
way.&lt;/p&gt; </description> 
	<pubDate>Fri, 15 Jul 2016 11:19:45 +0000</pubDate>

</item> 
<item>
	<title>Ritesh Raj Sarraf: Fully SSL for my website</title>
	<guid>https://www.researchut.com/282 at https://www.researchut.com</guid>
	<link>https://www.researchut.com/blog/lets-encrypt-researchut</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/rrs.png&quot; width=&quot;75&quot; height=&quot;80&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden view-mode-rss&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;p&gt;I finally made full switch to SSL for my website. Thanks to &lt;a href=&quot;https://hblok.net/blog/posts/2016/02/24/lets-encrypt-tls-certificate-setup-for-apache-on-debian-7/&quot;&gt;this&lt;/a&gt; simple howto on Let&#39;s Encrypt. I had to use the upstream git repo though. The Debian packaged tool, letsencrypt.sh, did not have enough documentation/pointers in place. And finally, thanks to the Let&#39;s Encrypt project as a whole.&lt;/p&gt;
&lt;p&gt;PS: http is now redirected to https. I hope nothing really breaks externally.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;section class=&quot;field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above view-mode-rss&quot;&gt;&lt;h2 class=&quot;field-label&quot;&gt;Categories: &lt;/h2&gt;&lt;ul class=&quot;field-items&quot;&gt;&lt;li class=&quot;field-item even&quot;&gt;&lt;a href=&quot;https://www.researchut.com/taxonomy/term/2&quot;&gt;Debian-Blog&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;field-item odd&quot;&gt;&lt;a href=&quot;https://www.researchut.com/taxonomy/term/11&quot;&gt;General&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;field-item even&quot;&gt;&lt;a href=&quot;https://www.researchut.com/taxonomy/term/1&quot;&gt;Computing&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above view-mode-rss&quot;&gt;&lt;h2 class=&quot;field-label&quot;&gt;Keywords: &lt;/h2&gt;&lt;ul class=&quot;field-items&quot;&gt;&lt;li class=&quot;field-item even&quot;&gt;&lt;a href=&quot;https://www.researchut.com/taxonomy/term/285&quot;&gt;SSL&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;field-item odd&quot;&gt;&lt;a href=&quot;https://www.researchut.com/taxonomy/term/286&quot;&gt;https&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;field-item even&quot;&gt;&lt;a href=&quot;https://www.researchut.com/taxonomy/term/287&quot;&gt;let&#39;s encrypt&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;field-item odd&quot;&gt;&lt;a href=&quot;https://www.researchut.com/taxonomy/term/288&quot;&gt;eff&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;div class=&quot;field field-name-taxonomy-vocabulary-5 field-type-taxonomy-term-reference field-label-hidden view-mode-rss&quot;&gt;&lt;ul class=&quot;field-items&quot;&gt;&lt;li class=&quot;field-item even&quot;&gt;&lt;a href=&quot;https://www.researchut.com/taxonomy/term/157&quot;&gt;RHUT&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;section class=&quot;field field-name-field-like field-type-addthis field-label-above view-mode-rss&quot;&gt;&lt;h2 class=&quot;field-label&quot;&gt;Like: &lt;/h2&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt; </description> 
	<pubDate>Fri, 15 Jul 2016 10:24:09 +0000</pubDate>

</item> 
<item>
	<title>Clint Adams: Election time</title>
	<guid>http://xana.scru.org/xana2/barks/spi2016/</guid>
	<link>http://xana.scru.org/xana2/barks/spi2016/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/clint.png&quot; width=&quot;80&quot; height=&quot;88&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;13 for 6.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://modelviewculture.com/pieces/you-saved-my-life-now-you-re-destroying-it&quot;&gt;https://modelviewculture.com/pieces/you-saved-my-life-now-you-re-destroying-it&lt;/a&gt;&lt;/p&gt; </description> 
	<pubDate>Fri, 15 Jul 2016 01:31:09 +0000</pubDate>

</item> 
<item>
	<title>Andrew Cater: Who wrote Hello world</title>
	<guid>tag:blogger.com,1999:blog-8085113335874848981.post-3695541134841886094</guid>
	<link>http://flosslinuxblog.blogspot.com/2016/07/who-wrote-hello-world.html</link>
     <description>  &lt;div style=&quot;text-align: center;&quot;&gt;&lt;u&gt;&lt;b&gt;Who wrote &quot;Hello, world&quot; ?&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Rereading Kernighan and Ritchie&#39;s classic book on C - https://en.wikipedia.org/wiki/The_C_Programming_Language - almost the first thing you find is the listing for hello world. The comments make it clear that this is a commonplace - the sort of program that every programmer writes as a first test - the new computer works, the compiler / interpreter produces useful output and so on. It&#39; s the classic, canonical thing to do.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;A long time back, I got asked whether programming was an art or a science: it&#39;s both, but most of all it&#39;s only good insofar as it&#39;s shared and built on. I used hello world as an example: you can write hello world. You decide to add different text - a greeting (Hej! / ni hao / Bonjour tout le monde! )for friends. &lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;You discover at / cron / anacron - now you can schedule reminders &quot;It&#39;s midnight - do you know where your code is?&quot; &quot;Go to bed, you have school tomorrow&quot;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;You can discover how to code for a graphical environment: how to build a test framework around it to check that it _only_ prints hello world and doesn&#39;t corrupt other memory ... the uses are endless if it sparks creativity.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;If you feel like it, you can share your version - and learn from others. Write it in different languages - there&#39;s the analogous 99 bottles of beer site showing how to count and use different languages at&lt;b&gt;&lt;cite&gt; &lt;/cite&gt;&lt;/b&gt;&lt;cite&gt; www.99-bottles-of-beer.net&lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;cite&gt;Not everyone will get it: not everyone will see it but everyone needs the opportunity&lt;/cite&gt;&lt;cite&gt; &lt;/cite&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;cite&gt;Everyone needs the chance to share and make use of the commons, needs to be able to feel part of this&lt;/cite&gt;&lt;cite&gt; &lt;/cite&gt;&lt;cite class=&quot;_Rm&quot;&gt; &lt;/cite&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;cite class=&quot;_Rm&quot;&gt;&lt;br /&gt;&lt;/cite&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;cite class=&quot;_Rm&quot;&gt;Needs to be included: needs to feel that this is part of common heritage.&lt;/cite&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt; &lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt;If you work for an employer: get them to contribute code / money / resources - even if it&#39;s as a charitable donation or to offset against taxes&lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt;&lt;br /&gt;&lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt;If you work for a government: get them to use Free/Libre/Open Source products&lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt;&lt;br /&gt;&lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt;If you work for a hosting company / ISP - get them to donate bandwidth for schools/coding clubs.&lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt;Give your time, effort, expertise to help: you gained from others, help others gain &lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt;&lt;br /&gt;&lt;/cite&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;cite class=&quot;_Rm&quot;&gt;If you work for an IT manufacturer - get them to think of FLOSS as the norm, not the exception&lt;/cite&gt;&lt;br /&gt;&lt;br /&gt;&lt;cite class=&quot;_Rm&quot;&gt; &lt;/cite&gt;&lt;br /&gt;&lt;br /&gt;&lt;cite class=&quot;_Rm&quot;&gt; &lt;/cite&gt;&lt;br /&gt;&lt;/div&gt; </description> 
	<pubDate>Thu, 14 Jul 2016 22:43:39 +0000</pubDate>
  <author>noreply@blogger.com (Andrew Cater)</author>  
</item> 
<item>
	<title>Steve Kemp: Adding lua to all the things!</title>
	<guid>https://blog.steve.fi/Adding_lua_to_all_the_things_.html</guid>
	<link>https://blog.steve.fi/Adding_lua_to_all_the_things_.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/skx.png&quot; width=&quot;76&quot; height=&quot;105&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Recently Antirez made a post &lt;a href=&quot;http://antirez.com/news/108&quot;&gt;documenting a simple editor in 1k of pure C&lt;/a&gt;, the post was interesting in itself, and the editor is a cute toy because it &lt;em&gt;doesn&#39;t&lt;/em&gt; use curses - instead using escape sequences.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://github.com/antirez/kilo&quot;&gt;github project&lt;/a&gt; became very popular and much &lt;a href=&quot;https://news.ycombinator.com/item?id=12065217&quot;&gt;interesting discussion&lt;/a&gt; took place on hacker news.&lt;/p&gt;

&lt;p&gt;My interest was piqued because I&#39;ve obviously spent a few months working on my own console based program, and so I had to read the code, see what I could learn, and generally have some fun.&lt;/p&gt;

&lt;p&gt;As expected Salvatore&#39;s code is refreshingly simple, neat in some areas, terse in others, but always a pleasure to read.&lt;/p&gt;

&lt;p&gt;Also, as expected, a number of forks appeared adding various features.  I figured I could do the same, so I did the obvious thing in adding Lua scripting support to the project.   In my fork the core of the editor is mostly left alone, instead code was moved out of it into an external lua script.&lt;/p&gt;

&lt;p&gt;The highlight of my lua code is this magic:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;  --
  -- Keymap of bound keys
  --
  local keymap = {}

  --
  --  Default bindings
  --
  keymap[&#39;^A&#39;]        = sol
  keymap[&#39;^D&#39;]        = function() insert( os.date() ) end
  keymap[&#39;^E&#39;]        = eol
  keymap[&#39;^H&#39;]        = delete
  keymap[&#39;^L&#39;]        = eval
  keymap[&#39;^M&#39;]        = function() insert(&quot;\n&quot;) end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I wrote a function invoked on every key-press, and use that to lookup
key-bindings.  By adding a bunch of primitives to export/manipulate the
core of the editor from Lua I simplified the editor&#39;s core logic, and
allowed interesting facilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive evaluation of lua.&lt;/li&gt;
&lt;li&gt;The ability to remap keys on the fly.&lt;/li&gt;
&lt;li&gt;The ability to insert command output into the buffer.&lt;/li&gt;
&lt;li&gt;The implementation of copy/past &lt;strong&gt;entirely in Lua_&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All in all I had fun, and I continue to think a Lua-scripted editor would
be a neat project - I&#39;m just not sure there&#39;s a &quot;market&quot; for another editor.&lt;/p&gt;

&lt;p&gt;View &lt;a href=&quot;https://github.com/skx/kilo&quot;&gt;my fork here&lt;/a&gt;, and see the &lt;a href=&quot;https://github.com/skx/kilo/blob/master/kilo.lua&quot;&gt;sample kilo.lua config file&lt;/a&gt;.&lt;/p&gt; </description> 
	<pubDate>Thu, 14 Jul 2016 20:57:01 +0000</pubDate>

</item> 
<item>
	<title>Sune Vuorela: Leaky lambdas and self referencing shared pointers</title>
	<guid>http://pusling.com/blog/?p=446</guid>
	<link>http://pusling.com/blog/?p=446</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/sune.png&quot; width=&quot;65&quot; height=&quot;90&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;After a bit of a debugging session, I ended up looking at some code in a large project&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;crayon-plain-tag&quot;&gt;m_foo = std::make_shared&amp;lt;SomeQObject&amp;gt;();
/* plenty of lines and function boundaries left out */ 
(void)connect(m_foo.get(), &amp;amp;SomeQObject::someSignal, [m_foo]() {
  /* */
});&lt;/pre&gt;&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The connection gets removed when the pointer inside m_foo gets de-allocated by the shared_ptr.&lt;br /&gt;
But the connection target is a lambda that has captured a copy of the shared_ptr…&lt;/p&gt;
&lt;p&gt;There is at least a couple of solutions. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Keep the connection object (QMetaObject::Connection) around and call disconnect in your destructor. That way the connection gets removed and the lamda object should get removed
&lt;/li&gt;
&lt;li&gt;
Capture the shared pointer by (const) reference. Capture the shared pointer as a weak pointer. Or as a raw pointer. All of this is safe because whenever the shared pointer gets a refcount of zero, the connection gets taken down with the object.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I guess the lesson learnt is be careful when capturing shared pointers.&lt;/p&gt; </description> 
	<pubDate>Thu, 14 Jul 2016 20:27:59 +0000</pubDate>

</item> 
<item>
	<title>Norbert Preining: Osamu Dazai – No Longer Human</title>
	<guid>https://www.preining.info/blog/?p=5716</guid>
	<link>https://www.preining.info/blog/2016/07/osamu-dazai-no-longer-human/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/preining.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Japanese authors have a tendency to commit suicide, it seems. I have read &lt;a href=&quot;https://en.wikipedia.org/wiki/Ry%C5%ABnosuke_Akutagawa&quot;&gt;Ryunosuke Akutagawa&lt;/a&gt; (&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E8%8A%A5%E5%B7%9D%E9%BE%8D%E4%B9%8B%E4%BB%8B&quot;&gt;芥川 龍之介&lt;/a&gt;, at 35), &lt;a href=&quot;https://en.wikipedia.org/wiki/Yukio_Mishima&quot;&gt;Yukio Mishima&lt;/a&gt; (&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E4%B8%89%E5%B3%B6%E7%94%B1%E7%B4%80%E5%A4%AB&quot;&gt;三島 由紀夫&lt;/a&gt;, at 45), and also &lt;a href=&quot;https://en.wikipedia.org/wiki/Osamu_Dazai&quot;&gt;Osamu Dazai&lt;/a&gt; (&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E5%A4%AA%E5%AE%B0%E6%B2%BB&quot;&gt;太宰 治&lt;/a&gt;, at 39). Their end often reflects in their writings, and one of these examples is the book I just finished, &lt;a href=&quot;https://en.wikipedia.org/wiki/No_Longer_Human&quot;&gt;No Longer Human&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Dazai_Osamu-No_Longer_Human&quot; class=&quot;aligncenter size-full wp-image-5717&quot; height=&quot;382&quot; src=&quot;http://www.preining.info/blog/wp-content/uploads/2016/07/Dazai_Osamu-No_Longer_Human.jpg&quot; width=&quot;497&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Considered as Dazai’s master piece, and with Soseki’s Kokoro the best selling novels in Japan. The book recounts the life of Oba Yozo, from childhood to the end in a mental hospital. The early years, described in the first chapter (“Memorandum”), are filled with the feeling of differentness, alienation from the rest, and Oba starts his way of living by playing the clown, permanently making jokes. The Second Memorandom spans the time to university, where he drops out, tries to become a painter, indulges in alcohol, smoking and prostitutes, leading to a suicide attempt together with a married woman, but he survived. The first part of the Third Memorandom sees a short recovering due to his relationship with a woman. He stops drinking and works as cartoonist, but in the last part his drinking pal from university times shows up again and they return into an ever increasing vicious drinking. Eventually he is separated from his wife, and confined to a mental hospital.&lt;/p&gt;
&lt;p&gt;Very depressing to read, but written in a way that one cannot stop reading. The disturbing thing about this book is that, although the main actor conceives many bad actions, we feel somehow attached to him and feel pity for him. It is somehow a exercise how circumstances and small predispositions can make a huge change in our lives. And it warns us that each one of us can easily come to this brink.&lt;/p&gt; </description> 
	<pubDate>Thu, 14 Jul 2016 04:42:57 +0000</pubDate>

</item> 
<item>
	<title>Steinar H. Gunderson: Cubemap 1.3.0 released</title>
	<guid>http://blog.sesse.net/blog/tech/2016-07-14-00-54_cubemap_1_3_0_released.html</guid>
	<link>http://blog.sesse.net/blog/tech/2016-07-14-00-54_cubemap_1_3_0_released.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/sesse.png&quot; width=&quot;74&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I just released version 1.3.0 of &lt;a href=&quot;https://git.sesse.net/?p=cubemap&quot;&gt;Cubemap&lt;/a&gt;,
my high-performance video reflector. For a change, both new features are from
(indirect) user requests; someone wanted support for raw TS inputs and it was
easy enough to add.&lt;/p&gt;

&lt;p&gt;And then I heard a rumor that people had found Cubemap
useless because “it was logging so much”. Namely, if you have a stream
that&#39;s down, Cubemap will connect to it every 200 ms, and log two lines for
every failed connection attempt. Now, why people discard software on
~50 MB/day of logs (more like 50 kB/day after compression) on a broken setup
(if you have a stream that&#39;s not working, why not just remove it from the
config file and reload?) instead of just asking the author is beyond me,
but hey, eventually it reached my ears, and after a grand half hour of
programming, there&#39;s rate-limiting of logging failed connection attempts. :-)&lt;/p&gt;

&lt;p&gt;The new version hasn&#39;t hit Debian unstable yet, but I&#39;m sure it will very
soon.&lt;/p&gt; </description> 
	<pubDate>Wed, 13 Jul 2016 23:54:00 +0000</pubDate>

</item> 
<item>
	<title>Niels Thykier: Selecting key packages via UDD</title>
	<guid>http://nthykier.wordpress.com/?p=1523</guid>
	<link>https://nthykier.wordpress.com/2016/07/13/selecting-key-packages-via-udd/</link>
     <description>  &lt;p&gt;Thanks to Lucas Nussbaum, we now have a UDD script to filter/select key packages. Some example use cases:&lt;/p&gt;
&lt;h3&gt;Which key packages used compat 4?&lt;/h3&gt;
&lt;pre&gt;# Data file compat-4-packages (one *source* package per line)
$ curl --silent --data-binary @compat-4-packages \
  https://udd.debian.org/cgi-bin/select-key-packages.cgi
alsamixergui
apg
[...]
sgml-base
wwwconfig-common&lt;/pre&gt;
&lt;p&gt;Also useful for things like &lt;a href=&quot;https://bugs.debian.org/830997&quot;&gt;bug#830997&lt;/a&gt;, which was my excuse for requesting this.&lt;img alt=&quot;:)&quot; class=&quot;wp-smiley emoji&quot; draggable=&quot;false&quot; height=&quot;16&quot; src=&quot;https://s1.wp.com/wp-content/mu-plugins/wpcom-smileys/simple-smile.svg&quot; style=&quot;height: 1em;&quot; width=&quot;16&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Is package foo a key package (yet)?&lt;/h3&gt;
&lt;pre&gt;$ is-key-pkg() { 
 RES=$(echo &quot;$1&quot; | curl --silent --data-binary @- \
    https://udd.debian.org/cgi-bin/select-key-packages.cgi)
 if [ &quot;$RES&quot; ]; then
   echo yes
 else
   echo no
 fi
}
$ is-key-pkg bash
yes
$ is-key-pkg mscgen
no
$ is-key-pkg NotAPackage
no&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Above shell snippets might need tweaking for better error handling, etc.&lt;/p&gt;
&lt;p&gt;Once again, thanks to Lucas for the server-side UDD script.&lt;img alt=&quot;:)&quot; class=&quot;wp-smiley emoji&quot; draggable=&quot;false&quot; height=&quot;16&quot; src=&quot;https://s1.wp.com/wp-content/mu-plugins/wpcom-smileys/simple-smile.svg&quot; style=&quot;height: 1em;&quot; width=&quot;16&quot; /&gt;&lt;/p&gt;&lt;br /&gt;Filed under: &lt;a href=&quot;https://nthykier.wordpress.com/category/debian/&quot;&gt;Debian&lt;/a&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/nthykier.wordpress.com/1523/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/nthykier.wordpress.com/1523/&quot; /&gt;&lt;/a&gt; </description> 
	<pubDate>Wed, 13 Jul 2016 20:36:53 +0000</pubDate>

</item> 
<item>
	<title>Dominique Dumont: A survey for developers about application configuration</title>
	<guid>http://ddumont.wordpress.com/?p=827</guid>
	<link>https://ddumont.wordpress.com/2016/07/13/a-survey-for-developers-about-application-configuration/</link>
     <description>  &lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;Markus Raab, the author of &lt;a href=&quot;https://github.com/ElektraInitiative/libelektra&quot;&gt;Elektra&lt;/a&gt; project, has created a &lt;a href=&quot;http://elektra.limequery.org/625192&quot;&gt;survey&lt;/a&gt; to get FLOSS developer’s point of view on the configuration of application.&lt;/p&gt;
&lt;p&gt;If you are a developer, please fill this &lt;a href=&quot;http://elektra.limequery.org/625192&quot;&gt;survey&lt;/a&gt; to help Markus’ work on improving application configuration management. Feeling this survey should take about 15 mns.&lt;/p&gt;
&lt;p&gt;Note that the survey will close on July 18th.&lt;/p&gt;
&lt;p&gt;The fact that this blog comes 1 month after the beginning of the survey is entirely my fault. Sorry about that…&lt;/p&gt;
&lt;p&gt;All the best&lt;/p&gt;&lt;br /&gt; Tagged: &lt;a href=&quot;https://ddumont.wordpress.com/tag/configuration/&quot;&gt;configuration&lt;/a&gt;, &lt;a href=&quot;https://ddumont.wordpress.com/tag/perl/&quot;&gt;Perl&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/ddumont.wordpress.com/827/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ddumont.wordpress.com/827/&quot; /&gt;&lt;/a&gt; </description> 
	<pubDate>Wed, 13 Jul 2016 17:47:26 +0000</pubDate>

</item> 
<item>
	<title>Reproducible builds folks: Reprotest containers are (probably) working, finally</title>
	<guid>https://reproducible.alioth.debian.org/blog/posts/people/ceridwen/reprotest_week7/</guid>
	<link>https://reproducible.alioth.debian.org/blog/posts/people/ceridwen/reprotest_week7/</link>
     <description>  &lt;p&gt;Author: ceridwen&lt;/p&gt;

&lt;p&gt;After testing and looking at the code for
&lt;a href=&quot;https://plumbum.readthedocs.io/&quot;&gt;Plumbum&lt;/a&gt;, I decided that it wouldn&#39;t
work for my purposes.  When a command is created by something like
&lt;code&gt;remote[&#39;ls&#39;]&lt;/code&gt;, it actually looks up which &lt;code&gt;ls&lt;/code&gt; executable will be run
and uses in the command object an internal representation of a path
like &lt;code&gt;/bin/ls&lt;/code&gt;.  To make it work with autopkgtest&#39;s code would have
required writing some kind of middle layer that would take all of the
Plumbum code that makes subprocess calls, does path lookups, or uses
the Python standard library to access OS functions and convert them
into shell scripts.  Another similar library,
&lt;a href=&quot;https://amoffat.github.io/sh/&quot;&gt;sh&lt;/a&gt;, has the same problems.  I think
there&#39;s a strong argument that something like Plumbum&#39;s or sh&#39;s API
would be much easier to work with than adt_testbed, and I may take
steps to improve it at some point, but for the moment I&#39;ve focused on
getting reprotest working with the existing autopkgtest/adt_testbed
API.&lt;/p&gt;

&lt;p&gt;To do this, I created a minimalistic shell AST library in
&lt;code&gt;_shell_ast.py&lt;/code&gt; using the &lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10&quot;&gt;POSIX shell
grammar&lt;/a&gt;.
I omitted a lot of functionality that wasn&#39;t immediately relevant for
reprotest and simplified the AST in some places to make it easier to
work.  Using this, it generates a shell script and runs it with
&lt;code&gt;adt_testbed.Testbed.execute()&lt;/code&gt;.  With these pieces in place, the
tests succeed for both null and schroot!  I haven&#39;t tested the rest of
the containers, but barring further issues with autopkgtest, I expect
they should work.&lt;/p&gt;

&lt;p&gt;At this point, my goal is to push the next release out by next week,
though as usual it will depend on how many snags I hit in the process.
I see the following as the remaining blockers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Test chroot and qemu in addition to null and schroot.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PyPi still doesn&#39;t install the scripts in &lt;code&gt;virt/&lt;/code&gt; properly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;While I fixed &lt;a href=&quot;https://anonscm.debian.org/cgit/reproducible/reprotest.git/commit/?h=virtualization&amp;amp;id=8f1fe119fd3c7fdf10bace47aa8362d64d4456db&quot;&gt;part
of&lt;/a&gt;
adt_testbed&#39;s error handling, some build failures still cause it to
hang, and I have to kill the process by hand.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Better user documentation.  I don&#39;t have time to be thorough, but I
can provide a few more pointers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Wed, 13 Jul 2016 15:49:16 +0000</pubDate>

</item> 
<item>
	<title>Steinar H. Gunderson: Cisco WLC SNMP password reset</title>
	<guid>http://blog.sesse.net/blog/tech/2016-07-12-23-50_cisco_wlc_snmp_password_reset.html</guid>
	<link>http://blog.sesse.net/blog/tech/2016-07-12-23-50_cisco_wlc_snmp_password_reset.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/sesse.png&quot; width=&quot;74&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;If you have a Cisco wireless controller whose admin password you
don&#39;t know, and you don&#39;t have the right serial cable, you can still
reset it over SNMP if you forgot to disable the default read/write
community:&lt;/p&gt;

&lt;pre&gt;snmpset -Os -v 2c -c private 192.168.1.1 1.3.6.1.4.1.14179.2.5.5.1.3.5.97.100.109.105.110 s foobarbaz
&lt;/pre&gt;

&lt;p&gt;Thought you&#39;d like to know. :-P&lt;/p&gt;

&lt;p&gt;(There are other SNMP-based variants out there that rely on the CISCO-CONFIG-COPY-MIB,
but older versions of the WLc software doesn&#39;t suppport it.)&lt;/p&gt; </description> 
	<pubDate>Tue, 12 Jul 2016 22:50:00 +0000</pubDate>

</item> 
<item>
	<title>Olivier Grégoire: Seventh week: create a new architecture and send a lot of information</title>
	<guid>https://gasuleg.github.io//weekly/report/2016/07/12/welcome-to-jekyll0100.html</guid>
	<link>https://gasuleg.github.io//weekly/report/2016/07/12/welcome-to-jekyll0100.html</link>
     <description>  &lt;p&gt;At the begin of this week, I thought my architecture needed to be closer to the call . The goal was to create one class per call to save the different information. With this method, I only need to call the instance who I am interested and I can easly pull the information. &lt;br /&gt;  So, I began to rewrite my architecture on the daemon to create an instance of my class link directly with the callID. &lt;br /&gt;
After implementing it, I was really disappointed. This class was hardly to call from the upper software layers. Indeed, I didn’t know what is the current call display on my client. &lt;br /&gt;
I change my mind and I rewrite the architecture again. I observed the information I want to pull (frame rate, bandwidth, resolution…) and they are all generating in my daemon. Therefore, it will update every time something change in the client. So, I just need to catch it and send it to the upper software layers. My new architecture is simply a singleton because I just need one instance and I need to pull it from everywhere in my program. &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;Beyond that, I wanted to pull some information about the video (frame rate, resolution, codec for the local and remote computer). So, I looked to understand how the frame generate work. Now I can pull: &lt;br /&gt;
-Local and remote video codec &lt;br /&gt;
-Local and remote frame rate &lt;br /&gt;
-Remote audio codec&lt;br /&gt;
-Remote resolution&lt;br /&gt;
-CallID&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;——————— &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Next week, I will begin with working on creating an API on the client library. After that, I will continue to retrieve other information.&lt;/p&gt; </description> 
	<pubDate>Tue, 12 Jul 2016 16:57:51 +0000</pubDate>

</item> 
</channel>
</rss>
