<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Esoteric Curio</title>
    <link>http://lethargy.org/~jesus/</link>
    <description>Theo's Contributions to Technological Surreality</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <pubDate>Mon, 29 Jun 2009 16:30:31 GMT</pubDate>

    <image>
        <url>http://lethargy.org/~jesus/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Esoteric Curio - Theo's Contributions to Technological Surreality</title>
        <link>http://lethargy.org/~jesus/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Web: you can now not suck.</title>
    <link>http://lethargy.org/~jesus/archives/156-Web-you-can-now-not-suck..html</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/archives/156-Web-you-can-now-not-suck..html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=156</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=156</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;img src=&quot;http://images.omniti.net/lethargy.org/~jesus/uploads/velocity2009_160x600.gif&quot; alt=&quot;&quot; style=&quot;margin-left: 2em; margin-bottom:1em; float:right;&quot;/&gt;
&lt;p&gt;In perhaps a new trend, I&amp;#8217;m blogging from 39011 feet (or so says the seatback in front of me).  I&amp;#8217;m traveling back home to the east coast from San Jose, CA where I attended (and spoke) at this year&amp;#8217;s &lt;a href=&quot;http://en.oreilly.com/velocity2009/&quot;&gt;O&amp;#8217;Reilly Velocity Conference&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I participated (and blogged) about the Velocity Summit in which I&amp;#8217;ve participated for the past two years.  The summit is the unconference preceding the real conference that help the organizers digest current hot topics and better define the conference track for the actual conference.  The summit itself is filled with enough brain power to warp space-time, so I drop everything to go to that.&lt;/p&gt;

&lt;p&gt;Ironically, despite being a well respected authority in web site (and general internet) scalability and performance, my talk proposals for Velocity 2008 were not accepted &amp;#8212; I clearly need to write better proposals.  This year, I managed to work my way into the workshop track on Monday.  Despite having a bad headache and feeling &quot;off&quot; the day before, I managed to get my act together and put on an A-game for my workshop.  For those of you interested, here is &lt;a href=&quot;http://www.slideshare.net/postwait/scalable-internet-architecture&quot;&gt;my scalable09 slide stack&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I thought I&amp;#8217;d take a moment to talk about what I liked about the conference and what I think could use some improvement.  I realize this is a down economy and that might be a legitimate justification for some the actions that resulted in some of my disappointment.&lt;/p&gt;

&lt;p&gt;First, the negative.  I usually start with positive and end with negative because I&amp;#8217;m a pessimist.  However, all in all the conference was awesome, so I thought I&amp;#8217;d get my short list of gripes out of the way early.&lt;/p&gt;

