news aggregator

Charles Profitt: Plugable USB 3.0 Dock

Planet Ubuntu - Wed, 2014-01-15 04:57

The Plugable (USB3-SATA-UASP1) USB 3.0 dock is a bit different than the most docks because the drive lays flat instead of standing straight up. I compared this to a Thermaltake BlacX Duet 5G. One of the first things I tested was how the dock and drive behaved when I suspended the computer. With the Thermaltake the dock and drive stayed on and spinning. With the Plugable the drive powered down and the dock indicator light turned from blue to red. I was quite astounded with the difference in the results when I tested both docks. I tested two drives using the built-in disks utility in Ubuntu.

Thermaltake – HD

Thermaltake – SSD

Plugable – HD

Plugable – SSD

The results were roughly the same for the traditional HD, but the Plugable dock got significantly better read results than the Thermaltake. The performance is even more amazing when you consider that the Plugable is $29.95 vs the Thermaltake $57. The dock, as you can see picture below, works with both 2.5″ and 3.5″ drives.

Benjamin Kerensa: Thoughts on Ubuntu Touch Images

Planet Ubuntu - Wed, 2014-01-15 01:10

Recently there has been buzz about Canonical’s plans to stop building images for certain Nexus devices while this may seem disappointing to developers who went out of their way to buy these devices. The good news is that Canonical could very easily update its instructions here with instructions on how to build the images for any device and leave building of images up to Developers.

Well I’m on the topic of Ubuntu Touch it is interesting to note that Canonical is riding a pretty fine line when it comes to complying with the licenses of the Android binaries it uses for hardware support and includes in its images.

The reason being is that Canonical is a for-profit business and is involved in commerce surrounding Ubuntu Touch and this means its not using the binaries in a non-commercial manner when it uses them in relation to its business.

Disclaimer from that still does not justify Canonical’s Commercial use:


Ubuntu for phones is released for free non-commercial use. It is provided without warranty, even the implied warranty of merchantability, satisfaction or fitness for a particular use. See the licence included with each program for details.

Some licences may grant additional rights; this notice shall not limit your rights under each program’s licence. Licences for each program are available in the usr/share/doc directory. Source code for Ubuntu can be downloaded from Ubuntu, the Ubuntu logo and Canonical are registered trademarks of Canonical Ltd. All other trademarks are the property of their respective owners.

Ubuntu for phones is released for limited use due to the inclusion of binary hardware support files. The original components and licenses can be found on the Google website.



Creative Commons Definition of Non-Commercial:

A commercial use is one primarily intended for commercial advantage or monetary compensation.

And some discussions on non-commercial use licensing and Wikipedia’s article which defines quite nicely what non-commercial means. But think of it in the sense of Creative Common’s non-commercial bit and how if a company used your work which required non-commercial use they too would be misusing your work.

In my opinion Canonical is not been very respectful of these Android binaries which are freely distributed with very simple requirements for those who want to use them.



David Planella: Make Ubuntu speak your language

Planet Ubuntu - Tue, 2014-01-14 18:58

It’s going to be one of the most exciting years in the history of Ubuntu. We’re seeing innovation and stunning work across the board, and a huge momentum and interest from OEMs and carriers to ship a phone with Ubuntu, with already a confirmed partner.

With our favourite OS expanding to yet another order of magnitude, every contribution is becoming even more important. And with phones shipping all over the globe, multilingual support and Ubuntu translators are going to be one of the keys to Ubuntu’s success.

In the same way you’ve helped us bring an excellent localized experience to the desktop throughout the years, we now need your help ensuring the phone reaches that level of excellence too. Once more, you can bring Ubuntu on phones to millions in their language.

To make it easier to focus on the most important parts, here’s a summary of the main Ubuntu components that can be translated in Launchpad, our collaborative translation tool.

And if you’re new to translating Ubuntu, you can also help! Check out our Translations Quickstart guide >

Unity and scopes

Unity is essentially Ubuntu’s UI, and version 8 is what is currently running on the phone and will ultimately run on all form factors once we achieve full convergence.

By translating Unity, the most visible user interface parts will appear in your language. Scopes are also part of Unity, and enable bringing content to users in a natural and organized way.


Indicators are another Unity technology that enables quick access to system settings that you access every day, such as networking, location, sound, etc., as well as the messaging menu. Translating indicators will localize their menus when you swipe from the top edge.

