Using Linux notebook as an alarm clock
New and improved Inqlude web site
All libraries have additional meta data now to group them by a number of curated topics. You can see the topics in the navigation bar on the left and use them to navigate Inqlude by categories. The listing shows more information on first view, such as the supported platforms, to make it easier to find libraries according to your criteria without having to navigate between different pages. The presentation in general is cleaner now, and some usability testing has shown that the page works better now than before. In addition to the visible changes, Nanduni has also done quite a bit of improvements under the hood, including better automated testing. I'm proud of what we have achieved there.
It always has been a privilege for me to act as mentor as part of Google's Summer of Code or other programs. This is one of the most rewarding parts of working in free software communities, to see how new people learn and grow, especially if they decide to stay involved after the program has ended and become valuable members of the community for the long term. Being able to help with that I feel is one of the most satisfying investments of your time in the community.
OpenStack Summit Boston 2017 Presentation Votes (ends Feb.
OpenStack Summit Boston 2017 Presentation Votes (ends Feb. 21st, 2017 at 11:59pm PST)
I have submitted a handful of sessions which I hope will be voted for. Below are some short summary's and links to their voting pages.
Avoid the storm! Tips on deploying the Enterprise Cloud
The primary driver for enterprise organizations choosing to deploy a private cloud is to enable on-demand access to the resources that the business needs to respond to market opportunities. But business agility requires availability...
https://www.openstack.org/summit/austin-2016/vote-for-speakers/#/18317
Data center modernization and consolidation is the continuous optimization and enhancement of existing data center infrastructure, enabling better support for mission-critical and Mode 1 applications. The companion Key Initiative, "Infrastructure Agility" focuses on Mode 2...
https://www.openstack.org/summit/austin-2016/vote-for-speakers/#/18403
It doesn't matter where your at with your implementation of Microservices, but you do need to understand some key fundamentals when it comes to designing and properly deploying on OpenStack. If your just starting out then you will need to learn some key things such as the common characteristics, monolithic vs microservice, componetization, decentralized governance, to name a few. In this session you'll learn some of these basics and where to start...
https://www.openstack.org/summit/austin-2016/vote-for-speakers/#/18336Thanks for your support.
-CS
X220 to play with
I tried 4.10 there, and got two nasty messages during bootup. Am I the last one running 32 bit kernels?
I was hoping to get three-monitor configuration on my desk, but apparently X220 can not do that. xrandr reports 8 outputs (!), but it physically only has 3: LVDS, displayport and VGA. Unfortunately, it seems to only have 2 CRTCs, so only 2 outputs can be active at a time. Is there a way around that?
Downtime explanation and how to get up and running again
Back to business... with a short explanation of the downtime and how the problems have been fixed.
Hello everybody!
This is my first post in 2017 and therefore let's begin with a much delayed 'Happy new year, everybody!' and all the best wishes for you in 2017!
But let's get back to business directly:
Downtime
Some of you might have recognized that we had a downtime of the crowbyte blog and website. First of all I am sorry for any inconvenience you might have had through the downtime....
Downtime Erklärung und wie man das Problem löst
Back to business... mit einer kurzen Erklärung der Downtime und wie die Probleme gelöst wurden.
Hallo, liebe Leser!
Dies ist mein erster Post 2017 und daher lasst uns mit einem sehr verspäteten 'Frohes neues Jahr!' und den besten Wünschen für 2017 beginnen
Aber kommen wir direkt zum Geschäft zurück:
Downtime
Einigen wird es nicht entgangen sein, dass der Blog und die Webseite von crowbyte eine weile offline war. Zunächst einmal entschuldige ich mich für alle eventuell aufgetretenen Un...
OpenStack Summit Boston: Vote for Presentations
The next OpenStack Summit takes place in Boston, MA (USA) in May (8.-11.05.2017). The "Vote for Presentations" period started already. All proposals are now again up for community votes. The period will end February 21th at 11:59pm PST (February 22th at 8:59am CEST).- Next Generation Hardware for Software Defined Storage - Software Defined Storage like Ceph has changed the storage market dramatically in the last few years. While software has changed, storage hardware stayed basically the same: commodity servers connected to JBODs utilizing SAS/SATA devices. The next step must be a revolution in the hardware too. At the Austin summit the Ceph community presented a 4 PB Ceph cluster comprised of WDLabs Converged Microservers. Each Microserver is built by starting with an HGST HE8 HDD platform and adding an ARM and DDR running Linux on the drives itself. WDLabs provided access to early production devices for key customers such as Deutsche Telekom for adoption and feedback. This talk will provide insight into our findings running a Ceph cluster on this platform as a storage provider to OpenStack.
Fun things to do with driver updates
Today: update the update process!
Yesterday a colleague asked me if it would be possible to apply a driver update (DUD) to the rescue system. He wanted to use a new btrfsprogs package.
My immediate reaction was: no, you can’t do it. But then, there’s no technical reason why it shouldn’t be possible – it actually nearly works. The updates are downloaded as usual – just not applied to the rescue system.
So I thought: “Why not make a driver update so driver updates work also for the rescue system?”
Here’s how I did it.
First, let’s find out how driver updates are usually applied. The code is here:
https://github.com/openSUSE/installation-images/blob/master/data/root/etc/inst_setup#L84-L87
We need just these three lines:
for i in /update/[0-9]*/inst-sys ; do [ -d "$i" ] && adddir "$i" / done
linuxrc downloads the driver updates and stores them in an /update directory. One (numbered) subdirectory for each update.
It obviously uses some adddir script. So we’ll need it as well. Luckily, it’s not far away:
https://github.com/openSUSE/installation-images/blob/master/data/root/etc/adddir
Next, we’ll have to find the spot where the rescue system is set up. It’s done in this script:
https://github.com/openSUSE/installation-images/blob/master/data/initrd/scripts/prepare_rescue
Let’s do some copy-and-paste programming and insert the above code near the end of the script. It then might look like this
# driver update: add files to rescue system
if [ -d /mounts/initrd/update ] ; then
cp -r /mounts/initrd/update /
for i in /update/[0-9]*/inst-sys ; do
[ -d "$i" ] && /mounts/initrd/scripts/adddir "$i" /
done
fi
Some notes:
- You have to know that
prepare_rescueis run as the last thing before we exec toinit. So everything is already in place, the left-over files from initrd are mounted at/mounts/initrdand will be removed at the end of the script. - This means we have to copy our updates into the new root directory, else they will be lost.
- Also, we plan to make the
adddirscript available at/scripts/adddirby our driver update (see below).
Now let’s create the driver update:
mkdud --create dud_for_rescue.dud \ --dist tw --dist leap42.1 --dist leap42.2 --dist sle12 \ --name 'Apply DUD also to rescue system' \ --exec 'cp adddir prepare_rescue /scripts' \ adddir prepare_rescue
Here’s what this call does, line-by-line:
- the fix works for all current SUSE distributions, so let’s support them
- give the driver update some nice name
- this command is run right after the driver update got loaded; we copy the scripts out of the driver update to their final location
- add
adddirand our modifiedprepare_rescuescript
Here is the result: dud_for_rescue.dud.
Now, back to the original problem: how to use this to update a package in the rescue system? That’s easy:
mkdud --create new_btrfs.dud \ --dist sle12 \ dud_for_rescue.dud btrfsprogs.rpm
creates a driver update (for SLE12) that updates btrfsprogs also in the rescue system.
Text to Speech with eSpeak and Epos
A humanoid robot should be able to talk. So I looked around for some open source speech synthesis software.
(The above video does feature a talking robot (and a multilingual dolphin) but that's where similarities with the following content end.)
eSpeak
Hello world:
espeak 'Hello, world!'
Standard input works too:
espeak <<EOS
A robot may not injure a human being or, through inaction,
allow a human being to come to harm.
EOS
I need the robot to speak Czech too:
espeak -v cs 'Dobrý den!'
Chinese also seems to work, at least to my beginner ear:
espeak -v zh '认识你很高兴'
# The same in pinyin
espeak -v zh 'ren4shi ni3 hen3 gao1xing4'
To put the words to the robot's mouth we first need to save the sound to a file:
espeak -w dobry-den.wav -v cs 'Dobrý den!' # 16 bit, mono 22050 Hz
Now a thing that is not so useful for the robot, but a cool diversion. This tells eSpeak to be quiet, and transcribe the text in International Phonetic Alphabet.
espeak -q --ipa 'All human beings are born free and equal
in dignity and rights. They are endowed with reason and conscience
and should act towards one another in a spirit of brotherhood.'
ˈɔːl hjˈuːmən bˈiːɪŋz ɑː bˈɔːn fɹˈiː and ˈiːkwəl ɪn dˈɪɡnɪti and ɹˈaɪts
ðeɪ ɑːɹ ɛndˈaʊd wɪð ɹˈiːzən and kˈɒnʃəns and ʃˌʊd ˈakt tʊwˈɔːdz wˈɒn ɐnˈʌðəɹ ɪn ɐ spˈɪɹɪt ɒv bɹˈʌðəhˌʊd
And it also works for Czech:
espeak -q -v cs --ipa 'Všichni lidé rodí se svobodní a sobě rovní
co do důstojnosti a práv. Jsou nadáni rozumem a svědomím
a mají spolu jednat v duchu bratrství.'
fʃˈixɲi lˈideː rˈoɟiː se svˈobodɲiː a sˈobje rˈovɲiː tsˈo do dˈuːstojnˌosci a prˈaːv
jsoʊ nˈadaːɲi rˈozumem a svjˈedomiːm a mˌajiː spˈolu jˈednat v dˈuxu brˈatr̩stviː
epos
The problem with eSpeak is that it sounds quite robotic. I remembered that for Czech, the epos system was much better, also for its availability of better quality downloadable voices.
I installed epos (here as an openSUSE RPM) and downloaded the high quality voices epos-tdp.tgz, then unpacked them to the right place:
cd /usr/share/epos/inv
sudo tar xvf .../epos-tdp.tgz
At first I got no sound but strace showed me a problem with /dev/dsp and a bit of searching turned out that I must run eposd with a dsp wrapper:
padsp eposd $OPTIONS
# eg.
padsp eposd --voice machac
padsp eposd --voice violka
Another quirk is that epos wants the input in ISO Latin 2, so I used iconv:
while read S; do say-epos $(echo "$S" | iconv -f utf8 -t l2); done
For saving the sound to a file, use -w to use a fixed file name ./said.wav, or -o to use stdout:
say-epos -w Ahoj
say-epos -o Ahoj > ahoj.wav
Other systems?
The thing that reminded me of epos was this summary written by a small Czech phone operator.
Have you tried text-to-speech software? Which one sounds the best?
tcpdump of a docker container
You create docker containers and many tools are missing. As an example: tcpdump
So I was looking for a solution for sniffing the traffic from outside of the container. It is recommended to setup an additional (tcpdump) container and to use it with following network connection:
docker pull adamoss/docker-tcpdump
docker run -ti –net=container:${id} adamoss/tcpdump port https or port http
You can specify different ports and save the data in a file. The id is the name of the container and the „–net=container:“ is saying that you want to have input/output traffic of the docker container like the command would be executed on the same system.
The post tcpdump of a docker container first appeared on Sarah Julia Kriesch.