Planet Ubuntu
Subscribe to Planet Ubuntu feed
Planet Ubuntu -
Updated: 30 min 26 sec ago

Jono Bacon: Community Management Training at OSCON, LinuxCon North America, and LinuxCon Europe

Wed, 2014-06-11 17:55

I am a firm believer in building strong and empowered communities. We are in an age of a community management renaissance in which we are defining repeatable best practice that can be applied many different types of communities, whether internal to companies, external to volunteers, or a mix of both.

I have been working to further this growth in community management via my books, The Art of Community and Dealing With Disrespect, the Community Leadership Summit, the Community Leadership Forum, and delivering training to our next generation of community managers and leaders.

Last year I ran my first community management training course, and it was very positively received. I am delighted to announce that I will be running an updated training course at three events over the coming months.


On Sunday 20th July 2014 I will be presenting the course at the OSCON conference in Portland, Oregon. This is a tutorial, so you will need to purchase a tutorial ticket to attend. Attendance is limited, so be sure to get to the class early on the day to reserve a seat!

Find Out More

LinuxCon North America and Europe

I am delighted to bring my training to the excellent LinuxCon events in both North America and Europe.

Firstly, on Fri 22nd August 2014 I will be presenting the course at LinuxCon North America in Chicago, Illinois and then on Thurs Oct 16th 2014 I will deliver the training at LinuxCon Europe in Düsseldorf, Germany.

Tickets are $300 for the day’s training. This is a steal; I usually charge $2500+/day when delivering the training as part of a consultancy arrangement. Thanks to the Linux Foundation for making this available at an affordable rate.

Space is limited, so go and register ASAP:

What Is Covered

So what is in the training course?

My goal with each training day is to discuss how to build and grow a community, including building collaborative workflows, defining a governance structure, planning, marketing, and evaluating effectiveness. The day is packed with Q&A, discussion, and I encourage my students to raise questions, challenge me, and explore ways of optimizing their communities. This is not a sit-down-and-listen-to-a-teacher-drone on kind of session; it is interactive and designed to spark discussion.

The day is mapped out like this:

  • 9.00am – Welcome and introductions
  • 9.30am – The core mechanics of community
  • 10.00am – Planning your community
  • 10.30am – Building a strategic plan
  • 11.00am – Building collaborative workflow
  • 12.00pm – Governance: Part I
  • 12.30pm – Lunch
  • 1.30pm – Governance: Part II
  • 2.00pm – Marketing, advocacy, promotion, and social
  • 3.00pm – Measuring your community
  • 3.30pm – Tracking, measuring community management
  • 4.30pm – Burnout and conflict resolution
  • 5.00pm – Finish

I will warn you; it is an exhausting day, but ultimately rewarding. It covers a lot of ground in a short period of time, and then you can follow with further discussion of these and other topics on our Community Leadership discussion forum.

I hope to see you there!

Daniel Pocock: Protest or Uber marketing stunt?

Wed, 2014-06-11 16:27

London's taxi "strike" today has been so successful that Uber claims to have had an 850% increase in new customer registrations this week. Well, that is a big success if you believe the strike may have been a guerrilla marketing tactic organised by Uber itself.

No sympathy

Personally, I have no sympathy for the taxi drivers. There is no city I have ever visited where I haven't encountered at least one taxi driver who tried to overcharge me.

When I broke a leg a few years ago and was getting about on crutches for 6 weeks we decided to go out for dinner one night. This was the first time I went anywhere after having a long stint in hospital followed by a period of time I was confined to the house. The taxi driver deliberately skipped two turns on a direct route to the restaurant, went another 1km past it and then followed a small street that winds back and forth and eventually demanded I pay him 20 CHF, double what the fare should have been.

This is exactly the type of abusive and despicable practice that is being eradicated by Uber's live GPS mapping technology.

This type of abuse of the weak or vulnerable is common around the world - for example, wheelchair taxis that have worked out they can make more money collecting families with suitcases at the airport while leaving genuine wheelchair users without a ride.

Will Google be targeted next week?

Google has just announced a step-change in plans to build their own self driving cars. Will Google offices around the world, including London be targetted by these crude blockades too?

Weapons of mass destruction

Why were taxi drivers not arrested for their protest today?

Before even having breakfast you could probably find 10,000 cyclists in central London willing to sign a petition declaring taxis are a weapon of mass destruction. I have personally experienced one of these brutal thugs ramming my bicycle from behind. The police who attended the incident even told me they had seen so many accidents like this they wouldn't dare cycle themselves.

The web is full of examples that appear to show criminal behavior by taxi drivers, thanks to Youtube and helmet cams:

Will hotels protest about AirBNB?

Now the taxi drivers have had their chance to cause mayhem, will hotel operators be next?

What could they do though? Will they seek out AirBNB apartments and jam up the door locks with chewing gum perhaps? Chances are, they would be prosecuted for criminal damage. So why do the taxi drivers get to jam up whole cities and get away with it?