Core and system apps

You can think of core and system apps as being the same thing: a set the essential apps every user would expect preinstalled on their devices. Translating core apps, you’ll make it possible to have a richer localized experience with clock, camera, weather, calculator and more.

Testing translations

With the addition of multiple supported form factors, testing is important not only to ensure that translations are correct, but also that they fit in UI components of different widths. So please double-check that long texts fit in in the smaller factors such as the phone.

Translation testing on a running phone or on the emulator deserves an article of its own, so please stay tuned for the next update coming soon.

Happy translating!

Image: Human touch, by David Planella, under a CC BY-SA 2.0 license

The post Make Ubuntu speak your language appeared first on David Planella.

Ubuntu Kernel Team: Kernel Team Meeting Minutes – January 14, 2014

Planet Ubuntu - Tue, 2014-01-14 17:13
Meeting Minutes

IRC Log of the meeting.

Meeting minutes.


20140114 Meeting Agenda

ARM Status

No new update this week.

Release Metrics and Incoming Bugs

Release metrics and incoming bug data can be reviewed at the following link:


Milestone Targeted Work Items    apw    core-1311-kernel    5 work items          core-1311-cross-compilation    2 work items          core-1311-hwe-plans    1 work item       bjf    core-1311-dmraid2mdadm    1 work item       ogasawara    core-1311-kernel    3 work items          client-1311-xorg-general    1 work item       smb    core-1311-dmraid2mdadm    1 work item          servercloud-1311-openstack-virt    6 work items   

Status: Trusty Development Kernel

Last week we upoaded our first v3.13 based kernel for Trusty to the
archive. The most recent upload brings in a rebase to v3.13-rc8. The
AppArmor regression introduced in the original upload should already
have been resolved as well.
Important upcoming dates:
Thurs Jan 23 – Alpha 2 (~1 week away)
Thurs Feb 6 – 12.04.4 Final Release (~3 weeks away)

Status: CVE’s

The current CVE status can be reviewed at the following link:

Status: Stable, Security, and Bugfix Kernel Updates – Saucy/Raring/Quantal/Precise/Lucid

Status for the main kernels, until today (Nov. 26):

  • Lucid – Holding
  • Precise – Holding
  • Quantal – Holding
  • Saucy – Holding
    We are in a holding pattern waiting to see if any regressions show up that would cause us
    to respin before the 12.04.4 release goes out.
    Current opened tracking bugs details:

    For SRUs, SRU report is a good source of information:


    Note: Raring hit EOL and is no longer supported. However, the lts-backport-raring kernel
    *WILL* continue to be supported until the first point release of the next LTS (14.04.1).

Open Discussion or Questions? Raise your hand to be recognized

No open discussions.

Marcin Juszkiewicz: Start: Waiting for yumcache lock

Planet Ubuntu - Tue, 2014-01-14 09:58

Have you ever tried to build a package under Fedora (or RHEL)? Did you used “mock” for it? If you answered “yes” to both questions I have a task for you: do 2 or 3 builds at SAME time…

Curses, curses and other ugly words will start in your mind. I have no idea why in days of multiple cpu cores and gigabytes of memory “mock” tool forces users to do one build at time. Sure, there are ways to make several builds at same time but all sucks. And I am going to write why and compare it to “pbuilder” from Debian world.

Ok, so what “mock” is? It is a tool which do some tasks in defined order:

  • creates chroot with base system
  • installs required development packages
  • creates source package
  • installs build dependencies
  • builds package
  • copies resulting packages and logs into results dir

