foss-gbg goes foss-north

As some of you might know, I run a group that meet and learn new stuff about foss every month – foss-gbg. Today it’s official that this summer foss-gbg goes foss-north and it is going to be awesome. So I welcome you all to the wonderful city of Gothenburg to a day filled with talks on a wide variety of topics around free and open source technology. It is going to be awesome!

banner-600

Vacation 2015

IMG_20150703_172538So, vacation has finally arrived in 2015. To the despair of some, and joy of others, the Swedish standard vacation is 3-5 weeks over the summer. I’ll be having five weeks of this year.

So, what do you do with five weeks? Generally, I start out ambitious and end up in reality after 3-4 weeks and then scramble to get something done. Here is my list for the summer 2015:

  • Hang out with the kids and wife and do fun stuff.
  • Do some work around the house (a shed for our bikes and some general painting are on the wish list).
  • Get the calendar for foss-gbg into place. It does look as if we will have an awesome autumn.
  • Work on a whole bunch of little Yocto projects that I’ve been planning for a while (meta-kf5 being one of the high priority ones, playing with various targets such as the Raspberry Pi 2, Beagle Bone Black and more another).
  • Getting my 3D printer back into shape and do something fun with it (if it rains a lot)

That summarizes my ambition pretty much – but first things first – lets spend a few days hanging out with the kids before they grow tired of me and think that I’m old and boring :-)

Ardour 4 on Debian Jessie

The Ardour project just announced version four of the digital audio workstation. Debian carries version 3, so I decided to build version 4 myself. Here is a summary from what I learned.

First of all, the Ardour people have written a building page and a list of dependencies. The do carry a set of patches towards some of the packages. These seems to be more or less small fixes, apart from the libsndfile that has a bug fix for handling BWF files.

In addition to the patches libs, the requirements list a whole range of gtk and corresponding -mm packages as well as boost, and varous codecs and such. I decided not to care too much about versions for these packages. Instead, I just took whatever I could find in Debian. The packages installed are:

  • libsndfile1-dev
  • libgnomecanvas2-dev
  • libsigc++-2.0-dev
  • libcairo2-dev
  • liblrdf0-dev
  • libfreetype6-dev
  • libboost1.55-all-dev
  • libfftw3-dev
  • libglibmm-2.4-dev
  • libcairomm-1.0-dev
  • libpangomm-1.4-dev
  • libatkmm-1.6-dev
  • libart2.0-cil-dev
  • libgnomecanvasmm-2.6-dev
  • liblo-dev
  • libraptor2-dev
  • librasqal3-dev
  • libogg-dev
  • libflac-dev
  • libvorbis-dev
  • libsamplerate0-dev
  • libaudio-dev
  • liblv2dynparam1-dev
  • libserd-dev
  • libsord-dev
  • libsratom-dev
  • liblilv-dev
  • libsuil-dev
  • librubberband-dev
  • vamp-plugin-sdk
  • libaubio-dev
  • libjack-dev
  • liblilv-dev

Then it is just a matter of configuring using waf.

./waf configure --with-backend=alsa --prefix=/wherever/you/want/it
make
./waf install

My plan is to use ALSA (i.e. not JACK) and installing libjack-dev meant that Skype got kicked out, so the system needed some love to restore the order.

apt-get autoremove
apt-get remove libjack-dev
apt-get remove libjack0
dpkg --install skype-debian_4.3.0.37-1_i386.deb
apt-get install -f

Despite this little hack, Ardour seems to work nicely and record and play back. I still need to test out some more features to see if everything is in place, but it looks hopeful.

Update! As pointed out in the comments, Debian not only carries a really old version but also version 3.

Saving code

As you probably know by now, Gitorious is shutting down. A lot of history sits on that site, and much of the code is no longer maintained. Browsing around, I ran into the maemo-tools that has not been touched since 2013. There are still some useful stuff there, so I decided to save it. All tool repositories has been cloned to the maemo-tools-old organization on github.

As I’m only a happy user, I would love to invite the original maintainers, or other interested developers to come work on it, so if you want an invite to the organization so that you can maintain the code, just drop me a mail at e8johan, gmail, com.

foss-gbg on 3D printers

