<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tombuntu</title>
    <link>https://tombuntu.com/</link>
    <description>Recent content on Tombuntu</description>
    <language>en-us</language>
    <copyright>2007-2025 Tombuntu</copyright>
    <lastBuildDate>Sun, 10 May 2020 23:15:39 -0700</lastBuildDate>
    
        <atom:link href="https://tombuntu.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Migrating Tombuntu from WordPress to Hugo</title>
      <link>https://tombuntu.com/index.php/2020/05/10/migrating-tombuntu-from-wordpress-to-hugo/</link>
      <pubDate>Sun, 10 May 2020 23:15:39 -0700</pubDate>
      <guid>https://tombuntu.com/index.php/2020/05/10/migrating-tombuntu-from-wordpress-to-hugo/</guid>
      <description>

&lt;p&gt;Back in 2018, I silently upgraded this site to &amp;ldquo;Tombuntu 3.&amp;rdquo; To reduce
hosting costs and maintenance, I migrated from &lt;a href=&#34;https://wordpress.org/&#34;&gt;WordPress&lt;/a&gt; to &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;, a static
site generator. Here&amp;rsquo;s a (belated) overview of the process.&lt;/p&gt;

&lt;h2 id=&#34;exporting-posts&#34;&gt;Exporting posts&lt;/h2&gt;

&lt;p&gt;I had almost five hundred old posts that needed to be migrated from an exported
WordPress XML file to Markdown files. There are off-the-shelf solutions for
this, but I knew there would be complications. I ended up doing the migration
myself, with a &lt;a href=&#34;https://www.python.org/&#34;&gt;Python&lt;/a&gt; script.&lt;/p&gt;

&lt;p&gt;WordPress&amp;rsquo;s XML file contains HTML, but lacking paragraph tags. I used &lt;a href=&#34;https://greenash.net.au/thoughts/2010/05/an-autop-django-template-filter/&#34;&gt;this
implementation of WordPress&amp;rsquo;s autop function&lt;/a&gt; to add them in.&lt;/p&gt;

&lt;p&gt;I wrote my old posts in WordPress&amp;rsquo; visual editor. It produced HTML that looked
fine at the time, but wasn&amp;rsquo;t &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Glossary/Semantics&#34;&gt;semantic&lt;/a&gt;. For example, I often created headings
with a bold single-line paragraph. To fix these issues, I came up with simple
heuristics to find them, and implemented regular expression substitutions to
fix the HTML.&lt;/p&gt;

&lt;p&gt;Finally, I used &lt;a href=&#34;http://pandoc.org/&#34;&gt;Pandoc&lt;/a&gt;, a document converter tool, to convert the
HTML into Markdown files suitable for Hugo. These files also include important
metadata such as each post&amp;rsquo;s original URL and RSS GUID from WordPress.&lt;/p&gt;

&lt;h2 id=&#34;exporting-comments&#34;&gt;Exporting comments&lt;/h2&gt;

&lt;p&gt;Tombuntu no longer accepts comments. I preserved historical comments by
appending them to the content of each post in a special &amp;ldquo;archived comments&amp;rdquo;
section. Feel free to send me your comments via email using the button at the
end of each post.&lt;/p&gt;

&lt;h2 id=&#34;deploying&#34;&gt;Deploying&lt;/h2&gt;

&lt;p&gt;I work on Tombuntu from a Git repository on my workstation. To deploy the site
to its web server, I wrote an &lt;a href=&#34;https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html&#34;&gt;Ansible playbook&lt;/a&gt; that uses the &lt;a href=&#34;https://docs.ansible.com/ansible/latest/modules/synchronize_module.html&#34;&gt;synchronize
module&lt;/a&gt; to efficiently upload changes. I also use Ansible to configure the
server.&lt;/p&gt;

&lt;h2 id=&#34;results&#34;&gt;Results&lt;/h2&gt;