So where the problem is? First thing: there are multiple problems ;(

First issue: mock assumes that there will be one run at time and does it in /var/lib/mock/TARGET/ (where TARGET is ‘fedora-rawhide-aarch64′ for example). This can be solved with “–uniqueext=packagename” argument.

Second issue: there is ONE yum! Instead of using yum inside of chroot mock is using system one. So if you run few mocks at time (remember: cpu time and memory are cheap) you will see “Start: Waiting for yumcache lock” message for most of time (twice per build).

Why it drives me mad? Because “pbuilder” in Debian did not have such silly issues. Each build was done in “mktemp” named directory and APT was used inside of chroot. Sure, that could mean more fetching of packages but I had local APT proxy for it which allowed me to do 30-50MB/s downloads.

And I do not want to mention fact that if you want to configure mock you have to do that system wide…

All rights reserved © Marcin Juszkiewicz
Start: Waiting for yumcache lock was originally posted on Marcin Juszkiewicz website

Related posts:

  1. I miss Debian tools
  2. What I don’t like in Debian
  3. My first day with Fedora

The Fridge: Ubuntu Weekly Newsletter Issue 350

Planet Ubuntu - Tue, 2014-01-14 03:01

Javier L.: UGJ, ETA 3 months

Planet Ubuntu - Mon, 2014-01-13 23:27


This is a kindly reminder of the Ubuntu Global Jam, a world wide event intended to collaborate as community around Ubuntu. This year it will be organized from Friday 4th April 2014 to Sunday 6th April 2014 and right now it’s a great time to start defining where yours will be hosted and what activities you’ll do.

In the ubuntu-mx team, ours will be hosted on Saturday 5th April 2014, and we’ve already started pushing publicity through our main media channels, so should you do!

Happy Jamming =D!

Tony Whitmore: Oh yes they did!

Planet Ubuntu - Mon, 2014-01-13 21:08

This weekend I had the pleasure of watching my parents do something I’ve never seen them do before. Acting together. On a stage. In front of people who have paid to be there.

The church that they attend resurrected its annual pantomime this year, for the first time in probably fifteen years. Conversation over Christmas was about little else, and they have clearly put heart and soul into it since August when rehearsals began.

I went along to the performance not knowing too much about what to expect, apart from embarrassment. Dad has been a dame before and something tells me he was near the front of the line of volunteers, offering to don the wig and heels again. It is a measure of his commitment that he shaved his ankles and forearms for the role. Mum claims she was roped into playing the baddie’s son who gets to woo a milkmaid with enormous buckets.

My parents are, I hope they won’t mind me saying, both in their sixties now. Yet you wouldn’t know it if you had seen them throwing themselves around on the stage. Dad actually did a forward roll, in heels. Mum sang and danced and looked so different in the costume and wig that I didn’t recognise her at first!

Of course, there were plenty of other people in the cast doing their bit. With a script and songs written especially for the run, this was not an AmDram production that did things by halves. Particularly impressive were the costumes, even the chorus dressed in consistent and plausible outfits. Clever use of moving lights kept the lighting rig small. But above all it was fantastic to see my folks having a ball on stage, clearly loving every moment of it. Congratulations.

Pin It

Jonathan Riddell: Tier 1 is a Slam Dunk

Planet Ubuntu - Mon, 2014-01-13 17:41
KDE Project:

KDE Frameworks 5 tech preview shipped last week and we've been packaging furiously. This is all new packaging from scratch, none of our automated scripts we have for KDE SC. Tier 1 is in our experimental PPA for Trusty. Special thanks to Scarlett our newest Kubuntu Ninja who is doing a stormer.

Ubuntu LoCo Council: Defining Bug Status for the ubuntu-locoteams Project

Planet Ubuntu - Mon, 2014-01-13 16:50

And as promised, more news from us are coming in. We are starting this year with new plans, new ideas, and trying to refresh some things.

The ubuntu-locoteams Project on Launchpad is where issues against LoCo Teams can be filed, but is mostly used by the LoCo Council to keep track of the (re-)verification processes that are taking place. If you are a team contact or admin you may already know that we use bugs for that purpose. Personally, I like them as they are versatile, and give an option to have a (re-)verification done if the team contact cannot be present on a meeting. But sometimes team contacts, or even we, may be confused about what each bug status means on this pseudo-project. This is why we thought about it, and have created a definition for each bug status, that will be applied when a bug is set on the ubuntu-locoteams project on Launchpad.

We have created a wiki page which explains the following bug statuses:

  • New: Bug has been just filed, no response from the contact/person in charge yet.
  • Incomplete: Cycle has ended and a (re-)verification application is not on file. OR Team has expired and a re-verification application is not on file.
  • Opinion: Everything that is not a (re-)verification.
  • Invalid: Bug is not valid (can be a duplicate or something really invalid).
  • Won’t fix: Team doesn’t exist / bug has been created in vain / team existed but is now closed.
  • Confirmed: Bug has been just filed and the contact/person in charge has replied.
  • Triaged: (Re-)verification will be discussed on a meeting.
  • In Progress: (Re-)verification voting procedure is currently open and the process is being followed on the bug, not on a meeting.
  • Fix Committed: Team is (re-)verificated, but its membership to ~locoteams-verified needs to be (re)set.
  • Fix Released: Everything has been done and team has been added to ~locoteams-verified, process is done.

We hope that this definitions can make the (re-)verification process and its stages more clear, and help everyone understand it better. If you or your team have any enquiries about the (re-)verification process, make sure to send us an email to, or drop by the #ubuntu-locoteams channel on (click here to access via a web client). Again, expect more from us soon!

Dustin Kirkland: How I REALLY WISH I could use my Intel NUC

Planet Ubuntu - Mon, 2014-01-13 13:27

Ars Technica posed an interesting question back in October:We have an Intel NUC -- what should we do with it?
Here's one idea...Of course I have Ubuntu One storage and Dropbox account.  And I'm very well familiar with and dozens of other highly successful cloud storage solutions too.

These are unfortunately not the solution I want, to the problem I have.

I've considered many, many alternatives.  But ultimately, the only product on the market which I'm willing to buy is a co-lo service.  I want full root access, inside of a virtual private server, running a pristine, unspoiled, unmodified Ubuntu LTS server.  And attached to that, I want a lot (like, 1TB or more) of highly available, scalable block storage.  Not object storage.  BFS.  Block frickin' storage.  I want to format it with the file system of my choosing, and encrypt the data within with a cryptosystem and key of my choosing.

And finally I want to run rsync over an encrypted ssh connection multiple times per day to push my backups "to the cloud".

That's it.  And that's neither U1 nor Dropbox.  That's a little bit like, but not really.

I currently use AWS's EC2 and EBS.  I'm happy with the technology, but unhappy with the cost.

You're welcome to try, but you're not going to convince me to do this some other way.  Sorry.  This method is time-tested, recovery-proven.

A few years ago, I blogged about how I used a Dell Mini9 netbook as an Ubuntu Server.  I tucked that machine away in a nook at my parents house, and it served me reasonably well as a (free) co-lo for a several years.

 But there is now a clear and present opportunity now for a new cloud services business to emerge.  And the industry perfect poised to offer such a cloud service is one of the oldest brick-and-mortar institutions in human history....


Yes, banks.  You know, the important looking place your parents used to visit a couple of times per week to deposit and cash checks, but now largely replaced by robots called Automated Teller Machines (ATMs).

There's really only 2 reasons I've visited a bank in the past 15 years.
  1. To have a document notarized
  2. And to access my safe deposit box

And every single time I do the latter, I yearn for a power outlet and an Ethernet jack in that magic, safe little box.
Consider that for a minute...  How nice would it be, to have your physical co-lo machine, under lock and key, in a safe, held by an old and trusted financial institution?  A physical location that you could travel to, authenticate using multiple forms of identification, present a key, open a sturdy looking box, and access your micro PC (with current technology, a sleek little Intel NUC).
I think banks are extraordinarily well positioned to offered this as a service, as there are strong, established standards for physical security, and they're well placed in most neighborhoods around the world.  Establishing the service would mean beefing up redundant power supplies, internet connectivity, and air flow in at least one portion of the safe deposit vault (which might mean an altogether new vault).
And the service itself?
  • I currently pay $50 per year for a small, document-sized safe deposit box (which, by the way, the NUC fits within -- I've already checked).
  • The NUC itself, at maximum energy consumption, draws 17W, at $0.125/KWh (the current rate in Austin, Texas), costs approximately $18.60 in energy costs per year
  • And a bare minimum Internet service plan runs about $20/month in my area, or $240/year
So at retail costs, I think we're talking somewhere between $300 - $500 per year for this service.  Done well, this is easily worth $1200 per year to me.  Which I would delightfully buy, as this is actually not far off from my yearly AWS bill.
How long have I been thinking about this?  Nearly 10 years!  Regrettably, I filed way-too-many patents during my 8 years at IBM (which itself deserves a blog post of contrition).  Including one on this very concept (US Patent 7,484,657; filed July 14, 2005; granted February 3, 2009).  Not that IBM has done anything productive with it to date, much to my chagrin :-(

So there, Ars Technica, that's what I would do with my Intel NUC :-)


Canonical Design Team: Sheets transition

Planet Ubuntu - Mon, 2014-01-13 09:21

We’ve recently been exploring how the share transitions should work when you’re previewing a photo in gallery mode. Our main goal is that there is a consistent transition for sharing photos across the phone.

This is the latest iteration of the explorations we’ve been doing, and, as such, these transitions are still work in progress, but certainly worth sharing.

Step by step

Video: Sharing a photo in photo gallery mode

The first transition happens when you select “Share” from the toolbar. This takes you to a ‘content picker’ mode where you can select where you’d like to share your photo (Facebook, Twitter, etc.).

The intention is that the ‘content picker’ transition is similar to the ‘page stack’ one — which takes you deeper into the app — but because you’re going into a ‘content picker’ mode the transition needs to be slightly different. That difference is the direction: instead of going from right to left it goes bottom to top.

Once you’ve selected how to share your photo, the screen splits slightly below where you’ve tapped (in the example, below Facebook), and there is a subtle transparency fade so that the transition is less jarring.

In the next step, the transition takes you to an embedded Facebook share page, where you can write a description about the photo you’re posting. Once you select the description box, the OSK keyboard comes from the bottom to top, something that is always consistent across the phone.

When you click “Post”, a similar transition to the selecting share transition, but reversed, takes you back to the photo.

Your feedback

As I’ve mentioned before, this is still work in progress, but we’re really interested in hearing your thoughts — let us know what you think in the comments.

Duncan McGreggor: Prefix Operators in Haskell

Planet Ubuntu - Mon, 2014-01-13 02:47
I wanted to name this post something a little more catchy, like "McCarthy's Dream: Haskell as Lisp's M-Expressions" but I couldn't quite bring myself to do it. If s-expressions had greater support in Haskell, I would totally have gone for it, but alas, they don't.

However, there is still reason to celebrate: many Haskell operators do support prefix notation! This was a mind-blower to me, since I hadn't  heard about this until last night...

At the Data Day Texas conference this past Saturday, O'Reilly/StrataConf had a fantastic booth. Among the many cool give-aways they were doing, I obtained a coupon for a free ebook and another for 50% off. Upon returning home and having made my free book decision, I was vacillating between an OCaml book and the famous Haskell one. I've done a little Haskell in the past but have never touched OCaml, so I was pretty tempted.

However, something amazing happened next. I stumbled upon a page that was comparing OCaml and Haskell, which led to another page... where Haskell prefix notation was mentioned. I know many Haskellers who might read this would shrug, or say "yeah, we know", but this was quite a delightful little discovery for me :-)

I don't remember the first page I found, but since then, I've come across a couple more resources:
That's pretty much it, though. (But please let me know if you know of or find any other resources!)

As such, I needed to do a lot more exploration. Initially, I was really excited and thought I'd be able to convert all Haskell forms to s-expressions (imports, lets, etc.), but I quickly found this was not the case. But the stuff that did work is pretty cool, and I saved it in a series of gists for your viewing pleasure :-)


The first test was pretty simple. Finding success, I thought I'd try something I do when using a Lisp/Scheme interpreter as a calculator. As you can see below, that didn't work (the full traceback is elided). Searching on Hoogλe got me to the answer I was looking for, though. Off to a good start:

More Operators

I checked some basic operators next, and a function. Everything's good so far:


Here are some basic list operations, including the ever-so-cool list difference operator, (\\). Also, I enjoyed the cons (:) so much that I made a t-shirt of it :-) (See the postscript below for more info.)

List Comprehensions

I'm not sure if one can do any more prefixing than this for list comprehensions:


Same thing for functions; nothing really exciting to see. (Btw, these examples were lifted from LYHGG.)


Things get a little more interesting with lambda expressions, especially when a closure is added for spice:

Function Composition

Using the compose operator in prefix notation is rather... bizarre :-) It looks much more natural as a series of compositions in a lambda. I also added a mostly-standard view of the compose operator for comparison:


