Next week we have our Ubuntu Developer Summit, taking place online from Tues 11th March 2014 – Thurs 13th March 2014. Go and see the schedule – we still have lots of schedule space if you want to run a session. For details of how to propose a session, see this guide.
I just want to highlight a session I would like to really invite input on in particular.
Today the online Ubuntu Developer Summit is largely based on the formula from our physical UDSs that we used to have, and that formula goes back to 2004. While these have traditionally served the project well, I am cognizant that our community is much bigger and more diverse than it used to be, and our current Ubuntu Developer Summit doesn’t serve our wider community as well as it could; there is more to Ubuntu to rigorous software engineering.
UDS is great if you are a developer focused on building software and ensuring you have a plan to do so, but for our translators, advocates, marketeers, app developers, and more…the format doesn’t suit those communities as well.
As such, I would like to discuss this and explore opportunities where UDS could serve our wider community better. The session is here and is on Wed 12th March at 15.00UTC. I hope you can join me!
Arbitrary tweets made by TheGingerDog (i.e. David Goodwin) up to 06 March 2014
I needed a way to display the contents of an HTML file on my desktop, in such a way that it looks like it’s part of the wallpaper. Fortunately, most of the answer was in How can I make my own custom desktop widgets? on Ask Ubuntu, along with Create a Gtk Window insensitive to Show Desktop and Won’t show in Launcher. Combining that with the excellent Python GI API Reference which contains everything and which I can never find when I go looking for it, I came up with a simple little Python app. I have it monitoring the HTML file which it displays for changes; when that file changes, I refresh the widget.from gi.repository import WebKit, Gtk, Gdk, Gio, GLib import signal, os class MainWin(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, skip_pager_hint=True, skip_taskbar_hint=True) self.set_wmclass("sildesktopwidget","sildesktopwidget") self.set_type_hint(Gdk.WindowTypeHint.DOCK) self.set_size_request(600,400) self.set_keep_below(True) #Set transparency screen = self.get_screen() rgba = screen.get_rgba_visual() self.set_visual(rgba) self.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0,0,0,0)) #Add all the parts self.view = WebKit.WebView() self.view.set_transparent(True) self.view.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0,0,0,0)) self.view.props.settings.props.enable_default_context_menu = False self.view.load_uri("file:///home/aquarius/Work/jobs.html") box = Gtk.Box() self.add(box) box.pack_start(self.view, True, True, 0) self.set_decorated(False) self.connect("destroy", lambda q: Gtk.main_quit()) #Show all the parts self.show_all() self.move(100,100) def refresh_file(*args): print args mainwin.view.reload() def file_changed(monitor, file, unknown, event): # reload GLib.timeout_add_seconds(2, refresh_file) if __name__ == '__main__': gio_file = Gio.File.new_for_path("/home/aquarius/Work/jobs.html") monitor = gio_file.monitor_file(Gio.FileMonitorFlags.NONE, None) monitor.connect("changed", file_changed) mainwin = MainWin() signal.signal(signal.SIGINT, signal.SIG_DFL) # make ^c work Gtk.main()
Lots of little tricks in there: the widget acts as a widget (that is: it stays glued to the desktop, and doesn’t vanish when you Show Desktop) because of the Gdk.WindowTypeHint.DOCK, skip_pager_hint=True, skip_taskbar_hint=True, and set_keep_below(True) parts; it’s transparent because the HTML file sets its background colour to rgba(0,0,0,0) with CSS and then we use override_background_color to make that actually be transparent; the window has no decorations because of set_decorated(False). Then I just add it to Startup Applications and we’re done.
There’s been a lot of talk recently about what Nadine Dorries was paid for her appearances on I’m A Celebrity, Get Me Out Of Here and why she hasn’t declared that fee yet.
By following the trail laid down by Unity in this excellent blog post and listening carefully to what Dorries says in this interview with Andrew Neil (I expect that’ll be there for another week or so) it becomes pretty obvious what has happened.
She hasn’t received the money yet.
Of course, you wouldn’t usually expect to wait six months for payment for a media appearance, so what has happened?
Dorries has a service company called Averbrook and all of her media work is now undertaken by this company. The Averbrook invoices media organisations for the work that Dorries does and the media companies pay the fees to Averbrook. The fees then sit in Averbrook’s bank account until needed.
At this point Dorries has received no money and therefore has no requirement to declare any income. In the Andrew Neil interview, she says “I have not personally benefited from going into the jungle”. She then explains that she has a company for her media work and although it isn’t made clear, it’s obvious that this company receives the money from this work.
Dorries goes on to say that when she benefits from that work, she will have to register the income. At some point in the future she will need to use this money and Averbrook will pay it to her. There are various ways for a director to take money out of a company. You might pay it as salary, you might pay it as dividends (if the director owns shares in the company) or, in extreme circumstances, you can close the company down and redistribute its assets. All of these will have varying tax implications and all of them will require Dorries to declare the income to parliament.
But here’s the interesting thing. The income that Dorries will receive from Averbrook will have no link back to its original source. The declaration will simply need to say “£X,000 dividend from Averbrook” or whatever is appropriate. There will be no way to say how much of the money comes from each individual source.
It’s a bit like money laundering. But, of course, this is all completely legal. Working through a service company is a really common way to manage tax affairs. It has tax benefits and (as we can see here) it has privacy benefits.
Of course, there’s a good argument that using a company like this goes against the spirit of the requirement for MPs to declare income. It would be hard to argue against that. But until the law is changed, you are very unlikely to see any MP stop using the system.
So what are the chances of the system changing? Rather slim I’d say. Why? Well because the people who would need to make the change are many of the people who are benefiting from this system.
But on this occasion, I’d have to say that Dorries isn’t the problem. She’s just taking advantage of a well-known system. And people aren’t asking her the right questions about it.Related Posts:
Of course it is slow as hell and not nice on the web host. It makes lots of byte-range requests on the host, downloading a few KB with each request, which is kind of the worst case for webservers to handle.
Note also that Fedora’s curl is broken. I compiled my own from upstream git.
This directory contains experimental up to date libguestfs packages for Ubuntu 12.10. You should be able to install them by adding this line to /etc/apt/sources.list:deb http://libguestfs.org/download/binaries/ubuntu1210-packages/ /
You will need to also:sudo chmod 0644 /boot/vmlinuz-*
because of this Ubuntu bug.
Let me know if the packages work. Also what other versions of Ubuntu I should be building them for.
It looks like I might be doing a short talk at the CentOS Dojo and Barbecue at Aldershot, UK, Friday 12th July 2013.
It’ll probably be about scripting/programming libvirt and the virt tools, but mainly it’ll be a chance for Q&A about any virtualization topic in RHEL / CentOS.
Also they have a BBQ — with beer! Sadly since I’m driving there I won’t be able to drink any of the beer.
(Thanks Karanbir Singh, Justin Clift)
I made a thing.
On Sunday I mentioned how OpenTech always makes me feel a bit embarrassed that I’m not doing more useful stuff – particularly in the kinds of areas that OpenTech speakers care about.
Usually, real life takes over before I get a chance to do anything about it and I forget about my embarrassment until the next OpenTech. This year, I managed to harness my embarrassment and actually do something productive.
It’s not like I built anything from scratch. This is is really just me finally shipping something that I’ve been working on (off and on – more off than on) for almost five years. I built the first prototype at a hack day in 2008. I even wrote about it at the time.
The Political Web is a site that is intended to be a one-stop-shop for finding out information about British MPs. Currently each MP has a page which lists a number of standard web pages that contain information about the MP (Wikipedia, The Guardian, TheyWorkForYou – things like that). Of course each MP also has a number of non-standard pages on the internet (an official web site, a blog, perhaps a Twitter account) and adding those is going to be a harder job.
Previously two things have stopped me launching this. One was the fact that I wanted to support those all of those other sources of information. But I’ve decided to go for a “minimum viable product” approach and show you what I’ve already got. The other thing that prevented me talking about it much was that I thought I’d need someone to make it look nice (my web design skills are horrible). But the arrival of Bootstrap means that even a design ignoramus like me can build a site that looks more than half-decent.
So there you go. It’s there for you to play with. And there will (hopefully) be more coming soon. Please let me know if you find it useful.
We had a fantastic 4-day weekend camping with our kids down in Bundeena. Bit of a risk this late in the season but we got extremely lucky. 26 degrees every day! Our kids were a bit unwell at times, with bad colds and Louis seemed to have a short bout of gastro. But we still had loads of fun.
Ruby has me out of bed at 0530 this morning so everything moved along earlier than usual. Got to daycare and realised we had 35 minutes to kill so we stopped for smiley babycinos.
We spent the day cooking for charity. Lots of fun. I helped on chicken cacciatore and another team did amazing apple calzones. Good stuff and quite fun.
My wimpy office hands scored some nice blisters cutting up ten chickens.
Holly's out to see The Hobbit so I'm home along with the kids. Improvised Ploughmans of:
I've always had a spreadsheet to help me compare a daily contract rate to a "standard" salary, to ensure I'm always comparing like for like when considering jobs. A newer wrinkle has been recruiters quoting "package" salaries, which just means you need to multiply by 0.91 to get the "standard" salary (ex super). But it's always been confusing.I've recently been sharing my spreadsheet with friends who've been considering contract jobs. The spreadsheet was fine, but a bit clunky and I'd only ever bothered to make it convert daily rate to "standard" salary. To make this work a bit better, I created ContractOrPermie.com, a little one-page application I wrote to allow you to quickly and easily compare contract rates with standard salaries. It's only really suitable for Australia. As well as nicely solving this particular problem, I also got to try out Twitter Bootstrap, which means it looks great in all browsers without me having to futz around with CSS. I'm hosting it using the new functionality Amazon Web Services have launched to allow static file hosting at the root of a domain using Amazon S3 (in the new Australian data centre).
Anyway, check out ContractOrPermie.com and let me know what you think.
I took Louis camping this weekend in Bundeena. Train, ferry then a short hike to the campsite on the edge of the Royal National Park. The weather outlook before we left was pretty shaky, and it lived up to the forecast: heavy showers and strong winds pretty much the entire time. Louis was so excited about the idea of camping that I had to take him, and we had an excellent time.Satellite view of the campsite It's an astonishingly beautiful spot, on the edge of a lagoon that adjoins Port Hacking, so you're camped amongst mangroves and birds with a view across the water of Cronulla. So close to civilisation, but you feel like you're a million miles away. Saturday after arriving at the camp site, we pitched the tent just in time to shelter in it from a shower. Next we pottered around the low-tide lagoon and big spit of sand that divides the lagoon from Port Hacking. We found some pretty interesting things along the sand including a cobalt blue piece where a chunk of seaweed was attached to the sea floor. Any seaweed experts know what that's about?
Dinner was interesting. The BBQs were fortunately sheltered from the frequent showers. We got the sausages on and Louis announced he needed to use the loo, so we headed off. As we came back we saw a murder of crows on the BBQs eating our dinner! We ended up with just a single sausage between us for dinner. Fortunately I'd over catered on snacks so we didn't go to bed hungry. (PS, yes I've always wanted to use the term "murder of crows".) Next morning we pottered around the sand dunes then hiked back into town for coffee/babycino just in time to meet up with Holly and Ruby who'd driven to meet us. Lunch was with Rich, Debs and their kids for an amazing cooked lunch at their place. Sadly we didn't get to stay as long as I wanted, Holly and the kids were knackered so we popped home. Lovely weekend, despite the weather! Thanks again to Debs and Rich for an amazing lunch.
Here’s how to use this from guestfish:$ export LIBGUESTFS_BACKEND=direct $ guestfish --ro -a ssh://onuma/mnt/scratch/winxp.img -i Welcome to guestfish, the guest filesystem shell for editing virtual machine filesystems and disk images. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell Operating system: Microsoft Windows XP /dev/sda1 mounted on / ><fs> ll / total 1573209 drwxrwxrwx 1 root root 4096 Apr 16 2012 . drwxr-xr-x 23 1000 1000 4096 May 20 19:47 .. -rwxrwxrwx 1 root root 0 Oct 11 2011 AUTOEXEC.BAT -rwxrwxrwx 1 root root 0 Oct 11 2011 CONFIG.SYS drwxrwxrwx 1 root root 4096 Oct 11 2011 Documents and Settings -rwxrwxrwx 1 root root 0 Oct 11 2011 IO.SYS -rwxrwxrwx 1 root root 0 Oct 11 2011 MSDOS.SYS -rwxrwxrwx 1 root root 47564 Apr 14 2008 NTDETECT.COM drwxrwxrwx 1 root root 4096 Oct 11 2011 Program Files drwxrwxrwx 1 root root 4096 Oct 11 2011 System Volume Information drwxrwxrwx 1 root root 28672 Oct 11 2011 WINDOWS -rwxrwxrwx 1 root root 211 Oct 11 2011 boot.ini -rwxrwxrwx 1 root root 250048 Apr 14 2008 ntldr -rwxrwxrwx 1 root root 1610612736 Oct 11 2011 pagefile.sys