<?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></description>
	<lastBuildDate>Fri, 03 Feb 2012 09:54:04 +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>The art of unit testing explained</title>
		<link>http://www.linuxuser.co.uk/features/the-art-of-unit-testing-explained/</link>
		<comments>http://www.linuxuser.co.uk/features/the-art-of-unit-testing-explained/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 14:58:18 +0000</pubDate>
		<dc:creator>RussellBarnes</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=6395</guid>
		<description><![CDATA[Swayam Prakasha explores and explains one of the most important methodologies in modern software development…]]></description>
			<content:encoded><![CDATA[<!--Unit-testing-15.46.26--><!--Unit-testing-15.47.41-1024x359--><p style="text-align: center;"><a rel="attachment wp-att-6401" href="http://www.linuxuser.co.uk/features/the-art-of-unit-testing-explained/attachment/unit-testing-15-46-26/"><img class="aligncenter size-full wp-image-6401" title="Unit testing 15.46.26" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/10/Unit-testing-15.46.26.png" alt="The art of unit testing explained" width="460" height="456" /></a></p>
<p>Software development and testing are considered to be two sides of the same coin. It is not surprising to see that a lot of focus is given to the testing phase and this only ensures better quality, thereby enhancing the customer satisfaction. Software testing plays a significant role in the success of any project. In simple words, software testing can be defined as a process of verifying and validating that a software application or program meets the business and technical requirements that guided its design and development, and works as expected. It is this testing phase that identifies defects, flaws or errors that need to be fixed.</p>
<p>Software testing has three main purposes:</p>
<ol>
<li>Verification</li>
<li>Validation</li>
<li>Defect finding</li>
</ol>
<p>The verification process confirms that the software meets its technical specifications. A specification is a description of a function in terms of a measurable output value given a specific input value under<br />
specific preconditions.</p>
<p>The validation process confirms that the software meets the business requirements.  A defect is a variance between the expected and actual result. The defect’s ultimate source may be traced to a fault introduced in the specification, design, or development (coding) phases.</p>
<p>Software testing answers questions that development testing and code reviews can’t. Some of the questions answered by software testing are:</p>
<ol>
<li>Does it meet the users’ requirements?</li>
<li>Does it <em>really</em> work as expected?</li>
<li>How does it <em>scale</em> when more users are added?</li>
<li>What about its performance?</li>
<li>How does it <em>work</em> when more users are added?</li>
<li>Is it ready for release?</li>
</ol>
<p>When we are able to find answers to the above questions, it saves time and money by identifying defects early. It also reduces development downtime. We will be able to provide better customer service by delivering a better application. And the important thing is that it will help us to identify the areas where our programmers need trainings.</p>
<p>The value of software testing is that it goes far beyond testing the underlying code. It also examines the functional behaviour of the application. Behaviour is a function of the code, but it doesn’t always follow that if the behaviour is bad then the code is bad. It’s entirely possible that the code is solid, but the requirements were inaccurately or incompletely collected and communicated. It’s entirely possible that the application can be doing exactly what we’re telling it to do, but we’re not telling it to do the right thing. It is important to understand that the testing provides an opportunity to validate and verify things like the assumptions that went into the requirements, the appropriateness of the systems that the application is to run on etc.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p>The V-model has gained acceptance because of its simplicity and straightforwardness. If you look at the pictorial representation of V-model, the first test level is unit testing. It is also known as component testing. Unit testing can be considered as a method by which individual units are tested to see whether they are functioning as expected. Unit testing is typically done by software developers, as they are the only ones who understand how a specific unit or module works.</p>
<p>The problem with testing a unit is that it performs only a small part of the functionality of a system, and it relies on co-operating with other parts of the system which may not have been built yet. To overcome this, the developer either builds or uses special software to trick the component into believing it is working in a fully functional system.</p>
<p style="text-align: center;"><a rel="attachment wp-att-6399" href="http://www.linuxuser.co.uk/features/the-art-of-unit-testing-explained/attachment/unit-testing-15-47-41/"><img class="aligncenter size-large wp-image-6399" title="Unit testing 15.47.41" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/10/Unit-testing-15.47.41-1024x359.png" alt="The art of unit testing explained" width="614" height="215" /></a></p>
<p>The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. Unit testing allows the programmer to refactor code at a later date. This will help in making sure the module still works correctly. It also simplifies integration testing – unit testing helps to eliminate uncertainty in the units themselves. By testing the parts of a program first and then testing the sum of its parts, integration testing becomes much easier.</p>
<p>In unit testing, a series of standalone tests are conducted. Each test examines an individual module that is new or has been modified. Each test validates a single module that, based on the technical design documents, was built to perform a certain task with the expectation that it will behave in a specific way or produce specific results.</p>
<p>Generally, unit tests focus on functionality and reliability, and the entry and exit criteria can be the same for each module or specific to a particular module. Unit testing is done in a test environment prior to system integration. If a defect is discovered during a unit test, the severity of the defect will determine whether or not it will be fixed before the module is approved. In summary, unit tests help developers to reduce the number of bugs, hours spent on debugging, and thereby contributing to more stable software.</p>
<p><a href="http://www.linuxuser.co.uk/features/the-art-of-unit-testing-explained/2/">Continue to the next page</a></p>
<p><a class="twitter-follow-button" href="http://twitter.com/LinuxUserMag">Follow @LinuxUserMag</a><br />
<script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/features/the-art-of-unit-testing-explained/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Take your Linux PC back to the future!</title>
		<link>http://www.linuxuser.co.uk/tutorials/take-your-linux-pc-back-to-the-future/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/take-your-linux-pc-back-to-the-future/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 15:33:28 +0000</pubDate>
		<dc:creator>RussellBarnes</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=6340</guid>
		<description><![CDATA[Take your PC back to 1985 with a cool selection of tools and tricks that build a fully functioning desktop computer on the console! ]]></description>
			<content:encoded><![CDATA[<!--desktop1-1024x624--><p>There are many reasons to use the console. Sometimes you need to run on older hardware. Or you may be stuck running remotely over a slow connection, where using an X11 desktop is just painfully slow. There are lots of articles that describe the tools and utilities available for the console.</p>
<p>But how do you use them all together? This tutorial will look at one way that you can combine all of these programs together to give you a fully functional desktop. You’ll essentially end up with a console desktop where you can check email, surf the web, chat with people, catch up on the news, and more. We’ll use tmux to organise your desktop and make the most of your screen real estate.</p>
<p>Email will handled by Mutt; web browsing by ELinks. The great thing is that there are multiple options for many of the tasks you may wish to do. So these should only be taken as examples. You can replace any of these utilities with your favourite versions. You should end up with a desktop that you’d be proud to use in 1985. Note: For easier screen grabbing we took the grabs for this article in X11, running these apps from an xterm window.</p>
<p style="text-align: center;"><a rel="attachment wp-att-6357" href="http://www.linuxuser.co.uk/tutorials/take-your-linux-pc-back-to-the-future/attachment/desktop1/"><img class="aligncenter size-large wp-image-6357" title="desktop1" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/10/desktop1-1024x624.png" alt="Take your Linux PC back to the future!" width="614" height="374" /></a></p>
<p><strong>Setting up your console</strong><br />
The first step is setting up your console. You can set the colours used by setting escape characters. You can set the fonts you want to use with the command ‘<em>setfont</em>’. In Ubuntu, the fonts available are located in <em>/usr/share/consolefonts</em>. Most simply, you can run ‘<em>setfont fontname</em>’ to set some other font dynamically. If you want to see all of the characters available in the font you selected, you can use ‘<em>showconsole</em>’. When you are ready to set this new font as your default on login, set the environment variable ‘<em>CONSOLE_FONT</em>’ in the file <em>/etc/kbd/config</em>.</p>
<p><strong>Monitoring your machine</strong><br />
One of the classic tools for monitoring your machine is Conky. You can also use Conky on the console. An example configuration would be:</p>
<pre>out_to_x no
out_to_console yes
total_run_times 1
TEXT
${time %H:%M}|free space:${fs_free /}|$loadavg|free mem:$memeasyfree</pre>
<p>You could place this in a file called .<em>conkyintmux</em> in your home directory. Then you can tell tmux to use this as its status line with the line:</p>
<pre>set-option -g status-right “#(conky -c ~/.conkyintmux)”</pre>
<p>in your tmux configuration file.</p>
<p><strong>File management</strong><br />
People who are old enough to remember the days of DOS will likely remember Norton Commander. There is an open source version called Midnight Commander. This utility provides all of the file management tools that you will ever need. By executing ‘mc’, you will have a two-pane display of your file system, and can move, view and edit files at the touch of a key.</p>
<p><strong>Web browsing</strong><br />
Some of the options available include Lynx, w3m, Links, Links2 and ELinks. You can even surf the web using Emacs. Links2 has the added ability to display graphics using the frame buffer or SVGA driver, among many others. It can also handle frames and tables correctly. So, for that reason, we’ll use it here. If you do want to use it in a non-text mode, you will have to switch to a new virtual console (usually by pressing <em>Alt+Fn</em>, where n is a number). You may also need to check into permissions to access the graphics device. A very quick fix if this is an issue is to run <em>Links2</em> under sudo.</p>
<p><strong>Getting your daily tasks</strong><br />
Many people use Google Calendar to organise their lives. Google has released a console-based tool called gcalcli which allows you to interact with your Google Calendars. There are several options available to add new appointments, or query and display your current appointments in lots of interesting ways. One possibility is to show what your next appointment is in your tmux status line, with:</p>
<pre>set-option -g status-interval 60
set-option -g status-left “#[fg-blue,bright]#(gcalcli --user ‘username’ --pw ‘password’ agenda | head -2 | tail -1)#[default]”</pre>
<p>This will update every 60 minutes.</p>
<p><strong>Keeping up with news</strong><br />
Many people get their daily dose of news through RSS feeds. The options on the console include Snownews and Canto. Here we’ll use newsbeuter. It has been described as the Mutt of RSS feed readers. The URLs of your feeds are stored in the file <em>~/.newsbeuter/urls</em>. You can either enter them manually, one per line, or you can import an OPML file that you got from some other news-reading program. You would do this with:</p>
<pre>newsbeuter -i import.opml</pre>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p>Once it is up and running, it really does look like Mutt for RSS feeds.</p>
<p><strong>Email, the Mutt way</strong><br />
Mutt is one of the more popular email clients out there. It supports local mail delivery, so you could use something like Fetchmail to go out and collect your email and deliver it locally on your machine. Mutt also supports IMAP connections, so you can use it to check your email directly if you have an external email server. This comes in handy for all the people who use Gmail to handle their email needs. You set it up in the configuration file .muttrc in your home directory. To receive mail, you would set the following options:</p>
<pre>set from = “yourusername@gmail.com”
set realname = “Your Real Name”
set imap_user=”your.email@gmail.com”
set imap_pass=”yourpassword”
set folder=”imaps://imap.gmail.com:993”
set spoolfile=”+INBOX”
set postponed=”+[Gmail]/Drafts”
set trash=”imaps://imap.gmail.com/[Gmail]/Trash”
set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates</pre>
<p>You will also need to create the following directories in your home directory:</p>
<pre>mkdir ~/.mutt
mkdir ~/.mutt/cache</pre>
<p>You can also send your email through the SMTP server at Gmail with Mutt. To do this, you will need to set the following options:</p>
<pre>set smtp_url=”smtp://your.email@smtp.gmail.com:587”
set smtp_pass=”yourpassword”</pre>
<p><strong>Chatting on the console</strong><br />
There are several chat programs available for the console. The one we’ll look at here is CenterIM. It supports ICQ, Yahoo! chat, AIM, IRC, Jabber, LiveJournal, gadu-gadu and MSN. Configuration can be handled with menus from within the program. It is broken up into a nice set of panels with contacts on the left and your message window on the right. This is all configurable, too.</p>
<p><strong>Twittering on the console</strong><br />
There are a handful of applications that let you tweet from the console. Twidge is one of them. With it, you can check on tweet timelines, send tweets, add and remove users to your follow list, and get a list of recent tweets from those that you follow. You will need to authorise twidge so that it will have access to your Twitter account. Once you do that, you can start interacting through commands. To send a tweet, you would use:</p>
<pre>twidge update “Trying out twidge from the console”</pre>
<p>Your tweet needs to be no more than 140 characters, and needs to be quoted so that the shell treats it like a single object to hand in to twidge. To check the recent activity, you can simply use:</p>
<pre>twidge lsrecent</pre>
<p>As a repeating display, you can use:</p>
<pre>while true; do twidge lsrecent | head -n 10; sleep 60; clear; done</pre>
<p>This will print out the top ten lines of your feed, refreshing every 60 seconds. You can go ahead and change the number of lines and/or the refresh time easily.</p>
<p><strong>Setting up screen estate with tmux</strong><br />
Tmux is kind of like a next-generation GNU Screen. It not only allows you to multiplex a single console, but it also lets you divide your console display into multiple windows. You can interact with tmux by pressing <em>Ctrl+b</em> and a command. For example, to create a new window would require ‘Ctrl+b c’. Each window can be broken down into several panes. You can navigate the windows with <em>‘Ctrl+b n’</em> (next window) and <em>‘Ctrl+b p’</em> (previous window). You can navigate panes with <em>‘Ctrl+b o’</em> (select the next pane in the current window).</p>
<p>The real power comes in the ability to script everything. There is a complete command language available. You can set all of the windows and panes, and all of the applications to be started in each window/pane, in the file <em>.tmux.conf</em> in your home directory.</p>
<p><strong>Scripting tmux</strong><br />
Now we will pull the whole thing together by letting tmux script it all together. One starting point could be:</p>
<pre>new -s TmuxDesk “links2 http://www.google.com”
splitw -t TmuxDesk:0 “centerim”
select-layout tiled
splitw -t TmuxDesk:0 “mutt”
select-layout tiled
splitw -t TmuxDesk “mc”
select-layout tiled
splitw -t TmuxDesk “while true; do twidge lsrecent | head -n 10; sleep 60; clear; done”
select-layout tiled
splitw -t TmuxDesk “newsbeuter”
select-layout tiled
set-option -g status-interval 60
set-option -g status-right ‘#(conky -c ~/.conkyintmux)’</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/take-your-linux-pc-back-to-the-future/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Use Wine to run Windows software on Linux</title>
		<link>http://www.linuxuser.co.uk/tutorials/use-wine-to-run-windows-software-on-linux/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/use-wine-to-run-windows-software-on-linux/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 13:42:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Wine]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=5936</guid>
		<description><![CDATA[Sometimes using Windows applications is unavoidable, so in this tutorial we will make use of Wine to show you how to run Windows applications seamlessly within Linux…
]]></description>
			<content:encoded><![CDATA[<!--Wine-versus-1024x392--><!--WineInAction-300x167--><p>Even though the Linux software catalogue is huge, there are times when you may feel that you are missing an application that is otherwise available on Windows. There could be many reasons behind why you want that exact application. Probably the most common is that support for a particular file format or an application used at work is simply not available for Linux. Thankfully, there are many ways by which you can use a Windows app on your Linux system. Here’s a quick breakdown of some of the most popular methods…</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-5938" title="Wine versus" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/08/Wine-versus-1024x392.png" alt="Use Wine to run Windows software on Linux" width="614" height="235" /></p>
<p><strong>Dual booting: </strong>In this method you will need to create a separate partition and install Windows on it. Then whenever you need to run a Windows application you will need to restart your system, then boot into Windows and use the app. This method is only recommended for an intermediate audience who are comfortable with partitioning their hard drives. It also requires that you have a large amount of disk space at<br />
your disposal.<br />
<strong>Virtual machine: </strong>In this scenario you will need to install a virtualisation program such as VMware Workstation or VirtualBox on your Linux system, then install Windows as a virtual machine. You can the use this virtual machine to run Windows applications without rebooting your system. However, using virtual machines requires a considerable amount of system resources in terms of RAM, CPU and disk space as the virtual machine needs to run a fully fledged operating system within another operating system simultaneously.<br />
<strong>Using Wine: </strong>Wine lets you run Windows applications without rebooting or virtualisation. In this tutorial we will be using Wine to run Windows applications on a Linux system.</p>
<p><strong>Introducing the world of Wine</strong><br />
Wine (a recursive acronym for Wine Is Not an Emulator) is a translation layer (or a program loader) capable of running Windows applications on Linux and similar other POSIX-compatible operating systems. Wine does not emulate Windows applications on Linux – instead it provides alternative implementations of DLLs  that a typical Windows application calls and a process substitute for the Windows NT kernel. Wine is made of 100 per cent Microsoft-free code.<br />
Wine supports a large number of applications, but not all are supported equally. You can visit the Wine Application Database (AppDB, http://appdb.winehq.org) to see how well your favourite Windows application works with Wine. AppDB is maintained by the community and you can also add your own discoveries. AppDB defines the following type of ratings…</p>
<p><strong>Platinum: </strong>An application can be rated as Platinum if it installs and runs flawlessly ‘out of the box’. No changes are required in Wine configuration files.<br />
<strong>Gold: </strong>Application works flawlessly with some DLL overrides, other settings or third-party software.<br />
<strong>Silver: </strong>Application works excellently for ‘normal’ use. For example, a game works fine in single-player but not in multiplayer; Windows Media Player works fine as a plug-in and standalone player, but cannot handle DRM etc.<br />
<strong>Bronze: </strong>The application works, but it has some issues, even for normal use. For example, a game may not redraw properly or display fonts in wrong colours, be much slower than it should etc.<br />
<strong>Garbage: </strong>An application gets this rating if it cannot be used for the purpose it was designed for. If so, there should be at least one bug report in Bugzilla. The application cannot be installed, does not start, or starts but has so many errors that it is nearly impossible to use it.</p>
<figure id="attachment_5945" class="wp-caption aligncenter"><img class="size-medium wp-image-5945" title="WineInAction" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/08/WineInAction-300x167.jpg" alt="Use Wine to run Windows software on Linux" width="300" height="167" /><figcaption>In this guide we&#39;re demonstrating Wine with Microsoft Office</figcaption></figure>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p><strong>01 Installing Wine</strong><br />
Wine is available for all popular UNIXes, including Ubuntu, Debian, Red Hat, SUSE, Mandriva, FreeBSD, Solaris and Mac OS X.</p>
<p><strong><a href="http://www.linuxuser.co.uk/tutorials/use-wine-to-run-windows-software-on-linux/2/" target="_self">Continue to page 2</a> to see how to install Wine within Ubuntu…</strong></p>
<p><a href="http://twitter.com/LinuxUserMag" class="twitter-follow-button" data-show-count="false">Follow @LinuxUserMag</a><br />
<script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/use-wine-to-run-windows-software-on-linux/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How to install a new ROM on your Android smartphone</title>
		<link>http://www.linuxuser.co.uk/tutorials/how-to-install-a-new-rom-on-your-andoid-smartphone/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/how-to-install-a-new-rom-on-your-andoid-smartphone/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 10:03:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Android Magazine]]></category>
		<category><![CDATA[ROM]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=5913</guid>
		<description><![CDATA[You might have read or heard people talking about custom ROMs they have installed on their Android devices. Here's how to do it quickly and safely…]]></description>
			<content:encoded><![CDATA[<!--Android_01_Small-PORTRAIT-200x150--><!--hacker_zone--><p style="text-align: center;">This article is dedicated to the launch of <a href="HTTP://www.littlegreenrobot.co.uk" target="_blank">Android Magazine</a>, the world&#8217;s first monthly mag 100% dedicated to the little green robot.</p>
<p style="text-align: center;"><a href="http://www.littlegreenrobot.co.uk"><img class="aligncenter size-thumbnail wp-image-5906" title="Android_01_Small PORTRAIT" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/07/Android_01_Small-PORTRAIT-200x150.jpg" alt="How to install a new ROM on your Android smartphone" width="200" height="150" /></a></p>
<p>One of the main reasons people like to root their devices is to install a new or different version of the operating system. The open source nature of the OS means that it’s possible for anyone to view the code that makes up Android and then modify it as they see fit, in a similar way to which the Linux-based desktop operating systems work.</p>
<p>Custom ROMs can offer new features over the standard ones, allowing you to tailor your device to your needs. They also allow developers to port other manufacturers’ interfaces to other device makes – for instance, HTC’s Sense UI onto Samsung phones – or to remove a heavily customised ROM altogether. Another reason is to hurry along the update process: you are no longer tied to waiting on the phone manufacturers and the mobile operators to push out the latest version of Android. Installing a new ROM is a relatively simple and quick process thanks to the ROM Manager app which can be downloaded for free from the Android Market.</p>
<p>First of all you need to root your phone and there are a few methods for doing so. Some of  the most popular are: SuperOneClick, Universal Androot and Z4Root. Check  the compatibility with your particular device before attempting to gain  root access. Here&#8217;s how we&#8217;ll do it:</p>
<p><strong>1) </strong>For this example we’ll use Z4 Root. Download it from <a href="http://bit.ly/qpr9Pt" target="_blank">here</a>, as it isn’t available on the Market. You will need to register first. Now, copy the .apk file you’ve downloaded to your SD card and then install using an app such as ‘Easy Installer’ or by clicking on the apk in your favourite file manager.</p>
<p><strong>2) </strong>Open Z4Root and in the centre you will see a button saying ‘Root’. Click on the button and wait for a short while, for the process to complete; the progress is shown in the bottom bar. After it has finished, the phone will reboot. You now have root access!</p>
<p>Once you’ve rooted your phone, ROM Manager makes backing up, installing a custom recovery and downloading the new one a breeze – and will even enable you to restore your original ROM if you prefer! This tutorial will take you through the process step by step and help you on the way to a fresh new experience with your phone…</p>
<p><strong>Installing ROM Manager</strong><br />
First off, you will need to install the ROM Manager app. The good news its that it’s a free one (although there is a premium version that offers more features). Open up the Android Market from your apps list and search for ‘ROM Manager’, then click the icon and install.</p>
<p><strong>Install Clockwork Recovery</strong><br />
When you rooted your Android device, it’s quite likely that at the same time you installed a piece of ‘custom recovery’ software. ROM Manager will check that you have this installed and that you have the latest version that’s available.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p><strong>Backup your ROM</strong><br />
Open up ROM Manager, click on the Backup Current ROM button, give the backup a name (perhaps something like ‘Standard ROM Backup’) and then click OK. You might be asked to allow ROM Manager superuser access and you’ll need to grant this.  The phone will now automatically reboot into recovery mode. The backup process can take a little while, so make sure you aren’t expecting any important calls! The recovery backs up your current ROM to the microSD card, so it’s important not to format this.</p>
<p><strong>Choose your ROM</strong><br />
Back in ROM Manager, click ‘Download ROM’. This will bring up a list of available ROMs for your device. In this example we will install CyanogenMod 7, one of the most popular custom versions of<br />
Android due to its stability and wide device support.</p>
<p><strong>Download the ROM</strong><br />
Choose the CyanogenMod version you wish to download – the latest version at time of writing is 7.1.0-RC. It’s strongly advisable to stay away from the ‘Nightly’ builds, as these are largely experimental. Google apps don’t come as standard, so click to download them.</p>
<p><strong>Installing the ROM<br />
</strong>Once the ROM and Google Apps have finished downloading, reopen ROM Manager and you will see the ROM pre-installation screen. Tick the ‘Wipe Dalvik’ and ‘Wipe Data and Cache’ boxes. Click OK and<br />
the phone will now reboot into recovery again. The new ROM will now install. This might take a little while. Once complete, the phone will reboot again. The first boot of any new ROM can take a while, sometimes up to 15 minutes, so be patient and don’t panic if the device appears to have frozen.</p>
<p><strong>Setup your Google Account</strong><br />
Once the phone has booted up, you will then be prompted to enter your Google account details. Doing this will automatically download and set up all your contacts, settings and apps back onto the phone. You now have a brand new ROM to explore!</p>
<p><strong>(Optional) Battery Calibration</strong><br />
Plug in your Android device while it’s on and let it charge fully. Disconnect and turn off, then reconnect the power cable and wait until the LED goes green. Disconnect and turn back on, turn off again and reconnect the charger until the LED goes green again.</p>
<p><strong>Below is a sample of <a href="http://www.littlegreenrobot.co.uk/" target="_blank">Android Magazine</a>&#8216;s Hacker Zone &#8211; a section of the mag dedicated to tweaking and modding your Android devices. Follow Android Magazine on <a href="http://www.facebook.com/littlegreenrobot" target="_blank">Facebook</a> and <a href="https://twitter.com/#!/lgrobot" target="_blank">Twitter</a>…</strong></p>
<p style="text-align: center;"><img class="size-full wp-image-5904 aligncenter" title="How to install a new ROM on your Android smartphone" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/07/hacker_zone.jpg" alt="How to install a new ROM on your Android smartphone" width="480" height="310" /></p>
<p style="text-align: left;"><strong>Disclaimer</strong><br />
Rooting your phone and installing ROMs on your device may void your manufacturer warranty. You undertake the procedure outlined in this tutorial at your own risk. Linux User &amp; Developer, Android Magazine and Imagine Publishing Ltd. cannot be held responsible for loss of data or damage to your device.</p>
<p style="text-align: left;"><strong>Words by: Kieron Howard</strong></p>
<p><a href="http://twitter.com/LinuxUserMag" class="twitter-follow-button" data-show-count="false">Follow @LinuxUserMag</a><br />
<script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/how-to-install-a-new-rom-on-your-andoid-smartphone/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google+: Extract your contacts from Facebook using Open-Xchange</title>
		<link>http://www.linuxuser.co.uk/news/google-extract-your-contacts-from-facebook-using-open-xchange/</link>
		<comments>http://www.linuxuser.co.uk/news/google-extract-your-contacts-from-facebook-using-open-xchange/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 12:26:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[contacts]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[open-Xchange]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=5839</guid>
		<description><![CDATA[Google’s New Facebook Alternative Sparks Personal Data Liberation War. Along with the latest news on the matter, you'll find a hot-off-the-press step-by-step guide to extracting your friends' information from Facebook using Open-Xchange. Now, get out there and enjoy this new found liberation. And by all means, go forth and enjoy YOUR data.]]></description>
			<content:encoded><![CDATA[<!--googledlf-200x150--><!--open-xchange-rafael-laguna-200x150--><p>Few of our readers will need telling about Google’s new Facebook alternative. However, the launch of the Google+ has also sparked a war of ideologies within the personal data space. With the new social network being widely pillored for simply offering an identical service to Facebook, just not from Facebook, it appears data freedom is being used as Google’s key differentiator.</p>
<figure id="attachment_5842" class="wp-caption alignleft"><img class="size-thumbnail wp-image-5842" title="googledlf" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/07/googledlf-200x150.jpg" alt="Google+: Extract your contacts from Facebook using Open-Xchange" width="200" height="150" /><figcaption>Battle Hardened - Google’s Data Liberation Front </figcaption></figure>
<p>Alongside building Google+, a team headed by Subversion developer Brian Fitzpatrick has been working on Google Takeout, a set of tools, which simplify mass export of data from multiple Google products in one go. The development team, which calls itself ‘The Data Liberation Front’, was started by Google four years ago on the basis of CEO Eric Schmidt’s stance:</p>
<p>“How do you be big without being evil?  We don&#8217;t trap end users. So if you don&#8217;t like Google, if for whatever reason we do a bad job for you, we make it easy for you to move to our competitor.”</p>
<p>Google’s stance stands in stark contrast to Facebook, who have begun blocking the popular Facebook Friend Exporter tool. Friend Exporter is a free extension for Chrome, developed by open source enthusiast and Chromium committer Moralfhammed Mansour. The tool was developed last year to let people export their friends’ email addresses, phone numbers and other details as a text file or directly into Gmail in order to allow direct communication outside of Facebook. However, with Google+ presenting a very real threat of mass exodus and a spike in usage, Facebook has now blocked the extension.</p>
<p><em>“Facebook just removed the emails from their mobile site. They implemented a throttling mechanism that if you visit your ~5 friends in a short period of time, it will remove the email field,” commented Mansour on his Google+ page. “</em>No worries, a new version is in the making &#8230; I am bloody annoyed now, because this proves Facebook owns every user’s data on Facebook. You don&#8217;t own anything! If I were you, I would riot this to the media outlets again<em>.”</em></p>
<p>Mansour is not the only person working to liberate your data from Facebook. Open source email and communications software provider OpenXchange are also developing a dedicated Facebook export function for their Social OX module.</p>
<figure id="attachment_5840" class="wp-caption alignright"><img class="size-thumbnail wp-image-5840" title="open-xchange-rafael-laguna" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/07/open-xchange-rafael-laguna-200x150.jpg" alt="Google+: Extract your contacts from Facebook using Open-Xchange" width="200" height="150" /><figcaption>Open-Xchange CEO Rafael Laguna</figcaption></figure>
<p>SocialOX is a set of features in Open-Xchange to centralise management of personal information distributed across different systems and services, like address data on Xing or LinkedIn, birthdays on Facebook, various brands of calendar software like Google, Exchange or Lotus.</p>
<p>We contacted Open-Xchange CEO Rafael Laguna, who tells us that the SocialOX tool and, in particular, the Facebook export functionality is currently in beta, requiring a somewhat labourious seven step process. However, he kindly provided us with this basic tutorial:</p>
<p><strong>That’s it: OX.IO to the rescue. Your contact data that you desire, all in one spot…</strong><br />
This newly &#8220;merged&#8221; address book can then be exported as vCard and imported into whatever you like making your magic address book available wherever you like &#8211; no questions asked &#8211; by no sugar mountain or paranoid android. :)</p>
<p>Ok, first, to be clear &#8212; this is still sort of geeky at the moment, so buyer beware (even though its free)…</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p><strong>1. </strong>Allow popups in your browser. Then go to <a href="https://www.ox.io/" target="_blank">ox.io</a></p>
<p><strong>2. </strong>Click on &#8220;Create Account&#8221; and do so</p>
<p><strong>3. </strong>Click on the link you received in your Email &#8211; you&#8217;ll be logged into your private OX account immediately.</p>
<p><strong>4. </strong>Click cancel on the Wizard screen, you may go back there later from the help menu, instead go to the Mail View (click on the envelope in the top left corner) and click on the “Add Email account…” and add at least that account that you use for communications with the people from your network. NOTE: Your email account must be IMAP – not POP, or it won’t work. Also, your Open-Xchange account will not copy and emails, it just makes that account available inside the Web UI.</p>
<p><strong>5. </strong>Optional: Add more Email accounts (must be IMAP). The more Email your Open-Xchange user can harvest for Email addresses and names the more it can overcome the limitations of the API&#8217;s.</p>
<p><strong>6. </strong>Now we will import your networks and address books. If you only want to import Facebook skip to step 7, otherwise use the import wizard first. Go to “Help (the “?” on the top)-&gt;Wizard”. On page 2 you can select from many other services. Don’t do Facebook, this comes last. The more the better.</p>
<p><strong>7. </strong>Go to the contacts view (the black figure icon), click on the “Import facebook contacts” button. Click the “—or create a fresh one for your profile” oAuth Account button to allow access of Open-Xchange to your Facebook account. Press “Start” when done.</p>
<p>This will run a while. For each email account we go through each mail folder and use the first 6000 Emails to look for contacts. The more Emails we parse the more of your Facebook friends contacts will have this data. Go do something else and come back later…</p>
<p>At the end of the process the download of the newly merged super address list will start. Import to your liking, in Apple iCal, Gmail/G+, Facebook, Outlook, whatever you like. The data is also in the newly created “Facebook” address book for more exporting or playing pleasure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/news/google-extract-your-contacts-from-facebook-using-open-xchange/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Firefox 4 Sync step-by-step</title>
		<link>http://www.linuxuser.co.uk/tutorials/firefox-4-sync-step-by-step/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/firefox-4-sync-step-by-step/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 10:53:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[firefox 4]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[step-by-step]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=5199</guid>
		<description><![CDATA[Firefox 4's brand new Sync feature is one of the main attractions of the latest release. It allows you to sync browser data, such as bookmarks, preferences, history, and tabs – but not extensions – across multiple Firefox installations. Here's how it's done...
]]></description>
			<content:encoded><![CDATA[<!--Sync_1-1024x815--><!--Sync_2-1024x815--><!--Sync_3-1024x854--><!--Sync_4-1024x854--><p style="text-align: center;"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2011/03/Sync_1.png" rel="lightbox[5199]"><img class="aligncenter size-large wp-image-5203" title="Sync_1" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/03/Sync_1-1024x815.png" alt="Firefox 4 Sync step-by-step" width="614" height="489" /></a></p>
<p><strong>01 Setting up Sync</strong><br />
Setting up the Sync feature from scratch is a cinch. Choose Tools&gt;Set Up Sync, press the ‘Create a New Account’ button and fill in the required fields.</p>
<p style="text-align: center;"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2011/03/Sync_2.png" rel="lightbox[5199]"><img class="aligncenter size-large wp-image-5202" title="Sync_2" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/03/Sync_2-1024x815.png" alt="Firefox 4 Sync step-by-step" width="614" height="489" /></a></p>
<p><strong>02 Sync Options</strong><br />
If you don’t want to sync specific data (eg passwords), press the Sync Options button and disable the options you want.</p>
<p style="text-align: center;">

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p><strong><a href="http://www.linuxuser.co.uk/wp-content/uploads/2011/03/Sync_3.png" rel="lightbox[5199]"><img class="aligncenter size-large wp-image-5200" title="Sync_3" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/03/Sync_3-1024x854.png" alt="Firefox 4 Sync step-by-step" width="614" height="512" /></a></strong></p>
<p><strong>03 Adding a device</strong><br />
If you already have an account, press the Connect button to generate a unique code. On the primary machine (the one you used to create a Sync account), choose Edit&gt;Preferences&gt;Sync, click on the Add Device link and enter the provided code.</p>
<p style="text-align: center;"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2011/03/Sync_4.png" rel="lightbox[5199]"><img class="aligncenter size-large wp-image-5201" title="Sync_4" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/03/Sync_4-1024x854.png" alt="Firefox 4 Sync step-by-step" width="614" height="512" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/firefox-4-sync-step-by-step/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Arduino programming guide &#8211; part 1</title>
		<link>http://www.linuxuser.co.uk/tutorials/arduino-programming-guide-part-1/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/arduino-programming-guide-part-1/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 11:57:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[open hardware]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=4883</guid>
		<description><![CDATA[Gareth Halfacree shows us how to get started with programming for Arduino and open hardware by create an electronic music box. The first of our three part guide assumes no prior experience in either programming or developing with Arduino…
]]></description>
			<content:encoded><![CDATA[<!--buy_online--><!--Arduino-Pt1-01--><!--Arduino-Pt1-02-1024x662--><!--Arduino-Pt1-03-NEW-1024x577--><!--Arduino-pt1-04--><p><em>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-issue-95-is-out-now/ target=">issue 95</a> of <a href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a> magazine.<a href="http://www.imagineshop.co.uk/linuxuseranddeveloper/" target="_blank"><img class="size-full wp-image-2388 alignright" title="Arduino programming guide - part 1" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/buy_online.jpg" alt="Arduino programming guide - part 1" width="92" height="24" /></a> 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.</em></p>
<p><strong>Resources</strong><br />
<a href="http://oomlout.co.uk" target="_blank">Arduino Experimenter’s Starter Kit </a><br />
<a href="http://arduino.cc" target="_blank">Arduino IDE </a></p>
<p>The Arduino project is a hacker’s dream: originally designed as a way of getting students involved in microcontroller programming and electronic design, it offers a quick and easy route for programmers to take their skills out of the digital realm and into the physical.</p>
<p>Better yet, the Arduino’s plug and play nature and the C-based programming environment mean that it’s easy to get started, even if you lack experience in electronics.<br />
To prove it, this three-part project is going to walk you through building a simple Arduino music box, programming it with the Arduino IDE, integrating it with your PC, and finally adding a useful LCD display to your project.</p>
<p>As a completely open source project, Arduino programming goes well with Linux development, and all the code and hardware designs behind Arduino are freely available for tinkering.<br />
Before we can get started, we’ll want to install the Arduino development environment.  If you’re lucky enough to be running a version of Linux for which pre-packaged versions exist, it’s a simple case of downloading them from the Arduino website or installing directly from your distribution’s repositories. If not, there are a few steps we’ll have to go through before we can get started with building our first Arduino circuit.</p>
<p><strong>Installing the Arduino IDE</strong><br />
<strong>1. </strong>Grab the dependencies<br />
If you’re not using a pre-packaged version of the Arduino IDE, you’ll need to install certain dependencies. In Debian-based distributions, simply run:</p>
<pre class="brush: plain; title: ; notranslate">$ apt-get install openjdk-6-jre gcc-avr avr-libc avrdude binutils-avr</pre>
<p>For Fedora-based distributions, the dependency list is slightly different:</p>
<pre class="brush: plain; title: ; notranslate">$ yum install uisp java-1.6.0-openjdk avr-libc avr-gcc-c++ rxtx avrdude</pre>
<p><strong>2. </strong>Change group membership<br />
As the Arduino IDE requires access to the USB port to program the board, you’ll need to make sure that you’re a member of the right groups.  As root, change the group memberships as follows:</p>
<pre class="brush: plain; title: ; notranslate">$ usermod -a -G uucp,dialout,lock $USER</pre>
<p><strong>3.</strong>Install Arduino<br />
The easiest way to get the Arduino IDE running on your system in lieu of a suitable package is to download the pre-compiled binaries and extract them into your home directory:</p>
<pre class="brush: plain; title: ; notranslate">wget http://arduino.googlecode.com/files/arduino-0021.tgz</pre>
<p>If you’re running a different distribution, or if the steps outlined above don’t work for you, more detailed instruction are available on the <a href="http://www.arduino.cc/playground/Learning/Linux" target="_blank">Arduino Playground</a>.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p><strong><a href="http://www.linuxuser.co.uk/wp-content/uploads/2011/02/Arduino-Pt1-01.jpg" rel="lightbox[4883]"><img class="alignright size-full wp-image-4891" title="Arduino Pt1 01" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/02/Arduino-Pt1-01.jpg" alt="Arduino programming guide - part 1" width="322" height="490" /></a>Wiring up your first circuit</strong><br />
Before we get started writing our project in the Arduino IDE, we need to build the circuit.  For that, we’ll need our Arduino development board, a piezoelectric buzzer, some wire and a breadboard. If you’re using the Arduino ARDX Kit from Oomlout, then you’ve already got all the parts required. The Arduino board features multiple pins, some of which are capable of acting as analogue inputs for sensors while others can act as pseudo-analogue outputs thanks to a technique known as ‘pulse width modulation’.</p>
<p>For our simple starter project, however, we’re only going to use a single digital output pin.</p>
<p><strong>4. </strong>Connect the piezoelectric buzzer to Pin 8<br />
Our program is going to control the buzzer through Pin 8, one of the Arduino’s digital output pins.  Before that can happen, we need to connect the buzzer to the output pin on the breadboard (Fig 1).  If you’re using wire instead of a breadboard, just connect the positive wire directly to the pin.</p>
<p style="text-align: center;"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2011/02/Arduino-Pt1-02.jpg" rel="lightbox[4883]"><img class="aligncenter size-large wp-image-4890" title="Arduino Pt1 02" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/02/Arduino-Pt1-02-1024x662.jpg" alt="Arduino programming guide - part 1" width="368" height="238" /></a></p>
<p><strong>5. </strong>Connect the piezoelectric buzzer to the Ground Pin<br />
Before we can use the buzzer, it needs to have a path to ground in order to complete the circuit.  Thankfully, the Arduino includes a ground pin that we can connect directly into (Fig 2).</p>
<p><strong>6. </strong>Check your circuit<br />
The finished circuit should connect the buzzer to the Arduino, and look something like Fig 3. Double-check that the wires lead to the same row as the buzzer’s pins, as it’s easy to miss.</p>
<p style="text-align: center;"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2011/02/Arduino-Pt1-03-NEW.jpg" rel="lightbox[4883]"><img class="aligncenter size-large wp-image-4926" title="Arduino Pt1 03 NEW" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/02/Arduino-Pt1-03-NEW-1024x577.jpg" alt="Arduino programming guide - part 1" width="614" height="346" /></a></p>
<p><strong>Programming the music box</strong><br />
As it stands at the moment, we’ve got a simple circuit that doesn’t do anything.  In order to make our collection of components become the electronic music box that we originally envisaged, we need to tell the microcontroller at the heart of the Arduino exactly what we have plugged into it and how we want it to operate the components.</p>
<p>Thankfully, the processing-based Arduino IDE makes this easy.  The complexities of coding for a microcontroller are abstracted away thanks to a library called Wiring, which allows you to address each pin of the microcontroller in a simple manner. Anyone familiar with the C programming language will feel immediately at home writing for the Arduino, but there are some ‘gotchas’ that can trap the unwary. An Arduino program is known as a ‘Sketch,’ and to make our simple music box we’re going to load one of the example Sketches to customise rather than reinventing the wheel.</p>
<p><strong>7. </strong>Load the sample Sketch<br />
After loading the IDE, you can find the Sketch we want – written for the Arduino project  by Tom Igoe back in January – under:<br />
<em>File&gt;Examples&gt;Digital&gt;toneMelody</em><br />
This Sketch contains an included header file, called ‘pitches.h’, which will also load automatically (Fig 4).</p>
<figure id="attachment_4929" class="wp-caption aligncenter"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2011/02/Arduino-pt1-04.jpg" rel="lightbox[4883]"><img class="size-full wp-image-4929" title="Arduino pt1 04" src="http://www.linuxuser.co.uk/wp-content/uploads/2011/02/Arduino-pt1-04.jpg" alt="Arduino programming guide - part 1" width="348" height="272" /></a><figcaption>Load the sample toneMeloyd Sketech to customise</figcaption></figure>
<p><strong>8. </strong>The empty loop<br />
Usually the meat of a Sketch can be found in the loop section, which runs continuously while power is applied to the Arduino. Because a constantly repeating tune would be annoying, you’ll notice that this section is empty in our sample program.</p>
<pre class="brush: plain; title: ; notranslate">void loop() {
  // no need to repeat the melody.
}
</pre>
<h3 style="text-align: center;">Continue to: <a href="http://www.linuxuser.co.uk/tutorials/arduino-programming-guide-part-1/2" target="_self">Page 2 &#8211; The setup</a></h3>
<p style="text-align: center;"><a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=ACGLUD&amp;utm_source=Internal&amp;utm_medium=House%2BAd&amp;utm_content=MPU&amp;utm_campaign=Linux%2BUser%2B3%2Bfor%2B%C2%A31" target="_self">Linux User &amp; Developer is the magazine for the GNU Generation<br />
Click here to try 3 issues for £1</a></p>
<p><a href="http://www.linuxuser.co.uk" target="_self">Return to the homepage</a><br />
<a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-issue-96-is-out-now/" target="_self">See what features in our latest issue</a></p>
<p style="text-align: center;"><a href="http://twitter.com/LinuxUserMag" target="_blank">
                <img src="http://www.linuxuser.co.uk/wp-content/themes/linuxuser"/images/twitter_follow.png" width="160" height="60" border="2" alt="twitter follow us" />
            </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/arduino-programming-guide-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Replacing Microsoft Exchange Server with an open source alternative</title>
		<link>http://www.linuxuser.co.uk/tutorials/replacing-microsoft-exchange-server-with-an-open-source-alternative/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/replacing-microsoft-exchange-server-with-an-open-source-alternative/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 14:50:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Zimbra Collaboration Suite]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=4669</guid>
		<description><![CDATA[Zimbra is the first enterprise-grade open source alternative for Microsoft Exchange Server. Read on to find out how to set up your own open source collaboration and email server and finally wave goodbye to Microsoft Exchange...
]]></description>
			<content:encoded><![CDATA[<!--buy_online--><p><em>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-94-is-out-now/ target=">issue 94</a> of <a href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a> magazine.<a href="http://www.imagineshop.co.uk/linuxuseranddeveloper/" target="_blank"><img class="size-full wp-image-2388 alignright" title="Replacing Microsoft Exchange Server with an open source alternative" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/buy_online.jpg" alt="Replacing Microsoft Exchange Server with an open source alternative" width="92" height="24" /></a> 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.</em></p>
<p>Email and collaboration servers are vital to any organisation, whether small or medium in size. ‘Collaboration services’ is an umbrella term used to refer to services which help people inside an organisation to communication. These services include email, calendars, chat etc. Traditionally organisations used to pay hefty licence fees for Microsoft Exchange Server to enable these services – not to mention the vendor lock and the ecosystem lock that come as part of Exchange. Vendor lock means only Microsoft will be able to support Exchange and it decides when the licence support goes away. Ecosystem lock means it only runs on Windows servers and the client support is partial towards Microsoft-based clients only.</p>
<p>Meet Zimbra, an open source collaboration server which provides support for services like email, calendars, wiki, web, instant messaging etc. Zimbra Open Source Edition is completely free and can even be compiled on your own if you like. Like many other open source packages (such as Red Hat Linux), Zimbra also maintains commercial versions of its software with extra features such as Microsoft Outlook support, iPhone sync support, clustering and high-availability support, and technical support.  This tutorial covers Zimbra Open Source Edition.</p>
<p><strong>Please Note</strong><br />
The following changes can alter your system behaviour. Therefore it is recommended that you use a test machine or better yet a virtual machine (using VMware workstation or VirtualBox) to test out these steps. Proceed with caution if you are using your main machine for this tutorial. If you are performing these steps on a virtual machine, make sure that you are using the ‘Bridged Networking’ mode. This will enable the virtual machine to participate directly on the network as if it were a physical machine.</p>
<p><strong>Resources<br />
</strong>Ubuntu 10.04 LTS 64-bit (Server version is supported, desktop version will also work but not supported by Zimbra.) This tutorial uses Ubuntu 10.04 LTS Desktop System.</p>
<p><strong>sysstat: </strong>this is a collection of tools for system monitoring:</p>
<pre class="brush: bash; title: ; notranslate">$ sudo apt-get install sysstat</pre>
<p><strong>BIND DNS server: </strong>BIND is a DNS server package. This is required to install a DNS server on our Ubuntu box:</p>
<pre class="brush: bash; title: ; notranslate">$ sudo apt-get install bind9</pre>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p><strong>Network information: </strong>You should have the following information handy about your network. The following lists the required information and the assumed values for this tutorial…</p>
<pre class="brush: bash; title: ; notranslate">Local IP Address: 192.168.1.34
Netmask : 255.255.255.0
DNS Server (Private): 192.168.1.34 (Same as the local IP address, as we will be installing a DNS server on the same machine)
Gateway: 192.168.1.1 (Internet gateway, or the Router IP address)
DNS Server (Public): 8.8.8.8 (Google Public DNS Server)
Hostname: ludzserver
Fully qualified hostname: ludzserver.lud.com
Domain name: lud.com</pre>
<p><strong>Zimbra Open Source Edition installer:</strong> Download the Zimbra Open Source Edition <a href="http://www.zimbra.com/downloads/os-downloads.html" target="_blank">here</a>. For this tutorial we are using file <a href="http://files2.zimbra.com/downloads/6.0.8_GA/zcs-6.0.8_GA_2661.UBUNTU8_64.20100820044710.tgz" target="_blank">zcs-6.0.8_GA_2661.UBUNTU10_64.20100820044159.tgz</a> which is meant for Ubuntu 10.04 LTS.</p>
<p>Preparing for Installation</p>
<p><strong>Configuring the network settings<br />
</strong>It is recommended that you use the static network setting for the server. Perform the following steps to set up the static network settings on your server…<br />
<strong>1. </strong>Remove network-manager: network-manager is known to cause to problems in a server environment.<br />
<strong>2. </strong>Edit the network interface file to look like following:<br />
@config file: /etc/network/interfaces</p>
<pre class="brush: bash; title: ; notranslate">auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.32
netmask 255.255.255.0
gateway 192.168.1.1</pre>
<h3 style="text-align: center;"><a href="http://www.linuxuser.co.uk/tutorials/replacing-microsoft-exchange-server-with-an-open-source-alternative/2/" target="_self">Continue to: Page 2</a></h3>
<p><a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-94-is-out-now/" target="_self">See what else featured in issue 94</a><br />
<a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-issue-95-is-out-now/" target="_self">Check out the latest issue</a><br />
<a href="http://www.linuxuser.co.uk" target="_self">Return to the homepage</a></p>
<p><a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=ACGLUD&amp;utm_source=Internal&amp;utm_medium=House%2BAd&amp;utm_content=MPU&amp;utm_campaign=Linux%2BUser%2B3%2Bfor%2B%C2%A31" target="_self">Linux User &amp; Developer is the magazine for the GNU Generation<br />
Click here to try 3 issues for £1</a></p>
<h3><a href="http://twitter.com/LinuxUserMag" target="_blank">
                <img src="http://www.linuxuser.co.uk/wp-content/themes/linuxuser"/images/twitter_follow.png" width="160" height="60" border="2" alt="twitter follow us" />
            </a></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/replacing-microsoft-exchange-server-with-an-open-source-alternative/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to create a screencast of your Linux desktop</title>
		<link>http://www.linuxuser.co.uk/tutorials/how-to-create-a-screencast-of-your-linux-desktop/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/how-to-create-a-screencast-of-your-linux-desktop/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 16:33:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=4536</guid>
		<description><![CDATA[Screencasts have become a very popular way to make tutorials to explain how software or services work in recent years. Let’s look at how you can make them of your own cool project, or anything cool you're doing with Linux...
]]></description>
			<content:encoded><![CDATA[<!--buy_online--><!--Screencast-image00--><p><em>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-94-is-out-now/ target=">issue 94</a> of <a href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a> magazine.<a href="http://www.imagineshop.co.uk/linuxuseranddeveloper/" target="_blank"><img class="size-full wp-image-2388 alignright" title="How to create a screencast of your Linux desktop" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/buy_online.jpg" alt="How to create a screencast of your Linux desktop" width="92" height="24" /></a> 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.</em></p>
<p>Screencasts are short narrated video screen captures of your computer screen. They are usually shared on the web and used heavily by tutorial websites. They make tutorials a lot more lively and at times can be more effective than tutorials that use only text and images. You can create a screencast quite easily and share it with others on your website or over a video sharing service such as YouTube or Vimeo. Let’s look at how you can create a screencast using free software on your Linux desktop or laptop. We’ll set up the software recordMyDesktop through Ubuntu and then create a simple screencast so that you can see how the entire cycle works.</p>
<p><strong>Resources</strong><br />
<a href="http://recordmydesktop.sourceforge.net" target="_blank">recordMyDesktop </a><br />
<a href="http://audacity.sourceforge.net/" target="_blank">Audacity </a><br />
<a href="http://www.virtualbox.org/" target="_blank">Virtual Box </a><br />
<strong><br />
01 Let’s make a screencast</strong><br />
To explain how to make a screencast on your Linux desktop or laptop, we’ll install the software recordMyDesktop, set it up and then create a simple screencast. The screencast we’ll create here will be about how to install software on Ubuntu Linux using the Synaptic Package Manager. First we’ll look at what are the different elements involved in performing this task, then we’ll look at the installation of the software, we’ll create a storyboard for the screencast, before we proceed to recording the video and audio. After the recording is done, we’ll edit both the video and audio elements and add some text to create the final product.</p>
<figure id="attachment_4544" class="wp-caption aligncenter"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/12/Screencast-image00.jpg" rel="lightbox[4536]"><img class="size-full wp-image-4544" title="Screencast image00" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/12/Screencast-image00.jpg" alt="How to create a screencast of your Linux desktop" width="571" height="288" /></a><figcaption>recordMyDesktop has a simple and clean interface that leaves out all the complicated options</figcaption></figure>
<p style="text-align: left;"><strong>02 The plan and the storyboard</strong><br />
Before you start playing with all the cool tools involved in making your screencast, it is quite important to plan things out. You need to figure out what your screencast aims to do, how long it’s going to be, what the level of understanding the audience you are creating this video for is, among other things. You also need to write a storyboard for your screencast. A storyboard is a rough representation of the video and can be used as a general timeline of scenes. Each scene would address a different aspect of your product. In the screencast we are working on, we would need the following:<br />
<strong>1. </strong>Introduction (explain to viewers what you will cover in the video)<br />
<strong>2. </strong>What is Synaptic<br />
<strong>3. </strong>How to launch Synaptic<br />
<strong>4. </strong>How to install software using Synaptic<br />
<strong>5. </strong>How to remove a package<br />
<strong>6. </strong>Adding/removing repositories<br />
<strong>7. </strong>Refreshing your sources<br />
<strong>8. </strong>Comparison to other package managers<br />
<strong>9. </strong>Conclusion (a few words summarising what you have covered)</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p><strong>03 Write the script</strong><br />
Once your storyboard is ready, you have a scaffolding of your screencast. Now it’s time to fill this in with some content. The content we are using in this screencast consists of a video and an audio commentary. In this step, you will need to write out the script for the audio commentary that you will read out for the screencast based on the storyboard. Read the text out loud a few times to make sure things are fine and that you are comfortable with the commentary. Let’s get our hands dirty with the video now.</p>
<h3 style="text-align: center;">Continue to: <a href="http://www.linuxuser.co.uk/tutorials/how-to-create-a-screencast-of-your-linux-desktop/2" target="_self">Page 2 &#8211; getting down to business</a></h3>
<p><a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=ACGLUD&amp;utm_source=Internal&amp;utm_medium=House%2BAd&amp;utm_content=MPU&amp;utm_campaign=Linux%2BUser%2B3%2Bfor%2B%C2%A31" target="_self">Linux User &amp; Developer is the magazine for the GNU Generation<br />
Click here to try 3 issues for £1</a></p>
<p><a href="http://www.linuxuser.co.uk" target="_self">Return to the homepage</a></p>
<p style="text-align: center;"><a href="http://twitter.com/LinuxUserMag" target="_blank">
                <img src="http://www.linuxuser.co.uk/wp-content/themes/linuxuser"/images/twitter_follow.png" width="160" height="60" border="2" alt="twitter follow us" />
            </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/how-to-create-a-screencast-of-your-linux-desktop/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Shell scripting for system administrators: advanced techniques</title>
		<link>http://www.linuxuser.co.uk/tutorials/shell-scripting-for-system-administrators-advanced-techniques/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/shell-scripting-for-system-administrators-advanced-techniques/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 15:52:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[shell scripting]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=4487</guid>
		<description><![CDATA[Swayam Prakasha concludes his excellent three part series on shell scripting with some of the more advanced concepts, including two very useful commands…]]></description>
			<content:encoded><![CDATA[<!--buy_online--><!--Shell-Scripting-3-Fig-1--><!--Shell-Scripting-3-Fig-2--><p><em>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-94-is-out-now/ target=">issue 94</a> of <a href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a> magazine.<a href="http://www.imagineshop.co.uk/linuxuseranddeveloper/" target="_blank"><img class="size-full wp-image-2388 alignright" title="Shell scripting for system administrators: advanced techniques" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/buy_online.jpg" alt="Shell scripting for system administrators: advanced techniques" width="92" height="24" /></a> 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.</em></p>
<p>In issues <a href="http://www.linuxuser.co.uk/tutorials/shell-scripting-for-system-administrators-the-basics/" target="_blank">91</a> and <a href="http://www.linuxuser.co.uk/tutorials/shell-scripting-for-system-administrators-beyond-the-basics/" target="_blank">92</a> of Linux User &amp; Developer, we had a look at various aspects of shell scripting. We covered topics such as redirection, variables, arithmetic expansions, control constructs, various operations on strings etc.</p>
<p>We also had a detailed look at some of the popular shell commands such as ‘find’ and ‘grep’. Thus an in-depth understanding of shell scripting is very essential if someone wants to become an expert in system administration tasks. It is recommended to go through those two articles first via the links at the bottom of this page.</p>
<p>In this part, our focus will be on various advanced concepts of shell scripting and see how they are going to be beneficial for software developers and system administrators.<br />
Two important concepts in shell scripting are ‘sed’ and ‘awk’. Let us take a detailed look at each of these.</p>
<p>sed – This is a non-interactive stream editor. A stream editor is used to perform various forms of text transformations on an input stream. In its basic form, it reads input files line by line and applies the operation specified via the command line. Therefore, if you want to write a program to make changes in a file, sed should be your ultimate choice. IT professionals have considered sed as the successor to the popular ‘grep’ command. Fig 1 gives more information about this command.</p>
<p style="text-align: center;">
<figure id="attachment_4497" class="wp-caption aligncenter"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/12/Shell-Scripting-3-Fig-1.jpg" rel="lightbox[4487]"><img class="size-full wp-image-4497 " title="Shell Scripting 3 Fig 1" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/12/Shell-Scripting-3-Fig-1.jpg" alt="Shell scripting for system administrators: advanced techniques" width="509" height="287" /></a><figcaption>Fig 1 - Detailed information about the sed command</figcaption></figure>
<p>Please go through the complete man page to find out more about this specific command. If you want to learn more about how to use the sed command, please take a look at Fig 2.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p>Let&#8217;s understand this command with some examples. sed has several commands and the simplest one is the substitute command, ‘s’.<br />
Consider a sample test file with these contents:</p>
<pre class="brush: bash; title: ; notranslate">This is a sample program.
abc def ghi klm abc opq abc
</pre>
<p>Now let&#8217;s use sed for a well-known in-place editing of files:</p>
<pre class="brush: bash; title: ; notranslate">cvs@cn-setta-2:~&amp;gt; sed -i ‘s/abc/ABC/’ test_file
cvs@cn-setta-2:~&amp;gt;
cvs@cn-setta-2:~&amp;gt; cat test_file
This is a sample program.

ABC def ghi klm abc opq abc
</pre>
<figure id="attachment_4496" class="wp-caption aligncenter"><a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/12/Shell-Scripting-3-Fig-2.jpg" rel="lightbox[4487]"><img class="size-full wp-image-4496 " title="Shell Scripting 3 Fig 2" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/12/Shell-Scripting-3-Fig-2.jpg" alt="Shell scripting for system administrators: advanced techniques" width="384" height="307" /></a><figcaption>Fig 2 - How to use sed</figcaption></figure><br />
The above example shows that the sed command has replaced the first occurrence of ‘abc’ with ‘ABC’. If we want to replace all occurrences of ‘abc’ by ‘ABC’, then the following command will do the work for us:</p>
<pre class="brush: bash; title: ; notranslate">cvs@cn-setta-2:~&amp;gt; sed -i ‘s/abc/ABC/g’ test_file
</pre>
<p>It is important to note here that ‘sed -i’ overwrites the original file with the new one. Let us look at another typical usage of sed:</p>
<pre class="brush: bash; title: ; notranslate">cvs@cn-setta-2:~&amp;gt; sed -e ‘s/abc/DEF/g’ test_file &amp;gt; test_file_out
cvs@cn-setta-2:~&amp;gt;
cvs@cn-setta-2:~&amp;gt; cat test_file_out
This is a sample program.

DEF def ghi klm DEF opq DEF
</pre>
<p>It is not always needed to specify the -e option. Here, ‘s’ stands for substitute and ‘g’ stands for global. Thus, as expected, all occurrences matching the specified criteria are replaced and the output is redirected to another file.</p>
<h3 style="text-align: center;">Continue to: <a href="http://www.linuxuser.co.uk/tutorials/shell-scripting-for-system-administrators-advanced-techniques/2" target="_self">Page 2</a></h3>
<p>Preliminary reading:<br />
<a href="http://www.linuxuser.co.uk/tutorials/shell-scripting-for-system-administrators-the-basics/" target="_self">Shell scripting for system admin: the basics</a><br />
<a href="http://www.linuxuser.co.uk/tutorials/shell-scripting-for-system-administrators-beyond-the-basics/" target="_self">Shell scripting for system admin: beyond the basics</a></p>
<p><a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=ACGLUD&amp;utm_source=Internal&amp;utm_medium=House%2BAd&amp;utm_content=MPU&amp;utm_campaign=Linux%2BUser%2B3%2Bfor%2B%C2%A31" target="_self">Linux User &amp; Developer is the magazine for the GNU Generation<br />
Click here to try 3 issues for £1</a></p>
<p style="text-align: center;"><a href="http://twitter.com/LinuxUserMag" target="_blank">
                <img src="http://www.linuxuser.co.uk/wp-content/themes/linuxuser"/images/twitter_follow.png" width="160" height="60" border="2" alt="twitter follow us" />
            </a>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/shell-scripting-for-system-administrators-advanced-techniques/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Make Firefox extensions with Mozilla Jetpack</title>
		<link>http://www.linuxuser.co.uk/tutorials/make-firefox-extensions-with-mozilla-jetpack/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/make-firefox-extensions-with-mozilla-jetpack/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 17:25:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=4455</guid>
		<description><![CDATA[Mozilla Jetpack is designed to make it incredibly easy to build Firefox add-ons using a number of common web technologies like HTML and JavaScript. Join Kunal Deo as he demonstrates how to get setup ready for your creative juices to start flowing...]]></description>
			<content:encoded><![CDATA[<!--buy_online--><p><em>This article originally appeared in <a href=" http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-issue-93-is-out-now/" target="_blank">issue 93</a> of <a href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a> magazine.<a href="http://www.imagineshop.co.uk/linuxuseranddeveloper/" target="_blank"><img class="size-full wp-image-2388 alignright" title="Make Firefox extensions with Mozilla Jetpack" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/buy_online.jpg" alt="Make Firefox extensions with Mozilla Jetpack" width="92" height="24" /></a> 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.</em></p>
<p><strong>Resources:</strong><br />
Before we go any further it&#8217;s worth making sure you have everything you need to follow this tutorial.</p>
<p><strong><a href="http://www.mozilla.com" target="_blank">Mozilla Firefox  3.6 or later</a></strong><br />
If you are trying to build a standalone application, you can also use the XULRunner SDK that uses Gecko 1.9.2 or later. Using Firefox is much easier since the SDK is already configured to work with Firefox</p>
<p><strong><a href="http://www.python.org" target="_blank">Python 2.5 or later</a></strong><br />
To check the version of Python installed in the system, perform the following command:</p>
<pre class="brush: python; title: ; notranslate">$ python
[~ $:] python
Python 2.6.1 (r261:67515, Jun 20 2010, 21:47:49)</pre>
<p><strong>Mercurial (optional)<br />
</strong>In case you want to check out the Jetpack SDK  source code from its source code repository, you will need Mercurial installed on your system, since the Jetpack is hosted on the Mercurial version control system. To install Mercurial on Ubuntu, perform the following command:</p>
<pre class="brush: python; title: ; notranslate">$ sudo apt-get install mercurial</pre>
<p>Following installation, Mercurial’s hg command should be available.</p>
<p><strong>Mozilla Jetpack SDK </strong><br />
To obtain the Jetpack SDK from the Mercurial repository, perform the following command:</p>
<pre class="brush: python; title: ; notranslate">$ hg clone http://hg.mozilla.org/labs/jetpack-sdk/</pre>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p>Please note that the Mercurial repository of the Mozilla Jetpack SDK is being updated constantly and may not work with this tutorial. Please use the stable version of the Jetpack SDK for maximum compatibility. To set up the SDK development environment, enter the following command from the jetpack-sdk directory:</p>
<pre class="brush: python; title: ; notranslate">$ source bin/activate
</pre>
<p>There was a time when a dinosaur named Internet Explorer used to rule the planet ‘Internet’. It was so big that in order to support Internet Explorer, people would happily ditch the support for other browsers. Then came a meteoroid called Firefox (read the name) that destroyed most of the dinosaurs and established a lot of key features that changed the face of planet Internet for times to come. It was like freeing humankind from a ruthless alien empire. These features were…</p>
<p><strong>Open source: </strong>There is no doubt that open source software packages are of great quality. But mainstream adoption has always been a difficult task to achieve for an open source application. Firefox was one of the first open source projects which went head on head with something that was as popular as Internet Explorer. Being an open source project, it attracted lot of developers who worked under the Mozilla Foundation’s guidelines to create it.</p>
<p><strong>Portable: </strong>Firefox was portable like most open source applications. But at the same time it was also a popular web browser. This got lot of web developers to develop their websites and web apps so they would also work with Firefox. Previously the situation was a little awkward for those of us who were using our Linux boxes with either Netscape or Mozilla web browser, because most of the websites and web apps were only designed to work with Internet Explorer. Firefox helped a lot in the adoption of Linux and other desktop operating systems because it ensured that the internet would not be incompatible on Linux or other alternative operating systems.</p>
<p><strong>Extensibility: </strong>This was and still is the landmark feature that Firefox had to offer. Companies like Apple, Google and Microsoft are still figuring out the extensibility of their browsers, but Firefox had got it just right from the start. Extensibility allowed users to add features to Firefox without hacking into the original source code. This allowed users to customise the browser according to their own needs.<br />
Out of these three features, extensibility proved to be the most popular for the Firefox project. Not that the other web browsers weren’t extensible, but the extension mechanism in other web browsers was… for lack of a better word, let’s call it horrible. We all know about the trouble with spyware and Internet Explorer BHOs (Browser Helper Objects). Firefox, being an open source browser, provided a  very easy way to install extensions and manage them. It also included a sandbox-type environment and a consistent user interface. Even developing Firefox extension proves very easy. You do not need to learn C/C++ or any other low-level programming language.</p>
<h3 style="text-align: center;">Continue to: <a href="http://www.linuxuser.co.uk/tutorials/make-firefox-extensions-with-mozilla-jetpack/2" target="_self">Page 2 &#8211; Ways you can extend Firefox</a></h3>
<p><a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=ACGLUD&amp;utm_source=Internal&amp;utm_medium=House%2BAd&amp;utm_content=MPU&amp;utm_campaign=Linux%2BUser%2B3%2Bfor%2B%C2%A31" target="_self">Linux User &amp; Developer is the magazine for the GNU Generation<br />
Click here to try 3 issues for £1</a></p>
<a href="http://twitter.com/LinuxUserMag" target="_blank">
                <img src="http://www.linuxuser.co.uk/wp-content/themes/linuxuser"/images/twitter_follow.png" width="160" height="60" border="2" alt="twitter follow us" />
            </a>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/make-firefox-extensions-with-mozilla-jetpack/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How to sync your iPad with Linux</title>
		<link>http://www.linuxuser.co.uk/tutorials/how-to-sync-your-ipad-with-linux/</link>
		<comments>http://www.linuxuser.co.uk/tutorials/how-to-sync-your-ipad-with-linux/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 16:51:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple iPhone]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPod]]></category>

		<guid isPermaLink="false">http://www.linuxuser.co.uk/?p=4409</guid>
		<description><![CDATA[Apple makes some great hardware, but their closed eco system is far from Linux-friendly. Thankfully it can be done - here's how you can use your iPad, iPhone and iPod with your Ubuntu Linux computer…]]></description>
			<content:encoded><![CDATA[<!--buy_online--><!--Sync-your-iPad-being-detected--><p><em>This article originally appeared in <a href="http://www.linuxuser.co.uk/magazine-issues/linux-user-developer-94-is-out-now/ target=">issue 94</a> of <a href="http://www.linuxuser.co.uk" target="_blank">Linux User &amp; Developer</a> magazine.<a href="http://www.imagineshop.co.uk/linuxuseranddeveloper/" target="_blank"><img class="size-full wp-image-2388 alignright" title="How to sync your iPad with Linux" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/07/buy_online.jpg" alt="How to sync your iPad with Linux" width="92" height="24" /></a> 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.</em></p>
<p>Even if you are not a technology buff, it’s hard not to notice how the iPad has taken over the world of gadgets. Before its launch, the iPhone and the iPod touch had a similar impact and they are visible just about everywhere you go. All of Apple’s portable devices use iTunes to synchronise their information with a computer, and iTunes is only available on Windows and Mac systems. So where does that leave Linux users like you and me? Thankfully it&#8217;s not a lost cause &#8211; let’s take a look at how you can get the maximum out of your fruit branded mobile device on an Ubuntu desktop setup. You&#8217;ll also be pleased to hear that all the solutions that we look at here will work on your Apple mobile device without the device requiring to be jailbroken.</p>
<p>You&#8217;ll have to forgive the obligitory disclaimer however &#8211; all the software and syncing solutions discussed in this article are not built or approved by Apple, and therefore cannot be guaranteed to work as intended. Now, on with the guide&#8230;</p>
<p><strong>Required resources</strong><br />
<a href="http://www.libimobiledevice.org" target="_blank"><strong>libimobiledevice</strong></a> The project that allows you to sync your iPod, iPad, or iPhone to your Linux machine<br />
<a href="http://handbrake.fr/downloads.php" target="_blank"><strong>Handbrake</strong></a> For converting videos from one format to another<br />
<a href="http://fuse.sourceforge.net" target="_blank"><strong>Fuse File system</strong></a> This allows read-write access to your Apple devices</p>
<h3><strong>Installation</strong></h3>
<p><strong>1. Getting libimobiledevice</strong><br />
Both Ubuntu 10.04 and 10.1 support the iPhone, iPod touch and iPad out of the box. This is using the libimobiledevice project, which is hosted <a href="http://www.libimobiledevice.org" target="_blank">here</a>. You can visit the project’s website and download the source code, along with that of the supporting packages. Ready-made binaries for several popular distributions are also available from this website. However, the easiest way to get hold of the libimobiledevice packages is by using your distribution’s package management system. For example, Ubuntu Linux and openSUSE have the software in their official repositories. Ubuntu 10.04 and 10.1 users can skip the next step.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("LUD_MidPage_MPU1");
						</script>
					</div><p><strong>2. Installing on Ubuntu 9.10</strong><br />
Although Ubuntu 9.10 does not ship with support for the Apple devices, you can set things up reasonably easily. Launch the package source manager by going to<em> System&gt;Administration&gt;Software Sources</em>. Click on the Other Software tab and then on the Add button. Now add the line ‘<em>ppa:pmcenery/ppa</em>’ as the source. Save it and hit the Reload button to reload the repository information. Now launch the Synaptic Package Manager and install the package ‘<em>libimobiledevice0</em>’. Note that you will need to restart your computer for the installation process to complete correctly.</p>
<p><strong>3. Installing libimobiledevice for everyone else</strong><br />
If you have landed on a computer which does not have libimobiledevice pre-installed and you can’t find it in your distribution’s binary repositories, you can always download the source release of libimobiledevice and compile it yourself. First, make sure that you have the development tools required for compiling packages installed. Download the source package from the libimobiledevice project website and extract it to a temporary location. Get into the source directory and execute the following commands:</p>
<pre class="brush: bash; title: ; notranslate">./configure
make
sudo make install</pre>
<p><strong>4. Plug and play</strong><br />
When you have set things up, you should plug your iPad, iPod or iPhone into your Ubuntu computer. Connect it with the USB cable that you got with your device. When you plug it in, you should see two windows pop up, like the ones shown in the screenshot below, and your device’s icon appear on the Desktop. The two window panes will ask you which applications you want to use to view and manage the photos and the music on your device. The list that will appear depends upon what applications you have installed on your computer. If you see this screen, you should be in business. Let’s proceed and see how you can manage the music, photos, video and other data on your Apple device.</p>
<p style="text-align: center;"><em> </em></p>
<figure id="attachment_4420" class="wp-caption aligncenter"><em><em><a href="http://www.linuxuser.co.uk/wp-content/uploads/2010/12/Sync-your-iPad-being-detected.jpg" rel="lightbox[4409]"><img class="size-full wp-image-4420 " title="Sync your iPad - being detected" src="http://www.linuxuser.co.uk/wp-content/uploads/2010/12/Sync-your-iPad-being-detected.jpg" alt="How to sync your iPad with Linux" width="472" height="268" /></a></em></em><figcaption>An Apple iPad being detected and mounted in Linux</figcaption></figure>
<p><em> </em></p>
<h3 style="text-align: center;"><a href="http://www.linuxuser.co.uk/tutorials/how-to-sync-your-ipad-with-linux/2" target="_self">Continue to page 2 &#8211; working with your music</a></h3>
<p><a href="https://imagine.subscribeonline.co.uk/all-titles/linux-user-&amp;-developer?offer=ACGLUD&amp;utm_source=Internal&amp;utm_medium=House%2BAd&amp;utm_content=MPU&amp;utm_campaign=Linux%2BUser%2B3%2Bfor%2B%C2%A31" target="_self">Linux User &amp; Developer is the magazine for the GNU Generation<br />
Click here to try 3 issues for £1</a></p>
<a href="http://twitter.com/LinuxUserMag" target="_blank">
                <img src="http://www.linuxuser.co.uk/wp-content/themes/linuxuser"/images/twitter_follow.png" width="160" height="60" border="2" alt="twitter follow us" />
            </a>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuser.co.uk/tutorials/how-to-sync-your-ipad-with-linux/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