The Uber taxi meter loophole

Will the courts decide that the Uber app is a taxi meter?

This is actually a tough question. Even if they rule against apps that perform live metering, Uber could simply remove all metering functions from the app itself and perform the metering calculations in the cloud. The app would just send start and finish locations to the cloud and the cloud would send a message back to the phone confirming the charge. The phone is then nothing more than a communication and positioning device.

Remember the elevator man?

When the automobile was first invented, laws were made requiring every car to be accompanied through public streets by a man carrying a flag. That job, like many others, no longer exists.

In the good old days, every elevator had a man or woman who would sit on a stool and press buttons to operate the doors and motors.

Some up-market department stores and hotels still have an elevator man to add a touch of nostalgia. The vast majority, however, have eliminated these jobs thanks to automatic elevators.

Now, even aircraft can land automatically on a ship at sea. Look at all those people manning the deck in the video and contemplate how many of them might potentially be out of a job too in 50 years time as Terminator-style automated battleships patrol the seas.

Technology, like the Terminator, is not going to stop.

Alan Pope: Ubuntu Online Summit ‘Ask Rick and Olli’ Session

Wed, 2014-06-11 11:31

One of the things we’re keen to continue to push with Ubuntu is a spirit of openness and inclusivity. Over the last couple of years with the reduction in ‘in person’ Ubuntu Developer Summits it’s been said Canonical developers are harder to reach, and that we’re not communicating effectively our plans and designs for the future direction of Ubuntu. We’ve been trying to address this via increased blogging, regular email status updates and video updates from all areas of the community.

As always we’re also keen to hear feedback, we welcome email discussion on our lists, bug reports, design mock-ups and of course well tested patches. We also want to ensure people at every level are available for Q&A sessions on a regular basis. Jono Bacon had a series of Q&A sessions which the Community Team will continue, but with additional domain experts and leaders during those sessions.

One of the biggest visible areas of change for Ubuntu is the transition from Unity 7 on Compiz (used in 14.04 and below) and Unity 8 and Mir (to be used in future releases). So today this weeks Ubuntu Online Summit we’ve arranged a couple of sessions which we invited participation in.

At 14:00 UTC today Rick Spencer (VP of Engineering) and Oliver (Olli) Ries (Director of Unity & Display Server) will hold an Ask Rick & Olli session. Bring along your questions about Unity, Mir, convergence, future desktop direction and more.

An hour later at 15:00 UTC we have a Convergence Progress Report session where you can get an update on where we stand with our converged vision, and of course participate on the hangout or via IRC.

Click the time links above to find out when these are happening in your timezone today, and the other links to join in the sessions at that time. If you miss it you can watch the sessions later using the same links.

Canonical Design Team: Making responsive: updating font sizes and increasing readability (11)

Wed, 2014-06-11 10:30

This post is part of the series ‘Making responsive‘.

All our designs are created using the Ubuntu font, and the websites are not exception. was already using a carefully refined and tested typographic scale that we have evolved over the years.

Early in the project, we had decided that the large screen view of the website would be kept, so we would be reusing the original styles (with some updates and clean up) and it became the typographic scale for the desktop view.

Adjust as needed

When working on the pilot responsive projects like Ubuntu Insights and, we’ve used that original scale and reduced it, keeping the proportions.

After some device testing to adjust paragraph size for comfortable reading, we settled on having the base font size modified at our grid breakpoints to 14px, 15px and 16px.

By keeping the proportions of the sizes though, it was easy to see that some font sizes and margins were too large in proportion to others at small screens — especially the larger headings like h1 —, so we tweaked these as needed to improve readability.

A typographic scale can serve as a guide, but you don’t have to stay married to it: adjusting sizes to what feels better is an important step in making sure your text is comfortable to read at various sizes — and the best way to test this is on the actual devices!

Testing on various devices.

Use ems

Our typographic scale is defined in pixels, but the sizes are specified in ems in our CSS so they can be scalable.

Differences in the typographic scale from small to large screens.

Reuse existing patterns

We have a weekly designers meeting where we talk about new patterns we’re working on in our separate projects across the entire design team. This way, we minimise the risk of creating new patterns when existing ones are in place, and when something new is created it can be shared with the rest of the team to use.

So we made sure to show our updated typographic scale and get everyone’s feedback on it, including designers from the apps and platforms teams. The best part was that we had reached similar conclusions about which sizes worked best in small screens (the variation was in the decimals) so we were all being consistent when it came to mobile!

Remember fallback fonts

Even though web fonts are widely supported now, some browsers, like Opera Mini, just don’t support them, so it’s always a good idea to look at your site across various devices and browsers, and turn off the font-face declarations to see if the fallback fonts that you’ve declared look as good as you can make them and match as closely as possible with the original font. By doing this you’ll make the transition between the fallback font and the web font once it’s finally loaded less obvious and less jarring for the user.