&lt;p&gt;Tombuntu 3 runs with room to space on a cheap virtual server and has been easy
to maintain so far. Hugo works well, although I had to work around &lt;a href=&#34;https://github.com/gohugoio/hugo/issues/1642&#34;&gt;a bug&lt;/a&gt; in
its &amp;ldquo;shortcodes&amp;rdquo; feature. This month I also upgraded the server to Ubuntu 20.04
and added HTTPS support using a free &lt;a href=&#34;https://letsencrypt.org/&#34;&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt; certificate.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m still using Ubuntu at home and work every day. Maybe I&amp;rsquo;ll find something to
write about other than this site itself sometime!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Upgrading Tombuntu in 2013</title>
      <link>https://tombuntu.com/index.php/2013/12/18/upgrading-tombuntu-in-2013/</link>
      <pubDate>Wed, 18 Dec 2013 23:23:24 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2154</guid>
      <description>&lt;p&gt;Last week Tombuntu&amp;rsquo;s server received a much-needed upgrade to Ubuntu 12.04.
Tombuntu launched in 2007 hosted on my home server running Ubuntu. In 2008, I
moved it to a &lt;a href=&#34;https://tombuntu.com/index.php/2008/10/27/notes-from-setting-up-ubuntu-server-on-linode/&#34;&gt;Linode VPS running Ubuntu
8.04&lt;/a&gt;.
Support for Ubuntu 8.04 ended back in April, so it was definitely time for an
upgrade.&lt;/p&gt;

&lt;p&gt;Other than &lt;a href=&#34;https://blog.linode.com/2013/04/16/security-incident-update/&#34;&gt;some security
issues&lt;/a&gt;, I haven&amp;rsquo;t
had any problems with Linode, so I re-provisioned by existing server with a new
Ubuntu 12.04 install. Here&amp;rsquo;s a brief overview of the setup process I went
though:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Linode&amp;rsquo;s Ubuntu image requires some extra configuration that you would
normally do during an Ubuntu install. Follow &lt;a href=&#34;https://library.linode.com/getting-started&#34;&gt;Linode&amp;rsquo;s
documentation&lt;/a&gt; to set the
hostname, set the timezone, and create a user.&lt;/li&gt;
&lt;li&gt;Configure the SSH server to use a non-standard port (to reduce brute-force
attempts), disable root login, and disable password authentication.&lt;/li&gt;
&lt;li&gt;Create a directory for document roots. I&amp;rsquo;m the only person who needs to log
into the server, so I just create directories like &lt;code&gt;/srv/www/tombuntu.com&lt;/code&gt;
for each domain that are owned by my user.&lt;/li&gt;
&lt;li&gt;Install Nginx and add configuration for each domain in
&lt;code&gt;/etc/nginx/sites-available&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;php5-fpm&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Install MySQL, run &lt;code&gt;mysql_secure_installation&lt;/code&gt;, and create users and
databases for each application.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tombuntu.com/index.php/2009/12/22/send-outgoing-email-with-postfix/&#34;&gt;Install Postfix with no relay
host&lt;/a&gt; so the server
can send notifications.&lt;/li&gt;
&lt;li&gt;Write a cron job on my home desktop to create database dumps and back
everything up using rdiff-backup.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The software stack has only changed slightly: &lt;a href=&#34;http://nginx.org/&#34;&gt;Nginx&lt;/a&gt; has
replaced the Apache web server. I used to have problems with the number of
Apache processes and their memory usage inflating and running the server out of
memory. Nginx uses a event-driven architecture so one process/thread can handle
multiple connections asynchronously, whereas Apache (in the most common
configuration) requires one process for each connection. This makes Nginx more
scalable and keeps memory usage consistent.&lt;/p&gt;

&lt;p&gt;My favorite way to backup &lt;a href=&#34;https://tombuntu.com/index.php/2009/08/22/powerful-remote-incremental-backup-with-rdiff-backup/&#34;&gt;is still
rdiff-backup&lt;/a&gt;,
because it allows remote, incremental backups, and restoring from the most
recent backup only requires copying files. My desktop at home initiates the
server backup through cron. This has the advantage that the server does not have
direct access to its backups (my desktop can reach the server via SSH, but not
the other way around).&lt;/p&gt;

