
Island of Ventotene Roman harbour
There once was a Kingdom strongly United, built on the honours of the people of Wessex, of Mercia, Northumbria and East Anglia who knew how to deal with the invasion of the Vikings from the east and of Normans from the south, to come to unify the territory under an umbrella of common intents. Today, however, 48% of them, while keeping solid traditions, still know how to look forward to the future, joining horizons and commercial developments along with the rest of Europe. The remaining 52%, however, look back and can not see anything in front of them if not a desire of isolation, breaking the European dream born on the shores of Ventotene island in 1944 by Altiero Spinelli, Ernesto Rossi and Ursula Hirschmann through the Manifesto for a free and united Europe . An incurable fracture in the country was born in a referendum on 23 June, in which just over half of the population asked to terminate his marriage to the great European family, bringing the UK back by 43 years of history. <Read More [by Fabio Marzocca]>
A while back, I saw a Kickstarter
for one of the most well designed and pretty sleep trackers on the market. I
fell in love with it, and it has stuck with me since.
A few months ago, I finally got my hands on one and started to track my data.
Naturally, I now want to store this new data with the rest of the data I have
on myself in my own databases.
I went in search of an API, but I found that the Sense API hasn't been published
yet, and is being worked on by the team. Here's hoping it'll land soon!
After some subdomain guessing, I hit on api.hello.is.
So, naturally, I went to take a quick look at their Android app and network
traffic, lo and behold, there was a pretty nicely designed API.
This API is clearly an internal API, and as such, it's something that
should not be considered stable. However, I'm OK with a fragile API,
so I've published a quick and dirty API wrapper for the Sense API
to my GitHub..
I've published it because I've found it useful, but I can't promise the world,
(since I'm not a member of the Sense team at Hello!), so here are a few ground
rules of this wrapper:
six to support Python 2.7.
Working with the API:
First, let's go ahead and log in using python -m sense.
$ python -m sense
Sense OAuth Client ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Sense OAuth Client Secret: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Sense email: paultag@gmail.com
Sense password:
Attempting to log into Sense's API
Success!
Attempting to query the Sense API
The humidity is **just right**.
The air quality is **just right**.
The light level is **just right**.
It's **pretty hot** in here.
The noise level is **just right**.
Success!
>>> from sense import Sense
>>> sense = Sense()
>>> sense.devices()
'senses': [ 'id': 'xxxxxxxxxxxxxxxx', 'firmware_version': '11a1', 'last_updated': 1466991060000, 'state': 'NORMAL', 'wifi_info': 'rssi': 0, 'ssid': 'Pretty Fly for a WiFi (2.4 GhZ)', 'condition': 'GOOD', 'last_updated': 1462927722000 , 'color': 'BLACK' ], 'pills': [ 'id': 'xxxxxxxxxxxxxxxx', 'firmware_version': '2', 'last_updated': 1466990339000, 'battery_level': 87, 'color': 'BLUE', 'state': 'NORMAL' ]
>>> values = [x.get("value") for x in sense.room_sensors()["humidity"]][:10]
>>> min(values)
45.73904
>>> max(values)
45.985928
>>>
I've just released version 1.3.0 of Nageru,
my live software video mixer.
Things have been a bit quiet on the Nageru front recently, for two reasons:
First, I've been busy with moving (from Switzerland to Norway) and associated
job change (from Google to MySQL/Oracle). Things are going well, but these
kinds of changes tend to take, well, time and energy.
Second, the highlight of Nageru
1.3.0 is encoding of H.264 streams meant for end users (using x264), not just
the Quick Sync Video streams from earlier versions, which work more as a
near-lossless intermediate format meant for transcoding to something else
later. Like with most things video, hitting such features really hard (I've
been doing literally weeks of continuous stream testing) tends to expose
weaknesses in upstream software.
In particular, I wanted x264 speed control,
where the quality is tuned up and down live as the content dictates. This
is mainly because the content I want to stream this summer (demoscene
competitions) varies from the very simple
to downright ridiculously complex
(as you can see, YouTube just basically gives up and creates gray blocks).
If you have only one static quality setting, you will have the choice between
something that looks like crap for everything, and one that drops frames like
crazy (or, if your encoding software isn't all that, like e.g. using
ffmpeg(1) directly, just gets behind and all your clients' streams just stop)
when the tricky stuff comes. There was an unofficial patch for speed control,
but it was buggy, not suitable for today's hardware and not kept at all up
to date with modern x264 versions. So to get speed control, I had to work
that patch pretty heavily (including making it so that it could work in
Nageru directly instead of requiring a patched x264) and then it exposed a
bug in x264 proper that would cause corruption when changing between some
presets, and I couldn't release 1.3.0 before that fix had at least hit git.
Similarly, debugging this exposed an issue with how I did streaming with
ffmpeg and the MP4 mux (which you need to be able to stream H.264 directly to
HTML5 <video> without any funny and latency-inducing segmenting
business); to know where keyframes started, I needed to flush the mux before
each one, but this messes up interleaving, and if frames were ever dropped right in front of a keyframe
(which they would on the most difficult content, even at speed control's
fastest presets!), the duration field of the frame would be wrong, causing
the timestamps to be wrong and even having pts < dts in some cases.
(VLC has to deal with flushing in exactly the same way, and thus would have
exactly the same issue, although VLC generally doesn't transcode
variable-framerate content so well to begin with, so the heuristics would
be more likely to work. Incidentally, I wrote the VLC code for this flushing
back in the day, to be able to stream WebM for some Debconf.) I cannot take
credit for the ffmpeg/libav fixes (that was all done by Martin Storsj ),
but again, Nageru had to wait for the new API they introduce (that just
signals to the application when a keyframe is about to begin, removing the
need for flushing) to get into git mainline. Hopefully, both fixes will get
into releases soon-ish and from there one make their way into stretch.
Apart from that, there's a bunch of fixes as always. I'm still occasionally
(about once every two weeks of streaming or so) hitting what I believe is
a bug in NVIDIA's proprietary OpenGL drivers, but it's nearly impossible to
debug without some serious help from them, and they haven't been responding
to my inquiries. Every two weeks means that you could be hitting it in
a weekend's worth of streaming, so it would be nice to get it fixed, but
it also means it's really really hard to make a reproducible test case. :-)
But the fact that this is currently the worst stability bug (and that you
can work around it by using e.g. Intel's drivers) also shows that Nageru is
pretty stable these days.
The downside was that most of those were short runs or bike
sessions. My runs are now usually 6.5K, and I'll try to keep to that
for a few weeks, in order to be sure that bone and ligaments have
adjusted, and hopefully keep injuries away.
On the bike front, the only significant thing was that I did as well
the Zwift
Canyon Ultimate Pretzel Mission,
on the last day of the contest (today): 73.5Km in total, 3h:27m. I've
done 60K rides on Zwift before, so the first 60K were OK, but the last
~5K were really hard. Legs felt like logs of wood, I was only
pushing very weak output by the end although I did hydrate and fuel up
during the ride. But, I was proud of the fact that on the last sprint
(about 2K before the end of the ride), I had ~34s, compared to my
all-time best of 29.2s. Was not bad after ~3h20m of riding and 1300
virtual meters of ascent. Strava also tells me I got 31 PRs on various
segments, but that's because I rode on some parts of Watopia that I
never rode before (mostly the reverse ones).
Overall, stats for this week: ~160Km in total (virtual and real,
biking and running), ~9 hours spent doing sports. Still much lower
than the amount of time I was playing computer games, so it's a net
win
Have a nice start of the week everyone, and keep doing what moves you
forward!
I think it's time to renew tradition of photography posts on this blog. I will start with pictures taken few weeks ago on Troja bridge, which is the newest bridge over the Vltava river in Prague.
Filed under: Debian English Photography 0 comments
I was reviewing changes for indic-trans as part of GSoC 2016. The
module is an improvisation for our original transliteration module
which was doing its job by substitution.
This new module uses machine learning of some sort and utilizes
Cython, numpy and scipy. Student had kept pre-compiled shared
library in the git tree to make sure it builds and passes the
test. But this was not correct way. I started looking at way to build
these files and remove it from the code base.
There is a cython documentation for distutils but
none for setuptools. Probably it is similar to other Python extension
integration into setuptools, but this was first time for me so after a
bit of searching and trial and error below is what I did.
We need to use Extensions class from setuptools and give it path to
modules we want to build. In my case beamsearch and viterbi are 2
modules. So I added following lines to setup.py
from setuptools.extension import Extension
from Cython.Build import cythonize
extensions = [
Extension(
"indictrans._decode.beamsearch",
[
"indictrans/_decode/beamsearch.pyx"
],
include_dirs=[numpy.get_include()]
),
Extension(
"indictrans._decode.viterbi",
[
"indictrans/_decode/viterbi.pyx"
],
include_dirs=[numpy.get_include()]
)
]
setup(
setup_requires=['pbr'],
pbr=True,
ext_modules=cythonize(extensions)
)
#!/usr/bin/env python
from setuptools import setup
from setuptools.extension import Extension
from Cython.Build import cythonize
import numpy
extensions = [
Extension(
"indictrans._decode.beamsearch",
[
"indictrans/_decode/beamsearch.pyx"
],
include_dirs=[numpy.get_include()]
),
Extension(
"indictrans._decode.viterbi",
[
"indictrans/_decode/viterbi.pyx"
],
include_dirs=[numpy.get_include()]
)
]
setup(
setup_requires=['pbr'],
pbr=True,
ext_modules=cythonize(extensions)
)
python setup.py build_ext
travis:
[ ! -d .testrepository ] \
find .testrepository -name "times.dbm*" -delete
python setup.py build_ext -i
python setup.py test --coverage \
--coverage-package-name=indictrans
flake8 --max-complexity 10 indictrans
This isn't actually answering the question, but it's close. It's also horrible, so whoever adopts
Enrico's script should also
completely rewrite this or burn it along with the stack of pizza boxes and the grand piano.
Input:
#!/bin/zsh
set -e
PATHS=$(tempfile)
NEWKEYS=$(tempfile)
NEWKEYRING=$(tempfile)
FARTHEST_TEN=$(tempfile)
trap "rm -f $ PATHS $ NEWKEYS $ NEWKEYRING $ FARTHEST_TEN " EXIT
keyring=$ 1:-ksp-dc16.gpg
myfpr=$ 2:-2100A32C46F895AF3A08783AF6D3495BB0AE9A02
#keyserver=$ 3:-http://pool.sks-keyservers.net:11371/
# this doesn't handle hokey fetch failures
#(for fpr in $(hkt list --keyring $ keyring --output-format JSON jq '.[].publickey.fpr')
#do
# hokey fetch --keyserver "$ keyserver " --validation-method MatchPrimaryKeyFingerprint "$ (Q)fpr "
#done) >$ NEWKEYS
#
#gpg2 --no-default-keyring --keyring $ NEWKEYRING --import $ NEWKEYS
cp "$ keyring " "$ NEWKEYRING "
gpg2 --no-default-keyring --keyring $ NEWKEYRING --refresh
hkt findpaths --keyring $ NEWKEYRING '' '' '' > $ PATHS
id=$(awk -F, "/$ myfpr )\$/ sub(/\(/,BLANKY,\$1);print \$1; " $ PATHS )
grep -e ",\[$ id ," -e ",$ id \]" $ PATHS sort -n tail -n 10 > $ FARTHEST_TEN
targetids=($ (f)"$ $((sed 's/^.*\[//;s/,.*$//;' $ FARTHEST_TEN ; sed 's/\])$//;s/.*,//;' $ FARTHEST_TEN ) sort -n -u grep -v "^$ id $") " )
targetfprs=($(for i in $ targetids ; do awk -F, "/\($ i ,[^[]/ sub(/\)/,BLANKY,\$2); print \$2 " $ PATHS ; done))
gpg2 --no-default-keyring --keyring $ NEWKEYRING --list-keys $ targetfprs
Output:
pub rsa4096/0x664F1238AA8F138A 2015-07-14 [SC]
Key fingerprint = 3575 0B8F B6EF 95FF 16B8 EBC0 664F 1238 AA8F 138A
uid [ unknown] Daniel Lange <dl.ml1@usrlocal.de>
sub rsa4096/0x03BEE1C11DB1954B 2015-07-14 [E]
pub rsa4096/0xDF23DA3396978EB3 2014-09-05 [SC]
Key fingerprint = BBBC 58B4 5994 CF9C CC56 BCDA DF23 DA33 9697 8EB3
uid [ undef ] Michael Meskes <michael@fam-meskes.de>
uid [ undef ] Michael Meskes <meskes@postgresql.org>
uid [ undef ] Michael Meskes <michael.meskes@credativ.com>
uid [ undef ] Michael Meskes <meskes@debian.org>
sub rsa4096/0x85C3AFFECF0BF9B5 2014-09-05 [E]
sub rsa4096/0x35D857C0BBCB3B25 2014-11-04 [S]
pub rsa4096/0x1E953E27D4311E58 2009-07-12 [SC]
Key fingerprint = C2FE 4BD2 71C1 39B8 6C53 3E46 1E95 3E27 D431 1E58
uid [ undef ] Chris Lamb <chris@chris-lamb.co.uk>
uid [ undef ] Chris Lamb <lamby@gnu.org>
uid [ undef ] Chris Lamb <lamby@debian.org>
sub rsa4096/0x72B3DBA98575B3F2 2009-07-12 [E]
pub rsa4096/0xDF6D76C44D696F6B 2014-08-15 [SC] [expires: 2017-06-03]
Key fingerprint = 1A6F 3E63 9A44 67E8 C347 6525 DF6D 76C4 4D69 6F6B
uid [ unknown] Sven Bartscher <sven.bartscher@weltraumschlangen.de>
uid [ unknown] Sven Bartscher <svenbartscher@yahoo.de>
uid [ unknown] Sven Bartscher <kritzefitz@debian.org>
sub rsa4096/0x9E83B071ED764C3A 2014-08-15 [E]
sub rsa4096/0xAEB25323217028C2 2016-06-14 [S]
pub rsa4096/0x83E33BD7D4DD4CA1 2015-11-12 [SC] [expires: 2017-11-11]
Key fingerprint = 0B5A 33B8 A26D 6010 9C50 9C6C 83E3 3BD7 D4DD 4CA1
uid [ unknown] Jerome Charaoui <jerome@riseup.net>
sub rsa4096/0x6614611FBD6366E7 2015-11-12 [E]
sub rsa4096/0xDB17405204ECB364 2015-11-12 [A] [expires: 2017-11-11]
pub rsa4096/0xF823A2729883C97C 2014-08-26 [SC]
Key fingerprint = 8ED6 C3F8 BAC9 DB7F C130 A870 F823 A272 9883 C97C
uid [ unknown] Lucas Kanashiro <kanashiro@debian.org>
uid [ unknown] Lucas Kanashiro <kanashiro.duarte@gmail.com>
sub rsa4096/0xEE6E5D1A9C2F5EA6 2014-08-26 [E]
pub rsa4096/0x2EC0FFB3B7301B1F 2014-08-29 [SC] [expires: 2017-04-06]
Key fingerprint = 76A2 8E42 C981 1D91 E88F BA5E 2EC0 FFB3 B730 1B1F
uid [ unknown] Niko Tyni <ntyni@debian.org>
uid [ unknown] Niko Tyni <ntyni@cc.helsinki.fi>
uid [ unknown] Niko Tyni <ntyni@iki.fi>
sub rsa4096/0x129086C411868FD0 2014-08-29 [E] [expires: 2017-04-06]
pub rsa4096/0xAA761F51CC10C92A 2016-06-20 [SC] [expires: 2018-06-20]
Key fingerprint = C9DE 2EA8 93EE 4C86 BE73 973A AA76 1F51 CC10 C92A
uid [ unknown] Roger Shimizu <rogershimizu@gmail.com>
sub rsa4096/0x2C2EE1D5DBE7B292 2016-06-20 [E] [expires: 2018-06-20]
sub rsa4096/0x05C7FD79DD03C4BB 2016-06-20 [S] [expires: 2016-09-18]
Note that this completely neglects potential victims who are
unconnected within the KSP set.
systemctl daemon-reload wrt buildd service changes.
Automate updating some extension lists from check-all-the-things.
Reported wishlist Debian bug #828128 against debsources.
Engage lizard mode! Wish for better display technology.
Nice vegetarian food with nice folks and
interesting discussions with interesting locals.
Polish and release check-all-the-things.
Close bugs I forgot to close in the changelog.
Add link to debian-boot on Debootstrap wiki page.
Notice first mockup of a theme for Debian stretch.
Answer a question about package naming on #debian-mentors.
Discuss the future of cross compilation on Debian.
Notice a talk about FOSSology & update a wiki page.
Mention AsteroidOS and MaruOS on the mobile wiki page.
Contemplate how close to the FSDG Debian might be
and approaches to improving that.
I've written retrospectively about pristine-tar before,
when I stopped maintaining it.
So, I'll quote part of that here:
[...] a little bit about the reason I wrote pristine-tar in the
first place. There were two reasons:
1. I was once in a talk where someone mentioned that Ubuntu had/was
developing something that involved regenerating orig tarballs
from version control.
I asked the obvious question: How could that possibly be done
technically?
The (slightly hung over) presenter did not have a satesfactory
response, so my curiosity was piqued to find a way to do it.
(I later heard that Ubuntu has been using pristine-tar..)
2. Sometimes code can be subversive. It can change people's perspective
on a topic, nudging discourse in a different direction. It can even
point out absurdities in the way things are done. I may or may not
have accomplished the subversive part of my goals with pristine-tar.
Code can also escape its original intention. Many current uses of
pristine-tar fall into that category. So it seems likely that some
people will want it to continue to work even if it's met the two goals
above already.
For me, the best part of building pristine-tar was finding an
answer to the question "How could that possibly be done technically?"
It was also pretty cool to be able to use every tarball in Debian as the test
suite for pristine-tar.
I'm afraid I kind of left Debian in the lurch when I stopped maintaining
pristine-tar.
"Debian has probably hundreds, if not thousands of git repositories using
pristine-tar. We all rely now on an unmaintained, orphaned, and buggy piece
of software." -- Norbert Preining
So I was relieved when it finally got a new maintainer just recently.
Still, I don't expect I'll ever use pristine-tar again. It's the only
software I've built in the past ten years that I can say that about.
Next: twenty years of free software -- part 6 moreutils
About one month has passed since we did release TeX Live 2016, and more than a month since the last Debian packages, so it is high time to ship out a new checkout of upstream. Nothing spectacular new here, just lots and lots of updates since the freeze.
I am dedicating this release to those intelligent beings who voted against the stupid Brexit and for remaining in the EC! I am still optimist!
New packages
aucklandthesis, autobreak, cquthesis, getargs, hustthesis, ietfbibs, linop, markdown, olsak-misc, optidef, sanitize-umlaut, umbclegislation, wordcount, xcntperchap.
Updated packages
academicons, achemso, acmart, acro, animate, apa6, arabluatex, archaeologie, babel-hungarian, beamertheme-epyt, beebe, biblatex-abnt, biblatex-anonymous, biblatex-bookinother, biblatex-caspervector, biblatex-chicago, biblatex-manuscripts-philology, biblatex-morenames, biblatex-opcit-booktitle, biblatex-philosophy, biblatex-realauthor, biblatex-source-division, biblatex-subseries, bidi, bookcover, bxjscls, caption, chemformula, chemmacros, circuitikz, cloze, cochineal, context, csplain, cstex, datetime2, denisbdoc, dvipdfmx-def, epstopdf, erewhon, exsol, fbb, fibeamer, fithesis, fontawesome, fontspec, fonts-tlwg, geschichtsfrkl, getmap, glossaries, glossaries-extra, graphics, graphics-cfg, gregoriotex, gzt, he-she, hook-pre-commit-pkg, hyperref, ifluatex, keyvaltable, koma-script, l3build, latex, latex-bin, limap, lollipop, lshort-chinese, luaotfload, luatex85, luatex-def, luatexja, lua-visual-debug, marginnote, mcf2graph, media9, minted, mptopdf, msu-thesis, musixtex, navigator, nwejm, oberdiek, patchcmd, pdfcomment, pdftex-def, pdfx, pkuthss, platex, pstricks, ptex, ptex2pdf, ptex-base, ptex-ng, reledmac, repere, scheme-xml, sduthesis, showlabels, tableaux, tcolorbox, tex4ht, texinfo, texlive-scripts, tex-overview, textpos, tools, translations, tudscr, unicode-data, uplatex, uptex, xassoccnt, xcharter, xetex, xindy, yathesis, ycbook.
Enjoy.
Hi readers,
Here comes my journey till the mid-term (June 21st) as a blog to share my experience.
I have previously worked on some social related projects such as smart guidance for blind and sensor based wireless controller . I have been selected as a speaker for FOSSASIA-16 (Asia s premier technological event)to talk on the project smart guidance for blind .FOSSASIA speakers. It was a great experience participating in the technological event in Singapore science centre.Got an opportunity to meet open source contributors from all over the world(even though it is an Asian event, participation was all over from the world). There were pre-meetups for FOSSASIA on the day before three-day event.I have attended the one organised by RedHat, Singapore.Discussed on many topics related to open source.
Three days of FOSSASIA event was a great experience.It was the second time as a speaker in an international conference.My talk was on the second day.Sharing is the best way to increase your knowledge. Talks and workshops were brainstorming.Learnt many new things and got the courage to contribute to the open source.Met Daniel Pocock in Debian exhibition table.Meeting awesome people can be the turning point of life.Had a discussion about the Debian projects and it motivated me for open source software.We have discussed about the Real Time Communication and was encouraged to apply for GSoC (Google Summer of Code). As per our discussion, prepared the project proposal on improving voice,video and chat communication with free software and submitted it for GSoC. I have been selected to contribute for Debian with stipend from Google.
This was my first application for GSoC and I have been selected to contribute for open source and free software. I would like to thank Google and Debian for giving this amazing experience.
Learning and coding have begun.Updated my laptop with Jessie, latest version of Debian.Get acquainted with the new platform.Got to learn many things about Real Time Communication.Learnt more about SIP, XMPP, peer-to-peer technology to work on my project.It s always better to be clear with theory before coding.When it comes to voice and video over IP, most people nowadays are quick to use Skype, Whatsapp, or Viber. My main goals of the project are helping people to avoid using proprietary communications tools like Skype, Viber and WhatsApp and simplifying the setup of free alternatives like Jitsi, Linphone, Ekiga, Tox (qtox), Mumble.Downloaded some of the already available open source VoIP to find the problems behind it and improve it further.Bootstrapping any business relevant network based on these free alternatives is still hard.
Would you like to list the senders, receivers and date of the messages in the inbox of your mail.Python has a library file IMAP which can be used to connect to an email account, examine every message in every folder and look at the To , From and CC headers of every email message in the folder.
Do you have phone numbers and other contact details in old emails? Would you like a quick way to data-mine your inbox to find them and help migrate them to your address book? Got the help from phonenumbers library for parsing, formatting, and validating international phone numbers.I would like to share how I imported this library file into my coding.Download the given library file and open the file in the terminal.Type
$ python setup.py install
to install the library file.Now you can call the functions by importing phonenumbers.
You can go through the code in my GitHub profile here.(Recently started committing my projects in GitHub)
Iain R. Learmonth joined my journey as a mentor.Helped in solving some issues in my coding through GitHub.
It was a wonderful journey till now.Will be working further to improve voice, video and chat communication with free software.Stay connected to know more about my further journey through GSoC.
Every now and again I get this problem where Firefox won t render text correctly (on a Debian/stretch system). Most websites are fine, but the odd site just shows up with blanks where the text should be. Initially I thought it was NoScript, but turning that off didn t help. Daniel Silverstone gave me a pointer today that the pages in question were using webfonts, and that provided enough information to dig deeper. The sites in question were using Cantarell, via:
src: local('Cantarell Regular'), local('Cantarell-Regular'), url(cantarell.woff2) format('woff2'), url(cantarell.woff) format('woff');
fonts-cantarell installed so at first I tried to remove it, but that breaks gnome-core. So instead I did an fc-list grep -i cant to ask fontconfig what it thought was happening. That gave:
/usr/share/fonts/opentype/cantarell/Cantarell-Regular.otf.dpkg-tmp: Cantarell:style=Regular
/usr/share/fonts/opentype/cantarell/Cantarell-Bold.otf.dpkg-tmp: Cantarell:style=Bold
/usr/share/fonts/opentype/cantarell/Cantarell-Bold.otf: Cantarell:style=Bold
/usr/share/fonts/opentype/cantarell/Cantarell-Oblique.otf: Cantarell:style=Oblique
/usr/share/fonts/opentype/cantarell/Cantarell-Regular.otf: Cantarell:style=Regular
/usr/share/fonts/opentype/cantarell/Cantarell-Bold-Oblique.otf: Cantarell:style=Bold-Oblique
/usr/share/fonts/opentype/cantarell/Cantarell-Oblique.otf.dpkg-tmp: Cantarell:style=Oblique
/usr/share/fonts/opentype/cantarell/Cantarell-BoldOblique.otf: Cantarell:style=BoldOblique
.dpkg-tmp files looked odd, and sure enough they didn t actually exist. So I did a sudo fc-cache -f -v to force a rebuild of the font cache and restarted Firefox (it didn t seem to work before doing so) and everything works fine now.
It seems that fc-cache must have been run at some point when dpkg had not yet completed installing an update to the fonts-cantarell package. That seems like a bug - fontconfig should probably ignore .dpkg* files, but equally I wouldn t expect it to be run before dpkg had finished its unpacking stage fully.
ikiwiki-hosting is a spin-off from ikiwiki. I wrote it to manage
many ikiwiki instances for Branchable,
and made it free software out of principle.
While Branchable has not reached the point of providing much income, it's
still running after 6 years. Ikiwiki-hosting makes it pretty easy to
maintain it, and I host all of my websites there.
A couple of other people have also found ikiwiki-hosting useful, which is
not only nice, but led to some big improvements to it. Mostly though,
releasing the software behind the business as free software caused us to
avoid shortcuts and build things well.
Next: twenty years of free software -- part 5 pristine-tar

#Randa2016 KDE Sprint
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825322Both kde4libs and kf5 kconfig has been pushed upstream kde. kxmlgui:
For this I was able to come up with a patch for kconfig_compiler to encode generated files to utf-8.
Review request is here:
https://git.reviewboard.kde.org/r/128102/
This has been approved and I will be pushing it as soon as I patch the qt5 frameworks version.
WIP this has been a steep learning curve, according to the notes it was an easy embedded kernel version, that was not the case! After grueling hours ofI am still fighting with this one, will set aside to simmer for now, as I have no idea how to fix padding issues. extra-cmake-modules:
trying to sort out randomness in debug output I finally narrowed it down to cases where QStringLiteral was used and there were non letter characters eg. ( <") These were causing debug symbols to generate with ( lambda() ) which caused unreproducible symbol/debug files. It is now a case of fixing all of these in the code to use QString::fromUtf8 seems to fix this. I am working on a mega patch for upstream and it should be ready early in the week. This last week I spent a large portion making my through a mega patch for kxmlgui, when it was suggested to me to write a small qt app to test QStringLiteral isolated and sure enough two build were byte for byte identical. So this means that QStringLiteral may not be the issue at all. With some more assistance I am to expand my test app with several QStringLiterals of varying lengths, we have suspicion it is a padding issue, which complicates things.
.buildinfo files are given but I needed diffoscope outputs for .changes files. Hence, I had to build packages locally using our experimental tool chain. My goal was to generate different outputs and to see how I can hide .buildinfo files from .changes..buildinfo files when comparing .changes files, we finally decided to enable this by default and without having any command line option to hide..changes and .buildinfo files. After getting guidelines from Lunar I was able to understand the need of this feature. I am in the middle of implementation of this particular problem.hiding .buildinfo from .changesNext.