Opera Mini, without the Ubuntu font.


There are a few simple things you can do when transitioning from a fixed-width to a responsive website. The focus should be to improve readability, so it’s vital to check as many pages and screens of your site in different devices. And remember that picking a typographic scale is not as simple as taking numbers out of a generator: you have to see it in action and adapt it to your project.

We’d love to hear how you handled typography in your responsive projects — leave your thoughts in the comments area!

Reading list

Ubuntu Women: Ubuntu Women at UOS 14.06 Session Summary

Wed, 2014-06-11 02:25

On Tuesday, June 10 2014, the Ubuntu Women Project participated in the Ubuntu Online Submit.  These were the topics that were covered:

  • Set a goal to host more Career Days sessions
  • Give people a preview of the “Where should I contribute?” quiz that will be placed on
  • Develop Harvest into something usable for all
  • Finish up uncompleted items from the last cycle

Thanks to everyone who participated and we’re looking forward to continuing discussions and work on all these items in the coming months.

Video from our session is available here:

Click here for direct link on YouTube

Blueprint for this cycle available here:

Dimitri John Ledkov: cross-compile go code, including cgo

Tue, 2014-06-10 18:59
By all means cross-compiling a new language/stack is not going to be pretty, but it didn't turn out that bad.

A few weeks back, I was told that go code which uses cgo (that is utilising C api calls to shared libraries exporting C interface) cannot be cross-compiled. Well, if it's just calling out a C compiler it should totally be easy to cross compile, since so much of our platform is.

So there we go, first I've picked a moderately small project which only does a couple cgo calls, and check that it compiles correctly:

$ sudo apt-get build-dep ubuntu-push-client
$ go get
$ cd $GOPATH/src/
$ go build ubuntu-push-client.goWell, when your gcc is all is easy.

I didn't want to polute my system, so I quickly created a chroot with go, build-dependencies in armhf architectures and cross-compiler:

# Get a chroot with build-dependencies installed, I am basing on top of a click-chroot
# one should be able to use any chroot which is armhf multiarch enabled.
$ sudo click chroot -aarmhf -fubuntu-sdk-14.04 -s utopic create
$ sudo click chroot -aarmhf -fubuntu-sdk-14.04 -s utopic maint apt-get install golang-go golang-go-linux-arm golang-go-dbus-dev golang-go-xdg-dev golang-gocheck-dev golang-gosqlite-dev golang-uuid-dev libgcrypt11-dev:armhf libglib2.0-dev:armhf libwhoopsie-dev:armhf libubuntuoneauth-2.0-dev:armhf libdbus-1-dev:armhf libnih-dbus-dev:armhf libsqlite3-dev:armhf crossbuild-essential-armhfAfter that the tricky bit was advising go to cross-compile:

$ click chroot -aarmhf -fubuntu-sdk-14.04 -s utopic run CGO_ENABLED=1 GOARCH=arm GOARM=7 PKG_CONFIG_LIBDIR=/usr/lib/arm-linux-gnueabihf/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig GOPATH=/usr/share/gocode/:~/go CC=arm-linux-gnueabihf-gcc go build -ldflags '-extld=arm-linux-gnueabihf-gcc' ubuntu-push-client.goIgnoring the click chroot wrapper:
  • CGO_ENABLED=1 - by default cgo is disabled when cross-compiling, but really shouldn't be as compiler names are standard $(GNU_TRIPPLET) prefixed tools
  • GOARCH=arm - set the target arch
  • GOARM=7 - set ABI level
  • PKG_CONFIG_LIBDIR - the ugly beast to pass where pkg-config should search for .pc files. With autoconf one simply sets PKG_CONFIG environment variable pointing at a cross-pkg-config, $(GNU_TRIPPLET)-pkg-config but go tool doesn't support it. I've raised merge proposal to get that added
  • Next I just set GOPATH to where my packages are and CC as to which compiler to use
  • The last portion to the puzzle was to pash "-ldflags '-extld=$CC'" because the linker tool (5l) didn't use environmental variable CC and simply defaults to gcc. I'll raise a merge proposal for this.
Overall that's it. Given that all of above can be re-factored into standard variables (e.g. use $GNU_TRIPPLET prefix, and offer to override it), I see no reason why cross-compilation in go with cgo cannot eventually become a simpleGOARCH=arm go build 

Marcin Juszkiewicz: AArch64 is in the house

Tue, 2014-06-10 14:49

Today FedEx courier delivered me a package. Inside was APM Mustang in 19″ rack case.

I unpacked, grabbed all required cables from my cable boxes (power, Ethernet, serial), connected it and booted. It arrived at very good moment as we are in a middle of Fedora 21 mass rebuild so I do not have to use remote machines anymore.

