<?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>Strangeparty &#187; Ubuntu</title>
	<atom:link href="http://www.strangeparty.com/taxonomy/linux/ubuntu-linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.strangeparty.com</link>
	<description>A blog about life, linux and photography</description>
	<lastBuildDate>Mon, 16 Jan 2012 14:44:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Message Broker v8 with MySQL</title>
		<link>http://www.strangeparty.com/2011/12/15/message-broker-v8-with-mysql/</link>
		<comments>http://www.strangeparty.com/2011/12/15/message-broker-v8-with-mysql/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 09:22:30 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Message Broker]]></category>
		<category><![CDATA[My Job]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[messagebroker]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[wmb]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=884</guid>
		<description><![CDATA[<p>Now that you know that you can use Message Broker v8 on Ubuntu for development, you may be wondering if you can use some of the databases that are more common on Linux, such as MySQL. You can!</p> <p>IBM WebSphere Message Broker now uses UnixODBC to connect to many databases. Though not supported by IBM, <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/12/15/message-broker-v8-with-mysql/">Message Broker v8 with MySQL</a></span>]]></description>
			<content:encoded><![CDATA[<p>Now that you know that you can use <a href="http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/">Message Broker v8 on Ubuntu</a> for development, you may be wondering if you can use some of the databases that are more common on Linux, such as MySQL. You can!</p>
<p>IBM WebSphere Message Broker now uses UnixODBC to connect to many databases. Though not supported by IBM, you can actually connect to MySQL from Message Broker using UnixODBC.</p>
<p><span id="more-884"></span></p>
<p>If you are on Ubuntu, you can install the MySQL UnixODBC dirver and the MySQL server with apt-get:</p>
<blockquote>
<pre>apt-get install libmyodbc mysql-server</pre>
</blockquote>
<p>Your environment variable <em>$ODBCINI</em> should point to your <em>odbc.ini</em>, mine points to /var/mqsi/odbc/odbc.ini and the base file was copied from <em>/opt/IBM/mqsi/8.0.0.0/ODBC/unixodbc/odbc.ini</em></p>
<p>You need to set a database definition for a mysql database, something like the following (assuming &#8220;wmb&#8221; is the name of your MySQL database created later)</p>
<blockquote>
<pre>[MYSQL]
Description     = MYSQL DB
Driver          = MySQL
Database        = wmb
Server          = 127.0.0.1
Port            = 3306</pre>
</blockquote>
<p>You also need to make sure your <em>$ODBCSYSINI</em> points to the folder (not the file) where your <em>odbcinst.ini</em> file has been copied to. Mine is set to <em>/var/mqsi/odbc</em> and the <em>odbcinst.ini</em> file was copied from <em>/opt/mqsi/8.0.0.0/ODBC/unixodbc/odbcinst.ini</em>, you also need to add a definition to explain to UnixODBC how to connect to a mysql database</p>
<p>The following should be enough to get UnixODBC working with MySQL</p>
<blockquote>
<pre>#Sample from package libmyodbc
[MySQL]
Description     = MySQL driver
Driver          = /usr/lib/odbc/libmyodbc.so
Setup           = /usr/lib/odbc/libodbcmyS.so
CPTimeout       =
CPReuse         =</pre>
</blockquote>
<p>Now create a mysql database (<em>mysqladmin create wmb</em>). You may need to GRANT some permissions to your user in MySQL, or add yourself to the mysql group and logout and back in again.</p>
<p>You can now check the database connection using the WMB mqsicvp command, which will also describe which database functions are available:</p>
<pre>mqsicvp -n MYSQL -u anton -p password</pre>
<pre>BIP8270I: Connected to Datasource 'MYSQL' as user 'anton'. The datasource platform is 'MySQL', version '5.1.58-1ubuntu1'.
===========================
databaseProviderVersion      = 5.1.58-1ubuntu1
driverVersion                = 05.01.0006
driverOdbcVersion            = 03.51
driverManagerVersion         = 03.52.0002.0002
driverManagerOdbcVersion     = 03.52
databaseProviderName         = MySQL
datasourceServerName         = 127.0.0.1 via TCP/IP
databaseName                 = wmb
odbcDatasourceName           = MYSQL
driverName                   = libmyodbc5.so
supportsStoredProcedures     = Yes
procedureTerm                = stored procedure
accessibleTables             = No
accessibleProcedures         = No
identifierQuote              = `
specialCharacters            = None
describeParameter            = No
schemaTerm                   =
tableTerm                    = table
sqlSubqueries                = 31
activeEnvironments           = 0
maxDriverConnections         = 0
maxCatalogNameLength         = 192
maxColumnNameLength          = 192
maxSchemaNameLength          = 0
maxStatementLength           = 8192
maxTableNameLength           = 192
supportsDecimalType          = Yes
supportsDateType             = Yes
supportsTimeType             = No
supportsTimeStampType        = No
supportsIntervalType         = No
supportsAbsFunction          = Yes
supportsAcosFunction         = Yes
supportsAsinFunction         = Yes
supportsAtanFunction         = Yes
supportsAtan2Function        = Yes
supportsCeilingFunction      = Yes
supportsCosFunction          = Yes
supportsCotFunction          = Yes
supportsDegreesFunction      = Yes
supportsExpFunction          = Yes
supportsFloorFunction        = Yes
supportsLogFunction          = Yes
supportsLog10Function        = Yes
supportsModFunction          = Yes
supportsPiFunction           = Yes
supportsPowerFunction        = Yes
supportsRadiansFunction      = Yes
supportsRandFunction         = Yes
supportsRoundFunction        = Yes
supportsSignFunction         = Yes
supportsSinFunction          = Yes
supportsSqrtFunction         = Yes
supportsTanFunction          = Yes
supportsTruncateFunction     = Yes
supportsConcatFunction       = Yes
supportsInsertFunction       = Yes
supportsLcaseFunction        = Yes
supportsLeftFunction         = Yes
supportsLengthFunction       = Yes
supportsLTrimFunction        = Yes
supportsPositionFunction     = Yes
supportsRepeatFunction       = Yes
supportsReplaceFunction      = Yes
supportsRightFunction        = Yes
supportsRTrimFunction        = Yes
supportsSpaceFunction        = Yes
supportsSubstringFunction    = Yes
supportsUcaseFunction        = Yes
supportsExtractFunction      = Yes
supportsCaseExpression       = Yes
supportsCastFunction         = Yes
supportsCoalesceFunction     = Yes
supportsNullIfFunction       = Yes
supportsConvertFunction      = No
supportsSumFunction          = Yes
supportsMaxFunction          = Yes
supportsMinFunction          = Yes
supportsCountFunction        = Yes
supportsBetweenPredicate     = Yes
supportsExistsPredicate      = Yes
supportsInPredicate          = Yes
supportsLikePredicate        = Yes
supportsNullPredicate        = Yes
supportsNotNullPredicate     = Yes
supportsLikeEscapeClause     = Yes
supportsClobType             = Yes
supportsBlobType             = Yes
charDatatypeName             = char
varCharDatatypeName          = varchar
longVarCharDatatypeName      = long varchar
clobDatatypeName             = N/A
timeStampDatatypeName        = N/A
binaryDatatypeName           = binary
varBinaryDatatypeName        = varbinary
longVarBinaryDatatypeName    = long varbinary
blobDatatypeName             = N/A
intDatatypeName              = integer
doubleDatatypeName           = double
varCharMaxLength             = 0
longVarCharMaxLength         = 0
clobMaxLength                = 0
varBinaryMaxLength           = 0
longVarBinaryMaxLength       = 0
blobMaxLength                = 0
timeStampMaxLength           = 0
identifierCase               = Mixed
escapeCharacter              = \
longVarCharDatatype          = -1
clobDatatype                 = 0
longVarBinaryDatatype        = -4
blobDatatype                 = 0

BIP8273I: The following datatypes and functions are not natively 
supported by datasource 'MYSQL' using this ODBC driver:
Unsupported datatypes: 'TIME, TIMESTAMP, INTERVAL' Unsupported functions: 'CONVERT'</pre>
<pre>Examine the specific datatypes and functions not supported
natively by this datasource using this ODBC driver.
When using these datatypes and functions within ESQL, the
associated data processing is done within WebSphere Message
Broker rather than being processed by the database provider.  

Note that "functions" within this message can refer to functions or predicates. 

BIP8071I: Successful command completion.</pre>
<p>There &#8211; done! Now you can use MySQL with WebSphere Message Broker on Ubuntu. Don&#8217;t forget to set the database password with <em>mqsisetdbparms</em> before trying to actually connect from your database nodes.</p>
<p>Also, the name of the database according to WMB is &#8220;MYSQL&#8221; as that is what I defined in the odbc.ini. The name of the database according to mysql is &#8220;wmb&#8221;. They don&#8217;t need to be different, but it might help having unique names if you are trying to track down a database connection issue.</p>
<p>Of course, the mysql database server does not need to be local to the broker &#8211; The mysql odbc driver should allow you connect to any accessible tcpip mysql server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/12/15/message-broker-v8-with-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebSphere Message Broker on Ubuntu</title>
		<link>http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/</link>
		<comments>http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 09:22:13 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Message Broker]]></category>
		<category><![CDATA[My Job]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[messagebroker]]></category>
		<category><![CDATA[mq]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wmb]]></category>
		<category><![CDATA[wmq]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=714</guid>
		<description><![CDATA[<p>WebSphere Message Broker v8 now supports Ubuntu for development systems (i.e. not production use) - http://www-01.ibm.com/support/docview.wss?uid=swg27023600#Ubuntu</p> <p>I have been running MQ and Message Broker on Ubuntu and Debian since shortly after I joined IBM in 2005, and it seems there are lots of other people doing this too despite it not being a supported platform before <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/">WebSphere Message Broker on Ubuntu</a></span>]]></description>
			<content:encoded><![CDATA[<p>WebSphere Message Broker v8 now supports Ubuntu for development systems (i.e. not production use) - <a href="http://www-01.ibm.com/support/docview.wss?uid=swg27023600#Ubuntu">http://www-01.ibm.com/support/docview.wss?uid=swg27023600#Ubuntu</a></p>
<p>I have been running MQ and Message Broker on Ubuntu and Debian since shortly after I joined IBM in 2005, and it seems there are <a href="http://www.google.co.uk/search?q=mq+on+ubuntu">lots of other people doing this too</a> despite it not being a supported platform before now.</p>
<p>Lots of people have advice on how to install MQ and WMB, and it is worth mentioning them in case you have problems.</p>
<p><a href="http://www.reidmorrison.com/linux/install-websphere-mq-on-ubuntu">http://www.reidmorrison.com/linux/install-websphere-mq-on-ubuntu</a></p>
<p><a href="http://www.gefira.pl/blog/2010/07/03/websphere-mq-and-ubuntu-howto/">http://www.gefira.pl/blog/2010/07/03/websphere-mq-and-ubuntu-howto/</a></p>
<p><a href="http://blog.herbert.groot.jebbink.nl/2009/06/wmb-61-ubuntu-904.html">http://blog.herbert.groot.jebbink.nl/2009/06/wmb-61-ubuntu-904.html</a></p>
<p>The best advice I can give for installing MQ and WMB on Ubuntu is:</p>
<ul></ul>
<ul>
<li>change the /bin/sh symlink to point to /bin/bash &#8211; MQ Doesn&#8217;t like installing with dash as the default shell.</li>
<p>
</ul>
<ul>
<li>use rpm to install MQ &#8211; Alien is a bit of a hack, and does not work well. You will need to use the &#8220;&#8211;force-debian&#8221; flag on rpm to make it install.</li>
<p>
</ul>
<ul>
<li>One other thing which might help is to run the mqlicense.sh script with the &#8216;-console&#8217; flag as it may not find your X applications properly.</li>
<p>
</ul>
<p>Some user&#8217;s have noticed that chown on Debian and Ubuntu strips the setuid bit from the binaries (Debian and Ubuntu consider leaving setuid set on an executable when you change it&#8217;s owner a security flaw, whereas Redhat and SuSE appear not to) so you may need to fix the permissions (best to check the permissions of the same level of MQ from a RHEL or SLES box and set them the same) though I have not seen this with recent versions of MQ.</p>
<p>Message Broker v8 installs quite happily on Ubuntu. The only issues that I know of are that some of the eclipse based gui applications do not draw everything correctly. This is a known eclipse-GTK bug, and is more common on releases after Lucid Lynx (10.04). A workaround is to set the environment variable  <em>GDK_NATIVE_WINDOWS=1</em></p>
<p>Update 05/01/12 &#8211; I have just noticed that the script &#8216;mqsicreateworkpath&#8217; which is used to initialise /var/mqsi correctly still uses ksh. Either install ksh on your system or edit the script to say bash in the first line instead of ksh (it should work fine then)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Guest presenting on the Ubuntu UK PodCast</title>
		<link>http://www.strangeparty.com/2011/09/28/guest-presenting-on-the-ubuntu-uk-podcast/</link>
		<comments>http://www.strangeparty.com/2011/09/28/guest-presenting-on-the-ubuntu-uk-podcast/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 20:41:00 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[IBM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[southackton]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[UUPC]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/2011/09/28/guest-presenting-on-the-ubuntu-uk-podcast/</guid>
		<description><![CDATA[<p>I was a guest presenter on this weeks Ubuntu UK PodCast. I talked about Southackton, and IBM&#8217;s use of Ubuntu on the desktop. Listen to the podcast at http://t.co/vVL5M3YJ </p> ]]></description>
			<content:encoded><![CDATA[<p>I was a guest presenter on this weeks Ubuntu UK PodCast. I talked about Southackton, and IBM&#8217;s use of Ubuntu on the desktop.<br />
Listen to the podcast at <a href="http://t.co/vVL5M3YJ"><br />
http://t.co/vVL5M3YJ</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/09/28/guest-presenting-on-the-ubuntu-uk-podcast/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fix your Arduino Uno for Linux</title>
		<link>http://www.strangeparty.com/2010/12/13/fix-your-arduino-uno-for-linux/</link>
		<comments>http://www.strangeparty.com/2010/12/13/fix-your-arduino-uno-for-linux/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 17:25:46 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=764</guid>
		<description><![CDATA[<p>Are you using an Arduino Uno on Linux? If so, you may have noticed that writing to the serial port in a loop can cause the Arduino Editor/Programmer software to appear to lock up, or even Linux having trouble using the serial port for your Uno.</p> <p>It turns out there was a bug in the <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2010/12/13/fix-your-arduino-uno-for-linux/">Fix your Arduino Uno for Linux</a></span>]]></description>
			<content:encoded><![CDATA[<p>Are you using an Arduino Uno on Linux? If so, you may have noticed that writing to the serial port in a loop can cause the Arduino Editor/Programmer software to appear to lock up, or even Linux having trouble using the serial port for your Uno.</p>
<p>It turns out there was a bug in the USB-&gt;Serial firmware on the chip which caused this [1], and it is quite easy to update your arduino to fix it. According to the author of the USB-&gt;Serial firmware, it is not possible to break your Arduino permenantly doing this [1], but I can&#8217;t promise anything (though it worked fine for me and others)</p>
<p>From <a href="https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduino-usbserial/">https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduino-usbserial/</a> download your hex file for your board, i.e. either <em>Arduino-usbserial-mega.hex</em> or <em>Arduino-usbserial-uno.hex</em>. As it is github, click on the file in the list then right click on &#8220;<em>raw</em>&#8221; and click &#8220;<em>Save as</em>&#8220;.</p>
<p>The md5sum of the Arduino Uno file from the 4th December is 8e01ee236e70bbea43f7eb4e11c9688a</p>
<p>You will need the dfu programmer tools, which are conveniently in Lucid/Universe, so just run</p>
<blockquote>
<pre>sudo aptitude install dfu-programmer</pre>
</blockquote>
<p>You need to do a hardware-reset to put the chip into the correct DFU programming mode, which is simply best explained with the picture at <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285962838/10#10">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285962838/10#10</a> (you will need to register on the arduino site to login, but a picture speaks a thousand words)</p>
<p>The Uno&#8217;s use a AT90USB82 serial-usb chip, so we then reflash the firmware with the following commands</p>
<blockquote>
<pre>sudo dfu-programmer at90usb82 erase
sudo dfu-programmer at90usb82 flash --debug 1 Arduino-usbserial-uno.hex
sudo dfu-programmer at90usb82 reset</pre>
</blockquote>
<p>Finally, just disconnect the USB lead and reconnect to reset the device back to normal mode.</p>
<p>Done &#8211; You no longer have to worry about writing to your serial port on your Arduino.</p>
<blockquote><p><em>References:<br />
[1] <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/38#38">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/38#38 &#8211; Author of Arduino USB stack talks about</a><br />
[2] <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/34#34">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/34#34 &#8211; First person to find fix and author of instructions that these are heavily based on</a></em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2010/12/13/fix-your-arduino-uno-for-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ubuntu in Business</title>
		<link>http://www.strangeparty.com/2010/07/15/ubuntu-in-business/</link>
		<comments>http://www.strangeparty.com/2010/07/15/ubuntu-in-business/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 14:33:01 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=712</guid>
		<description><![CDATA[<p>On Tuesday I attended the Ubuntu in Business event run by the Ubuntu UK Community and Canonical, and unlike Proactive Paul I really enjoyed the day and thought it was a success.</p> <p>I will agree and say that there should have been more introductory talks on Ubuntu and Open Source for those people that were not <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2010/07/15/ubuntu-in-business/">Ubuntu in Business</a></span>]]></description>
			<content:encoded><![CDATA[<p>On Tuesday I attended the Ubuntu in Business event run by the Ubuntu UK Community and Canonical, and unlike <a href="http://www.dontreadmyblog.com/?p=2969">Proactive Paul</a> I really enjoyed the day and thought it was a success.</p>
<p>I will agree and say that there should have been more introductory talks on Ubuntu and Open Source for those people that were not familiar, especially as they were trying to target new and potential users, however given half the audience was already running Ubuntu I am not sure if that would have been a waste. Certainly introduction demo&#8217;s are always good and especially for someone new to Ubuntu or Linux this would show that really it is not very different from using windows and is certainly not scary!</p>
<p>The talks and targetted demo&#8217;s were good, in particular I was curious about the <a href="http://www.ubuntu.com/cloud">Ubuntu Cloud</a> and <a href="http://www.canonical.com/enterprise-services/landscape">Landscape</a> which both seem really good. For me the best part of the day was when the guest speakers and Canonical hosts got up on a panel and were interviewed by <a href="http://en.wikipedia.org/wiki/Glyn_Moody">Glyn Moody</a> which resulted in some fantastic discussion, excellent answers and some good questions and responses from the audience.</p>
<p>Of course the <a href="https://wiki.ubuntu.com/ubuntini">ubuntini</a> cocktail afterwards was interesting too &#8211; not really my thing, but was nice to try.</p>
<p>The conversation after the cocktail was possibly the best part of the evening &#8211; actually getting to talk to some of the Canonical folks and forging a few new links. Some good conversations about IBM and Ubuntu, hopefully it won&#8217;t take too long for sanity to break-out and IBM to consider Ubuntu seriously<br />
(If you are a business buying IBM software and want to use it on Ubuntu, make sure you tell your salesman this &#8211; If IBM doesn&#8217;t hear people asking for software on Ubuntu then there is no reason to ship it for Ubuntu).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2010/07/15/ubuntu-in-business/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Running a personal server</title>
		<link>http://www.strangeparty.com/2010/06/27/running-a-personal-server/</link>
		<comments>http://www.strangeparty.com/2010/06/27/running-a-personal-server/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 18:18:00 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[exim]]></category>
		<category><![CDATA[logwatch]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=693</guid>
		<description><![CDATA[<p>Maybe you read some of my posts on software raid and lvm, or maybe you have a spare pc lying around and want a box you can use as a small personal server and are wondering about some tips for running it with less hassle. I am sharing a few things that I have learnt <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2010/06/27/running-a-personal-server/">Running a personal server</a></span>]]></description>
			<content:encoded><![CDATA[<p>Maybe you read some of my posts on <a href="http://www.strangeparty.com/2008/05/24/software-raid1-and-lvm-on-debian-etch/">software raid and lvm</a>, or maybe you have a spare pc lying around and want a box you can use as a small personal server and are wondering about some tips for running it with less hassle. I am sharing a few things that I have learnt about running a personal server (though some will apply to any Linux server or always-on machine) that make my life as a part-time admin easier. This is by no means an exhaustive list, nor necessarily the <em>correct way</em> to run a box, but it works well for me and so should be useful to others as well.<br />
<span id="more-693"></span></p>
<h2>ADSL port forwarding</h2>
<p>If your box is behind an ADSL modem (and unless you have a professional server and datacentre to put it in, it probably is) then by default the NAT addressing and firewall will mean that you cannot get in remotely to your box. This may be fine if you don&#8217;t want anything from the box accessible, but I tend to like being able to ssh in from anywhere, so you need to set up some port forwarding from your ADSL router/modem to get into your box</p>
<p>I wont attempt to describe how your ADSL modem/router config works, you&#8217;ll have to read it&#8217;s manual, but the ports you probably want are:</p>
<blockquote><p>ssh 22 &#8211; if you want to log from outside your home network with ssh<br />
smtp 25 &#8211; if you want your box to be able to receive email<br />
ftp 21 &#8211; if you want ftp (though I recommend sftp or scp which use ssh and therefore encrypt your password and data)<br />
http 80 &#8211; if you want webpages visible from the internet<br />
https 443 &#8211; if you want webpages visible from the internet and want to use https encrypted http</p></blockquote>
<h2>Dynamic DNS</h2>
<p>Unless you have a fixed IP address from your ISP, you will probably want some sort of Dynamic DNS system that sets a hostname to have your current IP address. I use <a href="http://dyndns.afraid.org">http://dyndns.afraid.org</a> as they are free, you can host your own domain there and there are plenty of domains you can use for sub-domains if you don&#8217;t want to buy a domain. They provide lots of scripts to help you keep your IP address recorded correctly whenever it changes</p>
<h2>Mail</h2>
<p>I really want mail configured for delivery, as that is one of the easiest ways to get alerts from your machine (though twitter could be cool too though). If you have a email to smms gateway or smartphone with push email then these alerts can be very fast and direct.</p>
<p>I use exim, not because it is the fastest or most configurable mail system available, but because it is very easy to get configured and running on Debian or Ubuntu. Simply install the exim4 package and the debconf wizard will get you up and running.</p>
<blockquote><pre>sudo aptitude install exim4</pre>
</blockquote>
<p>The wizard, which can be re-run with the command <em>sudo dpkg-reconfigure exim4-config</em>, asks you how you want to configure exim. Normally you select the first or second option (&#8220;internet site; mail is sent and received directly using SMTP&#8221; or &#8220;mail sent by smarthost; received via SMTP or fetchmail&#8221;). Most of the questions come with sensible defaults. If you selected the second option you will get asked what your smarthost for sending mail is, in many cases this is just mail.your.isp or you can use google if you have an account, but it will require authentication which  which is a little more complicated to set up.</p>
<p>Next you want to set all email for &#8216;root&#8217; to forward to you preferred email address.<br />
Edit <em>/root/.forward</em> to look like this</p>
<blockquote><pre># Exim filter   &lt; &lt;== do not edit or remove this line!

if error_message then finish endif

deliver me@myemail.com</pre>
</blockquote>
<p>You can test sending email with a simple command line of <em>mail root -s test</em> followed by a message and then CTRL+d. You should get the email at your address set above.</p>
<h2>Logwatch</h2>
<p>I like to know what is happening on my boxes, and logwatch does a great job at summarising the changes that have happened very day. Install logwatch with</p>
<pre>sudo aptitude install logwatch</pre>
<p>and it will email root every day with a summary of log changes and other useful info.</p>
<p>As I don&#8217;t actually want this information every day, I moved the cronjob for logwatch from daily to weekly with</p>
<blockquote><pre>sudo mv /etc/cron.daily/00logwatch /etc/cron.weekly/00logwatch</pre>
</blockquote>
<p>so now I get a weekly summary for my box, which is good enough for me</p>
<h2>Raid emails</h2>
<p>As I use software raid to make my disks a little more redundant (Warning: RAID is not a backup strategy. 2 disks CAN (and sod&#8217;s law / murphey&#8217;s law says that at the worst possible time they actually will) both die at the same time. RAID simply gives you an extra chance to get a new disk without having to get your data from a backup)</p>
<p>If you use software RAID, make sure your raid config<br />
<em>cat /etc/mdadm/mdadm.conf</em><br />
has the following lines set appropriately</p>
<blockquote><pre>MAILADDR root
MAILFROM raid@myserver.com</pre>
</blockquote>
<h2>Smart disk monitoring</h2>
<p>As I don&#8217;t trust disks (and you shouldn&#8217;t either, as they will die on you at the most annoying time) I like to have the S.M.A.R.T disk monitoring installed, which does occasional tests on the disks, and can warn you if the disk starts showing bad sectors. If your disk does have bad sectors, it is probably best to replace it pretty soon, though sometimes you can just get a very small set of bad sectors and live with the disk for a long time.</p>
<p>Install smart with</p>
<blockquote><pre>sudo aptitude install smartmontools</pre>
</blockquote>
<p>and if you have logwatch installed too, then the SMART reports get added to your logwatch summaries (including disk temperatures which can be a good indication of airflow in your box)</p>
<h2>Toughening SSH</h2>
<p>I found that I had a lot of attempted logins on my box because SSH was open on the default port. One solution is to move the default port, but I am likely to forget to use that port number and just confuse myself&#8230; So I started looking at other ways to reduce the risk of having someone brute-force their way into an account.</p>
<p>You can use some really good stuff like fail2ban to take failed logins and firewall that IP off for a while, but I decided that I wanted something even stronger. I disabled password logins completely via SSH! To do this you will need  to have created a ssh keypair and set up the public key on your server and make sure it works to log you in BEFORE you disable password logins.</p>
<p>To disable password logins, simply edit<br />
<em>/etc/ssh/sshd_config</em><br />
and change</p>
<blockquote><pre>PasswordAuthentication yes</pre>
</blockquote>
<p>to say &#8220;no&#8221; instead. This will mean that you can never log in with a password, and have to use a ssh key. This will be almost impossible to brute-force, though you do have to keep your private ssh keyfile secure.</p>
<p>As a minimum, you may want to think about setting</p>
<blockquote><pre>PermitRootLogin no</pre>
</blockquote>
<p>in your sshd config so that the root account cannot be brute-forced, as this is probably the most common account that attempts are made on.</p>
<h2>Monitoring with Munin</h2>
<p>To keep an idea of how busy the box is, the cpu and ram usage, disk usage and many more things I have installed munin to monitor my servers. Munin logs system activity and automatically creates web-accessible charts of the status of your box. An example is online at <a href="http://munin.ping.uio.no">http://munin.ping.uio.no/</a>. I have set mine as password protected via an apache htaccess file with htpassword (there are plenty of resources online for how to do this), so that only I can see how busy my box is.</p>
<p>If you also install <em>sensord</em> and <em>lm-sensors</em> then munin can also chart things like fan speeds and temperatures</p>
<h2>Security updates</h2>
<p>Whether you are running Debian, Ubuntu or any other linux OS, make sure you check how to setup security updates for your distribution and install updates regularly. Having old packages is possibly the easiest way to get your box exploited.</p>
<p>If you don&#8217;t like having to remember to install packages you can install <em>cron-apt</em> to download the packages and tell you, so you can install them, or even install them for you (however it is generally a good idea to know what is going onto your system before it goes in, just in case anything looks suspicious or might break something)</p>
<h2>/etc in revision control</h2>
<p>Have you ever made a change to your system config, then realised not long later that it was a bad change, but can&#8217;t remember what you did?</p>
<p>Introducing <em>etckeeper</em>. etckeeper is a very clever package that takes /etc and puts it all in git. It can easily be configured to automatically commit every time you install or remove a package, so that all you have to do if you found something in /etc is broken is check the recent changes!</p>
<p>Simply install it with<br />
<blockquote>
<pre>sudo aptitude install etckeeper</pre>
</blockquote>
<p> and it pretty much works out of the box (It also supports other code control tools other than git, but the default is git)</p>
<h2>Anything Else?</h2>
<p>This list is by no means complete, and there are probably many more common tweaks you can do &#8211; Please leave a comment if you think of anything else that fits in or anything I might be doing wrong (hey, nobody&#8217;s perfect!) as I am always looking to improve how I run my little servers.</p>
<p>If you have several machines and static IP addresses then you can configure syslog to log to across the network, which would be cool as you could have errors logged from a box that has had bad disk crashes and dies and still know why. However I don&#8217;t have static IP&#8217;s so have not looked into this much</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2010/06/27/running-a-personal-server/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A Debian Packaging Howto</title>
		<link>http://www.strangeparty.com/2010/06/17/a-debian-packaging-howto/</link>
		<comments>http://www.strangeparty.com/2010/06/17/a-debian-packaging-howto/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 18:59:36 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[packaging]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=665</guid>
		<description><![CDATA[<p>I do a fair bit of Debian/Ubuntu packaging at work (kind of on the side) and have had several people tell me that although the New Maintainer&#8217;s guide (http://www.debian.org/doc/maint-guide/ or it is available offline in the package maint-guide and also has some translations) does do an introduction it is a bit hard to follow, particularly <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2010/06/17/a-debian-packaging-howto/">A Debian Packaging Howto</a></span>]]></description>
			<content:encoded><![CDATA[<p>I do a fair bit of Debian/Ubuntu packaging at work (kind of on the side) and have had several people tell me that although the New Maintainer&#8217;s guide (<a href="http://www.debian.org/doc/maint-guide/">http://www.debian.org/doc/maint-guide/</a> or it is available offline in the package <em>maint-guide</em> and also has some translations) does do an introduction it is a bit hard to follow, particularly if you have a really simple program you want to package up and release. The New Maintainer&#8217;s guide does assume you have an existing tarball to work from, and that is often not the case if you just want to package up something you have made so I thought I would write a detailed walkthrough of packaging up something simple.<br />
<span id="more-665"></span><strong>Edit: 2010/06/07 </strong><em>I initially wrote this post to use &#8220;cdbs&#8221;, but have since rewritten it to use debhelper 7 as I am told that it is far more popular among Debian Developers and slightly more powerful. cdbs is still used in some places, but I understand debhelper 7 is used far more</em></p>
<p>While you can just use something like dpkg-deb to turn the right files into a .deb, this only works for already-compiled files and loses some of the great features about Debian-based systems such as changelogs, so I am only going to describe how to make a full source-format package that is built using the Debian tools</p>
<h4>Prereqs</h4>
<p>You will want to install a few packages before you go any further &#8211; these are very useful helper tools for packaging. Install <strong>dh-make</strong>, <strong>dpkg-dev</strong>, <strong>debhelper </strong>and <strong>devscripts<br />
</strong></p>
<p><em>sudo aptitude install dh-make dpkg-dev debhelper devscripts</em></p>
<p>I chose debhelper here as it is a very powerful and yet often simple way of quickly creating packages. It takes a lot of the slow work away from the packager and does very sensible default things. My example package does not really need compiling so it could be simple to just create it by hand, but using debhelper to do the default packaging rules gives you more time to do other things</p>
<p>It is worth mentioning here that all aspects of the parts of a Debian package are covered in detail in the Debian Policy document (<a href="http://www.debian.org/doc/debian-policy/">http://www.debian.org/doc/debian-policy/</a>, which although Debian specific will not steer you wrong for getting started with Ubuntu packages (the Ubuntu Policy Manual appears to be at<a href="http://people.canonical.com/~cjwatson/ubuntu-policy/policy.html/">http://people.canonical.com/~cjwatson/ubuntu-policy/policy.html/</a>). (The Policy is also packaged up in the package <em>debian-policy</em>, though <em>ubuntu-policy</em> might be of interest too<em>)</em></p>
<h4>Lets Begin</h4>
<p>So, where do we start. Let&#8217;s start at the point where you have a simple program, perhaps a shell/perl/python script that you simply want to package up as a deb for easy installation. The first thing we want to do is make a folder formed out of the package name and version, and put the script in it in the correct place.</p>
<p>Here is my example folder with me example program (called simple-program):</p>
<blockquote><p><em>simple-package-0.1/usr/bin/simple-program</em></p></blockquote>
<p><em></em>Note that the folder is the package name followed by a hyphen and a version number (simple point versions are the easiest to work with, so stick with them if possible)</p>
<p>Now, all work is done from within the package folder normally, so cd into that folder<br />
<em></em></p>
<blockquote><p><em>cd simple-package-0.1</em></p></blockquote>
<p>So far, all we have is just a folder with a binary in the place we want it to end up in. Now we have to &#8220;Debianise&#8221; (or Debianize if you prefer) this into a package<br />
<em></em></p>
<blockquote><p><em><code>dh_make --single  --createorig</code></em></p></blockquote>
<p>This command takes a source tree and turns it into a Debian source package format. The first flag tells dh_make that our source package is only going to build a single binary package (which is the most common). The second argument tells it that we do not have a tarball of our package so it should create a new one for us.</p>
<p>Now if you look in the current folder, you will see a debian/ folder. This is where all the Debian-specific magic happens.</p>
<p>The next thing we do is edit debian/rules</p>
<p>The rules file is the main makefile (or build script) which is run by &#8220;make&#8221; to produce your package. Everything starts from here.<br />
(If you have a new version of dh-make, then your rules file may already look like this, if your dh-make is older then you will end up with a longer file, so edit it to look like this )</p>
<blockquote><p><em><code>$ cat debian/rules<br />
#!/usr/bin/make -f<br />
# -*- makefile -*-<br />
# Sample debian/rules that uses debhelper.<br />
# This file was originally written by Joey Hess and Craig Small.<br />
# As a special exception, when this file is copied by dh-make into a<br />
# dh-make output file, you may use that output file without restriction.<br />
# This special exception was added by Craig Small in version 0.37 of dh-make.</p>
<p># Uncomment this to turn on verbose mode.<br />
#export DH_VERBOSE=1<br />
%:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dh $@<br />
</code></em></p></blockquote>
<p>Note that on the last line, the indent is a TAB character. Make sure you use a tab and not several spaces, as make is very particular about tabs</p>
<p>This debian/rules is really simple &#8211; all it does is says &#8220;whatever I was asked to do, tell the command &#8216;dh&#8217; to do it instead&#8221;. dh has sensible default rules, and you can find more about dh by running the command &#8220;man dh&#8221; to look at it&#8217;s manpage</p>
<p>(If you ever want lots more detail about what each step of building is doing, you can uncomment the line &#8220;export DH_VERBOSE=1&#8243; and each helper script will print out more info)</p>
<p>As the above build file doesn&#8217;t say anywhere which files to copy to the output package, we have to do something to make that happen. We are going to use the debhelper script called dh_install  to do this.</p>
<p>Edit a new file at <em>debian/simple-package.install</em></p>
<p>dh_install looks for this file (actually, it will also look for just <em>debian/install</em>) and will copy any files listed in it into your package. In this file we will put a list of files we want installed, one per line (wildcards work too, but I will list our only file for explicitness)</p>
<blockquote><p><em>$ cat debian/simple-package.install<br />
usr/bin/simple-program</em></p></blockquote>
<p>Notice that we do not have a leading &#8216;/&#8217;, this is deliberate. Also, if you check <em>man dh_install</em> then you will notice that dh_install will not move files to other directories as it is expected that your makefile will do this for you. For now I will assume that your simple package comes with all the files in the correct places.</p>
<h4>Building</h4>
<p>Now let&#8217;s try building. Run <em>dpkg-buildpackage</em> and this will turn your little folder into a Debian source package and then go and create a .deb (It is worth mentioning that the command <em>debuild</em> is also available, but as it is a wrapper around dpkg-buildpackage and other tools I will write more about it later, and just start simply with dpkg-buildpackage)</p>
<p>Have a look:</p>
<blockquote><p><em>$ ls ../simple-package_0.1-1_i386.deb<br />
../simple-package_0.1-1_i386.deb</em></p></blockquote>
<p>See &#8211; you have a .deb</p>
<p>Now let&#8217;s have a look inside it (this is just converting the file to a tar and then asking tar to list it&#8217;s contents):</p>
<blockquote><p><em>$ dpkg &#8211;fsys-tarfile ../simple-package_0.1-1_i386.deb |tar -tv<br />
tar: Record size = 8 blocks<br />
drwxr-xr-x root/root         0 2010-06-16 18:48 ./<br />
drwxr-xr-x root/root         0 2010-06-16 18:48 ./usr/<br />
drwxr-xr-x root/root         0 2010-06-16 18:48 ./usr/sbin/<br />
drwxr-xr-x root/root         0 2010-06-16 17:41 ./usr/bin/<br />
-rwxr-xr-x root/root         0 2010-06-16 17:41 ./usr/bin/simple-program<br />
drwxr-xr-x root/root         0 2010-06-16 18:48 ./usr/share/<br />
drwxr-xr-x root/root         0 2010-06-16 18:48 ./usr/share/doc/<br />
drwxr-xr-x root/root         0 2010-06-16 18:48 ./usr/share/doc/simple-package/<br />
-rw-r&#8211;r&#8211; root/root       193 2010-06-16 17:44 ./usr/share/doc/simple-package/README.Debian<br />
-rw-r&#8211;r&#8211; root/root       178 2010-06-16 17:44 ./usr/share/doc/simple-package/changelog.Debian.gz<br />
-rw-r&#8211;r&#8211; root/root       693 2010-06-16 17:44 ./usr/share/doc/simple-package/copyright<br />
</em></p></blockquote>
<p>Notice that your program is listed in <em>./usr/bin/simple-program</em>, and also that there is a changelog, a readme and a copyright file &#8211; I will come on to those later.</p>
<p>So, we&#8217;re done? I can just give this to people?</p>
<p>Erm, no&#8230; Not really</p>
<p>While you may have a package, you will notice that it is a rather dumb package</p>
<blockquote><p><em>$ dpkg-deb -I ../simple-package_0.1-1_i386.deb<br />
new debian package, version 2.0.<br />
size 1730 bytes: control archive= 524 bytes.<br />
303 bytes,    10 lines   control<br />
290 bytes,     4 lines   md5sums<br />
Package: simple-package<br />
Version: 0.1-1<br />
Architecture: i386<br />
Maintainer: anton &lt;anton@unknown&gt;<br />
Installed-Size: 32<br />
Section: unknown<br />
Priority: extra<br />
Homepage: &lt;insert the upstream URL, if relevant&gt;<br />
Description: &lt;insert up to 60 chars description&gt;<br />
&lt;insert long description, indented with spaces&gt;</em></p></blockquote>
<p>See &#8211; it really is a but dumb as we have not configured much about it. Lets start fixing that now as we really don&#8217;t want to be giving this to everyone in it&#8217;s current state</p>
<h4>Package control files</h4>
<p>Let&#8217;s start with the file <em>debian/control</em></p>
<blockquote><p><em><br />
$ cat debian/control<br />
Source: simple-package<br />
Section: unknown<br />
Priority: extra<br />
Maintainer: anton &lt;anton@unknown&gt;<br />
Build-Depends: debhelper (&gt;= 7)<br />
Standards-Version: 3.8.1<br />
Homepage: &lt;insert the upstream URL, if relevant&gt;</em></p>
<p><em> </em><em>Package: simple-package<br />
Architecture: any<br />
Depends: ${shlibs:Depends}, ${misc:Depends}<br />
Description: &lt;insert up to 60 chars description&gt;<br />
&lt;insert long description, indented with spaces&gt;<br />
</em></p></blockquote>
<p>We will want to edit several of these fields. Of course these are all explained in <a href="http://www.debian.org/doc/debian-policy/ch-controlfields.html">Chapter 5 of the Debian Policy</a>. The first thing to note is that the first chunk applies to the source package. Here we want to set our Maintainer name and email.<br />
The build-depends are a default guess too, and should be enough for us for now (build-depends is all the packages needed to build this program, which often include any extra libraries you might need or extra tools such as unzip).<br />
<span style="font-size: 13.3333px;"><strong>Important:</strong> As we are using a somewhat new debhelper way of building, and this might not exist on older boxes, we really need the line here that says to use version 7 or newer of debhelper (otherwise someone might try building with only version 6 and it will fail badly)</span></p>
<p>The homepage is also worth filling in if your package has one, but the whole line can be deleted if not required. The section and priority I will leave you to look up in the Debian policy manual if you want to know more about them, but can be left as-is for now</p>
<p>The second block is all about the binary .deb we want to produce. Note that the Package: section has the same name &#8211; This is the default for a &#8220;single package&#8221; that we asked dh_make to create for us, though you can have more than one block if your source package should produce multiple debs.<br />
The Architecture: fields is worth getting correct. You can put in values like <em>i386</em> or <em>amd64</em> if your package will only work there, or if it should compile and work on any architecture you use <em>any</em>. As my package is a simple script-type application, it is actually slightly more special than that and only needs building once and will not need recompiling for any architecture, so I am going to change this to <em>all</em>. &#8220;all&#8221; has a special meaning, telling dpkg-buildpackage to only compile it once and use that on any architecture.</p>
<p>The Depends: field is also another important field to get correct. This says what you will need installed to actually use this package. So if your package is written in Python, then you want to put the correct Python package name in here (and a version in brackets like &#8220;<em>python (&gt;=2.6)</em>&#8220;﻿ if your package needs a minimum level of that package. You can also do OR&#8217;s if you use a pipe &#8220;|&#8221;.<br />
The two magic variable depends are filled in by various debhelper scripts and can be left alone (in this case they will end up empty.</p>
<p>The Description: field has a special formatting. The first line is a short description of less than 60 characters, and then after that is a long description where each line starts with a space. If you want to put an empty line in your long description put a space then a period/dot ( &#8220;.&#8221;) on this line (do not use an empty line). Full explanation is in the Debian Policy.</p>
<p>&#8220;Where do I set the version number&#8221; I hear you ask&#8230; well, I&#8217;m coming to that now</p>
<h4>debian/changelog</h4>
<p>Package versioning is controlled from the <em>debian/changelog</em> file. You can edit this file directly, but it is often easier to use the command <em>dch</em> as it will fill in various fields for you, and can even do simple increments and comments completely from the command line. If you run <em>dch</em> from the main folder of your package it will launch the default editor with a new comment line created for you. If you want to quickly increment the version you can use <em>dch -i</em> and this will do the same, but increment the version number for you first (creating a new changelog entry in doing so).</p>
<p>Let&#8217;s have a quick look at a changelog (you might want to look at <a href="http://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog">Section 4.4 of the Debian Policy</a> too)</p>
<blockquote><p><em>$ cat debian/changelog<br />
simple-package (1.0-1) unstable; urgency=low</em></p>
<p><em>* Initial release (Closes: #nnnn)</em></p>
<p><em> </em><em> &#8212; anton &lt;anton@unknown&gt;   Wed, 16 Jun 2010 19:32:10 +0100<br />
</em></p></blockquote>
<p>A changelog file is a colletion of repeated blocks like the above. The first line of a block shows the package name, then the version in brackets, then the release this package was built for and then it&#8217;s urgency. The version here is what comes out when we build our package. The release is only really used when uploading a package as the build-systems look for this field to work out where your package should go (in Debian you would have something like stable or testing, whereas in Ubuntu you would use the release name such as lucid or maverick)</p>
<p>Then we have a set of specially formatted bullet points. You can have many of these, but check the policy for allowed formatting. Notice that we have a Closes section here. This is used by bugtrackers that are attached to the package building systems, and unless you are uploading to one of these is probably simplest to remove.</p>
<p>Then we have the signature line which should have your name and email address, followed by two spaces and a timestamp. If you use <em>dch -i</em> then dch will create all this for you, and if you check the man page for it you can see how to set environment variables in your shell so that you do not have to tell it your correct name or email address. (It is worth mentioning the -v flag to dch. This lets you set a specific version to be put in the changelog, which is useful when you want to go up to version 2.0 or similar.)</p>
<p>It is perhaps worth mentioning that there are two types of source packages.</p>
<p>The usual type of package has version numbers that have a hyphen in them and the part before the hyphen is the upstream number, and the part after is the Debian revision. This is used to show that the upstream code has a specific version number but allows us to have our own incremented versions that clearly show that we are not shipping a new version of the upstream code but merely patches or even just packaging fixes which do not change the upstream code at all.<br />
When built, these types of packages output a .orig.tar.gz file and a .diff.gz file. This allows the upstream code only to be in the orig.tar.gz, and the diff.tar.gz to be a diff file of all the changes we have made, including the entire contents of the debian/ folder</p>
<p>The second type of package is a &#8220;native Debian&#8221; package. This package has simpler version numbers and only builds a .tar.gz file. This format is normally only used for packages that are entirely owned by Debian (or Ubuntu) and the source code was created entirely for use in Debian (or Ubuntu).</p>
<p>You can choose which type of package your&#8217;s is by how the version number is structured. Without a hyphen it will be a &#8220;native&#8221; package, however I recommend you use the first type by default (you can also force the type with flags to dpkg-buildpackage).<br />
The advantage of the first type of package is that because you have a .diff.gz and a .orig.tar.gz if you are uploading a very large package you only need to upload the .orig.tar.gz if the code in it has changed. If you are just making packaging fixes, or small patches then these are all in the .diff.gz and will be a much smaller upload.</p>
<h4>Other files</h4>
<p>Of course there are many other files in debian/ which are mostly templates created by dh_make. I will only explain a few here as they are all pretty well covered in the Debian Policy</p>
<p><em>debian/copyright</em> &#8211; You should put a full license in this file so that people know what license your code is under (see S<a href="http://www.debian.org/doc/debian-policy/ch-docs.html#s-copyrightfile">ection 12.5 of the Debian Policy manual</a>)</p>
<p><em>debian/README.Debian</em> &#8211; This file is a readme file that is normally used to supplement any upstream readme file. It is copied out to /usr/share/doc/package-name/ as you saw above in the .deb. It should explain anything you have to do to make this package work that may be different from the upstream readme (if any) and normally contains the &#8220;Debian way&#8221; of getting your program running.</p>
<p><em>debian/compat</em> &#8211; This file sets the compatibility level of the debhelper tools &#8211; you normally don&#8217;t need to change this</p>
<p><em>debian/package-name.dirs</em> or <em>debian/dirs</em> &#8211; This file will create empty directories that your package might need. Note that you rarely ever need this as dh_install will create any directories that will be needed to hold the files it copies (I mention this as I frequently see it being used unnecessarily)</p>
<p><em>debian/preinst, debian/postinst, debian/prerm, debian/postrm</em> &#8211; These files (also can be done as package-name.preinst) are the Pre and Post install/remove scripts. I won&#8217;t talk much about them now as you shouldn&#8217;t need to use them in simple packages. Note that dh_make creates some .ex files as example scripts. As usual see the Debian Policy if you need these</p>
<p><em>debian/docs</em> &#8211; This file lists any doc files you want copied into the /usr/share/doc/package-name/ in your package. It works like dh_install but see the manpage of  dh_installdocs for more information</p>
<p>That is probably all the interesting files for now, you can probably remove all the other files as they are simply template or example files.</p>
<h4>Other build output files</h4>
<p>You might have noticed that when you built your package, as well as the .orig.tar.gz, the diff.gz and the .deb you also got a .dsc file and a .changes file.</p>
<p>The .changes file is used to describe this version of your package, and contains the latest chunk of your changelog. It also is used by tools such as dput to describe which files to upload and contains the checksums/hashes of these files. This file is usually signed with gpg to prove that this package was built by you.</p>
<p>The .dsc file is kind of similar, except it is purely about the source package. It has the checksums of the source files and is also signed. It also contains details such as the build-dependencies of your package so that systems can use it to work out what needs to be installed to build your package correctly.</p>
<p>You will probably only need either of these files if you are uploading files to some sort of repository, as they are mostly consumed by other programs.</p>
<p>If you try getting the source of a package, try <em>apt-get source hostname</em> then you will see that this downloads the .dsc file, and the releveant source files. If you want to unpack the source, you can use <em>dpkg-source -x *.dsc</em> (or if you want to build the binary package straight away, try <em>apt-get -b source hostname</em> and it will download and build though you might need to run <em>apt-get build-dep hostname</em> to install all the build packages needed for the hostname package)</p>
<h4>Advanced building</h4>
<p>So you can now create a simple package, you know how to set all the control files and how to increment the version in the changelog (hopefully using <em>dch</em>). Let&#8217;s look briefly at some more advanced building with dpkg-buildpackage.</p>
<p>Some packages want to be root to build. What they really want is to feel like they are root, so you can use the program <em>fakeroot</em> to build a package that complains it is not root (this way you don&#8217;t actually need root)<br />
<em>$ fakeroot dpkg-buildpackage</em> &#8230;.</p>
<p>If you have gpg set up, then you will have noticed that every time you build a package dpkg-buildpackage asks you to enter your passphrase. While this is great for giving the package to others, it can be really annoying if you are doing test builds. The flags <em>-us</em> and <em>-uc</em> (unsigned source, unsigned changes) will stop it asking you.</p>
<p>If you just want to build the source package you can use <em>-S</em> to force that.<br />
Similarly to just build the binary use the <em>-b</em> flag.</p>
<p>If your package is a non-native package, then dpkg-buildpackage will only put the .orig.tar.gz in the .changes file if the version ends in &#8220;-1&#8243;, otherwise it assumes your .orig.tar.gz is already on the server you are going to copy to (normally using dput). If you want to force it to include the .orig.tar.gz use the <em>-sa</em> flag</p>
<p>One thing worth doing if you do much packaging, is creating a chroot for building in. This way you will know that your build-depends are complete and that if you give the package to someone else (or use another computer) it will definitely build (it is easy to forget all the packages you installed on your box to make it build).</p>
<p>The simplest way to do this is to setup either a pbuilder environment or an sbuild environment, but I will leave an explanation of this for another post.</p>
<p>Enjoy creating your new .deb packages</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2010/06/17/a-debian-packaging-howto/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Fixing broken LVM and Sofware Raid on Linux</title>
		<link>http://www.strangeparty.com/2010/05/23/fixing-broken-lvm-and-sofware-raid-on-linux/</link>
		<comments>http://www.strangeparty.com/2010/05/23/fixing-broken-lvm-and-sofware-raid-on-linux/#comments</comments>
		<pubDate>Sun, 23 May 2010 14:23:17 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=632</guid>
		<description><![CDATA[<p>I have been building a backup pc our of mostly spare parts, including several old disks. To get the most reliability and space our of the disks, which are all different sizes, I decided to use software raid to mirror each chunk of data in pairs (raid 0) and then use LVM on top of <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2010/05/23/fixing-broken-lvm-and-sofware-raid-on-linux/">Fixing broken LVM and Sofware Raid on Linux</a></span>]]></description>
			<content:encoded><![CDATA[<p>I have been building a backup pc our of mostly spare parts, including several old disks. To get the most reliability and space our of the disks, which are all different sizes, I decided to use software raid to mirror each chunk of data in pairs (raid 0) and then use LVM on top of each piece of raid to make all the raid volumes appear as one storage device to the linux OS.</p>
<p>The disks are as follows: 250G, 200G, 160G 120G, so to get the most space out of them I divided them as follows (Note: this is a simplification for the purpose of explanation, the real disk also has a raid 0, mirrored /boot/ partition which is not mentioned below. You need this because LVM is not supported by GRUB, so you can&#8217;t boot from a LVM volume):<br />
250G: A (200G), C (40G)<br />
200G: A (200G)<br />
160G: B (120G) C (40G)<br />
120G: B (120G)</p>
<p>A,B,C are partitions on the disks for software raid &#8211; I then set up software raid for each pair of A,B,C and set the created LVM physical volumes on top of them, which then are grouped together into one large volume group, giving me around 360G (actually less once you convert to base 2 rather than 10) of mirrored data storage. Note that I can lose any one disk and still have all my data (though I wouldn&#8217;t want to hang around too long replacing the disk as a second disk failing could mean you lose most of your data).</p>
<p>I actually created 3 LVM logical volumes, one for mounting each of / (the root of the disk for all OS data), /home (for all the stuff I actually really care about), and a volume for swap that doesn&#8217;t really need to be in lvm or raid, but it was just easier to do.</p>
<p>I previously wrote instructions about <a href="http://">how to setup LVM and software raid</a>, but this time round managed to completely screw the whole lot up just near the end. I forgot to define one of the raid devices in /etc/mdadm/mdadm.conf so next time I rebooted this raid device was not found in the early boot stages. As this raid volume is needed to create the full set of LVMs for my root filesystem, the system stopped booting right at the beginning because the LVM array was incomplete.</p>
<p>Fixing it was actually not to difficult, but I mention it here in case it is of help to anyone else (or in case I manage to do it again, which is probably likely)</p>
<p>Fist I booted a Ubuntu Live CD (actually a USB stick image created from my running Ubuntu laptop and a spare Ubuntu CD), but nearly any live cd should do. Once booted, I had to install (in the live session) mdadm and lvm2 as Ubuntu does not have these installed by default. Once you have these tools you can start your recovery (note that this needs to be done with root permissions, so <em>sudo -s</em> or similar to get a root shell)</p>
<p>Find the raid devices with <em>mdadm &#8211;assemble &#8211;scan</em> and then use <em>pvscan</em> and <em>lvscan</em> as required until your system has found your lvm config, then mount it (don&#8217;t forget to mount /boot/ too as we will need to rebuild the initrd)</p>
<pre>mkdir /tmp/root
mount /dev/mapper/main-root /tmp/root
mount /dev/md0 /tmp/root/boot
chroot /tmp/root</pre>
<p>Now you should be pretty much inside your root filesystem on your lvm array. Now we need to make sure all the raid arrays are configured in /etc/mdadm/mdadm.conf</p>
<p>Run <em>mdadm &#8211;detail &#8211;scan</em> to generate the lines for the config file, and make sure each array is listed in /etc/mdadm/mdadm.conf</p>
<p>From here it is pretty simple, all we have to do is rebuild the initrd so that it knows how to find all the raid and lvm devices needed during boot. <em>dpkg-reconfigure linux-image-&lt;your current kernel version&gt; </em>It is imporant to<em> </em>make sure that you get the right kernel, so have a look in /boot to check you get the right version (<em>uname -r</em> wont work here because you have booted your live cd image and not the kernel your box will run)</p>
<p>I got several warnings about /proc/ not being mounted, but this did not appear to be a problem.</p>
<p>Reboot, and you should be ok. You may want to make a copy of your current kernel in case you accidentally break it, just copy the linux-image&#8230;gz and initrd&#8230;gz from /boot/ to new names and run <em>update-grub</em> and that should give you two kernels to choose from (hopefully booting choosing them in the right order, the order should be based on the version numbers in your kernel files so adjust if needed)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2010/05/23/fixing-broken-lvm-and-sofware-raid-on-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>O2 Joggler</title>
		<link>http://www.strangeparty.com/2010/05/19/o2-joggler/</link>
		<comments>http://www.strangeparty.com/2010/05/19/o2-joggler/#comments</comments>
		<pubDate>Wed, 19 May 2010 17:08:27 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[joggler]]></category>
		<category><![CDATA[o2]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=640</guid>
		<description><![CDATA[<p>My O2 Joggler just arrived and it is quite an interesting piece of kit.</p> <p>I&#8217;ve not had much time to play with it yet, but the O2 software stack seems a bit limited. Google calendar can be installed, but no mail, and I&#8217;m not sure the calendar will pop-up if something is approaching. No web <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2010/05/19/o2-joggler/">O2 Joggler</a></span>]]></description>
			<content:encoded><![CDATA[<p>My O2 Joggler just arrived and it is quite an interesting piece of kit.</p>
<p>I&#8217;ve not had much time to play with it yet, but the O2 software stack seems a bit limited. Google calendar can be installed, but no mail, and I&#8217;m not sure the calendar will pop-up if something is approaching.<br />
No web browser was a major failing in my opinion &#8211; Sure you get Sky News, but the interface for that is rather simple and I expected better (feels like WAP on a phone!)</p>
<p>The weather apps (for some reason there are two) are ok, but the default one seems to show some odd forecasts (<a title="Joggler weather fail on Twitpic" href="http://twitpic.com/1p6s0h"><img src="http://twitpic.com/show/thumb/1p6s0h.jpg" alt="Joggler weather fail on Twitpic" width="150" height="150" /></a>Friday, Thursday, Saturday with Friday and Thursday showing night forecasts for some reason)</p>
<p>I have yet to try uPnP for pictures and music, but the internet radio plays BBC stations fine.</p>
<p>The traffic app looks a bit simple, though the google maps app is nice. The messaging could be interesting as it can send/receive texts, but as I can&#8217;t see me using it much. The O2 calendar I have yet to try.</p>
<p>After poking that far, I decided to boot Ubuntu, so following <a href="http://www.stephenford.org/joggler/">http://www.stephenford.org/joggler/</a> I downloaded the Ubuntu image that has been customised for the Joggler, copied it to my usb key and it booted fine.</p>
<p>Getting wireless up was ok (at least I could copy and paste the wpa2 key from a file I put on the USB key before booting it, rather than typing the rather long random string I have on the on-screen keyboard as I had to for the O2 software), but I did find that using the touch-screen is not a good alternative to a mouse (and the on-screen keyboard can be really annoying!)</p>
<p>At least Ubuntu gives you a web browser (Chrome and Midori are installed by default in this image), but it is still tricky to use.<br />
I had to increase the font sizes just to get windows that I could click the menus on.</p>
<p>So far the only thing it is actually great for is solitaire &#8211; which is a rather expensive deck of cards!</p>
<p>I need to try some of the hacks at <a href="http://www.jogglerwiki.info/">http://www.jogglerwiki.info/</a> like installing telnet/ssh and then see what I can hack on top of the O2 software, as it seems better built for a touchscreen and keyboard-less device, though I am not sure what I will be able to get working. It does appear to have flash running on it, and one site suggests that <a href="http://www.joggler.info/forum/viewtopic.php?f=5&amp;t=78">any flash .swf file can be launched easily</a></p>
<p>Update: Good review at <a href="http://jtlog.wordpress.com/2010/05/20/new-clock-radio/">http://jtlog.wordpress.com/2010/05/20/new-clock-radio/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2010/05/19/o2-joggler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>dpatch &#8211; using patch files in Debian packaging</title>
		<link>http://www.strangeparty.com/2009/11/13/dpatch-using-patch-files-in-debian-packaging/</link>
		<comments>http://www.strangeparty.com/2009/11/13/dpatch-using-patch-files-in-debian-packaging/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 18:14:56 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[dpatch]]></category>
		<category><![CDATA[packaging]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=497</guid>
		<description><![CDATA[<p>I do a fair bit  of packaging of Debian and Ubuntu packages at work, often having to make tweaks to upstream packages. I used to just hack the upstream source directly, but have now discovered dpatch.</p> <p>dpatch is a clever addition to the Debian packaging process which allows all your changes to be stored as <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2009/11/13/dpatch-using-patch-files-in-debian-packaging/">dpatch &#8211; using patch files in Debian packaging</a></span>]]></description>
			<content:encoded><![CDATA[<p>I do a fair bit  of packaging of Debian and Ubuntu packages at work, often having to make tweaks to upstream packages. I used to just hack the upstream source directly, but have now discovered dpatch.</p>
<p>dpatch is a clever addition to the Debian packaging process which allows all your changes to be stored as patch files in the debian/ subfolder in the source package rather than having to modify the upstream source. There are good reasons to do this &#8211; You can easily see what you have changed in the source, and therefore can remove the changes easily if the need arises. It also allows upgrading the upstream source more easily as you do not have to patch the code yourself (and only have to do anything if the upstream code has changed too much for patch to figure out where the changes need to go)</p>
<p><a href="http://matrixhasu.altervista.org/index.php?view=use_dpatch">http://matrixhasu.altervista.org/index.php?view=use_dpatch</a> is an excellent introduction for dpatch, and certainly got me going.</p>
<p>The basics of dpatch are pretty simple. After installing dpatch on your system, you can start using it in your source package straight away.</p>
<p>I prefer to start with the debian/rules file and add dpatch support first, as dpatch can complain in some of its commands if you have not done this step first. The easiest way to do this is simply to add the following line near the top of debian/rules</p>
<blockquote>
<pre>include /usr/share/dpatch/dpatch.make</pre>
</blockquote>
<p>This pulls in several dpatch definitions for make, allowing it to be called easily. Next you have to change the build-stamp and clean definitions in your debian/rules. The basic idea is to tell dpatch to patch files before the build happens, and to remove the patches during the clean. This way you can work with the original package, and dpatch will add your patches automatically during package build.</p>
<blockquote>
<pre>build-stamp: patch-stamp
...
clean: unpatch</pre>
</blockquote>
<p>Now dpatch will apply any patches found in debian/patches (though it does need an index of patches to apply). Of course there are other ways to configure dpatch, see <em>man dpatch</em> for details.</p>
<p>Now you want to change your code. The dpatch-edit-patch command will copy your packages source tree to a temporary directory and put you in a new shell. You simply edit the code to make the change you want, then logout of that shell and dpatch will work out what you have changed and save those changes to a patch file.</p>
<p>For a new patch you probably want to use the <em>&#8211;add2list</em> flag as it adds your patch to the index of patches to apply. The following is an example of creating a new patch</p>
<blockquote>
<pre>dpatch-edit-patch --add2list 01_my_patch_name</pre>
</blockquote>
<p>If you want to go back and make changes to your patch you can just run</p>
<blockquote>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">dpatch-edit-patch 01_my_patch_name</pre>
</blockquote>
<p>That is the basics of dpatch. You can apply all patches with <em>dpatch apply-all<span style="font-style: normal;"> and remove them all again with </span>dpatch deapply-all</em> and of course dpatch will do this for you when you run dpkg-buildpackage, debian/rules or debuild to build your package.</p>
<p>I recommend using dpatch whenever you need to change the upstream source in a package &#8211; being able to easily see what you changed to make that package work is really helpful (and don&#8217;t forget to tell upstream your changes where appropriate!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2009/11/13/dpatch-using-patch-files-in-debian-packaging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 Karmic Koala released</title>
		<link>http://www.strangeparty.com/2009/10/29/ubuntu-9-10-karmic-koala-released/</link>
		<comments>http://www.strangeparty.com/2009/10/29/ubuntu-9-10-karmic-koala-released/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 15:32:12 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=579</guid>
		<description><![CDATA[<p>http://www.ubuntu.com/getubuntu/download</p> <p>If possible, use the Torrent download: http://releases.ubuntu.com/9.10/ubuntu-9.10-desktop-i386.iso.torrent (it should be faster and saves money for all the mirrors)</p> ]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ubuntu.com/getubuntu/download">http://www.ubuntu.com/getubuntu/download</a></p>
<p>If possible, use the Torrent download: <a href="http://releases.ubuntu.com/9.10/ubuntu-9.10-desktop-i386.iso.torrent">http://releases.ubuntu.com/9.10/ubuntu-9.10-desktop-i386.iso.torrent</a> (it should be faster and saves money for all the mirrors)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2009/10/29/ubuntu-9-10-karmic-koala-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Global Jam</title>
		<link>http://www.strangeparty.com/2009/09/22/ubuntu-global-jam/</link>
		<comments>http://www.strangeparty.com/2009/09/22/ubuntu-global-jam/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 17:14:01 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=558</guid>
		<description><![CDATA[<p>I recently noticed that 2nd-4th October is Ubuntu Global Jam. There is actually a meetup in Birmingham:</p> <p>Ubuntu Global Jam – Birmingham (UK) &#8211; Source Guru So, if you’re interested in helping make Ubuntu a better distro, and live in (or can travel to) the Birmingham Area in the UK, then you’re welcome to come <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2009/09/22/ubuntu-global-jam/">Ubuntu Global Jam</a></span>]]></description>
			<content:encoded><![CDATA[<p>I recently noticed that 2nd-4th October is <a href="https://wiki.ubuntu.com/UbuntuGlobalJam">Ubuntu Global Jam</a>. There is actually a meetup in Birmingham:</p>
<blockquote><p><a href="http://www.sourceguru.net/ubuntu-bugjam-birmingham-uk/">Ubuntu Global Jam – Birmingham (UK) &#8211; Source Guru</a><br />
So, if you’re interested in helping make Ubuntu a better distro, and live in (or can travel to) the Birmingham Area in the UK, then you’re welcome to come along.</p>
<p>The Jam is on the 2nd-4th October, and we’ll be around on all three days&#8230;.   Last year we had a great time, with refreshments (including beer) provided. Juggling penguins, and one person sleeping underneath the conference room table overnight.  Hopefully we’ll also have the live Video Streams up and running again for anyone who can’t make it (or other Ubuntu Jams) to join in with!</p></blockquote>
<p>However another question also occured &#8211; how much interest would there be in the south of England in order to try and organise one closer to home. We don&#8217;t really even need an official Ubuntu developer, as there is plenty of instructions and irc can provide access to developers real-time if we need them.</p>
<p>The only thing we need is a venue (I could possibly get use of the IBM site again) and enough people that want to contribute something to Ubuntu. The contribution could be packaging new programs, fixing bugs, raising bugs, improving documents, or translating documents (<a href="https://translations.edge.launchpad.net/ubuntu/karmic/+lang/en_GB">translation into British English</a> anyone?)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2009/09/22/ubuntu-global-jam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Debian annouces fixed date release cycles</title>
		<link>http://www.strangeparty.com/2009/07/29/debian-fixed-release-date-cycles/</link>
		<comments>http://www.strangeparty.com/2009/07/29/debian-fixed-release-date-cycles/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 16:09:49 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=546</guid>
		<description><![CDATA[<p>I seem to recall Mark Shuttlework saying in an interview (possibly for Linux Format, possibly somewhere else) that he wanted to work with Debian to get fixed release cycles to help the Debian-&#62;Ubuntu porting efforts &#8211; It looks like he succeeded in planting the idea! I am looking forward to predictable Debian releases.</p> <p>The most <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2009/07/29/debian-fixed-release-date-cycles/">Debian annouces fixed date release cycles</a></span>]]></description>
			<content:encoded><![CDATA[<p>I seem to recall Mark Shuttlework saying in an interview (possibly for Linux Format, possibly somewhere else) that he wanted to work with Debian to get fixed release cycles to help the Debian-&gt;Ubuntu porting efforts &#8211; It looks like he succeeded in planting the idea! I am looking forward to predictable Debian releases.</p>
<p>The most exciting thing I know of being attempted in the next Debian release (Squeeze) is the multiarch support, which should make running 32 bit apps on a 64 bit OS much better (currently some apps can install if you install the <strong>ia32-libs</strong> package however others need to be installed in a 32 bit chroot because they have too difficult dependencies to resolve). Redhat adopted another approach where 32 bit is more of a default than 64 bit than on Debian (On Debian a 64 bit install has absolutely no 32 bit support other than the ia32-libs package). Most 32 bit stuff seems to work ok on a 64 bit Redhat box but I don&#8217;t know how their approach relates to multiarch. The idea with multiarch is to natively support both 32 and 64 bit packages on the same system (I believe by changing the installer to put 32 bit libs in /lib32/, whereas I believe redhat uses /lib64/ for the 64 bit stuff and /lib/ is still 32 bit only).<br />
I am very interested to see how this pans out as I run a 64 bit desktop at work with lots of 32 bit apps (and gave up on my 64 bit install at home because it was too fiddly for the 32 bit proprietary apps I want to use)</p>
<p>A copy of the Debian announcement is below:</p>
<p><span id="more-546"></span></p>
<blockquote>
<div id=":zv" class="ii gt">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
The Debian Project                                 <a href="http://www.debian.org/" target="_blank">http://www.debian.org/</a><br />
Debian adopts time-based release freezes                 <a href="mailto:press@debian.org">press@debian.org</a><br />
July 29th, 2009                  <a href="http://www.debian.org/News/2009/20090729" target="_blank">http://www.debian.org/News/2009/20090729</a><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Debian decides to adopt time-based release freezes</p>
<p>The Debian project has decided to adopt a new policy of time-based<br />
development freezes for future releases, on a two-year cycle. Freezes<br />
will from now on happen in the December of every odd year, which means<br />
that releases will from now on happen sometime in the first half of every<br />
even year.  To that effect the next freeze will happen in December 2009,<br />
with a release expected in spring 2010. The project chose December as a<br />
suitable freeze date since spring releases proved successful for the<br />
releases of Debian GNU/Linux 4.0 (codenamed &#8220;Etch&#8221;) and Debian GNU/Linux<br />
5.0 (&#8220;Lenny&#8221;).</p>
<p>Time-based freezes will allow the Debian Project to blend the<br />
predictability of time based releases with its well established policy of<br />
feature based releases. The new freeze policy will provide better<br />
predictability of releases for users of the Debian distribution, and also<br />
allow Debian developers to do better long-term planning.  A two-year<br />
release cycle will give more time for disruptive changes, reducing<br />
inconveniences caused for users. Having predictable freezes should also<br />
reduce overall freeze time.</p>
<p>Since Debian&#8217;s last release happened on Feb. 14th 2009, there will only<br />
be approximately a one year period until its next release, Debian<br />
GNU/Linux 6.0 (codenamed &#8220;Squeeze&#8221;).  This will be a one-time exception<br />
to the two-year policy in order to get into the new time schedule. To<br />
accommodate the needs of larger organisations and other users with a long<br />
upgrade process, the Debian project commits to provide the possibility to<br />
skip the upcoming release and do a skip-upgrade straight from Debian<br />
GNU/Linux 5.0 (&#8220;Lenny&#8221;) to Debian GNU/Linux 7.0 (not yet codenamed).</p>
<p>Although the next freeze is only a short time away, the Debian project<br />
hopes to achieve several prominent goals with it. The most important are<br />
multi-arch support, which will improve the installation of 32 bit<br />
packages on 64 bit machines, and an optimised boot process for better<br />
boot performance and reliability.</p>
<p>The new freeze policy was proposed and agreed during the Debian Project&#8217;s<br />
yearly conference, DebConf, which is currently taking place in Caceres,<br />
Spain. The idea was well received among the attending project members.</p></div>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2009/07/29/debian-fixed-release-date-cycles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving from debian+kde to ubuntu+gnome</title>
		<link>http://www.strangeparty.com/2009/05/20/moving-from-debiankde-to-ubuntugnome/</link>
		<comments>http://www.strangeparty.com/2009/05/20/moving-from-debiankde-to-ubuntugnome/#comments</comments>
		<pubDate>Wed, 20 May 2009 18:17:56 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=524</guid>
		<description><![CDATA[<p>I have been using Debian for quite a long time, and it has been my primary OS on my work laptop for about the last 3 years. Recently software suspend (sleep) started having problems where it often did not come back from sleep. For a laptop, this is a big annoyance to me, so I <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2009/05/20/moving-from-debiankde-to-ubuntugnome/">Moving from debian+kde to ubuntu+gnome</a></span>]]></description>
			<content:encoded><![CDATA[<p>I have been using Debian for quite a long time, and it has been my primary OS on my work laptop for about the last 3 years. Recently software suspend (sleep) started having problems where it often did not come back from sleep. For a laptop, this is a big annoyance to me, so I finally decided to try out Ubuntu.</p>
<p>I tried the usual Ubuntu Jaunty Live/install cd, but found that Ubuntu do not consider LVM a core part of Ubuntu and so the installer couldn&#8217;t install on my disk without serious reworking. So I grabbed the <em>alternate install cd</em> which is pretty much the old curses Debian installer, which does support LVM. Having backed up /home/ and /etc/ I started down the road installing. Things went very smoothly (short of a scary warning from the installer suggesting it was going to erase my LVM partition but actually doesn&#8217;t do anything more than rewrite the same partition table to the disk). In little over an hour I had Jaunty fully installed, and a large number of my work specific apps installed and running, including Lotus Notes and Lotus Symphony which are quite large downloads).</p>
<p>Of course firefox picked up all my custom plugins and current browsing session because I had left /home/ completely intact and reused it. I initially didn&#8217;t like the look of gnome and so tried kde briefly before managing to get it crashing regularly (probably one of the compiz 3d effects). I cleared out ~/.kde/ and got it a little more stable, but couldn&#8217;t get kde network manager to attempt to connect to my wifi, and wicd didn&#8217;t seem to finish connecting properly.</p>
<p>I decided to go back to gnome and try and see if I could get used to it. Customising it was a little interesting, as I like a launcher bar at the bottom and nothing in gnome seemed to be what I was looking for. Eventually I found gnome-do and the theme that has a recently launched bar at the bottom that resembles the osX launcher with icons that expand when you move the mouse over them. The gnome terminal is rubbish, so I am still using the kde konsole for now.</p>
<p>I am starting to get comfortable in gnome, and I think the fonts actually look better, though that could be something extra in Ubuntu or simply a better default setting somewhere that I would have found on a reinstall of Debian too. Gnome feels slightly faster than KDE, though that could be my imagination.</p>
<p>All-in-all I am impressed with the really good finish in Ubuntu Jaunty, and gnome is quite workable now (though I do miss the kde ctrl+alt+esc shortcut key to bring up a kill this window icon, which I have always found useful for when some Java applet tries to kill firefox). The gnome power/battery monitor applet has a rather cool power graph funcion which is interesting, though ultimately nothing more than a toy. I did like the kde4 application tray as you could set a wide panel and tell it ti use two rows to list running applications, which I cannot seem to get gnome to do.</p>
<p>Gnome&#8217;s philosophy of almost no options does kind of annoy me though. For a start I want my screensaver to be a random slideshow of photos I have on my computer, but the screensaver uses a hardcoded folder to display from, and doesn&#8217;t tell you what this folder is. This may be fine if the system created that folder for you but my system didn&#8217;t have it created (probably becaue my install reused an existing homedir) and I had to search for a while to find out that it was ~/Pictures. After that a symlink solved that probelm.</p>
<p>Another niggling issue I have is that under KDE I could configure the compiz effects to do an &#8220;expose&#8221; style window view &#8211; when Imove the mouse to a specified corner, all running applications are presented as nicely arranged tiles for me to select the one I want. Despite installing the compiz configuration package, I cannot seem to find a way to get gnome to do this, which is a shame as I could find that really useful.</p>
<p>It is still a novelty to me to have any 3d effects at all, so I have them all prettty much turned on and am loving it (I initially played with compiz when it first hit Debian Unstable, but the ATI graphics drivers for my T43p were not reliable enough and I had frequent crashes, so ultimately turned it all off again).</p>
<p>My new Ubuntu system is very stable, very flashy and I am really impressed. This is not to say I am going to move all my other machines from Debian to Ubuntu, but next time they are up for a reinstall (probably not until a major hardware upgrade) I will probably consider Ubuntu rather than just installing Debian straight away.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2009/05/20/moving-from-debiankde-to-ubuntugnome/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

