<?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; tips &amp; tricks</title>
	<atom:link href="http://mike.trausch.us/blog/category/tips-tricks/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>On small offices and computer configurations</title>
		<link>http://mike.trausch.us/blog/2010/03/07/on-small-offices-and-computer-configurations/</link>
		<comments>http://mike.trausch.us/blog/2010/03/07/on-small-offices-and-computer-configurations/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 12:14:11 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[random thoughts]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://mike.trausch.us/blog/?p=597</guid>
		<description><![CDATA[So for the past couple of weeks I have been doing work at a client’s place of business. This client—like many other small and medium-sized businesses—uses Windows on all of their desktop systems. They have a couple of server boxes that are running GNU/Linux servers, but they are not running GNU/Linux on the desktop at [...]]]></description>
			<content:encoded><![CDATA[<p>So for the past couple of weeks I have been doing work at a client’s place of business. This client—like many other small and medium-sized businesses—uses Windows on all of their desktop systems. They have a couple of server boxes that are running GNU/Linux servers, but they are not running GNU/Linux on the desktop at this point in time.</p>
<p>So, this is a pretty simple-sounding network, yes? It should be—it is just a handful of computer systems. However, there is a problem—a pretty large one, I think. There is very little in the way of either policy or convention on the network. Some users use their documents directory for storing their documents, others store their documents on their desktop, others somewhere differently altogether on the C drive, others on a network share in a public storage space. There are different versions of software on the various machines, more-or-less updated when someone thinks about it, I think.</p>
<p>This is a perfect scenario which shows why a business network should be centrally managed in some form. Note that I am <em>not</em> saying that each machine should be a bit-for-bit mirror image of the one next to it, though that is certainly a possibility. I think that people should be able to use their own choice of things like email client or Web browser software, because everyone is different. But when you have different client applications fulfilling a role on the individual workstations, you have to take a centralized approach to ensuring that things like the email is all backed up.</p>
<p>Furthermore, if you <em>don’t</em> take a centralized approach to backing up such data, it is <em>very</em> difficult to centralize the network storage. Think about adding a domain controller (that is Windows speak for a central server which handles authentication and authorization, as well as file and printer sharing and things like roaming profiles) to such a network. I expect that with multi-gigabyte mail files, things will be <em>very</em> slow at first—and that likely the only fix for them that is going to be viable in the long term is to centralize more infrastructure.</p>
<p>I am too tired to expand more on my thoughts on what I have learned and where it is heading, but the <em>Reader’s Digest</em> version of the point reads something like this: If you are a small to medium sized business, make sure that you have someone who is competent in both system and network administration, and <em>make sure that they are a part of your business from day one</em>. Like writing software, building up a technical infrastructure without careful thought and design is hazardous and comes with many hidden and unpredictable costs. It is best to head those things off right from the start; to delay only amplifies the cost of fixing the underlying problems and puts oneself in the position where fixing one issue can have a domino-like effect and create more new problems.</p>
<p>For my current situation, I think I am going to have to seriously re-think how this whole setup is done. What I do not yet know is how to quickly and efficiently bring things into shape. A bit of training and education may be required, and certainly the removal of a lot of unnecessarily-granted privileges on the workstations. That, too, should be something caught early-on: do not let every person in a business run with administrator privilege, unless they <em>are</em> an administrator (and even they should only run with administrator privilege when they are actually doing something that requires that privilege). If everyone is an administrator, there is little to no control on how things are done in a network, and it can get messy.</p>
<p>I have a lot more reading to do, as well.</p>
<p>Well, anyway, it is <em>way</em> past my bedtime.  Time for sleep.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2010/03/07/on-small-offices-and-computer-configurations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>On communicating with software authors</title>
		<link>http://mike.trausch.us/blog/2009/09/09/on-communicating-with-software-authors/</link>
		<comments>http://mike.trausch.us/blog/2009/09/09/on-communicating-with-software-authors/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 02:09:11 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[AllTray]]></category>
		<category><![CDATA[FLOSS]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[random thoughts]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://mike.trausch.us/blog/?p=559</guid>
		<description><![CDATA[AllTray is a rather small project&#8212;for the moment, there is a single developer working on it (myself), and there aren&#8217;t a terribly great number of users, though the users that it does have are most excellent.&#160; For a long time, the users didn&#8217;t have the ability to observe the development processes for AllTray, nor did [...]]]></description>
			<content:encoded><![CDATA[<p>AllTray is a rather small project&mdash;for the moment, there is a single developer working on it (myself), and there aren&#8217;t a terribly great number of users, though the users that it does have are most excellent.&nbsp; For a long time, the users didn&#8217;t have the ability to observe the development processes for AllTray, nor did they have a bug tracker or any point of contact to the author/maintainer other than email.&nbsp; Things have gotten better there, since AllTray development takes place in the open on Launchpad (though I&nbsp;do have to get better about publishing feature branches that last longer than a day or two so that people can see them as well while they are in progress).</p>
<p>Many projects that are all about being open and transparent provide mechanisms for their users to get in touch with the developers.&nbsp; Launchpad has become an excellent place to do these things; Launchpad&#8217;s Answers and Bugs components are <em>truly excellent</em> ways to get in touch with people that manage software there.&nbsp; The system is so good that I&#8217;d advocate that every project try to move to it.&nbsp; Launchpad <em>does</em> have its issues, though they are often quickly fixed (and can be fixed even quicker now that it is free software).&nbsp; But between Bazaar (a truly amazing and flexible distributed version control system) for code hosting and the other components of Launchpad such as the Answers, Bugs, and Translations components, Launchpad provides virtually everything that a project needs to communicate effectively with its users aside from the project&#8217;s Web site.&nbsp; And users seem to naturally be able to reach out using it.</p>
<p>In the nearly one year that I&#8217;ve been working with AllTray, I&#8217;ve talked&mdash;well, written to&mdash;several people who have asked questions and acted in their own ways to work to improve the software.&nbsp; Development on AllTray has been made much easier just because people are willing to speak up.&nbsp; Everything from the random &ldquo;thank you&rdquo; to &ldquo;hey, are you going to do this?&rdquo; or &ldquo;I&#8217;d like to see feature <em>x</em> in the new version&rdquo; or whatever.&nbsp; It&#8217;s truly great.&nbsp; I can&#8217;t say that every project has users quite like AllTray&#8217;s, because AllTray is something of a niche application, but AllTray&#8217;s users are a great model for other projects.&nbsp; There has been virtually no negativity from users and everything has been constructive.</p>
<p>To anyone who manages a project that <em>doesn&#8217;t</em> use Launchpad, I&#8217;d <strong>strongly</strong> encourage them to do so.&nbsp; Its users are great, and as far as management of the overall project goes, it&#8217;s <em>very</em> easy for project people to communicate back and manage communications in a single spot.&nbsp; It&#8217;s also great that users can ask a question and that the project can do things like go, &ldquo;oh, hey, this is really a bug,&rdquo; or vice versa with bugs&rarr;questions.&nbsp; And if you don&#8217;t use Launchpad because you don&#8217;t want to use Bazaar&nbsp;(I&nbsp;hear that users of git are pretty dedicated to it; I&nbsp;can understand that, but it&#8217;s just not for me&mdash;it&#8217;s too complex, and I&nbsp;like that Bazaar just stays out of my way), consider using LP&nbsp;for everything <em>but</em> code hosting.&nbsp; Or consider using Launchpad&#8217;s code hosting to mirror your project from git, it does this quite nicely.&nbsp; Or, find some way to do what Launchpad does wherever you do project management.&nbsp; It works really well, and it&#8217;s a big help.</p>
<p>And to AllTray&#8217;s users. A big <span style="font-size: x-large;">Thank You</span>.&nbsp; You guys and gals are great.&nbsp; Keep communicating!</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2009/09/09/on-communicating-with-software-authors/feed/</wfw:commentRss>
		<slash:comments>3</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>Little things that boost efficiency.</title>
		<link>http://mike.trausch.us/blog/2008/02/01/little-things-that-boost-efficiency/</link>
		<comments>http://mike.trausch.us/blog/2008/02/01/little-things-that-boost-efficiency/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 22:26:01 +0000</pubDate>
		<dc:creator>Michael Trausch</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[efficiency]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[techie]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://www.trausch.us/2008/02/01/little-things-that-boost-efficiency/</guid>
		<description><![CDATA[I often do not store downloaded tarballs on my drive anymore. I found that I would download them, extract them, play with them, and then remove the generated source directory tree, but never the tarball. Periodically, I would then have to go and clean out the tarballs. Well, I have recently been doing it differently. [...]]]></description>
			<content:encoded><![CDATA[<p>I often do not store downloaded tarballs on my drive anymore.  I found that I would download them, extract them, play with them, and then remove the generated source directory tree, but never the tarball.  Periodically, I would then have to go and clean out the tarballs.</p>
<p>Well, I have recently been doing it differently.  Presumably, just about anything I want will still be available <em>somewhere</em> on the Internet at a given point in time, so, why store a copy at all?  When I download something anymore, I just extract it from the tarball over the Internet.  For example, I downloaded <a href="http://www.tinymail.org/" title="Tinymail - the small E-mail framework - about">Tinymail</a> today, and the way I did it was:</p>
<p><code>wget -q -O- http://tinymail.org/files/releases/pre-releases/v0.0.7/libtinymail-0.0.7.tar.bz2|tar xvjf -</code></p>
<p>There is only one problem with doing it this way:  While GNU <code>tar</code> knows how to autodetect the format of an archive when it is stored on the local filesystem, it does not appear to be able to do so when getting the archive in from a pipe.  I would like to look into whether or not detecting the archive format as tar, tar.gz, or tar.bz2 can be done over a pipe, because it would be very nice to use the same invocation of <code>tar</code> that I would use anyway.</p>
<p>Oh, well.  Anyway, it still saves me disk space and cobwebs, so it’s all good.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.trausch.us/blog/2008/02/01/little-things-that-boost-efficiency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