I've saved the best for last, an example of the sort of thing I need when doing matrix operations in game code, graphics, etc. The first one is standard Haskell...

Wow. Such abstract. So brains. 

Note that to make the prefix version anywhere close to legible, I added whitepsace. (If you paste this in ghci, you'll see a bunch of prompts, and then the result. If you're running in the Sublime REPL, be sure to scroll to the right.)

And that pretty much wraps up what I did on Sunday afternoon :-)

Other Resources

Post Script

If you're in the San Antonio / Austin area (or SF; I'll be there in March) and want to go in on a t-shirt order, let me know :-) We need at least six for the smallest order (tri-blend Next Level; these are a bit pricey, but they feel GREAT). I'll collect payment before I make an order.

Sam Hewitt: Cucumber Tzatziki Recipe

Planet Ubuntu - Mon, 2014-01-13 00:00

Tzatziki is a cool and creamy cucumber condiment, with a little tanginess. I use it to frequently accompany grilled meats and veg(-etables) –souvlaki– or when I'm in the mood for Greek.

Tzatziki Recipe
  • 1 large cucumber
  • 2 cloves garlic, crushed & minced
  • 1 cup plain greek yoghurt
  • juice of 1/2 a lemon
  • 1 tablespoon dill, mint or parsley, chopped
  • 2 tablespoons olive oil
  • kosher salt & pepper, to taste
  1. Seed and chop the cucumber –you may peel it as well, but I like to leave the skin in for added crunch and colour.
  2. Place chopped cucumber in a bowl, and add the garlic, olive oil, lemon juice chopped herbs and liberally season with salt & pepper.
  3. Stir, cover and marinate for 10-15 minutes –during this the salt will draw some of water of the cucumber.
    • Optional step: place the yoghurt in a strainer in some cheesecloth and let strain for as long as you marinate the cucumber. This too will bring out some of the excess water.
    We want to remove as much excess liquid as possible from the ingredients as not to have too runny of end result.
  4. Pour off the excess liquid from the cucumber mixture (or strain with fine mesh strainer).
  5. Stir in the yoghurt and re-cover and refridgerate until use.