&lt;p&gt;Tombuntu is powered by WordPress. Between upgrading to the latest version and
having to run SQL queries to delete massive amounts of spam, WordPress is pretty
high-maintenance. It&amp;rsquo;s also really slow without caching pages on the server. For
whatever reason, WordPress doesn&amp;rsquo;t include a built-in page cache, but there are
numerous plugins providing this. Unfortunately, many of the popular plugins are
now buggy, poorly maintained, and/or are trying to upsell you to a premium
version. Currently I&amp;rsquo;ve settled on &lt;a href=&#34;http://wordpress.org/plugins/hyper-cache/&#34;&gt;Hyper
Cache&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, I did some optimization on the site itself to improve load time. The
FeedBurner widgets were slow and didn&amp;rsquo;t seem to work any more, so I removed
them. I used Google&amp;rsquo;s excellent &lt;a href=&#34;http://developers.google.com/speed/pagespeed/insights/&#34;&gt;PageSpeed
Insights&lt;/a&gt; tool to get
some additional suggestions for speeding things up.&lt;/p&gt;


</description>
    </item>
    
    <item>
      <title>Setting up Ubuntu on an SSD</title>
      <link>https://tombuntu.com/index.php/2012/04/26/setting-up-ubuntu-on-an-ssd/</link>
      <pubDate>Thu, 26 Apr 2012 22:44:01 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2143</guid>
      <description>

&lt;p&gt;I recently purchased a new solid state drive (SSD) to replace my current hard
drive (HDD). Since SSDs work so much differently than HDDs, it&amp;rsquo;s worth while to
make some optimizations in Ubuntu for them. SSDs are much faster than HDDs, but
have a limited number of writes before they wear out. This makes balancing
performance with the life of your SSD also a big concern for how you tune your
system.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve &lt;a href=&#34;https://tombuntu.com/index.php/2008/09/04/four-tweaks-for-using-linux-with-solid-state-drives/&#34;&gt;written a post on this topic
before&lt;/a&gt;
for the older SSD in my netbook.&lt;/p&gt;

&lt;h2 id=&#34;partitioning-and-bind-mounts&#34;&gt;Partitioning and bind mounts&lt;/h2&gt;

&lt;p&gt;I partitioned my 60 GB SSD into a 10 GB &lt;code&gt;/&lt;/code&gt; partition, and a 50 GB &lt;code&gt;/home&lt;/code&gt;
partition, both using the default ext4 filesystem. I kept my old HDD home
partition mounted at &lt;code&gt;/media/oldhome&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I wanted to put some of my large and infrequently accessed files, like virtual
machines and videos, on the more spacious HDD. I also wanted to make accessing
these files from my home directory seamless. One way to do this would be to
symlink folders from the SSD to the HDD. However, I found that this wouldn&amp;rsquo;t be
fully seamless for some applications that don&amp;rsquo;t follow symlinks.&lt;/p&gt;

&lt;p&gt;Bind mounts are a better solution. They allow a directory in a filesystem to be
mounted in additional locations, similarly to symlinks but fully transparent to
applications. To test bind mounting my videos directory, I ran mount with the
bind option, and specified the source directory (on the HDD), and the mount
point (which must already exist):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mount --bind /media/oldhome/tom/Videos /home/tom/Videos
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To make my bind mounts permanent, I added them to my &lt;code&gt;/etc/fstab&lt;/code&gt; file in this
format:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/media/oldhome/tom/Videos /home/tom/Videos none bind 0 0
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you need to add a path with a space in it, replace the space with &lt;code&gt;\040&lt;/code&gt; to
escape it. If you make a mistake and one of the bind mounts fails, Ubuntu will
allow you to skip it and continue booting. So far the bind mount approach seems
to work perfectly.&lt;/p&gt;

&lt;h2 id=&#34;mount-options-for-ssds&#34;&gt;Mount options for SSDs&lt;/h2&gt;

&lt;p&gt;Any recent SSD should have the &lt;a href=&#34;http://en.wikipedia.org/wiki/TRIM&#34;&gt;TRIM&lt;/a&gt; command
available, which prevents performance degradation by allowing the OS to notify
the SSD of which blocks are unused. The ext4 filesystem uses TRIM when the
&lt;code&gt;discard&lt;/code&gt; option is set.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;noatime&lt;/code&gt; option reduces writes to the SSD by not writing access time
updates whenever a file is read. This improves performance and increases the
life of the SSD.&lt;/p&gt;