&lt;p&gt;O&amp;#8217;Reilly is infamous for throwing good conferences for geeks.  In my opinion, the field of web operations has been so severely neglected and applies so broadly to the world today that this conference needs to be for everyone.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the next conference, I&amp;#8217;d love to see a technical business track.  Several of the talks I went to spoke to the dollars and cents lost or earned by paying the right amount of attention to web site performance and better operational paradigms.  I thought a lot of the topics would be very useful to business managers.&lt;/li&gt;
&lt;li&gt;The first day was not video taped and the second and third day were only half video taped.  Come on guys, ante up.  The attendance fee was substantial, you can afford to give your attendees the value of watching what they had to choose not to attend.  I like the option when I go to a conference to choose a session that seems interesting so that I have the opportunity to participate, but often times I find that another session was top notch and I &lt;em&gt;expect&lt;/em&gt; to be able to later review a recording of that.&lt;/li&gt;
&lt;li&gt;Lastly, and this is the most significant.  While I thought the conference was extremely well executed (excellent job Jesse, Steve, all your support, and most definitely O&amp;#8217;Reilly), it lacked sufficient PR and marketing outreach.  I talked with several journalists (as a part of my normal day job) while I was at that conference and &lt;em&gt;not one&lt;/em&gt; of them was aware of Velocity &amp;#8212; simply embarrassing.  Given that the Structure conference was in town that same week, O&amp;#8217;Reilly should have invested more in their PR and marketing outreach.  It would have resulted in a substantially increased audience and a better venue for teaching the world to run a faster web.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now that I&amp;#8217;ve griped and aired my disappointment.  I can focus on the gobs of awesomeness that was Velocity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The conference was put on quite well from an operational perspective.  Things started on time, A/V problems were non-existent.  Like an idiot, I managed to lose my MacBook Air power adapter and the A/V crew managed to recover it for me.  Conferences just plain suck when they have technical difficulties; this one had none.&lt;/li&gt;
&lt;li&gt;The two tracks at the conference were extremely well articulated and while I wanted to be in both all the time (as OmniTI is a full-stack company, we care about both equally) it was an excellent split.&lt;/li&gt;
&lt;li&gt;One track was performance which focused intently on user-perceived performance.  This was largely front-end (HTML,CSS,JS,etc.) but also had a healthy amount of deep stack performance discussion as well including the often ignored, but much deserving networking aspect of delivering the web to users.&lt;/li&gt;
&lt;li&gt;The second track was operations and I feared it would be bunch of blind &amp;#8220;The Cloud Solves All Our Problems&amp;#8221; sessions.  Much to the contrary, it focused heavily on operational strategy and and what it takes to execute tactically.  There was a bit of cloud here and there (okay everywhere), but there was very little blind and ignorant mentality that launching in the cloud was a solution to a hard scaling problem.&lt;/li&gt;
&lt;li&gt;I had the opportunity to see a lot of old faces, but spent most of my time meeting new ones.  The opportunity to learn more about other people&amp;#8217;s problems is what completes me as an engineer.  The people I met at this conference were both honest and open and provided a fabulous and refreshing perspective on what today&amp;#8217;s performance and scalability problems really are.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
In my workshop, I spent about 20% of the time discussing the philosophy of being a good engineer and 80% discussing practice (non-cookbook) with examples and advice.  The basic message is that systems are complex and you must think of all the parts holistically or its a recipe for disaster &amp;#8212; or failure.
&lt;/p&gt;

&lt;p&gt;
Two of my favorite talks were Nicole Sullivan&#039;s &amp;#8220;The Fast and the Fabulous: 9 ways engineering and design come together to make your site slow&amp;#8221; and &amp;#8220; 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr&amp;#8221; by John Allspaw and Paul Hammond.  while Nicole&#039;s presentation, like mine, was not recorded, the other was and if you want to break down the divide between operations and development, it is a &lt;a href=&quot;http://velocityconference.blip.tv/file/2284377/&quot;&gt;must see.&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;All in all, I would encourage everyone reading this to attend next year&#039;s Velocity conference.  I am certain you will walk away with knowledge that is both valuable and applicable.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 25 Jun 2009 23:33:33 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/156-guid.html</guid>
    
</item>
<item>
    <title>What time is it?</title>
    <link>http://lethargy.org/~jesus/archives/155-What-time-is-it.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/archives/155-What-time-is-it.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=155</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=155</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://postgresql.org/&quot;&gt;PostgreSQL&lt;/a&gt; has pretty &lt;a href=&quot;http://www.postgresql.org/docs/8.3/static/functions-datetime.html&quot;&gt;awesome date/time functionality&lt;/a&gt;.  I&#039;ve used a lot of database and the functionality and thoroughness of the treatment of dates and times (and particularly timezones) is unparalleled.  As much as I&#039;m impressed with it, I knew there would come a time where the outcome of all that cleverness would backfire.&lt;/p&gt;

&lt;p&gt;Recently, I was &lt;a href=&quot;http://labs.omniti.com/trac/reconnoiter/ticket/140&quot;&gt;doing some data partitioning&lt;/a&gt;.  I split a couple of largish (approximately billion row) tables up into month segments.  I wrote a tiny little pl/pgsql function that takes a parent table, and creates an inherited child with the right indexes, triggers, check constraints (for constraint exclusion) and permissions.  I renamed the big table something transient, created a new parent table with the old table&#039;s name, made the old unwieldy table a child of that table and then created a whole bunch of new partitions.  This allowed me to pretty much ignore my shenanigans from the application side. Once I created the partitions, I need to back populate them.  To do this, I did the following:&lt;/p&gt;

&lt;pre&gt;
ALTER TABLE newchildtable_200903 DISABLE TRIGGER ALL;
INSERT INTO newchildtable_200903
  SELECT * FROM oldcrappytable
  WHERE whence &gt;= &#039;2009-03-01 00:00:00-00&#039;::timestamptz
      AND whence &lt; &#039;2009-03-01 00:00:00-00&#039;::timstamptz + &#039;1 month&#039;::interval;
DELETE FROM oldcrappytable
  WHERE whence &gt;= &#039;2009-03-01 00:00:00-00&#039;::timestamptz
      AND whence &lt; &#039;2009-03-01 00:00:00-00&#039;::timstamptz + &#039;1 month&#039;::interval;
ALTER TABLE newchildtable_200903 ENABLE TRIGGER ALL;
&lt;/pre&gt;

&lt;p&gt;Suffice it to say, this did not do what I wanted &lt;em&gt;at all&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;PostgreSQL&#039;s interval type is one of its more clever features.  The idea that a month isn&#039;t always equal to a month is a Gregorian truism.  So, PostgreSQL is design to &quot;do the right thing&quot; and consider a month in the context of another argument.  A month in the above example is a month with respect to March.  Right?  No.&lt;/p&gt;

&lt;p&gt;The lacking part here is the timezone.  I do the partitioning in UTC (because I&#039;m not insane).  So, I need the month of March in UTC.  Although I explicitly stated &#039;2009-03-01 00:00:00-00&#039; in UTC, PostgreSQL interprets that in the client&#039;s timezone... and &lt;em&gt;then&lt;/em&gt; adds a month.  I&#039;m in US/Eastern which is &lt;em&gt;trailing&lt;/em&gt; UTC by four or five hours and thus the reference starting point is actually in February of 2009, which only had 28 days.  So, the latter inequality up there does not do through the end of March!&lt;/p&gt;

&lt;p&gt;I would argue that this behavior is invalid, because of the extremely unexpected results of the following simple test case:&lt;/p&gt;

&lt;pre&gt;
postgres=# select (&#039;2009-03-01 00:00:00-00&#039;::timestamptz + &#039;1 month&#039;::interval);
2009-03-28 19:00:00-04

postgres=# set timezone = &#039;utc&#039;;
SET

postgres=# select (&#039;2009-03-01 00:00:00-00&#039;::timestamptz + &#039;1 month&#039;::interval);
2009-04-01 00:00:00+00
&lt;/pre&gt;

&lt;p&gt;Here I get a &lt;em&gt;completely&lt;/em&gt; different date/time if I ask what appears to be a very unambiguous question depending on whether I&#039;m left or right of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Prime_meridian&quot;&gt;Prime Meridian&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Tue, 16 Jun 2009 15:28:40 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/155-guid.html</guid>
    
</item>
<item>
    <title>Cloud storage primer</title>
    <link>http://lethargy.org/~jesus/archives/154-Cloud-storage-primer.html</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/archives/154-Cloud-storage-primer.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=154</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=154</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I post here, I post there... I certainly don&#039;t post everywhere.  Anyway, I wrote an article that &lt;a href=&quot;http://omniti.com/seeds/concepts-of-cloudish-storage&quot;&gt;discusses the basic technologies that power large cloud-like storage systems&lt;/a&gt;.  Thought you might be interested.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 11 Jun 2009 16:41:27 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/154-guid.html</guid>
    
</item>
<item>
    <title>Reconnoiter Update</title>
    <link>http://lethargy.org/~jesus/archives/153-Reconnoiter-Update.html</link>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/archives/153-Reconnoiter-Update.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=153</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=153</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;&lt;img src=&quot;http://labs.omniti.com/reconnoiter/docs/assets/Noit_72dpi_noBkgrnd.png&quot; style=&quot;float:right;&quot;/&gt;
A little over a year ago, I started in on a project that was of significant scope.  Not a few scripts hacked together, nor a conglomeration of pre-existing tools, but rather a carefully engineered product.  What product is this?  &lt;a href=&quot;https://labs.omniti.com/trac/reconnoiter&quot;&gt;Reconnoiter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;About 10 years ago, &lt;a href=&quot;http://omniti.com/&quot;&gt;we&lt;/a&gt; were neck deep in large scale e-mail architecture.  We felt pain, we were up at 3am &lt;em&gt;every&lt;/em&gt; night attempting to make systems work.  Finally, we decided enough was enough and started a skunkworks project to build a better e-mail server.  Well, that turned out pretty well.  It&#039;s got considerable momentum at this stage and is &lt;a href=&quot;http://messagesystems.com/&quot;&gt;leading the industry as the most advanced digital messaging platform on the planet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the past several (12) years, we have run operations for small and large sites alike.  We&#039;re responsible for waking up and fixing things at 3am when they are not working.  We&#039;re responsible for not only designing highly scalable architectures, we&#039;re responsible sticking around and seeing them through to the finish.  Many people are writing tools for management; two in the recent spotlight are &lt;a href=&quot;http://reductivelabs.com/products/puppet/&quot;&gt;Puppet&lt;/a&gt; and &lt;a href=&quot;http://wiki.opscode.com/display/chef/Home&quot;&gt;Chef&lt;/a&gt;.  We had very little pain in the arena of provisioning and maintaining systems.  I have a theory as to why that is, but that is a topic for another monologue.  One of the distinct pains we have suffered since we began revolves around monitoring.&lt;/p&gt;

&lt;p&gt;The first issue is that monitoring is two things:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;trend analysis for long-term capacity planning and postmortem analysis,&lt;/il&gt;
&lt;li&gt;fault detection.&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;There are many tools today that are hard to use and fail to address our needs for managing thousands of very different machines.  Worse, the tools do only one or the other.  This means that we must invest time checking disk space in the fault detection tool to alert us when it is &quot;too full&quot; and configure a similar check in a trending tool to show us historical information.  Some patchwork was introduced into fault detection tools like Nagios to add trending features... and when I use it, it is clear it was not central to the design.&lt;/p&gt;

&lt;p&gt;I have a lot of gripes, but I won&#039;t go into all of them.  Suffice to say I have them and I think they are the true fuel for developing a next-gen tool to make operations folk suffer less.  Combine that with the combustive talent of the engineering group at OmniTI (and now a few outside it) and the oxygen that the open source community provides, and we&#039;ll be having a barbecue in no time.&lt;/p&gt;

&lt;h3&gt;So what&#039;s new?&lt;/h3&gt;

&lt;p&gt;A lot has happened in recent months on the Reconnoiter front. Here&#039;s a set of highlights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OmniTI labs got its IANA enterprise number.  On that we build SNMP trap support into noitd.&lt;/li&gt;
&lt;li&gt;Reconnoiter got its &lt;a href=&quot;http://www.google.com/search?q=reconnoiter+IANA+well+known+tcp&quot;&gt;IANA assigned port number&lt;/a&gt;, no more picking random ports. 43919 or bust!&lt;/li&gt;
&lt;li&gt;We support durable streaming (for collection and storage of metrics)&lt;/li&gt;
&lt;li&gt;We support temporal streaming and check cloning for real-time, high-granularity metric collection.  This means cross-check (even cross-datacenter) real-time graphs for pretty awesome event correlation.&lt;/li&gt;
&lt;li&gt;We integrated &lt;a href=&quot;http://esper.codehaus.org/&quot;&gt;Esper&lt;/a&gt; as a streaming database (complex event processor) as the foundation on which to build fault detection.  There&#039;s a long way to go here, but the plumbing is in place.&lt;/li&gt;
&lt;li&gt;We build a custodial daemon capable of running nagios-type checks to ease adoption -- even though it made me cry.&lt;/li&gt;
&lt;li&gt;We started sitting on #noit on freenode, though it is still eerily quiet in there.&lt;/li&gt;
&lt;li&gt;We got some new users with the brilliant patience for alpha software and excellent feedback!&lt;/li&gt;
&lt;li&gt;I&#039;ll be talking about &lt;a href=&quot;http://en.oreilly.com/oscon2009/public/schedule/detail/7931&quot;&gt;Reconnoiter at the 2009 O&#039;Reilly Open Source Convention&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;It&#039;s starting to get some &lt;a href=&quot;http://itknowledgeexchange.techtarget.com/server-farm/new-open-source-it-management-tool-lighter-weight-than-nagios-more-granular-than-cacti/&quot;&gt;serious attention&lt;/a&gt;, so it&#039;s time we add some polish!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We&#039;ve been slowly introducing our managed clients to Reconnoiter and we have, at this point, about a terabyte of metric data.  In Reconnoiter, there is no default action to discard data.  Yes, that&#039;s right.  Go buy more disk.  It&#039;s cheap.  You&#039;ll thank me next time you have an anomaly today that you &lt;em&gt;think&lt;/em&gt; reminds you of one seven months ago... and when you go look at the graph you actually find all the data at its original granularity.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 04 Jun 2009 08:04:34 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/153-guid.html</guid>
    
</item>
<item>
    <title>Oh God, SMF rocks.</title>
    <link>http://lethargy.org/~jesus/archives/152-Oh-God,-SMF-rocks..html</link>
            <category>OpenSolaris</category>
    
    <comments>http://lethargy.org/~jesus/archives/152-Oh-God,-SMF-rocks..html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=152</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=152</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I just saw &lt;a href=&quot;http://god.rubyforge.org/&quot;&gt;this&lt;/a&gt;.  I&#039;m happier than ever that I have &lt;a href=&quot;http://opensolaris.org/os/community/smf/&quot;&gt;this&lt;/a&gt;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 26 May 2009 22:34:27 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/152-guid.html</guid>
    
</item>
<item>
    <title>What is professional services?</title>
    <link>http://lethargy.org/~jesus/archives/151-What-is-professional-services.html</link>
            <category>Damaged Bits</category>
    
    <comments>http://lethargy.org/~jesus/archives/151-What-is-professional-services.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=151</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=151</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I&#039;m always humbled by the praise our company receives. Some go so far as to say we&#039;re brilliant, and while that&#039;s very nice to hear, brilliant is a very high bar to set. We are, I think, some of the smartest people you&#039;ll find that let you take all the credit. We think this humility is what it means to be a professional services company, and this selfless mantra is the key to what makes OmniTI the best web company you&#039;ve never heard of.&lt;/p&gt;

&lt;p&gt;Ben Laurie is one of my dear friends and colleagues in open source.  He both commands and deserves a tremendous amount of respect.  Ben introduced me to one of my favorite quotes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
&quot;It is amazing how much you can accomplish when it doesn&#039;t matter who gets the credit.&quot;&lt;/p&gt;
 -- Harry S. Truman.
&lt;/blockquote&gt;

&lt;p&gt;When I first heard that, I liked it.  After many years of stewing on it, I love it.  It embodies what it means to be a truly valuable professional consultant.  Sure enough, it also embodies what it means to be a good citizen. Forget the blame, forget the credit... focus on teamwork and bring progress and success.&lt;/p&gt;

&lt;p&gt;As a professional services firm, it is your profession to service others.  Servicing others isn&#039;t always glamorous, it isn&#039;t always exciting (though I find it remarkably stimulating), and it certainly doesn&#039;t put you directly in the limelight.  The point of it all is to enable another to succeed.  It is your goal, it is your mission and, if you want to be good, it has to be your passion too.  The one thing that is often missing in all of this is credit.&lt;/p&gt;

&lt;p&gt;Perhaps that is one thing that I&#039;ve come to accept after many years in the pro-services industry.  If you do your job well, you know that you are essential to the success of your clients and you can be proud of the work you do for them.  You aren&#039;t in the limelight because, at the end of the day, your goal is to put your clients in the limelight.&lt;/p&gt;

&lt;p&gt;Good clients however (and so many of OmniTI&#039;s clients are just spectacular) will always act as a reference and share how essential you were to their success.  I&#039;ve spent a long time building OmniTI and OmniTI is truly its people.  It is the people that deliver the services, that help the clients, that solve the problems.  These people are smart and dedicated.  To me, completing the job and earning the respect of the colleague sitting next to me in the trenches is deeply satisfying.&lt;/p&gt;

&lt;p&gt;That is a job well done.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 30 Apr 2009 16:14:24 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/151-guid.html</guid>
    
</item>
<item>
    <title>Disk benchmarking with dd -- don't</title>
    <link>http://lethargy.org/~jesus/archives/150-Disk-benchmarking-with-dd-dont.html</link>
            <category>OpenSolaris</category>
    
    <comments>http://lethargy.org/~jesus/archives/150-Disk-benchmarking-with-dd-dont.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=150</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=150</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I heard some rumors &lt;a href=&quot;http://it.toolbox.com/blogs/database-soup/testing-disk-speed-the-dd-test-31069?rss=1&quot;&gt;float around&lt;/a&gt; about using &lt;code&gt;dd&lt;/code&gt; as a simple test for disk throughput.  I&#039;d like to verbosely say, &quot;that&#039;s a bad idea.&quot;&lt;/p&gt;

&lt;p&gt;I&#039;m going to log into a crappy system with two extremely slow 1.5TB SATA drives in RAID 1.  Yes, this is a production machine and it&#039;s goal in life is to store a lot of things and serve some of them infrequently -- as such, its configuration is well suited for that task.&lt;/p&gt;

&lt;pre&gt;
; /bin/time sh -c &quot;dd if=/dev/zero of=ddfile bs=8k count=2000000&quot;; /bin/time sync
2000000+0 records in
2000000+0 records out

real       53.9
user        1.2
sys        28.4

real        0.2
user        0.0                  
sys         0.0
&lt;/pre&gt;

&lt;p&gt;I&#039;ll note first that the second set of times is the sync and we see it was effectively free.  Second, we got 304MB/s.  In RAID 1 we have to write to both drives, so in the best case we get the performance of the worst spindle.  304Mb/s seems a tad high.&lt;/p&gt;

&lt;pre&gt;
; /bin/time sh -c &quot;dd if=/dev/zero of=ddfile2 bs=8k count=2000000&quot;
2000000+0 records in
2000000+0 records out

; /bin/time dd if=ddfile of=/dev/null bs=8k
2000000+0 records in
2000000+0 records out

real       36.9
user        1.3
sys        35.5
&lt;/pre&gt;

&lt;p&gt;The first statement blows any buffer cache we might have.  Then we see a read of a 16GB file that sustains an average of 444 MB/s (over two spindles).  That too seems a little high.&lt;/p&gt;

&lt;p&gt;Oh wait, I had compression on.  Let&#039;s rerun that with it turned off.&lt;/p&gt;

&lt;pre&gt;
; /bin/time sh -c &quot;dd if=/dev/zero of=ddfile bs=8k count=2000000&quot; ; /bin/time sync
2000000+0 records in
2000000+0 records out

real     3:17.9
user        1.2
sys        29.5

real        0.2
user        0.0
sys         0.0
&lt;/pre&gt;

&lt;p&gt;Interestingly, still the sync is dirt cheap (ZFS pretty aggressively writes back) and we&#039;re at about 83MB/s.  That&#039;s the sweet sucking sound of mirrored SATA disks.&lt;/p&gt;

&lt;p&gt;Now reading it back after blowing the ARC (ZFS&#039;s version of buffer cache):&lt;/p&gt;

&lt;pre&gt;
; /bin/time sh -c &quot;dd if=/dev/zero of=ddfile2 bs=8k count=2000000&quot;
2000000+0 records in
2000000+0 records out

; /bin/time dd if=ddfile of=/dev/null bs=8k
2000000+0 records in
2000000+0 records out

real     2:09.3
user        1.2
sys        13.1
&lt;/pre&gt;

&lt;p&gt;127MB/s, as expected we see a better, yet still crappy throughput from our drives on reading as we&#039;re coming from two spindles instead of one.&lt;/p&gt;

&lt;p&gt;Long story short: modern filesystems can do whack stuff to your workloads. Use a comprehensive workload generator for I/O benchmarking.  Preferably one that can simulate something resembling a real workload.  Greg mentions bonnie++ in his post about benchmarking.  Bonnie++ is a legitimate benchmarking tool, but for generating real workloads, I suggest &lt;a href=&quot;http://opensolaris.org/os/community/performance/filebench/&quot;&gt;filebench&lt;/a&gt;.  It might be a bit more work, but at least you can use the results!&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 14 Apr 2009 22:50:14 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/150-guid.html</guid>
    
</item>
<item>
    <title>Nice write-up on zones.</title>
    <link>http://lethargy.org/~jesus/archives/149-Nice-write-up-on-zones..html</link>
            <category>OpenSolaris</category>
    
    <comments>http://lethargy.org/~jesus/archives/149-Nice-write-up-on-zones..html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=149</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=149</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    My colleague &lt;a href=&quot;http://omniti.com/is/mark-harrison&quot;&gt;Mark Harrison&lt;/a&gt; at &lt;a href=&quot;http://omniti.com/&quot;&gt;OmniTI&lt;/a&gt; wrote a &lt;a href=&quot;http://omniti.com/seeds/virtualization-zfs-and-zetaback&quot;&gt;nice little piece on Solaris Containers (Zones)&lt;/a&gt; and how we use them (a lot).  It&#039;s a short and simple read, good for psuedo-technical people that want to know a but more about Zones. 
    </content:encoded>

    <pubDate>Sun, 12 Apr 2009 10:31:29 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/149-guid.html</guid>
    
</item>
<item>
    <title>Robert, spreading the wealth as usual.</title>
    <link>http://lethargy.org/~jesus/archives/148-Robert,-spreading-the-wealth-as-usual..html</link>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/archives/148-Robert,-spreading-the-wealth-as-usual..html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=148</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=148</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I&#039;m pretty excited that &lt;a href=&quot;http://omniti.com/is/robert-treat&quot;&gt;Robert Treat&lt;/a&gt; is talking at &lt;a href=&quot;http://postgresqlconference.org/&quot;&gt;PostgreSQL Conference East 2009&lt;/a&gt;.  He&#039;ll be talking about the upcoming release of PostgreSQL 8.4.  The postgres product is pretty complete and has been pretty complete for quite some time.  I&#039;ve been noted for saying I wouldn&#039;t use a database feature in production that hasn&#039;t been available (and tested) for several years.  As such, it is a bit ironic for me to say I&#039;m excited for a new release of a database product.  Let me explain myself.&lt;/p&gt;

&lt;p&gt;I&#039;m excited by several of the new features coming in PostgreSQL 8.4 because the sooner they are released, the sooner I can start my count down to when I&#039;d trust them in production.  Okay, that&#039;s not entirely fair.  When you &lt;a href=&quot;http://omniti.com/seeds/embracing-failure-to-rise-above-enterprise-class-thinking&quot;&gt;engineer things to embrace failure&lt;/a&gt; it is easy to launch newly released features with less risk.  However, &lt;a href=&quot;http://omniti.com/&quot;&gt;we run people&#039;s online businesses&lt;/a&gt;.  Some things (e.g. those that must comply with &lt;a href=&quot;https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml&quot;&gt;these specifications&lt;/a&gt;), even if engineered to allow for failures, you simply don&#039;t take the chance.  For other things, you can embrace failure and improve the product through feedback by running them in a globally trafficked, high impact environment.&lt;/p&gt;

&lt;p&gt;Whatever the circumstances, I&#039;m excited by the pending PostgreSQL 8.4 release.  Perhaps Robert will give the same presentation to OmniTI at one of our weekly development sessions so that we know what the hell is going on.&lt;/p&gt;

&lt;p&gt;Make sure you check out &lt;a href=&quot;http://postgresqlconference.org/2009/east/talks&quot;&gt;Robert&#039;s talk&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
Another year, another PostgreSQL release, and once again this release packed full of new features that will help you whether you develop apps inside or outside the database, or you just need to keep them running. This talk will give an overview of the new features available in 8.4, and give you pointers to talks during the rest of the conference you&#039;ll want to focus on to get the most out of 8.4.
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Thu, 02 Apr 2009 22:36:55 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/148-guid.html</guid>
    
</item>
<item>
    <title>Databases performing?  Oh my!</title>
    <link>http://lethargy.org/~jesus/archives/147-Databases-performing-Oh-my!.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/archives/147-Databases-performing-Oh-my!.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=147</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=147</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;So, there&#039;s this really neat little conference being run by &lt;a href=&quot;http://percona.com/&quot;&gt;Percona&lt;/a&gt;.  It&#039;s in the Santa Clara Convention Center on April 22nd and 23rd.  If you are in the bay area, you should come check it out.  It&#039;s &lt;strong&gt;free&lt;/strong&gt; and the &lt;a href=&quot;http://conferences.percona.com/percona-performance-conference-2009/schedule.html&quot;&gt;speakers list is simply smashing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&#039;ll be giving a talk on a largish PostgreSQL install that happens to be on Solaris on ZFS.  So, interesting stuff all around.&lt;/p&gt;

&lt;p&gt;I don&#039;t make it out to California that often, so if you want to catch me -- that&#039;d be a good time.  See you there!&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 31 Mar 2009 15:22:35 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/147-guid.html</guid>
    
</item>
<item>
    <title>First BWOSUG Meeting</title>
    <link>http://lethargy.org/~jesus/archives/146-First-BWOSUG-Meeting.html</link>
            <category>OpenSolaris</category>
    
    <comments>http://lethargy.org/~jesus/archives/146-First-BWOSUG-Meeting.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=146</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=146</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I&#039;m excited to announce the first ever BWOSUG meeting. On March 11th we&#039;ll be meeting up for the first time to geek-out on OpenSolaris technologies. To break of from the dry tradition of blind zealotry, we&#039;re going to shake things up a bit:&lt;/p&gt;

&lt;p&gt;I&#039;ve found that there&#039;s no true appreciation for technology like pain and suffering. As such, we&#039;ll be telling war stories of bugs encountered, havoc caused and work arounds applied. This meeting should get quite a few people talking and hopefully be very educational.&lt;/p&gt;

&lt;p&gt;Join us at the OmniTI offices at 6:30pm on March 11th, 2009!&lt;/p&gt;

&lt;pre&gt;
OmniTI
7070 Samuel Morse Dr. Ste 150
Columbia, MD 21046
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Tue, 03 Mar 2009 21:47:18 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/146-guid.html</guid>
    
</item>
<item>
    <title>Fuck the blind.</title>
    <link>http://lethargy.org/~jesus/archives/145-Fuck-the-blind..html</link>
            <category>Rambling</category>
    
    <comments>http://lethargy.org/~jesus/archives/145-Fuck-the-blind..html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=145</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=145</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;One of my favorite jokes always results with a wry grin on my face and ends with the punchline: &quot;fuck the blind.&quot;  Like many jokes, it is not politically correct. The only reason these jokes are funny is that they expose prejudices and injustices that still exist.  Many of us laugh at these things and find little bits of truth in ourselves.  The best of us reflect on that and increase our level of tolerance for all things different.  I, like most Americans, have a long way to go, but see profoundly increased tolerance from generation to generation.&lt;/p&gt;

&lt;p&gt;I am for freedom of choice; it allows people and corporations to take action on which they can be harshly judged.  &lt;a href=&quot;http://www.electronista.com/articles/09/02/27/amazon.kindle.tts.change/&quot;&gt;Amazon has given publishers the choice of disallowing their author&#039;s works from being automatically read aloud by computer&lt;/a&gt;.  Now, I actually have no issues with this.  If an audio version of a work is provided at the same price as the print version, then we have some element of accessibility.  However, if a publisher disallows this and makes no spoken derivative available I think I get the message: &quot;fuck the blind.&quot;  However, I&#039;m no longer laughing.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 01 Mar 2009 16:08:45 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/145-guid.html</guid>
    
</item>
<item>
    <title>New quintessential library for web engineers</title>
    <link>http://lethargy.org/~jesus/archives/144-New-quintessential-library-for-web-engineers.html</link>
            <category>Damaged Bits</category>
    
    <comments>http://lethargy.org/~jesus/archives/144-New-quintessential-library-for-web-engineers.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=144</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=144</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;At some point, I will come up with a list of &quot;must have&quot; books.&lt;/p&gt;

&lt;p&gt;Until then, &lt;a href=&quot;http://www.joyeur.com/2009/01/17/the-new-library&quot;&gt;this reading list&lt;/a&gt; will do.  I&#039;m very pleased to see my work there amongst such exemplary company.  There will always be a place in my heart for &lt;a href=&quot;http://www.amazon.com/gp/product/0201433079?ie=UTF8&amp;tag=lethargy-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0201433079&quot;&gt;APUE&lt;/a&gt;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 03 Feb 2009 23:08:04 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/144-guid.html</guid>
    
</item>
<item>
    <title>Data explosion?  WTF?</title>
    <link>http://lethargy.org/~jesus/archives/143-Data-explosion-WTF.html</link>
            <category>Damaged Bits</category>
    
    <comments>http://lethargy.org/~jesus/archives/143-Data-explosion-WTF.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=143</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=143</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;!-- s9ymdb:14 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;341&quot; height=&quot;284&quot; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px; text-align:center;&quot; src=&quot;http://lethargy.org/~jesus/uploads/Picture4.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;

&lt;blockquote&gt;When choosing a database technology, &quot;data explosion&quot; is not really the image I want in my mind.  Yikes!&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Thu, 29 Jan 2009 23:21:51 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/143-guid.html</guid>
    
</item>
<item>
    <title>Feb 2009 BWPUG Meeting: Stephen Frost, Column Level Permissions</title>
    <link>http://lethargy.org/~jesus/archives/142-Feb-2009-BWPUG-Meeting-Stephen-Frost,-Column-Level-Permissions.html</link>
            <category>BWPUG</category>
    
    <comments>http://lethargy.org/~jesus/archives/142-Feb-2009-BWPUG-Meeting-Stephen-Frost,-Column-Level-Permissions.html#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=142</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=142</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;Robert Treat was kind enough to coordinate the next BWPUG meeting.  Here are his words, be there or be square!&lt;/p&gt;

&lt;p&gt;UPDATED: the date of the meeting is 2009-02-09.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Welcome back everyone!&lt;/p&gt;

&lt;p&gt;The last few months have been a busy time for everyone, but it&#039;s time to get 
focused again and get meeting again. To that end, for the BWPUG February 
meeting, we have lined up Stephen Frost to give a talk on Column Level 
Permissions in Postgres. Column level permissions are a new feature that 
Stephen authored which was recently committed into Postgres and will be 
available in the upcoming Postgres 8.4 release.&lt;/p&gt;

&lt;p&gt;Stephen Frost is a Principal with Noblis, Inc., a non-profit organization 
working in the public interest supporting local, state, and federal 
Government. His work includes system architecture, system design, 
programming, unix administration, database administration, and management of 
the Noblis Innovation and Collaboration Center Computing Resources. As a 
PostgreSQL contributor, Stephen implemented roles support in 8.1 to replace 
the existing user/group system, and SQL column-level privileges in 8.4. As a 
PostGIS contributor and committer, Stephen updated the TIGER Geocoder for 
TIGER/Line and will be introducing a new version which works with the 
TIGER/Shapefile data at PGCon 2009.&lt;/p&gt;

&lt;p&gt;Oh, and as a reminder, meetings are held at OmniTI world headquarters in 
Columbia, Maryland (http://omniti.com/is/here for details). We&#039;ll look to 
start around 6:30PM, and we&#039;ll have pizza and drinks available. We look 
forward to seeing everyone again.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Thu, 29 Jan 2009 12:42:15 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/archives/142-guid.html</guid>
    
</item>

</channel>
</rss>