<?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>Trausch’s Little Home &#187; Ubuntu</title>
	<atom:link href="http://mike.trausch.us/blog/tag/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://mike.trausch.us/blog</link>
	<description>My writing on life, computers, and technology</description>
	<lastBuildDate>Wed, 09 Feb 2011 18:16:20 +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>Can you force freedom and it still be freedom?</title>
		<link>http://mike.trausch.us/blog/2010/01/19/can-you-force-freedom-and-it-still-be-freedom/</link>
		<comments>http://mike.trausch.us/blog/2010/01/19/can-you-force-freedom-and-it-still-be-freedom/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 05:12:57 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[FLOSS]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[GPLv3]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[wtf‽]]></category>

		<guid isPermaLink="false">http://mike.trausch.us/blog/?p=581</guid>
		<description><![CDATA[So back on this topic again today.  I am going to take a look at a few different statements here in this post, and then I&#8217;m going to go over them and explain why these statements are or are not correct.  Should you wish to verify any of my information, you&#8217;re more than welcome to [...]]]></description>
			<content:encoded><![CDATA[<p>So back on this topic again today.  I am going to take a look at a few different statements here in this post, and then I&#8217;m going to go over them and explain why these statements are or are not correct.  Should you wish to verify any of my information, you&#8217;re more than welcome to do so—just make sure you actually know what you&#8217;re talking about before you call me “wrong” on this one, or I will absolutely ignore you.  I have other—and more important—things to do than put up with <a href="http://en.wikipedia.org/wiki/Troll_(internet)">trolls</a> who cannot do basic research (of course, this means that I expect that you know how to use <a href="http://www.google.com/">Google</a> and <a href="http://en.wikipedia.org/">Wikipedia</a> and will do so before writing your responses, but hey, I could be expecting too much).</p>
<h3>“You can have <a href="http://en.wikipedia.org/wiki/Freedom_(philosophy)">freedom</a> without <a href="http://en.wikipedia.org/wiki/Choice">choice</a>.”</h3>
<p>That someone could even come up with this one is just amazing to me. Note that this is not an exact quote, but it is the summary of Friday&#8217;s topic. For example, this summary comes from the idea that <a href="http://en.wikipedia.org/wiki/Canonical_Ltd.">Canonical</a> is bad for <a href="http://ubuntuforums.org/showthread.php?t=1381221">considering making mainstream non-free software available for Ubuntu based on user preferences</a>. It does not matter who came up with it, of course, but the important thing is that it be called what it is: patently absurd. The ability to choose is a major part of what freedom—or <a href="http://en.wikipedia.org/wiki/Liberty">liberty</a>—is. If you cannot make a choice on a matter, then by definition you do not have freedom in the context of that matter. It is quite simple and self-explanatory. Canonical is seeking to <em>increase</em> freedom here, not take it away. Some people actually <em>want</em> to use <a href="http://en.wikipedia.org/wiki/Proprietary_software">non-free software</a>; others may not want to use it, but aren&#8217;t aware of alternatives. The latter group of people should have our focus with regard to education (but then we should <em>let them make the choice for themselves</em>!).</p>
<p>Note that I am not one of these people: I would rather use <a href="http://en.wikipedia.org/wiki/Free_software">free software</a> because of the liberty it gives me that I have come to expect over the years. But I am <em>not</em> going to tell someone else that they are <em>harming</em> me because they would rather use non-free software that is familiar to them. All I can do is show them that there are free alternatives that exist. I cannot—and I will not—make them use it or make them feel bad for not using it. I may not like proprietary software for a variety of reasons, but I will defend people&#8217;s right to use it just as I will defend even a <a href="http://en.wikipedia.org/wiki/Stupidity">stupid</a> person&#8217;s right to spew nonsense by way of speech or written word. In other words, “<a href="http://en.wikiquote.org/wiki/Evelyn_Beatrice_Hall">I disapprove of what you say, but I will defend to the death your right to say it</a>,” or perhaps more appropriately, “I [may] disapprove of what [software you run], but I will defend to the death your right to [run] it.” Even I use a <a href="http://en.wikipedia.org/wiki/Fglrx">package</a> or <a href="http://en.wikipedia.org/wiki/NVIDIA#Documentation_and_drivers">two</a> that is proprietary in nature (though it is looking like I will not have to do so for much longer, given the efforts to replace these packages with equivalent free software).</p>
<p>It is worth it to note that by adding non-free software to <a href="http://www.ubuntu.com">Ubuntu</a>, the free software that is already there does not change. The mere existence of non-free software within its repositories does not make Ubuntu somehow bad or evil. It would add choices that do not currently exist, and that one such as myself or yourself can certainly opt out of—I most likely would, for the most part, as I do not need to depend on non-free application software, and I only use non-free drivers if I have hardware where anything else is nonviable (and only until there are functional free software drivers). Did you know that Ubuntu has <a href="https://lists.ubuntu.com/archives/gobuntu-devel/2008-April/000651.html">an option in the installer to only install free software</a>? Can you say that for your favorite desktop <a href="http://en.wikipedia.org/wiki/Operating_system">operating system</a> distribution, whatever that might be?</p>
<p>The response to this idea, then, is that without choice, there is very little—if any, really—freedom. The thing that gives us freedom with free software is that we are able to to download the source code, to review/audit it, to change it to fit our needs or fix a problem, and to share those changes. If we cannot do those things, then it is not free software; see the <a href="http://www.gnu.org/philosophy/free-sw.html">essential freedoms</a>. But non-free software inside a distribution is not something that should not cause you great consternation even if you are among the most dedicated of freedom advocates, for if you are a true advocate of <em>freedom</em> then by definition you <em>must</em> respect a computer user&#8217;s freedom of choice. Remember that we choose to run free software because of the benefits it brings to us; we choose to improve upon free software for much the same reason. Eventually, I think that free software will <a href="http://en.wikipedia.org/wiki/History_of_free_software">once again</a> become the norm for computer software, on <a href="http://en.wiktionary.org/wiki/merit">merit</a> alone, for no other reason than the development, release, and usage of free software is a highly practical solution for many things ranging from <a href="http://en.wikipedia.org/wiki/Library_(computing)">library code</a> to <a href="http://en.wikipedia.org/wiki/Application_software">application software</a> to complete operating systems. It is worth noting that <a href="http://en.wikipedia.org/wiki/Free_content">free content</a>—which is similar in concept to free software, which itself is merely a specific application of freedom itself—also appears to making major headway towards becoming mainstream; it is doing so more quickly than free software is, but there is every reason to believe that free software will follow, for it is already.</p>
<h4>An Example</h4>
<p>Imagine that you are in a store, because you need some milk for dinner some night. You always get 1 gallon of 2%. But, the store has stopped carrying it, because more people buy whole milk and they were throwing away the 2% milk—demand was low, supply got to be too high, so they just stopped carrying it altogether. You leave the store and head to the next in the same town and you find the same thing there. You have a choice of stores to go to, and you have made the choice to go buy yourself some milk. But there is only one type of milk. You no longer have the choice to buy 2% where you are, and so effectively, your freedom to buy it has been taken away. (Of course, <a href="http://www.thriftyfun.com/tf73187289.tip.html">you can make 2% milk</a> <a href="http://answers.yahoo.com/question/index?qid=20090809170811AAT0NO3">from whole milk</a> (and <a href="http://wiki.answers.com/Q/How_much_butter_added_to_skim_milk_will_make_whole_milk">make whole from 2% even</a>, or <a href="http://www.cookingforengineers.com/article/113/Making-Butter">even butter</a>), but I suspect just as many people want to do that as want to write their own free software that they <em>demand</em> simply must exist, but doesn&#8217;t yet).</p>
<p>Now, the point here is that there is more than one freedom in play: the freedom of the store to stock (or not stock) various products, which affects your freedom as a <a href="http://en.wikipedia.org/wiki/Consumer">consumer</a> to buy the product you want. In the case of software, and choice, if the software you are running gives you all the choices you want, <em>then it fits your needs</em>. If it does <em>not</em>, then you are not going to be able to use it the way you want. Now you have two choices: you can do the work that it would take to make your desired choice possible, or you can use another system (free or proprietary) that will give you the choice that you want. Many people will choose the latter, especially if they are non-programmers. Though I&#8217;ve seen programmers also choose to use proprietary systems for something that they could themselves implement. That is their choice, of course. After all, if you really wanted 2% milk, you would have the same choice: make it yourself, or drive to the next town over which might have it available for you (assuming that there is some in stock and that the stores neighboring towns have not also decided to stop stocking 2% milk).</p>
<h4>Ubuntu One: The Reason Behind This</h4>
<p>This discussion came up because someone on <a href="http://identi.ca">identi.ca</a> made the claim that Canonical is forcing proprietary software into Ubuntu by way of the <a href="http://en.wikipedia.org/wiki/Ubuntu_One">Ubuntu One</a> client software. I cannot even begin to state just how woefully incorrect this point of view is. First off: the <em>only</em> thing added to Ubuntu is the ability to connect to Ubuntu One, and the software that was added to Ubuntu do to that is licensed under Version 3 of the <a href="http://en.wikipedia.org/wiki/GPL"><strong>GNU General Public License</strong></a>. The claim made in response to that was that Ubuntu One is only <em>partly</em> free software, because the server is somewhere else and has not been released. As we shall soon see, that claim is nonsensical—it depends on an extremely naïve view of how software actually works in order to make sense, really.</p>
<p>So, first things first: Ubuntu One, which was added to Ubuntu 9.04, is <em>not</em> proprietary software. The proof rests in the fact that it GNU GPL v3.0, and we know <em>a priori</em> that software licensed under the GPL is free software, so we do not need to go further on that point.</p>
<p>Now, because the software in question added to Ubuntu is free software, we can read it. The essential freedoms granted to us by truly free software ensure this, and the GPLv3 is indeed a truly free software license because it grants those freedoms. Because we are able to study the software and see how it communicates with the server. Once we know how to communicate with the server, we can write that up and design a server that communicates exactly the same way. From there, it is just a matter of patching the sync dæmon that is in Ubuntu to talk to an arbitrary, Ubuntu One compatible server. To determine how to do that, one need only read the <a href="http://python.org/">Python</a> source code contained in the <code>python-ubuntuone-storageprotocol</code> and <code>python-ubuntuone-client</code> packages. If you do not know Python well, you might expect to spend several days doing that, but if it bothers you so tremendously that you are going to practically start a flame war over it, you may find it worth it to do so.</p>
<p>Of course, the other side to that is this: if you really want Ubuntu One to talk to an arbitrary server that runs free software, and you want that free software to be written, you can fund the effort to write the free software. Approach a proficient developer somewhere out there on the Internet and ask them how much they&#8217;d charge to write a server for Ubuntu One. You might not be able to afford the fund the project entirely, but if you get a number from someone, you can start a coordinated effort to raise the funds. If you are lucky enough to be able to fund the whole project, then do so: it is but one way that you can help provide something back to the community. This does not apply to just an implementation of the Ubuntu One protocol, it could apply to anything that you see that is missing and needs to be created. Or you could spend time learning what you need to learn to pick up the project yourself, if you care for the project that deeply. The most important attribute that a person can have in order to get started with development is motivation—<a href="http://jameswestby.net/weblog">James Westby</a> reminded me of this a couple of years ago, something which I had forgotten.</p>
<h4>Perceptions: Another (Possible) Reason</h4>
<p>It was suggested to me that another possible reason that people would object to having non-free software inside an operating system distribution such as Ubuntu is that they are afraid that the proprietary options have higher quality, or offer superior features, or provide functionality that is not offered by any existing free software. Thus, they have this perception that by adding such non-free software into a distribution like Ubuntu, people will automatically use and prefer it over free software. This simply is not the case. Sure, some people will use iTunes if it is available on Ubuntu. Maybe many people would. I <em>might</em> even do so, if it were legally available for me to use that way <em>and</em> if it supports the purchase of <a href="http://en.wikipedia.org/wiki/Digital_rights_management">DRM</a>-free music. However, if there were a free software client for the iTunes store, I&#8217;d much prefer to use that. To my knowledge, however, there is no such thing that exists.</p>
<p>If there is not a free software alternative for a non-free component inside a distribution of software, if you are offended by that, then by all means, <em>create a free software alternative for it</em>! As mentioned above, you can start on such a project&#8217;s development, or you can look for people that would be interested in volunteering for it and coordinating them, or you can put up funds to pay developers to implement it. If you have money, this can be the easy part: find someone who is willing to accept payment for the service of implementing the free software alternative for whatever it is that someone else has funded, wrote, and released as proprietary software. It is not like free software is developed without cost (and if you think that it is, then you seriously do not understand what free software is or anything about the world of free software and have no standing to be getting mad when a company spends money writing software and does not release it as free software. You can try to write companies that write such software and ask them if they will give you any form of written specifications for the software, or an interface definition, or something along those lines. The worst thing that could happen is that you will be told “no”. And do so <em>nicely</em>, or they&#8217;ll be more inclined to tell you “bugger off” instead of simply “no”.</p>
<h3>“Allowing users to choose proprietary software is anti-freedom.”</h3>
<p>Nothing could be farther from the truth; it is the same, in fact, as the above statement that one can have freedom without choice. For example, if Ubuntu adopts iTunes and makes it so that you can “sudo aptitude install itunes” in the future, that is <em><strong>not</strong></em> a bad thing! How <em>can</em> it be—It contributes to the ability to choose, and thereby <em>contributes to the freedom of the end-user</em>. If you are a die-hard free software supporter and do not want to run non-free software on your system, then there is a very simple solution for you: <em><strong>simply don&#8217;t install it</strong></em>.  That <strong>is</strong> a valid solution to the problem. There are tools already available that can be run as a <a href="http://en.wikipedia.org/wiki/Cron">cron job</a> and report on any non-free software that you might have accidentally (or even intentionally) installed. If you are worried about additional non-free software getting into Ubuntu, then help enhance those tools. Or write a <a href="http://en.wikipedia.org/wiki/GUI">GUI</a> <a href="http://en.wikipedia.org/wiki/Front_end">front-end</a> for something like the <a href="http://en.wikipedia.org/wiki/Vrms">virtual RMS</a> program and work to get that included into Ubuntu as well, perhaps something that can run every time you login to the computer, or that runs as a persistent process that watches the package database on your distribution of choice for updates and then checks to see if newly installed software is non-free and alerts the user. Of course, it&#8217;d be most effective as an opt-in system, and not an <a href="http://en.wikipedia.org/wiki/Opt-out">opt-out</a> one where it would just be annoying.</p>
<p>There is no way, then, that freedom is actually reduced in this way when another choice becomes available. If iTunes were to be included in the repositories (and I suspect it would be, <a href="http://www.ubuntu.com/community/ubuntustory/components">like the restricted, universe and multiverse repositories</a>, a separate opt-in repository; perhaps simply “proprietary” would be fitting), this does not reduce your ability to choose to run a free software media player and manager like <a href="http://banshee-project.org/">Banshee</a>, or <a href="http://projects.gnome.org/rhythmbox/">Rhythmbox</a>, or even <a href="http://amarok.kde.org/">AmaroK</a> if you are so inclined to run that KDE stuff.</p>
<p>Once upon a time, <a href="http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt">FUD (fear, uncertainty, and doubt)</a> was the tool of Microsoft. We (the free software world) <em>completely</em> hated it when Microsoft would put out FUD, because we would then have to fight that FUD by way of explanation and demonstration. Well, some time ago, a subgroup of the free software world decided to start using FUD themselves—it was done with <a href="http://en.wikipedia.org/wiki/Mono_(software)">Mono</a>, and it is being done now with just a <em>survey</em> asking people what sort of software they would like to see in Ubuntu. Now, those of us who are left who are advocates of liberty—both personal and societal—are stuck potentially fighting <strong><em>two</em></strong> battles. One with Microsoft&#8217;s FUD—such as the constant notion that you have to pay for software—and one with the &#8220;free software evangelists&#8221; FUD, who have even gone so far as to say that people should not use certain types of free software (the one who calls himself “The Open Sourcer” <a href="http://www.theopensourcerer.com/tag/mono/">even still today tells people to remove certain truly free software from their systems</a>). The truth is somewhere in the middle, between these two ends of the spectrum.</p>
<h3>Conclusion</h3>
<p>Back to the point at hand: to say that giving a person a choice is a constraint on that person&#8217;s freedom, that is <a href="http://en.wikipedia.org/wiki/Doublespeak">doublespeak</a>.; it is saying that “slavery is freedom,” albeit to a lesser degree than that very melodramatic extreme—it simply does not make sense. The concept just does not make sense unless the words that are used to express the concept are dramatically redefined to mean things vastly different from what standard English dictionaries define them to be. The only reason that one has to try to convince someone that additional choice is a constraint on freedom is to try to convince people of things that are not true; to install fear, uncertainty, and doubt into people. This is the sort of behavior that—no matter <em><strong>what</strong></em> community it originates from—is completely immoral, unethical, and absolutely unacceptable. It&#8217;s dishonest, and for those of you who know me personally, you know what I think of dishonesty.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2010/01/19/can-you-force-freedom-and-it-still-be-freedom/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Unexpected downtime for trausch.us, mischiefinoverdrive.us.</title>
		<link>http://mike.trausch.us/blog/2009/10/26/unexpected-downtime-for-trausch-us-mischiefinoverdrive-us/</link>
		<comments>http://mike.trausch.us/blog/2009/10/26/unexpected-downtime-for-trausch-us-mischiefinoverdrive-us/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 14:17:31 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[site maintenance]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mike.trausch.us/blog/?p=573</guid>
		<description><![CDATA[So, this weekend was&#8230; interesting. Through something of a comedy of errors, the server suffered some strange software issues that prevented it from working this weekend.&#160; There was a bug in a recent update to the server software (running testing software)&#160;and that caused longer downtime than it should have due to various interactions between things [...]]]></description>
			<content:encoded><![CDATA[<p>So, this weekend was&#8230; interesting.</p>
<p>Through something of a comedy of errors, the server suffered some strange software issues that prevented it from working this weekend.&nbsp; There was a bug in a recent update to the server software (running testing software)&nbsp;and that caused longer downtime than it should have due to various interactions between things on the server.&nbsp; The good news is that this is mostly fixed.</p>
<p>Additionally, this downtime has taught me that there is yet still more to do in terms of getting the server able to stand back up on its own.&nbsp; I&#8217;ve simplified the server&#8217;s setup a bit, and I&nbsp;have to write some scripts and other little glue here and there to tie down some of the things I&#8217;m doing so that the server can do things like go down and come back up without issues, all by itself.&nbsp; Getting that done would be generally a good thing. &nbsp;First things first, I&nbsp;have to figure out a decently reliable way to shutdown the system without having to do something like kill the containers and not give them the chance to cleanly shut down.&nbsp; Ideally, there would be some sort of command that could be run on the system that would enable the containers to be shutdown.&nbsp; This is slightly challenging, because you cannot just chroot into the directory tree that the VMs are running in and kill processes, because things like /proc inside the container aren&#8217;t visible to tools running on the host.&nbsp; Oops.</p>
<p>So, I&nbsp;have some work left yet in terms of getting the server going the way it needs to be again.&nbsp; After that, I&#8217;ll be working on it over the next couple of weekends to try to increase its robustness, and so planned weekend downtime for *.trausch.us and www.mischiefinoverdrive.us can be expected.&nbsp; </p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2009/10/26/unexpected-downtime-for-trausch-us-mischiefinoverdrive-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>m4: An underappreciated tool</title>
		<link>http://mike.trausch.us/blog/2009/09/08/m4-an-underappreciated-tool/</link>
		<comments>http://mike.trausch.us/blog/2009/09/08/m4-an-underappreciated-tool/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 13:05:19 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[cool stuff]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[m4]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://mike.trausch.us/blog/?p=556</guid>
		<description><![CDATA[In 40+ years of computing, there is bound to be software and tools that people are simply not aware of, or have forgotten about, or have moved from the forefront to behind the scenes&#8212;there are actually lots of these.&#160; One of the reasons that I&#160;watch Freshmeat for software releases is to constantly look for things [...]]]></description>
			<content:encoded><![CDATA[<p>In 40+ years of computing, there is <strong>bound</strong> to be software and tools that people are simply not aware of, or have forgotten about, or have moved from the forefront to behind the scenes&mdash;there are actually <em>lots</em> of these.&nbsp; One of the reasons that I&nbsp;watch <a href="http://freshmeat.net/">Freshmeat</a> for software releases is to constantly look for things that I&nbsp;might be able to use or are just plain nifty.&nbsp; After all, there is a <em>lot</em> of software out there.</p>
<p>One piece of software that is almost ubiquitous (at least, outside of the not-so-wonderful world of Microsoft Windows) is a small program known as <a href="http://en.wikipedia.org/wiki/M4_%28computer_language%29"><tt>m4</tt></a>.&nbsp; You may or may not have heard of it, and you have probably never used it outside of the <a href="http://en.wikipedia.org/wiki/GNU_build_system">GNU&nbsp;build system</a> if you&#8217;ve used that at all.&nbsp; <tt>m4</tt> is fantastic, if hard to learn, but it is available and it is a pretty much standard component of most UNIX-like systems.&nbsp; It is a <a href="http://en.wikipedia.org/wiki/Macro_%28computer_science%29">macro</a> processor that dates back to V7 UNIX&nbsp;and it&#8217;s been standardized as part of the POSIX&nbsp;body of standards, and <a href="http://www.gnu.org/software/m4/">GNU&nbsp;has its own version with extensions</a>.</p>
<p>Essentially, what you do with <tt>m4</tt> is create macros that process text, and then you can use those macros to simplify things.&nbsp; In other words, <tt>m4</tt> makes it possible to follow the <a href="http://en.wikipedia.org/wiki/Don%27t_Repeat_Yourself">DRY&nbsp;principle</a> when it comes to writing text documents, configuration files, and other text-based files.&nbsp; For example, I&#8217;ve written some macros to make it easier to work with <a href="http://en.wikipedia.org/wiki/Djbdns">djbdns</a> configuration files, which are available on my <a href="http://mike.trausch.us/software">software page</a>.&nbsp; Instead of writing a line that looks like this:</p>
<p><samp>+alltray.trausch.us:173.15.213.185:600</samp></p>
<p>I can write a line that looks like this:</p>
<p><samp>DD_A_FULL(alltray, 173.15.213.185)</samp></p>
<p>Or, for multiple hosts that share the same address,&nbsp;I&nbsp;can (actually, I&nbsp;do; this is from my configuration file) do this:</p>
<p><samp>DD_A_IP(173.15.213.185)<br />
DD_A(allspice)<br />
DD_A(alltray)<br />
DD_A(mike)<br />
DD_A(morganne)<br />
DD_A(phone)<br />
DD_A(projects)<br />
DD_A(sip)<br />
DD_A(vcs)<br />
DD_A(www)<br />
DD_A(gallery)<br />
DD_A(wiki)<br />
DD_AAAA_IP(2001:470:1f11:3f::1)<br />
DD_AAAA(allspice)<br />
DD_AAAA(alltray)<br />
DD_AAAA(mike)<br />
DD_AAAA(morganne)<br />
DD_AAAA(phone)<br />
DD_AAAA(projects)<br />
DD_AAAA(sip)<br />
DD_AAAA(vcs)<br />
DD_AAAA(www)<br />
DD_AAAA(gallery)<br />
DD_AAAA(wiki)<br />
DD_AAAA(spicerack)</samp></p>
<p>The nifty part is that the AAAA&nbsp;lines actually expand to:</p>
<p><samp>:allspice.trausch.us:28:\040\001\004\160\037\021\000\077\000\000\000\000\000\000\000\001:600</samp></p>
<p>Which, as you can imagine, is quite a pain to manage manually.&nbsp; However, using <tt>m4</tt> and some helper programs that are written in C&nbsp;for formatting IPv6 addresses for AAAA&nbsp;records and formatting SRV records for things like XMPP&nbsp;services, managing my configuration has become so easy that I&nbsp;don&#8217;t really have to think very hard to do it.&nbsp; I don&#8217;t have to seek out any online generators for SPF&nbsp;records, AAAA&nbsp;records, or SRV records. &nbsp;I&nbsp;don&#8217;t have to worry about repeating a TTL&nbsp;in every line, either, because I set up a domain like so:</p>
<p><samp>DD_DOMAIN(trausch.us)<br />
DD_TTL(600)<br />
DD_SOA(spicerack,mbt.zest.trausch.us,1800,600,21600,600)<br />
DD_NS(173.15.213.185,spicerack)<br />
DD_NS(,primary.staffasap.com)<br />
DD_PTR(173.15.213.185,spicerack)</samp></p>
<p>And for a section that should have a longer TTL, I&nbsp;do so by saying <samp>DD_TTL(<em>longer_ttl</em>)</samp> and then writing the new lines.&nbsp; I didn&#8217;t try to turn the configuration file format into something that was BIND-like (after all, part of the reason I&nbsp;left BIND&nbsp;was I&nbsp;hated managing its configuration files)&nbsp;but I&nbsp;<strong>did</strong> make the configuration easier for me to manage.&nbsp; Now, when I&nbsp;need a new address in the file, or change anything about my domain, it&#8217;s as simple as adding or deleting macro calls, and the rest is handled for me.&nbsp; (I also modified my Makefile that generates the djbdns &quot;data.cdb&quot;&nbsp;file so that <tt>m4</tt> is called automatically when I&nbsp;update the data.m4 file.)</p>
<p><tt>M4</tt> <em>can</em> be a major pain to use until you learn it.&nbsp; And while I&nbsp;do sometimes run into the occasional pitfall with it, I&#8217;ve used it for adding preprocessing capability to C#&nbsp;and Vala code to make my life easier, and I&#8217;ve used it for various other things in the past outside of the GNU&nbsp;build system.&nbsp; I&nbsp;absolutely <em>love</em> it.&nbsp; It is not for everyone&mdash;indeed, not everyone has a use for a macro processor&mdash;but if ever the need arises, it is well worth your time to learn <tt>m4</tt> and use it any time you need a macro processor.&nbsp; It sure beats having to learn macro processors that are specific to a particular environment, and thanks to Cygwin, you can use GNU&nbsp;<tt>m4</tt> on Windows, too, if you happen to be so unlucky as to have to live life with 20% of your CPU&nbsp;cycles (and who knows how much RAM) paid as a tax to fend off viruses and malware.&nbsp; <img src='http://mike.trausch.us/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>And no, <tt>m4</tt> isn&#8217;t just for programming, nor is it just for programmers.&nbsp; Anyone who works with a great deal of text is likely to have a good use case for it.&nbsp; People have been known to avoid using things like PHP&nbsp;and alleviate server-side stress by using a set of macros and generating all of their pages statically (without having to statically manage them all).&nbsp; This can be good if you have to work with a server that is extremely light on resources and shouldn&#8217;t be running things like server-side scripting languages and fetching data from databases.&nbsp; Instead, you can do all of the database lookups and page formulations ahead of time, meaning that the so-called &quot;slashdot effect&quot; doesn&#8217;t ever cause you any trouble on nearly any type of server since it is only serving static pages.&nbsp; Or writing documents that require things like legal boilerplate and the like; though the days of text processing and typesetting for the masses have generally gone away, sadly.&nbsp; There are a potentially unlimited number of applications that <tt>m4</tt> could be used for&mdash;and while <tt>m4</tt> is somewhat difficult to learn and can be frustrating at times, it&#8217;s <em>standard</em> and it has <em>decades</em> of history, like UNIX&nbsp;in general.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2009/09/08/m4-an-underappreciated-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Mono war is over and we have won, thanks to Microsoft.</title>
		<link>http://mike.trausch.us/blog/2009/07/06/the-mono-war-is-over-and-we-have-won-thanks-to-microsoft/</link>
		<comments>http://mike.trausch.us/blog/2009/07/06/the-mono-war-is-over-and-we-have-won-thanks-to-microsoft/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 23:18:58 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[FLOSS]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[cool stuff]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wtf‽]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[FUD]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://mike.trausch.us/blog/?p=543</guid>
		<description><![CDATA[Yeah, alright.  Those are words I would never have thought I&#8217;d see in a title in a blog post, “thanks to Microsoft.”  But, it is true.  Microsoft is adding C# and the CLI to the list of technologies that it promises it will not sue for.  This is Microsoft&#8217;s “Community Promise”, which means that to [...]]]></description>
			<content:encoded><![CDATA[<p>Yeah, alright.  Those are words I would never have thought I&#8217;d see in a title in a blog post, “thanks to Microsoft.”  But, it is true.  <a href="http://port25.technet.com/archive/2009/07/06/the-ecma-c-and-cli-standards.aspx">Microsoft is adding C# and the CLI to the list of technologies that it promises it will not sue for</a>.  This is Microsoft&#8217;s “Community Promise”, which means that to all of you who claimed that patents were a problem for Mono, if you were not wrong before, you are <em>absolutely, categorically, totally, utterly</em> wrong now.</p>
<p>One of the very few times I have uttered this phrase, but it works now:  <strong>Thanks, Microsoft</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2009/07/06/the-mono-war-is-over-and-we-have-won-thanks-to-microsoft/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing Sun JRE 6u12 on Ubuntu Intrepid 8.10</title>
		<link>http://mike.trausch.us/blog/2009/02/15/installing-sun-jre-6u12-on-ubuntu-intrepid-810/</link>
		<comments>http://mike.trausch.us/blog/2009/02/15/installing-sun-jre-6u12-on-ubuntu-intrepid-810/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 09:34:49 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.trausch.us/?p=486</guid>
		<description><![CDATA[Just a quick set of notes I accumulated earlier when I installed the new JRE on a couple of 64-bit (AMD64) Intrepid machines. Download the JRE or the JDK for 6u12 from Sun Microsystem’s Java download page. Select the bin option, NOT the RPM. Save the file to your home directory. When the download is [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick set of notes I accumulated earlier when I installed the new JRE on a couple of 64-bit (AMD64) Intrepid machines.</p>
<ol>
<li>Download the JRE or the JDK for 6u12 <a href="http://java.sun.com/javase/downloads/index.jsp">from Sun Microsystem’s Java download page</a>.  Select the bin option, <strong>NOT</strong> the RPM.</li>
<li>Save the file to your home directory.</li>
<li>
    When the download is complete, open a terminal and enter:</p>
<ul>
<li>chmod +x jre-6u12-linux-x64.bin</li>
<li>sudo mkdir /opt; cd /opt</li>
<li>sudo ~/jre-6u12-linux-x64.bin</li>
</ul>
</li>
<li>Type &#8220;q&#8221; and then type &#8220;yes&#8221; followed by <enter> to accept the license agreement, and the software will now extract in <tt>/opt/jre1.6.0_12</tt></enter></li>
<li>
    Tell Ubuntu how to use it:</p>
<ul>
<li>sudo update-alternatives &#45;-install /usr/bin/java java /opt/jre1.6.0_12/bin/java 1</li>
<li>sudo update-alternatives &#45;-install /usr/lib/xulrunner/plugins/javaplugin.so xulrunner-1.9-javaplugin.so /opt/jre1.6.0_12/lib/amd64/libnpjp2.so 1</li>
<li>sudo update-alternatives &#45;-install /usr/bin/javaws javaws /opt/jre1.6.0_12/bin/javaws 1</li>
<li>If you downloaded the JDK, set up links for javac this way, too.</li>
</ul>
</li>
<li>
    Tell your Ubuntu system to use the new JRE:</p>
<ul>
<li>sudo update-alternatives &#45;-set java /opt/jre1.6.0_12/bin/java</li>
<li>sudo update-alternatives &#45;-set xulrunner-1.9-javaplugin.so /opt/jre1.6.0_12/lib/amd64/libnpjp2.so</li>
<li>sudo update-alternatives &#45;-set javaws /opt/jre1.6.0_12/bin/javaws</li>
</ul>
</li>
<li>Restart Firefox, and verify that it works:
<ul>
<li>Type “about:plugins” in the address bar, and you should see a bunch of stuff for Java there.</li>
<li>Go to <a href="http://www.javatester.org/version.html">the Java Version Tester</a>.  It should tell you that you are running Java Version 1.6.0_12 from Sun Microsystems Inc.</li>
</ul>
</li>
</ol>
<p>There you have it—a functioning Sun JVM in your 64-bit Web browser.  It&#8217;s about damn time, Sun!</p>
<p>Also, you will want to run *.jnlp files with “javaws”.  You can do that in whatever your file manager is, and you may also need to do that with your browser (say, Firefox).  There are instructions for Nautilus in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2009/02/15/installing-sun-jre-6u12-on-ubuntu-intrepid-810/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>On setting up Kerberos, OpenLDAP, and NFSv4</title>
		<link>http://mike.trausch.us/blog/2008/11/19/on-setting-up-kerberos-openldap-and-nfsv4/</link>
		<comments>http://mike.trausch.us/blog/2008/11/19/on-setting-up-kerberos-openldap-and-nfsv4/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 08:33:15 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.trausch.us/?p=461</guid>
		<description><![CDATA[So, one of the things that I have wanted to do for a long time is setup the network at home such that it could become easier for us to use, and for me to manage. For some time now, Kerberos, LDAP, and NFSv4 is a combination of things that I have wanted to get [...]]]></description>
			<content:encoded><![CDATA[<p>So, one of the things that I have wanted to do for a long time is setup the network at home such that it could become easier for us to use, and for me to manage.  For some time now, Kerberos, LDAP, and NFSv4 is a combination of things that I have wanted to get going here.</p>
<p>I&#8217;d attempted it earlier, when I set up Ubuntu Hardy on my server just before it was officially released.  Due to time constraints, I wasn&#8217;t able to finish working on it, and that was different with the release of Intrepid.</p>
<p>It was my intent to document everything every step of the way so that it could be made easier for everyone and I could share everything I learned along the way.  That didn&#8217;t <em>quite</em> happen the way that I wanted, but I did still learn a lot and will be putting the final touches on testing the setup tomorrow, with the hope that it will work as my testing tonight shows it will.</p>
<p>After that, hopefully, I&#8217;ll be able to write up a document on setting this up with Ubuntu.  There are a lot of documents out there which provide useful information, though this process involved a lot of trial and error and reading of more than 200 pages of printed material for me.  That&#8217;s not a lightweight task, of course—and I&#8217;ve been using computers and UNIX/UNIX-like systems for a very long time.  So, yes, currently setting these things up is something of a complex deal.</p>
<p>But, I did learn—well, more reinforce something I knew already—something throughout this little project.  I&#8217;ve mentioned before that I think that the way Linux systems are distributed probably ought to have something of a better, cleaner division between what is the application software and what is the system software.  This is another situation where I think that such a difference would be a wonderful thing in a system.  What do I mean?</p>
<p>Well, we see in the Windows world such a division.  When you purchase a copy of Windows, you choose one of eleventyone versions that fits your needs (or at least, so you think).  We could do something similar for Linux systems, though we could obviously reduce the number of choices under a single brand to something that users would actually care to look at.  Ubuntu has done <em>some</em> of this already—they ship different configurations of software by default for server and desktop versions, for example.  However, the division between the system and the applications that run on the system is completely nonexistent.  For people who very much like to tweak their system, this is something of a mixed blessing.  For starters, it makes it easy to modify any single <em>package</em> which comprises the system.  However, it can be a bit of a problem when you want to do something task-oriented that involves a mix of application and system software—that is, <em>system software for an application</em>.</p>
<p>I don&#8217;t know what the ideal approach is, or would be.  It&#8217;s something that I&#8217;d like to try to figure out, though, at some point.  FreeBSD has an interesting layout wherein the system itself is not managed by the package manager and is considered to be an implicit dependency in the package management system, and everything outside of the base system is installed using <em>ports</em>.  This is a cool concept.  What if someone were to do something similar with a Linux system and create a distribution wherein the base system is a nice tree of source packages which are shipped together in a single unit—and maintained together as a single unit—and then use the package manager to <em>only</em> manage application software?</p>
<p>Doing this is something that would be bound to make some current users unhappy—I wouldn&#8217;t expect that a Gentoo user would want to think about playing with such a system when they&#8217;re already quite happy with Gentoo, for example.  But, if you made a desktop environment and server software to go with it, and made the system segments catered to each purpose, you&#8217;d have something that a manager could pull &#8220;off the shelf,&#8221; so to speak, and immediately put to use.  If you have the assurance that the <em>only</em> people that are going to be modifying the base system are people that are <em>very sure</em> they know what they&#8217;re doing, then you also make it easier to assume a few things about the base system in various different configurations.</p>
<p>As an example, take a fictional new brand which had two distributions, the server distribution and the desktop/workstation distribution.  The install process for both would be relatively fast, with only a few things being configured at set-up time.  On a server install, there should be a common set of server software that is easily configurable—using utilities bundled with the server itself.  On a workstation install, you&#8217;d have a similar thing, with the easy ability to join into any setup that the server supports, or maybe even that other servers running on other operating systems support.</p>
<p>Windows Server includes an interface for quickly configuring things like the Microsoft DNS server and IIS, and when you set up the directory service under it, it is integrated very nicely into the DNS server.  For example, when you configure an Active Directory domain, there are automatically DNS records which are published so that Windows workstations can find the AD controller and use the services on it.  We need something like that on Linux systems—where one drops a server, say, which can be quickly configured to provide central authentication and storage services and just as quickly get the clients up and running.  Then, the solution is very quickly integrated.</p>
<p>What would this require?  It&#8217;d require a distribution that manages certain classes of software—such as the DNS server, and the LDAP directory service, and the Kerberos authentication system—as system software and not as userland packages.  Why?  If you don&#8217;t, you have to decide things like which implementation of Kerberos you&#8217;re going to be using, or which LDAP server you&#8217;re going to use.  The most common combination, as an example, seems to be MIT Kerberos with the OpenLDAP server, typing these into PAM and then combining them with some sort of networked filesystem such as NFSv4.  This is what I did, in fact.  There is also something called OpenAFS which can be used to provide the filesystem portion of things.</p>
<p>But, the important part would be that these things are configured by a single piece of software which is tasked with the purpose of integrating these things together.  In other words, if you create a server product, you can provide a set of reasonable default choices for the software and also provide easy access to common configurations.  Obviously, you&#8217;re not going to meet <em>everyone&#8217;s</em> needs if you only provide single solutions for each task, though, right?  Probably not.  But the point isn&#8217;t to fit every single possible configuration—the point is to give a quick starting point to launch quickly from and then give the user the ability to focus on doing more advanced things with their software.  If I didn&#8217;t spend the last three days fussing with Kerberos, LDAP, and NFSv4, for example, I could have spent 30 minutes on the initial setup and then spent another three days putting all the polish on for very little things that I wanted to do.  Or I could have spent the time moving my domain&#8217;s services—like this blog, or the email domain, or the Jabber domain—onto my own network.  Or any number of other things.</p>
<p>Furthermore, if you provide a client which is fully and easily integrated into the server, you can do a great deal more in far less time.  The client setup could even be smart enough to look for certain hints on the local network for the installer—say, issuing a few requests to the local DNS server such that it can automatically detect whether or not one is using a directory service and prompt the user during the workstation installation process as to whether or not they want to become part of that collection and configure their workstation to become a functional member of that network automatically.  Maybe the network server of this fictional branded distribution could also publish information on the network which provides configuration settings for installed machines in a purely automatic fashion, making it such that if you want to install, you just start the installer and have the workstation configure itself.  Then when you have a very large organization, providing a new workstation is a very easy task:  Plug it in, install it, and go.  This idea could even be extended to provide for different configuration profiles which could be used for very large networks, and I think it&#8217;d be better than the systems that exist currently.</p>
<p>To my knowledge, no such distribution exists.  There are distributions that come close—I do like Ubuntu Server for its ability to quickly pull down and configure individual pieces of network infrastructure—but there is not (to my knowledge, anyway) any distribution which provides a very high level of quick-setup-and-go for many different things, and provide an easy-to-manage way of doing things with it.</p>
<p>I do think, for sure, that it all starts with removing the base system from the package manager—in effect, using a different method of management of the base system than the package manager provides.  I think it&#8217;d also make long-term-support releases of desktop and server software much easier, since the line between the system and application software is more clearly drawn.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2008/11/19/on-setting-up-kerberos-openldap-and-nfsv4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intrepid Ibex: Tomorrow it comes.</title>
		<link>http://mike.trausch.us/blog/2008/10/29/intrepid-ibex-tomorrow-it-comes/</link>
		<comments>http://mike.trausch.us/blog/2008/10/29/intrepid-ibex-tomorrow-it-comes/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 18:11:58 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[intrepid ibex]]></category>
		<category><![CDATA[new releases]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.trausch.us/?p=450</guid>
		<description><![CDATA[Ubuntu&#8217;s latest release, version 8.10, named the “Intrepid Ibex”, is coming—tomorrow. This is wonderful, because there are a great number of improvements, particularly in the 64-bit version. There is one problem lingering with Pidgin sometimes spinning a CPU and crashing, and PulseAudio is still a bit finicky, but I am very happy with this coming [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu&#8217;s latest release, version 8.10, named the “Intrepid Ibex”, is coming—tomorrow.  This is wonderful, because there are a great number of improvements, particularly in the 64-bit version.  There is one problem lingering with Pidgin sometimes spinning a CPU and crashing, and PulseAudio is still a bit finicky, but I am very happy with this coming release.</p>
<p>So, what to do after installing it?  Here&#8217;s a few things:</p>
<ol>
<li>Install <code>ubuntu-restricted-extras</code>.  This will give you MP3, Flash, and Java support.</li>
<li>Install Banshee.  It&#8217;s a hell of a media player, and very enjoyable to use.</li>
<li>Optionally upgrade to OpenOffice 3 using the <a href="https://edge.launchpad.net/~openoffice-pkgs/+archive">Intrepid PPA</a>.  However, the major feature that everyone will likely want from OpenOffice 3 is already included in Intrepid&#8217;s OpenOffice 2.4—Office 2007 file support (read-only).</li>
<li>If you are able to use compiz, install the Emerald window decorator.  It&#8217;s lovely.</li>
<li>Not sure if you could do this pre-Intrepid, but you can install the <code>smbfs</code> package and say (as a regular user) <code>mount.cifs //SERVER/SHARENAME /path/to/dir -o user=USER</code> to mount a Samba or Windows share in your home directory.  If you don&#8217;t need a password, be sure to make <code>-o user=USER</code> into <code>-o user=USER,guest</code></li>
<p> which will drop the request for a password by <code>mount.cifs</code>.  You can also put such filesystems in the global filesystem mounting database, <code>/etc/fstab</code>.
</ol>
<p>Also, if you have the desire to see your fonts get <em>really</em> good looking, add the following to <code>~/.fonts.conf</code>:</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
&lt;fontconfig&gt;
  &lt;!-- Set the DPI --&gt;
  &lt;match target="pattern"&gt;
    &lt;edit name="dpi" mode="assign"&gt;
      &lt;double&gt;89&lt;/double&gt;
    &lt;/edit&gt;
  &lt;/match&gt;

  &lt;match target="font"&gt;
    &lt;edit name="autohint" mode="assign"&gt;
      &lt;bool&gt;true&lt;/bool&gt;
    &lt;/edit&gt;
  &lt;/match&gt;

  &lt;!-- Configure default monospace font. --&gt;
  &lt;alias&gt;
    &lt;family&gt;monospace&lt;/family&gt;
    &lt;prefer&gt;
      &lt;family&gt;Monaco&lt;/family&gt;
      &lt;family&gt;Courier New&lt;/family&gt;
    &lt;/prefer&gt;
  &lt;/alias&gt;
&lt;/fontconfig&gt;</pre>
<p>This will add use of the auto-hinter so that you can have fonts that look better.  You can tweak the file in other ways, too, telling the font system to not antialias monospace fonts, for example.</p>
<p>Some notable things that didn&#8217;t make it into Intrepid:  OOo 3, stable ext4, and Mono 2.0.  You can get all of these by installing them from PPAs, or directly (ext4 comes with the 2.6.28-rcX kernels, which you can use by building from upstream if you do not depend on any Ubuntu-provided drivers, and if you use NVIDIA, I have a <a href="http://www.trausch.us/2008/10/25/nvidia-17780-linux-2628/">post here</a> that talks about how to re-enable the NVIDIA driver for 2.6.28 series kernels.  Mono 2.0 is available in a PPA.  If you want to play with MonoDevelop SVN, you&#8217;ll need to have Mono 2.0 installed somehow.  You can do so in your home directory (without affecting your system) by installing the build-dependencies and then using <a href="http://www.trausch.us/2008/10/13/want-to-play-with-mono-20-so-do-i/">a script that I wrote and put up here</a>.</p>
<p>I am really happy with GNOME in this release, too.  It&#8217;s a great release, though I am looking forward to what Jaunty has in store for us, really.  I really am a neophyte when it comes to software, and I like to live on the bleeding edge.  I don&#8217;t know why, but I guess that&#8217;s just the way that I am&#8230; Maybe someday I&#8217;ll stop doing that.  For now, though, I like watching the development of things pretty close to real-time.  <img src='http://mike.trausch.us/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2008/10/29/intrepid-ibex-tomorrow-it-comes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ayup, using ext4 now.</title>
		<link>http://mike.trausch.us/blog/2008/10/25/ayup-using-ext4-now/</link>
		<comments>http://mike.trausch.us/blog/2008/10/25/ayup-using-ext4-now/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 09:55:14 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[ext4]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux-kernel]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.trausch.us/?p=442</guid>
		<description><![CDATA[The timestamp resolution is cool, the fractional part isn&#8217;t all zeroes anymore (see a file not yet touched and a file touched with touch after my upgrade): File: `workspace' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 806h/2054d Inode: 3228229 Links: 4 Access: (0755/drwxr-xr-x) Uid: ( 1000/ mbt) Gid: ( 1000/ mbt) Access: 2008-10-23 [...]]]></description>
			<content:encoded><![CDATA[<p>The timestamp resolution is cool, the fractional part isn&#8217;t all zeroes anymore (see a file not yet touched and a file touched with <code>touch</code> after my upgrade):</p>
<pre>  File: `workspace'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 806h/2054d	Inode: 3228229     Links: 4
Access: (0755/drwxr-xr-x)  Uid: ( 1000/     mbt)   Gid: ( 1000/     mbt)
Access: 2008-10-23 13:42:23.000000000 -0400
Modify: 2008-10-23 13:42:22.000000000 -0400
Change: 2008-10-23 13:42:22.000000000 -0400
  File: `yellowdog-6.0-DVD_20080207.iso'
  Size: 3983831040	Blocks: 7788528    IO Block: 4096   regular file
Device: 806h/2054d	Inode: 1573509     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/     mbt)   Gid: ( 1000/     mbt)
Access: 2008-10-25 05:45:11.375116110 -0400
Modify: 2008-10-25 05:45:11.375116110 -0400
Change: 2008-10-25 05:45:11.375116110 -0400</pre>
<p>And:</p>
<p><code>Saturday, 2008-Oct-25 at 05:45:12 - mbt@zest - Linux v2.6.28<br />
Ubuntu Intrepid:[1-25/9412-0]:~> mount | grep home<br />
/dev/sda6 on /home type ext4 (rw,relatime)<br />
gvfs-fuse-daemon on /home/mbt/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=mbt)</code></p>
<p>Works for me.  Will play more with it tomorrow.</p>
<p>And no, I didn&#8217;t package it (the kernel) up&#8230; to build it, just follow the instructions that come with the kernel, and then on Ubuntu, run <code>update-initramfs</code> and <code>update-grub</code>.  If you use the NVIDIA driver 177.80, see my previous post for a change that needs to be made to <code>/var/lib/dkms/nvidia/177.80/source/nvacpi.c</code> and the kernel tree to make it build on the next reboot after upgrading your kernel.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2008/10/25/ayup-using-ext4-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want to play with Mono 2.0?  So do I&#8230;</title>
		<link>http://mike.trausch.us/blog/2008/10/13/want-to-play-with-mono-20-so-do-i/</link>
		<comments>http://mike.trausch.us/blog/2008/10/13/want-to-play-with-mono-20-so-do-i/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 21:47:07 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[GPLv3]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[mono 2.0]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.trausch.us/?p=423</guid>
		<description><![CDATA[Alrighty, so I wanted to play with Mono 2.0. I thought about packaging it up, but the packaging for Mono in Debian and Ubuntu is extremely complex, and would have taken me a lot of time that I simply don&#8217;t have. So, instead, I wrote a BASH script that pulls Mono 2.0 and friends from [...]]]></description>
			<content:encoded><![CDATA[<p>Alrighty, so I wanted to play with Mono 2.0.  I thought about packaging it up, but the packaging for Mono in Debian and Ubuntu is <em>extremely</em> complex, and would have taken me a lot of time that I simply don&#8217;t have.  So, instead, I wrote a BASH script that pulls Mono 2.0 and friends from the Internet, builds it, and installs it in ${HOME}/opt on your system.  The way it does this is based on <a href="http://www.mono-project.com/Parallel_Mono_Environments">the Parallel Mono Environments</a> page on the Mono Web site.  In the hope that this script will be useful on more than just Ubuntu, it <strong>DOES NOT</strong> try to pull in build-dependencies from the system.  If you&#8217;re using Ubuntu (and this will probably work on Debian, too), you can pull the build-dependencies pretty easily:</p>
<pre>$ sudo apt-get build-dep libgtksourceview2.0-cil \
 libgecko2.0-cil libgtk2.0-cil libgnome2.0-cil mono \
 libgluezilla</pre>
<p>The usage screen for the script:</p>
<pre>Mono 2.0 Home Directory Installer

Copyright (c) 2008 M. Trausch &lt;mike@trausch.us&gt;
License: GPLv3

Total download: ~206 MiB, total installed size: ~161 MiB.
Download &#038; build takes ~35 minutes on an AMD Phenom 9500 Quad-Core CPU w/ 8Mbps
downstream Internet connection (and happy servers, of course).

Logs are output to '/tmp/mono2-build.3044/log'.

usage: install-mono2.sh [options]

Available options:
  -s PKG
  --skip PKG	Skip building package PKG (one of libgdiplus, mono, mono-basic,
		gtk-sharp, gnome-sharp, gnome-desktop-sharp, gluezilla,
		monodoc, mono-tools, mono-addins, gecko-sharp,
		gtksourceview-sharp, heap-buddy, nant, monodevelop).  May
		be specified multiple times.

  -d
  --download-only
		Only download the packages, do not install them.

  -r
  --monodevelop-revision
		Specify which SVN revision of MonoDevelop trunk to install.
		Defaults to SVN HEAD.

  -S
  --skip-download
		Skip the download (if you're rebuilding, use this to
		save bandwidth.

  -m
  --monodevelop	Download, build, and install MonoDevelop only.  ONLY USEFUL
		FOR UPDATING MONODEVELOP AFTER YOU'VE RUN THIS SCRIPT TO
		INSTALL MONO 2.0.

  -1
  --single-cpu	Use ONLY single CPU/core for building.  Use this if you have
		trouble building and think it might be related to 'make -j'.</pre>
<p>Now, when this script runs, it will download the Mono files (and MonoDevelop from SVN) into <code>/tmp/monosrc</code>.  It will do the build in <code>/tmp/mono2-build.XXXXX</code> where <code>XXXXX</code> is the process ID number of the <code>install-mono2.sh</code> script.  When you&#8217;re finished and happy with the installation, you can safely remove those directories:</p>
<pre>$ rm -Rf /tmp/mono2-build.* /tmp/monosrc</pre>
<p><strong>If you want to track MonoDevelop within SVN</strong>, then it is better to <em>not</em> delete <code>/tmp/monosrc</code>, because the script uses <code>svn</code> to pull from the MonoDevelop Subversion repository.  This means that it can, if the directory already exists, save you bandwidth by only pulling a delta from the revision that you have and the current HEAD revision.  The astute probably noticed that you can select a revision explicitly as well.  I am currently using r115695, and have used it for a grand total of 20 minutes (and debugging, as best as I can tell, works quite wonderfully in it, but it <em>is</em> a work-in-progress, coming directly from the development mainline).  In short, the MonoDevelop is great for toying with but not for production use.  I may release a version of this script that lets you choose between the latest stable released version of MonoDevelop and an SVN revision, but I haven&#8217;t gotten there yet because I wanted to play with the SVN version (which uses features in Mono 2.0&#8230; that was the whole point of me wanting to play with Mono 2.0, actually).</p>
<p>In any case, the script is available for download <a href='http://www.trausch.us/wp-content/uploads/install-mono2.sh'>here from my Web site.</a></p>
<p>A few words about the script:  <strong><em>This script is released under the terms of the <a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License, Version 3</a>.  It is version 3 ONLY.  There is NO SUPPORT for this software; I wrote it for myself, and it may change or it may stagnate.  I provide it in the hope that it is useful to someone out there other than myself, but it is AS-IS, WITHOUT WARRANTY, UNSUPPORTED software.  If it changes your dog&#8217;s gender, bursts your house into flames, destroys your whatchamacallermicroflobbermajag, do not come and yell at me.</em></strong>  That having been said, I welcome any modifications (at least to view them).  You can modify it for your own use, you can share it (in fact I expect you to!) and you can tinker with and tweak it.  Suggestions?  Welcome!  Comments?  Welcome!  Flames?  Hey, free speech is your right&#8230;</p>
<p>Lastly, <strong>I RECOMMEND THAT YOU RUN THE SCRIPT ON A CLEAN USER ACCOUNT, WITHOUT YOUR DATA, WITHOUT YOUR ANYTHING IN THE WAY.</strong>  Just create yourself another user, and login to it using Xnest or something, or log out of your user account completely—I don&#8217;t care how you do it.  Why do I make this recommendation?  Because while nothing bad should happen, it&#8217;s always best to sandbox things that you don&#8217;t trust.  After all, what reason do you have to trust me if you don&#8217;t know me?  You can also of course read through the script and audit it if you wish.  It doesn&#8217;t handle EVERY exceptional condition, but it handles just about anything that needs to be and tells you where things went awry if they go wrong.  And it logs everything (see the program output when you run it).  It also takes advantage of multiple processors or cores if you have them for those (few) builds that will permit it without going nutso, but YMMV.  If you have an issue with this aspect of the script, see the usage text.  If there are any issues that you can&#8217;t solve with that, or installing build-dependencies, then paste the relevant segments of your failing log file to something like <a href="http://pastebin.com/">pastebin</a> and ping me a comment here, and I can take a look at it and (try to) offer advice, depending on where the fail is.</p>
<p>Oh, yeah, and I used a hell of a lot of bandwidth putting it together and making sure that it did things like downloaded things right and all of that.  Sorry for hitting your servers repeatedly, Mono people—and thank you for the software!</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2008/10/13/want-to-play-with-mono-20-so-do-i/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Bouncing ideas around again.</title>
		<link>http://mike.trausch.us/blog/2008/10/07/bouncing-ideas-around-again/</link>
		<comments>http://mike.trausch.us/blog/2008/10/07/bouncing-ideas-around-again/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 08:34:00 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.trausch.us/?p=402</guid>
		<description><![CDATA[Sometimes, I run into something so totally special that I am prompted to start thinking again. Does anyone else think that it&#8217;d be a good idea to segregate the core of the system and the application software into two separate bundles of packages? Say, for example, that the base system would comprise the absolute core [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes, I run into something <a href="https://bugs.edge.launchpad.net/ubuntu/+source/mono/+bug/278946" title="Bug #278946 in mono (Ubuntu)">so totally special</a> that I am prompted to start thinking again.</p>
<p>Does anyone else think that it&#8217;d be a good idea to segregate the core of the system and the application software into two separate bundles of packages?  Say, for example, that the base system would comprise the absolute core software—the software that comprises the operating system, and core libraries.  These could be managed by some package manager that manages the base system, say, &#8220;sys-dpkg&#8221;.  Then you&#8217;d have application software, which could be managed by the &#8220;dpkg&#8221; command that we all use for managing that sort of thing anyway.  This would seem to make a _LOT_ of sense for LTS releases, though it&#8217;d be useful for non-LTS releases, as well.  The idea would be that application software and application frameworks would be managed separately, such that they could be more fluid.  As long as they don&#8217;t depend on a newer version of the base system, they&#8217;d easily be able to be installed on systems.  Otherwise, what people are left with are really just frozen snapshots of the way software was at a point in time, unless they&#8217;re an advanced user.  Even a regular user can install software on Windows&#8230; they can do it on something like Ubuntu, too, but they can&#8217;t just go somewhere and download the software and install it on their system.  Wouldn&#8217;t it make sense to make packaging for application software easier, and promote the idea of a separation between the operating system and the application software?</p>
<p>Thoughts?</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2008/10/07/bouncing-ideas-around-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