&lt;p&gt;I set these two mount options though &lt;code&gt;/etc/fstab&lt;/code&gt; for both my SSD partitions by
adding &lt;code&gt;discard&lt;/code&gt; and &lt;code&gt;noatime&lt;/code&gt; to the list of options for &lt;code&gt;/&lt;/code&gt; and &lt;code&gt;/home&lt;/code&gt; like
this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;UUID=193af662-d7a0-47fb-b3f7-141ae3d19227 / ext4 errors=remount-ro,noatime,discard 0 1
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;disk-head-scheduler-for-ssds&#34;&gt;Disk head scheduler for SSDs&lt;/h2&gt;

&lt;p&gt;A disk scheduler optimizes the order of disk requests by considering the
position of the hard drive&amp;rsquo;s read/write head. An SSD needs no such optimization,
so it&amp;rsquo;s best to use the noop (no-operation) scheduler.&lt;/p&gt;

&lt;p&gt;I switched to the noop scheduler for my SSD by adding the to following line to
&lt;code&gt;/etc/rc.local&lt;/code&gt; (replace &lt;code&gt;sdb&lt;/code&gt; with your own SSD&amp;rsquo;s device node name):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;echo noop &amp;gt; /sys/block/sdb/queue/scheduler
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;swap-and-swappiness&#34;&gt;Swap and swappiness&lt;/h2&gt;

&lt;p&gt;I kept my swap partition on the old HDD. Swap on the SSD would be faster, but
would also shorten the SSD&amp;rsquo;s life.&lt;/p&gt;

&lt;p&gt;My system has plenty of memory, so I also reduced &lt;a href=&#34;https://help.ubuntu.com/community/SwapFaq#What_is_swappiness_and_how_do_I_change_it.3F&#34;&gt;the swappiness
value&lt;/a&gt;
to 0 to tell Ubuntu to only swap when absolutely necessary. I did this by adding
the line &lt;code&gt;vm.swappiness=0&lt;/code&gt; to &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id=&#34;even-more&#34;&gt;Even more&lt;/h2&gt;

&lt;p&gt;There are many more ways to tune Ubuntu for SSDs. A few things I haven&amp;rsquo;t done
are: partition alignment (Ubuntu&amp;rsquo;s partitioner now seems to take care of this
automatically), disabling journalling (I&amp;rsquo;d prefer reliability over slightly
reduced SSD life), and mounting &lt;code&gt;/tmp&lt;/code&gt; or browser cache in memory (I&amp;rsquo;d prefer to
save the memory). The Arch Linux Wiki has a &lt;a href=&#34;https://wiki.archlinux.org/index.php/Solid_State_Drives&#34;&gt;comprehensive page on
SSDs&lt;/a&gt;, and here&amp;rsquo;s
&lt;a href=&#34;http://cptl.org/wp/index.php/2010/03/30/tuning-solid-state-drives-in-linux/&#34;&gt;another
article&lt;/a&gt;
that goes more in-depth in some of the things I mentioned here.&lt;/p&gt;


</description>
    </item>
    
    <item>
      <title>GNOME 3.2 and GNOME Shell Extensions</title>
      <link>https://tombuntu.com/index.php/2011/12/05/gnome-3-2-and-gnome-shell-extensions/</link>
      <pubDate>Tue, 06 Dec 2011 03:14:32 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2132</guid>
      <description>&lt;p&gt;GNOME has launched an alpha of the &lt;a href=&#34;https://extensions.gnome.org/&#34;&gt;GNOME Shell Extensions
website&lt;/a&gt;. Like Firefox, GNOME Shell allows
extensions to modify and extend the user interface. The site allows you to
browse and install extensions written by third parties, but reviewed by GNOME
before being made available. There are already many extensions to bring back
elements of GNOME 2.&lt;/p&gt;

&lt;p&gt;To try GNOME Shell Extensions, you&amp;rsquo;ll need to be running GNOME 3.2. Ubuntu 11.10
only has GNOME 3.0, but &lt;a href=&#34;https://launchpad.net/~gnome3-team/+archive/gnome3&#34;&gt;the GNOME3 Team
PPA&lt;/a&gt; provides packages to
update it. I added this PPA on my netbook to update&lt;a href=&#34;https://tombuntu.com/index.php/2011/10/03/install-gnome-shell-in-ubuntu-11-10/&#34;&gt;my existing GNOME Shell
installation&lt;/a&gt; in
Ubuntu 11.10.&lt;/p&gt;

