<?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>nullcortex</title>
	<atom:link href="http://nullcortex.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nullcortex.com</link>
	<description>some words, some code, and some pictures</description>
	<lastBuildDate>Fri, 29 Jan 2010 18:43:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>freenode IRCd Migration</title>
		<link>http://nullcortex.com/2010/01/freenode-ircd-migration/</link>
		<comments>http://nullcortex.com/2010/01/freenode-ircd-migration/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 18:43:37 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[IRC]]></category>
		<category><![CDATA[IRC Council]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=136</guid>
		<description><![CDATA[On Saturday January 30th starting around 7:30 UTC freenode will be migrating to a new IRCd.  We are transitioning from hyperion to ircd-seven.   Expect netsplits as each server is switched over to the new software.
There are a few changes that channel operators should be aware of:

Usernames are no longer prefixed with i= or n= depending [...]]]></description>
			<content:encoded><![CDATA[<p>On Saturday January 30th starting around <a href="http://www.timeanddate.com/worldclock/fixedtime.html?month=1&amp;day=30&amp;year=2010&amp;hour=7&amp;min=30&amp;sec=0&amp;p1=0" target="_blank">7:30 UTC</a> freenode will be migrating to a new IRCd.  We are transitioning from hyperion to ircd-seven.   Expect netsplits as each server is switched over to the new software.</p>
<p>There are a few changes that channel operators should be aware of:</p>
<ul>
<li>Usernames are no longer prefixed with i= or n= depending on ident status.  We will be using the more common form of prepending a ~ for non-identd users.</li>
<li>Channel quiets are no longer grouped with bans.  Now there is a separate +q mode.  Trying to mute via +b %hostmask will not work, you must use +q hostmask.</li>
</ul>
<p>There are also a few expanded ban types that can be used with all ban-like modes (bqeIi).  Extended ban types are denoted by a $ and may start with a ~ to indicate negation:</p>
<ul>
<li>+b $r:troll  will ban all users with the realname (GECOS) of &#8216;troll&#8217;</li>
<li>+q $a:pici  will mute any user who is logged into services with the account pici</li>
<li>+e $~a will create an exception for any user identified to services</li>
</ul>
<p>More information about other changes can be found <a href="http://freenode.net/seven-for-hyperion-users.html" target="_blank">here</a>.  If you have any questions about the new modes or anything else related to the migration, feel free to ask us in #ubuntu-irc.</p>
<p>P.S.  We are working on changing our operator scripts and aliases to an ircd-seven compliant form, but I do not have any links yet.  Nothing like leaving it to the last minute.</p>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2010/01/freenode-ircd-migration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing Team Membership</title>
		<link>http://nullcortex.com/2009/12/visualizing-team-membership/</link>
		<comments>http://nullcortex.com/2009/12/visualizing-team-membership/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 14:09:05 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[IRC]]></category>
		<category><![CDATA[Launchpad]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[launchpadlib]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=110</guid>
		<description><![CDATA[A few days ago Jussi asked me to take a look at the new LP teams that he had created to manage our IRC operators and core channels.  I&#8217;m not sure if it was due to the lack of caffeine, but I was having a hard time figuring out what the hierarchy of teams was [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago <a href="http://jussi01.com/" target="_blank">Jussi</a> asked me to take a look at the new LP teams that he had created to manage our IRC operators and core channels.  I&#8217;m not sure if it was due to the lack of caffeine, but I was having a hard time figuring out what the hierarchy of teams was from looking at their launchpad pages.  Since I&#8217;m now more familiar using launchpadlib, I thought I&#8217;d put a small script together to graph out the team relationships.  In order to do the actual drawing, I used pydot, which is a python interface for <a href="http://www.graphviz.org" target="_blank">Graphviz</a>.</p>
<p>I showed some test output images to the folks in #ubuntu-offtopic and a few of them thought it was neat and asked me for the code so that they could make their own graphs.  I took that as a sign that I should clean up the code to make it more efficient.  I also went ahead and used optparse to make the application more user-friendly.</p>
<p>To start, lets take a look at what the output for the <a href="https://launchpad.net/~ubuntu-core-ircops" target="_blank">teams</a> that Jussi created:</p>
<p style="text-align: center;"><a href="http://nullcortex.com/wp-content/uploads/2009/12/ubuntu-core-ircops1.png"><img class="size-medium wp-image-112 aligncenter" title="ubuntu-core-ircops" src="http://nullcortex.com/wp-content/uploads/2009/12/ubuntu-core-ircops1-300x296.png" alt="" width="300" height="296" /></a></p>
<p style="text-align: left;">Well that&#8217;s rather self-explanatory. Much more so than looking at a bunch of lists on LP.</p>
<p style="text-align: left;">How if we looked at someone that has administrative access for some Launchpad teams.  Perhaps <a title="Jono Bacon" href="https://launchpad.net/~jonobacon" target="_blank">Jono</a>:</p>
<p style="text-align: center;"><a href="http://nullcortex.com/wp-content/uploads/2009/12/jonobacon.png"><img class="size-medium wp-image-114  aligncenter" title="jonobacon" src="http://nullcortex.com/wp-content/uploads/2009/12/jonobacon-300x299.png" alt="" width="300" height="299" /></a></p>
<p style="text-align: left;">Green filled team nodes indicate that the root user has administrative access to them.  I chose to focus on <strong>what </strong>teams a person had control over, rather than <strong>which </strong>relationships granted that level of access.  This was mostly due to not being happy with the options that Graphviz had for shading and coloring edges.</p>
<p style="text-align: left;">I suppose that graph was somewhat complex&#8230; although its nothing compared to <a title="Mark Shuttleworth" href="https://launchpad.net/~sabdfl" target="_blank">sabdfl</a>&#8217;s:</p>
<p style="text-align: center;"><a href="http://nullcortex.com/wp-content/uploads/2009/12/sabdfl.png"><img class="size-medium wp-image-117  aligncenter" title="sabdfl" src="http://nullcortex.com/wp-content/uploads/2009/12/sabdfl-199x300.png" alt="" width="199" height="300" /></a></p>
<p style="text-align: left;">Anyway, the python script itself is available <a title="lpdot" href="https://code.launchpad.net/~bnrubin/+junk/lpdot" target="_blank">here</a>. And the help page is as follows:</p>
<pre style="text-align: left;" lang="text">Usage: lpdot.py [-c COLOR] [-a COLOR] [-o PATH] [-d PATH] username

Options:
  -h, --help  show this help message and exit
  -c COLOR    set default node color to COLOR (defaults to white)
  -a COLOR    set administrative node color to COLOR (defaults to greenyellow)
  -o PATH     write png file to PATH (defaults to pwd)
  -d PATH     write dot file to PATH

  A list of valid colors can be found here:

http://www.graphviz.org/doc/info/colors.html
</pre>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2009/12/visualizing-team-membership/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Saving time with launchpadlib</title>
		<link>http://nullcortex.com/2009/12/saving-time-with-launchpadlib/</link>
		<comments>http://nullcortex.com/2009/12/saving-time-with-launchpadlib/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 19:38:00 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[IRC]]></category>
		<category><![CDATA[Launchpad]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[launchpadlib]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=101</guid>
		<description><![CDATA[One of the many tasks that the Ubuntu IRC Council is responsible for is granting Ubuntu member hostname cloaks to people who have gained Ubuntu membership.  We currently use a Launchpad team to keep track of the people that have been cloaked.  When someone requests a cloak in #ubuntu-irc, there are a number of steps [...]]]></description>
			<content:encoded><![CDATA[<p>One of the many tasks that the Ubuntu IRC Council is responsible for is granting Ubuntu member hostname cloaks to people who have gained <a href="http://www.ubuntu.com/community/processes/newmember" target="_blank">Ubuntu membership</a>.  We currently use a Launchpad team to keep track of the people that have been cloaked.  When someone requests a cloak in #ubuntu-irc, there are a number of steps that we need to go:</p>
<ol>
<li>Get the user&#8217;s Launchpad page</li>
<li>Check if they&#8217;re indeed an Ubuntu member</li>
<li>Go to the <a href="https://launchpad.net/~ubuntu-irc-cloaks" target="_blank">cloaked Ubuntu members team</a></li>
<li>Remember the user&#8217;s Launchpad id and add them to the team</li>
<li>Ask <a href="http://freenode.net/" target="_blank">freenode</a> staff to apply the cloak</li>
</ol>
<p>Now this doesn&#8217;t sound that difficult, but we&#8217;re all busy and we know that Launchpad isn&#8217;t exactly the fastest site around.  So, in order to make this easier for myself, I put together a small python script using <a href="https://help.launchpad.net/API/launchpadlib" target="_blank">launchpadlib</a> to do all the dirty work for me.  It also gave me an excuse to play with <a href="http://docs.python.org/library/optparse.html" target="_blank">optparse</a>, which I have been looking to have a reason to use.</p>
<p>The script gives me the ability to check a member&#8217;s status and add them to the cloak team in one step.  I can also choose to use the <a href="https://help.launchpad.net/StagingServer" target="_blank">launchpad staging server</a> to do a dry-run if I&#8217;m just testing.</p>
<p>This was my first time using launchpadlib to update information on Launchpad itself.  I have to say that it was a lot easier than I had originally thought it would be.</p>
<p>As of <a href="http://bazaar.launchpad.net/~bnrubin/%2Bjunk/lpteam/files/9" target="_blank">revision 9</a>, the code is as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
cachedir = <span style="color: #483d8b;">'~/.launchpadlib/cache/'</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">optparse</span> <span style="color: #ff7700;font-weight:bold;">import</span> OptionParser
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> main<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    usage = <span style="color: #483d8b;">'usage: %prog [options] username'</span>
    <span style="color: #dc143c;">parser</span> = OptionParser<span style="color: black;">&#40;</span>usage<span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'-f'</span>,<span style="color: #483d8b;">'--force'</span>,action=<span style="color: #483d8b;">'store_true'</span>,dest=<span style="color: #483d8b;">'force'</span>,
        <span style="color: #008000;">help</span>=<span style="color: #483d8b;">'add user regardless of membership in ubuntumembers'</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'-s'</span>,<span style="color: #483d8b;">'--staging'</span>,action=<span style="color: #483d8b;">'store_true'</span>,dest=<span style="color: #483d8b;">'staging'</span>,
        <span style="color: #008000;">help</span>=<span style="color: #483d8b;">'preform events against the launchpad staging server'</span><span style="color: black;">&#41;</span>
&nbsp;
    options,args = <span style="color: #dc143c;">parser</span>.<span style="color: black;">parse_args</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>args<span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">1</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Error: incorrect number of arguments'</span>
        <span style="color: #dc143c;">parser</span>.<span style="color: black;">print_help</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">from</span> launchpadlib.<span style="color: black;">launchpad</span> <span style="color: #ff7700;font-weight:bold;">import</span> Launchpad,STAGING_SERVICE_ROOT,EDGE_SERVICE_ROOT
    <span style="color: #ff7700;font-weight:bold;">from</span> launchpadlib.<span style="color: black;">errors</span> <span style="color: #ff7700;font-weight:bold;">import</span> HTTPError
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> options.<span style="color: black;">staging</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Warning: using staging.launchpad.net'</span>
        service = STAGING_SERVICE_ROOT
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        service = EDGE_SERVICE_ROOT
&nbsp;
    launchpad = Launchpad.<span style="color: black;">login_with</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'irc_lpteam'</span>,service,cachedir<span style="color: black;">&#41;</span>
    membername = args<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
    teamname=<span style="color: #483d8b;">'ubuntu-irc-cloaks'</span>
&nbsp;
    team = launchpad.<span style="color: black;">people</span><span style="color: black;">&#91;</span>teamname<span style="color: black;">&#93;</span>
    member = launchpad.<span style="color: black;">people</span><span style="color: black;">&#91;</span>membername<span style="color: black;">&#93;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #483d8b;">'ubuntumembers'</span> <span style="color: #ff7700;font-weight:bold;">in</span>  <span style="color: black;">&#91;</span>e.<span style="color: black;">name</span> <span style="color: #ff7700;font-weight:bold;">for</span> e <span style="color: #ff7700;font-weight:bold;">in</span> member.<span style="color: black;">super_teams</span><span style="color: black;">&#93;</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;'%s' (%s) is an Ubuntu Member&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>member.<span style="color: black;">display_name</span>,membername<span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Attempting to add '%s' (%s) to '%s' (%s)...&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>member.<span style="color: black;">display_name</span>,membername,team.<span style="color: black;">display_name</span>,teamname<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">try</span>:
            status = team.<span style="color: black;">addMember</span><span style="color: black;">&#40;</span>person=member,status=<span style="color: #483d8b;">&quot;Approved&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">except</span> HTTPError <span style="color: #ff7700;font-weight:bold;">as</span> error:
            <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Error: %s has occurred&quot;</span> <span style="color: #66cc66;">%</span> error
            <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;'%s' (%s) does not appear to be an Ubuntu Member.&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>member.<span style="color: black;">display_name</span>,membername<span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> options.<span style="color: black;">force</span>:
            <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Warning: force enabled, adding to team anyway'</span>
            <span style="color: #ff7700;font-weight:bold;">try</span>:
                status = team.<span style="color: black;">addMember</span><span style="color: black;">&#40;</span>person=member,status=<span style="color: #483d8b;">&quot;Approved&quot;</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">except</span> HTTPError <span style="color: #ff7700;font-weight:bold;">as</span> error:
                <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Error: %s has occurred&quot;</span> <span style="color: #66cc66;">%</span> error
                <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Success!'</span>
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    main<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>The latest code is available <a href="https://code.launchpad.net/~bnrubin/+junk/lpteam" target="_blank">here</a> for anyone who wants to play around with it themselves.</p>
<pre>Note: I have filed a <a href="https://launchpad.net/bugs/494136" target="_blank">bug</a> against launchpad that could make it easier to add people to teams.</pre>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2009/12/saving-time-with-launchpadlib/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UDS Lucid: IRC Council Recap</title>
		<link>http://nullcortex.com/2009/11/uds-irc-council-recap/</link>
		<comments>http://nullcortex.com/2009/11/uds-irc-council-recap/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 23:22:42 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[IRC]]></category>
		<category><![CDATA[IRC Council]]></category>
		<category><![CDATA[Lucid]]></category>
		<category><![CDATA[UDS]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=88</guid>
		<description><![CDATA[Well folks, UDS is over.  I had a lot of fun and got to know a bunch of people who I had only spoken to IRC before.  The IRC Council itself had a total of three sessions over the course of the week.  We have a lot of work ahead of us, some of our [...]]]></description>
			<content:encoded><![CDATA[<p>Well folks, UDS is over.  I had a lot of fun and got to know a bunch of people who I had only spoken to IRC before.  The <a href="https://launchpad.net/~ubuntu-irc-council" target="_blank">IRC Council</a> itself had a total of three sessions over the course of the week.  We have a lot of work ahead of us, some of our tasks are as follows:</p>
<h3>Prune Channel Access Lists:</h3>
<p>Currently about half of the people on our core channel access lists are inactive.  Some of them now contribute to other parts of Ubuntu, while others simply do not contribute at all.  Soon we will be using Launchpad teams to ensure that our operators are active and interested.  Eventually we&#8217;d like to have an automated process whereby operators with expired team memberships are automatically removed from the access lists.</p>
<h3>Develop an Application Process for New Operators:</h3>
<p>Presently when we feel that we need more operators we use a set of undocumented guidelines to pick from a pool of IRC helpers.  The IRCC will work towards creating a documented set of criteria that potential operators must meet.</p>
<h3>Document Operator Assessment Process:</h3>
<p>We currently do not have a written, or scheduled, assessment process for current operators.  With the team membership expiration dates going in, we will need a way to assess operators who wish to keep their channel privileges.  Working from the operator guidelines and the new operator application procedures, we will put together an assessment document that we may compare our current ops against.</p>
<h3>Membership Approval:</h3>
<p>As its stands now, people who contribute extensively via IRC are left to apply for membership via their respective regional membership boards.  We will be working with the Community Council to come up with a set of IRC-specific requirements so that we may approve these new members directly.</p>
<h3>IRC Tracker:</h3>
<p>We also have a long list of new suggested features for our <a href="https://launchpad.net/bantrackertwo">IRC Tracker</a> (previously called BantrackerTwo):</p>
<ul>
<li>MyBans page</li>
<li>Mode generator for ban removals</li>
<li>Concept of relationships between events</li>
<li>Anonymous access</li>
<li>Links to the appeals process for banned users</li>
<li>Aliases/tags for nicks</li>
<li>API</li>
<li>Better bot to tracker interface</li>
<li>Bot nagging for comments after an event occurs</li>
<li>Human readable URLs throughout</li>
<li>Improved interface for Encyclopedia (factoid) plugins</li>
<li>Suggested factoid queue moderation</li>
</ul>
<p>As you can see, we&#8217;re going to be very busy in the next few months.</p>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2009/11/uds-irc-council-recap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dear Lazyweb: Feed Categories</title>
		<link>http://nullcortex.com/2008/12/dear-lazyweb-feed-categories/</link>
		<comments>http://nullcortex.com/2008/12/dear-lazyweb-feed-categories/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 15:11:35 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lazyweb]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[tagging]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=53</guid>
		<description><![CDATA[Google recently released an update to Reader that gave it a more visually pleasing look and changed some of the functionality.  In playing with the new design, I started to re-tag my subscribed feeds.
I currently feel that my tagging system is a bit substandard.  Nearly everything that is tagged Ubuntu also falls under Linux [...]]]></description>
			<content:encoded><![CDATA[<p>Google recently released <a href="http://googlereader.blogspot.com/2008/12/square-is-new-round.html">an update</a> to Reader that gave it a more visually pleasing look and changed some of the functionality.  In playing with the new design, I started to re-tag my subscribed feeds.</p>
<p><img class="alignleft size-full wp-image-54" title="subscriptions" src="http://nullcortex.com/wp-content/uploads/2008/12/subscriptions.png" alt="" width="262" height="295" />I currently feel that my tagging system is a bit substandard.  Nearly everything that is tagged <em>Ubuntu </em>also falls under <em>Linux </em>and <em>Tech</em>. <em>Miscellany </em>has everything else that I can&#8217;t seem to categorize otherwise, like <a href="http://www.futilitycloset.com">Futility Closet</a> and <a href="http://notalwaysright.com/">Not Always Right</a>.  Also, as you can see, I don&#8217;t always get a chance to read every single new item. One person suggested to use a Favorites tag to separate the feeds that they always read away from the others, but I&#8217;m not sure how well this would work in practice.</p>
<p>How do you organize your RSS Feeds? Do you use Google Reader or does some other application (preferably not locked in to one computer) work better for you?</p>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2008/12/dear-lazyweb-feed-categories/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Firefox rmadison Plugin</title>
		<link>http://nullcortex.com/2008/12/firefox-rmadison-plugin/</link>
		<comments>http://nullcortex.com/2008/12/firefox-rmadison-plugin/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 15:58:02 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[IRC]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[devscripts]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[linode]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[mycroft]]></category>
		<category><![CDATA[rmadison]]></category>
		<category><![CDATA[searchplugin]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=50</guid>
		<description><![CDATA[While my laptop was under the knife during the past week or so, I was using my Linode to get my Ubuntu fix.  Although I have quite a bit of space free, I wanted to avoid installing extra packages that I would only end up using while my other computer was out of commission.
One such [...]]]></description>
			<content:encoded><![CDATA[<p>While my laptop was under the knife during the past week or so, I was using my <a href="http://www.linode.com">Linode</a> to get my Ubuntu fix.  Although I have quite a bit of space free, I wanted to avoid installing extra packages that I would only end up using while my other computer was out of commission.</p>
<p>One such package was devscripts; I make heavy use of the <a href="http://manpages.ubuntu.com/manpages/intrepid/en/man1/rmadison.html">rmadison</a> command when doing support in #ubuntu.  While I could probably have easily just used the basic interface for searching, I wanted something a bit nicer.  I settled for using Mozilla&#8217;s <a href="http://mycroft.mozdev.org/index.html">Mycroft</a> to create a SearchPlugin that could be added to Firefox&#8217;s search bar.</p>
<p>The plugin itself can be found <a href="http://mycroft.mozdev.org/search-engines.html?name=Ubuntu+Madison&amp;skipcache=yes">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2008/12/firefox-rmadison-plugin/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Book Meme?</title>
		<link>http://nullcortex.com/2008/11/book-meme/</link>
		<comments>http://nullcortex.com/2008/11/book-meme/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 00:13:33 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=29</guid>
		<description><![CDATA[I wasn&#8217;t going to do this, but I thought this was an interesting result:

Grab the nearest book: 1001 Movies You Must See Before You Die &#8211; info
Open to page 56: Review of Der Letzte Mann (The Last Laugh) &#8211; 1924
Find the fifth sentence: 
&#8220;Some of the camera work is &#8217;subjective,&#8217; as when his drunken perceptions [...]]]></description>
			<content:encoded><![CDATA[<p>I wasn&#8217;t going to do this, but I thought this was an interesting result:</p>
<ul>
<li>Grab the nearest book: <i>1001 Movies You Must See Before You Die</i> &#8211; <a title="http://isbndb.com/d/book/1001_movies_you_must_see_before_you_die_a02.html" href="http://" target="_blank">info</a></li>
<li>Open to page 56: Review of <i>Der Letzte Mann</i> (<i>The Last Laugh</i>) &#8211; 1924</li>
<li>Find the fifth sentence: </li>
<p>&#8220;Some of the camera work is &#8217;subjective,&#8217; as when his drunken perceptions are rendered by optical distortion; at other timer, it is the camera&#8217;s mobility that is evocative, as when it passes through the revolving doors that serve as a symbol of destiny.&#8221;
</ul>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2008/11/book-meme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intrepid Released!</title>
		<link>http://nullcortex.com/2008/10/intrepid-released/</link>
		<comments>http://nullcortex.com/2008/10/intrepid-released/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 14:41:18 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[IRC]]></category>
		<category><![CDATA[Intrepid]]></category>
		<category><![CDATA[Jaunty]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=25</guid>
		<description><![CDATA[Congrats to everyone on the release of Intrepid Ibex.  You&#8217;ve all done a great job.
#ubuntu has be wonderfully busy since the release announcement.  We&#8217;re currently hovering around 1500 users in channel.
Some of the first packages for Jaunty were just uploaded.  I&#8217;m waiting patiently for the time where the archives are at a state where they [...]]]></description>
			<content:encoded><![CDATA[<p>Congrats to everyone on the <a href="https://lists.ubuntu.com/archives/ubuntu-announce/2008-October/000116.html">release</a> of Intrepid Ibex.  You&#8217;ve all done a great job.</p>
<p>#ubuntu has be wonderfully busy since the release announcement.  We&#8217;re currently hovering around 1500 users in channel.</p>
<p>Some of the <a href="https://lists.ubuntu.com/archives/jaunty-changes/2008-October/000000.html">first packages</a> for <a href="https://lists.ubuntu.com/archives/ubuntu-devel-announce/2008-September/000481.html">Jaunty</a> were just uploaded.  I&#8217;m waiting patiently for the time where the archives are at a state where they can start being tested.</p>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2008/10/intrepid-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nano Nano</title>
		<link>http://nullcortex.com/2008/07/nano-nano/</link>
		<comments>http://nullcortex.com/2008/07/nano-nano/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 17:35:00 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nano]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=7</guid>
		<description><![CDATA[I use nano as my primary CLI editor.  It may not have as many features as vi(m) or Emacs (in no particular order), it is fast and easy for me.
One of the features that many people do not realize that nano supports is syntax highlighting.  This can quickly and easily be enabled by following these [...]]]></description>
			<content:encoded><![CDATA[<p>I use nano as my primary CLI editor.  It may not have as many features as vi(m) or Emacs (in no particular order), it is fast and easy for me.</p>
<p>One of the features that many people do not realize that nano supports is syntax highlighting.  This can quickly and easily be enabled by following these directions:</p>
<p>nano will automatically read in ~/.nanorc if it exists.  Since you probably don&#8217;t have that file there already, go ahead and copy the sample file out of /etc:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"> <span style="color: #7a0874; font-weight: bold;">&#91;</span>pici<span style="color: #000000; font-weight: bold;">@</span>romulus:~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>nanorc ~<span style="color: #000000; font-weight: bold;">/</span>.nanorc</pre></div></div>

<p>Highlighting for each language needs to be turned on explicitly in your new .nanorc file.  In Intrepid, the lines specifying each language begin around line 217, which is probably around the same area in other releases.  If not, this is what you&#8217;re looking for something similar to this:</p>
<h5>some default languages supported by nanorc:</h5>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">## Nanorc files</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/nanorc.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## C/C++</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/c.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## HTML</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/html.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## TeX</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/tex.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Quoted emails (under e.g. mutt)</span>
<span style="color: #666666; font-style: italic;"># include &quot;/usr/share/nano/mutt.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Patch files</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/patch.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Manpages</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/man.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Groff</span>
<span style="color: #666666; font-style: italic;"># include &quot;/usr/share/nano/groff.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Perl</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/perl.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Python</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/python.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Ruby</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/ruby.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Java</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/java.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Assembler</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/asm.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Bourne shell scripts</span>
include <span style="color: #ff0000;">&quot;/usr/share/nano/sh.nanorc&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## POV-Ray</span>
<span style="color: #666666; font-style: italic;">#include &quot;/usr/share/nano/pov.nanorc&quot;</span></pre></div></div>

<p>Go ahead and remove the hash from each include statement for the languages you wish to enable, and you&#8217;re all done.</p>
<p>Some other options that I find helpful to have in my .nanorc are as follows:</p>
<h5>Other options:</h5>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">## Setup tabs</span>
<span style="color: #000000; font-weight: bold;">set</span> autoindent
<span style="color: #000000; font-weight: bold;">set</span> tabstospaces
<span style="color: #000000; font-weight: bold;">set</span> tabsize <span style="color: #ff0000;">&quot;4&quot;</span>
<span style="color: #666666; font-style: italic;">## Don't wrap text at all.</span>
<span style="color: #000000; font-weight: bold;">set</span> nowrap</pre></div></div>

<p><i>Screenshot coming soon.</i></p>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2008/07/nano-nano/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Irssi and Aliases and Scripts, Oh My!</title>
		<link>http://nullcortex.com/2008/06/irssi-aliases-scripts/</link>
		<comments>http://nullcortex.com/2008/06/irssi-aliases-scripts/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 16:22:22 +0000</pubDate>
		<dc:creator>bnrubin</dc:creator>
				<category><![CDATA[IRC]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://nullcortex.com/?p=6</guid>
		<description><![CDATA[I spend the bulk of my Ubuntu time in our IRC channels.  My client of choice is irssi, which might be a bit minimalistic for some users.  I find that with a rich set of scripts and aliases that its utility rivals that of any gui client.
Here are a few of my aliases from my [...]]]></description>
			<content:encoded><![CDATA[<p>I spend the bulk of my Ubuntu time in our <a href="https://help.ubuntu.com/community/InternetRelayChat">IRC channels</a>.  My client of choice is irssi, which might be a bit minimalistic for some users.  I find that with a rich set of scripts and aliases that its utility rivals that of any gui client.</p>
<p>Here are a few of my aliases from my ~/.irssi/config file:</p>
<blockquote><p>CS = &#8220;/msg chanserv&#8221;;CSINFO = &#8220;/msg chanserv info $0&#8243;;</p>
<p>CSACCESS = &#8220;/msg chanserv access $0 list&#8221;;</p>
<p>CSOP = &#8220;/msg chanserv op $C $0&#8243;;</p>
<p>CSDEOP = &#8220;/msg chanserv op $C -$0&#8243;;</p>
<p>CSKICK = &#8220;CSREMOVE&#8221;;</p>
<p>CSBAN = &#8220;/msg chanserv op $C $N;/wait 50;/ban $0;/msg chanserv op $C -$N&#8221;;</p>
<p>CSMUTE = &#8220;/msg chanserv op $C $N;/wait 50;/mode +zq $0&#8243;;</p>
<p>CSKICKBAN = &#8220;/msg chanserv op $C $N;/wait 2;/remove $C $0 :$1-;/ban $0;/msg chanserv op $C -$N&#8221;;</p>
<p>CSUNBAN = &#8220;/msg chanserv op $C $N;/wait 50;/unban $0;/msg chanserv op $C -$N&#8221;;</p>
<p>CSTOPIC = &#8220;/msg chanserv op $C $N;/wait 50;/topic $0-;/msg chanserv op $C -$N&#8221;;</p>
<p>CSMODE = &#8220;/msg chanserv op $C $N;/wait 50;/mode $C $0 $1&#8243;;</p>
<p>CSMOD = &#8220;/CSMODE&#8221;;</p>
<p>CSINVITE = &#8220;/msg chanserv op $C $N;/wait 50;/invite $0;/msg chanserv op $C -$N&#8221;;</p>
<p>NS = &#8220;/msg nickserv&#8221;;</p>
<p>NSINFO = &#8220;/msg nickserv info $0&#8243;;</p>
<p>remove = &#8220;/quote remove&#8221;;</p>
<p>CSREMOVE = &#8220;/msg chanserv op $C $N;/wait 25;/remove $C $0 :$1-;/msg chanserv op $C -$N&#8221;;</p>
<p>CSRM = &#8220;CSREMOVE&#8221;;</p>
<p>CSKB = &#8220;CSKICKBAN&#8221;;</p>
<p>ubottu = &#8220;say !$0 &gt; $1 (Please see the private messsage from ubottu)&#8221;;</p>
<p>bot = &#8220;ubottu&#8221;;</p>
<p>NICKSETUP = &#8220;say $0: Please make sure that you have followed *all* of the steps outlined at http://freenode.net/faq.shtml#nicksetup and then return here and ask a staffer to activate  your cloak. (I am not a staffer)&#8221;;</p></blockquote>
<p>I originally found many of these aliases in <a href="http://pthree.org/2007/07/11/irssi-chanserv-and-nickserv-helper-aliases/">Aaron Toponce&#8217;s blog</a>, but they since been modified to fit Freenode changes and my own preferences.</p>
<p>In addition, here are some of the more important scripts that I have symlinked into ~/.irssi/scripts/autorun. Most of these can be found in the <a href="https://edge.launchpad.net/ubuntu/+source/irssi-scripts">irssi-scripts</a> package:</p>
<blockquote><p>auto_away.pl</p>
<p>bantime.pl</p>
<p>chanpeak.pl</p>
<p>clones.pl</p>
<p>dictcomplete.pl</p>
<p>dns.pl</p>
<p>figlet.pl</p>
<p>format_identify.pl</p>
<p>notify.pl</p>
<p>screen_away.pl</p>
<p>trigger.pl</p>
<p>usercount.pl</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://nullcortex.com/2008/06/irssi-aliases-scripts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
