<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Linux Daily</title>
	<atom:link href="http://linuxd.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://linuxd.wordpress.com</link>
	<description>Daily usage of linux, raw style</description>
	<lastBuildDate>Sun, 27 May 2012 15:44:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='linuxd.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Linux Daily</title>
		<link>http://linuxd.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://linuxd.wordpress.com/osd.xml" title="Linux Daily" />
	<atom:link rel='hub' href='http://linuxd.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How to setup a proper ssh session with debian Raspberry Pi</title>
		<link>http://linuxd.wordpress.com/2012/05/19/how-to-setup-a-proper-ssh-session-with-debian-raspberry-pi/</link>
		<comments>http://linuxd.wordpress.com/2012/05/19/how-to-setup-a-proper-ssh-session-with-debian-raspberry-pi/#comments</comments>
		<pubDate>Sat, 19 May 2012 18:25:57 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=691</guid>
		<description><![CDATA[So it seems I finally got my filthy hands on a Raspberry Pi. So far so good, although the software stack is a bit lacking still. I&#8217;m sure it will catch up. Anyway, I immediately loaded the debian distro to an sd card, which, for the record, consists in doing and I was good to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=691&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>So it seems I <em>finally</em> got my filthy hands on a Raspberry Pi. So far so good, although the software stack is a bit lacking still. I&#8217;m sure it will catch up. Anyway, I immediately loaded the debian distro to an sd card, which, for the record, consists in doing</p>
<p><pre class="brush: bash;">
dd bs=1m if=~/Downloads/debian6-19-04-2012/debian6-19-04-2012.img of=/dev/rdisk1
</pre></p>
<p>and I was good to go.  The next essential step was to setup a decent remote ssh session. This is pretty trivial stuff, the only reason I&#8217;m posting this is I found a very simple way to give the Raspberry Pi access to the internet, while accessing it through ssh. Sounds interesting? Let&#8217;s bring it!</p>
<h2>1. Set up ssh on the PI</h2>
<p>It&#8217;s a matter of starting it</p>
<p><pre class="brush: bash;">
sudo service ssh start
</pre></p>
<p>and adding it to the list of startup services</p>
<p><pre class="brush: bash;">
sudo insserv ssh
</pre></p>
<h2>2. Configure main machine</h2>
<p>In network manager, just configure a wired connection like so</p>
<p><a href="http://linuxd.files.wordpress.com/2012/05/sharewifi1.png"><img class="aligncenter size-thumbnail wp-image-700" title="shareWifi1" src="http://linuxd.files.wordpress.com/2012/05/sharewifi1.png?w=140&#038;h=150" alt="" width="140" height="150" /></a></p>
<p>and so</p>
<p><a href="http://linuxd.files.wordpress.com/2012/05/screenshot-from-2012-05-19-185810.png"><img class="aligncenter size-thumbnail wp-image-701" title="Screenshot from 2012-05-19 18:58:10" src="http://linuxd.files.wordpress.com/2012/05/screenshot-from-2012-05-19-185810.png?w=140&#038;h=150" alt="" width="140" height="150" /></a></p>
<p><strong>It goes without saying that at this point you should restart the Raspberry Pi or its networking system. Right? Right?? I mean JESUS CHRIST this is some pretty basic SHIT I mean WHATLKDASlkNSDf THIS IS WHAT HAPPENS WHEN YOU FUCK A STRANGER IN THE A- -</strong></p>
<h2>3. Grab Pi&#8217;s IP</h2>
<p>At some point your main machine is going to attribute an IP to the Pi. You can monitor syslog like so</p>
<p><pre class="brush: bash;">
tail -f /var/log/syslog | grep dnsmasq
</pre></p>
<p>For the record, it should look something like this</p>
<p><pre class="brush: bash;">
May 19 18:57:05 ubuntu NetworkManager[891]: &lt;info&gt; Starting dnsmasq...
May 19 18:57:05 ubuntu dnsmasq[5763]: started, version 2.59 cachesize 150
May 19 18:57:05 ubuntu dnsmasq[5763]: compile time options: IPv6 GNU-getopt DBus i18n DHCP TFTP conntrack IDN
May 19 18:57:05 ubuntu dnsmasq-dhcp[5763]: DHCP, IP range 10.42.0.10 -- 10.42.0.100, lease time 1h
May 19 18:57:05 ubuntu dnsmasq[5763]: reading /etc/resolv.conf
May 19 18:57:05 ubuntu dnsmasq[5763]: using nameserver 127.0.0.1#53
May 19 18:57:05 ubuntu dnsmasq[5763]: cleared cache
May 19 18:57:52 ubuntu dnsmasq-dhcp[5763]: DHCPDISCOVER(eth0) 10.42.0.19 b8:27:eb:84:ea:79
May 19 18:57:52 ubuntu dnsmasq-dhcp[5763]: DHCPOFFER(eth0) 10.42.0.19 b8:27:eb:84:ea:79
May 19 18:57:52 ubuntu dnsmasq-dhcp[5763]: DHCPREQUEST(eth0) 10.42.0.19 b8:27:eb:84:ea:79
May 19 18:57:52 ubuntu dnsmasq-dhcp[5763]: DHCPACK(eth0) 10.42.0.19 b8:27:eb:84:ea:79
</pre></p>
<p>Usually the IP attributed to the Pi is always <strong>10.42.0.19</strong>.</p>
<h2>4. Connect</h2>
<p>You can go old school</p>
<p><pre class="brush: bash;">
ssh pi@10.42.0.19
</pre></p>
<p>Or with X support for GUI applications</p>
<p><pre class="brush: bash;">
ssh -X pi@10.42.0.19
</pre></p>
<p>Remembering that the default username is <strong>pi</strong> with password <strong>raspberry</strong>.</p>
<p>All done!</p>
<h2>Addedum</h2>
<p>If you want to go for a static ip solution, you need to edit the proper config file</p>
<p><pre class="brush: bash;">
nano /etc/network/interfaces
</pre></p>
<div>so that is looks like</div>
<p><pre class="brush: bash;">
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
auto lo
iface lo inet loopback
# iface eth0 inet dhcp
auto eth0
iface eth0 inet static
 address 192.168.0.69
 netmask 255.255.255.0
 network 192.168.0.0
 broadcast 192.168.0.255
 gateway 192.168.0.1
</pre></p>
<div></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/691/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=691&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2012/05/19/how-to-setup-a-proper-ssh-session-with-debian-raspberry-pi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/05/sharewifi1.png?w=140" medium="image">
			<media:title type="html">shareWifi1</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/05/screenshot-from-2012-05-19-185810.png?w=140" medium="image">
			<media:title type="html">Screenshot from 2012-05-19 18:58:10</media:title>
		</media:content>
	</item>
		<item>
		<title>Programming, Motherfucker (Part 1)</title>
		<link>http://linuxd.wordpress.com/2012/03/08/programming-motherfucker-part-1/</link>
		<comments>http://linuxd.wordpress.com/2012/03/08/programming-motherfucker-part-1/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 02:37:39 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=533</guid>
		<description><![CDATA[Step two in The Odyssey – From Nothing to the Ubuntu Software Center. At this point the VM is all set up and ready to go. All we need is an application. Linux has several toolkits and frameworks to program graphical applications. Some are bad, some are beyond shit, but at least one of them [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=533&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Step two in <a title="The Odyssey – From Nothing to the Ubuntu Software Center" href="http://linuxd.wordpress.com/2012/01/31/the-odyssey-from-nothing-to-the-ubuntu-software-center/">The Odyssey – From Nothing to the Ubuntu Software Center</a>.</p>
<p>At this point the VM is all set up and ready to go. All we need is an application.</p>
<p>Linux has several toolkits and frameworks to program graphical applications. Some are bad, some are beyond shit, but at least one of them is top notch &#8211; Qt.</p>
<p>Qt is a C++ framework created by vikings from the grim and frostbitten lands of Norway, so you know that shit is for real. It is the only Linux GUI framework that packs an IDE, and a fantastic one for that matter. If you&#8217;re interested in python, java or any other garbage collected non-sense I advise you to skip this step and jump to packaging. C++ is for high-octane engineers with a firm grasp of memory management and pure virtual classes. Consider yourself warned.</p>
<p>Now, developing applications isn&#8217;t just about frameworks and programming languages. Oh no. There&#8217;s source control, source documentation, debugging, unit testing, memory debugging, etc. Yeah, and I mean it: etc! Hopefully we&#8217;ll cover most of these concepts till the end of the series. For starters we&#8217;ll cover creating a basic project in Qt, using Git for source control, publishing code to Github and licensing.</p>
<p>With me steering the ship, what&#8217;s to worry? On with it!</p>
<h2>1. Set Up Git</h2>
<p>Alright, VM ready to go, all is good but we ain&#8217;t going anywhere without Git installed. Don&#8217;t know what Git is? Take <a href="http://progit.org/book/ch1-3.html">the crash course</a> and you&#8217;ll be up to speed within the hour. If you don&#8217;t feel like it don&#8217;t worry, I&#8217;ll cover the basics.</p>
<h3>Install</h3>
<p>Git is in the officials reps, so installing is just a matter of:</p>
<p><pre class="brush: bash;">
sudo apt-get install git-core
</pre></p>
<h3>Configure</h3>
<p>Git has some basic configurations you need to setup before you start source controlling like a pro. Still at the terminal, this is my preferred configuration</p>
<p><pre class="brush: bash;">
git config --global user.name &quot;Anonymous Bloke&quot;
git config --global user.email anonymous@bloke.com
git config --global core.editor vim
git config --global merge.tool vimdiff
#List these configurations
git config --list
</pre></p>
<p>Git is now officially ready to go.</p>
<h2>2. Start a new Qt Project</h2>
<h3>Install</h3>
<p>Qt&#8217;s IDE is called Qt Creator, and it&#8217;s also in the official reps:</p>
<p><pre class="brush: bash;">
sudo apt-get install qtcreator
</pre></p>
<div id="attachment_614" class="wp-caption alignright" style="width: 160px"><a href="http://linuxd.files.wordpress.com/2012/03/qtscreenshot.png"><img class="size-thumbnail wp-image-614" title="QtScreenshot" src="http://linuxd.files.wordpress.com/2012/03/qtscreenshot.png?w=150&#038;h=112" alt="" width="150" height="112" /></a><p class="wp-caption-text">The Qt Creator interface. You'll be looking at this for a while.</p></div>
<p>This should install QtCreator 2.4.0 and pull Qt 4.7.4 as a dependency. Start it and you should see a window much like the one in the screenshot.</p>
<p>What are we looking at?</p>
<p>Well, there&#8217;s the sidebar on the left. This is the major anchor in the interface. From here we can access the code in <strong>Edit</strong>,  we can design a UI by dragging and dropping elements in <strong>Design</strong>, GDB can be used in <strong>debug</strong>, <strong>projects</strong> list recent projects, <strong>Analyze</strong> is new so I&#8217;m not sure what it does to be honest, and finally, <strong>Help</strong> is for other people.</p>
<p>On the lower left, we have a couple of icons. First one is to configure the current build, the play button runs the program, bellow it is the button to debug a program, and the hammer thing is to just build and not run.</p>
<p>Humpf, all done. Got that? Ok, now let&#8217;s create a new project in fil&#8230;</p>
<h3>Oh no you don&#8217;t! Decide on licensing first!</h3>
<p>Nope, not kidding! The first thing we do when creating a new project is think about licensing. Each source file should have a header with the copyright declaration, where you, the copyright holder, inform the reader about the deadly consequences of stealing your code. I recommend you use the GPL V3 because although I find Richard Stallman to be quite a weird character, I do not doubt for a single second that he&#8217;s doing his best to protect our freedoms.</p>
<p>All code released under the GPLV3 should have a short notice on every source file. My template notice is available <a href="http://dl.dropbox.com/u/167159/mirror/MathMachineCopyrightNotice.txt">here</a>, and I&#8217;d like to call your attention to the first 3 lines:</p>
<p><pre class="brush: bash;">
/*
 * %FILENAME% - Math Machine
 * Copyright (C) %YEAR% Anonymous Bloke
</pre></p>
<p>So, the project is gonna be called<strong> Math Machine</strong> and the copyright is for Anonymous Bloke, which you should change to your own name. Qt Creator will do all the work and automatically append this notice to your source files. The %FILENAME% and %YEAR% keywords will be interpreted by Creator and changed accordingly (you can see some more of these <a href="http://doc.qt.nokia.com/qtcreator-2.4/creator-tips.html#adding-a-license-header-template-for-c-code">here</a> if you need a more elaborate copyright notice).</p>
<p>To make use of this notice, define the file as the license template in <em>Tools/Options/C++/File Naming/License template</em>.</p>
<p>With the license template in place, we can finally create our project by hitting <em>File/New File or Project.</em> There, select <em>Qt Widget Project/Qt Gui Application</em>.</p>
<p>In the wizard there&#8217;s a couple of things you need to check.</p>
<p>First off, our project is gonna be called &#8220;MathMachine&#8221; and I suggest you put it in a new folder called <strong>developer</strong> in <strong>Documents</strong>. Just to keep shit organized.</p>
<div id="attachment_628" class="wp-caption alignright" style="width: 160px"><a href="http://linuxd.files.wordpress.com/2012/03/mathmachine1.png"><img class="size-thumbnail wp-image-628" title="MathMachine1" src="http://linuxd.files.wordpress.com/2012/03/mathmachine1.png?w=150&#038;h=122" alt="" width="150" height="122" /></a><p class="wp-caption-text">No math in the machine just yet, but hey, it's a start!</p></div>
<p>Second, we&#8217;re gonna be brutal and uncheck <em>Generate form</em> in <strong>Class Information</strong>. In this example we won&#8217;t need it.</p>
<p>Lastly, in <strong>Project Management</strong> be sure to add this project to <em>git</em> instead of the default <em>&lt;None&gt;</em>.</p>
<p>Boom! We have a project. Standard Qt boilerplate, nothing fancy. You can even run it by pressing Ctrl-R. The result looks something like the picture to the right &#8211; an empty window called MainWindow. Sweet.</p>
<h3>Your first commit</h3>
<div id="attachment_635" class="wp-caption alignright" style="width: 160px"><a href="http://linuxd.files.wordpress.com/2012/03/commit1.png"><img class="size-thumbnail wp-image-635" title="Commit1" src="http://linuxd.files.wordpress.com/2012/03/commit1.png?w=150&#038;h=123" alt="" width="150" height="123" /></a><p class="wp-caption-text">Awesome.</p></div>
<p>First things first, we commit! In <em>Tools/Git/Commit</em>. you should do something like in the screenshot.</p>
<p>Now, there&#8217;s a couple of things we need to do to push our source control all the way up to 11. First, right-click in main.cpp and choose &#8220;Open Terminal Here&#8221;. Then run</p>
<p><pre class="brush: bash;">
git status
</pre></p>
<p>Which should say</p>
<p><pre class="brush: bash;">
# On branch master
# Untracked files:
#   (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)
#
#    MathMachine.pro.user
nothing added to commit but untracked files present (use &quot;git add&quot; to track)
</pre></p>
<p>There&#8217;s a leftover file. Could be better. These .user files are Qt Creator instance specific &#8211; we should flat out ignore them. Let&#8217;s create and source control a .gitignore file &#8211; we don&#8217;t want <em>anybody</em> dealing with this .user business.</p>
<p><pre class="brush: bash;">
echo &quot;*.user&quot; &gt; .gitignore
git add .gitignore
git commit
</pre></p>
<p>Your default editor will show up. There&#8217;s an unwritten rule that <strong>commit</strong>s should have a short title and a brief description of the commit separated by a blank line. Like this.</p>
<p><pre class="brush: plain;">
Ignore *.user

Added .gitignore with QtCreator *.user files.
</pre></p>
<p>Save and exit. Now, if we run git status we&#8217;ll see</p>
<p><pre class="brush: bash;">
# On branch master
nothing to commit (working directory clean)
</pre></p>
<p>Which is much nicer. No <em>MOM</em> I <strong>don&#8217;t</strong> have OCD, don&#8217;t embarrass me in front of my friends!, I <strong>HATE IT</strong> when you do that, I just like things need und tidy, what&#8217;s wrong wit-</p>
<h2>3. Prepare for public debut</h2>
<p>Oh my! Who said anything about going public?! Don&#8217;t you just love surprises?! We&#8217;re gonna release the software as is!</p>
<p>According to the <a href="http://www.gnu.org/prep/standards/html_node/Releases.html">GNU standard</a>, free software releases should come with a bunch of all caps files.</p>
<h3>COPYING</h3>
<p>All GPL code should have, in addition to the copyright header, a COPYING file with a transcript of the GPL. It says so <a href="http://www.gnu.org/licenses/gpl-howto.html">right here</a>. So, open a terminal in the project root folder once more (right click on main.cpp, open terminal here) and</p>
<p><pre class="brush: bash;">
wget http://www.gnu.org/licenses/gpl.txt
mv gpl.txt COPYING
</pre></p>
<p>Now, this is just a personal preference of mine, but I like to see this file in the project tree. You can right click on your project (the top level of the tree) and choose <strong>Add existing file</strong> to add the COPYING file and say <strong>Yes</strong> to add it to git. You know, just to keep shit organized.</p>
<h3>README</h3>
<p>A classic. Instead of <strong>add existing file</strong>, this time select <strong>ADD NEW</strong> and then <em>General/Text file</em>. Qt will insist upon the .txt, and you shall insist in renaming it by right-click on the file and selecting <strong>rename</strong>.</p>
<p>There&#8217;s a good standard for writing README files. It&#8217;s called <a href="http://www.methods.co.nz/asciidoc/index.html">AsciiDoc</a> and it&#8217;s a good idea to use it. By following the syntax, we can convert our README to a webpage, a pdf, etc. Here&#8217;s a nice README for our program</p>
<p><pre class="brush: plain;">
Math Machine README
===================
Anonymous Bloke &lt;anonymous@bloke.com&gt;
:website: http://linuxd.wordpress.com

Math Machine
------------

Math Machine is part of &quot;The Odyssey&quot;, a series of guides on how to
properly distribute a free software application. It does two things
and two things only:

- Start.
- Exit.

I know.

=== Installation

Please refer to the INSTALL file
</pre></p>
<p>Simple.</p>
<h3>INSTALL</h3>
<p>We&#8217;ll do exactly the same thing with the INSTALL file. Just to keep shit organized.</p>
<p><pre class="brush: plain;">
Math Machine INSTALL
===================
Anonymous Bloke &lt;anonymous@bloke.com&gt;
:website: http://linuxd.wordpress.com

Math Machine cannot be installed. Yet.
However, it can compile to a binary by doing

qmake
make

:-)
</pre></p>
<p>Done. Now <strong>commit</strong> like before, and we&#8217;re golden!</p>
<h2>4. Set up GitHub</h2>
<p>That&#8217;s right, we&#8217;re gonna go with the latest trend. GitHub is <strong>DOPE</strong>.</p>
<h3>Register</h3>
<p>Head over to <a href="http://www.github.com">www.github.com</a> and register an account. Do remember to register with the same e-mail  from your git configuration (&#8220;anonymous@bloke.com&#8221; in this example)</p>
<h3>Create an SSH Key</h3>
<p>GitHub forces you to use a sweet SSH setup. In order to have write access to the repo, and hence be able to <strong>push</strong>, a local ssh key has to be created and registered with the website. Each machine should have a different ssh key, so you might want to repeat this process from the Ubuntu 10.04 VM.</p>
<p>Head over to the terminal. Again, mind the e-mail address.</p>
<p><pre class="brush: bash;">
ssh-keygen -t rsa -C &quot;anonymous@bloke.com&quot;
</pre></p>
<h3>Add your SSH Key to GitHub</h3>
<p>On the GitHub site click <em>Account Settings&gt;SSH Public Keys&gt;Add another public key</em>. The public key is</p>
<p><pre class="brush: bash;">
cat ~/.ssh/id_rsa.pub
</pre></p>
<h3>Holler!</h3>
<p><pre class="brush: bash;">
ssh -T git@github.com
</pre></p>
<p>Which should reply</p>
<p><pre class="brush: bash;">
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
Hi bloke! You've successfully authenticated, but GitHub does not provide shell access.
</pre></p>
<div id="attachment_661" class="wp-caption alignright" style="width: 160px"><a href="http://linuxd.files.wordpress.com/2012/03/githubrepo.png"><img class="size-thumbnail wp-image-661" title="GitHubRepo" src="http://linuxd.files.wordpress.com/2012/03/githubrepo.png?w=150&#038;h=129" alt="" width="150" height="129" /></a><p class="wp-caption-text">Totally not a calculator.</p></div>
<h3>Create a new repository</h3>
<p>For our example, create a new repository called <strong>MATH MACHINE</strong>. GitHub will present instructions on how to add this new repo.</p>
<h3>5. Now, Push!</h3>
<p>You could add the repo to the local git like in the GitHub instructions</p>
<p><pre class="brush: bash;">
git remote add origin git@github.com:bloke/Math-Machine.git
</pre></p>
<p>Or use QtCreator&#8217;s GUI <em>Tools/Git/Remotes</em></p>
<p><pre class="brush: bash;">
Name: origin
URL: git@github.com:bloke/Math-Machine.git
</pre></p>
<p>Choose one, but you have to go to the terminal anyway for the <strong>FINAL PUSH</strong>.</p>
<p><pre class="brush: bash;">
git push origin master
</pre></p>
<p>Really! It&#8217;s done! Click <strong>continue</strong> on the instructions page on GitHub. And see your baby.</p>
<p>Notice that now, everytime we hit <em>Tools/Git/Push</em> in Qt Creator it will push the master to origin (meaning our code changes to GitHub). Do it in the terminal, via menus, you decide.</p>
<p>You probably noticed the README doesn&#8217;t look too good on the GitHub repo page. If you rename it to README.asciidoc it will render great. If you&#8217;ve reached this far, you probably know how to do this right? In QtCreator</p>
<ol>
<li>Rename README to README.ascii by right clicking on the file and selecting <strong>RENAME</strong></li>
<li>Commit!</li>
<li>Push!</li>
</ol>
<p>Alright, first change! Pretty sweet, hum?</p>
<h2>The end</h2>
<p>Dude, what a ride! Next up:</p>
<ul>
<li>Find out what <strong>Math Machine</strong> is actually supposed to do! Is it a calculator? Does it do math? Is it even a machine? Who knows! not me!</li>
<li>Source documentation with <strong>Doxygen</strong></li>
<li>Unit Testing with <strong>QtTest</strong></li>
<li>Memory debugging with <strong>valgrind</strong></li>
<li>&#8230; And more!</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/533/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=533&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2012/03/08/programming-motherfucker-part-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/03/qtscreenshot.png?w=150" medium="image">
			<media:title type="html">QtScreenshot</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/03/mathmachine1.png?w=150" medium="image">
			<media:title type="html">MathMachine1</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/03/commit1.png?w=150" medium="image">
			<media:title type="html">Commit1</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/03/githubrepo.png?w=150" medium="image">
			<media:title type="html">GitHubRepo</media:title>
		</media:content>
	</item>
		<item>
		<title>Spare yourself the trouble: go virtual</title>
		<link>http://linuxd.wordpress.com/2012/01/31/spare-yourself-the-trouble-go-virtual/</link>
		<comments>http://linuxd.wordpress.com/2012/01/31/spare-yourself-the-trouble-go-virtual/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 22:10:06 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=517</guid>
		<description><![CDATA[If you&#8217;re considering serious software development, you should consider doing your development in a virtualized environment. When dealing with Linux, this is by far the best approach. Agility with virtualization will allow you to test your code in a multitude of different distros and scenarios, easily check for package dependencies, etc etc. The source code [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=517&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re considering serious software development, you should consider doing your development in a virtualized environment. When dealing with Linux, this is by far the best approach. Agility with virtualization will allow you to test your code in a multitude of different distros and scenarios, easily check for package dependencies, etc etc. The source code of your programmatic ramblings should be stored in a public server, instead of being kept local, trapped inside the virtual machine. This is why using version control software such as git or svn is crucial. But that&#8217;s for another talk, this one is about virtualization.</p>
<h2>1. Get VirtualBox</h2>
<p>VirtualBox is a full-feature free software virtualization suite that runs Linux like a charm. Download it from <a href="www.virtualbox.org" target="_blank">www.virtualbox.org</a> or hit</p>
<p><pre class="brush: bash;">
sudo apt-get install virtualbox
</pre></p>
<p>on your console if you&#8217;re pro and are already running Linux. Super!</p>
<h2>2. Get Ubuntu</h2>
<p>Ubuntu can be freely downloaded from <a href="http://www.ubuntu.com">www.ubuntu.com</a>. I recommend checking the <a href="http://www.ubuntu.com/start-download">Ubuntu Releases</a> page to access the currently supported versions from a mirror near you.</p>
<p>Let&#8217;s talk about Ubuntu versions. As you may or may not know, Ubuntu releases a new version every 6 months. Every 2 years, in April, a long-term support version is released which is usually referred to as the LTS. LTS versions are supported for 3 years (5 years for servers) instead of the usual 1.5 years. The latest LTS versions are 8.04, 10.04 and the upcoming 12.04.</p>
<p>That&#8217;s a lot of versions. How do users choose what version to install? Well, regular users just stick with the latest version. We&#8217;ll call them general population or <strong>gen pop</strong> for short. This is to allude to the fact that they live  in a sort of computing prison, constantly reinstalling their OS. So gen pop always upgrades to the latest version and doesn&#8217;t give a shit about the LTSs. Who uses the LTS? We&#8217;ll call them the <strong>saners</strong>, since they don&#8217;t live in a self-inflicted prison. They normally only upgrade from an LTS to an LTS.</p>
<p>Here&#8217;s a quick overview of the last 2 years of Ubuntu versions:</p>
<ul>
<li><strong>10.04</strong> called the <strong>Lucid Lynx</strong> is the pinacle of a generation. It runs Gnome 2 and is taken seriously by professionals in computing-related fields. This where the <strong>saners</strong> are.</li>
<li><strong>10.10-11.10</strong> are a series of beta-level editions whose main objective is to develop and test the new Unity desktop. Only <strong>Gen pop</strong> and Ubuntu developers ride this wave.</li>
<li><strong>12.04</strong> called the <strong>Precise Pangolin</strong> is the first generation LTS running Unity. Everyone is a bit suspicious of what&#8217;s gonna happen. It&#8217;s due in 3 months. People in the professional area are especially suspicious of what the hell is gonna happen.</li>
</ul>
<p><strong>So, what&#8217;s the deal?</strong> As soon as 12.04 is released <strong>gen pop</strong> will adopt it immediately, so the 10.10-11.10 versions are irrelevant. <strong>Saners</strong> will only upgrade if Unity isn&#8217;t a disaster. Either way, what makes sense today if we intend our software to reach a high number of people is to support both <strong>Ubuntu 10.04 and 12.04</strong>. You can get the latest daily build of 12.04 <a href="http://cdimage.ubuntu.com/daily-live/current/">here</a>.</p>
<h2>3. Create the machine</h2>
<p>This is dead simple. Some basic configurations on the new machine:</p>
<ul>
<li><strong>1536MB RAM</strong> is a good base.</li>
<li><strong>8GB dynamically allocated</strong> is enough for light development, adapt accordingly. Remember that dynamically allocated means the size of the disk file is proportional to the amount of disk used. So you can setup a 32GB disk, and the file that supports it is only 1GB in size, and as you use Ubuntu, the disk will start to grow.</li>
</ul>
<h2>4. Install Ubuntu</h2>
<h4>Installation</h4>
<p>Start your VM and choose the Ubuntu iso you downloaded when the First Run Wizard asks you for an installation media.</p>
<p><strong>Heads up!</strong> Boot into the live session first and install by double clicking the shortcut in the desktop. Choosing install Ubuntu from the boot menu will fail!</p>
<p>The rest of the installation is just a matter of clicking next next next as fast as you can.</p>
<h4>Drivers</h4>
<p>VirtualBox provides a custom set of kernel modules to make Ubuntu run super-smooth. To install them go to Devices-&gt;Install Guest Additions in the VM&#8217;s menu. This will mount a CD with the required software. Now it&#8217;s just a matter of running the executable in the terminal. Open a terminal and hit</p>
<p><pre class="brush: bash;">
cd /media/VBOXADDITIONS/*
sudo ./VBoxLinuxAdditions.run
</pre></p>
<p>Restart and boom, all done.</p>
<h4>Useful configurations</h4>
<p>Here&#8217;s a couple of tricks and tips that will make your life easier as a developer.</p>
<h5>Open terminal nautilus plugin-in</h5>
<p><pre class="brush: bash;">
sudo apt-get install nautilus-open-terminal
</pre></p>
<div id="attachment_544" class="wp-caption alignright" style="width: 160px"><a href="http://linuxd.files.wordpress.com/2012/01/openterminal.png"><img class="size-thumbnail wp-image-544" title="OpenTerminal" src="http://linuxd.files.wordpress.com/2012/01/openterminal.png?w=150&#038;h=99" alt="" width="150" height="99" /></a><p class="wp-caption-text">Open-terminal</p></div>
<p>Opens a terminal in the current nautilus folder. Super convenient. Just logout and log back in to see the new option in the context menu.</p>
<p>Go down you lousy paragraph! Down I say! DOWN!</p>
<h5>Terminator</h5>
<p><pre class="brush: bash;">
sudo apt-get install terminator
</pre></p>
<div id="attachment_669" class="wp-caption alignright" style="width: 160px"><a href="http://linuxd.files.wordpress.com/2012/01/terminator.png"><img class="size-thumbnail wp-image-669" title="terminator" src="http://linuxd.files.wordpress.com/2012/01/terminator.png?w=150&#038;h=71" alt="" width="150" height="71" /></a><p class="wp-caption-text">Terminator</p></div>
<p>Terminator ia a terminal that opens several windows and this way you can either control several machines through ssh, or be at several folders at the same time.<br />
Useful for programs that have makefiles all over the place.</p>
<p><strong>Have some tips of your own?</strong> Please leave a comment and I&#8217;ll add it to the post, we&#8217;re trying to look like a team here : -)</p>
<h2>The end</h2>
<div id="attachment_542" class="wp-caption alignright" style="width: 160px"><a href="http://linuxd.files.wordpress.com/2012/01/ubuntuvms.png"><img class="size-thumbnail wp-image-542" title="UbuntuVMs" src="http://linuxd.files.wordpress.com/2012/01/ubuntuvms.png?w=150&#038;h=59" alt="" width="150" height="59" /></a><p class="wp-caption-text">The Virgin Virtual Machines</p></div>
<p>Alright, ready for development! At the end of this step you should have both versions running  inside their own little VMs like in the pretty picture &#8211; PreciseVirgin and LucidVirgin. You&#8217;re ready to proceed to step two in this series.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/517/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/517/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=517&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2012/01/31/spare-yourself-the-trouble-go-virtual/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/01/openterminal.png?w=150" medium="image">
			<media:title type="html">OpenTerminal</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/01/terminator.png?w=150" medium="image">
			<media:title type="html">terminator</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2012/01/ubuntuvms.png?w=150" medium="image">
			<media:title type="html">UbuntuVMs</media:title>
		</media:content>
	</item>
		<item>
		<title>The Odyssey &#8211; From Nothing to the Ubuntu Software Center</title>
		<link>http://linuxd.wordpress.com/2012/01/31/the-odyssey-from-nothing-to-the-ubuntu-software-center/</link>
		<comments>http://linuxd.wordpress.com/2012/01/31/the-odyssey-from-nothing-to-the-ubuntu-software-center/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 17:26:07 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=515</guid>
		<description><![CDATA[Ladies and gentleman, boys and girls, reports of this blog&#8217;s death have been greatly exaggerated. Towards clearing this blog&#8217;s bad name, this is the first post and anchor point in what shall henceforth be know as the Odyssey &#8211; going from absolutely nothing, to an application rolling in Ubuntu Software Center. And by nothing, I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=515&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ladies and gentleman, boys and girls, reports of this blog&#8217;s death have been greatly exaggerated. Towards clearing this blog&#8217;s bad name, this is the first post and anchor point in what shall henceforth be know as the Odyssey &#8211; going from absolutely nothing, to an application rolling in Ubuntu Software Center. And by nothing, I mean nothing, not even Ubuntu itself. The main purpose of this undertaking will be to serve as a guide to anyone, young or old, n00b or pro, interested in developing software for Ubuntu.</p>
<p>Let&#8217;s start this thing, shall we?<br />
<a title="Spare yourself the trouble: go virtual" href="http://linuxd.wordpress.com/2012/01/31/spare-yourself-the-trouble-go-virtual/"> Step One &#8211; Spare yourself the trouble, go virtual</a>.<br />
<a title="Programming, Motherfucker (Part 1)" href="http://linuxd.wordpress.com/2012/03/08/programming-motherfucker-part-1/"> Step Two &#8211; Programming, Motherfucker (Part 1)</a>.<br />
Step Three &#8211; Programming, Motherfucker (Part 2).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/515/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=515&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2012/01/31/the-odyssey-from-nothing-to-the-ubuntu-software-center/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>
	</item>
		<item>
		<title>Web performance on Ubuntu and Windows</title>
		<link>http://linuxd.wordpress.com/2010/10/25/web-performance-on-ubuntu-and-windows/</link>
		<comments>http://linuxd.wordpress.com/2010/10/25/web-performance-on-ubuntu-and-windows/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 22:45:32 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[bugs]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[chromium]]></category>
		<category><![CDATA[difference]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[peacekeeper]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=405</guid>
		<description><![CDATA[People say Linux is fast. People say Ubuntu is fast. What are these people talking about exactly? Well, it&#8217;s not the browser performance. Have a look at the performance results from Peacekeeper. I ran these on a 6 year old laptop, an old centrino 1.7Ghz with a shitty ATI. Just for completeness sake, since it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=405&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>People say Linux is fast. People say Ubuntu is fast. What are these people talking about exactly?</p>
<p>Well, it&#8217;s not the browser performance. Have a look at the performance results from <a href="http://service.futuremark.com/peacekeeper/index.action" target="_blank">Peacekeeper</a>.</p>
<div id="attachment_407" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2010/10/ubuntuvswindows.png"><img class="size-medium wp-image-407" title="UbuntuVSWindows" src="http://linuxd.files.wordpress.com/2010/10/ubuntuvswindows.png?w=300&#038;h=141" alt="" width="300" height="141" /></a><p class="wp-caption-text">Side by side - Peacekeeper results for Ubuntu 10.04 and Windows XP</p></div>
<p>I ran these on a 6 year old laptop, an old centrino 1.7Ghz with a shitty ATI. Just for completeness sake, since it doesn&#8217;t really matter. I&#8217;m willing to assert that you will have similar results on any machine.</p>
<p>Add to this the shitty graphics drivers to slow the rendering down, and the ubber-shitty flash for the ultimate cherry on top of the cake.</p>
<p>So you see gentlemen, when you say linux is &#8220;faster&#8221; &#8230; well, it&#8217;s really not that simple. On the server? sure. On the desktop, on the applications that matter to the desktop user&#8230; it&#8217;s not faster. At all.</p>
<p>No wonder Ubuntu drains my battery much faster. Not only isn&#8217;t powersaving optimal for all my hardware because of inexistent manufacturer support, but the applications themselves burn much more cpu.</p>
<p><strong>BONUS POINTS</strong>: Notice the font rendering in XP. Now Ubuntu. Now XP. Holy shit.</p>
<p>PS &#8211; A real post in what? Over a year? Holy shitz!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/405/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=405&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2010/10/25/web-performance-on-ubuntu-and-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2010/10/ubuntuvswindows.png?w=300" medium="image">
			<media:title type="html">UbuntuVSWindows</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu 10.10 you say? I say lulz!</title>
		<link>http://linuxd.wordpress.com/2010/10/10/ubuntu-10-10-you-say-i-say-lulz/</link>
		<comments>http://linuxd.wordpress.com/2010/10/10/ubuntu-10-10-you-say-i-say-lulz/#comments</comments>
		<pubDate>Sun, 10 Oct 2010 18:03:39 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[bugs]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=389</guid>
		<description><![CDATA[Here&#8217;s a question. You know what happens when you try to push a release 20 days earlier just to be released on a date with some special geek significance? Allow me to answer in the form of screenshots. &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; More lulz to be added as they [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=389&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s a question. You know what happens when you try to push a release 20 days earlier just to be released on a date with some special geek significance?</p>
<p>Allow me to answer in the form of screenshots.</p>
<p>&nbsp;</p>
<div id="attachment_390" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2010/10/lulz1-menu1.png"><img class="size-medium wp-image-390" title="lulz1-menu1" src="http://linuxd.files.wordpress.com/2010/10/lulz1-menu1.png?w=300&#038;h=126" alt="" width="300" height="126" /></a><p class="wp-caption-text">Design team. Idiots? Visually impaired? You decide!</p></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id="attachment_392" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2010/10/lulz2-sound_menu.png"><img class="size-medium wp-image-392" title="lulz2-sound_menu" src="http://linuxd.files.wordpress.com/2010/10/lulz2-sound_menu.png?w=300&#038;h=114" alt="" width="300" height="114" /></a><p class="wp-caption-text">A striking resemblance, I dare say!</p></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id="attachment_393" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2010/10/lulz3-oomenus.png"><img class="size-medium wp-image-393" title="lulz3-OOmenus" src="http://linuxd.files.wordpress.com/2010/10/lulz3-oomenus.png?w=300&#038;h=108" alt="" width="300" height="108" /></a><p class="wp-caption-text">They don&#039;t call it Maverick for nothing!</p></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id="attachment_396" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2010/10/lulz4-best_shapes.png"><img class="size-medium wp-image-396" title="lulz4-best_shapes" src="http://linuxd.files.wordpress.com/2010/10/lulz4-best_shapes.png?w=300&#038;h=165" alt="" width="300" height="165" /></a><p class="wp-caption-text">Seriously, this thing is unruly!</p></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id="attachment_401" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2010/10/lulz5-update_apt1.png"><img class="size-medium wp-image-401" title="lulz5-update_apt" src="http://linuxd.files.wordpress.com/2010/10/lulz5-update_apt1.png?w=300&#038;h=150" alt="" width="300" height="150" /></a><p class="wp-caption-text">Comes with built-in trolling mechanism, sweet!</p></div>
<p>&nbsp;</p>
<p>More lulz to be added as they show up, stay tuned! Excitment! Exclamation points!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/389/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=389&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2010/10/10/ubuntu-10-10-you-say-i-say-lulz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2010/10/lulz1-menu1.png?w=300" medium="image">
			<media:title type="html">lulz1-menu1</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2010/10/lulz2-sound_menu.png?w=300" medium="image">
			<media:title type="html">lulz2-sound_menu</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2010/10/lulz3-oomenus.png?w=300" medium="image">
			<media:title type="html">lulz3-OOmenus</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2010/10/lulz4-best_shapes.png?w=300" medium="image">
			<media:title type="html">lulz4-best_shapes</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2010/10/lulz5-update_apt1.png?w=300" medium="image">
			<media:title type="html">lulz5-update_apt</media:title>
		</media:content>
	</item>
		<item>
		<title>The 10 year old bug &#8211; let&#8217;s all point and laugh</title>
		<link>http://linuxd.wordpress.com/2010/01/30/the-10-year-old-bug-lets-us-point-and-laugh/</link>
		<comments>http://linuxd.wordpress.com/2010/01/30/the-10-year-old-bug-lets-us-point-and-laugh/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 03:32:10 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=370</guid>
		<description><![CDATA[I use keyboard shortcuts in Firefox a lot. Ctrl+t for new tab. Ctrl+l to enter an address. Ctr+k for the quick search box. F11 for fullscreen. I noticed that none of these work when I was watching a video on youtube. Which sucked. A lot. Turns out that&#8217;s bug 78414 in bugzilla, and it was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=370&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I use keyboard shortcuts in Firefox a lot. Ctrl+t for new tab. Ctrl+l to enter an address. Ctr+k for the quick search box. F11 for fullscreen.</p>
<p>I noticed that none of these work when I was watching a video on youtube. Which sucked. A lot. Turns out that&#8217;s <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=78414#c320" target="_blank">bug 78414</a> in bugzilla, and it was reported back when I was in primary school and thought girls were gross. But things have come a long way, indeed there is a <a href="http://www.fossfactory.org/project/p81" target="_blank">$1000 dollar &#8220;bounty&#8221;</a> on the thing and still nothing has happened. brilliant.</p>
<p>See what I did there?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/370/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=370&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2010/01/30/the-10-year-old-bug-lets-us-point-and-laugh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>
	</item>
		<item>
		<title>3 months later, where Ubuntu 9.10 fails miserably</title>
		<link>http://linuxd.wordpress.com/2010/01/20/3-months-later-where-ubuntu-9-10-fails-miserably/</link>
		<comments>http://linuxd.wordpress.com/2010/01/20/3-months-later-where-ubuntu-9-10-fails-miserably/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 19:45:27 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[10]]></category>
		<category><![CDATA[9]]></category>
		<category><![CDATA[9.10]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[issue]]></category>
		<category><![CDATA[issues]]></category>
		<category><![CDATA[karmic]]></category>
		<category><![CDATA[koala]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[problems]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unbiased]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=357</guid>
		<description><![CDATA[If you were on the internet around august-september last year, you might have heard some of the buzz surrounding Ubuntu 9.10 &#8220;Karmic &#8220;Koala&#8221;. Since ubuntu and windows 7 came out on more or less the same time, comparing both operating systems was quite fashionable. And, wow, what do you know, ubuntu always won. If you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=357&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>If you were on the internet around august-september last year, you might have heard some of the buzz surrounding Ubuntu 9.10 &#8220;Karmic &#8220;Koala&#8221;. Since ubuntu and windows 7 came out on more or less the same time, comparing both operating systems was quite fashionable. And, wow, what do you know, ubuntu always won. If you ask me, linux fanboys have used linux for so long they must&#8217;ve forgot what a fully working operating system looks like.</p>
<p>Well, you know what they say, the higher you fly the bigger the fall, or something of the like, and the fall of Karmic Koala was quite severe. Here&#8217;s a couple of notes of some the worst of Ubuntu&#8217;s latest edition.</p>
<p><strong>1- PulseAudio is still broken</strong></p>
<p>The PulseAudio rush started in late 2007. If I remember correctly, it was Fedora that first shipped with it. Then all the major distros rushed in as well and Ubuntu 8.04 LTS was the first release to include it. And that was the end of linux audio being close to working.</p>
<p>Since then, every ubuntu version suffers from some audio problem or another. In 8.04, flash didn&#8217;t work. In 8.10, sound clipped. In 9.04, skype broke. In 9.10 it&#8217;s just a mess. Audio in all  the emulators don&#8217;t work properly: GensGS, PSCX-R, Mupen64, and even Dosbox . Audio in wine will desynchronize periodically, click, hiss etc. Sound clipping in banshee was solved by defaulting the volume to 80% instead of 100% like it should be.  etc etc ad absurdum.</p>
<p><strong>2- The radeon driver is broken</strong></p>
<p>I had posted before that ATI dropped support for RV300 chips. I was happy that linux enabled me to use the latest software with my aging hardware. But that&#8217;s not really the case. The radeon driver suffers from an infinite number of regressions, bugs, performance issues that make Ubuntu 9.10 unusable with these cards. I&#8217;m not even talking about compositing performance, or the 3D acceleration that can&#8217;t really be called acceleration, it&#8217;s with video, 2D desktop performance and, of course, flash and scrolling performance.</p>
<p>I remember a somewhat old interview of Mark Shuttleworth that finished with mark saying to the interviewer &#8220;If you have an old laptop around the house, try the ubuntu live cd&#8221;. If this was ever true, it definitely is not true anymore.</p>
<p><strong>3- The update-apt-xapian-index bug</strong></p>
<p>Synaptic Package Manager has a quick search function that works very nicely. It has an optimized database of some sort, and it is populated by this process called update-apt-xapian-index which is scheduled to run weekly. Now, everytime this process decides to run, which obeying the fundamentals of moore&#8217;s laws is always on the worst possible time, the OS just freezes. If you have a recent computer, this is barely noticeable. If you have an older computer or say a netbook, this is unbelievably annoying. Some people don&#8217;t think it&#8217;s a bug, these people are wrong. It is a bug.</p>
<p><strong>4- The system log bug</strong></p>
<p>I only noticed this with my netbook, but I&#8217;m willing to infer that it happens on all computers that use the Intel Atom processor or one a line of motherboards that support it. On a completely random basis, the system will start logging hundreds of time per second the reported temperature of operation of the processor. In a couple of minutes your log files can shoot up to the GB numbers, which depending on your machine can be either an enormous disaster, or a gigantic disaster. Take your pick.</p>
<p><strong>5- Probably the most unreliable release ever</strong></p>
<p>There are so many little bugs and issues that this release of Ubuntu is just unreliable. It&#8217;s the gnome-do package that provides a broken gnome-do. It&#8217;s the doubt that any packaged program that uses audio will work at all. It&#8217;s the gnome keyring that requires authentication on every operation if you choose to enable automatic login. It&#8217;s the new boot process that hides some messages, but doesn&#8217;t hide others. It&#8217;s the two finger scrolling emulation that the driver supports, but the ubuntu menu to activate it doesn&#8217;t work. It&#8217;s firefox 3.5 that doesn&#8217;t scroll properly in google reader, and still has that bug that if some element has absolute positioning scrolling is horribly slow.  I say no more.</p>
<p><strong>In conclusion</strong></p>
<p>More and more ubuntu has converged into this notion: everything kind of works, but at the same time, it doesn&#8217;t. A few years back, installing ubuntu was a pain in the ass but in the end you had a reliable system. Today, the installation procedure is easier, but the bar has been raised. Even if your hardware is 100% supported with the best drivers, the system will not be 100% reliable. Be it the bad packaging or the pulseaudio mess, ubuntu has reached a point where it can&#8217;t be trusted. So the obvious question is: why use it at all?</p>
<p>All eyes on lucid lynx.</p>
<p>P.S. I haven&#8217;t written anything on this blog for quite some time. I&#8217;ve just been busy, and honestly, my motto for creating this blog was &#8220;because it&#8217;s relevant&#8221;. With every ubuntu release, I feel like it&#8217;s becoming progressively less true. And I still use ubuntu on all my computers. Go figure.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/357/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=357&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2010/01/20/3-months-later-where-ubuntu-9-10-fails-miserably/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>
	</item>
		<item>
		<title>Quick tip for monitoring network activity</title>
		<link>http://linuxd.wordpress.com/2009/08/03/quick-tip-for-monitoring-network-activity/</link>
		<comments>http://linuxd.wordpress.com/2009/08/03/quick-tip-for-monitoring-network-activity/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 18:39:16 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=353</guid>
		<description><![CDATA[The other day I was a bit pissed off because network manager would not show network statistics. You know, inbound/outbound traffic, speeds, that kind of thing. Well, on the Resources tab on System Monitor (accessible on System-&#62;Admnistration) you have that info. Probably you could have more info there, but for me it&#8217;s perfect, just what [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=353&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The other day I was a bit pissed off because network manager would not show network statistics. You know, inbound/outbound traffic, speeds, that kind of thing.</p>
<p>Well, on the Resources tab on System Monitor (accessible on System-&gt;Admnistration) you have that info. Probably you could have more info there, but for me it&#8217;s perfect, just what I was looking for.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/353/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=353&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2009/08/03/quick-tip-for-monitoring-network-activity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing, configuring and debugging OSSv4</title>
		<link>http://linuxd.wordpress.com/2009/06/28/installing-configuring-and-debugging-ossv4/</link>
		<comments>http://linuxd.wordpress.com/2009/06/28/installing-configuring-and-debugging-ossv4/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 18:07:33 +0000</pubDate>
		<dc:creator>anonymousbloke</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[/dev/dsp]]></category>
		<category><![CDATA[4]]></category>
		<category><![CDATA[8.10]]></category>
		<category><![CDATA[9.04]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[dsp]]></category>
		<category><![CDATA[entry]]></category>
		<category><![CDATA[ext]]></category>
		<category><![CDATA[external]]></category>
		<category><![CDATA[four]]></category>
		<category><![CDATA[how]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[int]]></category>
		<category><![CDATA[internal]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[jaunty]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[mic]]></category>
		<category><![CDATA[microphone]]></category>
		<category><![CDATA[not]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[ossinfo]]></category>
		<category><![CDATA[ossmix]]></category>
		<category><![CDATA[ossplay]]></category>
		<category><![CDATA[ossrecord]]></category>
		<category><![CDATA[OSSv4]]></category>
		<category><![CDATA[ossxmix]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[problems]]></category>
		<category><![CDATA[pulse]]></category>
		<category><![CDATA[pulseaudio]]></category>
		<category><![CDATA[skype]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[to]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[v4]]></category>
		<category><![CDATA[version]]></category>
		<category><![CDATA[working]]></category>

		<guid isPermaLink="false">http://linuxd.wordpress.com/?p=334</guid>
		<description><![CDATA[I&#8217;m not going to get into the story of Open Sound System. Let&#8217;s just say that OSS was deprecated years ago and ALSA is the standard. Recently OSS was GPLed and now you can use it with no problems. The following was what I gathered about the subject, tested in Ubuntu 9.04 (linux mint 7 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=334&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m not going to get into the story of Open Sound System. Let&#8217;s just say that OSS was deprecated years ago and ALSA is the standard. Recently OSS was GPLed and now you can use it with no problems. The following was what I gathered about the subject, tested in Ubuntu 9.04 (linux mint 7 to tell the truth) on an Acer Aspire One. I sometimes reference things by wrong names by sheer ignorance, but you&#8217;ll get the idea. I present instructions for installation, configuring applications to work with OSS and a path to debug some of the most common problems encountered with OSS.</p>
<p><strong>1.Why consider OSS</strong></p>
<p>There are a number of reasons to consider using OSS in your system. Some say OSS has better sound quality, it&#8217;s hard to tell really. Some soundcards, of the more professional variety, are only properly supported with OSS. You know, 5.1 sound and the like. Some say it takes less resources, but really it&#8217;s nothing extravagant. A list of supported hardware can be found on this <a href="http://www.opensound.com/release/oss-install.pdf" target="_blank">pdf</a>.<br />
A good reason to use OSS is to refuse to use ALSA+pulseaudio and avoid its problems. If you have propper support for your hardware in ALSA, then alright, ALSA works ok, but pulseaudio is just there to ruin your audio. Pulseaudio is the reason strange shit happens with sound. It&#8217;s why you experience sound clipping for no reason, it&#8217;s the reason skype audio breaks randomly on ubuntu 9.04, etc and etc ad absurdum. If you&#8217;ve used any distro with pulseaudio running on the background you have experienced problems with audio. There is no ideal pulseaudio set up, pulseaudio is a big piece of shit with useless features, it is the exact definition of bloatware and has random problems with no possibility of solution. With OSS you won&#8217;t have these problems. No, you&#8217;ll have a different set of problems. But hey, at least they are predictable and you might be able to solve them.</p>
<p><strong>2. Why not consider OSS</strong></p>
<p>OSS has its own issues. Assuming your hardware is supported, what will not work for sure is automatic headphone recognition and suspend/resume. Some workarounds are available, but it will not work out of the box.</p>
<p>The bigger problem with OSS though is support. It&#8217;s not supported very well. I mean support in terms of active development and integration with your desktop. Your system sounds will not work out of the box in GNOME. The base system itself is quite good and has extraordinary potential, but no one is really working on it to the fullest extent. The GUI mixer applet is just a proof of concept to be honest. Look at it</p>
<div id="attachment_342" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2009/06/ossxmix.png"><img class="size-medium wp-image-342" title="ossxmix" src="http://linuxd.files.wordpress.com/2009/06/ossxmix.png?w=300&#038;h=167" alt="Oh boy" width="300" height="167" /></a><p class="wp-caption-text">Oh boy</p></div>
<p>It tries to do inteligent things like calling pink-jack to your mic input, green jack to the headphone. The idea is brilliant, but it doesn&#8217;t work 100% and ends up being confusing. It is still better than alsa though. Consider this usual mess.</p>
<div id="attachment_348" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2009/06/alsa_mess.png"><img class="size-medium wp-image-348" title="alsa_mess" src="http://linuxd.files.wordpress.com/2009/06/alsa_mess.png?w=300&#038;h=183" alt="Just your everyday user-friendly, sane piece of software engineering. ALSA FTW!" width="300" height="183" /></a><p class="wp-caption-text">Just your everyday user-friendly, sane piece of software engineering. ALSA FTW!</p></div>
<p><strong>3.Getting it up and running</strong></p>
<p><strong>Installation</strong></p>
<p>Installing OSS is pretty simple. If you haven&#8217;t tried OSS before, the more intelligent thing to do is disable ALSA and pulseaudio instead of uninstalling them. First thing is to blacklist all alsa sound modules using the two following commands</p>
<p><code>sudo cat /lib/linux-sound-base/noALSA.modprobe.conf &gt;&gt; /etc/modprobe.d/blacklist.conf </code></p>
<p><code>sudo echo "blacklist snd_hda_intel<br />
blacklist snd_mixer_oss<br />
blacklist snd_pcm<br />
blacklist snd_timer<br />
blacklist snd_page_alloc<br />
blacklist snd_hwdep<br />
blacklist snd<br />
blacklist soundcore" &gt;&gt; /etc/modprobe.d/blacklist.conf # One whole command</code></p>
<p>Noticed that that last one should be on whole command, paragraphs and everything. Run this</p>
<p><code>sudo dpkg-reconfigure linux-sound-base</code></p>
<p>And choose OSS from the list. Now you have to reboot. If you would like to check if the ALSA modules have indeed not been loaded, try running lsmod.</p>
<p>Install all the needed dependencies like so</p>
<p><code>sudo aptitude install libtool libgtk2.0-dev libesd0 libsdl1.2debian-oss build-essential binutils linux-headers-`uname -r` gawk</code></p>
<p>Now you are ready to install. There is a deb package available. You can get it from the <a href="http://www.4front-tech.com/download.cgi" target="_blank">4front website</a> or directly <a href="http://www.4front-tech.com/release/oss-linux-4.1-1052_i386.deb" target="_blank">here</a>, the latest package as of the writing of this article. The recommended way to do it is installing the package using dpkg, for some reason the GUI app is said not to install it properly.</p>
<p><code>sudo dpkg -i oss-linux*.deb</code></p>
<p>And that&#8217;s that. OSS has been installed and should now be running. You can check it by running lsmod and checking for the new modules.</p>
<p>In system-&gt;preferences-&gt;sound you should change everything to OSS4 (if OSS4 is not available, then OSS will work too) like so</p>
<div id="attachment_343" class="wp-caption aligncenter" style="width: 297px"><a href="http://linuxd.files.wordpress.com/2009/06/sound_preferences.png"><img class="size-medium wp-image-343" title="sound_preferences" src="http://linuxd.files.wordpress.com/2009/06/sound_preferences.png?w=287&#038;h=300" alt="Notice the Default Mixer tracks" width="287" height="300" /></a><p class="wp-caption-text">Notice the Default Mixer tracks</p></div>
<p>Note the last part, Default Mixer Track. When you change your volume using the volume applet, the volume you are changing is whatever track is choosen here.</p>
<div id="attachment_344" class="wp-caption aligncenter" style="width: 299px"><a href="http://linuxd.files.wordpress.com/2009/06/volume_applet.png"><img class="size-full wp-image-344" title="volume_applet" src="http://linuxd.files.wordpress.com/2009/06/volume_applet.png?w=470" alt="This is what I mean"   /></a><p class="wp-caption-text">This is what I mean by volume applet</p></div>
<p>And we&#8217;re done.</p>
<p><strong>Configuration and debugging</strong></p>
<p>Now you will want to test your audio. This might be quite an involved process.</p>
<p>Flash 10 should be working out of the box if you have the package flashplugin-non-free-extrasound installed. If not working, try reinstalling the package. Totem should be working since the propper Gstreamer backend (packages gstreamer0.10-plugins-bad and/or gstreamer0.10-plugins-ugly). Regarding Wine, you need to change the sound driver to OSS in the Wine Configuration thing. Mplayer and vlc may have to be configured on their own options to have audio working. I will dedicate a whole section to Skype.</p>
<p>In case something&#8217;s wrong, here&#8217;s an explanation of some of the tools available, things you can do with them and things to look up. I will put them in an order that makes sense as a debugging procedure.</p>
<p><strong>osstest</strong> is a command line utility that will play audio on all output devices avaialbe, it will run thru all devices registered in /dev/oss/oss_hdaudio/ (note that the last folder oss_hdaudio is driver specific). Running this will reveal if your soundcard is properly supported and the driver is properly installed. If you hear the audio test, then any playback problem lay elsewhere.</p>
<p><strong>ossxmix</strong> is the mixer GUI you&#8217;ve seen a screenshot earlier. It looks pretty bad and confusing. There&#8217;s a couple of things I would like point out.<br />
<strong>vmix</strong> stands for virtual mixer. This needs to be enabled for you to have multiple applications outputing audio at the same time, if you can&#8217;t play music in totem while watching a video a youtube, this is what you should be looking at. <strong>vmix0-src </strong>should be set to <strong>Production</strong> for the best sound quality possible. <strong>vmix0-outvol/-invol</strong> are respectively the volume of the ouput and the input, meaning playback and recording respectively. At the bottom you will see the mixer itself, several channels available and each application will connect to one of the channels. You can have one application occupy multiple channels, for instance, skype may use one input channel and one output and you will see both channels in the mixer. I don&#8217;t know as of now if there is a maximum number of channels and if you can do anything to change them. I still haven&#8217;t had any problems with that.<br />
In the middle rows you will have the rest of the devices your soundcard is packing. It&#8217;s an enormous mess and the mess will be different from soundcard to soundcard, so I won&#8217;t go too deep on this. And note that by mess I don&#8217;t mean just mess in presentation, the driver itself may have some bugs and the controls will not work as intended or even in a logical way. To try to understand what is doing what, you can play some music in whatever program is working, play with the controls and see the changes in real time. It is useful to find out how to manually mute the internal speaker of your laptop, since like I mentioned, headphone detection doesn&#8217;t normally work. Microphone problems will be solved also by playing with the mixer, but the easiest way to use the mixer with ossrecord as I&#8217;ll explain in a second.</p>
<p><strong>ossdevlinks</strong> shows the symlinks to which /dev/dsp* entries point. From what I understand, versions prior to OSSv4 used these /dev/dsp* entries, but in V4 they use different entries and basically the dsp ones link to the ones used in V4.  You need to run it as sudo and with the -v option, <strong>sudo ossdevlinks -v</strong> . Here&#8217;s an example output</p>
<p><em>4 audio devices<br />
/dev/dsp4 is the next free legacy device<br />
/dev/dsp0: symlink -&gt; /dev/oss/oss_hdaudio0/pcm0 OK<br />
/dev/dsp1: symlink -&gt; /dev/oss/oss_hdaudio0/pcm1 OK<br />
/dev/dsp2: symlink -&gt; /dev/oss/oss_hdaudio0/pcmin0 OK<br />
/dev/dsp3: symlink -&gt; /dev/oss/oss_hdaudio0/pcmin1 OK<br />
&#8230;<br />
</em></p>
<p>Here&#8217;s a brief explanation of what I understand of this output. pcm0/1 are respectively the internal speaker of my laptop and the headphone. I can see this by running osstest and checking wich pcm is which. So choosing the playback channel is done. pcmin0/1 are two available inputs, which in theory I would guess  should be the internal and the external mic. This is a bit more tricky, because in effect you can only select one mic at a time, which one is selected in the mixer.</p>
<p>This will come in handy to use ossrecord and to setup skype or any application that uses the dsp links.</p>
<p><strong>ossrecord</strong> will record audio from the currently selected input device. An interesting way to use it is to redirect its output directly to ossplay like so</p>
<p><code>ossrecord - | ossplay -</code></p>
<p>Using this you can listen immediately to what&#8217;s being recorded. If you are having trouble with choosing the internal mic or the external mic in a laptop, for instance, with this command you can listen in real time to changes you make in the mixer. The problems you might be dealing with are a combination of muting and selection. Example, you might have the external mic selected, but if its muted you won&#8217;t hear a thing. Yep, it&#8217;s a mess.<br />
In my case I was able to choose the external mic by doing the following irrational procedure</p>
<p><code>ossrecord -d/dev/dsp3 - | ossplay -</code></p>
<p>The -d option forces ossrecord to listen to a specific device. With dsp3,  selecting speaker/dmic I heard the external/internal mic respectively. Here&#8217;s a screenshot of what I mean.</p>
<div id="attachment_351" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2009/06/mix_mics.png"><img class="size-medium wp-image-351" title="mix_mics" src="http://linuxd.files.wordpress.com/2009/06/mix_mics.png?w=300&#038;h=84" alt="There is no difference between this and something absolutely random" width="300" height="84" /></a><p class="wp-caption-text">There is no difference between this and something absolutely random</p></div>
<p>Bottomline, by trial and error I found out that /dev/dsp3 is outputting the selected microphone in the mixer. Selecting the mic in the mixer was a shot in the dark. I knew which input devices were available by checking ossdevlinks and noticing that dsp2/3 were linked to pcmin0/1.</p>
<p>By  know you should&#8217;ve have mastered your soundcard if the installation went alright. There are still some things worth mentioning.</p>
<p><strong> </strong></p>
<p>The <strong>volume applet</strong> is tricky. When you use your keyboard to change the volume it&#8217;s the same as changing it in the volume applet, and which mixer track this affects is chosen in the sound preferences dialog as I mentioned earlier. Going to volume control you will access the mixer. Since no more alsa and no more pulseaudio, you will have only one mixer available which is much more sane. This has basically the same options ossxmix has (note that you have to enable all the possible options choosing preferences and putting them all visible), but presented in a different way. I do not recommend using this, although it works, I do believe some options are missing, I recommend setting your audio using ossxmix.</p>
<p><strong>ossmix</strong> is the command line mixer. Running ossmix will dump all the information ossxmix presents graphically. By using ossmix with some options, you can change the levels and switches you change in ossxmix. In theory, if you wish to have headphones automatically detected you should try to automatically run a specific command that mutes the laptop internal speaker when the headphone is detected. I have yet to find how to do this. Also, if you&#8217;d like to mute/unmute the internal speaker easily, you can try to do a script that toggles the value and then make a shortcut on the desktop that runs the script, enabling you to mute/unmute with a double click. I haven&#8217;t done this, but it shouldn&#8217;t be too difficult, it&#8217;s a basic if/then/else structure.</p>
<p><strong>ossinfo</strong> will display information regarding the current configuration. Running <strong>ossinfo -v4</strong> will display all available information.</p>
<p><strong>Skype</strong></p>
<p>I believe this is worth a section of its own. In case you&#8217;re running Ubuntu, you should have the medibuntu repository installed and this will provide the required packages. The skype package only supports ALSA/pulseaudio. If you have this installed and wish to start using OSS, uninstall the skype package and install <strong>skype-static-oss</strong>. As a side note, this version of skype will not blend in your GTK theme, it comes with a &#8220;static&#8221; qt configuration.<br />
You will need to configure the audio. In the options you can see that the devices are referenced as /dev/dspX instead of a more user friend reference, like in the screenshot.</p>
<div id="attachment_345" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.files.wordpress.com/2009/06/skype_dsp.png"><img class="size-medium wp-image-345" title="skype_dsp" src="http://linuxd.files.wordpress.com/2009/06/skype_dsp.png?w=300&#038;h=166" alt="You think this is bad? Ever seen how it looks like with ALSA+pulse?" width="300" height="166" /></a><p class="wp-caption-text">You think this is bad? Ever seen how it looks like with ALSA+pulse?</p></div>
<p>By know you should know how to deal with this. I have explained how to find out what the dsp links are referencing, which ones are input or output and how to test them in real time. Usually you&#8217;re sound out and ringing should be /dev/dsp, the sound in you should find out by using ossrecord.</p>
<p><strong>3.Other problems and things I found out</strong></p>
<p>Disabling vmix will make sound applications use much less cpu (around half), but you can one play one at a time. It is mentioned in <a href="http://www.4front-tech.com/forum/viewtopic.php?t=2846&amp;highlight=cpu+usage" target="_blank">this forum post</a> that disabling vmix for recording channels will bring the cpu down. I honestly did not understand the procedure so well, what do you mean dettach then attach?bah, I think I did it but didn&#8217;t really see any effects.</p>
<p>Suspend/resume I did not find a solution. In theory, you should disable audio by running soundoff on suspend and renable it by running soundon on resume, and this implies altering whatever scripts are run in both operations. Does any one know how to this?</p>
<p>The workaround to enable gnome sounds is quite simple but I don&#8217;t remember where I saw it.</p>
<p>After I got everything working I purged pulseaudio from my system, but didn&#8217;t touch alsa. It should not be a problem.</p>
<p><strong>4.Conclusion</strong></p>
<p>I initially installed OSS to try to tackle 3 issues.<br />
First, I noticed that pulseaudio was using a lot of CPU and I head that OSS used less resources. On the CPU level, I did not see any real difference, only with vmix disabled would CPU usage come considerably down. Some people report other results though.<br />
Second, I use spotify to listen to music. With alsa/pulseaudio the sound was choppy, freezing at least twice every minute and it was annoying me. Changing the wine driver to OSS and running spotify with padsp, a wrapper for pulseaudio, brought the choppiness down but not completely and the CPU usage was very high. I expected that running OSS natively with solve all the problems. Well, CPU went to normal because you don&#8217;t need the wrapper anymore, choppiness went further down but never disappeared. I am still trying to figure out how to solve the issue.<br />
Thirdly, skype in Ubuntu 9.04 is not working well. The sound freezes after a random amount of time and there is no definite solution. By the use of voodoo I was able to make it work, but honestly I don&#8217;t even remember what I did. With OSS skype works fine.<br />
So, bottom line, after installing OSS runs quite well but it did not solve all my problems. I like that the mixing is less insane than with alsa+pulse, but it sadly has some problems and the GUI mixer is not intuitive by any means. Since I did a lot of research, I know that some soundcards are only supported by OSS and there isn&#8217;t any good in-depth guide I could find online, I decided to write this.</p>
<p>For further help, please check the <a href="http://www.4front-tech.com/forum/" target="_blank">4front user forum</a>. What this guide contains is basicaly all I know about OSS.</p>
<p><strong>References</strong></p>
<p><a href="http://wiki.archlinux.org/index.php/OSS" target="_blank">arch linux wiki</a><br />
<a href="http://www.4front-tech.com/forum/" target="_blank"> 4front user forum</a></p>
<p><a href="http://www.harshj.com/2009/05/16/get-rid-of-all-pulseaudio-problems-use-oss/#more-603" target="_blank">harshJ blog</a><a href="http://www.opensound.com/release/oss-install.pdf" target="_blank"><br />
Pdf from 4front</a> with installation instructions, hardware support and general overview of tools.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/linuxd.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/linuxd.wordpress.com/334/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=linuxd.wordpress.com&#038;blog=3880780&#038;post=334&#038;subd=linuxd&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://linuxd.wordpress.com/2009/06/28/installing-configuring-and-debugging-ossv4/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc07702093b7f4f70fc6357a6d633ddc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anonymousbloke</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2009/06/ossxmix.png?w=300" medium="image">
			<media:title type="html">ossxmix</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2009/06/alsa_mess.png?w=300" medium="image">
			<media:title type="html">alsa_mess</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2009/06/sound_preferences.png?w=287" medium="image">
			<media:title type="html">sound_preferences</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2009/06/volume_applet.png" medium="image">
			<media:title type="html">volume_applet</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2009/06/mix_mics.png?w=300" medium="image">
			<media:title type="html">mix_mics</media:title>
		</media:content>

		<media:content url="http://linuxd.files.wordpress.com/2009/06/skype_dsp.png?w=300" medium="image">
			<media:title type="html">skype_dsp</media:title>
		</media:content>
	</item>
	</channel>
</rss>