&lt;p&gt;Extensions are installed using a plugin, included with GNOME, that currently
only works with Firefox. When it&amp;rsquo;s working, an extension&amp;rsquo;s page has a large
switch to enable and disable the extension. Flip the switch, select &lt;code&gt;Install&lt;/code&gt; in
the confirmation dialog, and the extension almost immediately activates.
Disabling an extension is just as easy. Here&amp;rsquo;s the &lt;a href=&#34;https://extensions.gnome.org/extension/6/applications-menu/&#34;&gt;Applications
Menu&lt;/a&gt; extension in
action:&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://tombuntu.com/uploads/2011/12/gnome_shell_extensions.jpg&#34; alt=&#34;GNOME Shell Applications Menu
extension&#34; /&gt;&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;d like to see an extension that maximizes screen space on my netbook by hiding
the title bar of maximized windows like Unity does.&lt;/p&gt;

&lt;p&gt;Could GNOME Shell extensions become a killer feature for GNOME 3?&lt;/p&gt;


</description>
    </item>
    
    <item>
      <title>Even More Graphical Git Clients</title>
      <link>https://tombuntu.com/index.php/2011/12/02/even-more-graphical-git-clients/</link>
      <pubDate>Sat, 03 Dec 2011 01:21:06 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2122</guid>
      <description>&lt;p&gt;Since my last post about finding a &lt;a href=&#34;https://tombuntu.com/index.php/2011/11/26/graphical-git-clients-for-ubuntu/&#34;&gt;graphical Git client for
Ubuntu&lt;/a&gt;, I&amp;rsquo;ve been
using the excellent &lt;a href=&#34;http://trac.novowork.com/gitg/&#34;&gt;gitg&lt;/a&gt;. But here&amp;rsquo;s four more
that I&amp;rsquo;ve come across since then, most recommended by comments on the previous
post:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://sourceforge.net/projects/qgit/&#34;&gt;qgit&lt;/a&gt;, as the name suggests, uses
the QT GUI toolkit. qgit is a gitk-style interface for viewing revisions.
Before you can see uncommitted changes, you&amp;rsquo;ll have to open
&lt;code&gt;Edit-&amp;gt;Settings-&amp;gt;Working dir-&amp;gt;Diff against working dir&lt;/code&gt;. There is committing
support, but with a very basic interface. In the &lt;code&gt;Actions&lt;/code&gt; menu, you can
define custom actions to run other git commands and see their output.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.syntevo.com/smartgit/index.html&#34;&gt;SmartGIT&lt;/a&gt; is a very advanced
Git interface that is closed source but free for non-commercial use. I
wanted to try this out, but it refuses to run without the Sun/Oracle Java
runtime. I didn&amp;rsquo;t feel like disturbing my OpenJDK installation, and in
Ubuntu 11.10 Sun/Oracle Java is no longer supported at all. From the
screenshots though, it looks very comprehensive.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.geany.org/&#34;&gt;Geany&lt;/a&gt; is a simple IDE similar to Gedit. The
&lt;code&gt;geany-plugins&lt;/code&gt; package in Ubuntu provides GeanyVC, a basic version control
plugin for Geany supporting six different VCSs. Once the plugin is enabled,
the &lt;code&gt;Tools-&amp;gt;VC&lt;/code&gt; menu provides simple actions for the current file,
directory, and base directory of the repository. The interface is very
minimal; viewing any information like the log will open a new document
containing raw output from git.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.rabbitvcs.org/&#34;&gt;RabbitVCS&lt;/a&gt; provides a set of tools for working
with both Git and Subversion. Nautilus file browser and Gedit integration
are provided, as well as dialogs for Git actions. I haven&amp;rsquo;t tested RabbitVCS
yet, and the version in the Ubuntu repositories doesn&amp;rsquo;t support Git.
However, &lt;a href=&#34;http://wiki.rabbitvcs.org/wiki/install/ubuntu&#34;&gt;instructions and a
PPA&lt;/a&gt; are available for
installing the latest version.&lt;/li&gt;
&lt;/ul&gt;


