<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Screenage &#187; Allgemein</title>
	<atom:link href="http://www.screenage.de/blog/category/allgemein/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.screenage.de/blog</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 19:15:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ubuntu Berlin @ LinuxTag 2010 &#8211; pickings</title>
		<link>http://www.screenage.de/blog/2010/06/16/ubuntu-berlin-linuxtag-2010-pickings/</link>
		<comments>http://www.screenage.de/blog/2010/06/16/ubuntu-berlin-linuxtag-2010-pickings/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 04:16:26 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[BBQ]]></category>
		<category><![CDATA[Berlin]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[c-base]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=237</guid>
		<description><![CDATA[Saturday evening this years LinuxTag, Europes largest open source fair, closed its doors. As LinuxTag is presented at Berlin, the &#8220;Ubuntu Berlin&#8221; was happy to support it in different activities. Let me sum up some of them: 1) Ubuntu Community &#8230; <a href="http://www.screenage.de/blog/2010/06/16/ubuntu-berlin-linuxtag-2010-pickings/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Saturday evening this years LinuxTag, Europes largest open source fair, closed its doors. As LinuxTag is presented at Berlin, the &#8220;Ubuntu Berlin&#8221; was happy to support it in different activities. Let me sum up some of them:</p>
<p><strong>1) Ubuntu Community booth</strong></p>
<p>The &#8220;ubuntu Deutschland e.V.&#8221;, Ubuntu and Kubuntu community presented their work at a community hosted booth. A bunch of Ubuntu Berlin members supported the booth, answered hundreds of questions and helped with the proceedings.</p>
<p><strong>2) Talks</strong></p>
<p>Saturday Featured a lot of Ubuntu focussed talks. For the first time &#8220;Ubuntu Berlin&#8221; and its members hosted a remarkable amount of them, e.g.:</p>
<ul>
<li><a href="http://mnemonikk.org/">Anselm Helbig</a> &#8211; Ubuntu Berlin Lightning Talks (tmux)</li>
<li><a href="http://overbenny.wordpress.com/">Benjamin Drung</a> &#8211; Ubuntu in 50 minutes, Packaging for Debian and Ubuntu</li>
<li>Caspar Clemens Mierau &#8211; Ubuntu Berlin Lightning Talks (Vimperator), Gnome-Do, Ubuntu in 50 minutes</li>
<li><a href="http://daniel.holba.ch/blog/">Daniel Holbach</a> &#8211; Fixing Bugs in Ubuntu (<a href="http://people.canonical.com/~dholbach/talks/">see slides</a>), Ubuntu in 50 minutes, Ubuntu Berlin Lightning Talks (liblaunchpad)</li>
<li><a href="http://www.marceleichner.de/">Marcel Eichner</a> &#8211; Ubuntu Berlin Lightning Talks (Franklin)</li>
<li><a href="http://toddy-franz.de/">Torsten Franz</a> &#8211; Supporting Ubuntu</li>
</ul>
<p style="text-align: center;"><img class="alignnone size-full wp-image-238" title="Ubuntu in 50 minutes talk at LinuxTag 2010" src="http://www.screenage.de/blog/uploads/IMAG0155.jpg" alt="Ubuntu in 50 minutes talk at LinuxTag 2010" width="448" height="263" /><br />
minutes before the &#8220;Ubuntu in 50 minutes&#8221; talk</p>
<p><strong>3) Interviews for Radio Tux</strong></p>
<p>Several members of Ubuntu Berlin gave interviews to the well known German Podcast &#8220;<a href="http://blog.radiotux.de/">Radio Tux</a>&#8220;. Daniel&#8217;s <a href="http://archiv.radiotux.de/interviews/2010-06-12.RadioTux.Daniel.Holbach.bugjam.Linuxtag.mp3">talk on bugjamming has been released</a> already. Be sure to <a href="http://archiv.radiotux.de/interviews/">check the archive</a> for other releases within the next days.</p>
<p><strong>4) LinuxTag BBQ</strong></p>
<p>Last but not least: The  &#8221;End of LinuxTag BBQ&#8221; at <a href="http://c-base.org">c-base</a>, sponsored by Canonical, has been a great success again. Three barbacues and about ten &#8220;Grillmeister&#8221; (you cannot translate this) provided more than hundred visitors with tasty food. Members of various types of open source communities had interesting chats while relaxing at the banks of the Spree.</p>
<p>As Ubuntu Berlin&#8217;s support for the LinuxTag continuously increased within the last years, I am sure next year will even better. We&#8217;ll see.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2010/06/16/ubuntu-berlin-linuxtag-2010-pickings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://archiv.radiotux.de/interviews/2010-06-12.RadioTux.Daniel.Holbach.bugjam.Linuxtag.mp3" length="16325530" type="audio/mpeg" />
		</item>
		<item>
		<title>My Mom Runs Ubuntu &#8211; Update for Ada Lovelace Day</title>
		<link>http://www.screenage.de/blog/2010/03/24/my-mom-runs-ubuntu-update-for-ada-lovelace-day/</link>
		<comments>http://www.screenage.de/blog/2010/03/24/my-mom-runs-ubuntu-update-for-ada-lovelace-day/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 23:01:42 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=219</guid>
		<description><![CDATA[Just a couple of days ago I wrote update the upcoming &#8220;Ada Lovelace Day&#8221; &#8211; celebrating women in technology on the 24nd of March, which happens to be today. The day pledges for blog posts about this topic and here &#8230; <a href="http://www.screenage.de/blog/2010/03/24/my-mom-runs-ubuntu-update-for-ada-lovelace-day/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a couple of days ago I wrote update the upcoming &#8220;Ada Lovelace Day&#8221; &#8211; celebrating women in technology on the 24nd of March, which happens to be today. The day pledges for blog posts about this topic and here we go with an Ubuntu flavored version.</p>
<p>At Ubucon 2008 in Göttingen, a German Ubuntu User Conference, I noticed that a lot people hanging around discussed how nicely their parents and especially moms are using Ubuntu. No hazzle, no further explanations needed &#8211; it just worked. And often they don&#8217;t even know or notice that they are using Ubuntu, as they just standard software like Firefox and Thunderbird. As this user group doesn&#8217;t belong to the tweeting, facebooking, social web society, I decided to found a launchpad group named &#8220;<a title="My Mom Runs Ubuntu on Launchpad" href="https://launchpad.net/~my-mom-runs-ubuntu">My Mum Runs Ubuntu</a>&#8220;, that has no further meaning than joining it means your mother runs Ubuntu &#8211; a simple way of giving this &#8220;silent&#8221; user group at least a number and a marker on a map.</p>
<p>I was surprised how fast the member list grew and happy to see that it&#8217;s members came and come from all over the world as you can see below:</p>
<div id="attachment_218" class="wp-caption alignnone" style="width: 310px"><a href="http://www.screenage.de/blog/uploads/ubuntu-moms-map-2010.jpg"><img class="size-medium wp-image-218" title="&quot;My Mom Runs Ubuntu&quot; global map (map by Google)" src="http://www.screenage.de/blog/uploads/ubuntu-moms-map-2010-300x152.jpg" alt="&quot;My Mom Runs Ubuntu&quot; global map (map by Google)" width="300" height="152" /></a><p class="wp-caption-text">&quot;My Mom Runs Ubuntu&quot; global map (map by Google)</p></div>
<p>So this is not about a single heroine in technology &#8211; it is about a general movement:  I am convinced, especially Ubuntu with it&#8217;s focus on an intuitive interface seems to keep the entry level very low and therefore attracts user groups that might be a suprprise for a lot of people. I know dozens of techie people stating that free operating systems are way too complicated to use for them. When telling about &#8220;My Mom Runs Ubuntu&#8221; they run out of reasons. At least there is nothing more convincing on using free software than people that are just using it on a daily basis without the need of telling everybody as they just take it as normal. I am sure, this user group continues to grow and am</p>
<p>So, if you already have a Launchpad account and your mum runs Ubuntu, too, give her a voice by just <a href="https://launchpad.net/~my-mom-runs-ubuntu/+join">joining the group</a>.</p>
<p>And if you think, this post misses real techie heroines, check the &#8220;<a href="http://ubuntu-women.org/">Ubuntu Women</a>&#8221; project, featuring some of the <a href="http://wiki.ubuntu-women.org/Profiles">most active member</a>s of the Ubuntu community.</p>
<div class="wp-caption alignnone" style="width: 360px"><img title="Ada Lovelace Day Logo" src="http://blog.findingada.com/wp-content/uploads/2010/03/lovelacedayshirtmucha-Lorin-white.png" alt="Ada Lovelace Day Logo" width="350" height="352" /><p class="wp-caption-text">Ada Lovelace Day Logo</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2010/03/24/my-mom-runs-ubuntu-update-for-ada-lovelace-day/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A quick note on MySQL troubleshooting and MySQL replication</title>
		<link>http://www.screenage.de/blog/2009/04/18/a-quick-note-on-mysql-troubleshooting-and-mysql-replication-recovery/</link>
		<comments>http://www.screenage.de/blog/2009/04/18/a-quick-note-on-mysql-troubleshooting-and-mysql-replication-recovery/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 14:09:21 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[CommandLine]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Recovery]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2009/04/18/a-quick-note-on-mysql-and-mysql-replication-recovery/</guid>
		<description><![CDATA[PLEASE NOTE: I am currently reviewing and extending this document. While caring for a remarkable amount of MySQL server instances, troubleshooting becomes a common task. It might of interest for you which Recovering a crashed MySQL server After a server &#8230; <a href="http://www.screenage.de/blog/2009/04/18/a-quick-note-on-mysql-troubleshooting-and-mysql-replication-recovery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>PLEASE NOTE: I am currently reviewing and extending this document.</p>
<p>While caring for a remarkable amount of MySQL server instances, troubleshooting becomes a common task. It might of interest for you which</p>
<p><strong>Recovering a crashed MySQL server</strong></p>
<p>After a server crash (meaning the system itself or just the MySQL daemon) corrupted table files are quite common. You&#8217;ll see this when checking the /var/log/syslog, as the MySQL daemon checks tables during its startup.</p>
<pre>Apr 17 13:54:44 live1 mysqld[2613]: 090417 13:54:44 [ERROR]
  /usr/sbin/mysqld: Table './database1/table1' is marked as
  crashed and should be repaired</pre>
<p>The MySQL daemon just told you that it found a broken MyISAM table. Now it&#8217;s up to you fixing it. You might already know, that there is the &#8220;REPAIR&#8221; statement. So a lot of people enter their PhpMyAdmin afterwards, select database and table(s) and run the REPAIR statements. The problem with this is that in most cases your system is already in production &#8211; for instance is up again and the MySQL server already serves a bunch of requests. Therefore a REPAIR request gets slowed down dramatically. Consider taking your website down for the REPAIR &#8211; it will be faster and it&#8217;s definitely smarter not to deliver web pages based on corrupted tables.</p>
<p>The other disadvantage of the above method is, that you probably just shut down your web server and your PhpMyAdmin is down either or you have dozens of databases and tables and therefore it&#8217;s just a hard task to cycle through them. The better choice is the command line in this case.</p>
<p>If you only have a small number of corrupted tables, you can use the &#8220;mysql&#8221; client utility doing something like:</p>
<pre>$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.0.75-0ubuntu10 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql&gt; REPAIR TABLE database1.table1;
+--------------------+--------+----------+----------+
| Table              | Op     | Msg_type | Msg_text |
+--------------------+--------+----------+----------+
| database1.table1   | repair | status   | OK       |
+--------------------+--------+----------+----------+
1 row in set (2.10 sec)</pre>
<p>This works, but there is a better way: First, using OPTIMIZE in combination with REPAIR is suggested and there is a command line tool only for REPAIR jobs. Consider this call:</p>
<pre>$ mysqlcheck -u root -p --auto-repair --check --optimize database1
Enter password:
database1.table1      OK
database1.table2      Table is already up to date</pre>
<p>As you see, MySQL just checked the whole database and tried to repair and optimize it.</p>
<p>The great deal about using &#8220;mysqlcheck&#8221; is, that it can also be run against all databases in one run without the need of getting a list of them in advance:</p>
<pre>$ mysqlcheck -u root -p --auto-repair --check --optimize \
  --all-databases</pre>
<p>Of course you need to consider if an optimize of all your databases and tables might just take too long if you have huge tables. On the other hand a complete run prevents of thinking about a probably missed table.</p>
<p>[update]</p>
<p>nobse pointed out in the comments, that it&#8217;s worth having a look at the automatic MyIsam repair options in MySQL. So have a look at them if you want to automate recovery:<a href="http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_myisam-recover"></a></p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_myisam-recover">option_mysqld_myisam-recover</a></p>
<p><strong>Recovering a broken replication</strong></p>
<p>MySQL replication is an easy method of load balancing database queries to multiple servers or just continuously backing up data. Though it is not hard to setup, troubleshooting it might be a hard task. A common reason for a broken replication is a server crash &#8211; the replication partner notices that there are broken queries &#8211; or even worse: the MySQL slave just guesses there is an error though there is none. I just ran into the latter one as a developer executed a &#8220;DROP VIEW&#8221; on a non-existing VIEW on the master. The master justs returns an error and ignores. But as this query got replicated to the MySQL SLAVE, the slave thinks it cannot enroll a query and immediately stopped replication. This is just an example of a possible error (and a hint on using &#8220;IF EXISTS&#8221; as often as possible).</p>
<p>Actually all you want to do now, is telling the slave to ignore just one query. All you need to do for this is stopping the slave, telling it to skip one query and starting the slave again:</p>
<pre>$ mysql -u root -p
mysql&gt; STOP SLAVE;
mysql&gt; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql&gt; START SLAVE;</pre>
<p>That&#8217;s all about this.</p>
<p><strong>Recreating databases and tables the right way</strong></p>
<p>In the next topic you&#8217;ll recreate databases. A common mistake when dropping and recreating tables and databases is forgetting about all the settings it had &#8211; especially charsets which can run you into trouble later on (&#8220;Why do all these umlauts show up scrambled?&#8221;). The best way of recreating tables and databases or creating them on other systems therefore is using the &#8220;SHOW CREATE&#8221; statement. You can use &#8220;SHOW CREATE DATABASE database1&#8243; or &#8220;SHOW CREATE TABLE database1.table1&#8243; providing you with a CREATE statement with all current settings applied.</p>
<pre>mysql&gt; show create database database1;
+-----------+--------------------------------------------------------------------+
| Database  | Create Database                                                    |
+-----------+--------------------------------------------------------------------+
| database1 | CREATE DATABASE `database1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+-----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)</pre>
<p>The important part in this case is the &#8220;comment&#8221; after the actual create statement. It is executed only on compatible MySQL server versions and makes sure, your are running utf8 on the database.</p>
<p>Keep this in mind and it might save you a lot of trouble.</p>
<p><strong>Fixing replication when master binlog is broken</strong></p>
<p>When your MySQL master crashes there is a slight chance that your master binlog gets corrupted. This means that the slaves won&#8217;t receive updates anymore stating:</p>
<p>[ERROR] Slave: Could not parse relay log event entry. The possible reasons are: the master&#8217;s binary log is corrupted (you can check this by running &#8216;mysqlbinlog&#8217; on the binary log), the slave&#8217;s relay log is corrupted (you can check this by running &#8216;mysqlbinlog&#8217; on the relay log), a network problem, or a bug in the master&#8217;s or slave&#8217;s MySQL code. If you want to check the master&#8217;s binary log or slave&#8217;s relay log, you will be able to know their names by issuing &#8216;SHOW SLAVE STATUS&#8217; on this slave. Error_code: 0</p>
<p>You might have luck when only the slave&#8217;s relay log is corrupted as you can fix this with the steps mentioned above. But a corrupted binlog on the master might not be fixable though the databases itself can be fixed. Depending on your time you try to use the &#8220;SQL_SLAVE_SKIP_COUNTER&#8221; from above but actually the only way is to setup</p>
<p><strong>Setting up replication from scratch</strong></p>
<p>There are circumstances forcing you to start replication from scratch. For instance you have a server going live for the first time and actually all those test imports don&#8217;t need to be replicated to the slave anymore as this might last hours. My quick note for this (consider backing up your master database before!)</p>
<pre>slave: STOP SLAVE;
slave: RESET SLAVE;
slave: SHOW CREATE DATABASE datenbank;
slave: DROP DATABASE datenbank;
slave: CREATE DATABASE datenbank;

master: DROP DATABASE datenbak;
master: SHOW CREATE DATABASE datenbank;
master: CREATE DATABASE datenbank;
master: RESET MASTER

slave: CHANGE MASTER TO MASTER_USER="slave-user", \
MASTER_PASSWORD="slave-password", MASTER_HOST="master.host";
slave: START SLAVE</pre>
<p>You just started replication from scratch, check &#8220;SHOW SLAVE STATUS&#8221; on the slave and &#8220;SHOW MASTER STATUS&#8221; on the master.</p>
<p><strong>Deleting unneeded binlog files</strong></p>
<p>Replication needs binlog files &#8211; a mysql file format for storing database changes in a binary format. Sometimes it is hard to decide how many of the binlog files you want to keep on the server possibly getting you into disk space trouble. Therefore deleting binlog files that have already been transferred to the client might be a smart idea when running low on space.</p>
<p>First you need to know which binlog files the slave already fetched. You can do this by having a look on &#8220;SHOW SLAVE STATUS;&#8221; on the slave. Now log into the MySQL master and run something like:</p>
<pre>mysql&gt; PURGE BINARY LOGS TO 'mysql-bin.010';</pre>
<p>You can even do this on a date format level:</p>
<pre>mysql&gt; PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';</pre>
<p><strong>Conclusion</strong></p>
<p>The above hints might save you same time when recovering or troubleshooting a MySQL server. Please note, that these are hints and you have &#8211; at any time &#8211; make sure, that your data has an up to date backup. Nothing will help you more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2009/04/18/a-quick-note-on-mysql-troubleshooting-and-mysql-replication-recovery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ubuntu developers visiting Ubuntu Berlin and c-base &#8211; plus interview with Mark Shuttleworth</title>
		<link>http://www.screenage.de/blog/2009/02/06/ubuntu-developers-visiting-ubuntu-berlin-and-c-base-with-interview-with-mark-shuttleworth/</link>
		<comments>http://www.screenage.de/blog/2009/02/06/ubuntu-developers-visiting-ubuntu-berlin-and-c-base-with-interview-with-mark-shuttleworth/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 16:28:24 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Berlin]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2009/02/06/ubuntu-developers-visiting-ubuntu-berlin-and-c-base-with-interview-with-mark-shuttleworth/</guid>
		<description><![CDATA[A couple of months ago I started annoying people by telling them, I&#8217;d like to show the Ubuntu Berlin community and c-base to Mark Shuttleworth as he is interested in community personally on one side and Ubuntu Berlin is a &#8230; <a href="http://www.screenage.de/blog/2009/02/06/ubuntu-developers-visiting-ubuntu-berlin-and-c-base-with-interview-with-mark-shuttleworth/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago I started annoying people by telling them, I&#8217;d like to show the <a href="http://www.ubuntu-berlin.de/">Ubuntu Berlin</a> community and <a href="http://www.c-base.org/">c-base</a> to <a href="http://www.markshuttleworth.com/">Mark Shuttleworth</a> as he is interested in community personally on one side and Ubuntu Berlin is a great example on the other. So this&#8217;s rather inviting an important member of the community than celebrating a &#8220;meet and greet&#8221;. Of course telling people plans like this makes them smile, but when you raise your finger and say &#8220;It will happen&#8221; with certainty, they&#8217;ll get uncertain. So the plan was actually to invite Mark to one of our great traditional release parties which you shouldn&#8217;t miss when you are around Berlin at release time.</p>
<p>By chance the Ubuntu Developer Sprint happened to be in Berlin for the next Jaunty release this week. If I got it right, the Canonical Ubuntu developers meet five days around two weeks before a release feature freeze and work in groups and issues that need to be decided/designed or just fixed immediatly. The incredible <a href="http://daniel.holba.ch/blog/">Daniel Holbach</a> had the idea of inviting the bunch of developers right into the c-base after their work. So he did and we scheduled it for an evening when the Ubuntu Berlin crew also meets at c-base for their monthly jour fix.</p>
<p>We did not announce this meeting externally as we tried to make the whole evening as comfortable as possible for everyone. And we did, I think. Right in time at 19:30 this Wednesday evening about thirty Ubuntu developers entered the c-base. Just among them Mark who seemed to like the whole c-base hackerspace, Ubuntu Berlin, community, space and future thing a lot. The Canonical crowd got several guided tours through the whole base by __t, while housetier provided the others with &#8220;German beer&#8221; and Club Mate. We had a lot of chats in smaller groups, things, you always wanted to ask the developer of your choice and just relaxed smalltalks about space, canooeing the c-base project &#8220;<a href="http://www.openmoon.info/">OpenMoon</a>&#8221; (trying to send a rocket to the moon), and more. Mark seemed to be amazed about asking people why they joined to Ubuntu Berlin team, what they were currently doing and so on &#8211; so, what the community thing is about right here and right now.</p>
<p>We had no schedule for the evening. Therefore we spent about two and a half hour at c-base without any official part and a cosy diner in smaller groups afterwards. We only asked some people for an interview for the <a href="http://www.youtube.com/user/jocognito">c-base statement studio channel</a> where already people like <a href="http://www.youtube.com/watch?v=pR95TYHDJFE&amp;feature=channel_page">Nokias Peter Schneider</a> and <a href="http://www.youtube.com/watch?v=4gygQ2GgN10&amp;feature=channel_page">Mozillas CEO John Lilly</a> showed up. Mark took the time for an interview by <a href="http://www.youtube.com/user/jocognito">jocognito</a>. The results of this short talks are already online on Youtube:</p>
<p>Interview #1: (when the inbound video doesn&#8217;t show up, <a href="http://www.youtube.com/watch?v=jCz_OXEOrpo">click here</a>)</p>
<div class="youtube-video"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="264" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/jCz_OXEOrpo&amp;hl=de&amp;fs=1&amp;rel=0" /><embed type="application/x-shockwave-flash" width="425" height="264" src="http://www.youtube.com/v/jCz_OXEOrpo&amp;hl=de&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p>Interview #2: (when the inbound video doesn&#8217;t show up, <a href="http://www.youtube.com/watch?v=44-PP_yBruc&amp;feature=related">click here</a>)</p>
<div class="youtube-video"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="264" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/44-PP_yBruc&amp;hl=de&amp;fs=1&amp;rel=0" /><embed type="application/x-shockwave-flash" width="425" height="264" src="http://www.youtube.com/v/44-PP_yBruc&amp;hl=de&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<div class="youtube-video">Another interview with <a href="http://castrojo.wordpress.com/">Jorge Castro</a> and <a href="http://jameswestby.net/weblog">James Westby</a> has also been taped and will be published soon. Funny guys talking about Ubuntu on the moon. I&#8217;ll post the Youtube links, when the edited version is online.</div>
<div class="youtube-video">So what&#8217;s next? I hope everybody liked (Ubuntu) Berlin and c-base and we got a good start for possible events in the future.</div>
<div class="youtube-video">Thanks again to Daniel who initiated the visit!</div>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2009/02/06/ubuntu-developers-visiting-ubuntu-berlin-and-c-base-with-interview-with-mark-shuttleworth/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ubuntu Intrepid Ibex Release Party on 1st of November at c-base (Berlin)</title>
		<link>http://www.screenage.de/blog/2008/10/26/ubuntu-intrepid-ibex-release-party-on-1st-of-november-at-c-base-berlin/</link>
		<comments>http://www.screenage.de/blog/2008/10/26/ubuntu-intrepid-ibex-release-party-on-1st-of-november-at-c-base-berlin/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 15:03:16 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Berlin]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[IntrepidIbex]]></category>
		<category><![CDATA[ReleaseParty]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2008/10/26/ubuntu-intrepid-ibex-release-party-on-1st-of-november-at-c-base-berlin/</guid>
		<description><![CDATA[So, half a year has passed and it&#8217;s time again to celebrate a new Ubuntu release. This is an invitation for you, your friends and any other human being around to join our &#8220;Ubuntu Intrepid Ibex Release Party&#8221; on Saturday, &#8230; <a href="http://www.screenage.de/blog/2008/10/26/ubuntu-intrepid-ibex-release-party-on-1st-of-november-at-c-base-berlin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, half a year has passed and it&#8217;s time again to celebrate a new Ubuntu release. This is an invitation for you, your friends and any other human being around to join our &#8220;Ubuntu Intrepid Ibex Release Party&#8221; on Saturday, the 1st of November, at the sunken starship c-base (Rungestraße 20), starting at 4pm. </p>
<p>Again, a couple of lectures will be held &#8211; ranging from new features in Intrepid (that&#8217;s my part, I&#8217;ll give the lecture at the same day also at the BLIT), over Gnome eyecandy stuff to presentations of Freifunk project and the DeepaMehta semantic desktop (don&#8217;t miss!) directly from it&#8217;s lead developer. So either if you are new to Ubuntu and want to make first steps and contact other Ubuntu users or you are a Linux guru &#8211; you&#8217;ll find somebody to have a chat with, I promise. There&#8217;ll even be a &#8220;tux tinker corner&#8221; where you or your girl friend have the possibility to try out some Tux Origami.</p>
<p>The event&#8217;ll mainly be in German, but a lot of people are speaking English, so don&#8217;t hesitate asking for help/translations.</p>
<p>Entrance is free, there is a free wifi, so feel free to bring your notebook in. You can also &#8220;buy&#8221; a freshly burned Ubuntu/Kubuntu/Xubuntu cd for a service charge of 1 Euro or check the Ubuntu merchandising table.</p>
<p>See you there?</p>
<p><img src="http://www.ubuntu-berlin.de/system/files/ubu-ibex-party.jpg" /></p>
<p>Links:<br />
<a href="http://www.ubuntu-berlin.de/ubuntu-berlin-intrepid-ibex-release-party">Official Party Announcement Page</a><br />
<a href="http://wiki.c-base.org/coredump/AnfahrtsSkizze">how to get to c-base?</a><br />
<a href="http://www.freifunk-bno.de/">Freifunk</a><br />
<a href="http://www.deepamehta.de/">DeepaMehta</a><br />
<a href="http://www.ubuntu-berlin.de/">Ubuntu Berlin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2008/10/26/ubuntu-intrepid-ibex-release-party-on-1st-of-november-at-c-base-berlin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Having fun with OpenSSH on Ubuntu Intrepid Ibex &#8211; visual host keys</title>
		<link>http://www.screenage.de/blog/2008/10/15/having-fun-with-openssh-on-ubuntu-intrepid-ibex-visual-host-keys/</link>
		<comments>http://www.screenage.de/blog/2008/10/15/having-fun-with-openssh-on-ubuntu-intrepid-ibex-visual-host-keys/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 17:16:00 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CommandLine]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[IntrepidIbex]]></category>
		<category><![CDATA[PackeOfTheDay]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2008/10/15/having-fun-with-openssh-on-ubuntu-intrepid-ibex-visual-host-keys/</guid>
		<description><![CDATA[After having a quite uneventful upgrade to Ubuntu Intrepid Ibex (time for a change), I&#8217;s happy to notice, that Intrepid Ibex ships the new OpenSSH version 5.1 which has one little feature, I really fell in love with: visual host &#8230; <a href="http://www.screenage.de/blog/2008/10/15/having-fun-with-openssh-on-ubuntu-intrepid-ibex-visual-host-keys/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After having a quite uneventful upgrade to Ubuntu Intrepid Ibex (time for a change), I&#8217;s happy to notice, that Intrepid Ibex ships the new <a href="http://www.openssh.org/">OpenSSH</a> version 5.1 which has one little feature, I really fell in love with: visual host keys. You might already have read about it on Planet Ubuntu. In case you don&#8217;t: &#8220;visual host keys&#8221; is a way presenting the ssh client user a 2d ascii art visualation of the host key fingerprint. It shall help you to recognize a ssh server by remembering a figure rather than the host key.</p>
<p>If you want to give this a try, call the ssh client this way:</p>
<pre>$ ssh -o VisualHostKey=yes your.host.name
Host key fingerprint is ff:aa:a8:dc:0b:5e:e3:9f:96:f1:75:d4:24
+--[ RSA 1024]----+
|            +o   |
|             o. .|
|            E  + |
|       .   . .. .|
|      . S   ..   |
|   . o o..  . .  |
|    + + .+.. .   |
|   . + ooo.      |
|    . ooo        |
+-----------------+</pre>
<p>Nice, isn&#8217;t it? Now try your different ssh hosts and compare the figures. Hope you don&#8217;t start generating ssh host keys for getting a special figure, do you? <img src='http://www.screenage.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Actually I don&#8217;t know if I&#8217;ll really remember figures of dozens of machines, but hey: it&#8217;s just additional fun.</p>
<p>In case you want to make this behavior default, add &#8220;VisualHostKey yes&#8221; to your &#8220;~/.ssh/config&#8221;. In case you don&#8217;t have this file, make a new one with the following content (and find out that this file makes ssh really poweful in combination with command line completion, but that is another topic):</p>
<pre>Host *
	VisualHostKey		yes</pre>
<p>Please note: This might break applications that rely on the ssh console client as they don&#8217;t expect graphical art popping up. So if some other clients don&#8217;t work anymore, play around with aliases or your ~/ssh/config file.</p>
<p>Thank you, OpenSSH guys, I really appreciate your work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2008/10/15/having-fun-with-openssh-on-ubuntu-intrepid-ibex-visual-host-keys/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>my package of the day &#8211; htmldoc &#8211; for converting html to pdf on the fly</title>
		<link>http://www.screenage.de/blog/2008/07/07/my-package-of-the-day-htmldoc-for-converting-html-to-pdf-on-the-fly/</link>
		<comments>http://www.screenage.de/blog/2008/07/07/my-package-of-the-day-htmldoc-for-converting-html-to-pdf-on-the-fly/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 06:15:31 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CommandLine]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[PackeOfTheDay]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2008/07/07/my-package-of-the-day-htmldoc-for-converting-html-to-pdf-on-the-fly/</guid>
		<description><![CDATA[PDF creation got actually fairly easy. OpenOffice.org, the Cups printing system, KDE provide methods for easily printing nearly everything to a PDF file right away. A feature that even outperforms most Windows setups today. But there are still PDF related &#8230; <a href="http://www.screenage.de/blog/2008/07/07/my-package-of-the-day-htmldoc-for-converting-html-to-pdf-on-the-fly/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>PDF creation got actually fairly easy. OpenOffice.org, the Cups printing system, KDE provide methods for easily printing nearly everything to a PDF file right away. A feature that even outperforms most Windows setups today. But there are still PDF related task that are not that simple. One I often run into is automated PDF creation on a web server. Let&#8217;s say you write a web application and want to create PDF invoices on the fly.</p>
<p>There are, of course, PDF frameworks available. Let&#8217;s take PHP as an example: If you want to create a PDF from a php script, you can choose between <a href="http://www.fpdf.org/">FPDF</a>, <a href="http://www.digitaljunkies.ca/dompdf/">Dompdf</a>, the sophisticated <a href="http://framework.zend.com/">Zend Framework</a> and more (and commercial solutions). But to be honest, they are all either complicated (as you often have to use a specific syntax) to use or just quite limited in their possibilities to create a pdf file (as you can only use few design features). As I needed a simple solution for creating a 50+ pages pdf file with a huge table on the fly I tested most frameworks and failed with most of them (often just as I did not have enough time to write dozens of line of code).</p>
<p>So I hoped to find a solution that allowed me just to convert a simple HTML file to a PDF file on the fly providing better compatibility than Dompdf for instance. The solution was &#8230; uncommon. It was no PHP class but a neat command line tool called &#8220;<a href="http://www.htmldoc.org/">htmldoc</a>&#8221; available as a package. If you want to give it a try just install it by calling &#8220;aptitude install htmldoc&#8221;.</p>
<p>You can test htmldoc by saving some html files to disk and call &#8220;htmldoc &#8211;webpage filename.html&#8221;. There a lot of interesting features like setting font size, font type, the footer, color and greyscale mode and so on. But let&#8217;s use htmldoc from PHP right away. The following very simple script uses the PHP output buffer for minimizing the need for a write to disk to one file only (if somebody knows a way of using this without any temporary files from a script, let me know):</p>
<pre lang="Php">
// start output buffer for pdf capture

ob_start();
?>
your normal html output will be places here either by
dumping html directly or by using normal php code
<?php
// save output buffer
$html=ob_get_contents();
// delete Output-Buffer
ob_end_clean();
// write the html to a file
$filename = './tmp.html';
if (!$handle = fopen($filename, 'w')) {
	print "Could not open $filename";
	exit;
}
if (!fwrite($handle, $html)) {
	print "Could not write $filename";
	exit;
}
fclose($handle);
// htmldoc call
$passthru = 'htmldoc --quiet --gray --textfont helvetica \
--bodyfont helvetica --logoimage banner.png --headfootsize 10 \
--footer D/l --fontsize 9 --size 297x210mm -t pdf14 \
--webpage '.$filename;

// write output of htmldoc to clean output buffer
ob_start();
passthru($passthru);
$pdf=ob_get_contents();
ob_end_clean();

// deliver pdf file as download
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=test.pdf");
header('Content-length: ' . strlen($pdf));
echo $pdf;</pre>
<p>As you can see, this is neither rocket science nor magic. Just a wrapper for htmldoc enabling you to forget about the pdf when writing the actual content of the html file. You'll have to check how htmldoc handles your html code. You should make it as simple as possible, forget about advanced css or nested tables. But it's actually enough for a really neat pdf file and it's fast: The creating of 50+ page pdf files is fast enough in my case to make the on demand access of htmldoc feel like static file usage.</p>
<p>Please note: Calling external programs and command line tools from a web script is always a security issue and you should carefully check input and updates for the program you are using. The code provided should be easily ported to another web language/framework like Perl and Rails.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2008/07/07/my-package-of-the-day-htmldoc-for-converting-html-to-pdf-on-the-fly/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>my package of the day &#8211; htop as an alternative top</title>
		<link>http://www.screenage.de/blog/2008/06/23/my-package-of-the-day-htop-as-an-alternative-top/</link>
		<comments>http://www.screenage.de/blog/2008/06/23/my-package-of-the-day-htop-as-an-alternative-top/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 07:23:47 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[HardyHeron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PackeOfTheDay]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2008/06/23/my-package-of-the-day-htop-as-an-alternative-top/</guid>
		<description><![CDATA[&#8220;top&#8221; is one of those programs, that are used quite often but actually nobody talks about. It just does its job: showing statistics about memory, cache and cpu consumption, listing processes and so on. Actually top provides you some more &#8230; <a href="http://www.screenage.de/blog/2008/06/23/my-package-of-the-day-htop-as-an-alternative-top/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&#8220;top&#8221; is one of those programs, that are used quite often but actually nobody talks about. It just does its job: showing statistics about memory, cache and cpu consumption, listing processes and so on. Actually top provides you some more features like batch mode and the ability to kill processes, but it&#8217;s all quite low level &#8211; e.g. you have to type the process id (pid) of process you want to kill.</p>
<p>So, though an applications like top makes sense on the console, a more sophisticated one would be great, extending the basic top functionality with enhancements to it&#8217;s usage. This tool already exists: It&#8217;s the ncurses based &#8220;<a href="http://htop.sourceforge.net/">htop</a>&#8221; and we&#8217;ll have a closer look at it now.</p>
<p>For the beginning: Install &#8220;htop&#8221; by running &#8220;aptitude install htop&#8221;, Synaptic or the package manager of your choice. As you can see, htop is quite colorful, which is, of course, a matter of taste. In my opinion, colors make sense, when the they mean something or provide better readability. So let&#8217;s check the output in brief:</p>
<p><img src="http://www.screenage.de/blog/uploads/htop1.png" alt="htop1.png" /></p>
<p>At the upper left corner you see statistics about the usage of cpu cores (in my case there are two of them, marked &#8220;1&#8243; and &#8220;2&#8243;), memory and swap statistics, while on the right side, you have the common uptime/load stats. The interesting part is the usage of colors in cpu/ram/swap bars. If you are new to htop you have to look the colors up at least once. Therefore just stroke &#8220;h&#8221; (&#8220;F1&#8243; should work, too, but Gnome might get in your way) and you&#8217;ll see a nice explanation in the help:</p>
<p><img src="http://www.screenage.de/blog/uploads/htop2.png" alt="htop2.png" /></p>
<p>Quite interesting is the distribution between green and red in the cpu stats, as a high kernel load often means something goes wrong (with the hardware i/o for instance). In the memory bar the real used ram is marked green &#8211; blue and orance actually could be cleared by the kernel if necessary. (People are often confused that their ram seems to be full, when calling a tool like/htop though they are not running that many programs. It&#8217;s important to understand, that the memory is also used for buffering/caching and that this memory can often be used by &#8220;real&#8221; data later on).</p>
<p>So what&#8217;s the next htop feature? Use your mouse, if you like! You can test it by clicking on &#8220;Help&#8221; on the menu bar at the bottom. Maybe while clicking around a bit you already noticed that you can also click on processes and mark them. What for? Well, htop enables you to kill processes quit easy, as you don&#8217;t have to type a process id, write a pattern or something, you just can mark them with a mouse or cursor and either click on &#8220;Kill&#8221; in the menu or stroke the &#8220;F9&#8243; or &#8220;k&#8221; key. &#8220;htop&#8221; will let you choose from a list of signals afterwards:</p>
<p><img src="http://www.screenage.de/blog/uploads/htop3.png" alt="htop3.png" /></p>
<p>Of course you cannot kill processes that belong to your user when htop does not run as root (i.e. with &#8220;sudo&#8221;). &#8220;htop&#8221; marks processes that belong to user it is run by with a brighter process id:</p>
<p><img src="http://www.screenage.de/blog/uploads/htop4.png" alt="htop4.png" /></p>
<p>Sadfully this also means, that running htop as root/sudo, marks processes that belong to non-root with a darker grey. But hey, that&#8217;s a nice missing feature for patch, isn&#8217;t it?</p>
<p>If you like to become an advanced htop user, you can check the &#8220;Setup&#8221; menu (click it or press the &#8220;F2&#8243; or &#8220;S&#8221; key). You will see a menu for configuring the output of htop, enabling you to switch off and on the display of certain information:</p>
<p><img src="http://www.screenage.de/blog/uploads/htop5.png" alt="htop5.png" /></p>
<p>Of course you can also sort the process list (click &#8220;Sort&#8221; or press &#8220;F6&#8243;) which give you a list of possible sort parameters:</p>
<p><img src="http://www.screenage.de/blog/uploads/htop6.png" alt="htop6.png" /></p>
<p>In spite of this, you can switch to a process tree display and sort it by pressing one of the keys showed below:</p>
<p><img src="http://www.screenage.de/blog/uploads/htop7.png" alt="htop7.png" /></p>
<p>So let me give you a last nice gimmick and then end for today: You can try to attach &#8220;strace&#8221; to a running process by marking the process typing &#8220;s&#8221;. If you don&#8217;t know, what strace is, don&#8217;t bother, if you do, you will probably like this feature pretty much.</p>
<p>I hope you got the clue about using htop, which is a really neat, full featured console top replacement that is even worth to be used when running X as it supports mouse usage and brings everything you need while still having a small footprint. If you have alternatives, you like mention, feel free to drop them as a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2008/06/23/my-package-of-the-day-htop-as-an-alternative-top/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>my package of the day &#8211; mtr as a powerful and default alternative to traceroute</title>
		<link>http://www.screenage.de/blog/2008/06/20/my-package-of-the-day-mtr-as-a-powerful-and-default-alternative-to-traceroute/</link>
		<comments>http://www.screenage.de/blog/2008/06/20/my-package-of-the-day-mtr-as-a-powerful-and-default-alternative-to-traceroute/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 15:03:27 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CommandLine]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[PackeOfTheDay]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2008/06/20/my-package-of-the-day-mtr-as-a-powerful-and-default-alternative-to-traceroute/</guid>
		<description><![CDATA[Know the situation? Something is wrong with the network or you are just curious and want to run a &#8220;traceroute&#8221;. At least under most Debian based systems your first session will probably look like this: $ traceroute www.ubuntu.com command not &#8230; <a href="http://www.screenage.de/blog/2008/06/20/my-package-of-the-day-mtr-as-a-powerful-and-default-alternative-to-traceroute/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Know the situation? Something is wrong with the network or you are just curious and want to run a &#8220;traceroute&#8221;. At least under most Debian based systems your first session will probably look like this:</p>
<pre lang="Bash">$ traceroute www.ubuntu.com
command not found: traceroute</pre>
<p>Maybe on Ubuntu you will at least be hinted to install &#8220;traceroute&#8221; or &#8220;traceroute-nanog&#8221;&#8230; To be honest, I really hate this lack of a basic tool and cannot even remember how often I typed &#8220;aptitude install traceroute&#8221; afterwards (and press thumbs your network is up and running).</p>
<p>But sometimes you just need to dig a bit deeper and this time the surprise was really big as the incredible <a href="http://mnemonikk.org">Mnemonikk</a> told me about an alternative that is installed by default in Ubuntu and nearly no one knows about it: &#8220;<a href="http://www.bitwizard.nl/mtr/">mtr</a>&#8220;, which is an abbreviation for &#8220;my traceroute&#8221;.</p>
<p>Let&#8217;s just check it by calling &#8220;mtr www.ubuntu.com&#8221; (i slightly changed the output for security reasons):</p>
<pre>                 My traceroute  [v0.72]
ccm        (0.0.0.0)          Wed Jun 20 6:51:20 2008
Keys:  Help   Display mode   Restart statistics   Order
of fields      Packets               Pings
 Host        Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 1.2.3.4   0.0%   331    0.3   0.3   0.3   0.5   0.0
 2. 2.3.4.5   0.0%   331   15.6  16.3  14.9  42.6   2.6
 3. 3.4.5.6   0.0%   330   15.0  15.5  14.4  58.5   2.7
 4. 4.5.6.7   0.0%   330   17.5  17.3  15.4  60.5   5.3
 5. 5.6.7.8   0.0%   330   15.7  24.3  15.6 212.3  30.2
 6. ae-32-52 58.8%   330   20.6  22.1  15.9  42.5   4.7
 7. ae-2.ebr 54.1%   330   20.6  25.0  19.0  45.4   4.7
 8. ae-1-100  0.0%   330   21.5  25.4  19.2  41.1   5.1
 9. ae-2.ebr  0.0%   330   27.5  34.0  26.7  73.5   5.2
10. ae-1-100  0.3%   330   28.8  33.6  26.7  72.5   6.0
11. ae-2.ebr  0.0%   330   30.8  32.9  26.7  48.5   5.0
12. ae-26-52  0.0%   330   27.6  34.8  26.9 226.8  26.8
13. 195.50.1  0.3%   330   27.7  28.4  27.2  42.5   1.7
14. gw0-0-gr  0.0%   330   27.9  28.1  27.0  40.5   1.4
15. avocado.  0.0%   330   27.8  28.0  27.2  36.2   1.0</pre>
<p>You might notice, that the output is quite well formed (&#8220;mtr&#8221; uses curses for this). The interesting point is: Instead of running once, mtr continuously updates the output and statistics, providing you with a neat network overview. So you can use it as an enhanced ping showing all steps between you and the target.</p>
<p>For the sake of it: The package installed by default in Ubuntu is actually called &#8220;mtr-tiny&#8221; as it lacks a graphical user interface. If you prefer a gui you can replace the package with &#8220;mtr&#8221; by running &#8220;aptitude install mtr&#8221;. When running &#8220;mtr&#8221; from the console afterwards you will be prompted with a gtk interface. In case you still want text mode, just append &#8220;&#8211;curses&#8221; as a parameter.</p>
<p>Yes, that was a quick package, but if you keep it in mind, you will save time, you normalle spend for installing &#8220;traceroute&#8221; and you&#8217;ll definitely have better results for network diagnose. Happy mtr&#8217;ing!</p>
<p><strong>[update]</strong></p>
<p>sherman noted, that the reason for traceroute not being installed is, that it&#8217;s just deprecated and &#8220;tracepath&#8221; should be used instead. Thank you for the hint, though I&#8217;d prefer &#8220;mtr&#8221; as it&#8217;s much more reliable and verbose.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2008/06/20/my-package-of-the-day-mtr-as-a-powerful-and-default-alternative-to-traceroute/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>my package of the day &#8211; gpg for symmetric encryption</title>
		<link>http://www.screenage.de/blog/2008/06/19/my-package-of-the-day-gpg-for-symmetric-encryption/</link>
		<comments>http://www.screenage.de/blog/2008/06/19/my-package-of-the-day-gpg-for-symmetric-encryption/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 16:00:42 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Bashup]]></category>
		<category><![CDATA[CommandLine]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[PackeOfTheDay]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2008/06/19/my-package-of-the-day-gpg-for-symmetric-encryption/</guid>
		<description><![CDATA[Though asymmetric encryption is state of the art today, there are still cases when you probably are in need of a simple symmetric encryption. In my case, I need an easy scriptable interface for encrypting files for backup as transparent &#8230; <a href="http://www.screenage.de/blog/2008/06/19/my-package-of-the-day-gpg-for-symmetric-encryption/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Though asymmetric encryption is state of the art today, there are still cases when you probably are in need of a simple symmetric encryption. In my case, I need an easy scriptable interface for encrypting files for backup as transparent as possible. While you can, of course, use asymmetric encryption for this, symmetric methods can save you a lot of time while still being secure enough.</p>
<p>So there are methods like stupid .zip encryption or a bunch of packages in the repositories like &#8220;bcrypt&#8221; that provide you with their implementations. But there is a tool, you already know and maybe even use, but don&#8217;t think of when considering symmetric encryption: &#8220;<a href="http://www.gnupg.org/">gpg</a>&#8220;. Actually gpg heavily relies on symmetric algorithms as you might know. The public/private key encryption is a combination of asymmetric and symmetric encryption as the latter is quite more cpu efficient. In our case, gpg will use the strong <a href="http://www.gnu.org/software/gnu-crypto/manual/api/gnu/crypto/cipher/Cast5.html">cast5 cipher</a> by default.</p>
<p><strong>Encrypting</strong></p>
<p>So as gpg already knows about a bunch of symmetric encryption algorithms, why not use  them? Let&#8217;s just see an example. You have a file named &#8220;secretfile1.txt&#8221; and want to encrypt it:</p>
<pre lang="Bash">$ gpg --symmetric secretfile1.txt</pre>
<p>You will be prompted for a password. Afterwards you&#8217;ll have a file named secretfile1.txt.gpg. You are already done!  Please note: The file size of the encrypted file might have decreased as gpg also compresses during encryption and outputs a binary. In my test case the file size went down from 700k to 100k. Nice.</p>
<p><strong>Armoring</strong></p>
<p>In case you need to have an easy portable file that is even ready to be copy-pasted, you can ask gpg to create an ascii armor container:</p>
<pre lang="Bash">$ gpg --armor --symmetric secretfile1.txt</pre>
<p>The output file will be called &#8220;secretfile1.txt.asc&#8221;. Don&#8217;t bother to open it in a text editor of your choice. The beginning will look similar to this:</p>
<pre>$ head secretfile1.txt.asc
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.6 (GNU/Linux)

jA0EAwMChpQrAA/o8IFgye1j3ErZPvXumcnIwbzSvENDD/fYlWMRiY/qqvn949kV
+mo/v+nQi7OFrrA45scQPuPbj8I1T+2f7XAT4ouW2kuHIJ/2zkyrxBMvO04fDH82
273NwUrXd/s+JJXe+wJz149K324rE7+FIHvfImiez8lRs5qyRI/drp/wFK8ZHRvF
gzhDGaTe8Dgj1YqHgWAY4eAjrXhYLI1imbIYrV1OVPia6Roif37FV7C1AT/i/2HX
2ytI2mBhQLdqkSVeqXZ74lgZhsitnOeqZH65IuTLi77PUcroFOuefw6+4qSpMIuM
8dyi4jCqQ1jCR7PRorpGvm3RtXhlkB689vrknKmOa5uztTj3MGrPOgC6jegBpu/L
3419sAxRtw8bj2lP76B+XXPZ2Tuzpg01hC/BWlifSexy+juYXv7iuF5BuQ1z7nTi</pre>
<p><em>(In this case I used &#8216;head&#8221; for displaying the first ten lines. Head is similar to tail, which you might already know.) </em>Though the ascii file is larger than the binary .gpg file it is still much smaller than the original text file (about 200k in the above case). When tampering with binary files like already compressed tarballs the file size of the encrypted file might slightly increase. In my test, the size grew from a 478kB file to a 479kB file when using binary mode. In ascii armor mode the size nearly hit the 650kb mark, which is still pretty acceptable.</p>
<p><strong>Decrypting</strong></p>
<p>Decrypting is as easy. Just call &#8220;gpg &#8211;decrypt&#8221;, for instance:</p>
<pre lang="Bash">$ gpg --decrypt secretfile1.txt.gpg
# or
$ gpg --decrypt secretfile1.txt.asc</pre>
<p>gpg knows by itself, if it is given an ascii armored or binary file. But nevertheless the output will be written to standard output, so the following line might be much more helpful for you:</p>
<pre lang="Bash">$ gpg --output secretfile1.txt --decrypt secretfile1.txt.gpg</pre>
<p>Please note, that you need to stick to the order first &#8211;output, then &#8211;decrypt. Of course you can also use a redirector (&#8220;&gt;&#8221;).</p>
<p><strong>Piping</strong></p>
<p>So, for the sake of it: The real interesting thing is that you can use gpg symmetric encryption in a chain of programs, controlled by pipes. This enables you to encrypt/decrypt on the fly with shell scripts helping you to write strong backup scripts. Gpg already detects, if your are using it in a pipe. So let&#8217;s try it out:</p>
<pre lang="Bash">$ tar c directory | gpg --symmetric --passphrase secretmantra \
| ssh hostname "cat &gt; backup.tar.gpg"</pre>
<p>We just made a tarbal, encrypted it and sent it over ssh without creating temporary files. Nice, isn&#8217;t it? To be honest, piping over ssh is not a big deal anymore. But piping to ftp? Check this:</p>
<pre lang="Bash">$  tar c directory | gpg --symmetric --passphrase SECRETMANTRA \
| curl --netrc-optional --silent --show-error --upload-file - \
--ftp-create-dirs ftp://USER:PASSWORD@SECRETHOST/SECRETFILE.tar.gpg</pre>
<p>With the mighty curl we just piped from tar over gpg directly to a file on a ftp server without any temporary files. You might get a clue of the power of this chain. Now you can start using a dumb ftp server as encrypted backup device now completely transparently.</p>
<p>That&#8217;s all for now. If you like encryption, you should also check symmetric encryption and the possibilities of enhancing daily business scripts security by adding some strong crypto to it. Of course you can complain about the security of the password, the possible visibility via &#8220;ps aux&#8221;, but you should be able to reduce risks by putting some brain in it. In the meantime check &#8220;<a href="http://www.screenage.de/blog/2008/01/28/bashup-a-first-example-for-a-simple-tree-backup-over-ssh/">bashup</a>&#8220;, the bash backup script, which uses methods described here to provide you with a powerful and scriptable backup library written in Bash with minimum depencies. And yes, gpg will be added soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2008/06/19/my-package-of-the-day-gpg-for-symmetric-encryption/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