Will not write about technical details cause those are already known (8 cores, 16GB ram, SATA storage, 1GbE networking). Do not expect benchmarks as I am not allowed to publish results. If you want to compare build speed then go to [Launchpad][] and check how long it takes to build Ubuntu packages for arm64 target.

My plans for machine? Run Fedora rawhide, fix building issues. I also plan to play with virtualization to check how Ubuntu and Debian work.

All rights reserved © Marcin Juszkiewicz
AArch64 is in the house was originally posted on Marcin Juszkiewicz website

Related posts:

  1. AArch64 porting update
  2. Chromebook hackers: unite!
  3. AArch64 for everyone

Canonical Design Team: Malta Sprint

Tue, 2014-06-10 14:23

Our Apps and Platform teams took part at a design/engineering sprint on the beautiful island of Malta in May, and we thought we would share some pics to show a peek into “behing the scenes” and people working on the apps and operating system.

The sprint itself was a great experience, with over 150 people, engineers and designers, working together and planning out the next steps. Refined designs for mobile apps such as Browser, Camera and Telephony suite (Dialer, Contacts and Messaging) were unveiled and implementation got well underway, and on the platform team Scopes are starting to look really beautiful on the phone. There were plenty of tech demos and talks ranging from Cloud to Convergence to Mobile to Internet of Things – it was great to see everyone hacking, designing and discussing together about super exciting things. A good reminder that although Canonical has grown in size, at the core it still feels like a startup in a good sense.

It is an interesting time coming up to the release of the phone hardware, and these two weeks at Malta were a brilliant opportunity for all teams to sync up, work hard and squeeze in some R&R in the evenings too. Sun, great grilled seafood and the historical buildings of Valeta – it was fantastic to work in such a beautiful setting, and we cannot wait to get all the new goodies in the hands of people.

Jonathan Riddell: Ubuntu Online Summit KDE Frameworks Talk

Tue, 2014-06-10 11:04
KDE Project:

Ubuntu Online Summit starts today with talks and sessions on all matter of stuff related to Ubuntu. It opens with the highlight of the summit, KDE Frameworks - Libraries for all Qt users a talk about the 50-odd framework libraries KDE is releasing and how they will be useful to all Qt programmers. The excitable David Edmundson introduces the current status and what works well.

Daniel Pocock: reSIProcate v1.9 with WebRTC now available for Fedora 20 users

Mon, 2014-06-09 20:40

reSIProcate v1.9 has now moved from testing to stable and is available for Fedora 20 users.

Version 1.9.7 has also propagated to Debian testing and wheezy-backports, delivering improved stability as discussed in my previous blog.

Ready to try WebRTC?

The quickest way to set up your own WebRTC trial is to install the repro (reSIProcate SIP proxy) packages for your preferred Linux distribution and then copy JSCommunicator into a directory on your web server.

My earlier blog get WebRTC going faster gives specific examples of entries needed in repro.config..

WebRTC Calling from Android

I've continued to have success making and receiving calls with both the Firefox and Chrome apps on Android. This is a great way to reach out to friends and family using free software for communication.

More details and some screenshots are available in my earlier blog on Android WebRTC.

Bodhi.Zazen: Display-dhammapada version 1.1

Mon, 2014-06-09 20:18

display-dhammapada is a small package I have been maintaining for the last 2 years and I recently found the time to update. Verses from the English, German, or Polish translations of the
Dhammapada are displayed, either in a terminal or graphically.

With the update display-dhammapada to version 1.1 The German translation was added and titles are now displayed in the appropriate language.

The source code is located at my web site as well as a 64 bit .deb and .rpm (in the Debian and Fedora directories).

The program itself can be compiled as follows

mkdir ~/src
cd ~/src
tar xzvf display-dhammapada-1.1.tar.gz
cd display-dhammapada-1.1
sudo make install

To remove the program:

cd ~/src/display-dhammapada-1.1
sudo make uninstall

Zygmunt Krynicki: Pyotherside + QML + Python3 in practice, checkbox-touch code walkthrough

Mon, 2014-06-09 18:43
If you're interested in python3, QML and pyotherside you then you might be interested in this video I've recorded about checkbox-touch. Checkbox touch is a prototype application built with QML and python3, using the excellent pyotherside library to bridge the gap between the two worlds.

Robie Basak: Ubuntu Server Q&A Sessions

Mon, 2014-06-09 11:38

As part of the Ubuntu Server team's participation in the Ubuntu Open Summit, we'll be running two Q&A sessions this week aimed at Ubuntu Server users. We want to gather questions from the community both before and during the event, so that users can get direct and authoritative answers from those in the know.

This will be the first Ubuntu Open Summit, combining the previously separate Ubuntu Developer Summit and Ubuntu Open Week events. The event will run online, with live video streaming and participation using Google Hangouts and IRC. See the schedule for details. Sessions will be recorded and the videos will be available afterwards.