On Monday, 30/3, the foss-gbg group will meet and hack on 3D printers. Invitation in Swedish – tickets are free.

Välkomna på foss-gbg hackafton!

Vi träffas klockan 17:00 den 30/3 och lär oss om 3D-skrivare.

Vi får besök av Göran Frykberg som kör en 3dhub i Mölndal. Han kommer att snacka om printerteknologier och material. Han kommer även att visa lite bruksprodukter och visa varför 3D-skrivare är här för att stanna.

Vid åttasnåret drar vi vidare och umgås över en öl.

Pelagicore står för lokaler och bjuder på lättare tilltugg under tillställningen.

Gratis biljetter hittar ni på eventbrite . Antalet platser är begränsade, så först till kvarn gäller!

Välkomna!

Göran Frykberg, Johan Thelin och Mikael Söderberg

Python and me

I like Python, but I’d love it if it had support for types – even if one of them was a generic duck-typed object or variant.

x = {}
k = "potential key"
v = MyValue() # Clearly not a key
 
if v in x:
  pass # Always fails silently
 

I apparently live and learn.

Update! Apparently I’m stupid while summarizing the error (always copy, never recall). I did not use k in the if statement, rather, I used v which is not a key. This is a programmer error. However, Python does not tell me so, it just does what it asks it to do, i.e. tell me if the not-a-key is a key.

Thanks to Ralk for pointing this out.

QmlBook Making Progress

It has been a long time since the last update of QmlBook was announced – but the project is definitely live and kicking. Jürgen has put in a lot of great work into the contents and gotten the collaborative work over on github started. To simplify the publication, the contents has been moved to github hosting, but you can still use the old qmlbook.org (and qmlbook.com) addresses to get there.

qmlbook-screenshotThe reason for the standstill on the qmlbook.org/com sites, and much of the perceived lack of progress is due to my personal time situation. Small children and family life takes time, as does my work (which is awesome and includes Qt/QML – go Pelagicore). Unfortunately, I’m a bit of an optimist, so I want to, and truly believe that I will have time to work on side projects such as this book. But the 24h/day limit sucks, so sometimes I realize that I fail to do so.

However, this is not a post where I complain over my own situation – instead – I want to thank all the contributors who keep feeding us issue tickets via github! I would also like to thank our readers – it is great to hear from you! And finally, I’d like to thank Jürgen who has put down a lot of work and kept the project moving forward.

It is not my intention to leave this project, I’m just short on time at the moment due to other awesome things in my life (kids, wife, work) – I’ll be back!

Plex and Chromecast

It seems that everyone has their little magic transcoding line for having Plex and Chromecast to play nice, as everyone runs an underpowered server that cannot do live transcoding. My line follows here:

ffmpeg -i big_buck_bunny_720p_surround.avi -c:v libx264 -profile:v high -level 4.2 -crf 18 -maxrate 10M -bufsize 16M -pix_fmt yuv420p -vf "scale=iw*sar:ih, scale='if(gt(iw,ih),min(1920,iw),-1)':'if(gt(iw,ih),-1,min(1080,ih))'" -x264opts bframes=3:cabac=1 -movflags faststart -c:a libfdk_aac -b:a 320k -ac 2 -y big_buck_bunny_720p_stereo.mp4

The key points here are:

  • h.264 for video.
  • AAC for audio, I use stereo as I don’t use the Chromecast for my 5.1 setup.
  • Name the output *.mp4 to get an mp4 container.
  • -movflags faststart to “optimize for streaming”.

There are a number of similar magic lines floating around on the web, including on the plex forum. There is no way to tell which is the original, so I’ll let everyone Google around instead of explicitly giving credit to the thread I found first.

Some comments from my side:

  • Despite the Chromecast docs claiming to support h.264 level 5, the Chromecast.xml shipped with Plex limits the level to 4.2. Beware. This cost me an evening of transcoding.
  • ffmpeg has its own expression language with
    if, gt and min. Bloody amazing. I wonder if it does email.

Also, I learned that Big Buck Bunny consists of 14315 frames…

Hacking in Gothenburg

I just wanted to mention that foss-gbg has started again after the summer break. If you’re in the vicinity of Gothenburg October 28, you are welcome to learn about open hardware and security. Get your free tickets from eventbrite.