<?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>Morgajel.net &#187; Uncategorized</title>
	<atom:link href="http://morgajel.net/category/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>http://morgajel.net</link>
	<description>Stemming the flow of evincible Ignorance. We must try to understand for the sake of understanding.</description>
	<lastBuildDate>Sun, 25 Jul 2010 20:48:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Revisited: Epson Perfection v350 on Ubuntu</title>
		<link>http://morgajel.net/2010/07/25/893</link>
		<comments>http://morgajel.net/2010/07/25/893#comments</comments>
		<pubDate>Sun, 25 Jul 2010 20:48:11 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=893</guid>
		<description><![CDATA[Jackie wanted me to reconfigure her scanner (since she hasn&#8217;t used it since I reloaded her system a while back) and I remembered what a pain it was to configure. A quick google search turned up the article I wrote three years ago, so I thought I&#8217;d do follow-up article to see what&#8217;s changed. Get [...]]]></description>
			<content:encoded><![CDATA[<p>Jackie wanted me to reconfigure her scanner (since she hasn&#8217;t used it since I reloaded her system a while back) and I remembered what a pain it was to configure. A quick google search turned up the <a href="http://morgajel.net/2007/09/02/219">article I wrote three years ago</a>, so I thought I&#8217;d do follow-up article to see what&#8217;s changed.</p>
<h2>Get the Drivers</h2>
<p>Since my last installation, things have changed. a bit. Many different <a href="http://avasys.jp/eng/linux_driver/download/">distros are now supported</a>, so we don&#8217;t have to shoehorn the RPMs onto the system with Alien. Here are the packages I grabbed off their site:<br />
<code><br />
iscan-data_1.0.1-1_all.deb<br />
iscan_2.25.0-1.ltdl7_i386.deb<br />
iscan-plugin-gt-f700_2.1.0-3_i386.deb<br />
</code></p>
<p>Once you have them, you can install them along with sane and sane utils:<br />
<code><br />
sudo dpkg -i iscan_2.25.0-1.ltdl7_i386.deb iscan-data_1.0.1-1_all.deb iscan-plugin-gt-f700_2.1.0-3_i386.deb<br />
sudo apt-get install sane sane-utils<br />
</code></p>
<h2>Edit the Configs</h2>
<p>Edit /etc/sane.d/dll.conf, adding <em>epkowa</em> to the list.</p>
<p>Create /etc/udev/rules.d/45-libsane.rules, adding the following:<br />
<code><br />
# Epson Perfection v350<br />
SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="012f", MODE="664", GROUP="scanner"<br />
</code><br />
I use the group &#8220;scanner&#8221; above; You could go the easy route and use a group that you&#8217;re already part of, such as &#8220;users&#8221; or &#8220;admin&#8221;, otherwise you&#8217;ll have to create the scanner group, add yourself to it, then log out and log back in.</p>
<h2>Finishing Up</h2>
<p>Afterwards, connect your scanner and run the following command:<br />
<code><br />
scanimage -L<br />
</code></p>
<p>The scanner should fire up now, which means you can use your newly installed iscan app to scan pictures.</p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/07/25/893/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated to 3.0</title>
		<link>http://morgajel.net/2010/06/18/752</link>
		<comments>http://morgajel.net/2010/06/18/752#comments</comments>
		<pubDate>Fri, 18 Jun 2010 16:07:57 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=752</guid>
		<description><![CDATA[Now lets see what breaks&#8230;]]></description>
			<content:encoded><![CDATA[<p>Now lets see what breaks&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/06/18/752/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dear Cyberhomes.com</title>
		<link>http://morgajel.net/2010/06/02/729</link>
		<comments>http://morgajel.net/2010/06/02/729#comments</comments>
		<pubDate>Thu, 03 Jun 2010 01:57:50 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=729</guid>
		<description><![CDATA[Some day I hope you&#8217;ll join us in the future, where websites don&#8217;t fail miserably for having the wrong user-agent string. Here&#8217;s the problem- I go to check my home value at cyberhomes only to receive the following message on every single page: Your browser is not supported. We do not support your browser yet&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Some day I hope you&#8217;ll join us in the future, where websites don&#8217;t fail miserably for having the wrong user-agent string. Here&#8217;s the problem- I go to check my home value at cyberhomes only to receive the following message on every single page:</p>
<blockquote><p>Your browser is not supported.</p>
<p>We do not support your browser yet&#8230;</p>
<p>If you are on a Windows machine please use:<br />
    * Internet Explorer 6 and up<br />
    * Firefox 1.5 and up<br />
    * Safari Beta 3 and up</p>
<p>If you are on a Mac please use:<br />
    * Safari<br />
    * Firefox 1.5 and up</p>
<p>Your current browser is Mozilla 1.9.2.5
</p></blockquote>
<p>There are several problems with this:</p>
<ol>
<li> I am using firefox 1.5 and up, specifically, <code>"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.5pre) Gecko/20100501 Ubuntu/9.10 (karmic) Namoroka/3.6.5pre"</code> I can only presume that since it doesn&#8217;t say &#8220;firefox&#8221;, it fails.</li>
<li>You&#8217;re parsing my connection string wrong-1.9.2.5 is related to my profile version, not browser version. Don&#8217;t do that.</li>
<li>Even after I change my connection string to Firefox/1.5, it STILL fails. The error message says Windows or Mac; maybe it&#8217;s failing because it is looking for one or the other.</li>
<li>The site is completely useless if that page comes up- no contact info to report a problem, nothing. I can&#8217;t even tell you that you&#8217;re accidentally blocking me.</li>
</ol>
<p>I end up having to use the following connection string:<br />
    <code>"Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8"</code><br />
and the sad part was YOUR SITE LOOKED FINE. This kind of ungraceful degradation irritates the hell out of many people. If you don&#8217;t support my browser, I get it- you don&#8217;t want to give people a bad experience. You know what you do rather than make the site completely useless? You pop up a little window saying:</p>
<blockquote><p>
Sorry, we do not support your browser yet&#8230;</p>
<p>For better browsing experience, we suggest you try the following:<br />
If you are on a Windows machine please use:<br />
    * Internet Explorer 6 and up<br />
    * Firefox 1.5 and up<br />
    * Safari Beta 3 and up</p>
<p>If you are on a Mac please use:<br />
    * Safari<br />
    * Firefox 1.5 and up</p>
<p>Your current browser is Mozilla 1.9.2.5<br />
                                                      [x] continue anyways&#8230;
</p></blockquote>
<p>Note that the little [x] is a close button- VERY important on a warning like that. This allows the users to continue on viewing your website on the off chance that you accidentally mislabeled them.</p>
<p>This is 2010. This is the future. An issue like this was annoying back in 1998- there&#8217;s no reason a pretty site like yours should be doing this. Get with the program.</p>
<p>Sincerely,<br />
- Jesse</p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/06/02/729/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Port Conventions</title>
		<link>http://morgajel.net/2010/05/14/717</link>
		<comments>http://morgajel.net/2010/05/14/717#comments</comments>
		<pubDate>Sat, 15 May 2010 01:23:03 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=717</guid>
		<description><![CDATA[Over the past few years I&#8217;ve been doing a lot of work with JBoss and tomcat. One issue we&#8217;ve always had is bringing some level of sanity to ports that are in use. My current situation is somewhat abnormal; we have 12 applications, each with two instances, each with 7 ports- that&#8217;s a total of [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few years I&#8217;ve been doing a lot of work with JBoss and tomcat. One issue we&#8217;ve always had is bringing some level of sanity to ports that are in use. My current situation is somewhat abnormal; we have 12 applications, each with two instances, each with 7 ports- that&#8217;s a total of 168 ports that we need to keep track of. Now, multiply that by tomcat, apache and nagios&#8217; configurations. Now multiply that by Dev, QA, ITL, PRJ, Preprod and Prod environments on segregated hardware. Even though a LOT of these ports can overlap, that&#8217;s a LOT to keep track of in a flat file or spreadsheet. We also require a certain level of flexibility:</p>
<ol>
<li>Port Expansion: I mentioned there were 7 ports we use; originally there were only 6, but I enabled SNMP to better trend JVM usage (24 JVMs use a <em>lot</em> of RAM). As we add more features, more ports could be needed.</li>
<li>Application Expansion: We originally started out with 9 instances, and after 5 months added another three. More will be possible in the future.</li>
</ol>
<p>The required flexibility makes numbering conventions difficult. The solution we came up with is to key the information and use it to build the port number. In order to do that, we had to make a few assumptions:</p>
<ol>
<li>Environments are sequestered to their own hardware, however they&#8217;re on the same networks- i.e. dev and qa instances will never be on the same physical server, but will share multicast ranges</li>
<li>There will not be more than 5 instances in a cluster- any more than that would put theoretical ports out the 65536 range; besides, replication shouldn&#8217;t be past 4 nodes, right?</li>
<li>Ports below 1024 are off limits</li>
<li>We are constrained by IP addresses; one IP per server.</li>
</ol>
<p>From here we could allow the following constraints:</p>
<ol>
<li>Environments can use the same ports, EXCEPT for multicast- we don&#8217;t want QA and prod replicating data!</li>
<li>All multicast should use 1 for their Instance ID</li>
</ol>
<p>With that in mind, port numbers will be laid out with the following structure: <b>XYYZZ</b></p>
<p>X = Instance ID (e.g. 1-4)<br />
YY = application ID (Helium,Hydrogen,Lithium, etc )<br />
ZZ = Port Type (jmx, ajp, snmp, etc)</p>
<p><code><br />
1 Instance1<br />
2 Instance2<br />
3 Instance3<br />
4 Instance4<br />
</code></p>
<p><code><br />
01 Hydrogen<br />
02 Helium<br />
03 Lithium<br />
04 Beryllium<br />
05 Boron<br />
06 Carbon<br />
07 Nitrogen<br />
08 Oxygen<br />
09 Fluorine<br />
10 Neon<br />
11 Sodium<br />
12 Magnesium<br />
</code></p>
<p><code><br />
01 Shutdown<br />
02 JMX<br />
03 HTTP<br />
04 AJP<br />
05 SNMP<br />
06 REPL<br />
07 MCASTDEV<br />
08 MCASTQA<br />
09 MCASTUAT<br />
10 MCASTPREPROD<br />
11 MCASTPROD<br />
</code></p>
<p>This allows us to define the following:</p>
<ul>
<li>Hydrogen AJP for instance 1 is 10104 (1+01+04)</li>
<li>Oxygen SNMP for instance 4 is 40805 (4+08+05)</li>
<li>Sodium Multicast for Prod 3 is 11111 (1+11+11) (remember, all multicast use 1 for their instance)</li>
</ul>
<p>Other than the Multicast port kludge, this way seems to work pretty well. Numbers are easy to parse visually and can be maintained with a centralized key on the wiki. Anyone have any suggestions or examples of how they&#8217;ve solved this problem? </p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/05/14/717/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios LDAP Contact Creator Script</title>
		<link>http://morgajel.net/2010/05/12/701</link>
		<comments>http://morgajel.net/2010/05/12/701#comments</comments>
		<pubDate>Wed, 12 May 2010 20:04:40 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=701</guid>
		<description><![CDATA[The Following is an ugly little perl script I&#8217;ve whipped up for generating contact entries for Nagios; each file is read via a cfg_dir command in the nagios.cfg. This script is set to run nightly, capturing any new users and updating users and groups automagically. Let me know if you find it useful. &#160; #!/usr/bin/perl [...]]]></description>
			<content:encoded><![CDATA[<p>The Following is an ugly little perl script I&#8217;ve whipped up for generating contact entries for Nagios; each file is read via a cfg_dir command in the nagios.cfg. This script is set to run nightly, capturing any new users and updating users and groups automagically.</p>
<p>Let me know if you find it useful.</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;">&nbsp;
<span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
<span style="color: #666666; font-style: italic;"># read your ldap repo and generation nagios config files for contacts</span>
<span style="color: #666666; font-style: italic;"># and contact_groups</span>
<span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> Net<span style="color: #339933;">::</span><span style="color: #006600;">LDAP</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> Data<span style="color: #339933;">::</span><span style="color: #006600;">Dumper</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Set all your custom configs here:</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$ldaphostname</span><span style="color: #339933;">=</span><span style="color: #ff0000;">'ldap.example.int'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$groupdn</span><span style="color: #339933;">=</span><span style="color: #ff0000;">'ou=People,ou=Groups,dc=example,dc=int'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$peopledn</span><span style="color: #339933;">=</span><span style="color: #ff0000;">'ou=People,ou=active,ou=Users,dc=example,dc=int'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$contactdir</span><span style="color: #339933;">=</span><span style="color: #ff0000;">'/etc/nagios/contacts'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$ldap</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Net<span style="color: #339933;">::</span><span style="color: #006600;">LDAP</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ldaphostname</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ldap</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;failed to bind&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#search for groups</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$mesg</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ldap</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">search</span><span style="color: #009900;">&#40;</span>
        base <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$groupdn</span><span style="color: #339933;">,</span>
        filter <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;(objectclass=posixgroup)&quot;</span><span style="color: #339933;">,</span>
        attrs <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'cn'</span><span style="color: #339933;">,</span><span style="color: #ff0000;">'memberuid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#loop through each entry</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$group</span><span style="color: #339933;">=</span> <span style="color: #0000ff;">$mesg</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">pop_entry</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">#set the name of the group</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$cn</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$group</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get_value</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'cn'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">#create a comma-separated list of group members</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$members</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$group</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get_value</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'memberuid'</span><span style="color: #339933;">,</span> asref <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$members</span><span style="color: #339933;">=</span> <span style="color: #000066;">join</span><span style="color: #009900;">&#40;</span> <span style="color: #ff0000;">','</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">@$members</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># create our configuration block</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$contactinfo</span><span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;
        # We only have one contact in this simple configuration file,
        # so there is no need to create more than one contact group.
&nbsp;
        define contactgroup{
            contactgroup_name       $cn
            alias                   $cn
            members                 $members
            }<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># write this block to a file named after the group cn</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">`echo &quot;$contactinfo&quot; &gt; $contactdir/group_$cn.cfg`</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#search for users</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$mesg</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ldap</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">search</span><span style="color: #009900;">&#40;</span>
            base <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$peopledn</span><span style="color: #339933;">,</span>
            filter <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;(objectclass=person)&quot;</span><span style="color: #339933;">,</span>
            attrs <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'uid'</span><span style="color: #339933;">,</span><span style="color: #ff0000;">'cn'</span><span style="color: #339933;">,</span><span style="color: #ff0000;">'mail'</span><span style="color: #339933;">,</span><span style="color: #ff0000;">'description'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
           <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#loop through each entry</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$user</span><span style="color: #339933;">=</span> <span style="color: #0000ff;">$mesg</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">pop_entry</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$pager</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$addr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;"># grab the four fields we're interested in</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$uid</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get_value</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'uid'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$cn</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get_value</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'cn'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$mail</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get_value</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'mail'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$desc</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get_value</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'description'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Note that I store the user's SMS address and Instant Messenger</span>
<span style="color: #666666; font-style: italic;"># addresses in the description field in the following format:</span>
<span style="color: #666666; font-style: italic;"># SMS:1234445555@some.url;</span>
<span style="color: #666666; font-style: italic;"># IM:morgajel@yahoo,morgajel@gtalk;</span>
<span style="color: #666666; font-style: italic;"># for those interested, you can send email to an sms address </span>
<span style="color: #666666; font-style: italic;"># with help from &lt;a href=&quot;http://sms411.net/how-to-send-email-to-a-phone&quot;&gt;http://sms411.net/how-to-send-email-to-a-phone&lt;/a&gt;</span>
    <span style="color: #666666; font-style: italic;">#strip pager info out of desc and format it</span>
    <span style="color: #666666; font-style: italic;">#(note it's in sms format):</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$desc</span> <span style="color: #339933;">=~/</span>SMS<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;?/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$pager</span><span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;        pager           $1<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #666666; font-style: italic;"># strip addresses out of desc and format them:</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$desc</span> <span style="color: #339933;">=~/</span>IM<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;?/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">@multiple_addr</span><span style="color: #339933;">=</span><span style="color: #000066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/,/</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$count</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;"># break each address out into an addressX line</span>
        <span style="color: #666666; font-style: italic;"># (for informational purposes);</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$addr</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@multiple_addr</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$addr</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$addr</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;        address$count        $addr<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$count</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$count</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">#generate the first half of the contact info</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$contactinfo</span><span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;
    define contact{
        contact_name    $uid              ; Short name of user
        use             generic-contact
        alias           $cn               ; Full name of user
        email           $mail
$pager
$addr
    }&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># write this block to a file named after the user uid</span>
    <span style="color: #ff0000;">`echo &quot;$contactinfo&quot; &gt; $contactdir/$uid.cfg`</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/05/12/701/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dandelion Fluff</title>
		<link>http://morgajel.net/2010/04/21/697</link>
		<comments>http://morgajel.net/2010/04/21/697#comments</comments>
		<pubDate>Wed, 21 Apr 2010 17:06:17 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=697</guid>
		<description><![CDATA[This sorta puts it in perspective&#8230; One of my few remaining coworkers at EPI made the following comment: (11:33:42 AM) Jeff: so many gone (11:34:10 AM) Jeff: jesse matt carrie lisa stacey kurt roger jim naveen brandon lee bink tristan jason jen sean drew radha VJ jackie andy noelle whip reedy jeremy keith ryan pankaj [...]]]></description>
			<content:encoded><![CDATA[<p>This sorta puts it in perspective&#8230; One of my few remaining coworkers at EPI made the following comment:</p>
<p>(11:33:42 AM) Jeff: so many gone<br />
(11:34:10 AM) Jeff: jesse<br />
matt<br />
carrie<br />
lisa<br />
stacey<br />
kurt<br />
roger<br />
jim<br />
naveen<br />
brandon<br />
lee<br />
bink<br />
tristan<br />
jason<br />
jen<br />
sean<br />
drew<br />
radha<br />
VJ<br />
jackie<br />
andy<br />
noelle<br />
whip<br />
reedy<br />
jeremy<br />
keith<br />
ryan<br />
pankaj<br />
nirupa<br />
asad<br />
santhi<br />
rick<br />
limer<br />
meads<br />
mick<br />
(11:34:42 AM) Jesse: you should post that as a facebook status update. one comma separated list.<br />
(11:39:06 AM) Jeff: lol<br />
(11:39:12 AM) Jeff: those are just people i knew and worked with in IT<br />
(11:39:18 AM) Jeff: i&#8217;m not counting others I didn&#8217;t work with or know in IT</p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/04/21/697/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I am Disappoint, son</title>
		<link>http://morgajel.net/2010/04/13/691</link>
		<comments>http://morgajel.net/2010/04/13/691#comments</comments>
		<pubDate>Tue, 13 Apr 2010 15:58:34 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=691</guid>
		<description><![CDATA[SUBJECT: [#24413540] Suspension Notice CPU Limits Reached (1st Warning) Hello, Due to the amount of CPU and/or memory resources used by your account, we were forced into suspending the account. Please understand that we only suspend an account as a last resort and want to help you track down the cause as quickly as possible. [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
SUBJECT: [#24413540] Suspension Notice CPU Limits Reached (1st Warning)<br />
Hello,</p>
<p>Due to the amount of CPU and/or memory resources used by your account, we were forced into suspending the account. Please understand that we only suspend an account as a last resort and want to help you track down the cause as quickly as possible.</p>
<p>Shared servers (MegaPhase, Prophase, and ANHosting accounts) are only allotted 10% of the server&#8217;s resources (CPU and Memory) at any given time. This<br />
restriction is put in place to keep balance on the server. The first step is to<br />
try to isolate what content on your website is causing the overage. If this<br />
seems unexpected, it could be a recent change to your site (such as installing<br />
a new wordpress plugin, mailing list application, etc). Any information you can<br />
provide about recent changes can help us to isolate the problem. However, we<br />
were able to retrieve the following files and/or scripts that likely caused the<br />
suspension:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p> literaryescapism.com 2.33 1.38 0.1<br />
Top Process %CPU 34.0 [php]<br />
Top Process %CPU 25.0 public_html/index.php<br />
Top Process %CPU 23.0 public_html/index.php</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
</p></blockquote>
<p>This was the beginning of an email I received from our hosting company, telling me that Jackie&#8217;s site was suspended due to usage. I&#8217;m not disappointed so much that they suspended it (which was the proper course of action), but in how they responded to me. Here&#8217;s my response to the warning email:</p>
<blockquote><p>
I&#8217;m trying to figure out if this is new behavior from a wordpress exploit or if it&#8217;s honestly just grown to this point; do you have any trending data for my cpu usage?</p>
<p>Side note- the access-logs linked in my home directory appear to go nowhere:<br />
access-logs -> /usr/local/apache/domlogs/user<br />
that path doesn&#8217;t exist.</p>
<p>I would like to help in any way I can. As a side note, I&#8217;ve noticed quite a few &#8220;errors connecting to mysql&#8221; in the apache logs; could there be an underlying issue with mysql that&#8217;s causing processes to back up and chew cpu time?</p>
<p>I&#8217;m also seeing some defunct php processes from other users, leading me to wonder if this is more of a systemic problem than one with just my account.</p>
<p>(sorry, I&#8217;m an apache/linux admin myself- let me know if there&#8217;s anything I can do to assist. I can be reached on gtalk, aim or yahoo.)
</p></blockquote>
<p>And their response:</p>
<blockquote><p>
Hello,</p>
<p>Unfortunately we do not have any further data except for what was given in the e-mail:</p>
<p> literaryescapism.com 2.33 1.38 0.1<br />
Top Process %CPU 34.0 [php]<br />
Top Process %CPU 25.0 public_html/index.php<br />
Top Process %CPU 23.0 public_html/index.php</p>
<p>Your account has been unsuspended so you can troubleshoot this issue. Please let us know if you have any further questions.<br />
&#8211;<br />
Best regards,</p>
<p>xxxxxxxxxxxxxx<br />
Technical Support Representative<br />
Hosting Services, Inc.
</p></blockquote>
<p>It&#8217;s sort of dumbfounding to be completely shut down like that from a TSR. I would have hoped that he would have seen that I A) know what I&#8217;m talking about and B) would have booted me up to someone who could better assist me. Instead he unlocks the account (which, btw, was never locked or suspended as far as I could tell from the time I got the email and checked until he sent the notice that it was unsuspended) and says &#8220;sorry, we have no data to help you figure out what happened.&#8221; Note that he didn&#8217;t address my questions regarding the broken symlink, mysql availability, or defunct processes.</p>
<p>Flustered, I responded with this:</p>
<blockquote><p>
Is it still using such high CPU load? I noticed several processes on the server that were having issues when I looked; many of which were not mine- The load on the server was 114 when I checked it last night. Regardless of server, that&#8217;s high, and I wasn&#8217;t one of the high processes listed.</p>
<p>I suspect this was a systemic issue- perhaps mysql went down causing multiple sites to freak out. If that&#8217;s the case (and there was a problem with the system itself), troubleshooting from my end is near impossible, especially since you have no trending data on usage. To determine if this was a one-time issue or a building issue.</p>
<p>I&#8217;d like to help you guys, but ya gotta work with me here. This is what I do for a living- I&#8217;m the Apache/Linux administrator. My wife&#8217;s site has been running for 6 months with no major changes (other than simple wordpress upgrades, none of which<br />
were in the last week) and no notable increase in traffic or bandwidth usage over the past week.</p>
<p>If you&#8217;re incapable of providing details as to whether or not there was a system issue (or even if other clients had similar issues at the same time) my only course of action would be to take our sites to another provider. I don&#8217;t want to do that; I&#8217;ve been happy with you guys so far.</p>
<p>Please, check and see if there were multiple clients on this server who received warnings as well; I suspect I wasn&#8217;t the only one. From where I&#8217;m standing the server does not look very healthy- I&#8217;m seeing multiple defunct processes:</p>
<p>nobody    6857  0.0  0.0      0     0 ?        Z    08:46   0:00 [httpd] <defunct><br />
1027     10565 15.0  0.0      0     0 ?        Z    08:48   0:00 [php] </defunct><defunct><br />
32003    10573  0.0  0.0      0     0 ?        Zs   08:48   0:00 [cpsrvd-ssl] </defunct><defunct></p>
<p>Please let me know if there is a sysadmin I can work with to resolve this issue. Like I said, I don&#8217;t think this is a problem with my site necessarily.<br />
</defunct></p></blockquote>
<p>We&#8217;ll see how they respond. Hopefully they&#8217;ll be useful- I just switched to them in October, so I really don&#8217;t want to have to find another host.</p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/04/13/691/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tomcat Symlink Fun</title>
		<link>http://morgajel.net/2010/03/12/685</link>
		<comments>http://morgajel.net/2010/03/12/685#comments</comments>
		<pubDate>Fri, 12 Mar 2010 20:46:09 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=685</guid>
		<description><![CDATA[Here&#8217;s how I stumbled across this (names changed to protect the guilty): Suppose you have 4 tomcat instances, A1, A2, B1 and B2. A1 and A2 run application Apple/. B1 and B2 run application Breakfast. Someone decided &#8220;Hey, we can save deployment time if we symlink A1 and A2 to the same directory.&#8221; Obvious questions [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s how I stumbled across this (names changed to protect the guilty):<br />
Suppose you have 4 tomcat instances, A1, A2, B1 and B2. A1 and A2 run application Apple/. B1 and B2 run application Breakfast. Someone decided &#8220;Hey, we can save deployment time if we symlink A1 and A2 to the same directory.&#8221;</p>
<p>Obvious questions aside (why bother setting up two if they&#8217;re going to be hosting the same content on the same box?), lets look at what happens when you misconfigure this relatively simple idea. The tomcat instances each had a webapps directory where their application was deployed, for example,  <em>A1/webapps/Apple/</em> or <em>B2/webapps/Breakfast/</em>. The goal was to create a common deployment location for A1 and A2, B1 and B2, however a shortcut was taken and the webapps directory was symlinked rather than Apple and Breakfast, then BOTH Apple and Breakfast were placed in the shared directory. This resulted in 2 things:<br />
* a unified place to deploy code<br />
* every single tomcat instance loading BOTH Apple and Breakfast</p>
<p>This means <em>B1/webapps/</em> now includes <em>Apple/</em>. While this may not seem like a problem (B2&#8242;s context root is set to <em>Breakfast/</em>, for example), it can lead to complications down the road:<br />
* each instance now needs to load and compile things for both applications, resulting in wasted resources and startup time.<br />
* If <em>Breakfast/</em> happens to include it&#8217;s OWN <em>Apple/</em> (because apples are part of a complete breakfast,) <em>B2/webapps/Breakfast/Apple/</em> is now ignored in favor of <em>B2/webapps/Apple/.</em></p>
<p>Fortunately I&#8217;d stumbled across this misconfiguration the day before others did, so I was able to quickly deduce what was wrong. Why didn&#8217;t I fix it? Because I wasn&#8217;t sure I was right, and I didn&#8217;t want to break someone elses apparently broken configuration any further. Besides, I&#8217;m trying to fight this obsessive feeling that &#8220;if I don&#8217;t do it myself, I won&#8217;t know if it&#8217;s right,&#8221; and doublechecking everyone&#8217;s work feeds that.</p>
<p>Fortunately the fix was quick and simple. It may not seem like that big of a deal, but you must remember this is a simplified view of the situation. the REAL setup had 10 applications, with some weighing in at 4-8 gigs each. While most of that is content (images and flash that tomcat doesn&#8217;t have to process), sorting through an extra 600k files *per project* will slow the system down.</p>
<p>Now, this behavior may seem dumb until you think of it from a tomcat point of view. &#8220;I know you have this /register/ under your context root, but you also have this application named register/, so I&#8217;m gonna go ahead and presume you want to run the full application rather thank this dinky directory. Besides, it&#8217;s probably a &#8216;sorry, registration is currently out of order&#8217; in case the full application is taken offline.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/03/12/685/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complex ACLs in Apache Locations</title>
		<link>http://morgajel.net/2010/03/09/679</link>
		<comments>http://morgajel.net/2010/03/09/679#comments</comments>
		<pubDate>Tue, 09 Mar 2010 14:15:22 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=679</guid>
		<description><![CDATA[So the problem I&#8217;m having is with limiting LDAP users access to WebDAV directories; specifically, how do I keep devs from committing to the release branch. The setup is each of the large Projects (Project1, Project2) has a trunk and release branch; however some pesky devs try to ninja changes into the release branch, circumventing [...]]]></description>
			<content:encoded><![CDATA[<p>So the problem I&#8217;m having is with limiting LDAP users access to WebDAV directories; specifically, how do I keep devs from committing to the release branch. The setup is each of the large Projects (Project1, Project2) has a trunk and release branch; however some pesky devs try to ninja changes into the release branch, circumventing the entire process. That&#8217;s bad. The access should go like this (note this is a subset of the mess I&#8217;m dealing with):</p>
<ol>
<li>Everyone can read and write all projects under / (/Project1, /Project2) EXCEPT:
<ol>
<li>Only a certain team of devs (and I) can write to /Project1/trunk.</li>
<li>Only a certain team of qa can write to /Project1/branches/release.</li>
</ol>
</li>
</ol>
<p>Specifically, I should be able to commit to trunk but not release, however that doesn&#8217;t seem to be the case. Here&#8217;s an abbreviated version of my vhost:</p>
<pre>&lt;VirtualHost 10.0.0.5:443&gt;
 blah blah blah snip...
&lt;Location /&gt;
     DAV svn
     SVNParentPath /var/svn/
     SVNPathAuthz off
     AuthName  "SVN Access"
     AuthType  Basic
     AuthLDAPUrl     "ldap://ldap.example.int:389/ou=Users,dc=example,dc=int?uid"
     AuthBasicProvider ldap
     AuthzLDAPAuthoritative off
     AuthLDAPGroupAttribute   "memberUid"
     &lt;LimitExcept none&gt;
         Require valid-user
     &lt;/LimitExcept&gt;
 &lt;/Location&gt;
</pre>
<pre> &lt;Location /Project1/trunk&gt;
     # Everyone can read, but only devs (and I) can change.
     &lt;LimitExcept REPORT GET OPTIONS PROPFIND&gt;
         Require ldap-group cn=devs,ou=Groups,dc=example,dc=int
         Require ldap-user morgajel
         Satisfy any
    &lt;/LimitExcept&gt;
</pre>
<pre> &lt;/Location&gt;</pre>
<pre> &lt;Location /Project1/branches/release&gt;
    # Everyone can read, but only QA can change.
    &lt;LimitExcept REPORT GET OPTIONS PROPFIND&gt;
        Require ldap-group cn=qa,ou=Groups,dc=example,dc=int
        Satisfy any
    &lt;/LimitExcept&gt;
 &lt;/Location&gt;</pre>
<pre>&lt;/VirtualHost&gt;
</pre>
<p>Any thoughts as to why I&#8217;m still able to write to release? and no, I&#8217;m not in the QA group; I suspect it has something to do with the Locations essentially being nested. Since we&#8217;re managing users and groups with LDAP, simple SVN ACLs won&#8217;t work, and I&#8217;m not really sure how to accomplish what I need to do.</p>
<p>Thoughts?</p>
<p>Side note: REPORT GET OPTIONS PROPFIND are the <a href="http://svn.apache.org/repos/asf/subversion/trunk/notes/http-and-webdav/webdav-protocol">only methods needed for read-only svn webdav access</a>. Fun fact, huh?</p>
<h1>UPDATE:</h1>
<p>I was overthinking the situation- Apache config is not programming. There is no inheritance between locations. There is no nesting. Once you create a new location, you need to set up perms for that, so setting the base / with read/write for everyone, I then define sublocations</p>
<pre> &lt;Location /Project1/trunk&gt;
    # If you want to write to trunk, you need to be one of the required people. You can still read it.
    &lt;LimitExcept PROPFIND OPTIONS GET REPORT&gt;
         Require ldap-group cn=devs,ou=People,ou=Groups,dc=mrm,dc=int
    &lt;/LimitExcept&gt;
    &lt;Limit PROPFIND OPTIONS GET REPORT&gt;
         Require valid-user
    &lt;/Limit&gt;
 &lt;/Location&gt;
</pre>
<pre> &lt;Location /Project1/branches/release&gt;
    # Everyone can read, but only QA can change.
    &lt;LimitExcept REPORT GET OPTIONS PROPFIND&gt;
        Require ldap-group cn=qa,ou=Groups,dc=example,dc=int
        Satisfy any
    &lt;/LimitExcept&gt;
    &lt;Limit PROPFIND OPTIONS GET REPORT&gt;
         Require valid-user
    &lt;/Limit&gt;
 &lt;/Location&gt;</pre>
<p>What I was missing was the second half of the limits, thinking it would inherit from /. It doesn&#8217;t.  Without that require valid-user, it was allowing unauthenticated users to read the files (which was no good). Life is good (until I find out where this is broken).</p>
<h1>UPDATE 2:</h1>
<p>So the above didn&#8217;t work when I retested it, so I tried one last time with good results (note the goals have changed, but the principles still apply):</p>
<pre>
&lt;VirtualHost 10.0.0.5:443&gt;
    SSLEngine on
    SSLCertificateFile      /etc/pki/certs/example.int.crt
    SSLCertificateKeyFile   /etc/pki/certs/example.int.key
    DocumentRoot      /var/www/svn.example.int/docs
    ServerName        svn.example.int
    ServerAlias       svn.exampleco.com
    ErrorLog logs/svn.example.int-error_log
    CustomLog logs/svn.example.int-access_log common

    &lt;Location /&gt;
        DAV svn
        SVNParentPath /var/svn/
        SVNPathAuthz off
        AuthName  "SVN Access"
        AuthType  Basic
        AuthLDAPUrl             "ldap://ldap.example.int:389    /ou=Users,dc=example,dc=int?uid"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative on
        AuthLDAPGroupAttribute   "memberUid"
        AuthLDAPGroupAttributeIsDN off
        order Deny,Allow
        Deny from all
        Satisfy any

        # access
        &lt;LimitExcept NONE&gt;
            Require valid-user
            Satisfy any
        &lt;/LimitExcept&gt;
    &lt;/Location&gt;

    &lt;Location /ProjectA/branches/releases//&gt;
        order Deny,Allow
        Deny from all
        Satisfy any

        #read-only access    
        &lt;Limit GET PROPFIND OPTIONS REPORT&gt;
            Require valid-user
            Satisfy any
        &lt;/Limit&gt;
        # write access
        &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;
            Require ldap-group cn=Administrators,ou=People,ou=Groups,dc=example,dc=int
            Require ldap-group cn=Team Leads,ou=People,ou=Groups,dc=example,dc=int
           #            Require ldap-user jmorgan
            Satisfy any
        &lt;/LimitExcept&gt;
    &lt;/Location&gt;

    &lt;Location /ProjectB/branches/releases//&gt;
        order Deny,Allow
        Deny from all
        Satisfy any

        #read-only access    
        &lt;Limit GET PROPFIND OPTIONS REPORT&gt;
            Require valid-user
            Satisfy any
        &lt;/Limit&gt;
        # write access
        &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;
            Require ldap-group cn=Administrators,ou=People,ou=Groups,dc=example,dc=int
            Require ldap-group cn=Team Leads,ou=People,ou=Groups,dc=example,dc=int
           #            Require ldap-user jmorgan
            Satisfy any
        &lt;/LimitExcept&gt;
    &lt;/Location&gt;

    &lt;Location /ProjectC/branches/releases//&gt;
        order Deny,Allow
        Deny from all
        Satisfy any

        #read-only access
        &lt;Limit GET PROPFIND OPTIONS REPORT&gt;
            Require valid-user
            Satisfy any
        &lt;/Limit&gt;
        # write access
        &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;
            Require ldap-group cn=Administrators,ou=People,ou=Groups,dc=example,dc=int
            Require ldap-group cn=Team Leads,ou=People,ou=Groups,dc=example,dc=int
           #            Require ldap-user jmorgan
            Satisfy any
        &lt;/LimitExcept&gt;
    &lt;/Location&gt;

&lt;/VirtualHost&gt;
</pre>
<p>I am SURE this one has some redundancy, but quite honestly, I don&#8217;t want to deal with it anymore- I have far more important things.</p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/03/09/679/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time warp.</title>
		<link>http://morgajel.net/2010/02/09/672</link>
		<comments>http://morgajel.net/2010/02/09/672#comments</comments>
		<pubDate>Wed, 10 Feb 2010 00:39:57 +0000</pubDate>
		<dc:creator>morgajel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://morgajel.net/?p=672</guid>
		<description><![CDATA[I watch a lot of TV&#8230; well, I should qualify that; I do a lot of stuff with the TV on. I pay attention to the shows, but I&#8217;ll be doing other things. Since about halfway through November I started losing track of shows- mainly because of the stupid seasonal holiday crap. Here&#8217;s the stuff [...]]]></description>
			<content:encoded><![CDATA[<p>I watch a lot of TV&#8230; well, I should qualify that; I do a lot of stuff with the TV on. I pay attention to the shows, but I&#8217;ll be doing other things. Since about halfway through November I started losing track of shows- mainly because of the stupid seasonal holiday crap. Here&#8217;s the stuff that I&#8217;ve watched at one time and lost track of:</p>
<ul>
<li>Dollhouse (Finished)</li>
<li>Defying Gravity (Finished)</li>
<li>Fringe (Caught up as of Feb 12th)</li>
<li>Tosh.0 (Currently Follow)</li>
<li>Caprica (Currently Follow)</li>
<li>Lost (Caught up as of Mar 21th)</li>
<li>Stargate Universe (Caught up as of Feb 12th)</li>
<li>Heroes (Caught up as of Mar 21th)</li>
<li>CSI (Followed)</li>
<li>Scrubs (Followed)</li>
<li>House (haven&#8217;t followed but like it)</li>
<li>Chuck (haven&#8217;t followed but like it)</li>
<li>Bones (haven&#8217;t followed but like it)</li>
<li>Dexter (haven&#8217;t followed but like it)</li>
<li>Big Bang Theory (haven&#8217;t followed but like it)</li>
<li>Dirty Jobs (haven&#8217;t followed but like it)</li>
<li>Mythbusters (haven&#8217;t followed but like it)</li>
<li>CSI: Miami (haven&#8217;t followed but like it)</li>
<li>Doctor Who (Caught up as of Jan 1st)</li>
<li>Legend of the Seeker (Binge)</li>
<li>Supernatural (Binge)</li>
</ul>
<p>Seems like a lot, but I never really watched them all at the same time. Shows like Chuck and House I&#8217;ve caught bits of over the years and like, where as Supernatural and Doctor Who I watched episodes back-to-back, devouring entire seasons over the course of a few days. So how did I get so far behind on the others? Combination of &#8220;christmas break&#8221; in programming combined with new job and crazy schedule didn&#8217;t help, but the standard &#8220;show stopped and I have no idea when it&#8217;ll be back on&#8221; yearly routine was what really killed it.</p>
<p>Anyways, now that the 2009/2010 season is picking back up and I need to figure out what I&#8217;ve missed, and how to catch up. I wish that the networks would better utilize Hulu, too- I can&#8217;t afford boxed sets, so that gives me the option of watching it on Hulu with commercials, or finding it elsewhere and them not getting a cent. My budget dictates what I watch- I&#8217;d like to watch the TrueBlood, but I can&#8217;t afford HBO. If they put their shows on Hulu behind a paywall, I won&#8217;t watch them, either.</p>
<p>OH, and a special shoutout to CW.  They have flash all over their site, unless you try to watch their shows- they they want to install their own little EXE, which means their either too stupid to use one of the bazillion flash video players out there, or they want/need functionality that flash doesn&#8217;t provide- something lower level, like spyware would need. To CW, I say &#8220;thank you for Supernatural, lose the shitty website and maybe I&#8217;ll use it.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://morgajel.net/2010/02/09/672/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