Sam Hewitt: Creating "Symbolic" Icons for the Web

Planet Ubuntu - Sun, 2014-01-12 00:00

Something I've become a huge user (and fan) of is embedding SVG files on the web, especially simple pictograms that I can colour with CSS–such as the symbolic icon on this button that plugs Moka, for example. :)

Moka Project

It yields a much better result than raster graphics in my opinion and is much better in this modern age of websites with responsive layouts.

So now I'm going to tell/show you how to do it. More specifically, how to make a "symbolic" icon for your webpage.

Step 1: Design your Icon

I'm going to make the assumption you know how to make a vector graphic. So: open your favourite SVG editor –like Inkscape– and design your icon.

Make a simple pictogram (which is all one path)

If you want a drop shadow (like I've done there) duplicate said pictogram and move it one pixel south and place it on the bottom of the layer stack.

Fill colours are irrelevant, since we'll be using CSS later on.

Step 2: Remove all the unnecessary bits from the SVG

This makes the later steps simpler, but feel free to skip it if you know your way around an SVG's XML.

Personally, I use scour to scrub my SVGs of all the accumulated metadata and the like:


What you're left with is a trimmed down SVG XML file:

I've replaced the "<" and ">" typically found in XML with "[" and "]" so you can see the code on this site. [?xml version="1.0" encoding="UTF-8" standalone="no"?] [!-- Created with Inkscape ( --] [svg id="svg7384" xmlns:rdf="" style="enable-background:new" xmlns="" xmlns:osb="" height="17" width="16" version="1.1" xmlns:cc="" xmlns:dc=""] [defs id="defs7386"] [filter id="filter7554" color-interpolation-filters="sRGB"] [feBlend id="feBlend7556" in2="BackgroundImage" mode="darken"/] [/filter] [/defs] [g id="layer15" transform="translate(-801 196)"] [path id="path3002" opacity=".5" style="color:#bebebe;enable-background:accumulate" d="m15 1.875l-1.125 0.125-8 1-0.875 0.125v0.875 7.188c-0.3165-0.114-0.6445-0.188-1-0.188-1.6569 0-3 1.343-3 3s1.3431 3 3 3 3-1.343 3-3v-8.125l6-0.75v5.063c-0.316-0.114-0.644-0.188-1-0.188-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3v-10-1.125z" transform="translate(801 -196)" /] [path id="path8432" style="color:#bebebe;enable-background:accumulate" d="m15 0.875l-1.125 0.125-8 1-0.875 0.125v0.875 7.188c-0.3165-0.114-0.6445-0.188-1-0.188-1.6569 0-3 1.343-3 3s1.3431 3 3 3 3-1.343 3-3v-8.125l6-0.75v5.0625c-0.316-0.1135-0.644-0.1875-1-0.1875-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3v-10-1.125z" transform="translate(801 -196)" fill="#fff"/] [/g] [/svg]

Now the only parts we're concerned with are the paths that define our icon (bolded above).

Step 3: Creating a Web-Ready version

Using my example/template below, or building one from scratch, in a text editor:

  1. Define an element to house the embedded SVG, in my example it's a div with a custom class.
  2. Copy the value(s) of d of the desired path in the SVG file (bolded above).
  3. Paste the d value in the new paths of our embedded SVG.
  4. Give each path a style class for use with CSS.
  5. Make such to match the width and height to that of the original SVG file.
Remember, I've replaced the "<" and ">" with "[" and "]" so be sure to switch them back for your use. [div class="pictogram"] [svg height="17" width="16" version="1.1" xmlns="" style="overflow:hidden;position:relative;" ] [path class="icon-drop-shadow" d="m15 1.875-1.125 0.125-8 1-0.875 0.125v0.875 7.188c-0.3165-0.114-0.6445-0.188-1-0.188-1.6568 0-3 1.3432-3 3s1.3432 3 3 3 3-1.3432 3-3v-8.125l6-0.75v5.0625c-0.316-0.114-0.644-0.188-1-0.188-1.6568 0-3 1.3432-3 3s1.3432 3 3 3 3-1.3432 3-3v-10-1.125z" /] [path class="icon-fill" d="m15 0.875-1.125 0.125-8 1-0.875 0.125v0.875 7.188c-0.3165-0.114-0.6445-0.188-1-0.188-1.6568 0-3 1.3432-3 3s1.3432 3 3 3 3-1.3432 3-3v-8.125l6-0.75v5.0625c-0.316-0.1135-0.644-0.1875-1-0.1875-1.6568 0-3 1.3432-3 3s1.3432 3 3 3 3-1.3432 3-3v-10-1.125z" /] [/svg] [/div] Step 4: Styling

Now we can write our CSS, using the styles we created earlier:

/*----- Pictograms -----*/ .pictogram { opacity:1.0; background:center no-repeat ; display:inline; height:17px; width:16px; /* Plus any other custom CSS */ } /*----- Pictograms -----*/ .icon-fill { fill:#fff; /* Plus any other custom CSS */ } .icon-drop-shadow { fill:#000; opacity:0.2; /* Plus any other custom CSS */ }

Now if you were to use the CSS and the embedded SVG on your website you could have something like this:


The button is also all CSS, but I won't get into that here. Happy vectoring! :)

Adnane Belmadiaf: How to use the Built-in Screen Recording in Android 4.4 KitKat

Planet Ubuntu - Sat, 2014-01-11 20:30

Android 4.4 KitKat now supports screen recording, it's only accessible via an ADB command on unrooted devices a. This featues is really a great way to create walkthroughs, tutorials for apps and also perfect for reporting bugs.

To start using it you need to install ADB, you can use the phablet-team PPA if you are using Ubuntu which has the tools and dependencies for 12.04, 12.10, 13.04 and 13.10 to get everything setup, if not you can download the Android SDK from the Android developer site

$ sudo add-apt-repository ppa:phablet-team/tools $ sudo apt-get update $ sudo apt-get install android-tools-adb Enable Developer Mode
  • Go to the settings menu, and scroll down to "About phone." Tap on it.
  • Scroll down to the bottom, where you see "Build number."
  • Tap on it seven (7) times.
Enable the USB debugging

Once done hit the Back button, youl'll see an new entry called "Developer Options" just above the "About phone." entry, tap on it, scroll down to the debugging section, then enable USB debugging, note that you’ve to confirm the security prompt on your device :

Using the Screen Recording

Once done, you need to make sure that your device is listed & connected using :

$ adb devices List of devices attached xxxxxxxxxxxxxxxx device

Then all you have to do is :

$ adb shell screenrecord /sdcard/recording.mp4 && adb pull /sdcard/recording.mp4

The default and maximum duration of a screenrecord is 3 minutes, you can use the --time-limit argument to set the limit you want, here all arguements you can set :

  • --help : Displays a usage summary.
  • --size : Sets the video size, for example: 1280x720. The default value is the device's main display resolution (if supported), 1280x720 if not. For best results, use a size supported by your device's Advanced Video Coding (AVC) encoder.
  • --bit-rate : Sets the video bit rate for the video, in megabits per second. The default value is 4Mbps. You can increase the bit rate to improve video quality or lower it for smaller movie files. The following example sets the recording bit rate to 6Mbps: screenrecord --bit-rate 6000000 /sdcard/demo.mp4
  • --time-limit : Sets the maximum recording time, in seconds. The default and maximum value is 180 (3 minutes).
  • --rotate : Rotates the output 90 degrees. This feature is experimental.
  • --verbose : Displays log information on command line screen. If you do not set this option, the utility does not display any information while running.

Ubuntu LoCo Council: New Logos Announced!

Planet Ubuntu - Sat, 2014-01-11 18:25

As many of you know, we opened a contest to find the new logos for the LoCo Teams and LoCo Council. After a while, we have finally decided that the winner is…

Sam Hewitt!

You should be seeing the new logos in place in a couple minutes on the ~locoteams and ~ubuntu-locouncil teams on Launchpad. You can check the logo set on SVG format here. We should remind you that the set is licensed under a CC-BY-SA 3.0 License. Thanks to all people who participated with their logos, and make sure to expect more news from us soon!

Ubuntu Classroom: 2nd Call for Instructors: Ubuntu User Days on Jan 25-26th 2014

Planet Ubuntu - Sat, 2014-01-11 06:32

The Classroom Team is proud to announce that we’ll be hosting our next Ubuntu User Days on Saturday January 25th, 14:30 UTC – Sunday the 26th 2014, 3:00 UTC.

“User Days was created to be a set of courses offered during a one day period to teach the beginning or intermediate Ubuntu user the basics to get them started with Ubuntu”

In order for this event to be a success, we need instructors to lead sessions.

To volunteer to lead a session, you can contact a member of the Ubuntu User Days Team by sending an email to myself (jose at, the ubuntu-classroom at mailing list or by contacting us on IRC by stopping by #ubuntu-classroom-backstage on We still have plenty of slots open for the two days, so make sure to grab yours now!

If you are unsure of a topic for your session, you can visit the Course Suggestions page:

If you are unsure about expectations for class instructors, please ask! You may also visit the logs from past Ubuntu User Days:

We are always keen on seeing new instructors around, if you have any doubts on how all of this is ran you can visit us on our IRC channel (#ubuntu-classroom-backstage on Please be sure to pass this announcement along to any of your friends who might be interested in leading a session.

Lubuntu Blog: Lots of LX updates

Planet Ubuntu - Fri, 2014-01-10 15:43
The coder of the entire desktop LXDE, PCMan, was busy these days. He was updating the main core libs and app (pcmanfm / libfm 1.2.0), the image viewer (gpicview 0.2.4) and the appearance config tool (lxappearance 0.5.5), getting improved with bug fixes and new features: pcmanfm: dual pane view pcmanfm: create symlinks lxappearance: fix creating themes lxappearance: compression use xz format

Colin King: cppcheck - another very useful static code analysis tool

Planet Ubuntu - Fri, 2014-01-10 12:30
Over the past months I have been using static code analysis tools such as smatch and Coverity Scan on various open source projects that I am involved with.  These, combined with using gcc's -Wall -Wextra have proved useful in tracking down and eliminating various bugs.

Recently I stumbled on cppcheck and gave it a spin on several larger projects.  One of the cppcheck project aims is to find errors that the compiler won't spot and also try to keep the number of false positives found to a minimum.

cppcheck is very easy to use, the default settings just work out of the box. However, for extra checking I enabled the --force option to check of all configurations and the --enable=all to report on checks to be totally thorough and pedantic.

The --enable option is especially useful. It allows one to select different types of checking, for example, coding style, execution performance, portability, unused functions and missing include files.

Even though my code has been through smatch and Coverity Scan, cppcheck still managed to find a few issues using --enable=all

1. unused functions
2. a potential memory leak with realloc(), for example:

buf = realloc(buf, new_size);
if (!buf)
     return NULL;

if realloc() fails, buf can be leaked.  A potential fix is:

tmp = realloc(buf, new_size);
if (!tmp) {
     return NULL;
} else
     buf = tmp;

3. some potential sscanf buffer overflows
4. some coding style improvements, for example, local auto variables could be moved to a deeper scope

So cppcheck worked well for me.  I recommend referring to the cppcheck project wiki to check out the features and then subjecting your code to it and seeing if it can find any bugs.


Subscribe to Free Software Magazine aggregator