</description>
    </item>
    
    <item>
      <title>Shutter 0.88 Screenshot Tool Released</title>
      <link>https://tombuntu.com/index.php/2011/11/28/shutter-0-88-screenshot-tool-released/</link>
      <pubDate>Tue, 29 Nov 2011 02:15:04 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2115</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;http://shutter-project.org/&#34;&gt;screenshot tool Shutter&lt;/a&gt; has been updated to
&lt;a href=&#34;http://shutter-project.org/2011/11/shutter-0-88-released/&#34;&gt;version 0.88&lt;/a&gt;,
adding upload support for many more services, including Dropbox. Shutter offers
advanced screen capture modes, a built in image editor, image editing plugins,
and the new upload plugins.&lt;/p&gt;

&lt;p&gt;The new upload plugins seem to be very well implemented. To upload to Dropbox
for the first time, all I needed to be was click a button in my browser to
authorize Shutter&amp;rsquo;s access to my Dropbox account.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://tombuntu.com/uploads/2011/11/shutter088.jpg&#34; alt=&#34;Shutter 0.88&#34; /&gt;&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve had Shutter installed for a while, but I haven&amp;rsquo;t been using it much.
However, after taking another look I seem to have solved all my problems with
it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s not obvious how to resize an image, but it can be done with Shutter.
Right click on an image, select &lt;code&gt;Run a Plugin&lt;/code&gt;, select &lt;code&gt;Resize&lt;/code&gt;, and click
&lt;code&gt;Run&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;By default Shutter likes to run in the background rather than quitting. Stop
this by opening &lt;code&gt;Edit-&amp;gt;Preferences-&amp;gt;Behavior&lt;/code&gt; and uncheck &lt;code&gt;Minimize to tray
when closing main window&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;By default Shutter will save every image you capture. To stop it from
littering your home directory with files you don&amp;rsquo;t want, open
&lt;code&gt;Edit-&amp;gt;Preferences-&amp;gt;Main&lt;/code&gt; and select &lt;code&gt;Do not save file automatically&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ubuntu 11.10 and 11.04 both have an older version of Shutter in their
repositories. To get version 0.88 with the new upload plugins, you&amp;rsquo;ll need to
follow the directions to add &lt;a href=&#34;http://shutter-project.org/faq-help/ppa-installation-guide/&#34;&gt;the official Shutter
PPA&lt;/a&gt;.&lt;/p&gt;


</description>
    </item>
    
    <item>
      <title>Graphical Git Clients for Ubuntu</title>
      <link>https://tombuntu.com/index.php/2011/11/26/graphical-git-clients-for-ubuntu/</link>
      <pubDate>Sun, 27 Nov 2011 05:31:06 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2101</guid>
      <description>&lt;p&gt;Command line &lt;a href=&#34;http://git-scm.com/&#34;&gt;Git&lt;/a&gt; can pale in comparison to fancy web
