<?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>People @ Internet Connection, Inc.</title>
	<atom:link href="http://people.internetconnection.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://people.internetconnection.net</link>
	<description>Employee babble from one of the oldest hosting companies around</description>
	<lastBuildDate>Sun, 18 Oct 2009 01:16:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to get sandwiches on the Internet</title>
		<link>http://people.internetconnection.net/2009/10/how-to-get-sandwiches/</link>
		<comments>http://people.internetconnection.net/2009/10/how-to-get-sandwiches/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 01:16:57 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[geocar]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/?p=48</guid>
		<description><![CDATA[One of our neighbors wanted to take orders online, so we hooked up their menu to post to sslserver.com, and then made a web page that &#8220;displayed&#8221; the orders.
The idea involved a Windows scheduled task, running on their personal computer, next to the kitchen, that would poll a web page for orders.
When new ones showed [...]]]></description>
			<content:encoded><![CDATA[<p>One of our neighbors wanted to take orders online, so we hooked up their menu to post to <a href="https://sslserver.com/">sslserver.com</a>, and then made a web page that &#8220;displayed&#8221; the orders.</p>
<p>The idea involved a Windows scheduled task, running on their personal computer, next to the kitchen, that would poll a web page for orders.</p>
<p>When new ones showed up, it would print them, and so long as the print succeeded, it would mark the orders as printed. The client code looked like this:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">On</span> <span style="color: #000080;">Error</span> <span style="color: #000080;">Resume</span> <span style="color: #000080;">Next</span>
&nbsp;
<span style="color: #000080;">Set</span> IE = WScript.CreateObject(<span style="color: #800000;">&quot;InternetExplorer.Application&quot;</span>)
&nbsp;
IE.Navigate(<span style="color: #800000;">&quot;http://example.com/orders/&quot;</span>)
&nbsp;
<span style="color: #000080;">while</span> IE.busy = <span style="color: #000080;">True</span>: WScript.Sleep 100: wend
<span style="color: #000080;">If</span> InStr(IE.Document.Body.innerHTML, <span style="color: #800000;">&quot;&lt;!-- ok --&gt;&quot;</span>) &amp;gt; 0 <span style="color: #000080;">Then</span>
	Err.Clear
	IE.ExecWB 6,2,2,0
	<span style="color: #000080;">while</span> IE.busy = <span style="color: #000080;">True</span>: WScript.Sleep 100: wend
	<span style="color: #000080;">If</span> Err.Number = 0 <span style="color: #000080;">Then</span>
		IE.Document.Forms(0).Submit
		<span style="color: #000080;">while</span> IE.busy = <span style="color: #000080;">True</span>: WScript.Sleep 100: wend
	<span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
<span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
&nbsp;
IE.Quit</pre></div></div>

<p>Meanwhile, the server code was a (longer, and less interesting) perl script which simply formatted the page printably (using &lt;table&gt; tags and everything) and had a form on it with (hidden) checkboxes. The page included an &lt;!&#8211; ok &#8211;&gt; right at the end to signal completedness.</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2009/10/how-to-get-sandwiches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emacs as an inferior-lisp-program</title>
		<link>http://people.internetconnection.net/2009/06/emacs-as-an-inferior-lisp-program/</link>
		<comments>http://people.internetconnection.net/2009/06/emacs-as-an-inferior-lisp-program/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 23:26:31 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[geocar]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/?p=131</guid>
		<description><![CDATA[Emacs has this inferior-lisp mode where you can send lisp forms to a running lisp image. This can either be a common-lisp (although Slime is more specialized at that), or a scheme, or as it turns out, it can be emacs itself.
Put these two files in a directory some place:

ee.sh
ee.el

Then, simply tell emacs to make [...]]]></description>
			<content:encoded><![CDATA[<p>Emacs has this inferior-lisp mode where you can send lisp forms to a running lisp image. This can either be a common-lisp (although Slime is more specialized at that), or a scheme, or as it turns out, it can be emacs itself.</p>
<p>Put these two files in a directory some place:</p>
<ul>
<li><a href="http://people.internetconnection.net/wp-content/uploads/2009/05/ee.sh">ee.sh</a></li>
<li><a href="http://people.internetconnection.net/wp-content/uploads/2009/05/ee.el">ee.el</a></li>
</ul>
<p>Then, simply tell emacs to make ee.sh your inferior-lisp-program.</p>
<p>Before the novelty wears off, a better version might simply be a reader that speaks emacsclient&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2009/06/emacs-as-an-inferior-lisp-program/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mike wants to keep up with you on Twitter</title>
		<link>http://people.internetconnection.net/2009/05/mike-wants-to-keep-up-with-you-on-twitter/</link>
		<comments>http://people.internetconnection.net/2009/05/mike-wants-to-keep-up-with-you-on-twitter/#comments</comments>
		<pubDate>Mon, 04 May 2009 13:22:34 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/?p=124</guid>
		<description><![CDATA[Anyone have any ideas why Ameriplan aka MyBenefitsPlus dot com is trawling for email addresses and searching for them on twitter?
When someone searches for your email addres on twitter and you&#8217;re not already on twitter, you get an email from twitter that looks like this:
From: Twitter &#60;twitter-invite-micah=mybenefitsplus.com@postmaster.twitter.com&#62;
blah blah blah, join twitter.
From there, if you like, [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone have any ideas why Ameriplan aka MyBenefitsPlus dot com is trawling for email addresses and searching for them on twitter?</p>
<p>When someone searches for your email addres on twitter <em>and you&#8217;re not already on twitter</em>, you get an email from twitter that looks like this:</p>
<pre style="padding-left: 30px;"><strong>From: Twitter &lt;twitter-invite-micah=mybenefitsplus.com@postmaster.twitter.com&gt;</strong>
blah blah blah, join twitter.</pre>
<p>From there, if you like, you can search for <em>them</em>; make a phone call; email them directly; etc. It all seems awful convenient, until some spammers and snake-oil vendors start trying to use it as the next &#8220;in&#8221;.</p>
<p>I wonder if Twitter is going to try and stop this, try and monetize it, or even let its users know that spammers are connecting their online and offline profiles through their service.</p>
<p>Until I learn more, I&#8217;m going to strongly recommend that people only use twitter (if at all) using secret email addresses.</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2009/05/mike-wants-to-keep-up-with-you-on-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fsync is cheaper than you think</title>
		<link>http://people.internetconnection.net/2009/03/fsync-is-cheaper-than-you-think/</link>
		<comments>http://people.internetconnection.net/2009/03/fsync-is-cheaper-than-you-think/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 14:54:07 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/?p=116</guid>
		<description><![CDATA[With all the talk about the new ext4&#8217;s interactions with gconfd, kde, firefox, and others, a lot of people have been assuming fsync is expensive.
If you&#8217;re living under a rock and don&#8217;t know what&#8217;s going on, here&#8217;s the short version: Lots of programs don&#8217;t write to files reliably because (a) writing to files reliably requires [...]]]></description>
			<content:encoded><![CDATA[<p>With all the talk about the new ext4&#8217;s interactions with gconfd, kde, firefox, and others, a lot of people have been assuming fsync is expensive.</p>
<p>If you&#8217;re living under a rock and don&#8217;t know what&#8217;s going on, here&#8217;s the short version: Lots of programs don&#8217;t write to files reliably because (a) writing to files reliably requires some contortions, and (b) writing to files reliably is slow.</p>
<p>Neither of these things are true, and I wrote <a href="http://people.internetconnection.net/wp-content/uploads/2009/03/reliable.tgz">libreliable</a> to prove it.</p>
<p>libreliable is a simple, mostly portable way to get reliable file i/o<br />
without an fsync()-penalty after every write.</p>
<p>That means you have no excuse for not updating your files reliably.</p>
<p>The included demo should show how it works. It&#8217;s fun to watch in strace/truss.</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2009/03/fsync-is-cheaper-than-you-think/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Why nobody likes a PHP developer</title>
		<link>http://people.internetconnection.net/2009/03/why-nobody-likes-a-php-developer/</link>
		<comments>http://people.internetconnection.net/2009/03/why-nobody-likes-a-php-developer/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 13:07:25 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[geocar]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/?p=105</guid>
		<description><![CDATA[This isn&#8217;t hate on PHP.
We do web hosting. Most of our customers use PHP in some capacity or another. PHP has this great set of features that made it very accessible for a wide array of applications. People using it means there are lots of applications available for it. Lots of people. Lots of applications.
This [...]]]></description>
			<content:encoded><![CDATA[<p>This isn&#8217;t hate on PHP.</p>
<p>We do web hosting. Most of our customers use PHP in some capacity or another. PHP has this great set of features that made it very accessible for a wide array of applications. People using it means there are lots of applications <em>available for it</em>. Lots of people. Lots of applications.</p>
<p>This is a good thing. Users have lots of choice about what programs they want to use, and there is a lot of competition to produce high quality, very polished user-interfaces. Users like those things.</p>
<p>Perl and Python programmers should take note: The number of polished and high-quality <em>open source</em> PHP applications is positively staggering. I can only name a few Perl and Python ones off the top of my head (and btw, Bugzilla is great; this isn&#8217;t Perl hate either), but if not from anything but the sheer accessibility of PHP, there is a lot of great stuff out there.</p>
<p>However users of PHP applications must wear diapers and be idiots because I cannot find a <em>single</em> PHP application on <a href="http://freshmeat.net/">freshmeat</a> that lets the user enter in the PDO dsn directly, or otherwise directly control the arguments to mysql_connect().</p>
<p>I wanted to take a look at <a href="http://piwik.org/">piwik</a> recently and I found it&#8217;s impossible to install. I suppose it&#8217;s <em>their</em> fault, and I opened a bug there about it, to which they immediately closed the bug with the friendly response:</p>
<blockquote>
<div class="comment">
<p><em>Thank you for your interest in Piwik. However, we can&#8217;t provide this level of MySQL support.  Please try the MySQL forums. </em></div>
</blockquote>
<p><a href="http://bugs.php.net/bug.php?id=34988">PHP Bug #34988</a> is somewhat symptomatic of the problem, <em>but not the problem itself</em>. The proposed &#8220;solution&#8221; (note the bug is marked &#8220;Bogus&#8221;) is to put something into your DSN. Edward Sapir would be so proud. Recall that piwik, like most PHP applications, doesn&#8217;t let you enter the DSN. You&#8217;re stuck with with a brain-damaged &#8220;default&#8221; to look at whatever mysql_config &#8211;socket said on the machine that <em>compiled PHP itself</em>.</p>
<p>In this case, I would be able to work around the problem by typing in my &#8220;host name&#8221; as:</p>
<pre>localhost;unix_socket=~/mysql/socket</pre>
<p>except for <a href="http://dev.piwik.org/trac/ticket/481">another bug</a> in piwik (that thankfully has been &#8220;fixed&#8221;). Oh well.</p>
<p>It&#8217;s not really the piwik developers fault- PHP encourages a certain approach to things, <em>and in at least this thing</em>, PHP is completely and fundementally wrong. Annoyingly wrong.</p>
<p>The developers of PHP could fix this, of course. Add another override in php.ini perhaps. Maybe a mysql_magic_localhost= option, or similar.</p>
<p>Another way to go would be to encourage the <em>desired</em> behavior. PDO should accept a &#8220;short&#8221; DSN that is registered in the php.ini file. To support run-time database selection like phpMyAdmin, allow a &#8220;long&#8221; DSN to be specified, but only if a $_COOKIE[] is set that contains the SHA1-hash of the long DSN (plus some secret value).</p>
<p>If this were the case, PHP programs wouldn&#8217;t feel the need to individually, and collectively, reinvent the database-connection-wizard over and over again in subtly broken ways. I understand it&#8217;s trying to help me: asking for my mysql server name, username, and password. I&#8217;m not interested in supplying any of these because having the PHP script <em>know</em> these things is itself a security risk. If the PHP script can log in, then perhaps something else can&#8230; <em>Having the PHP script have a username and password for your database server is a security risk</em>.</p>
<p>Of course, it&#8217;s much too late for that. Backwards compatibility is far more important than the &#8220;right&#8221; API calls. Especially with PHP6 creaking around the corner about to remind us hosting providers why we still need to offer a PHP4 system.</p>
<p>For now, we&#8217;ll have to rely on advocacy, and an otherwise absurd argument: The assumption that the user is too stupid to enter a DSN in that their system administrator <em>gives</em> them, but the user is capable enough to ask <em>and enact</em> a complex set of firewall rules, is frankly stupid, and so is, by extension, your database connection wizard.</p>
<p>To the PHP developers using mysql_connect: Just use the defaults. Don&#8217;t ask the user for <em>ANYTHING</em> unless mysql_connect() <em>with no argument</em> fails. Even then, encourage the user to get their php.ini file correct. You don&#8217;t <em>need</em> any configuration, and most of the time, it&#8217;ll just work.</p>
<p>PHP developers using PDO: Let the user enter a DSN. It&#8217;s fine if you want to be helpful and &#8220;pre-populate it&#8221; with hostnames usernames and passwords, but the fact is you&#8217;re <a href="http://people.internetconnection.net/2008/01/a-plea-to-php-developers/">perpetuating a huge security risk</a>, and there&#8217;s just no need for it. The DSN is designed to be edited <em>by people</em>, not you, not the programmer. If it were just for your program, it would be an array() of some sorts.</p>
<p>Developers of PHP: Nobody likes you because of crap like this. There&#8217;s nothing about the defaults here that make sense. The fact that they &#8220;accidentally&#8221; work for the case of servername=localhost is the only thing that lets Debian ship you. There are a dozen other ways you could do this, including naming DSNs in the php.ini file, smarter APIs, consulting the .my.cnf file that the mysql program uses, and even letting us override defaults like this at run-time. Please stop being so disappointing all the time, you&#8217;re difficult enough to support as it is.</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2009/03/why-nobody-likes-a-php-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interactive HTML development in Emacs</title>
		<link>http://people.internetconnection.net/2009/02/interactive-html-development-in-emacs/</link>
		<comments>http://people.internetconnection.net/2009/02/interactive-html-development-in-emacs/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 18:12:06 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[geocar]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/?p=50</guid>
		<description><![CDATA[I accidentally discovered mozrepl today. It&#8217;s clearly designed for JavaScript development, but I thought it might be interesting for HTML development as well, and hacked the following together:

&#40;require 'moz&#41;
&#40;require 'json&#41;
&#160;
&#40;defun moz-update &#40;&#38;rest ignored&#41;
  &#34;Update the remote mozrepl instance&#34;
  &#40;interactive&#41;
  &#40;comint-send-string &#40;inferior-moz-process&#41;
    &#40;concat &#34;content.document.body.innerHTML=&#34;
       [...]]]></description>
			<content:encoded><![CDATA[<p>I accidentally discovered <a href="http://wiki.github.com/bard/mozrepl">mozrepl</a> today. It&#8217;s clearly designed for JavaScript development, but I thought it might be interesting for HTML development as well, and hacked the following together:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>require 'moz<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>require 'json<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> moz-update <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&amp;</span>rest ignored<span style="color: #66cc66;">&#41;</span>
  <span style="color: #ff0000;">&quot;Update the remote mozrepl instance&quot;</span>
  <span style="color: #66cc66;">&#40;</span>interactive<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>comint-send-string <span style="color: #66cc66;">&#40;</span>inferior-moz-process<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>concat <span style="color: #ff0000;">&quot;content.document.body.innerHTML=&quot;</span>
             <span style="color: #66cc66;">&#40;</span>json-encode <span style="color: #66cc66;">&#40;</span>buffer-string<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #ff0000;">&quot;;&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> moz-enable-auto-update <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #ff0000;">&quot;Automatically the remote mozrepl when this buffer changes&quot;</span>
  <span style="color: #66cc66;">&#40;</span>interactive<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>add-hook 'after-change-functions 'moz-update t t<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> moz-disable-auto-update <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #ff0000;">&quot;Disable automatic mozrepl updates&quot;</span>
  <span style="color: #66cc66;">&#40;</span>interactive<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>remove-hook 'after-change-functions 'moz-update t<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>With this, Firefox will update its HTML contents <i>as you type</i>, for whatever buffer you&#8217;ve called <tt>moz-enable-auto-update</tt> on.</p>
<p>It took about five minutes to write, and another five to comment and put up here. I&#8217;ve been using it for a few hours now and haven&#8217;t found any real problems.</p>
<p><i>Edit</i>: You&#8217;ll already need mozrepl installed, <a href="http://wiki.github.com/bard/mozrepl/emacs-integration/">and the mozrepl emacs integration setup.</a>.</p>
<p><i>Edit</i>: Fixed link. Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2009/02/interactive-html-development-in-emacs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>XEN musings</title>
		<link>http://people.internetconnection.net/2009/01/xen-musings/</link>
		<comments>http://people.internetconnection.net/2009/01/xen-musings/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 16:55:54 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[geocar]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/?p=44</guid>
		<description><![CDATA[When putting together our VPS system, we spent a lot of time looking at XEN. Most VPS providers use XEN. XEN has great tools.
However, we eventually settled on using KVM because it was conceptually simpler, had better I/O performance (according to hdparm and ab), but most importantly because XEN&#8217;s future began to look bleak. XEN [...]]]></description>
			<content:encoded><![CDATA[<p>When putting together our VPS system, we spent a lot of time looking at XEN. Most VPS providers use XEN. XEN has great tools.</p>
<p>However, we eventually settled on using KVM because it was conceptually simpler, had better I/O performance (according to <a title="hdparm" href="http://sourceforge.net/projects/hdparm/">hdparm</a> and <a title="ab" href="http://httpd.apache.org/docs/2.0/programs/ab.html">ab</a>), but most importantly because XEN&#8217;s future began to <a href="http://log.xbsd.nl/2008/11/xen-dropped-from-ubuntu-810.html">look</a> <a href="http://www.virtualization.info/2008/10/fedora-10-doesnt-include-xen-kvm-rules.html">bleak</a>. XEN might have better tools <em>now</em>, we figured, but KVM will get better attention.</p>
<p>Most of our VPS customers so far have moved from XEN-based solutions, and <em>greatly</em> appreciate the performance difference. I wanted to note some of the things I&#8217;ve noticed helping them move from their current providers:</p>
<ul>
<li>XEN hypervisor&#8217;d kernels don&#8217;t boot under KVM (hint: rsync &#8211;exclude /boot)</li>
<li>Installs are a lot slower on KVM than on XEN (perhaps it&#8217;s a problem with CDROM emulation)</li>
<li>fsync performance is lower on KVM and XEN; noatime helps <em>a lot</em></li>
<li>Lots of providers seem to create swap as a file inside the guest. This appears to be done to simplify accounting, but we get enormous performance gains by not doing this (even under XEN)</li>
<li>CPU tasks are a lot faster under XEN. If you&#8217;re compiling things all day, XEN (or a regular <a href="http://internetconnection.net/hosting/">virtual hosting account</a>) might make more sense.</li>
</ul>
<p>The <a href="http://kvm.qumranet.com/kvmwiki/KvmForum">KVM Forum</a> reported lots of really interesting developments that our VPS customers will be able to take advantage of, that XEN-based VPS users will simply miss out on, at least until <a href="http://kraxel.fedorapeople.org/xenner/">xenner</a> becomes stable.</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2009/01/xen-musings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Network Maintenance</title>
		<link>http://people.internetconnection.net/2008/12/network-maintenance/</link>
		<comments>http://people.internetconnection.net/2008/12/network-maintenance/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 18:39:30 +0000</pubDate>
		<dc:creator>rholly</dc:creator>
				<category><![CDATA[rholly]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[netstat]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/2008/12/network-maintenance/</guid>
		<description><![CDATA[The following servers will experience temporary downtime while maintenance occurs in the NOC.

Hermes
Starscream
Canis
Bacchus
Icarus
Tantalus
Diana
Leto
IDSA
Nyx
YMEweb
Ampolweb
Echo
Golconda
Artebe

If your account rests on one of these servers, you will be notified in advance via email as to the exact date and time of your Maintenance.
Basically, we are cleaning house. In the past year we have had some significant changes in our [...]]]></description>
			<content:encoded><![CDATA[<p>The following servers will experience temporary downtime while maintenance occurs in the NOC.</p>
<ul>
<li>Hermes</li>
<li>Starscream</li>
<li>Canis</li>
<li>Bacchus</li>
<li>Icarus</li>
<li>Tantalus</li>
<li>Diana</li>
<li>Leto</li>
<li>IDSA</li>
<li>Nyx</li>
<li>YMEweb</li>
<li>Ampolweb</li>
<li>Echo</li>
<li>Golconda</li>
<li>Artebe</li>
</ul>
<p>If your account rests on one of these servers, you will be notified in advance via email as to the exact date and time of your Maintenance.</p>
<p>Basically, we are cleaning house. In the past year we have had some significant changes in our network. Our new ISP has installed an OC-12 Fiber optic rack and with all of that new bandwidth we were able to close out one of our smaller Datacenters and move them back home. The change has done everyone, especially our clients, alot of good. The only downside to all that rapid growth is mess, and we made a BIG one.</p>
<p>The goal of this downtime is to organize our cabling, install a new KVM switch for racks 20,21,and22, and get ourselves ready for the next wave of internal changes.</p>
<p><img class="aligncenter size-full wp-image-28" title="omgwires" src="http://people.internetconnection.net/wp-content/uploads/2008/12/omgwires.jpg" alt="omgwires" width="315" height="236" /></p>
<p>As you can see&#8230; it&#8217;s pretty messy in there. However, we are going to take one of these&#8230;</p>
<p><img class="aligncenter size-full wp-image-29" title="kvm" src="http://people.internetconnection.net/wp-content/uploads/2008/12/kvm.jpg" alt="kvm" width="315" height="236" /></p>
<p>And hook it up to all of these&#8230;</p>
<p><img class="aligncenter size-full wp-image-30" title="nocsection" src="http://people.internetconnection.net/wp-content/uploads/2008/12/nocsection.jpg" alt="nocsection" width="315" height="236" /></p>
<p>And tie that whole section together to make our lives ALOT easier, and to make our next batch of upgrades as seamless as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2008/12/network-maintenance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security by what?</title>
		<link>http://people.internetconnection.net/2008/08/security-by-what/</link>
		<comments>http://people.internetconnection.net/2008/08/security-by-what/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 21:15:57 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[geocar]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/wp/?p=9</guid>
		<description><![CDATA[One of our customers called and said he couldn&#8217;t connect to netMail, and after some digging, I found out that the problem only occurred on the inside.
A Sonicwall firewall was to blame; butchering POST content that produces  application/x-javascript &#8211; but not the GET content with the same mime type,  and not when the [...]]]></description>
			<content:encoded><![CDATA[<p>One of our customers called and said he couldn&#8217;t connect to <a href="http://demo.internetconnection.net/netmail/">netMail</a>, and after some digging, I found out that the problem only occurred <em>on the inside</em>.</p>
<p>A Sonicwall firewall was to blame; butchering POST content that produces <tt> application/x-javascript</tt> &#8211; but not the GET content with the same mime type,  and not when the content is decorated with <tt>text/plain</tt></p>
<p>Being as how &lt;script&gt; ignores the MIME type in every major browser, I cannot see why anyone would think this is a good idea, and yet using a separate MIME type just for the RPC makes using <a href="http://www.wireshark.org/">wireshark</a> easier.</p>
<p>If you use a Sonicwall, netMail will now work with your firewall, but you have to wonder what kind of security vendor thinks this added complexity actually buys anything&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2008/08/security-by-what/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backing up Windows Servers</title>
		<link>http://people.internetconnection.net/2008/01/backing-up-windows-servers/</link>
		<comments>http://people.internetconnection.net/2008/01/backing-up-windows-servers/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 15:01:00 +0000</pubDate>
		<dc:creator>geocar</dc:creator>
				<category><![CDATA[geocar]]></category>

		<guid isPermaLink="false">http://people.internetconnection.net/wp/?p=5</guid>
		<description><![CDATA[I had always assumed that NTBACKUP.EXE did the right thing. Somehow, magically, it grabbed all the files &#8211; even those that were open. However, in upgrading our backup systems, I noticed why most recovery requests for Windows sites fail: Windows cannot back up files that are open by other processes. This means that the ultra-important [...]]]></description>
			<content:encoded><![CDATA[<p>I had always assumed that <a href="http://www.microsoft.com/Downloads/details.aspx?FamilyID=7da725e2-8b69-4c65-afa3-2a53107d54a7&amp;displaylang=en"><tt>NTBACKUP.EXE</tt></a> did the right thing. Somehow, magically, it grabbed all the files &#8211; even those that were open. However, in upgrading our backup systems, I noticed why most recovery requests for Windows sites fail: Windows cannot back up files that are open by other processes. This means that the ultra-important <tt>MDB</tt> file you&#8217;re using as a database cannot be saved unless <em>your application saves it someplace</em>.</p>
<p>Well, nobody does that, so I decided to do something about it.</p>
<p>I took <a href="http://www.ntfs-3g.org/">NTFS-3G</a>- the NTFS driver most often used by Linux users- and <a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/">PuTTY</a>- a popular SSH client, and glued them together to produce <a href="http://gpl.internetconnection.net/"><tt>WINBACK.EXE</tt></a>, backup software for windows that actually works:</p>
<p>Basically, if the BackupRead api fails because the &#8220;file is in use&#8221;, <tt>WINBACK.EXE</tt> uses NTFS-3G to read the raw disk sectors containing the file. It then uploads these files to our backup server, and if it accepts it, removes the archive-bit.</p>
<p>I only found one other software package that does it. It&#8217;s a kernel driver which means it can muck up your ability to do restores. Nevertheless, if your backup software doesn&#8217;t use Softpedia&#8217;s FAM, and it isn&#8217;t my <tt>WINBACK.EXE</tt>, <em>then it simply doesn&#8217;t work</em>.</p>
<p><tt>WINBACK.EXE</tt> took less than a week to hack out, so it could use some polish. Nevertheless, it does a much better job than anything else, <em>and</em> because it&#8217;s basically a copy-utility, recovery is much easier than with other systems.</p>
<p><em>By the way,</em> I am aware of Microsoft&#8217;s Volume Shadow Copy Service. It doesn&#8217;t work on Windows 2000, and it doesn&#8217;t work <em>well</em> on Windows 2003.</p>
]]></content:encoded>
			<wfw:commentRss>http://people.internetconnection.net/2008/01/backing-up-windows-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