I suggest that questions be asked beforehand in any place we can grab them (eg. the mailing list, r/Ubuntu, etc), and then we can best prepare answers for you.

Alternatively, and for more interactivity, there will be an IRC channel that we will monitor during the sessions themselves.

Ubuntu Server Security Q&A

Currently scheduled for: Tuesday (2014-06-10) 19:00 - 19:55 UTC

Also known as "Security team reads mean tweets", Marc Deslauriers and Seth Arnold of the Ubuntu Security Team will be on hand to answer all questions security.

If you want to know how to secure your freshly installed Ubuntu Server, the pros and cons of various individual hardening approaches, how to make sure that your system has received a particular security update, or have any other question related to Ubuntu Server and security, this is your opportunity to find out.

And of course, I presume everyone wants to hear the Ubuntu Security Team read mean tweets!

Ubuntu Server systemd Q&A

Currently scheduled for: Wednesday (2014-06-11) 18:00 - 18:55 UTC

Following a long debate, Debian chose systemd in Februrary as the default init system for its upcoming "jessie" release, and Mark has confirmed that Ubuntu will follow Debian and also switch to systemd by default.

What are the implications of this move for Ubuntu Server users? Will 16.04 switch to systemd, and if so, when? When will Ubuntu Server users need to rewrite all of their custom upstart jobs?

Dimitri John Ledkov, an Ubuntu Core Developer closely involved with the systemd switch, will be online to answer your questions.

Submitting questions

We'll accept questions at any time, including during the event on IRC. Or if you know what you'd like to ask already, please post them to Reddit or to the Ubuntu Server mailing list and we will pick them up and prepare answers for you.

Schedule changes

Please keep an eye on the schedule in case it changes!

Ronnie Tucker: Steam Hits The Big 500 For Linux Games

Mon, 2014-06-09 09:20

500 Linux compatible games are now on Steam which is a pretty great number to point anyone at. No longer will people keep stating “but Linux has no games”, but sadly they will say Linux has very little AAA games which is true, but this will be a gradual build up of course.

Once the Steam Machines/SteamOS are released, and if they are successful we should see the number rise even quicker.


Submitted by: Liamdawe

Canonical Design Team: Cueing up users

Mon, 2014-06-09 08:57

The bottom edge swipe gesture is simple and accessible for users, so it’s strategic for application developers. By giving instant access to the most needed settings, controls, and views through the bottom edge, app developers have a powerful tool for crafting more useful and usable experiences.

In earlier postings we’ve talked about how the bottom edge can be harnessed effectively, but helping users to get curious about this special place on the interface is the key to unlocking the full value of an app. The solution is simple and elegant: smart cues.

What is a cue?

On first glance, the bottom edge cue is just a tiny label space that pops up when an app is opened, looking much like a simple tab or handle. When the user grabs it, or simply swipes up, anywhere along the bottom edge, the edge is activated normally.

The cue component can stay on screen as a label, or retract to a minimal handle that doesn’t clog the screen or distract from the user’s primary task. Finally, and perhaps most interestingly, the cue can become an app indicator bar, reminder the user about which settings are currently selected.

How to cue

For many apps, the bottom edge is ideal for providing a simple, always-accessible way for users to compose a new item like a message, note or add to a list of things. A cue for this purpose can be as straight forward as a “Create New” text label that slides up when the app is loaded to remind users of the action, but then retracts neatly to either a simple handle, or altogether, as the user interacts with other parts of the application. The minimized cue can remain on top of the screen if desired, providing users with an unobtrusive but persistent cue.

Combination cue and indicators

While a simple cue such as “create new” may be just right sometimes, but in some cases where settings or controls are located in the bottom edge, cues can work even harder, providing the user with an indicator bar of current setting. For example, in the camera app, the bottom edge cue shows the current flash setting and whether GPS tagging of photos is enabled. If the user triggers the bottom edge, controls for all of these settings are revealed.

Please and cues

Before you finalize your app design, think about how the bottom edge can help you deliver the most pleasing and effective user experience. Part of this plan should include the best use of the bottom edge cue, either as a label, a settings indicator, or both. Make it easy for users to discover what the bottom edge can do, and get more from your application.

Ronnie Tucker: RoboLinux Smooths the Linux Migration Path

Mon, 2014-06-09 08:48

RoboLinux is an impressive traditional Linux desktop distro. It could be an ideal vehicle for both enterprises and SOHOs to make the migration to Linux.

It comes with a few extra features that solve some of the potential problems of leaving other desktop platforms. One of its more enticing migration tools is a preconfigured virtual machine add-on that greatly reduces the IT burden of setting up Windows XP or Windows 7 to run in a VM environment within the Linux distro.

The website gives the impression that RoboLinux is unique in that it lets you run Windows in a VM setting that is immune to viruses and malware. However, all Linux distros are immune to the targeting attacks of decades-old viruses, as well as new malware. Running Windows in a VM setting within any VM-capable Linux distro will achieve the same degree of safety for Microsoft Windows.