interfaces like &lt;a href=&#34;http://github.com/&#34;&gt;GitHub&lt;/a&gt; and
&lt;a href=&#34;http://bitbucket.org/&#34;&gt;Bitbucket&lt;/a&gt;. Using these sites lead me to look at some of
the graphical Git clients available in Ubuntu. I&amp;rsquo;m far from a Git expert, and I
haven&amp;rsquo;t spend much time playing with these yet, but here&amp;rsquo;s what I found:&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://tombuntu.com/uploads/2011/11/gitg.jpg&#34; alt=&#34;gitg browsing a repository&#34; /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;git gui is one of the two official graphical tools available for git. It
lets you create commits by staging changes and writing a commit message.
There are many more features for remote repositories and branches. The major
downside is that the UI and fonts look awful. (Ubuntu package &lt;code&gt;git-gui&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;gitk, the other official tool, allows viewing a repository through the
commit log. Selecting a commit shows its details, including diffs for all or
a selected file. gitk has the same awful UI as git gui. (Ubuntu package
&lt;code&gt;gitk&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://live.gnome.org/giggle&#34;&gt;Giggle&lt;/a&gt; has a browse view for viewing the
repository tree and selecting files to see what commits affected each file
and how. The history view is similar to gitk, but with a nice graph view
column showing branching and merging. (Ubuntu package &lt;code&gt;giggle&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://git-cola.github.com/screenshots.html&#34;&gt;Git Cola&lt;/a&gt; is a tool similar to
git gui for committing and pushing changes. There are buttons for common
actions like staging files, pulling, and pushing, as well as an area to
write new commit messages. (Ubuntu package &lt;code&gt;git-cola&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Gitg/&#34;&gt;gitg&lt;/a&gt; can both view repositories and
make new commits. Its history tab is similar to both gitk and Giggle, but
also has graphs showing the amount of changes made to files and a tree view
similar to Giggle&amp;rsquo;s. The commit tab is similar to git gui, but doesn&amp;rsquo;t have
as many advanced features for branches or remote repositories. (Ubuntu
package &lt;code&gt;gitg&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;gitg is the most promising tool for my purposes. It combines both gitk and git
gui-style interfaces in one program. I wish it it had an easy way to push to a
remote repository - and there&amp;rsquo;s only a fetch button that&amp;rsquo;s tucked away in the
&lt;code&gt;File-&amp;gt;Repository Properties&lt;/code&gt; dialog. [&lt;strong&gt;Update&lt;/strong&gt; It&amp;rsquo;s possible to push after
all: right clicking on a branch label in the commit log will show more actions.
The branch labels can also be drag-and-dropped on each other.]&lt;/p&gt;


</description>
    </item>
    
    <item>
      <title>Watch YouTube Videos Using VLC</title>
      <link>https://tombuntu.com/index.php/2011/11/20/watch-youtube-videos-using-vlc/</link>
      <pubDate>Mon, 21 Nov 2011 01:54:47 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2093</guid>
      <description>&lt;p&gt;My Eee PC 901 is more than powerful enough to play back 480p video, but not when
it&amp;rsquo;s playing though Adobe Flash Player. 408p YouTube videos drop frames and
don&amp;rsquo;t play back at full framerate. YouTube has an &lt;a href=&#34;http://www.youtube.com/html5&#34;&gt;experimental HTML5 video
player&lt;/a&gt; that should offer better better
performance than Flash. I enabled it, but it seems that very few videos support
it because advertising will cause a fallback to Flash.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://www.videolan.org/vlc/&#34;&gt;VLC media player&lt;/a&gt; supports network streaming from
a YouTube. Select &lt;code&gt;Media-&amp;gt;Open Network Stream&lt;/code&gt;, paste a YouTube URL, and click
&lt;code&gt;Play&lt;/code&gt;. This seems to work for any YouTube video, and plays back noticeably
smoother than Flash on my netbook.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://tombuntu.com/uploads/2011/11/vlc_youtube.jpg&#34; alt=&#34;YouTube video in VLC&#34; /&gt;&lt;/p&gt;

&lt;p&gt;VLC isn&amp;rsquo;t a perfect solution. First, there&amp;rsquo;s the inconvenience of copying and
pasting a URL for each video. Second, there doesn&amp;rsquo;t seem to be a way to change
the resolution (but it defaults to 480p, which happens to be what I want).
Third, VLC doesn&amp;rsquo;t seem to handle buffering as well as Flash does. While YouTube
can play continuously, VLC sometimes has to stop and buffer more video.
Selecting &lt;code&gt;Show more options&lt;/code&gt; and increasing the cache size to something like
20000 ms seems to help a bit.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve been using Ubuntu 11.10&amp;rsquo;s VLC for this. While Ubuntu 11.04&amp;rsquo;s VLC seems to
support YouTube, I&amp;rsquo;ve only been getting &lt;code&gt;VLC can&#39;t recognize the input&#39;s format&lt;/code&gt;
errors with this version.&lt;/p&gt;


</description>
    </item>
    
    <item>
      <title>LaTeX Editor Gummi 0.6.0 Released</title>
      <link>https://tombuntu.com/index.php/2011/11/18/latex-editor-gummi-0-6-0-released/</link>
      <pubDate>Sat, 19 Nov 2011 01:23:42 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2086</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been doing lots of document editing with
&lt;a href=&#34;http://www.latex-project.org/&#34;&gt;LaTeX&lt;/a&gt; lately, so I was happy to see that a new
version of &lt;a href=&#34;https://tombuntu.com/index.php/2011/09/18/simple-latex-editing-with-gummi/&#34;&gt;my favorite LaTeX
editor&lt;/a&gt; has been
released. &lt;a href=&#34;http://gummi.midnightcoding.org/?p=381&#34;&gt;Gummi 0.6.0&lt;/a&gt; adds many
requested features. I&amp;rsquo;ve been looking forward most to continuous scrolling in
the preview pane, but there&amp;rsquo;s now also tabbed editing, project support, and more
compilation options.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://tombuntu.com/uploads/2011/11/gummi060.jpg&#34; alt=&#34;Gummi 0.6.0&#34; /&gt;&lt;/p&gt;

&lt;p&gt;It would be nice if the spell checker would skip LaTeX commands. It looks like
&lt;a href=&#34;http://dev.midnightcoding.org/redmine/issues/142&#34;&gt;this issue is being worked
on&lt;/a&gt;, but is waiting for a
patch in the underlying spell-check library. I&amp;rsquo;ve also noticed that if you&amp;rsquo;re
selecting text while the preview refreshes, the selection gets stuck &lt;a href=&#34;http://dev.midnightcoding.org/redmine/issues/308&#34;&gt;(bug
report)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ubuntu packages for Gummi are available from &lt;a href=&#34;https://launchpad.net/~gummi/+archive/gummi&#34;&gt;the Gummi
PPA&lt;/a&gt;.&lt;/p&gt;


</description>
    </item>
    
    <item>
      <title>Automatic Indentation Detection in gedit</title>
      <link>https://tombuntu.com/index.php/2011/11/14/automatic-indentation-detection-in-gedit/</link>
      <pubDate>Tue, 15 Nov 2011 01:40:42 +0000</pubDate>
      <guid isPermaLink="false">http://tombuntu.com/?p=2080</guid>
      <description>&lt;p&gt;Whether you prefer indenting code with tabs or spaces, the last thing you want
to do is mix both styles in one file. The gedit text editor lets you specify
what to insert when you press tab, but if you&amp;rsquo;re jumping between files in
different languages or written by different people, you must remember to check
the settings each time you open a file.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://code.google.com/p/gedit-autotab/&#34;&gt;gedit-autotab&lt;/a&gt; is a plugin for gedit
that solves this problem by automatically changing the indentation settings to
match the style detected in each file. The plugin works with gedit 2 (Ubuntu
11.04), and there&amp;rsquo;s &lt;a href=&#34;http://git.slashdev.ca/gedit-autotab/?h=gedit3&#34;&gt;a forked
version&lt;/a&gt; available for gedit 3
(Ubuntu 11.10).&lt;/p&gt;

&lt;p&gt;For gedit 2 / Ubuntu 11.04: Download &lt;a href=&#34;http://code.google.com/p/gedit-autotab/downloads/detail?name=autotab-0.7.tar.gz&amp;amp;can=2&amp;amp;q=&#34;&gt;this archive
file&lt;/a&gt;
and open it. Put the &lt;code&gt;autotab.py&lt;/code&gt; and &lt;code&gt;autotab.gedit-plugin&lt;/code&gt; files in
&lt;code&gt;~/.gnome2/gedit/plugins&lt;/code&gt; (create the &lt;code&gt;plugins&lt;/code&gt; folder if it doesn&amp;rsquo;t exist).&lt;/p&gt;

&lt;p&gt;For gedit 3 / Ubuntu 11.10: Download &lt;a href=&#34;http://git.slashdev.ca/gedit-autotab/commit/?h=gedit3&#34;&gt;the archive file from this
page&lt;/a&gt; and open it. Put
the &lt;code&gt;autotab.py&lt;/code&gt; and &lt;code&gt;autotab.plugin&lt;/code&gt; files in &lt;code&gt;~/.local/share/gedit/plugins&lt;/code&gt;
(create the &lt;code&gt;gedit/plugins&lt;/code&gt; folder if it doesn&amp;rsquo;t exist).&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://tombuntu.com/uploads/2011/11/gedit-autotab.jpg&#34; alt=&#34;gedit-autotab&#34; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, open &lt;code&gt;Edit-&amp;gt;Preferences-&amp;gt;Plugins&lt;/code&gt;, and select &lt;code&gt;Auto Tab&lt;/code&gt; to activate
the plugin. You will get a new item on the status bar showing the current
indentation style, which will change depending on the files you open.&lt;/p&gt;


</description>
    </item>
    
  </channel>
</rss>
