<?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>antipaucity &#187; technical</title>
	<atom:link href="http://antipaucity.com/category/technical/feed/" rel="self" type="application/rss+xml" />
	<link>http://antipaucity.com</link>
	<description>fighting the lack of good ideas</description>
	<lastBuildDate>Sat, 04 Feb 2012 20:21:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>a new website</title>
		<link>http://antipaucity.com/2012/01/30/a-new-website/</link>
		<comments>http://antipaucity.com/2012/01/30/a-new-website/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 04:04:58 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1106</guid>
		<description><![CDATA[I&#8217;ve had a domain sitting [basically] unused for several years, but have finally found a purpose. Along the lines of freshnews, I have launched an rss aggregator/launch service at datente.com. There are several categories of feeds (imperfectly broken-up, but it&#8217;s what makes sense to me) that display in quasi random order. And on the front [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2012/01/30/a-new-website/' addthis:title='a new website ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a domain sitting [basically] unused for several years, but have finally found a purpose.</p>
<p>Along the lines of <a href="http://freshnews.org">freshnews</a>, I have launched an rss aggregator/launch service at <a href="http://datente.com">datente.com</a>.</p>
<p>There are several categories of feeds (imperfectly broken-up, but it&#8217;s what makes sense to me) that display in quasi random order. And on the front page is a smattering selected randomly from the master list.</p>
<p>I would love suggestions of feeds to add, and maybe even new categories, too.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2012/01/30/a-new-website/' addthis:title='a new website ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2012/01/30/a-new-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>extended file attributes with ext[2&#124;3&#124;4]</title>
		<link>http://antipaucity.com/2011/12/19/extended-file-attributes-with-ext234/</link>
		<comments>http://antipaucity.com/2011/12/19/extended-file-attributes-with-ext234/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 15:54:17 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1096</guid>
		<description><![CDATA[Most Unix/Linux users, and &#8211; hopefully &#8211; all admins are familiar with the standard 9 bits of permissions typically supported on various *nix file systems: --------- rwxrwxrwx uuugggooo Where &#8220;u&#8221;, &#8220;g&#8221;, and &#8220;o&#8221; indicate &#8220;user&#8221;, &#8220;group&#8221;, and &#8220;other&#8221; while &#8220;rwx&#8221; indicates whether the item can be read, written, or executed. Also of note are file ownerships in [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/12/19/extended-file-attributes-with-ext234/' addthis:title='extended file attributes with ext[2&#124;3&#124;4] ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>Most Unix/Linux users, and &#8211; hopefully &#8211; all admins are familiar with the standard 9 bits of permissions typically supported on various *nix file systems:</p>
<blockquote><p><code>---------</code><br />
<code>rwxrwxrwx</code><br />
<code>uuugggooo</code></p></blockquote>
<p>Where &#8220;u&#8221;, &#8220;g&#8221;, and &#8220;o&#8221; indicate &#8220;user&#8221;, &#8220;group&#8221;, and &#8220;other&#8221; while &#8220;rwx&#8221; indicates whether the item can be read, written, or executed.</p>
<p>Also of note are file ownerships in the form of</p>
<blockquote><p><code>user:group</code></p></blockquote>
<p>So a file might be owned by <code>warren:warren</code> with read/write privileges only for the owner: <code>rw-rw----</code>.</p>
<p>That&#8217;s pretty handy.</p>
<p>How many of you know there are <em>hidden</em> permissions that do not show up in a normal use of <code>ls -l</code>?</p>
<p>I didn&#8217;t until last week &#8211; and I&#8217;ve been using Linux for more than a decade <img src='http://antipaucity.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Turns out that &#8211; at least with ext2, etx3, and ext4 filesystems &#8211; there are a variety of other attributes that can be assigned to a file. One of them is the immutable flag<sup>*</sup>.</p>
<p>(Using a related command to <code>ls</code>, <code><a href="http://linux.die.net/man/1/lsattr">lsattr</a></code>, a person can view the extended attribute flags of a file.)</p>
<p>In specific, the immutable flag disallows even the <strong><em>owner</em></strong> from deleting his/her own file! There was the source of a very ornery issue I ran into while doing an upgrade last week of a customer&#8217;s management environment. The upgrade installer ran into an issue wherein it interrupted its own process. But when it did, it left the filesystem in an inconsistent state &#8211; specifically with regards to an SSL certificate file and the machine identifier file (<code>agent.srv</code> and <code>mid</code>, if you&#8217;re curious) having the immutable flag set. When attempting to pick back up with the upgrade, the installer failed more [apparently] asymptomatically (and esoterically) than I had ever seen before.</p>
<p>After several exchanges with senior product support, a working fix of running <code>chattr -i /path/to/file</code> was provided. Neither myself, nor any of the senior admins at my customer had ever heard of <code><a href="http://linux.die.net/man/1/chattr">chattr</a></code>. So off to the <code>man</code> pages. Turns out that chattr is quite the command &#8211; but it&#8217;s not well publicized (at least, I don&#8217;t think it is).</p>
<p>If you run into a file you own, but cannot delete, be sure to inspect the extended attributes with <code>lsattr</code>, and fix any mis-set flags with <code>chattr</code>.</p>
<hr />
<p><sup>*<sub>The entire list of alterable flags: &#8220;append only (a), compressed (c), no dump (d), extent format (e), immutable (i), data journalling (j), secure deletion (s), no tail-merging (t), undeletable (u), no atime updates (A), synchronous directory updates (D), synchronous updates (S), and top of directory hierarchy (T).&#8221; Non-modifiable, but visible with <code>lsattr</code>, flags: &#8220;huge file (h), compression error (E), indexed directory (I), compression raw access (X), and compressed dirty file (Z)&#8221;.</sub></sup></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/12/19/extended-file-attributes-with-ext234/' addthis:title='extended file attributes with ext[2|3|4] ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/12/19/extended-file-attributes-with-ext234/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>defaulting pxe boots with hpsa</title>
		<link>http://antipaucity.com/2011/11/29/defaulting-pxe-boots-with-hpsa/</link>
		<comments>http://antipaucity.com/2011/11/29/defaulting-pxe-boots-with-hpsa/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 16:52:29 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1090</guid>
		<description><![CDATA[I recently found a very helpful nugget with regards to OS Provisioning with HP&#8217;s Server Automation product. OS Prov is most typically done using PXE (or the similar bootp process). SA provides a PXE server that gives a boot menu to network-booted systems. That menu contains a variety of choices: linux, windows, winpe, etc. In [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/11/29/defaulting-pxe-boots-with-hpsa/' addthis:title='defaulting pxe boots with hpsa ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>I recently found a very helpful nugget with regards to OS Provisioning with HP&#8217;s Server Automation product.</p>
<p>OS Prov is most typically done using <a href="http://en.wikipedia.org/wiki/Preboot_Execution_Environment">PXE</a> (or the similar <a href="http://en.wikipedia.org/wiki/Bootp">bootp</a> process). SA provides a PXE server that gives a boot menu to network-booted systems. That menu contains a variety of choices: linux, windows, <a href="http://en.wikipedia.org/wiki/Windows_Preinstallation_Environment">winpe</a>, etc.</p>
<p>In most environments, one particular OS will be dominant, and typically one particular <em>version</em> of that OS &#8211; whether it be RHEL 5 x64 or Windows 2008 R2, it&#8217;s usually just one that makes up the lion&#8217;s<sup>*</sup> share of systems on the network.</p>
<p>If you know that you will be provisioning, say, Windows 2008 R2 90% of the time, it would be nice to not have to <em>always</em> have to pick it manually from the PXE boot menu.</p>
<p>Here&#8217;s what you need to do to make that happen (presuming you want to use Build Plans):</p>
<blockquote><p>Edit the following file:</p>
<blockquote><p><code>/opt/opsware/boot/tftpboot/pxelinux.cfg/default</code></p></blockquote>
<p>For example, if you have this at the beginning of the file:</p>
<blockquote><p><code>"prompt 1<br />
default local<br />
timeout 100<br />
display pxelinux.msg<br />
implicit 0"</code></p></blockquote>
<p>Change it to this for the OGFS version of winpe64:</p>
<blockquote><p><code>"prompt 1<br />
default winpe64-ogfs<br />
timeout 100<br />
display winpe64-ogfs.msg<br />
implicit 0"</code></p></blockquote>
</blockquote>
<p>You can use the above process &#8211; modified, of course &#8211; for any of the available boot images.</p>
<hr />
<p><sup>*<sub>And if you&#8217;re provisioning Mac OS X 10.7, &#8220;Lion&#8221; makes up all the share <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </sub></sup></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/11/29/defaulting-pxe-boots-with-hpsa/' addthis:title='defaulting pxe boots with hpsa ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/11/29/defaulting-pxe-boots-with-hpsa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>host migration</title>
		<link>http://antipaucity.com/2011/10/11/host-migration/</link>
		<comments>http://antipaucity.com/2011/10/11/host-migration/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 22:08:31 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1074</guid>
		<description><![CDATA[As mentioned recently, I am about to be switching hosts from my current VPS provider, Tektonic. I have found a non-VPS ISP that meets the requirements I&#8217;d previously outlined, and have everything but the MySQL databases for WordPress instances sync&#8217;d to the new host. With a bit of luck, the migration will be invisible to all 4 [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/10/11/host-migration/' addthis:title='host migration ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>As mentioned <a href="http://antipaucity.com/2011/09/21/changing-hosts">recently</a>, I am about to be switching hosts from my current VPS provider, Tektonic.</p>
<p>I have found a non-VPS ISP that meets the requirements I&#8217;d previously outlined, and have everything but the MySQL databases for WordPress instances sync&#8217;d to the new host.</p>
<p>With a bit of luck, the migration will be invisible to all 4 of my readers <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/10/11/host-migration/' addthis:title='host migration ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/10/11/host-migration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>doing technical phone screens</title>
		<link>http://antipaucity.com/2011/10/03/doing-technical-phone-screens/</link>
		<comments>http://antipaucity.com/2011/10/03/doing-technical-phone-screens/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 05:23:56 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[education]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[insights]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[fb]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1070</guid>
		<description><![CDATA[Related to a previous post on career development, I thought it could be interesting to look at one approach to the technical screen that I have used over the past few years when interviewing candidates. for folks with no &#8220;real&#8221; experience yet, I ask them to rank themselves on a few key technologies on the [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/10/03/doing-technical-phone-screens/' addthis:title='doing technical phone screens ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>Related to a previous post on <a href="http://antipaucity.com/2011/09/20/technical-career-development">career development</a>, I thought it could be interesting to look at one approach to the technical <a href="http://joelonsoftware.com/articles/ThePhoneScreen.html">screen</a> that I have used over the past few years when interviewing candidates.</p>
<ol>
<li>for folks with no &#8220;real&#8221; experience yet, I ask them to rank themselves on a few key technologies on the &#8220;Google scale&#8221;</li>
<ul>
<li>the range is 0..10 where a 0 is no knowledge, 1 is some, 10 is &#8220;you wrote the book&#8221;, 9 is you could&#8217;ve written the book, or you edited/contributed</li>
<li>on a few occasions, I have had folks ask to change their ranking from their initial [overconfident] statement to one that is much closer to inline with their true experience/comfort/knowledge level &#8211; and that&#8217;s OK in my book &#8211; honesty is <em>always</em> the best policy here</li>
</ul>
<li>a couple quick &#8220;about us&#8221; questions &#8211; open-ended inquiries that let the candidate tell me what they&#8217;ve done for work</li>
<ul>
<li>this verifies their resume</li>
<li>gets them warmed-up for the rest of the call</li>
<li>allows the candidate to brag on something</li>
</ul>
<li>perhaps a couple quick probes to find out more about a specific experience</li>
<li>a few basic / intermediate questions to assess candidate&#8217;s technical chops (ie, verify that their resume is accurate)</li>
<ul>
<li>this goes along with my personal rule of &#8220;never put anything on a resume you don&#8217;t want to be asked about&#8221;</li>
</ul>
<li>open-ended, intentionally-vague questions to gauge problem solving ability, and methodologies</li>
<ul>
<li>see how they go about refining the problem statement (if at all)</li>
<li>gauge estimation skills</li>
<li>gauge teamwork and delegation aptitude</li>
</ul>
<li>a few intermediate/advanced questions about an area they *don&#8217;t* know anything about &#8211; to gauge their response to unfamiliar/stressful situations</li>
<ul>
<li>in my field in particular, it is<strong> impossible</strong> to know every new technology or even (probably) to be truly 100% aware of those that you <em>do</em> use every single day</li>
</ul>
<li>a few intermediate/advanced questions in their now-articulated fields of expertise (presuming I have any)</li>
<ul>
<li>this verifies more of their stated (and unstated) job experience, and helps determine at what title/work level they should start</li>
</ul>
<li>lifestyle/workstyle questions</li>
<ul>
<li>how much they enjoy travel</li>
<li>how they handle last-minute demands and &#8220;requests&#8221; by customers and management</li>
</ul>
<li>a few questions to gauge flexibility of response to changing requirements</li>
<ul>
<li>for example, switching a project from being Solaris-based to Windows-based part way into implementation because a new CIO has come in, or new licensing is available, etc</li>
</ul>
<li>open time for them to ask me whatever they may wish to know that I can tell them</li>
<ul>
<li>this usually ends-up being very short because the candidate was stressed-out over the interview, and can&#8217;t think of anything about the company they want to know <em>on the spot</em></li>
</ul>
</ol>
<p>What I try to <em><strong>NEVER</strong></em> ask:</p>
<ul>
<li>&#8220;trivia&#8221; questions &#8211; I bet there are C questions even <a href="http://en.wikipedia.org/wiki/K%26R">K&amp;R</a> couldn&#8217;t answer <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<ul>
<li>I <strong><em>guarantee</em></strong> I can ask you a question about your area of expertise you cannot answer&#8230;just like I <strong><em>guarantee</em></strong> you could do the same to me</li>
<li>since that is the case, trivia questions are pretty pointless, and more of an ego stroke to the asker than anything else</li>
<li>pointless &#8220;<a href="http://en.wikipedia.org/wiki/MindTrap">MindTrap</a>&#8220;, lateral-thinking questions</li>
</ul>
<ul>
<li>riddles are fun &#8211; but only add to the stress of the interview</li>
<li>pointless problem-solving and estimation <a href="http://news.slashdot.org/story/03/04/22/224224/how-would-you-move-mount-fuji">problems</a></li>
</ul>
<ul>
<li>for example, &#8220;how would you move Mt Fuji&#8221;, &#8220;why are manhole covers round&#8221;, or &#8220;how many gallons of water flow into New York Harbor from the Hudson River per hour&#8221;</li>
<li>estimation problems are wonderful tools and games to play, but not in an interview</li>
<li><a href="http://google.com/search?q=illegal+interview+questions">illegal</a> questions</li>
</ul>
<ul>
<li>sometimes they slip out, but it&#8217;s never intentional <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>I adjust my questioning to fit the situation, timing, and candidate responses &#8211; so it&#8217;s [somewhat] different every time.</p>
<p>When the interview is done, I write-up my evaluation of the candidate and send it on to the hiring manager. In line with <a href="http://joelonsoftware.com">Joel Spolsky</a>&#8216;s &#8220;<a href="http://joelonsoftware.com/articles/GuerrillaInterviewing3.html">Guerilla Guide to Interviewing</a>&#8220;, I make sure to put my firm conclusion of Hire/No-Hire near the top, and again at the bottom &#8211; with my reasoning in between.</p>
<p>One thing I have noticed about almost every interview I have ever taken or given is that I end up learning something in the process &#8211; and not <em>just</em> about the candidate (or company). It&#8217;s important to <em><strong>listen</strong></em> to both <strong>how</strong> and the candidates responds to questions, <em>and</em> <strong>what</strong> they say.</p>
<p>So, if you ever get the chance to interview with me, you have an idea of how I&#8217;m going to run the show <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/10/03/doing-technical-phone-screens/' addthis:title='doing technical phone screens ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/10/03/doing-technical-phone-screens/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>effective error messages</title>
		<link>http://antipaucity.com/2011/09/26/effective-error-messages/</link>
		<comments>http://antipaucity.com/2011/09/26/effective-error-messages/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 16:01:24 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1048</guid>
		<description><![CDATA[I had a recent conversation with an old classmate, and he stated that using asserts when programming Java is useless because an exception can generate more useful information. Exceptions are only &#8221;more useful&#8221; if you are a developer or perhaps supporting an application. When a bug report or support case needs to be created, supplying the &#8220;raw&#8221; [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/26/effective-error-messages/' addthis:title='effective error messages ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>I had a recent conversation with an old <a href="http://theexceptioncatcher.com/blog">classmate</a>, and he stated that using <code>assert</code>s when programming Java is useless because an <a href="http://en.wikipedia.org/wiki/Exception_handling">exception</a> can generate more useful information. Exceptions are <em>only</em> &#8221;more useful&#8221; if you are a developer or perhaps supporting an application. When a <a href="http://cnx.org/content/m40790/latest/?collection=col11350/latest">bug report</a> or <a href="http://cnx.org/content/m40795/latest/?collection=col11350/latest">support case</a> needs to be created, supplying the &#8220;raw&#8221; errors can be a useful tool in finding a solution.</p>
<p>However, to go back to my friend&#8217;s point, he asked how an <code>assert</code> can &#8220;benefit someone that is running the application&#8221;. The short version is that <em><strong>NO</strong></em> &#8221;error message&#8221; that is in the frame for a <em>developer</em> will [likely] benefit the person &#8220;running the application&#8221;.</p>
<p><a href="http://www.macworld.com/article/14451/2000/08/desktopcritic.html">David Pogue</a> wrote about this more than a decade ago, but it&#8217;s something that <em>still</em> has not taken-hold in most applications: the human-friendly error message.</p>
<blockquote><p>The C Compiler in MPW (a Macintosh programming tool kit) gives you messages like this: &#8220;You can&#8217;t modify a constant, float upstream, win an argument with the IRS, or satisfy this compiler.&#8221; Or this: &#8220;Type in (cast) must be scalar; ANSI 3.3.4; page 39, lines 10-11. (I know you don&#8217;t care, I&#8217;m just trying to annoy you.)&#8221; Or how about &#8220;This label is the target of a goto from outside of the block containing this label AND this block has an automatic variable with an initializer AND your window wasn&#8217;t wide enough to read this whole error message.&#8221;</p></blockquote>
<p>The <a href="http://en.wikipedia.org/wiki/BeOS">BeOS</a>&#8216;s native browser, <a href="http://en.wikipedia.org/wiki/NetPositive">Net+</a> (pronounced &#8220;net positive&#8221;), had amusing error <a href="http://8325.org/haiku/">messages</a> &#8211; in fact, it was those amusing messages that spurred the name of the OSS reimplementation of BeOS, <a href="http://haiku-os.org/get-haiku">Haiku</a>.</p>
<blockquote><p>For instance, a user might see the following error message if they try to access a website that is unavailable:</p>
<dl>
<dd>Cables have been cut</dd>
<dd>Southwest of Northeast somewhere</dd>
<dd>We are not amused.</dd>
</dl>
<p>If the user tried unsuccessfully to authenticate against a website, they might see:</p>
<dl>
<dd>Server&#8217;s poor response</dd>
<dd>Not quick enough for browser.</dd>
<dd>Timed out, plum blossom.</dd>
</dl>
</blockquote>
<p>One you might see, however, in a product I use frequently:</p>
<blockquote><p><code>2011-09-08 19:03:58,590 INFO Thread-12 [org.apache.beehive.netui.util.logging.Logger] [info] Register RequestParameterHandler with<br />
prefix: checkbox_key<br />
handler: org.apache.beehive.netui.tags.html.CheckBox$CheckBoxPrefixHandler<br />
2011-09-08 19:03:58,591 INFO Thread-12 [org.apache.beehive.netui.util.logging.Logger] [info] Register RequestParameterHandler with<br />
prefix: checkbox_group_key<br />
handler: org.apache.beehive.netui.tags.html.CheckBoxGroup$CheckboxGroupPrefixHandler<br />
2011-09-08 19:03:58,592 INFO Thread-12 [org.apache.beehive.netui.util.logging.Logger] [info] Register RequestParameterHandler with<br />
prefix: radio_button_group_key<br />
handler: org.apache.beehive.netui.tags.html.RadioButtonGroup$RadioButtonGroupPrefixHandler<br />
2011-09-08 19:03:58,592 INFO Thread-12 [org.apache.beehive.netui.util.logging.Logger] [info] Register RequestParameterHandler with<br />
prefix: select_key<br />
handler: org.apache.beehive.netui.tags.html.Select$SelectPrefixHandler</code></p></blockquote>
<p>Gee, thanks Apache!</p>
<p>Compare that with Google&#8217;s Chrome browser that puts a frowny face on a file folder and says &#8220;Oh Snap!&#8221; when something goes wrong (whether it&#8217;s the browser&#8217;s &#8216;fault&#8217; or not).</p>
<p>So why don&#8217;t more applications come with &#8220;friendly&#8221; error messages?</p>
<p>Part of it is because developers too often are concerned with getting <em>something</em> shipped (<a href="http://www.joelonsoftware.com/items/2009/09/23.html">shipping <strong><em>is</em></strong> a feature</a>, after all), that they don&#8217;t stop to consider who is going to actually <em>use</em> the software.</p>
<p><em><a href="http://www.imdb.com/title/tt0084827/quotes?qt0406248">User</a></em>. The four-letter-word of the development community. Developers all too often (I&#8217;m as guilty as anyone on this) of <a href="http://www.imdb.com/title/tt0084827/quotes?qt0406251">forgetting</a> that what they are writing is for someone <em>else</em> to <strong>use</strong>. Not for them to work on, debug, develop, extend, and futz with. No, it&#8217;s to use.</p>
<p>The average user doesn&#8217;t care that some component interacted in a bad way and caused a stack trace&#8230; they don&#8217;t care that there even <em>are</em> components and stacks to trace!</p>
<p>It takes conscious effort to write message people can care about, or at least understand. And it&#8217;s not because the userbase of a given product are dumb: they&#8217;re just not developers. Doctors surely are not dumb as a group, but that doesn&#8217;t mean they&#8217;re qualified to understand a stack trace on the <a href="http://en.wikipedia.org/wiki/Electronic_medical_record">EMR</a> system.</p>
<p>Developers need to take a step back from their work and remember that there are other people in the world beyond just them, and if the more easy and friendly a system is to use and interact with, the more likely people are to <em>want</em> to use it &#8211; which might just keep them employed <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/26/effective-error-messages/' addthis:title='effective error messages ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/09/26/effective-error-messages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>http is a stateless protocol</title>
		<link>http://antipaucity.com/2011/09/23/http-is-a-stateless-protocol/</link>
		<comments>http://antipaucity.com/2011/09/23/http-is-a-stateless-protocol/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 12:25:32 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[education]]></category>
		<category><![CDATA[insights]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1042</guid>
		<description><![CDATA[The ubiquitous protocol that enables the internet as we know it, http, is stateless. Stateless merely means that any given request has nothing to do with the previous, or the next request. This enables the world wide web, as web servers do not need to keep track of who is receiving data, nor ow much [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/23/http-is-a-stateless-protocol/' addthis:title='http is a stateless protocol ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>The ubiquitous protocol that enables the internet as we know it, <a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Idempotent_methods_and_web_applications">http</a>, is <a href="http://en.wikipedia.org/wiki/Stateless_protocol">stateless</a>.</p>
<p>Stateless merely means that any given request has nothing to do with the previous, or the next request. This enables the world wide web, as web servers do not need to keep track of who is receiving data, nor ow much they have: they get a request, and ship data to the requestor.</p>
<p>It is up to the requestor (often a web browser) to handle the incoming data.</p>
<p>If not every part of a web page, for example, is sent, the browser will display what it can.</p>
<p>This is analogous to a creditor sending you a bill (request), and you sending a check back to them &#8211; once the bill has been sent, the creditor knows nothing about the state of the bill until he receives a payment. Likewise, once the check is dropped in the mail, the payor knows nothing about his bill until the check clears his bank.</p>
<p>Why is this important? Because of an oft-repeated &#8220;request for enhancement&#8221; to the product I use on a daily basis. When the implementors of Opsware SAS were picking how a user should communicate with the system, they picked to run everything over http(s). They chose to utilize http because it&#8217;s commonplace, well-understood, and easy to work with.</p>
<p>One of the things about statelessness is that you cannot know how many people are using a given web page at the same time. Google cannot tell anyone how many people are actually <em>looking</em> at www.google.com at this moment. They can tell you how many <em>loaded</em> it,and how many just presses &#8220;Search&#8221;, but they can&#8217;t know what percentage of the loaders promptly went elsewhere &#8211; either to a different page, or a different room in their home.</p>
<p>One way around the statelessness of http is to utilize cookies or session data &#8211; but that merely adds a check layer to the interaction, it does not provide true &#8220;statefulness&#8221;.</p>
<p>Several times during my time in Support at Opsware (and after HP&#8217;s acquistion), I would have a customer who was looking for the ability to determine who was logged-in at any given time (in similar fashion to running `w` or `who` or `finger` on a Linux/Unix system). This could be important to know whether a user is &#8220;doing something&#8221; before doing an application restart.</p>
<p>However, since communication is all done via http, there can be no state known in the tool. Once you load a web page, it is being viewed/rendered on your local machine in your web browser &#8211; the server could be shut off, your network connection removed, or any of a host of other simulations of restarting the application. And your browser would be none-the-wiser, nor should it be: it has the data it requested/received, and you&#8217;re doing something with it.</p>
<p>This carries over to the product I work with. Jobs might be scheduled by a user to run every day at 0200 &#8211; but he doesn&#8217;t need to be actively logged-in to have them run. Likewise, someone may have logged-in, but is not &#8220;doing&#8221; anything currently (maybe they&#8217;re at lunch).</p>
<p>Another case of <a href="http://antipaucity.com/2011/08/08/why-technical-intricacies-matter">why technical intricacies matter</a> <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/23/http-is-a-stateless-protocol/' addthis:title='http is a stateless protocol ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/09/23/http-is-a-stateless-protocol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apple should buy sprint</title>
		<link>http://antipaucity.com/2011/09/22/apple-should-buy-sprint/</link>
		<comments>http://antipaucity.com/2011/09/22/apple-should-buy-sprint/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 20:28:57 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1059</guid>
		<description><![CDATA[According to The Street, Sprint-Nextel is at a 52-week low with today&#8217;s closing price. Their market cap is $10 billion. Apple as $70 billion in cash on hand. Google is buying Motorola. I think Apple should buy Sprint. And they should stop distributing the iPhone via Verizon and AT&#38;T in the US. guarantee a distribution [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/22/apple-should-buy-sprint/' addthis:title='apple should buy sprint ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>According to <a href="http://www.thestreet.com/story/11257209/1/sprint-nextel-stock-hits-new-52-week-low-s.html">The Street</a>, Sprint-Nextel is at a 52-week low with today&#8217;s closing price. Their market cap is <a href="http://www.google.com/finance?q">$10 billion</a>.</p>
<p>Apple as <a href="http://www.google.com/finance?aapl">$70 billion</a> in cash on hand.</p>
<p>Google is <a href="http://investor.google.com/releases/2011/0815.html">buying</a> Motorola.</p>
<p>I think Apple should buy Sprint. And they should stop distributing the iPhone via Verizon and AT&amp;T in the US.</p>
<ul>
<li>guarantee a distribution channel for media which Apple proffers</li>
<li>boost Sprint&#8217;s value</li>
<li>accelerate the deployment of 4g (and better) network technologies (<em>a la</em> <a href="http://antipaucity.com/2011/07/06/lightsquared/">LightSquared</a>)</li>
</ul>
<p>It would also give, in my opinion, a strong leg-up for Sprint on their <a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=4&amp;sqi=2&amp;ved=0CEAQFjAD&amp;url=http%3A%2F%2Fnews.consumerreports.org%2Felectronics%2F2011%2F09%2Fspring-files-suit-against-att-and-t-mobile-merger.html&amp;ei=dpp7TozpFpD-sQLBg8GsAw&amp;usg=AFQjCNEo3ew7g6Tr7XxnQDkstvUBmfTGkw">suit</a> against AT&amp;T&#8217;s proposed acquisition of T-Mobile.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/22/apple-should-buy-sprint/' addthis:title='apple should buy sprint ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/09/22/apple-should-buy-sprint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>changing hosts</title>
		<link>http://antipaucity.com/2011/09/21/changing-hosts/</link>
		<comments>http://antipaucity.com/2011/09/21/changing-hosts/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 00:37:29 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1052</guid>
		<description><![CDATA[After several years of being hosted at tektonic, it has come time to move hosts. My current web server is running 32-bit CentOS 4.9. Eek! That is old. Since upgrading to a new release of CentOS is now becoming more urgent, and upgrading is really reinstalling a new OS, I&#8217;ve started to look at new hosts. [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/21/changing-hosts/' addthis:title='changing hosts ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>After several years of being hosted at <a href="http://tektonic.net">tektonic</a>, it has come time to move hosts.</p>
<p>My current web server is running 32-bit <a href="http://centos.org">CentOS</a> 4.9. Eek! That is old.</p>
<p>Since upgrading to a new release of CentOS is now becoming more urgent, and upgrading is really reinstalling a new OS, I&#8217;ve started to look at new hosts. I&#8217;ve considered <a href="http://chunkhost.com/r/wmbna">Chunk Host</a>, but while their entry-level service are Okay, they&#8217;re not really in line with what I need at this time. Likewise, I have review <a href="http://iweb.com/">iWeb</a>&#8216;s offerings, but unless I go for a colo, they&#8217;re not going to suit my personal needs well, either.</p>
<p>My requirements for a new host are the following:</p>
<ul>
<li>CentOS 6 x64 (for a variety of reasons &#8211; this is not a religious thing: I have evaluated other distros/platforms, and this is the best option for <em>me</em>)</li>
<li>at least 250GB of storage (&gt;500G preferable)</li>
<li>several CPU cores (a <em>minimum</em> of 2, 4 or 8 would be better)</li>
<li>at least 4GB RAM</li>
<li>decent amount of available traffic (though I don&#8217;t anticipate major traffic patterns for some time)</li>
<li>at</li>
</ul>
<p>What I am planning to run:</p>
<ul>
<li>Apache (ports 80 and 443) hosting several domains</li>
<li>MySQL</li>
<li>Plone (on 8080)</li>
<li>PostgreSQL</li>
<li>sendmail for several domains</li>
<li>SVN</li>
<li>Trac</li>
<li>WordPress with some plugins (one of which is a little CPU intensive)</li>
<li>a backup store for myself (hence the storage requirements)
<ul>
<li>OS media</li>
<li>personal files</li>
</ul>
</li>
<li>continued mirroring of <a href="http://m0n0.ch">m0n0wall</a></li>
<li>oh &#8211; and it&#8217;d be nice if it was in the same rough price range as what I&#8217;m spending now on far less <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (2GB 2CPU 60GB on one host, and 512M 4CPU 20GB on my other host &#8211; total ~$45/month)</li>
</ul>
<p>So far, I have found a couple viable options &#8211; but have not 100% settled on them yet.</p>
<p>I am curious as to what alternatives may exist in this area that I have not yet seen, and would appreciate any suggestions <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/21/changing-hosts/' addthis:title='changing hosts ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/09/21/changing-hosts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>technical career development</title>
		<link>http://antipaucity.com/2011/09/20/technical-career-development/</link>
		<comments>http://antipaucity.com/2011/09/20/technical-career-development/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 06:53:24 +0000</pubDate>
		<dc:creator>antipaucity</dc:creator>
				<category><![CDATA[education]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://antipaucity.com/?p=1032</guid>
		<description><![CDATA[Career development. Career path. Development opportunities. Taking your career to the next level. Terms and phrases we all hear and pretty much pass over in our day-to-day lives. Right up until we want to move to a new/better job or performance reviews roll around. But what do they mean, and how can you advance your [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/20/technical-career-development/' addthis:title='technical career development ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>Career development. Career path. Development opportunities. Taking your career to the next level.</p>
<p>Terms and phrases we all hear and pretty much pass over in our day-to-day lives. Right up until we want to move to a new/better job or performance reviews roll around.</p>
<p>But what do they <em>mean</em>, and how can you advance your career (presuming, of course, that you want to)?</p>
<p>This is by no means an exhaustive list &#8211; indeed, I&#8217;d appreciate any other ideas / feedback / improvements y&#8217;all may suggest <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>For a software developer:</p>
<ul>
<li>be the <a href="http://cnx.org/content/m40967/latest/?collection=col11350/latest">documentation</a> KING of your code &#8211; if it&#8217;s not right, make it right</li>
<li>own every bug in your code &#8211; even when it&#8217;s not &#8220;yours&#8221;</li>
<li>be The Guy™ who learns a new component of the code/product (at least conversationally) every few weeks</li>
<li>write at least one tutorial a month on the internal wiki/kb about something you found or did with the code</li>
<li>write at least one tutorial or similar a month externally (maybe a personal blog) in a general fashion about something you learned or did</li>
</ul>
<p>For a systems consultant:</p>
<ul>
<li>be the <a href="http://cnx.org/content/m40967/latest/?collection=col11350/latest">documentation</a> KING of every project you work on &#8211; make <em>ABSOLUTELY</em> sure the next guy can do more after you leave</li>
<li>own every issue you find, even when it&#8217;s really somebody else&#8217;s problem (no throwing it over the fence)</li>
<li>the The Guy™ who learns something new about the environment or product every couple weeks</li>
<li>write at least one tutorial a month and/or give an overview talk of something you learned/did</li>
<li>write about what you&#8217;ve done (changing names to protect the innocent) on a blog or elsewhere</li>
<li><a href="http://electronicdesign.com/article/articles/continuing-education-how-to-teach-yourself-almost-.aspx">teach</a> as many people as are willing to learn what you know (in your company / on your team / etc)</li>
</ul>
<p>Focus &#8211; decide where you want to be, and plot a course to get there.</p>
<p>Finally, <strong><em>NEVER</em></strong> make yourself &#8220;irreplaceable&#8221; &#8211; the <em>instant</em> you make yourself irreplaceable, you also make yourself unpromotable: after all, if you&#8217;re the Only Guy™ who can do your job, why would your boss/manager/supervisor even <em>think</em> of moving you into a new role?</p>
<hr />
<sub><sup>As a side note &#8211; if you&#8217;re ever working at a customer site, don&#8217;t take calls from <em>anyone</em> other than the customer while you&#8217;re at your desk/cube/workspace: even if it&#8217;s project related, take it in a different room <img src='http://antipaucity.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </sup></sub></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://antipaucity.com/2011/09/20/technical-career-development/' addthis:title='technical career development ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://antipaucity.com/2011/09/20/technical-career-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