Submitted by: Jack M. Germain

Mohamad Faizul Zulkifli: Load Balancing On Linux Using Nexthop

Mon, 2014-06-09 07:42
How to get faster internet connection for your workstations ? basically the more bandwidth, the low latency, the faster internet you will get. But it depends on your networking devices too. Using a gigabits ethernet adapter while using 10/100 Megabits of networking switches wont make your packet goes through faster (vise-versa)

The theory to get faster internet is to have faster networking devices, from network adapter, cables or high speed wireless router and also a fiber internet.

Load balancing is a technique to distribute packets to multiple gateways. Aim to optimize our available resources and the most important is to maximize throughput. Using multiple connections with load balancing instead of a single connections may increase reliability through redundancy.

On Linux operating systems, route command has many options. One of them are nexthop option. The next hop, or gateway, is the address of the next station to which the packet is to be sent on the way to its final destination.

If you are using both cable and wireless, operating system such as Linux or Windows will choose which one has the lowest latency to the gateway. In this case, cable will be always the winner.

How to maximize your available resources ? The command is simple, when you are connected to both cable and wireless, just type ip route del default scope global ; ip route add default scope global nexthop via dev eth0 weight 1 nexthop via dev wlan0 weight 1 && ip r

ip route del default scope global - to remove the default gateway that operating system has already choose for you based on the latency to the gateway.

ip route add default scope global nexthop via dev eth0 weight 1 nexthop via dev wlan0 weight 1 - this command will define your gateways for your selected network adapters. You will need to readjust your gateway addresses depending on your networks configuration. In my case, my gateway for my cable connection is and my gateway for my wireless connection is Please notice that my wireless adapter name is wlan0.

ip r - this command will show your gateways. You will see the outputs. For example,

root@linux:~# ip r
nexthop via  dev eth0 weight 1
nexthop via  dev wlan0 weight 1

This script will do the magic job. When i connects to my wifi, it will automatically runs the load balancing script.



if [ "$IF" == "wlan0" ]
    case "$2" in
        ip route del default scope global ; ip route add default scope global nexthop via dev eth0 weight 1 nexthop via dev wlan0 weight 1
Put it on /etc/NetworkManager/dispatcher.d/ and name it as This "90" in the name of the script means that this script will be executed in the last 10% of all scripts if you have a bunch of scripts to execute. Dont forget to make it executable. 

p/s - if you use desktop computer, you can install wifi usb adapter. You can try to install 3 or 5 network adapter (wifi, ethernet) to your desktop or laptop and readjust the command depending on your devices and gateways. Practically it will work, but i never tried. You also can make the script to run periodically, persistently by putting it to the crontab.

Michael Lustfield: All I Know About Cast Iron

Mon, 2014-06-09 05:00

Cast iron cookware is considered some of the best and most amazing stuff that anyone could ever cook with. My grandma gave me a cast iron dutch oven a while back and I never had the chance to use it because it was rusty, too big to use, and I haven't been camping in a long time. She recently passed away and my grandpa let me have the cast iron cookware.

This landed me with a decent amount of cast iron cookware, most of which was rather rusty and just kinda bad looking. It's not that they weren't cared for. Cast iron is something that you need to keep using to keep a fresh coat of seasoning on. If you don't use it, the seasoning can become ineffective and then you wind up with air and moisture getting to it. Air, moisture, and iron make rust.

Cast iron is a challenge to restore but I guarantee the reward is worth the effort.

Why Cast Iron

