Planet Linux Australia
- I never thought I’d be feeling safer here in Cambodia than back home in Sydney 21:10:44, 2014-12-15
While it sounds like I should really switch to a bookmark-based Mercurial workflow for my Gecko development, I figured that before I do that, I should document how I currently use patch queues and Bitbucket.Starting work on a new bug
After creating a new bug in Bugzilla, I do the following:
- Create a new mozilla-central-mq-BUGNUMBER repo on Bitbucket using the web interface and use https://bugzilla.mozilla.org/show_bug.cgi?id=BUGNUMBER as the description.
- Create a new patch queue: hg qqueue -c BUGNUMBER
- Initialize the patch queue: hg init --mq
- Make some changes.
- Create a new patch: hg qnew -Ue bugBUGNUMBER.patch
- Commit the patch to the mq repo: hg commit --mq -m "Initial version"
- Push the mq repo to Bitbucket: hg push ssh://email@example.com/fmarier/mozilla-central-mq-BUGNUMBER
Make the above URL the default for pull/push by putting this in .hg/patches-BUGNUMBER/.hg/hgrc:[paths] default = https://bitbucket.org/fmarier/mozilla-central-mq-BUGNUMBER default-push = ssh://firstname.lastname@example.org/fmarier/mozilla-central-mq-BUGNUMBER
I like to preserve the history of the work I did on a patch. So once I've got some meaningful changes to commit to my patch queue repo, I do the following:
- Add the changes to the current patch: hg qref
- Check that everything looks fine: hg diff --mq
- Commit the changes to the mq repo: hg commit --mq
- Push the changes to Bitbucket: hg push --mq
Since I have one patch queue per bug, I can easily work on more than one bug at a time without having to clone the repository again and work from a different directory.
Here's how I switch between patch queues:
- Unapply the current queue's patches: hg qpop -a
- Switch to the new queue: hg qqueue BUGNUMBER
- Apply all of the new queue's patches: hg qpush -a
To rebase my patch onto the latest mozilla-central tip, I do the following:
- Unapply patches using hg qpop -a
- Update the branch: hg pull -u
- Reapply the first patch: hg qpush and resolve any conflicts
- Update the patch file in the queue: hg qref
- Repeat steps 3 and 4 for each patch.
- Commit the changes: hg commit --mq -m "Rebase patch"
Of course, feel free to leave a comment if I missed anything useful or if there's a easier way to do any of the above.
I am pleased to announce the linux.conf.au 2015 OpenStack miniconf programme. This will appear on the main conference schedule as well, but I am posting it here so I can provide the talk abstracts as well.09:00 – 10:00 Main conference keynote by Eben Moglen 10:00 – 10:40 …morning tea… 10:40 – 11:00 Welcome by Michael Still
Welcome to the OpenStack miniconf. This talk will outline the plan for the day, and then briefly introduce the various components of OpenStack to be covered for those who haven’t seen them before. 11:00 – 11:30 TBA 11:30 – 11:35 …five minute break… 11:35 – 12:00 Introducing OpenStack Swift by John Dickinson
Swift is the OpenStack object storage system. It’s perfect for unstructured data like backups, server images, documents, and media. Swift is built for scale (including global deployments!) and handles all the placement, durability, and failure conditions so applications don’t have to worry about it. This talk will introduce Swift, as well as covering all the things the Swift PTL wished people knew before they deploy Swift for the first time. 12:00 – 12:20 Juju Deployments at Canonical by Brad Marshall
This talk with cover a brief history of Openstack deployments at Canonical and show how it has changed over time. It will focus on our current deployment methodology using Juju and MaaS, and the HA features we are taking advantage of. 12:20 – 13:20 …lunch… 13:20 – 13:45 Deploying Nova by Michael Still
Nova is one of the most commonly deployed components of OpenStack, as most installs want to provide access to compute resources. This talk by the Nova PTL will cover the various hypervisor options, what instance storage backend might meet your needs, and all those other decisions you need to work through when deploying nova. 13:45 – 14:10 Introducing OpenStack Neutron by Mark McClain
Neutron is the OpenStack networking component. It is responsible for creating tenant networks that separate traffic between tenants, as well as advanced features like load balancing and VPN as a service. Neutron is incredibly flexible, which comes at the cost of some complexity. Join Mark the former Neutron PTL as he walks through the
deployment options available to OpenStack users. 14:10 – 14:15 …five minute break… 14:15 – 14:40 Extending Horizon to work in your Deployment by David Lyle
Horizon out of the box doesn’t fully meet the needs of a running cloud and looks rather generic. Product managers complain that Horizon’s base theme does not meet corporate guidelines and administrators complain that they need more tools to manage the cloud. How does Horizon help solve this?
One of the main tenants of the Horizon program is extensibility. There are several established ways to get custom content into Horizon depending on your goals. External extensions, template customization and custom stylesheets can meet most customization needs.
The talk will present these methods for adding custom content and updating the style, point out the potential pitfalls, and share knowledge as a Horizon developer and a Horizon deployer.
14:40 – 15:00 Handling RabbitMQ Failures Gracefully with HAProxy : Sachi King
Almost all communication between services in OpenStack transverse though a message queue. The current default is RabbitMQ.
The RabbitMQ implementation in OpenStack currently lacks support for both Heartbeats and TCP Keepalive. Without these features, the RabbitMQ clients do not reconnect on failure, thus resulting in a complete API outage.
This talk will cover how we worked around this limitation to allow for graceful recovery on failure with HAProxy. While there are many ways to architect HAProxy in the RabbitMQ path, we’ll touch on what worked, and what did not.
15:00 – 15:40 …afternoon tea… 15:40 – 16:30 Selling Mist: Better Metering Through Ceilometer by Sharif Olorin
Recording usage measurements with high resolution and granularity provides many advantages for both public and private OpenStack deployments. External customers are happier because they know what they’re being billed for. Internal customers are happier because they can receive immediate feedback on efficiency improvements. System
operators are happier because they can diagnose problems more effectively, get woken up less frequently and be more confident about who to cluebat when they do.
Achieving this at scale with Ceilometer is nontrivial without sacrificing either data longevity or resolution. This talk presents one solution to the problem of storing high-resolution metrics from OpenStack over the long term using the Vaultaire time-series datastore. I’ll talk about the architecture of our metering system, a few of the challenges we faced getting this system into production, and what we learned from doing so.
Finally, I’ll talk briefly about the Gnocchi time-series-database-as-a-service project, why I think it’s awesome,
and how we at Anchor intend to integrate it into our OpenStack architecture.
16:30 – 16:35 …five minute break… 16:35 – 17:20 OpenStack Operations for Engineers by Alex Tesch, Daniel Martushev, and Anthony Rees
We will discuss the most popular installation tools for OpenStack based on Puppet and Ansible and the key advantages for each of them, as well as give a quick demo of a PackStack installation in 5 minutes. We will also delve into HEAT and run through a HOT example that will orchestrate a full two tier architecture in 5 minutes. The session will close with a tech preview talk of Sahara and a quick demo to provision a Hadoop cluster in OpenStack.
I got a bit of bonus time to myself in the morning, because Zoe had a late breakfast out with Sarah for her birthday, so I used the time to finish off another unit of my real estate licence course and get it into the mail.
After Sarah dropped Zoe off, she watched a bit of TV before we headed off to the doctor to have another go at freezing off the wart on her hand, and to follow up on the suspected chicken pox.
Zoe's fever had resolved itself, and her spots looked like they were starting to fade. The doctor thought she probably just had a viral rash, and it definitely wasn't chicken pox.
Armed with that good news, I definitely wanted to get out of the house in the afternoon, because Zoe had been watching far too much TV.
Zoe said she wanted to go to the park over at West End, and I wanted to take her into the city in the evening to look at the lights, so I thought a good way to achieve both goals would be to take public transport over to West End and then back to the city.
As the Hawthorne ferry terminal is closed for some upgrades, and I didn't fancy walking home with a tired Zoe from Bulimba late at night, we drove as close to the Bulimba ferry terminal as we could find a park, which was incidentally right next to the Love Street park. Zoe had a bit of a play there, before we walked to the Bulimba ferry terminal and took the cross river over to Teneriffe, and jumped on the CityGlider all the way to the park at West End.
Zoe had a great time playing in the park, which was nice and cool and shady, before we jumped on a CityCat back to the city. We got off at North Quay, and walked down to the Mall and into the Myer Centre to escape the heat.
I'd promised Zoe a bubble tea the next time we were in the Myer Centre, so we went to the bubble tea place and shared one of them.
After that we were just sitting on the Mall taking a break, and Anshu's Mum happened to wander past, so she hung out with us. We went and grabbed some sushi for dinner and then Anshu met up with us.
I wanted to catch the Myer Christmas Parade and Pantomime while we were in there, so we assumed a spot where the parade was due to turn right onto Albert Street and head to King George Square.
The Mall was absolutely packed by the time the parade made it up to where we were, and if Zoe hadn't been on my shoulders she wouldn't have seen anything. I'm glad she got to see though. It was pretty impressive, and even had a Santa sleigh with a couple of deer.
After that we headed over to King George Square with the intention of seeing the Christmas tree get lit up. First we had to sit through the pantomime, which wasn't really worth it. Visibility of the stage was poor, but we sat (or rather stood) through it. Then we had to watch the Gold Lotto City Hall Light Spectacular, which was actually pretty good. All sorts of stuff projected onto City Hall.
That all finished, and everyone started leaving, but the tree still didn't get lit up. Upon enquiry, it seemed that it hadn't survived the most recent storm or something. So that was a bit disappointing.
Anshu and her Mum had headed home during the pantomime, and we headed back to North Quay to get a CityCat back to Bulimba. There was quite a wait. I think the CityCat was running behind schedule or something, and Zoe was getting quite tired and having a bit of a meltdown. Then the fireworks started as a welcome distraction. I didn't even realise there were fireworks scheduled, so that was a pretty cool added bonus.
Zoe fell asleep on the CityCat when I was staring out the window. I had to wake her up when we got to Bulimba, and that didn't go terribly well either, and we had a messy trip back to the car.
We made it back home, and I managed to get Zoe into bed without too much more fuss.
Have been struggling to come up with ideas for establishing myself within the music sector. Have been going through the possibilities and some of the following options look interesting.
When you are ready (have something worthy of selling to the public), submit your work to various music aggregators (and media outlets) for more advertising.
Hook up with relevant social groups to get you some interest.
Other options include the usual web specific blogs.
I've sometimes seen MIDI files being sold online. Who's to say that up and coming artists can't do the same for themselves. Even if you are just a composer or soemthing who's beginining to learn the business you still need to create stems and samples that may be worthy of selling (sample some of the discs from some music magazines) and you'll understand what I mean. Besides, a lot of the time you need composition pieces to be able to audition for music school (if you ever intend to do so). The easiest way that I can think of at the moment to gather interest is to basically, stick the sample on loop and then stick it on YouTube. You can sell it via an online market or else via something like, https://selz.com/
You may need to think about copyright difficulties if you decide to 'cover/copy' from another artist though.
Sell sound samples if you have anything worth sampling.
Sell synthesiser patch sets. Problem is that you often may not be able to sell anything if you don't have any music to be able to advertise your 'wares'. Stick the sample on loop on a group of notes and then run it through a presets at regular intervals to provide a sample of what the customer is being offered on YouTube.
Sell music making templates. Problem is that like a lot of other things there is a huge market to that you need to deal with. It's a bit of a chicken and egg problem here. You need music to have people want to purchase the template?
Another way is to simply make synthesiser software which is easily possible via Reaktor, create sample packs via Kontakt. A lot of the required documentation actually comes with the software to enable you to be able to create.
Have been having significant troubles with regards to running CPU load when running certain software synthesiser VSTs. 'Freezing' seems like the easiest option without having to upgrade hardware.
If you can't figure anything else for the moment try to monetise you're musical journey in the meantime.
Which reminds me there are some interesting options out there for those of you looking to simplify you're blogging environment (if you're running multiple blogs. Note that some of these options are no longer relevant and some services such as Tumblr and YouTube already have such facilities builtin).http://tweetymail.com/
I started the day off with my last yoga class of the year. It was a really nice one.
Zoe still had a bit of a low-grade fever when Sarah dropped her off, but her spots didn't look any worse.
We watched Frosty the Snowman on Netflix, and then had some lunch and popped out to the library to refresh Zoe's library books. After we got home, we watched The Polar Express on QuickFlix.
Zoe then took another longish nap.
After she woke up, she watched a DVD from the library for a bit.
Sarah arrived to pick up Zoe just before the latest storm of the season was about the hit, so they made a hasty departure.
Modems are an interface between theoretical physics and what can actually be built. The laws of physics set the limits of modem performance, and ultimately the amount of power you need for a certain bit error rate at a receiver. With the right algorithm, we can reach the limits of modem performance.
I think that’s kind of cool. There aren’t many fields where we can do the best the Universe can offer with 20th century technology. For example an internal combustion powered car is only about 15% efficient in converting chemical energy into motion. Solar cells on your roof are also about 15% efficient. We can’t do practical nuclear fusion. But 6 billion GSM mobile phones have a modem that is 100% efficient in converting received radio energy into bits. Unless you are my 16 year old son and keeping forgetting to charge it.
This week I’ve been getting my head around GSM modems, and have worked up an Octave simulation of a couple of GMSK modems called gmsk.m. I started with this commonly used, non-coherent algorithm for GSM demodulation:
It has the advantage of being compatible with data-port capable legacy FM radios. However the best I can do in my simulations is 4.5dB away from theoretical. So I went looking for a better (hopefully close to ideal) demodulator. After some reading about MSK and GMSK and several days of confusion I eventually managed to make this “coherent” demodulator work (from the 1981 Murota paper listed below):
The adders on the RHS operate on bits and are implemented as XORs. I don’t fully understand the processing steps, especially the XORs at the end. It’s derived from an interpretation of MSK as a form of Offset QPSK, and mysteriously the inphase and quadrature arms operate at half the bit rate. But it works really well, so that’s enough for now.
The term “coherent” means we know the phase and frequency of the received signal. Coherent PSK and FSK modems have ideal performance, and often have matched filter and “integrate and dump” stages. The integrator can be seen as summing all of the energy in the bit, that’s the “Eb” part in Eb/No.
Here are the BER curves for the two modems on Eb/No and C/No scales:
The non-coherent modem is a leaving a lot of bits on the floor. I also note my coherent demod outperforms the laws of physics at high Eb/No. I think I’ll build a warp drive next.
These simulations are some distance from a practical modem. The coherent demod needs clock and phase recovery and a lot of real word testing. However this is all quite possible (it’s in every mobile phone) and I’ve worked through similar steps for the HF FDMDV modem.
The non-coherent modem starts to perform (a BER of less than 1E-2) at a C/No of around 50dB. Curiously, this is where analog FM modulators start to get happy, from the recent post on FSK over FM:
So the non-coherent demod is a nice match to legacy FM radios. I’m not sure if analog FM demodulators would be effective at lower C/Nos, even when teamed with the coherent demod. So I’m not convinced it’s possible to retrofit the coherent demod to existing FM radios, but it’s certainly realisable with a $20 SDR dongle.
GMSK Demod Walk Through
This section has some screen shots of the two demodulators in action. First, here is (one half) of the GMSK signal spectrum:
The lower plot is the cumulative power, and 99% of the power is at the 2460 Hz point, making 4920 Hz bandwidth total. This gives a BW/Rs ratio of 1.02, close to the 1.04 expected for BT=0.5 GMSK at Rs=4800Hz. Nice.
Here is the “eye diagram” of the non-coherent demod:
This explains why the non coherent demod struggles. The low pass filter introduces significant inter-symbol interference. One symbol affects the next one as the LPF smears the symbols into each other. The eye is quiet narrow, even with no noise. A modest amount of noise can close the eye and we get bit errors. We can’t widen the filter as it will let more noise power in.
Here is the filter and integrator outputs from the coherent demod, one plot for the cos (real) and sin (imaginary) arms, with no channel noise:
Here are the integrator outputs with an Eb/No of 8dB:
It’s almost the same! Quite a lot of noise hardly bothers it, the BER is about 1E-3 (1 in 1 thousand)!
Ideas for VHF FreeDV
Now Codec 2 at 1200 bit/s sounds OK at an error rate of 1% (1E-2). Reading off the curves that’s a C/No of 42.5dBHz at 4800 bit/s or 42.5 – 10log10(4800/1200) = 36.5dBHz at 1200 bit/s. We need about 47dBHz for a 12dB SNR (ie scratchy) analog FM copy, or 50dBHz for a good FM copy. So that makes a proposed 1200 bit/s Codec 2 system 10dB ahead of analog FM. I can currently work the local repeater on 500mW with my $50 FM HT, so this proposed system could do it on 50mW. Cool.
Hard to say if people will actually like using Codec 2 over VHF. Quality expectations are different to HF SSB, and people are used to high SNR FM. If most FM signals are strong the extra low level performance of a new digital mode may not be useful.
However if speech quality is king with all that system gain we could user higher quality speech codecs at a higher bit rate. If we have a good C/No we can increase the bit rate and hence speech quality, pushing against the “digital ceiling” in speech quality. One disadvantage of GMSK is that we can’t scale the bit rate in high C/No channels without making the RF bandwidth wider. mPSK is better at this, we can raise the number of bits/symbol and get a greater data throughput in the same RF bandwidth.
The extra system gain allows us to to explore other options. For example two channel TDMA would let us build diplexer free repeaters. This would require running the modem at 2400 bit/s, to get an average of 1200 bit/s. The hardware complexity would be similar to a $50 HT. A 1 watt TDMA repeater based on SDR could be built for $100, and do all sorts of clever things like form mesh networks with adjacent repeaters. Sprinkle them about hill tops in a humanitarian disaster situation, they could be treated as disposable.
I do think a new VHF DV mode must have some significant advantages to gain traction. Here are my current ideas:
- An entry level implementation using freely downloadable software that runs on a PC, a sound card, and legacy FM radios through the mic/spkr ports. People get frustrated when told to upgrade all of their radio hardware to one particular brand to use DV.
- Be an open standard, with a high performance open source implementation. No annoying closed source components, license fees, and encouraging rather than prohibiting experimentation.
- Outperform legacy analog and digital modes.
- Diplexor less, trivially simple repeaters.
- Variable speech quality levels.
GMSK Modem Resources
Here is a good treatment of various Digital Modulation schemes from Atlanta RF. The Dsplog site has a good explanation and Octave simulation of MSK that helped me get my head around coherent (G)MSK demodulators. I implemented the demodulator from the 1981 IEEE Trans paper “GSM Modulation for Digital Radio Telephony” from Murota and friends. I think this paper originally proposed using GMSK for digital mobile phones.
Have created 'Classical', 'Foreign Hip Hop and R&B', and 'Soundtrack' playlists on my YouTube profile. Not much there at the moment. I'll add more as time goes on.
I've been looking at doing a music course of some sort for a while now (short course or even a degree). Fees can range from several hundred to several thousand dollars.
There may be some government help but you must fit specific criteria.
There are, of course, some online options which will also provide certification of skills if you aren't keen on spending too much time on campus and/or don't have the time/dedication to go the other way. In most cases, you'll have to pass an audition of some sort though which involves a demonstration of proficiency, a portfolio, as well as possibly an academic pedigree (high school or private tuition).
There will be some websites which will often place there reference materials behind walls of some sort but with intelligent searching you can often find a way around these limitations without having to register/signup for further marketing material.
Some material on programming synthesisers.
A place where you can purchase parts to experiment with .
There are a lot of tablet based music making applications now .
Sometimes you don't have a vocalist nearby. An option is to try computerised vocals.
Sometimes, I have difficulties with getting the type of sound that I want and/or need. Here are some itneresting manuals.
Having being having some frustrations with sound libraries being built with later versions of Kontakt/Reaktor. Has been frustrating me to the point where I thought is there a way to bypass the checks (easily possible with many simple system checks. I only investigated as I'm on a mobile prepaid connection at the moment which means that I am trying limit my downloads.).
Some interesting tips with regards to 'House Music'.
Setup a new Tumblr account. Basically, a mirror of my Twitter account.
To fix this, WordPress 4.1 now includes a shiny new function that we recommend for all plugins and themes:
Usage for wp_json_encode() is identical to json_encode(). It works by trying a json_encode(), then checking if that encoded properly. If it failed, wp_json_encode() will go through whatever lump of data you passed to it, convert it to UTF-8, then return it as JSON.
Have fun with WordPress 4.1, and see you next year for new and exciting functionality coming to a WordPress install near you!
1:20 pm Friday 16 January 2015
Andrew is a Linux addict who has become obsessed with autopilots. When not coding he is testing (and sometimes crashing!) search and rescue aircraft in an attempt to bring affordable search and rescue UAVs to the world.
For more information on Andrew and his presentation, see here.
Daniel Vetter Botching up IOCTLs
3:40 pm Friday 16 January 2015
Daniel Vetter started to contribute to the linux kernel a few years ago when the graphics stack rewrite broke his old laptop and all the developers were busy fixing newer machines. From then on it went all downhill and since 2011 he's enjoying the fun and frustration of working on the Linux graphics driver stack professionally at Intel's OTC. Since 2012 he is also the kernel maintainer of the Intel graphics driver.
As the i915 maintainter Daniel managed to get the quality issues under control and the driver off the infamous No. 1 spot on the kernel's regression list - where it beat entire subsystems. He established solid testing procedures, created an entire new testsuite for the kernel and enforced strict requirements for merging patches.
Additionally Daniel spent a lot of time improvimg the drm (direct rendering manager) subsystem. Daniel was a major driver behind the effort to write documentation for all driver interfaces. He removed lots of old cruft and separated the new-world modesetting driver from the horror show of the legacy drivers and reducing the rather hapzardous ioctl interface surface for drivers.
For more information on Daniel and his presentation, see here.You can follow him as @danvet and don’t forget to mention #lca2015.
Zane Gilmore FLOSSing in the lab – What Plant and Food Research does with FLOSS
3:40pm Thursday 15th January 2015
Zane is a developer and computer consultant for scientists working for the Plant and Food Research Institute. He writes software (mostly in Python) and advises scientists on how to facilitate their science. He has worked as a developer since 2000 after he got a degree in Computer Science at University of Canterbury.
For more information on Zane and his presentation, see here.
AUCKLAND, New Zealand – Thursday 18th December 2014 – linux.conf.au 2015 organisers are proud to announce an update to our funding programme!
Python Software Foundation Outreach Programme
LCA 2015 and the Python Software Foundation are proud to support our community. To supplement the existing InternetNZ Diversity fund the PSF have donated additional funds for candidates within the Python community.The Python Software Foundation appreciates LCA 2015's commitment to diversity, and is proud to add its own contribution in the form of the Python Software Foundation Outreach Fund. Much system software for Linux is written in Python (including both distro level tools and open source system management projects like OpenStack, Salt and Ansible), and Linux is often the default choice for deployment of Python web services and other networked applications. This contribution is intended to strengthen ties between the Python and Linux communities by assisting under-represented delegates who participate in the Python community in the region but, without financial assistance, would not be able to attend LCA 2015.
For more information please see our funding registration page.
linux.conf.au is one of the world's best conferences for free and open source software! The coming linux.conf.au; LCA 2015 will be held at the University of Auckland, New Zealand from Monday 12 January to Saturday 16 January 2015. LCA 2015 will be fun, informal and seriously technical, bringing together Free and Open Source developers, users and community champions from around the world. LCA 2015 is the third time linux.conf.au has been held in New Zealand. The first was in Dunedin in 2006 and the second was in Wellington in 2010.
For more information please visit our websiteAbout Linux Australia
Linux Australia is the peak body for Linux User Groups (LUGs) around Australia, and as such represents approximately 5000 Australian Linux users and developers. Linux Australia facilitates the organisation of this international Free Software conference in a different Australasian city each year.
For more information see: http://www.linux.org.au/Emperor Penguin Sponsors
LCA 2015 is proud to acknowledge the support of our Emperor Penguin Sponsors, Catalyst IT, HP and IBM, and our diversity sponsor Internet NZ.
For more information about our sponsors click below -
At bath time last night, Zoe had some spots on her torso. Interestingly, he first reaction upon seeing them in the mirror was "Chicken!". I was more sceptical, because she's been vaccinated for chicken pox, and wasn't showing other symptoms. I thought it may have been from crawling along the tree branch. So I put her to bed and said we would check them in the morning.
After a good night's sleep, but a ridiculously early start at 5am, she still had spots, but was otherwise fine, so I decided to make a doctor's appointment. I managed to get one for 12:15am, so we just hung out at home in the morning, and Zoe watched some TV. It was ridiculously hot, so it was a good day to be indoors with the air conditioning cranked up.
After an early lunch, we went to the doctor. She said that Zoe had a slight fever, but she was also doubtful if it looked like chicken pox. She said to give it 48 hours to see what happened. She said if it was chicken pox, it'd be a mild case, given she's vaccinated.
I guess the school holidays is as good a time as any to be out of commission. Hopefully we both won't go too stir crazy.
She also said that given how Zoe was presenting we didn't need to go too overboard on isolation, so we made a quick trip out to Westfield Carindale to pick up some birthday cards, before heading home again.
Zoe's temperature got a bit higher in the afternoon, and she ended up taking a long, late nap on the couch. I used the time to work on the next unit of my real estate licence course, and made some good progress.
I pretty much had to wake her up when it was time for Sarah to pick her up, and she still had a low grade fever, but was otherwise in good spirits.
1:20pm Wednesday 14th January 2015
Brenda Wallace is an Open Source contibutor from Wellington. She likes all the programming languages, but especially the ones beginning with P. Brenda works with the mighty wonderful people at Rabid Tech. Also, she's not a werewolf.
For more information on Brenda and her presentation, see here.
David Airlie Displayport MST: why do my laptop dockoutputs not work?
2:15pm Wednesday 14th January 2015
David Airlie is the upstream kernel graphics maintainer and work for Red Hat out of their Brisbane office. He is part of the maintainer team for Red Hat Enterprise Linux graphical components. He recently branched into virtualisation for graphics project and is trying to create a fully open source virtualised 3D graphics device capable of supporting modern operating-system requirements. He also gets distracted from this task my many random other graphics projects, of which support for Displayport MST is one.
For more information on David and his presentation, see here.
Dirk Hohndel Sustaining Momentum - or the Gap Between User Request and Developer Capacity
3:40pm Friday 16th January 2015
Dirk is Intel's Chief Linux and Open Source Technologist. He has been an active developer and contributor in the Linux space since its earliest days, among other roles, he worked as Chief Technology Officer of SuSE and as Unix Architect at Deutsche Bank. Dirk joined Intel in 2001 and since then has been working in the Software and Services Group with a focus on the technology direction of Intel's Open Source Technology Center and Intel's engagements in open source. His interests range from kernel to user interaction, from massively scalable cloud services to mobile operating systems. He is an active contributor in many open source projects and organizations, various program committees and advisory boards and currently maintains the Subsurface dive log project. Dirk holds a Diploma in Mathematics and Computer Science from the University of Würzburg, Germany. He lives in Portland, OR, USA.
For more information on Dirk and his presentation, see here.
It has been an extremely long time between beers (10 months!). I’ve gotten out of the habit of blogging and somehow I never blogged about the talk I co-presented at PyCon AU this year on Pallet and Forklift the standard and tool we’ve developed at Infoxchange to help make it easier to develop web-applications on Docker1.
Infoxchange is one of the few places I’m aware of that runs Docker in prod. If you’re looking at using Docker to do web development, it’s worth checking out what we’ve been doing over on the Infoxchange devops blog.
- There’s also Straddle Carrier, a set of Puppet manifests for loading Docker containers on real infrastructure, but they’ve not been released yet as they rely too much on our custom Puppet config.
Zoe slept all night and even slept in a little bit, which was nice, given her late night.
I thought that given it was a nice day and the tide times were well suited for it, that we could go out to Wellington Point again, and walk out to King Island. I suspect the school holidays are going to be a bit of a "best of" things that we've done throughout the year.
I whipped up a quick picnic lunch after breakfast, and we made it out there in good time for low tide. We didn't end up walking all the way out to King Island. Zoe had a great time looking at all the baby crabs running around and went fossicking for shells instead. After a while doing that and not making a lot of progress towards King Island, she'd had enough, so we turned around and had a bit of a play in the park, which included some climbing on the big climbing tree. Zoe wasn't particularly confident this time around, and was resorting to shimmying along the tree, which wasn't terribly compatible with her choice of clothing.
After that, we pulled out the picnic blanket and had a lovely picnic in the shade. The weather really was beautiful today. Not a cloud in the sky, not too hot, and a nice cool breeze.
After lunch, we went back to the playground, and Zoe had another go climbing the tree. This time, after I pointed out that it was just like the balance beam at Tumble Tastics, she veritably charged up the tree walking upright.
She was actually a little too confident, and once she reached the trunk headed up the higher branch running perpendicular to the long low one. I lost my nerve once she got about 10 metres above the ground and out over the concrete and picnic tables, and asked her to come back down. She was doing fine, but I was more worried about how she was going to turn around, and if she was going to lose her nerve and get stuck up there.
I was glad when she made it back down safe and sound. I'm proud to have such a confident and capable daughter, but sometimes it's hard being a free range parent.
We headed home after that, and did a spot of grocery shopping for dinner on the way home. Zoe wanted to go to the park, so after we got home and unpacked, we biked back to the park for a little while, before biking to our haircut appointment.
After that, it was dinner and bed time. I'm hoping we'll have another good night's sleep.
The screws had pulled out of the door frame on the bottom hinges of Zoe's door. I'd found a pretty straightforward looking Instructable on how to repair the situation. As I had a lot of dowel left over from when I built a couple of clothes lines for Zoe, I cut a few short pieces from the long length I had.
Unfortunately getting an exact length was impossible, so I had a bit of dowel sticking out that I needed to sand down, so after Sarah dropped Zoe off, we headed over to Bunnings to get a small drill-mounted sanding disc so I could sand them flush with the door frame.
After I successfully fixed the door, I thought we should go visit Bryce, since it's been quite a while since we've seen him. He wasn't feeling up for an outing, so we just visited him in the Masonic Centre at Sandgate and took him some mince pies.
Since we were relatively close to my parents, we dropped in on them for lunch afterwards, and we watched the photo slideshow DVD that Zoe's Kindergarten had given me on her second-last day, and flicked through her "yearbook" and portfolio.
Zoe napped in the car on the way home, and based on some behaviour in the morning, I figured she could do with it, so I let her nap a bit longer and we drove into the city to pick up her lunchbox from Biome. I probably blew the benefit of shaving on shipping by using their "click and collect" option by paying to park in the Myer Centre, but Zoe was certainly perkier after her nap.
After that, we went home, and I made a quick dinner. I wasn't going to attend my final Thermomix branch meeting because I had Zoe, but I decided in the morning, that given it wasn't a "school night", and the meeting was closer to home than usual. that I might try getting her all ready for bed and bringing her with me.
Fortunately I still had her Trunki all packed with amusements from our US trip in July, so I brought that with us, and that kept her sufficiently amused. She came up for a few cuddles at various points, but was otherwise happy to play quietly at the back of the room. She was really well behaved, and my Group Leader again complimented her on how well behaved she was.
That made for a bit of a late bedtime, but she did well. The nap in the car definitely helped.
11:35am Wednesday 14th January 2015
Jonathan Corbet is the lead editor of LWN.net, co-author of Linux Device Drivers, a member of the Linux Foundation's Technical Advisory Board, and a occasional kernel contributor.
For more information on Jonathan and his presentation, see here.
Josh Berkus PostgreSQL Replication Tutorial
1:20pm Wednesday 14th January 2015
Josh Berkus is best known as a core team member of the global PostgreSQL database project. He's also CEO of PostgreSQL Experts Inc., and sits on the board of several database startups. As well as PostgreSQL, Josh dabbles Python, Perl, Redis, and Docker these days, but ask him for an update when you see him. He's had a Linux desktop since 1998.
For more information on Josh and his presentation, see here.
Mark McClain Tunnels and bridges: A drive through OpenStack Networkings
1:20pm Thursday 15th January 2015
Mark McClain is a Senior Principal Architect at Yahoo!, member of the OpenStack Technical Committee, and is a core reviewer of the the OpenStack Networking Project. He served as the Technical Lead for Neutron during the Havana and Icehouse cycles. Mark has 14 years of software development experience and OpenStack Networking combines two of his favorite interests: networking and Python.
For more information on Mark and his presentation, see here.
Trigger warning, I suppose.
This like a Tom Clancy book, but with weirder sex, much of it non-consensual. Also, not as well thought through or as well researched or as believable. I couldn't bring myself to finish it.
Tags for this post: book john_ringo terrorism nuclear
Related posts: Citadel; Hell's Faire; Princess of Wands; East of the Sun, West of the Moon; Watch on the Rhine; Cally's War Comment Recommend a book
- Add more detailed network information to the metadata server: review 85673.
- Add separated policy rule for each v2.1 api: review 127863.
- Add user limits to the limits API (as well as project limits): review 127094.
- Allow all printable characters in resource names: review 126696.
- Consolidate all console access APIs into one: review 141065.
- Expose the lock status of an instance as a queryable item: review 127139 (abandoned); review 85928 (approved).
- Extend api to allow specifying vnic_type: review 138808.
- Implement instance tagging: review 127281 (fast tracked, approved).
- Implement the v2.1 API: review 126452 (fast tracked, approved).
- Improve the return codes for the instance lock APIs: review 135506.
- Microversion support: review 127127 (approved).
- Move policy validation to just the API layer: review 127160.
- Nova Server Count API Extension: review 134279 (fast tracked).
- Provide a policy statement on the goals of our API policies: review 128560 (abandoned).
- Sorting enhancements: review 131868 (fast tracked, approved).
- Support JSON-Home for API extension discovery: review 130715.
- Support X509 keypairs: review 105034 (approved).
- Expand support for volume filtering in the EC2 API: review 104450.
- Implement tags for volumes and snapshots with the EC2 API: review 126553 (fast tracked, approved).
- Actively hunt for orphan instances and remove them: review 137996 (abandoned); review 138627.
- Check that a service isn't running before deleting it: review 131633.
- Enable the nova metadata cache to be a shared resource to improve the hit rate: review 126705 (abandoned).
- Implement a daemon version of rootwrap: review 105404.
- Log request id mappings: review 132819 (fast tracked).
- Monitor the health of hypervisor hosts: review 137768.
- Remove the assumption that there is a single endpoint for services that nova talks to: review 132623.
- Allow direct access to LVM volumes if supported by Cinder: review 127318.
- Cache data from volumes on local disk: review 138292 (abandoned); review 138619.
- Enhance iSCSI volume multipath support: review 134299.
- Failover to alternative iSCSI portals on login failure: review 137468.
- Give additional info in BDM when source type is "blank": review 140133.
- Implement support for a DRBD driver for Cinder block device access: review 134153.
- Refactor ISCSIDriver to support other iSCSI transports besides TCP: review 130721 (approved).
- StorPool volume attachment support: review 115716.
- Support Cinder Volume Multi-attach: review 139580 (approved).
- Support iSCSI live migration for different iSCSI target: review 132323 (approved).
- Cells Scheduling: review 141486.
- Create an instance mapping database: review 135644.
- Flexible cell selection: review 140031.
- Implement instance mapping: review 135424 (approved).
- Populate the instance mapping database: review 136490.
- Initial specification: review 114044 (abandoned).
- Enforce instance uuid uniqueness in the SQL database: review 128097 (fast tracked, approved).
- Nova db purge utility: review 132656.
- Online schema change options: review 102545.
- Support DB2 as a SQL database: review 141097 (fast tracked, approved).
- Validate database migrations and model': review 134984 (approved).
- Migrate the Docker Driver into Nova: review 128753.
- Implement support for FreeBSD networking in nova-network: review 127827.
- Allow volumes to be stored on SMB shares instead of just iSCSI: review 102190 (approved).
- Instance hot resize: review 141219.
- Add config drive support: review 98930 (approved).
- Pass through flavor capabilities to ironic: review 136104.
- Add ephemeral disk support to the VMware driver: review 126527 (fast tracked, approved).
- Add support for the HTML5 console: review 127283.
- Allow Nova to access a VMWare image store over NFS: review 126866.
- Enable administrators and tenants to take advantage of backend storage policies: review 126547 (fast tracked, approved).
- Enable the mapping of raw cinder devices to instances: review 128697.
- Implement vSAN support: review 128600 (fast tracked, approved).
- Support multiple disks inside a single OVA file: review 128691.
- Support the OVA image format: review 127054 (fast tracked, approved).
- Add Quobyte USP support: review 138372 (abandoned); review 138373 (approved).
- Add VIF_VHOSTUSER vif type: review 138736 (approved).
- Add a Quobyte Volume Driver: review 138375 (abandoned).
- Add finetunable configuration settings for virtio-scsi: review 103797 (abandoned).
- Add large page support: review 129608 (approved).
- Add support for SMBFS as a image storage backend: review 103203 (approved).
- Allow scheduling of instances such that PCI passthrough devices are co-located on the same NUMA node as other instance resources: review 128344 (fast tracked, approved).
- Allow specification of the device boot order for instances: review 133254.
- Allow the administrator to explicitly set the version of the qemu emulator to use: review 138731 (abandoned).
- Consider PCI offload capabilities when scheduling instances: review 135331.
- Convert to using built in libvirt disk copy mechanisms for cold migrations on non-shared storage: review 126979 (fast tracked).
- Derive hardware policy from libosinfo: review 133945.
- Implement COW volumes via VMThunder to allow fast boot of large numbers of instances: review 128810 (abandoned); review 128813 (abandoned); review 128830 (abandoned); review 128845 (abandoned); review 129093 (abandoned); review 129108 (abandoned); review 129110 (abandoned); review 129113 (abandoned); review 129116; review 137617.
- Implement configurable policy over where virtual CPUs should be placed on physical CPUs: review 129606 (approved).
- Implement support for Parallels Cloud Server: review 111335 (approved); review 128990 (abandoned).
- Implement support for zkvm as a libvirt hypervisor: review 130447 (approved).
- Improve total network throughput by supporting virtio-net multiqueue: review 128825.
- Improvements to the cinder integration for snapshots: review 134517.
- Quiesce instance disks during snapshot: review 128112; review 131587 (abandoned); review 131597.
- Real time instances: review 139688.
- Stop dm-crypt device when an encrypted instance is suspended or stopped: review 140847 (approved).
- Support SR-IOV interface attach and detach: review 139910.
- Support StorPool as a storage backend: review 137830.
- Support for live block device IO tuning: review 136704.
- Support libvirt storage pools: review 126978 (fast tracked, approved).
- Support live migration with macvtap SR-IOV: review 136077.
- Support quiesce filesystems during snapshot: review 126966 (fast tracked, approved).
- Support using qemu's built in iSCSI initiator: review 133048 (approved).
- Volume driver for Huawei SDSHypervisor: review 130919.
- Allow portions of an instance's uuid to be configurable: review 130451.
- Attempt to schedule cinder volumes "close" to instances: review 130851; review 131050 (abandoned); review 131051 (abandoned); review 131151 (abandoned).
- Dynamic server groups: review 130005 (abandoned).
- Improve the performance of unshelve for those using shared storage for instance disks: review 135387.
- A lock-free quota implementation: review 135296.
- Automate the documentation of the virtual machine state transition graph: review 94835.
- Fake Libvirt driver for simulating HW testing: review 139927 (abandoned).
- Flatten Aggregate Metadata in the DB: review 134573 (abandoned).
- Flatten Instance Metadata in the DB: review 134945 (abandoned).
- Implement a new code coverage API extension: review 130855.
- Move flavor data out of the system_metadata table in the SQL database: review 126620 (approved).
- Move to polling for cinder operations: review 135367.
- PCI test cases for third party CI: review 141270.
- Transition Nova to using the Glance v2 API: review 84887.
- Transition to using glanceclient instead of our own home grown wrapper: review 133485 (approved).
- Enable lazy translations of strings: review 126717 (fast tracked).
- Add a new linuxbridge VIF type, macvtap: review 117465 (abandoned).
- Add a plugin mechanism for VIF drivers: review 136827.
- Add support for InfiniBand SR-IOV VIF Driver: review 131729.
- Neutron DNS Using Nova Hostname: review 90150 (abandoned).
- New VIF type to allow routing VM data instead of bridging it: review 130732.
- Nova Plugin for OpenContrail: review 126446 (approved).
- Refactor of the Neutron network adapter to be more maintainable: review 131413.
- Use the Nova hostname in Neutron DNS: review 137669.
- Wrap the Python NeutronClient: review 141108.
- Dynamically alter the interval nova polls components at based on load and expected time for an operation to complete: review 122705.
- A nested quota driver API: review 129420.
- Add a filter to take into account hypervisor type and version when scheduling: review 137714.
- Add an IOPS weigher: review 127123 (approved, implemented); review 132614.
- Add instance count on the hypervisor as a weight: review 127871 (abandoned).
- Allow extra spec to match all values in a list by adding the ALL-IN operator: review 138698 (fast tracked, approved).
- Allow limiting the flavors that can be scheduled on certain host aggregates: review 122530 (abandoned).
- Allow the remove of servers from server groups: review 136487.
- Convert get_available_resources to use an object instead of dict: review 133728 (abandoned).
- Convert the resource tracker to objects: review 128964 (fast tracked, approved).
- Create an object model to represent a request to boot an instance: review 127610 (approved).
- Decouple services and compute nodes in the SQL database: review 126895 (approved).
- Enable adding new scheduler hints to already booted instances: review 134746.
- Fix the race conditions when migration with server-group: review 135527 (abandoned).
- Implement resource objects in the resource tracker: review 127609.
- Improve the ComputeCapabilities filter: review 133534.
- Isolate Scheduler DB for Filters: review 138444.
- Isolate the scheduler's use of the Nova SQL database: review 89893.
- Let schedulers reuse filter and weigher objects: review 134506 (abandoned).
- Move select_destinations() to using a request object: review 127612 (approved).
- Persist scheduler hints: review 88983.
- Refactor allocate_for_instance: review 141129.
- Stop direct lookup for host aggregates in the Nova database: review 132065 (abandoned).
- Stop direct lookup for instance groups in the Nova database: review 131553 (abandoned).
- Support scheduling based on more image properties: review 138937.
- Trusted computing support: review 133106.
- Dynamic Management of Server Groups: review 139272.
- Make key manager interface interoperable with Barbican: review 140144 (fast tracked, approved).
- Provide a reference implementation for console proxies that uses TLS: review 126958 (fast tracked, approved).
- Strongly validate the tenant and user for quota consuming requests with keystone: review 92507.
- Pacemaker service group driver: review 139991.
- Transition service groups to using the new oslo Tooz library: review 138607.
- Add soft affinity support for server group: review 140017 (approved).
Tags for this post: openstack kilo blueprint spec nova
Related posts: Specs for Kilo; One week of Nova Kilo specifications; Compute Kilo specs are open; Specs for Kilo; Juno nova mid-cycle meetup summary: slots; Juno nova mid-cycle meetup summary: nova-network to Neutron migration
First off, there is a periodic task run the nova-compute process (or the computer manager as a developer would know it), which runs every reclaim_instance_interval seconds. It looks for instances in the SOFT_DELETED state which don't have any tasks running at the moment for the hypervisor node that nova-compute is running on.
For each instance it finds, it checks if the instance has been soft deleted for at least reclaim_instance_interval seconds. This has the side effect from my reading of the code that an instance needs to be deleted for at least reclaim_instance_Interval seconds before it will be removed from disk, but that the instance might be up to approximately twice that age (if it was deleted just as the periodic task ran, it would skip the next run and therefore not be deleted for two intervals).
Once these conditions are met, the instance is deleted from disk.
Tags for this post: openstack nova instance delete
Related posts: One week of Nova Kilo specifications; Specs for Kilo; Juno nova mid-cycle meetup summary: nova-network to Neutron migration; Juno Nova PTL Candidacy; Juno nova mid-cycle meetup summary: scheduler; Juno nova mid-cycle meetup summary: ironic