<?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>Linux User &#187; Tutorials</title>
	<atom:link href="http://www.linuxuser.co.uk/category/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linuxuser.co.uk</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 30 Jul 2010 09:50:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Collaborate and manage projects with Todoyu</title>
		<link>http://www.linuxuser.co.uk/tutorials/collaborate-and-manage-projects-with-todoyu/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/collaborate-and-manage-projects-with-todoyu/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 09:50:25 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[Toduyu]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=2542</guid>
		<description><![CDATA[Todoyu is a powerful tool designed to help you manage projects, track tasks and collaborate. Master it quickly with Dmitri Popov's excellent tutorial…]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/issue-89/" target="_blank">issue 89</a> of <a href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a> magazine.</strong><a href="http://www.imagineshop.co.uk/linuxuseranddeveloper/" target="_blank"><img class="size-full wp-image-2388 alignright" title="buy_online" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/buy_online.jpg" alt="buy_online" width="92" height="24" /></a><strong> Subscribe and save more than 30% and receive our exclusive money back guarantee – click <a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=WEB100">here</a> to find out more.</strong></p>
<p>Choosing a project management software package is like buying a house: it’s a serious investment and a long-term commitment, so it must fit your needs perfectly. There are plenty of open source project management tools to choose from, but if you need a powerful application that can help you to stay abreast of your projects and collaborate with other users, then Todoyu is your best bet. Project management is only one of Todoyu’s many talents: you can also use it to manage tasks, share files, maintain group calendars, track time spent on specific tasks, and much more. In short, Todoyu offers pretty much everything you need to successfully manage your business. And this tutorial will help you to get started with this powerful and flexible project management and collaboration solution.</p>
<p><strong>Resources:</strong><a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/Todoyu_Interface.jpg" rel="lightbox[2542]"><img class="alignright size-medium wp-image-2563" title="Todoyu_Interface" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/Todoyu_Interface-300x199.jpg" alt="" width="300" height="199" /></a><br />
You&#8217;ll need a machine running the Apache/PHP/MySQL stack, or the <a href="www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a> package.<br />
You&#8217;ll also need the latest release of <a href="http://www.todoyu.com/" target="_blank">Todoyu. </a></p>
<p><strong>1. Preparatory work</strong><br />
Assuming that you already have a server with the Apache/MySQL/PHP stack, grab the latest release of Todoyu, unpack the downloaded archive, rename the resulting folder as ‘todoyu’ and move it to the document root of your server. Make the following directories and files writable: /files, /config, /cache, /config, index.html.</p>
<p><strong>2. Installation step 1</strong><br />
Point your browser to http://yourserver/todoyu to start the installation. Read the licence agreement and hit the ‘I Accept, Install Todoyu’ button. If the server check has been successful, press the Setup Database Connection button and specify the required database connection info.</p>
<p><strong>3. Installation step 2</strong><br />
Press ‘Update Database Configuration’ and select the existing database or create a new one for use with Todoyu. Hit the Save Database Setup button, then select ‘Import Tables and Data’. Specify the required system settings and press the Save System Configuration button.</p>
<p><strong>4. Installation step 3</strong><br />
Specify an administrator password and press ‘Change admin Password’. The Todoyu installer can populate the application with demo data. So if you don’t want to start with an empty system, tick the ‘Import the Demo Data’ checkbox and press the Next Step button to finish the installation.</p>
<p><strong>5. Finish installation and log in</strong><br />
Once the installation is finished, press the ‘Disable Installer and Go to Login’ button. Log in to Todoyu as ‘admin’ using the administrator password you specified during installation.</p>
<p><strong>6. Configure roles and rights</strong><br />
Todoyu features a flexible user privilege mechanism that allows you to specify granular access to the system. User privileges in Todoyu are defined using Roles and Rights. Roles act as groups which you use to organise Todoyu’s users, while Rights specify access rights for each role.<br />
<a href="http://www.twitter.com/linuxusermag" target="_blank" style="display: block;">
					<img src="/wp-content/themes/arthemia/images/twitter_follow.png" style="display: block; margin: 0px auto; border: none;">
				</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/collaborate-and-manage-projects-with-todoyu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python development masterclass</title>
		<link>http://www.linuxuser.co.uk/tutorials/python-development-masterclass/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/python-development-masterclass/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 16:44:15 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=2385</guid>
		<description><![CDATA[It may seem like Python is just another scripting language, but know that when you are using Linux, the chances are there is some Python code working backstage helping you. Among other things, this article looks into the versatile nature of Python and its many uses…]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in<a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-88-out-now/" target="_blank"> issue 88 </a>of <a href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a> magazine.</strong><a href="http://www.imagineshop.co.uk/linuxuseranddeveloper/" target="_blank"><img class="size-full wp-image-2388 alignright" title="buy_online" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/buy_online.jpg" alt="buy_online" width="92" height="24" /></a></p>
<p>Every now and then you will realise that compiled programming is just not cutting it for you and you want to get your work done. In fact, at these times you just want to be freed from all the boundaries that compiled languages put in front of you, like the processor dependency, OS dependency, static typing and altogether the complexity of a compiled language. Python is a good answer for this type of situation.</p>
<p>Mostly seen as a scripting language for system administrators, it is actually capable of doing almost everything and beyond the limitations of regular programming languages. Python started its life as a time-saver programming language. Python’s inventor Guido van Rossum started the project with a set of philosophical rules which drives Python even today.<br />
These philosophical rules led to some of the primary reasons behind the popularity of Python, such as better software quality, component integration, extensibility, cross-platform support and developer productivity.</p>
<p>In this article we will look into the diverse range of applications of Python. We will look into the following categories:<br />
<strong>1. </strong>System administration<br />
<strong>2. </strong>Desktop (GUI) application development<br />
<strong>3. </strong>Web development<br />
<strong>4. </strong>Application scripting and component integration<br />
<strong>5. </strong>Game development</p>
<p><strong>System Administration</strong><br />
A system administrator’s job is not an easy one. They often need to do things like managing users, disk quotas, processes, devices and so on. Doing these tasks again and again on a large scale can cause a lot of stress and even result in premature hair loss! No kidding. Read the book Mastering Windows Server 2000 Registry for more details.</p>
<p>Python can be of great help to system administrators by automating a lot of administration tasks. In this section we will look at some sample Python scripts that will give you an idea about how to perform system administration tasks using Python. It is important to note here that for most of the tasks we will be using Python’s built-in modules only.</p>
<p><a title="Next Page" href="http://www.linuxuser.co.uk/tutorials/python-development-masterclass/2/" target="_self">Next Page</a><br />
<a href="http://www.twitter.com/linuxusermag" target="_blank" style="display: block;">
					<img src="/wp-content/themes/arthemia/images/twitter_follow.png" style="display: block; margin: 0px auto; border: none;">
				</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/python-development-masterclass/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Build a Samba file server</title>
		<link>http://www.linuxuser.co.uk/tutorials/build-a-samba-file-server/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/build-a-samba-file-server/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 11:48:56 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Networks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[file server]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=2352</guid>
		<description><![CDATA[How to build your own file server using Samba and Ubuntu with help from Linux User &#038; Developer veteran, Sukrit Dhandhania…]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a title="Linux User &amp; Developer #89" href="http://www.linuxuser.co.uk/magazine-issues/issue-89/" target="_self">issue 89</a> of <a title="Linux User" href="http://www.linuxuser.co.uk" target="_self"><em>Linux User &amp; Developer</em></a> magazine.</strong> <strong>Subscribe and save more than 30% and receive our exclusive money back guarantee &#8211; click <a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=WEB100">here</a> to find out more.</strong></p>
<p>Samba is a Linux/UNIX software package that allows you to share files and directories with computers running other operating systems over the network. It also allows your Linux desktop or laptop to sign into a Windows network and be able to share files inside a workgroup. There are several advanced features that Samba comes with, such as domain controller. We will look at how to convert your Ubuntu box into a Samba file server and configure it to share directories with different combinations of permissions.</p>
<p><strong>01 Prerequisites</strong><br />
When setting up a Linux file server, there are certain things that you will to have set up on your server before you start working on the Samba bit. The first thing you want to do is to set up the server with a static IP address, as opposed to one assigned dynamically by a DHCP server. Edit the file ‘<em>/etc/network/interfaces</em>’ with root user privileges and set the IP address manually. An example of the settings would be using something like the following:</p>
<pre>auto eth1
 iface eth1 inet static
 address 192.168.1.3
 gateway 192.168.1.1
 netmask 255.255.255.0
 network 192.168.1.0
 broadcast 192.168.1.255</pre>
<p>Using a static IP for any type of server makes good sense. Save the changes and restart the network with the command ‘<em># sudo /etc/init.d/networking restart</em>’.</p>
<p><strong>02 Installing Samba</strong><br />
Distributions such as Ubuntu have made the installation of just about anything so simple and straightforward with smart package management that you can have pretty much any software installed with a one-line command. To install Samba on your Ubuntu computer, execute the following:</p>
<pre># sudo apt-get update
# sudo apt-get install libcupsys2 samba samba-common</pre>
<p>Here we are requesting Ubuntu to install three packages. The first one is to share your printer, the other two are Samba and its support packages.</p>
<p><strong>03 Configuration file</strong><br />
The configuration files of Samba are stored in the ‘<em>/etc/samba/</em>’ directory. The first thing you should do before we dive into the configuration of Samba is to make a backup of the main configuration file.</p>
<pre># cp /etc/samba/smb.conf /etc/samba/smb.conf.bak</pre>
<p>Now open the file with your favourite text editor and let’s make some configuration changes:</p>
<pre># sudo vim /etc/samba/smb.conf</pre>
<p><a title="Next Page" href="http://www.linuxuser.co.uk/tutorials/build-a-samba-file-server/2" target="_self">Next Page</a><br />
<a href="http://www.twitter.com/linuxusermag" target="_blank" style="display: block;">
					<img src="/wp-content/themes/arthemia/images/twitter_follow.png" style="display: block; margin: 0px auto; border: none;">
				</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/build-a-samba-file-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internationalise your apps using Qt</title>
		<link>http://www.linuxuser.co.uk/tutorials/internationalise-your-apps-using-qt/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/internationalise-your-apps-using-qt/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 11:49:47 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[international]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[translate]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=2275</guid>
		<description><![CDATA[After putting so much effort into creating an application it would be shame to see it not being used just because it was only available in English. The bottom line is; most people pay more attention and give more respect to a product which is available in their own language.If you want a global audience for your software, it is very important that you localise your application for your users. Here's how...]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a title="Linux User &amp; Developer #89" href="http://www.linuxuser.co.uk/magazine-issues/issue-89/" target="_blank">issue 89</a> of <a title="Linux User" href="http://www.linuxuser.co.uk" target="_self"><em>Linux User &amp; Developer</em></a> magazine.</strong> <strong>Subscribe and save more than 30% and receive our exclusive money back guarantee &#8211; click <a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=WEB100">here</a> to find out more.</strong></p>
<p><strong>Get your first digital copy of the magazine for iPhone and iPad free &#8211; just search for &#8216;Linux User&#8217; on the Apple App Store now!</strong> <a href="http://www.twitter.com/linuxusermag" target="_blank" style="display: block;">
					<img src="/wp-content/themes/arthemia/images/twitter_follow.png" style="display: block; margin: 0px auto; border: none;">
				</a></p>
<p>Let’s admit it, writing applications is a complex thing to do; it requires lot of blood and sweat. After putting so much effort into creating an application it would be shame to see it not being used just because it was only available in English. The bottom line is; most people pay more attention and give more respect to a product which is available in their own language. By its very nature, open source software qualifies as some of the most translated on the planet. If you want to seek a global audience for your software, it is very important that you localise your application for your users. Here&#8217;s how&#8230;</p>
<p><strong>The Basics</strong><br />
Technical terms involved in internationalisation can be very daunting, so let’s clear these before proceeding. The following are the key components that make up the complete internationalisation framework…</p>
<p><strong>Locale: </strong>A locale is the part of a user’s environment that brings together information about how to handle data that is specific to the end user’s particular country, language or territory. The locale is typically installed as part of the operating system. Usually a locale identifier consists of at least a language identifier and a region identifier. It is defined in this format: [language[_territory][.codeset][@modifier]]. For example, British English using the UTF-8 encoding is en_GB.UTF-8. (More on character sets later in this article.) The same code also defines the territorial convention for spelling, currency, date format etc.:</p>
<blockquote><p>en_US = “color,” mm/dd/yyyy, $1,234.56<br />
en_GB = “colour,” dd/mm/yyyy, £1.234,56</p></blockquote>
<p><strong>Translation:</strong> It simply means the translation of the text into another language. It may not be an accurate word-by-word translation, but it conveys the correct message.<br />
<strong>Localisation (aka L10n):</strong> Localisation is a combined term used for both translation while conforming to a relevant locale.<br />
Internationalisation (also known as i18n): The term ‘internationalisation’ refers to the process of building a product that is locale-neutral. It means that the application should be adapted to target languages and countries without making changes to the core of the product.<br />
<strong>Globalisation: </strong>The combination of localisation and internationalisation. It commonly refers to the process of transforming a locale-specific product into one that support all locales.<br />
<strong>Character sets/encodings: </strong>‘Character set’ is often used to describe a digital representation of text. A character encoding system consists of a code that pairs each character from a given repertoire with something else, such as a sequence of natural numbers, or octets, in order to facilitate the transmission of data. The following are the popular character encodings…<br />
<strong>8-bit character encodings and multibyte encodings:</strong> This Includes Latin-1, Latin-2 and ISO-8859-3 encodings. These collectively support English, Danish, French, German, Italian, Norwegian, Portuguese, Spanish, Swedish, Czech, Hungarian, Polish, Slovak, Cyrillic, Arabic, Greek, Hebrew, Turkish, Baltic and many others. Multibyte character applies when you do not have one-byte-per-character mapping.<br />
<strong>Unicode:</strong> This is by far the most complete character set produced ever. It contains 96,447 characters from all of the world’s languages. Unicode comes in many flavours, mostly differentiated based on the bytes used. Popular ones are UTF-8, UCS-2 and UTF-16. UTF-8 is a variable-length encoding using 1-4 bytes. Primary applications are for use with XML, XHTML and various other text file formats. UCS-2 provides native encoding on NT-based systems. UTF-16 introduces 16-bit encodings plus 4-byte surrogates. Used for Asian language characters, mathematical symbols, esoteric scripts etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/internationalise-your-apps-using-qt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android Development masterclass</title>
		<link>http://www.linuxuser.co.uk/features/master-android-development/</link>
		<comments>http://www.linuxuser.co.uk/features/master-android-development/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 10:44:45 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[how to]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=2228</guid>
		<description><![CDATA[It’s time to go beyond the ‘hello world’ app. Let’s look into real-world situations and start doing big things with your Android development project...]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/issue-89/" target="_blank">issue 89</a> of <a title="Linux User" href="http://www.linuxuser.co.uk" target="_self"><em>Linux User &amp; Developer</em></a> magazine.</strong> <strong>Subscribe and save more than 30% and receive our exclusive money back guarantee &#8211; click <a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=WEB100">here</a> to find out more.</strong><br />
<strong>Get your first digital copy of the magazine for iPhone and iPad free &#8211; just search for &#8216;Linux User&#8217; on the Apple App Store now!</strong><a href="http://www.twitter.com/linuxusermag" target="_blank" style="display: block;">
					<img src="/wp-content/themes/arthemia/images/twitter_follow.png" style="display: block; margin: 0px auto; border: none;">
				</a></p>
<p>Android is changing the way that Linux is perceived. It has become the single most widely adopted type of Linux on embedded devices. It is not only popular in the smartphone space but also expanding its coverage to tablets, set‑top Boxes, televisions and appliances. For an Android application developer, this means a broader market to reach out to. We have already covered the introduction to Android development back in issue 83, so this time we go beyond the ‘hello world’ basics and give you the tips and recipes you need to become a better Android developer&#8230;</p>
<p><strong>Using an alternative integrated development environment<br />
</strong>an important part of any development platform. The IDE lets you make the most of your time by helping you focus on the code and logic rather than doing redundant tasks. Unlike other platforms, the Android SDK does not come with an IDE. Google provides an Eclipse plug-in called ADT (Android Development Tools) for Eclipse. This lets you use Eclipse as an IDE for Android. While ADT is good at basic tasks, it still is very limited in terms of functionality. As you grow as an Android developer, you’ll need more features and power from an Android IDE. So here are some alternative IDEs available for Android that make development both fun and easy:</p>
<p><em><strong>MOTODEV Studio for Android (Free) </strong></em><br />
MOTODEV Studio is from phone maker Motorola. It includes the standard Google ADT and builds on top of it. Motorola has added several features that make Android development easier. Important features are…</p>
<p><strong>1. </strong>Code snippets: You can use frequently used parts of code as snippets and use them in any number of applications you want. An example of a code snippet would be a code that is needed to initialise a database connection.<br />
<strong>2. </strong>Database management tools: You can work with SQLite databases using a GUI interface without leaving the IDE.<br />
<strong>3.</strong> Localisation file editor: This helps you manage strings to create localised applications.<br />
<strong>4. </strong>Application creation wizards: It is possible to create essential Android classes – such as Content Provider, Service, Activity and Broadcast Receiver – quickly and easily using application creation wizards.<br />
<strong>5. </strong>Automated SDK download: MOTODEV Studio is capable of executing automatic download, installation and configuration for the latest Android SDK. This is useful for newbies starting out in Android development.</p>
<p>Other features include application signing, Android Market integration and a built-in emulator. You can download MOTODEV Studio for Android <a title="MOTODEV Studio" href="http://developer.motorola.com/docstools/motodevstudio/download/" target="_blank">from here</a>.</p>
<p><strong><em>IntelliJ IDEA (Commercial)</em></strong><br />
IntelliJ IDEA dares to be different in a world dominated by Eclipse-based IDEs. IntelliJ IDEA supports Android using an open source plug-in called idea-android (now part of the commercial distribution starting from version 9). Important features are:<br />
<strong>1. </strong>Code insight support including code completion and navigation for Android projects.<br />
<strong>2.</strong> Seamless Android SDK integration.<br />
<strong>3. </strong> Android project deployment support.<br />
IntelliJ IDEA is a popular Java IDE and has offers a host of excellent features that apply to most Java projects in general, as well as Android ones. IntelliJ IDEA can be downloaded <a title="IDEA" href="http://www.jetbrains.com/idea/download/index.html" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/features/master-android-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Development &#8211; five deadly sins</title>
		<link>http://www.linuxuser.co.uk/news/five-deadly-sins-of-android-development/</link>
		<comments>http://www.linuxuser.co.uk/news/five-deadly-sins-of-android-development/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 15:49:56 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Distros]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=2231</guid>
		<description><![CDATA[Committing these sins will cause you to burn in Android hell and you will have no place in the Market. Kunal Deo reveals all and he really means business...]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/issue-89/" target="_blank">issue 89</a> of <a title="Linux User" href="http://www.linuxuser.co.uk" target="_self"><em>Linux User &amp; Developer</em></a> magazine.</strong> <strong>Subscribe and save more than 30% and receive our exclusive money back guarantee &#8211; click <a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=WEB100">here</a> to find out more.</strong></p>
<p><strong>Get your first digital copy of the magazine for iPhone and iPad free &#8211; just search for &#8216;Linux User&#8217; on the Apple App Store now!</strong> <a href="http://www.twitter.com/linuxusermag" target="_blank" style="display: block;">
					<img src="/wp-content/themes/arthemia/images/twitter_follow.png" style="display: block; margin: 0px auto; border: none;">
				</a></p>
<p>Committing these sins will cause you burn in Android hell and you will have no place in the Android Market.</p>
<p><strong>1 Poor Performance</strong><br />
If your application is not responsive enough, your users will receive an ugly ANR (Application Not Responding) message. An ANR is thrown when your application is not able to respond to user input within five seconds, or the Broadcast Receiver does not complete in ten seconds.<br />
An ANR message allows the user to either close the application or wait for it to respond. You know what most users will do, so optimise your application for performance. Or else.</p>
<p><strong>2 Using Excessive System Resources</strong><br />
Always keep in mind that you are programming for low-powered handhelds and not desktop-class systems. There are far more important applications running on the device and you need to play fair. If you are not using system resources responsibly, you will slow down the whole system and the user will banish your application from their device. And so they should.</p>
<p><strong>3 creating a Weird User Interface </strong><br />
People use applications on their smartphones because they are easy to use. Do not try to hijack their user experience. Always provide a consistent user interface.  For example, the Back button should always cause the application to show the previous screen or you should go back to the drawing board. Simple.</p>
<p><strong>4 Using undocumented APIs</strong><br />
Never use an undocumented API, no matter how interesting it looks. Undocumented APIs tend to break applications between OS releases. They are also not tested for third-party usage. Using undocumented APIs can cause all sort of problems including performance issues and compatibility.</p>
<p><strong>5 Designing for One Device (or only a small sub-set)</strong><br />
Android is not just about one smartphone, but a whole range of devices. If you design for all of them, you will have a larger marketplace. The Android SDK provides many APIs to support writing device-neutral applications. Use them.</p>
<p>Makes sure you check out our advanced <a title="Master Android Development" href="http://www.linuxuser.co.uk/features/master-android-development/" target="_self">Android development guide</a>. Better yet, follow us on <a title="@LinuxUserMag" href="https://twitter.com/LinuxUserMag" target="_blank">Twitter</a> and get updates the minute they hit the net&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/news/five-deadly-sins-of-android-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ruby development for system administrators</title>
		<link>http://www.linuxuser.co.uk/tutorials/ruby-for-system-administrators/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/ruby-for-system-administrators/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 09:28:35 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[shell scripts]]></category>
		<category><![CDATA[system admin]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=2189</guid>
		<description><![CDATA[Koen Vervloesem doesn’t like shell scripts that are difficult to maintain, therefore he uses Ruby for his sysadmin tasks. Do the same with his four-page guide…
]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/issue-89/" target="_blank">issue 89</a> of <a title="Linux User" href="http://www.linuxuser.co.uk" target="_self"><em>Linux User &amp; Developer</em></a> magazine.</strong> <strong>Subscribe and save more than 30% and receive our exclusive money back guarantee &#8211; click <a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=WEB100">here</a> to find out more.</strong></p>
<p><strong>Get your first digital copy of the magazine for iPhone and iPad free &#8211; just search for &#8216;Linux User&#8217; on the Apple App Store now!</strong> <a href="http://www.twitter.com/linuxusermag" target="_blank" style="display: block;">
					<img src="/wp-content/themes/arthemia/images/twitter_follow.png" style="display: block; margin: 0px auto; border: none;">
				</a></p>
<p><strong>Resources:</strong><br />
<a title="Ruby" href="http://www.ruby-lang.org/en/" target="_blank">Ruby programming language </a><br />
<a title="Ruby Gems" href="http://rubygems.org" target="_blank">Ruby gems </a><br />
<a title="REXML" href="http://www.germane-software.com/software/rexml" target="_blank">REXML </a></p>
<p>Most Linux and UNIX system administrators use a diverse mix of shell scripts and tools like grep, awk, cut and so on. The classical approach has proven its merits, but these scripts are generally not easy to read or to maintain. One solution is to use a real programming language for system administration tasks. In a complex environment, system administration can become much easier with a real programming language instead of shell scripts. Traditionally, Perl has been very popular among sysadmins, but some people maintain that this is not much better than shell.</p>
<p>In this article, we choose Ruby, a feature-rich but simple object-oriented programming language known from the popular web application framework Ruby on Rails. The Ruby programming language has many built-in and external libraries that can come in handy for typical system administration tasks such as file manipulation and text processing, log file analysis, logging into other servers, and so on. The gentle learning curve of this programming language, coupled to the easy-to-read and maintainable form of the scripts, makes this a valid choice for sysadmins.</p>
<p><strong>Simple but effective</strong><br />
Let’s start with some basic features of the language, to show you why Ruby is in many cases a better choice than Perl or a shell script. First of all, everything in Ruby is an object, even primitive types such as numbers and strings. For instance, an array of numbers is just an object, which has methods and properties. This has a very simple syntax. For example, this is how you get the length of an array:</p>
<pre>[1, 2, 3, 4, 5].length</pre>
<p>And this is how you get the last element of an array:</p>
<pre>[1, 2, 3, 4, 5].last</pre>
<p>A second powerful feature are code blocks, which allow for shorter and easier-to-grasp code. A code block is a function without a name, that can be passed to another function as a parameter. For example, if you have an array of numbers, you could double each one in one line:</p>
<pre>numbers = [1, 2, 3, 4, 5]
doubles = numbers.collect { |n| 2*n }</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/ruby-for-system-administrators/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Unattended Ubuntu installations made easy</title>
		<link>http://www.linuxuser.co.uk/tutorials/unattended-ubuntu-installations/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/unattended-ubuntu-installations/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 10:16:52 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Distros]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[unattended installs]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=1981</guid>
		<description><![CDATA[Michael Reed shows you how to automate the Ubuntu installation procedure to make light work of mass installations…]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-88-out-now/" target="_blank">issue 88 </a>of <em><a href="../">Linux User &amp; Developer</a></em> magazine.</strong><br />
<strong><em><a href="../">Linux User &amp; Developer</a>,</em> one of the nation&#8217;s favourite Linux and Open Source publications, is now part of the award winning <em><a href="http://www.imagine-publishing.co.uk/">Imagine Publishing</a></em> family. Readers can subscribe and save more than 30% and receive our exclusive money back guarantee &#8211; click <a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=WEB100">here</a> to find out more.</strong></p>
<p><strong>Get your first digital copy of the magazine for iPhone and iPad free &#8211; just search for &#8216;Linux User&#8217; on the Apple App Store now!</strong> <a href="http://www.twitter.com/linuxusermag" target="_blank" style="display: block;">
					<img src="/wp-content/themes/arthemia/images/twitter_follow.png" style="display: block; margin: 0px auto; border: none;">
				</a></p>
<p>In creating Ubuntu Linux, Canonical has focused on ease of use, and this extends to the install procedure. To this end, Ubuntu eschewed many of the detailed questions that had discouraged potential Linux users of an earlier era. However, despite relative improvements in that area, the installation is still peppered with questions. This means that an admin tasked with the deployment of more than three or four computers is doomed to spend an entire morning dashing around, typing in responses to the same questions over and over again.</p>
<p>Fortunately, there is a solution in the form of unattended installs. An admin can alter a standard Linux distribution so that it no longer asks the user questions while installing. Obviously, the installer will need the information that it normally acquires by prompting the user for details, and the trick is to provide this information in advance in the form of what is called an ‘<em>answer file</em>’. It’s possible to divide automated installs into two main categories: customised CD-ROM and network installation. Both approaches have their relative strengths and weaknesses.</p>
<p>As with most things on Linux, there is more than one system that you can choose from, but we’re going to use something called Kickstart. Kickstart is an automatic install system that started life on Red Hat-derived Linux distributions, but it’s supported on Ubuntu. It comes with a GUI tool to create the configuration file, making it very simple to use. Let&#8217;s start with a quick breakdown of its core settings&#8230;</p>
<p><strong>Configuration using the Kickstart GUI</strong><br />
A lot of the settings can be left in their default state, but here are some of the most important ones.</p>
<p><strong>Basic Configuration: </strong>Location and language settings.<br />
<strong>Installation Method:</strong> Switch this to ‘CD‑ROM’.<br />
<strong>Partition information:</strong> Create a minimum of a root (/) partition of ext4 format and a swap partition. You can set the root partition to fill the free space on the disk.<br />
<strong>User configuration:</strong> Create one user account and no root account if you are comfortable with Ubuntu’s standard rootless setup.<br />
<strong>Package selection:</strong> This isn’t implemented in Ubuntu. However, it’s possible to add packages to the configuration file manually, by adding a line with ‘<em>%packages</em>’ (no quotes) followed by package names, each on its own line. By default, a Kickstart-modified Ubuntu CD-ROM will install the same Ubuntu desktop and associated programs that a standard Ubuntu CD‑ROM would.</p>
<p>Creating an unattended install consists of the following steps:<br />
<strong>1. </strong>Create a configuration file, ks.cfg, using the GUI Kickstart tool.<br />
<strong>2. </strong>Extract the files from the Ubuntu install ISO.<br />
<strong>3. </strong>Add the ks.cfg file to the install disk and alter the boot menu to add automatic install as an install option.<br />
<strong>4. </strong>Reconstitute the ISO file.</p>
<p>An important thing to remember with answer files is that if you forget to add something, the installation will be interrupted with a question in the usual way. This can be a problem, but on the other hand it ensures<br />
that a Kickstart install disk isn’t rendered useless if the installer encounters an unforeseen circumstance and is forced to ask a question. It’ll probably take a couple of goes and a bit of experimentation before you create the perfect install disk, so we advise you to use a virtual machine (see our guide to VMs in issue #85) to test the disk before committing to burning a CD.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/unattended-ubuntu-installations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Create a smart PDF document with Scribus</title>
		<link>http://www.linuxuser.co.uk/tutorials/create-a-smart-pdf-document-with-scribus/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/create-a-smart-pdf-document-with-scribus/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 11:41:10 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[manage]]></category>
		<category><![CDATA[Scribus]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=1785</guid>
		<description><![CDATA[Scribus is an open source desktop publishing application for several platforms, including Linux. In his latest tutorial Sukrit Dhandhania uses it to create a smart PDF document designed to help collect data…]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-86-is-out-now/" target="_blank">issue 87 </a>of <em><a href="../">Linux User &amp; Developer</a></em> magazine.</strong></p>
<p><strong><em><a href="../">Linux User &amp; Developer</a>,</em> one of the nation&#8217;s favourite Linux and Open Source publications, is now part of the award winning <em><a href="http://www.imagine-publishing.co.uk/">Imagine Publishing</a></em> family. Readers can subscribe and save more than 30% and receive our exclusive money back guarantee &#8211; click <a href="http://www.imagineshop.co.uk/products_show.php?typeID=212">here</a> to find out more.</strong></p>
<p><strong>Don&#8217;t forget to follow us on <a title="LUD on Twitter" href="http://www.twitter.com/Linuxusermag" target="_self">Twitter</a> or get your first digital copy of the magazine for iPhone and iPad free &#8211; just search for &#8216;Linux User&#8217; on the app store now!<br />
</strong></p>
<p>Sometimes we need to create a document containing a form for a client to fill out. This form is shared either by email or by downloading from a web location. A lot of people will use a word processor, most often Microsoft Word, to create such a document. It’s the popularity and general availability of Microsoft Word that is the reason for using this tool in most of these cases. One issue with this approach is that using a word processor to create a form will more often than not cause you to make a compromise on your design as it is not a professional design application, but a word processor. A better approach to solving this problem would be to use a more standard file format, such as PDF. PDF documents work the same across all major operating systems, such as Windows, Mac OS, and Linux. Let’s take a look at how to use Scribus, an open source desktop publishing application available for all these three platforms, to create a smart PDF document containing a form which your client can fill out. In the end, she can hit the Submit button at the end of the document, and the data she just entered will be sent right back to you by the document.<br />
<strong><br />
Resources:</strong><br />
<a title="Scribus Home" href="http://www.scribus.net/" target="_blank"><strong>Scribus</strong>:</a> This great open source desktop publishing application for Linux is a must&#8230;<br />
<a title="Acrobat Reader" href="http://get.adobe.com/reader/" target="_blank"><strong>Adobe Acrobat Reader: </strong></a>Like it or loathe it, it&#8217;s one of the best PDF readers around today.</p>
<p><strong>1. Create your document</strong><a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/06/Scribus-02-image01.jpg" rel="lightbox[1785]"><img class="alignright size-thumbnail wp-image-1788" title="Scribus 02 image01" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/06/Scribus-02-image01-150x150.jpg" alt="Scribus 02 image01" width="120" height="120" /></a><br />
We’ll begin by creating a simple one-page form document. Create a new document with Scribus. Go to File&gt;New and pick a single A4 document from the options presented to you. You may leave the rest of the settings to the default options. Hit the OK button.<br />
<strong> </strong></p>
<p><strong>2. Grid view</strong><br />
To make things easy for you while you are designing your document, it may be a good idea to bring up the grid view in Scribus. In the grid view, Scribus displays a green grid in the background of your document which makes placing your objects in line easier. To enable the grid view, navigate to the View item in Scribus’s menu and check the Show Grid option. The grid is there as a reference for you while you design your document and will not appear in the final PDF document that you output.<br />
<strong> </strong></p>
<p><strong>3. Ruler guides<a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/06/Scribus-02-image03.jpg" rel="lightbox[1785]"><img class="alignright size-thumbnail wp-image-1793" title="Scribus 02 image03" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/06/Scribus-02-image03-150x150.jpg" alt="Scribus 02 image03" width="150" height="150" /></a></strong><br />
Like the grid view, you can also use the ruler guides to help you while you design your document. The guides are a more flexible marking of lines that prove very useful when designing a document. Make sure that you are able to see the ruler at the top and left-hand sides of your document. If not, you can enable them by going to View and checking the Show Rulers option in the menu; also enable the Show Guides item in the same menu. To use the guides, click on the top or left side ruler and drag your mouse into the document without letting go of the mouse button. Let go of the button when you arrive at the point where you want the line to be. By placing such lines from the top and left, you can easily align your objects. Like the grid, the ruler guides too don’t appear in the final output version of your document.<br />
<strong> </strong></p>
<p><strong>4. Plan our your document</strong><br />
Now we’re almost ready to begin working on the document. What we need to do before that is to figure out what our document will look like. Let’s say we are designing a PDF form for our clients so that we can collect their contact information. So this form would consist of their name, address, telephone number and email address. Aside from that, we need to include a Submit button. We will also try and make the document a bit easier on the eyes and throw in a nice background and a couple of images. Okay, time to begin designing.</p>
<p><strong>5. Add a title<a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/06/Scribus-02-image05.jpg" rel="lightbox[1785]"><img class="alignright size-thumbnail wp-image-1792" title="Scribus 02 image05" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/06/Scribus-02-image05-150x150.jpg" alt="Scribus 02 image05" width="150" height="150" /></a></strong><br />
Let’s begin by giving your document a title – Contact Information Form. To do this, click on the Insert option in the menu bar and click on the Insert Text Frame button. The mouse cursor will now look different. Create a text box by clicking and dragging the mouse. Once you have done so, double-click inside the newly created text box and enter the text ‘Contact Information Form’.<br />
<strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/create-a-smart-pdf-document-with-scribus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Process synchronisation in Linux</title>
		<link>http://www.linuxuser.co.uk/tutorials/process-synchronisation-in-linux/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/process-synchronisation-in-linux/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 14:32:28 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Process Synchronisation]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[time slice]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=1470</guid>
		<description><![CDATA[The two fundamental concepts in a Linux operating system are processes and time slice. A process is an instance of a program that is being executed by the computer’s operating system. When we say that two computers are communicating with each other, we mean that two processes, one running on each computer, are in communication with each other.]]></description>
			<content:encoded><![CDATA[<p>The two fundamental concepts in a Linux operating system are processes and time slice. A process is an instance of a program that is being executed by the computer’s operating system. When we say that two computers are communicating with each other, we mean that two processes, one running on each computer, are in communication with each other. The only way a new process can be created by the Linux system is by issuing the <em>fork()</em> system call. We need to understand here that system calls are the entry points through which an active process can obtain the services from the kernel.</p>
<p>Linux operates on the principle of time slice – every single process is given a little bit of time for its execution. If the process execution is not completed, then it will be put in a suspended mode till it gets its time slice and after that it continues its execution. The switch between different processes happens so fast that an end user will never be able to visualise it.</p>
<p>Let us explain the time slice concept with an example – assume that there are two processes and Linux gives each a time slice of two seconds. When two seconds elapse for the first process, it is moved into the swap area. Now the second process starts to execute. Once its two seconds are over, it will be moved into the swap area. The first process will be reloaded and its execution begins. This switch happens every two seconds until one of the processes finishes.</p>
<p>Let us see how we can create new processes by using <em>fork()</em> system call:</p>
<blockquote><p><strong>#include&lt;stdio.h&gt;<br />
main()<br />
{<br />
fork();<br />
printf(“Hello, this is a test program\n”);<br />
}</strong></p></blockquote>
<p><a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/04/fork-example-code.jpg" rel="lightbox[1470]"><img class="aligncenter size-medium wp-image-1474" title="fork - example code" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/04/fork-example-code-300x185.jpg" alt="fork - example code" width="300" height="185" /></a></p>
<p>The above is a simple example with only two lines of code (Fig 1 above). After compiling and executing the above program, we can see that the statement ‘Hello, this is a test program’ will be displayed twice (Fig 2 below).</p>
<p><a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/04/fork-output-display.jpg" rel="lightbox[1470]"><img class="aligncenter size-medium wp-image-1481" title="fork output display" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/04/fork-output-display-300x209.jpg" alt="fork output display" width="300" height="209" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/process-synchronisation-in-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Build a Twitter client using PyGTK</title>
		<link>http://www.linuxuser.co.uk/tutorials/build-a-twitter-client-using-pygtk/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/build-a-twitter-client-using-pygtk/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 07:00:51 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[PyGTK]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[twitter client]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=1354</guid>
		<description><![CDATA[This tutorial shows how to use Python to build GUI applications very quickly. After an introduction to PyGTK you will learn how to build a simple, but elegant Twitter post client…]]></description>
			<content:encoded><![CDATA[<p><strong>This article originally appeared in <a title="Linux User &amp; Developer #85" href="http://http://www.linuxuser.co.uk/news/linux-user-developer-85-is-out-now/" target="_blank">issue 85</a> of <em>Linux User &amp; Developer</em>. </strong><br />
<em><a title="Linux User Home" href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a>,</em> one of the nation&#8217;s favourite Linux and Open Source publications, is now part of the award winning <em><a title="Imagine Publishing home" href="http://www.imagine-publishing.co.uk" target="_blank">Imagine Publishing</a></em> family. Readers can subscribe and save more than 30% and receive our money back guarantee &#8211; <a title="Linux User &amp; Developer Subs info" href="http://www.imagineshop.co.uk/products_show.php?typeID=212" target="_self">click here</a> to find out more.</p>
<p><strong>Resources:</strong><br />
You will need the following packages to be installed in your system:<br />
<strong>PyGTK: </strong>Install PyGTK development packages. If you are using Ubuntu, install the package <em>python-gtk2-dev</em>.<br />
<strong>python-simplejson:</strong> simplejson is an extensible JSON (JavaScript Object Notation) encoder and decoder for Python.<br />
<strong>Python Twitter:</strong> Python Twitter library provides a pure Python interface to the Twitter API. You can download it <a title="Python Twitter" href="http://code.google.com/p/python-twitter/" target="_blank">here</a>. Once you have the source file (<em>python-twitter-0.6.tar.gz</em>), perform the following steps to install it…</p>
<blockquote><p><strong>$ tar xvfz python-twitter*<br />
$ cd python-twitter*<br />
$ sudo python setup.py install</strong></p></blockquote>
<p>If <em>sudo</em> is not working for you, try logging in as root, using <em>su</em> and then run the steps.</p>
<p>Source Code examples:<br />
<a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/03/HelloWorld-and-TwitPost.zip">HelloWorld and TwitPost</a><br />
<a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/03/kde1.jpg" rel="lightbox[1354]"><img class="aligncenter size-medium wp-image-1364" title="kde1" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/03/kde1-300x225.jpg" alt="kde1" width="300" height="225" /></a></p>
<p>Traditionally, GUI application development has been complex. On top of that, it could only be done with compiled programming languages like C or C++. Actually, that is not entirely true: you could have used <em>Tcl/Tk</em> scripting language to build GUI applications. But those interfaces looked like how KDE1 was: very ancient.</p>
<p>PyGTK is a set of wrappers around the GTK (GIMP Toolkit) library. It lets you to easily create programs with a graphical user interface using the Python programming language. PyGTK gives you best of both worlds: the simplicity of the Python programming language and the power of GTK. GTK allows you to develop fully fledged cross-platform GUI applications. It also facilitates rapid application development using glade libraries.</p>
<p>PyGTK is used in many places. As far as Linux is concerned, you will find PyGTK powering many Linux distributions’ set-up tools; prime examples are Fedora/Red Hat – in Anaconda (the Red Hat installer) and various GUI administration tools – and Mandriva Linux (Drakconf-based tools). This is owing to the fact that Python in its own right is a great tool for administration-related tasks. PyGTK is also the official GUI toolkit for the OLPC (One Laptop per Child) project. It is used heavily in building netbook/tablet-friendly applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/build-a-twitter-client-using-pygtk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimise OpenOffice.org</title>
		<link>http://www.linuxuser.co.uk/tutorials/optimise-openoffice-org/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/optimise-openoffice-org/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 11:25:27 +0000</pubDate>
		<dc:creator>Russell Barnes</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[OpenOffice.org]]></category>
		<category><![CDATA[optimise]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=1313</guid>
		<description><![CDATA[OpenOffice.org  is the greatest open source alternative to Microsoft’s Office suite. Over the years OpenOffice has evolved to become much more than just an alternative to MS Office however. Let’s look at some hacks that will allow you to become more of a power user of OpenOffice, enabling you to be more productive with the software. We’ll explain how to create your own macros and extensions and more besides…]]></description>
			<content:encoded><![CDATA[<p>OpenOffice.org  is the greatest open source alternative to Microsoft’s Office suite. Over the years OpenOffice has evolved to become much more than just an alternative to MS Office however. Let’s look at some hacks that will allow you to become more of a power user of OpenOffice, enabling you to be more productive with the software.<a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/03/OpenOffice-Folder.jpg" rel="lightbox[1313]"><img class="alignright size-thumbnail wp-image-1320" title="OpenOffice Folder" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/03/OpenOffice-Folder-150x150.jpg" alt="OpenOffice Folder" width="141" height="141" /></a></p>
<p><strong>Resources:</strong><br />
<a title="Download OpenOffice.org" href="http://download.openoffice.org" target="_blank">OpenOffice</a> (version 3 or higher)<br />
<a title="BasicAddonBuilder" href="http://extensions.services.openoffice.org/project/BasicAddonBuilder" target="_blank">BasicAddonBuilder </a><br />
<a title="Sun PDF Import Extension" href="http://extensions.services.openoffice.org/project/pdfimport" target="_blank">Sun PDF Import Extension </a><br />
<a title="Professional Template Pack II" href="http://extensions.services.openoffice.org/project/TemplatePack_II" target="_blank">Professional Template Pack II &#8211; English </a><br />
<a title="Writer's Tools" href="http://extensions.services.openoffice.org/project/writertools" target="_blank">Writer’s Tools</a><br />
<a title="OpenOffice.org Doc Templates" href="http://templates.services.openoffice.org" target="_blank">OpenOffice.org Document Templates </a></p>
<p><strong>OpenOffice.org Macro Feature</strong><br />
A macro in OpenOffice is a saved sequence of steps or commands which can be called with the click of a button. Macros are very useful in making repetitive tasks a lot more efficient. Say you need to put your signature, address and company logo at the end of a number documents you create using OpenOffice. You can create a macro that does this for you. This way, all you have to do is to call the macro and it will fill in the necessary information. Creating macros might seem rather intimidating at first, but it is quite simple to get started with it.</p>
<p><strong>Record a macro</strong><br />
The simplest way to create a macro is to use OpenOffice’s built-in macro recording tool. You launch the macro recorder, run the steps you want to be recorded in the macro, then stop the recorder. Voilà, your macro is now ready. Let’s look at how to do this. Go to Tools&gt;Macros&gt;Record Macro, then press the sequence of keystrokes you want. At the end of your sequence, click on Stop Recording. In the new window that pops up, give the file a name and save it. Try to come up with apt names for your macros, as weak names will drive you nuts in the future.</p>
<p><strong>Run your saved macro</strong><br />
Once you have saved a macro in OpenOffice, it’s quite simple to run it. Go to Tools&gt;Macros&gt;Run Macro. A window will pop up with a list of all the macros available, the ones from the OpenOffice.org team, as well as the ones created by you. Select the macro you want to execute and hit Run. The macro will execute. Errors, if any, will be displayed in a pop-up notification window.</p>
<p><strong>Extensions</strong><br />
If you create a macro that you want to share with other users of the OpenOffice suite, there are two ways for you to do that. You can either share the code used by the macro, or you can package the macro into an ‘extension’ and then share it via email or put it up for download. The second method is usually the better approach. Let’s look at how to package an OpenOffice macro into an extension.</p>
<p>An OpenOffice extension pretty much consists of the code of an OpenOffice macro and some XML files, all wrapped up into a zip file. To create an extension, first follow the steps shown above and create an OpenOffice macro. Once you have the macro saved in OpenOffice, there are two ways you can proceed. You can either write the necessary XML files manually using a text editor, or you can use the OpenOffice tool, BasicAddonBuilder (BAB), to generate the XML files for you. Let’s look at the second method.</p>
<p><strong>Install the BasicAddonBuilder</strong><br />
Installing the BasicAddonBuilder is quite a straightforward process. &#8211; just start <a href="http://extensions.services.openoffice.org/project/BasicAddonBuilder" target="_blank">here</a>. This is the page for the BasicAddonBuilder OpenOffice extension. On this page, click on the ‘<em>Get it!’</em> button to begin the installation of BasicAddonBuilder. Once the download is complete, OpenOffice’s extension system will take over the installation. Just follow the steps that it asks you to and you should soon be in business.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/optimise-openoffice-org/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