Cast iron is amazing, but only if you understand why.

  • Can almost always be restored
  • Holds up to high heats (if heated evenly, like in an oven)
  • As non-stick as non-stick pans get
  • Is non-stick without the Teflon crap that can't handle higher heats)
  • Will last your lifetime
  • Can be found for very cheap
  • No soap! (Don't use it!)
  • Excellent heat distribution (the #1 point)
  • Retains heat extremely well (the other #1 point)
  • You get a little bit of iron in your diet
Identifying That Iron

So, you're going to buy cast iron or looking at some now or considering looking around for it or... whatever you're doing, I don't care. You have or want cast iron cookware. You should know what you're looking at and why you do or don't want it. I learned a lot in short order and here are my foot notes.

Much cast iron cookware is not marked with a brand. It takes some research to know what particular markings mean.

Common older brands:

  • Wagner
  • Griswold
  • Lodge
  • Birmingham Stove & Range (BSR)

You're not likely to run across anything older than 1700.

If the cast iron has a "gate mark", it is older than 1900. Gate marks happened when the pan was broken out of the mold. Between 1875 and 1900, they were phased out by injecting the mold at the lip of the pan instead of the bottom.

Originally, cast iron was made to fit on top of a wood stove. Wagner, Griswold, BSR, and Lodge made stoves and then made the pans that would fit those holes. This is what the size printed on the pan means. It roughly means the diameter, but not always. For a time, they were produced with a heat ring which would set right inside of the hole to help keep the pan centered. The heat ring disappeared in the late 1970's.

If the heat ring is very neat to the edge of the pan and the pan has a sharp sloped edge, it was produced prior to 1950.

If it has "Made in <anywhere>" printed on the bottom, it's made after 1960.

"Wagner 1891 Original" was produced in the 1990's.

BSR changed from <number>/<letter> to "NO. <number>" in the 1950's.


If the brand isn't printed, these are some clues to who produced it. A pan may or may not have all of these characteristics. Example: A BSR pan either had the <number>/<letter> size or it had NO. <number> for size, but not both.


  • Three notches in the heat ring
  • Very rounded script used for the numbers
  • Used "SK" for Skillet
  • An extra handle opposite of the handle
  • Heavier than Wagner
  • Cornbread pan with an open hole


  • INCH and description "SKILLET" is spelled out completely
  • Typewriter style font


  • Angled handle (comes to a point)
  • Italic font for size


  • The size is perpendicular to the handle

Chicago Hardware Foundry:

  • Dented surface (like a golf ball)


  • Weight is between Lodge and Wagner
  • Extremely smooth surface
  • Solid round heat ring
  • Size will also have a letter or two (the mold letter)
  • Angled ridge on the bottom of the handle
  • "NO." number abbreviation
  • Cornbread pan without an open hole

Made in Asia:

  • Rough surface
  • Saucepan with wooden handle
  • Generally poor quality iron
  • Ridges on the top of the handle
  • No, they don't have lead in them

Everything listed here, except Asian cookware, is generally great quality.

Anything produced by Favorite Stove and Range (very light), Wapak (very light), or Martin Stove Company (very heavy) are also great brands. Most iron produced in Asia was done with low quality iron.

The New Stuff

New cast iron is fine and usually comes pre-seasoned. The quality is supposedly just as good as fifty years ago, however, the pre-seasoning means something to the pan. In order to properly pre-season, they need to make the pan rough so there is something for it to adhere to. This extra roughness causes sticking and isn't much fun to clean.

Many people will strip the seasoning off and then grind the pan smooth(er) and then re-season it. They usually feel that the seasoning they put on is better anyway. This is likely true. It's especially true if you do a great seasoning job. Pre-seasoning is usually done with soybean oil. This makes the older stuff much more enticing.

Cleaning Cast Iron

There is a lot on the internet about cleaning up cast iron and making it look pretty and amazing. Well, I tried a lot of it and a lot of it utterly sucks. I even bought a nice Dremel tool to clean it up. It's a great tool to have, but not useful for this job.

Electrolysis works, but it's not something I had handy or the motivation to build, so wasn't an option for me.

Really Bad

If your cookware is full of gunk, crap, rust, stuff, and other things, then it might very well fall into this category.

The best thing to do is clean it with a green scrubby pad as well as you can without water and then wipe it clean with a damp rag. Put it upside down in your oven and put the oven on self-clean. How long it stays in there depends on how bad the build-up is.

When it's done, LET IT COOL! If you force the oven door open too soon or open it after the oven has cooled but the iron hasn't, you risk a drastic change in temperature. This change can cause the cookware to either warp or crack. When taking the cookware out, everything that was caked on should just fall off. It might not be unwise to suck up the flakes on the pan with a vacuum hose before pulling them out. Yes, rust will remain.

Once out, wash the pan with cold water and soap. The soap will help remove any lingering oils and rust. Use a green scrubby pad and some mild dish soap. Once it looks shiny and new, rinse it extremely well. You don't want any soap to remain. Dry this extremely well right away or rust will form. Do not use warm water or the rust will come back faster.

You can now move on to seasoning it.

Not That Bad

If it's not in bad condition, you may get by with just scrubbing it well with a green scrubby pad and mild dish soap, then rinsing well with water, and drying immediately might be all you need.

Sometimes a soak in vinegar can help loosen some rust. Just remember that water is the enemy of cast iron. Keep it dry when not soaking.

If it's not bad, sometimes you can season right over top of tiny amounts of rust. When coating with oil, you'll actually take some of that thin layer too.


This one is tricky, there are thousands of methods out there and they're all basically the same but very different.

The oil/fat you use will make a big impact. If you choose something like Crisco that has a low smoke point you will have to bake it at a much lower temp and you end up with a softer finish.

After much research, I found that the best option is flax oil. Flax oil has a smoke point of 520 °F which means you can bake it at 450 °F without worry. Flax oil and the high temp produce a very hard seasoning that won't break down so easily over time and gives a very nice black appearance.

I chose organic flax oil because it had nothing else added. The other stuff I found had extra flavorings and I didn't want that inside the iron. I wanted just the flax oil.

Flax oil and linseed oil are basically the same thing, but they are very much not interchangeable. Don't try.

Just put a small amount of oil on the pan and coat the whole thing. Use the oil sparingly. You just want to get the whole piece wet with oil. Once you've hit every part of the pan, wipe it down with an absorbent paper towel. You should no longer see any streaks from the oil. This is key to making it look nice. If it's too thick, it will pool or drip.

Once your oven is pre-heated to 450 °F, you're ready to put your piece in the oven. Leave it in there for 30-60 minutes. Turn the oven off and let it cool with the door closed. Once it's cooled completely, take it out, put another thin layer of oil on it, wipe it down, and repeat the kiln process. You may need to repeat this process three times.

On your last baking cycle, leave it in the oven for up to two hours. This helps ensure your finish will be rock hard. On the last pass, just as it gets cold enough to handle carefully, I will flip the pan over and put just a small amount of oil on it where the iron touched the rack. I do this all inside the oven to prevent hitting the iron with too much cold air.

That's all there is too it! A lot of text here, but after doing it once, it's as hard as Crisco.

Once you have a good seasoning, just using it and caring for it is enough and you shouldn't have to ever season the inside again. It's possible you may have to touch up the bottom from time to time, but that shouldn't be anything more than baking it with some oil on the bottom.

Using Cast Iron

Now that you have you're cast iron cookware, know who made it, how old it is, and have seasoned it to perfection, it's time to cook with it!

The number one tip when using cast iron is to NEVER turn you're burner to high. This is exponentially more true with electric burners. If you put the pan on a very high heat, the bottom will heat faster than the rest of the pan. If this happens too rapidly, the edges won't have time to expand and the pan will warp. This isn't instant. Over time, it will ruin the pan. Electric burners tend to focus heat which makes this even easier to do.

Start your burner on low and let the pan warm up before turning up the heat. You shouldn't ever need to bring it up above medium or maybe medium high heat. High should be avoided like your crazy ex, especially with an electric range.

Obviously, you'll probably be cooking with oil. I recommend using either peanut or olive oil. Olive oil is a bit pricey but gives the best flavors and peanut oil is the best of the cheap options. They give great flavor and help maintain an amazing seasoning.

Once your up to temp, you'll stay there cast iron doesn't lose its heat just because you dropped something cool on it. It keeps a very nice consistent and even heat. That's part of why we love it so much.

If you want a steak that has an excellent crust, pre-heat a cast-iron pan to 400-500 °F (if you used flax oil) in an oven. Take it out out of the oven and sear the steak on both sides for three minutes each side. Put it back in the oven for another three minutes on each side. If you have two cast iron pans, one can be used to sandwich the meat and cook both sides at once.

The lower temp you cook your food at, the better it will end up. On medium-low heat, get some oil sizzling. Take stems off some portobello mushrooms and put them stem side down in the pan. Put them on the side of the pan and they'll cook themselves. Put a ground beef patty in there, wait a while, flip, wait, toss on a slice of cheese, take it all off, but don't stop! Take a bakery fresh bun, split it, and toast in the remaining oil. Now you're ready for the best burger ever. Bonus points for using grass-fed ground beef.

Make sure to not cook things too hot. If you do, grease will splatter and create a mess. This mess will probably form letters. It might look something like "I don't know what I'm doing."

Cleaning Cast Iron

You just finished your amazing meal and you realized what you've been missing in life. It wasn't a dog! Now you have to clean. Take a paper towel and wipe it down. Done. Stop arguing, you're done cleaning it!

If you really insist, you can let it cool, rinse with cold water, and wipe down again. Really, though, that's it.

Don't use soap unless you plan to start seasoning from scratch immediately. Just don't use soap. Absolutely NEVER EVER use the dish washer. NEVER! Did I make my point well enough? Don't ever do it! Want to clean everything off of it and start from scratch? Still, don't ever use the dishwasher.


Well, there we have it. Everything I know about cast iron at the moment is right here. I hope this will help many others learn to love cast iron cookware and care for it properly.

Paul Tagliamonte: adventures in android

Sun, 2014-06-08 18:31

I’ve been learning about android development over the last few weeks, and I think I’m slowly getting the hang of best practices.

It’s a bit tough, there’s a lot of stuff that’s not super Java-idomatic that’s become Android-idiomatic, so getting over that stuff has been interesting.

I’ve been finding that Android tends to re-implement most things in a similar enough way, but always with some small tweak that feels kinda funny.

It’s working well enough, and I’m hoping that I can clean up a few android libraries to deal with some of the OpenGov datasets I’m interested in.

If anyone has any tips on proper handling of what to make a fragment, and what activities should look like, I’d really love posts about that.

It seems like sometimes I have a 1-to-1 mapping of Fragments to Activity, but I want to keep it a fragment for large devices.

Anyway, best practices welcome.