After multiple months of hard work, I’m pleased to announce that Roland and I finished updating the Debian Administrator’s Handbook for Debian Wheezy.
By the way, as part of the launch of this updated edition, you can benefit from a 10% discount on any paperback copy ordered before January 9th 2014. Just click here and place your order.
We have put lots of hard work on this edition, doing quite some janitorial work. We didn’t cover as many new topics as I would have liked, but I’m still proud of the end result.
The book has a nice preface co-signed by the current and former Debian Project Leaders. Let me quote a short extract:
The book you have in your hands is different. It’s a free as in freedom book, a book which is up to Debian freedom standards for every aspects of your digital life. […] You can apt-get install this book, you can redistribute it, you can fork this book or, better, submit bug reports and patches for it, so that other in the future can benefit from your contributions. The “maintainers” of this book — who are also its authors — are longstanding members of the Debian Project, who grok the freedom ethos that permeates every aspect of Debian.
Enjoy it and share your comments! Even better if you write up a review that we can link from the website.
Today I wrap up my week-long “staycation” with the release of Parole Media Player 0.5.91. The media player with the curious name (“parole” means “lyrics” in Italian) continues it’s steady march towards 0.6 with a new plugin and several fixes.Release Notes
- Added a new MPRIS2 plugin, thanks to Matias and Hakan (of Pragha fame)
- Added realmedia video to supported video mimetypes (bug #10434)
- Fixed untranslatable strings (bug #10418)
- Fixed loading of playlists with relative paths (bug #10436)
- Fixed plugin installation on some platforms (bugs #10142, #10441)
- Fixed failing debug builds on some platforms (bug #10525)
- Fixed broken “Remove Duplicates” functionality
- Fixed playlist searching
- Started Plugin API documentation updates (more on this ahead)
This latest addition is thanks to the hard work of Matias and Hakan, who provided the majority of the effort to create the MPRIS2 plugin. The Media Player Remote Interface Specification (MPRIS) is a standard DBUS interface for controlling media player.
Implementations can be found in most desktop environments, such as the Ubuntu Sound Indicator, the GNOME Shell Media Player extension, and the upcoming Xfce Sound Panel Applet.Download and Installation
Additionally, updated packages should arrive soon in the Xfce 4.12 PPA for Ubuntu users. Exercise caution in enabling this PPA as it contains development packages not meant for the everyday user.
If you encounter any bugs, please report them following our bug reporting guidelines.Looking for Help
Are you familiar with Gtk documentation tools (gtk-doc)? We’re trying to complete our Plugin API documentation, and can use some more experienced individuals helping us out. If you’re interested, let us know in the comments or even send us a merge request. Any help is appreciated!
Over the past several years I have watched educational leaders talk about technology literacy, 21st century skills, ISTE standards (formerly the NETS) and STEM. As a parent and community member I remain unimpressed with what my local school districts are offering in the way of computer science education. As an employee of a school district I see little that makes me think meaningful change is coming any time soon. The following are examples:
Example High School Courses Offered 2013-14:
- Business Department:
- Advanced Microsoft Applications: The key to productivity is the ability to integrate the capabilities of software. This computer course utilizes realistic activities and projects designed for learning and integrating Microsoft Office 2007 suite of application software.
- Personal Computer Keyboarding: Keyboarding is a necessary skill in this computer age!
- Web Page Design: This Web design course teaches you how to plan, organize, and create a Web site from start to finish. Using HTML code and Notepad, then progressing into using Microsoft Expressions Web, (a Web authoring and site management program), you will learn to create and manage professional quality sites.
- Technology Department:
- Digital Electronics: Digital Electronics is a course of study in applied digital logic.
- Computer Integrated Manufacturing: CIM is a course that applies principles of rapid prototyping, robotics and automation.
All the offerings from the business department should have been taught prior to high school. Keyboarding is a skill that should be started no later than 1st grade. In fact, keyboarding as currently defined by most schools is more a 20th century skill than 21st century skill. Touch interfaces and keyboard variants make qwerty keyboarding less important. The technology department has some good courses, but there is a lack of systems administration, network administration and programming courses. Programming should be introduced at the middle school level and integrated in to other curricular areas in high school. Imagine using R to process statistical data for social studies, biology, physics, chemistry or other courses. Imagine engaging in real world data analysis that educates students while having a real world impact students can see.
A Possible Solution:
A community based group that focuses on providing students with opportunities to learn real-world computer science skills. This fall I started reaching out to people in my local community who run computer related user groups to discuss building such a group. Two efforts could provide a framework for building a local group in Rochester: Codeacademy and CoderDojo. My goal for 2014 is to get such a community group organized and functional by July of 2014. The next steps will be to:
- Identify interested community groups
- Identify local parent association groups (stake holders)
- Identify local students interested in assisting in defining the group (stake holders)
- Identify a location for organizational meetings
- Determine if a legal entity needs to be created for this effort
- Identify a location for classes
- Contact possible sponsors
The only item on the list that gives me a reason to pause is the potential requirement for a legal entity to be created. I have no legal experience in this arena so I have no idea what to expect.
After several weeks of development, the first development release leading to LightDM GTK+ Greeter version 1.8 has been made available. Thanks to some new contributors, there’s quite a bit to see this time around.Release Notes New Features
- Window positioning (relative or absolute) of the login window and power dialogs is now configurable.
- The default user-image displayed for user’s without a profile image is now configurable.
- The onboard on-screen keyboard application is now run in xembed mode.
- The accessibility menu items can now be activated with the F1, F2, and F3 hotkeys.
- The selected user can now be changed from the username and password entries with the up and down keys.
- The power dialogs can now be cancelled with the Escape key.
- When the LightDM GTK+ Greeter is used as a locked, it now blanks the screen when activated.
- Debian #718497: Last PAM error message not showing
- Debian #721510: Greeter panel clock fails with long date formats
- LP #1031421: Greeter doesn’t select user’s last session when using “Other”
- LP #1147914: Can’t change the login window’s position
- LP #1191509: Disabling language selector leaves strange artifact on the screen
- LP #1194694: move to password input if <enter> pressed after username input
- LP #1231134: support enter key to validate login entry
- LP #1232804: Improve “login greeter -> desktop” transition in Xubuntu
- LP #1251431: user background gets painted over background specified in config file
- Fixed typo in language selection code
- Fixed keyboard focus when used with the on-screen keyboard
With the added window positioning, the login window and power dialogs can now be placed based on relative or absolute values.
Configuration is simple. Values can be represented as percentages, positive (from the top/left), and negative (from the bottom/right). Some layout examples are below.
# position = main window position: x y
# 20% horizontally, 40% vertically
position = 20% 40%
# 10 pixels from the left, 50% vertically
position = 10 50%
# 100 pixels from the right, 50% vertically
position = -100 50%
The profile image that is displayed for user’s that have not already chosen an image can now be configured. Previously the image was always set to “avatar-default”. The value can either be the path to an image file, or an icon name. Sample configuration is below.
# default-user-image = Image used as default user icon, path or #icon-name
# Using a file path
default-user-image = /usr/share/pixmaps/firefox.png
# Using an icon name, distro logo
default-user-image = #distributor-logo
sudo add-apt-repository ppa:lightdm-gtk-greeter-team/stable
sudo apt-get update
sudo apt-get install lightdm-gtk-greeter
If you find any bugs, please report them on the bugs page.
This Christmas was a wonderful time for improving my computing experience. Last October I purchased a Lenovo T530 direct from Lenovo. At the time I debated adding 16 GiB of ram and an SSD drive, but could only justify getting the ram. This Christmas my family got me several items that helped improve my computing experience including an SSD drive. The laptop is equipped with an Intel® Core™ i7-3720QM CPU. Below are all of the current upgrades:
- Corsair Vengeance 16GB (2x8GB) DDR3 1600 MHz (PC3 12800) Laptop Memory (CMSX16GX3M2A1600C10) – I am very pleased with this upgrade. I got this originally because I knew I intended to run multiple virtual machines on the laptop and did not want to have an issue with running out of memory. The only issue I was having is I/O contention.
- Samsung Electronics 840 EVO-Series 250GB – This SSD has improved my boot time from 30.4 seconds to 13.5 seconds. Evolution which used to take seconds now closes instantly. This has also given me an extra drive to use allowing me to take care of the I/O issues I was having when running too many virtual machines.
- Inateck 2.5 Inch USB 3.0 External Case w/ UASP SATA III support – this little case works great. I tested it with an SSD and HDD and found the speeds to be much improved over my old USB 2.0 Seagate external drive. It is amazingly simple to replace the drive; though at this price buying an additional case is so inexpensive that might make more sense. It requires only a single USB connection for power and has an on/off switch on the case itself. This case works as well as the Thermaltake BlacX Duo 5G disk dock that I own. I had one drive that performed better for writes using the Thermaltake dock, but all other drives performed the same. I used to get 30 to 40 MB/sec with the old USB 2.0 drive and now between two USB 3.0 devices I am getting 110 to 130 MB/sec. Very Nice Improvement.
- Anker® Uspeed USB 3.0 7-Port Hub + 5V 2A Charging Port – I do not enjoy having to unplug multiple USB cords when packing up my laptop so I have always used a hub. I finally got to replace my tired Linksys USB 2.0 hub with a new USB 3.0 hub from Anker. I am very pleased with the performance of this hub because I saw no performance degradation when comparing a device attached directly to the computer vs attached to the hub. I tested using the Inateck enclosure with an SSD drive.
- Safco Products 38-Inch W Radius Front Desk Top Organizer – Yes, this is not a computer component, but having your books in easy reach always makes for a better computing experience. I can now easily organize all my Python, computer security and Linux systems administration books so they are all withing easy reach. This device took just 30 minutes to assemble and is well constructed.
With all these new components I am enjoying Ubuntu more than ever.
Over the last 2 weeks, I tried a Zimbra Collaboration Suite (Open Source Edition). And before going into production mode, I wanted to perform some mailbox backup/restore tests.
After some searches, I found this page on the Zimbra wiki which contains some backup/restore script. I downloaded the script written by Richardson Lima called "zimbraBackupAllAccounts.sh", then I started adapting the script to my needs.
As I finished my switch to Zimbra, I added this script in the prebackup script on my BackupPC server.
And I thought I could share this modified script, so I created a github repository and gave him a nice name. It's now called zimbashckup (for Zimbra Bash Backup).
It operates in a non-interactive way (to be launched in the cron task or by a backup system) and can perform per folder backups. Which is useful when we only want to restore a folder instead of the whole mailbox.
This script can backup the full mailbox (Briefcase contents, address book, calendar) and even the filters exported to the sieve format (thanks to Hackman61 for the idea).
However, when an object is share, only the original owner version is backed up (it's a zmmailbox limit).
For the remaining features, I think the README file is readable enough :).
The GIT repository is here : https://github.com/davromaniak/zimbashckup
Ubuntu GNOME Team is pleased to announce the beginning of a new phase for the Sub-Teams. We shall start the New Year (2014) with solid steps to move forward with confidence coming from a great and quick growth, both in Quality (which is our highest priority) and Quantity of our teams and contributors.
Motivation and Encouraging the Team Work Spirit which is the basic foundation of a healthy environment where everyone works side by side as one strong and active team which eventually will give us the high quality we seek with enough quantity to carry on with confidence.
Please join Ubuntu GNOME Team to welcome our new contributors who decided to step in and help the project and community to move forward to the next level:
- Ubuntu GNOME Wiki & Documentation Team
Both James and Ivan have showed a great interest to help the team and their hard work was and still louder than their words and that is indeed the quality of the contributors we seek and need to help us. They have earned the title of Team Moderator/Administrator and will definitely help our team to be even better.
- Ubuntu GNOME Marketing and Communications Team
- Facebook Page Moderator: Caleb Howland
- Facebook Page & Google+ Community Moderator: Frédéric Lagneau
Two Linux and Ubuntu GNOME enthusiasts who volunteered their time to help our Social Media Channels for high quality and more quantity and as a result, help Ubuntu GNOME Communications Team to grow bigger and better.
And we shall continue to recruit more contributors and volunteers. There are no limits for our passion, ambition and dreams/hopes which we work hard to turn into reality.
If you feel you are ready and can actually dedicate some of your time to help Ubuntu GNOME to be even better and go the extra miles, please feel free to Join Us today for an effective tomorrow and a glorious future.
We are still looking for extra help on these area:
As always, thank you for choosing and using Ubuntu GNOME!
So, I thought I'd give this blog thing a try again.
Since this wasn't going to be used for critical things, I opted to follow their developer-centric instructions. This allows me to pull down updates on the fly, instead of waiting for them to publish a new release. Even so, setup was still a breeze.
I deviated from their instructions a little, so for the record (and as an excuse to write something) I will document the procedure here.
- Create a user that Ghost's node.js process would run as.
- sudo adduser ghost
- Install nodejs
- sudo apt-get install nodejs
- My linode is running 13.04, so I needed to find a PPA that could provide node.js 0.10.x. Since vetting PPAs is not something I want to do here, I'll leave it as an exercise for the reader.
- sudo apt-get install nodejs
- Install grunt
- sudo npm install -g grunt-cli
- Switch to the ghost user
- sudo su ghost
- Use rvm to install Ruby 1.9.3
- curl -sSL https://get.rvm.io | bash -s stable --ruby=1.9.3
- Install the bundler gem
- gem install bundler
- Clone the git repo
- git clone https://github.com/TryGhost/Ghost.git
- Drop into the newly cloned repo and pull down their linked submodules (this includes things like their default theme, which they track in a separate github repo)
- cd Ghost && git submodule update --init
- Use bundler to pull the project's ruby dependencies
- bundler install
- Use npm to pull the project's node dependencies
- npm install
- Compile Ghost's assets
- grunt init
- Modify the default config as necessary
- vim config.js
- Run it
- npm start
- The node.js instance will begin listening on http://localhost:2368, you'll need configure your preferred webserver provide a reverse proxy to this.
- You'll also likely want to keep npm running by setting it up as a service. Since there are a few options on how to do that I'll just point to the official docs here.
This is post 5 out of 10 in the LXC 1.0 blog post series.Storage backingstores
LXC supports a variety of storage backends (also referred to as backingstore).
It defaults to “none” which simply stores the rootfs under
/var/lib/lxc/<container>/rootfs but you can specify something else to lxc-create or lxc-clone with the -B option.
Currently supported values are:directory based storage (“none” and “dir)
This is the default backingstore, the container rootfs is stored under
The --dir option (when using “dir”) can be used to override the path.btrfs
With this backingstore LXC will setup a new subvolume for the container which makes snapshotting much easier.lvm
This one will use a new logical volume for the container.
The LV can be set with --lvname (the default is the container name).
The VG can be set with --vgname (the default is “lxc”).
The filesystem can be set with --fstype (the default is “ext4″).
The size can be set with --fssize (the default is “1G”).
You can also use LVM thinpools with --thinpool
This one is mostly used when cloning containers to create a container based on another one and storing any changes in an overlay.
When used with lxc-create it’ll create a container where any change done after its initial creation will be stored in a “delta0″ directory next to the container’s rootfs.zfs
Very similar to btrfs, as I’ve not used either of those myself I can’t say much about them besides that it should also create some kind of subvolume for the container and make snapshots and clones faster and more space efficient.Standard paths
One quick word with the way LXC usually works and where it’s storing its files:
- /var/lib/lxc (default location for containers)
- /var/lib/lxcsnap (default location for snapshots)
- /var/cache/lxc (default location for the template cache)
- $HOME/.local/share/lxc (default location for unprivileged containers)
- $HOME/.local/share/lxcsnap (default location for unprivileged snapshots)
- $HOME/.cache/lxc (default location for unprivileged template cache)
The default path, also called lxcpath can be overridden on the command line with the -P option or once and for all by setting “lxcpath = /new/path” in /etc/lxc/lxc.conf (or $HOME/.config/lxc/lxc.conf for unprivileged containers).
The snapshot directory is always “snap” appended to lxcpath so it’ll magically follow lxcpath. The template cache is unfortunately hardcoded and can’t easily be moved short of relying on bind-mounts or symlinks.
The default configuration used for all containers at creation time is taken from
/etc/lxc/default.conf (no unprivileged equivalent yet).
The templates themselves are stored in /usr/share/lxc/templates.
All those backingstores only really shine once you start cloning containers.
For example, let’s take our good old “p1″ Ubuntu container and let’s say you want to make a usable copy of it called “p4″, you can simply do:
And there you go, you’ve got a working “p4″ container that’ll be a simple copy of “p1″ but with a new mac address and its hostname properly set.
Now let’s say you want to do a quick test against “p1″ but don’t want to alter that container itself, yet you don’t want to wait the time needed for a full copy, you can simply do:sudo lxc-clone -o p1 -n p1-test -B overlayfs -s
And there you go, you’ve got a new “p1-test” container which is entirely based on the “p1″ rootfs and where any change will be stored in the “delta0″ directory of “p1-test”.
The same “-s” option also works with lvm and btrfs (possibly zfs too) containers and tells lxc-clone to use a snapshot rather than copy the whole rootfs across.
So cloning is nice and convenient, great for things like development environments where you want throw away containers. But in production, snapshots tend to be a whole lot more useful for things like backup or just before you do possibly risky changes.
In LXC we have a “lxc-snapshot” tool which will let you create, list, restore and destroy snapshots of your containers.
Before I show you how it works, please note that “lxc-snapshot” currently doesn’t appear to work with directory based containers. With those it produces an empty snapshot, this should be fixed by the time LXC 1.0 is actually released.
So, let’s say we want to backup our “p1-lvm” container before installing “apache2″ into it, simply run:echo "before installing apache2" > snap-comment sudo lxc-snapshot -n p1-lvm -c snap-comment
At which point, you can confirm the snapshot was created with:sudo lxc-snapshot -n p1-lvm -L -C
Now you can go ahead and install “apache2″ in the container.
If you want to revert the container at a later point, simply use:sudo lxc-snapshot -n p1-lvm -r snap0
Or if you want to restore a snapshot as its own container, you can use:sudo lxc-snapshot -n p1-lvm -r snap0 p1-lvm-snap0
And you’ll get a new “p1-lvm-snap0″ container which will contain a working copy of “p1-lvm” as it was at “snap0″.
That’s right folks. The last issue (of 2013) is OUT!
* Command & Conquer
* How-To : Python, LibreOffice, and Use VLM.
* Graphics : JPG>PDF, and Inkscape.
* Review: USB Microscope
plus: Q&A, Linux Labs, Software Showdown, Ask The New Guy, My Story, and soooo much more!
Get it while it’s hot!
I'm done triaging old photos, here's some of my favourite Ubuntu themed ones from 2005 to 2009.
The excitable Jeff Waugh who provided a lot of the character behind Gnome and early Ubuntu. Last seen writing a lament about the Canonical’s worsening relationship with GNOME which I must admit to being too lazy to read.
Have a fun holiday all, come and join us at Kubuntu if you want to be part of more world adventures.