<?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 - OpenSolaris</title>
    <link>http://lethargy.org/~jesus/</link>
    <description>Theo's Contributions to Technological Surreality</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Sun, 15 Apr 2012 22:31:14 GMT</pubDate>

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

<item>
    <title>OmniOS</title>
    <link>http://lethargy.org/~jesus/writes/omnios</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/omnios#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=208</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;And this is it ... &lt;a href=&quot;http://omnios.omniti.com/&quot;&gt;OmniOS&lt;/a&gt;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 12 Apr 2012 15:04:01 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/208</guid>
    
</item>
<item>
    <title>The desktop and server: oil and water.</title>
    <link>http://lethargy.org/~jesus/writes/the-desktop-and-server-oil-and-water</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/the-desktop-and-server-oil-and-water#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=207</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I&#039;ve been using these computer things for a while.  I&#039;ve written what is now over 100k lines of production C code and many thousands of lines of code in a variety of other languages.  I&#039;ve seen my software run and I&#039;ve run other people software.  One thing they all have in common is their propensity to break under unforeseen circumstances.  Shit happens.&lt;/p&gt;

&lt;p&gt;On my laptop, I don&#039;t care much.  I want nice, I want convenient, I want new and pretty and productive.  I&#039;m willing to tolerate a nominal amount of instability for those desires.  I have to reboot my Macbook Air at least once every month to accommodate general software failures and security updates. There is, after all, a lot of crazy software on my workstation. (yes I call my laptop a work station as it is the station at which I work -- how many of your do the same?)&lt;/p&gt;

&lt;p&gt;Somehow, somewhere some engineer and their cult following decided that they wanted to make a datacenter operating systems be more desktop friendly and a product manager somewhere and their hefty company decided they wanted to make a desktop operating system be more datacenter friendly.  I would care so much about those decisions if they didn&#039;t constantly screw me.  This stops now.&lt;/p&gt;

&lt;p&gt;I don&#039;t want sound drivers and X11 or gnome in my datacenter operating system.  I don&#039;t want the kernel developers considering how priorities and implementation decisions effect software that has no place near my database server or web server or load balancer.  I don&#039;t want my scheduler to be optimized for browsing the web while watching a video.  My server is to &lt;strong&gt;serve&lt;/strong&gt; the Internet.&lt;/p&gt;

&lt;p&gt;We&#039;ve been working on something to scratch our itch at &lt;a href=&quot;http://omniti.com/&quot;&gt;OmniTI.&lt;/a&gt; If you are pissed off like me, maybe you&#039;ll like it... coming soon.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 23 Mar 2012 21:48:20 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/207</guid>
    
</item>
<item>
    <title>Surge is gonna kick ass.</title>
    <link>http://lethargy.org/~jesus/writes/surge-is-gonna-kick-ass</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/surge-is-gonna-kick-ass#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=205</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I haven&#039;t blogged for a while because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I have been travelling insanely.  About 80k miles this year so far.&lt;/li&gt;
&lt;li&gt;Hacking on &lt;a href=&quot;http://circonus.com/&quot;&gt;Circonus&lt;/a&gt; and (subsequently) &lt;a href=&quot;http://github.com/omniti-labs/reconnoiter&quot;&gt;Reconnoiter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Providing strategic and tactical guidance on some mind blowing projects for the truly awesome clientele we have at &lt;a href=&quot;http://omniti.com/&quot;&gt;OmniTI&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Speaking at quite a number of conferences.&lt;/li&gt;
&lt;li&gt;Attempting to participate more in some of the open source projects I can help.&lt;/li&gt;
&lt;li&gt;... and planning for &lt;a href=&quot;http://omniti.com/surge/2011&quot;&gt;Surge&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The little timeout I am taking to write this note isn&#039;t sufficient to dive into the truly interesting things my readers usually expect. However, I&#039;d be a jackass if I let you go any longer without knowing that Surge is going to be friggin&#039; awesome this year. At the end of this year, if you look back and see that you missed attending Surge you&#039;ll know what regret truly is.  Just sayin&#039;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 09 Aug 2011 23:48:22 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/205</guid>
    
</item>
<item>
    <title>Everyone is to blame for this continued expectation that such magic is possible.</title>
    <link>http://lethargy.org/~jesus/writes/everyone-is-to-blame-for-this-continued-expectation-that-such-magic-is-possible</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/everyone-is-to-blame-for-this-continued-expectation-that-such-magic-is-possible#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=204</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;blockquote&gt;
&lt;p&gt;My opinion is that the only reason the big enterprise storage vendors have gotten away with network block storage for the last decade is that they can afford to over-engineer the hell out of them and have the luxury of running enterprise workloads, which is a code phrase for “consolidated idle workloads.” When the going gets tough in enterprise storage systems, you do capacity planning and make sure your hot apps are on dedicated spindles, controllers, and network ports.&lt;/p&gt;

&lt;p&gt;It was fantasy believing it was possible to pull off a centralized network block storage service in a multi-tenant cloud without any of the architecture shenanigans our enterprise brethren do and think that applications, databases, and business could depend on its being perfect. Honestly, we should have know better. We the applications developers asked what is perhaps the crappiest of all abstractions in computers to solve all of our availability problems for us. We asked for magic. Clearly, the vendor never should have made the promise of magic, but everyone is to blame for this continued expectation that such magic is possible.
&lt;/p&gt;
&lt;p class=&quot;cite&quot; style=&quot;float:right&quot;&gt;- Mark Mayo of Joyent&lt;/p&gt;
&lt;/blockquote&gt;

&lt;br style:&quot;clear:both&quot;/&gt;
&lt;p&gt;This is from an &lt;a href=&quot;http://joyeur.com/2011/04/24/magical-block-store-when-abstractions-fail-us/&quot;&gt;interesting article&lt;/a&gt; by Mark Mayo over at &lt;a href=&quot;http://joyent.com&quot;&gt;Joyent&lt;/a&gt; with some excellent gems in it.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 24 Apr 2011 20:29:59 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/204</guid>
    
</item>
<item>
    <title>Surge 2011 CFP Extension</title>
    <link>http://lethargy.org/~jesus/writes/surge-2011-cfp-extension</link>
            <category>BWPUG</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/surge-2011-cfp-extension#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=203</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;The CFPs have been rolling in for Surge 2011; these are exciting times.  It does, however, appear that our description of what we&#039;re looking for has produced a different set of submissions that what I expected.  I think it might help to better understand what sessions were like last year and, luckily, we&#039;ll be &lt;a href=&quot;http://omniti.com/surge/2010/sessions&quot;&gt;releasing all of the Surge 2010 video footage this week&lt;/a&gt;.  I apologize for the poor audio quality, we intend to pull in A/V recording professionals this year.&lt;/p&gt;

&lt;p&gt;We&#039;ve received some great proposals!  However, a surprising amount of them are presentations about products.  This conference is about problems and their solutions.  It is a conference for practitioners by practitioners.  Blood... in the mud.  I want to (as we did last year) share our struggles for better collective experience.&lt;/p&gt;

&lt;p&gt;Emphasis: &lt;em&gt;Accepted proposals will demonstrate real-life scalability challenges and creative solutions. We love case studies and learning from our mistakes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As such, with this context, I&#039;m extending the &lt;a href=&quot;http://omniti.com/surge/2011/cfp&quot;&gt;Surge 2011 CFP&lt;/a&gt; deadline to April 17th.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 05 Apr 2011 22:41:11 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/203</guid>
    
</item>
<item>
    <title>Top 5 &quot;software to saas&quot; culture shocks.</title>
    <link>http://lethargy.org/~jesus/writes/top-5-software-to-saas-culture-shocks</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/top-5-software-to-saas-culture-shocks#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=202</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;At OmniTI, I&#039;ve been a part of writing a lot of open source software, my fair share of closed source software.  Some of it has been shipped and some of it has been operated as a service.  While it is possible (and quite useful) to take what one learns in one scenario and apply it to another, some things simply translate poorly.&lt;/p&gt;

&lt;p&gt;I do a lot of consulting with traditional software companies that are looking to make a transition to the new world of SaaS.  Again and again, I see the same &quot;shockers&quot; hit these companies during their metamorphosis. Read my &lt;a href=&quot;http://omniti.com/seeds/from-making-software-to-running-saas&quot;&gt;top 5 things you need to know if you are going to change your business model from traditional software engineering to SaaS delivery.&lt;/a&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 01 Mar 2011 21:54:54 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/202</guid>
    
</item>
<item>
    <title>Using Esper to manage real-time data.</title>
    <link>http://lethargy.org/~jesus/writes/using-esper-to-manage-real-time-data</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/using-esper-to-manage-real-time-data#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=201</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I&#039;m flying back from a wonderful event: &lt;a href=&quot;http://strataconf.com/&quot;&gt;Strata&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I gave a talk there called &quot;Esperwhispering&quot; that seemed to pique many people&#039;s interest.  This is the stuff you do when a database just doesn&#039;t have the horsepower to answer your questions fast enough.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://esper.codehaus.org/&quot;&gt;Esper&lt;/a&gt; is an excellent, open-source CEP tool.  It&#039;s a shame its GPL, but hey... you can&#039;t win &#039;em all.&lt;/p&gt;

&lt;p&gt;We use esper to power many things internally at &lt;a href=&quot;http://omniti.com/&quot;&gt;OmniTI&lt;/a&gt; and our clients and Esper is the code CEP engine we use to make sure &lt;a href=&quot;http://circonus.com&quot;&gt;Circonus&lt;/a&gt; custsomers know when &quot;things go wrong.&quot;&lt;/p&gt;

&lt;p&gt;This presentation gives some insight into what it does and why one would use it.  The live presentation, of course, had more information and live demos, but... you had to show up for that (or watch the live stream of the event).&lt;/p&gt;

&lt;div style=&quot;width:425px&quot; id=&quot;__ss_6795426&quot;&gt;&lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/postwait/esperwhispering&quot; title=&quot;Esperwhispering&quot;&gt;Esperwhispering&lt;/a&gt;&lt;/strong&gt;&lt;object id=&quot;__sse6795426&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=esperwhispering-110203011826-phpapp02&amp;stripped_title=esperwhispering&amp;userName=postwait&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse6795426&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=esperwhispering-110203011826-phpapp02&amp;stripped_title=esperwhispering&amp;userName=postwait&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&quot;padding:5px 0 12px&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/postwait&quot;&gt;postwait&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Fri, 04 Feb 2011 14:01:10 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/201</guid>
    
</item>
<item>
    <title>#ywahusty</title>
    <link>http://lethargy.org/~jesus/writes/ywahusty</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/ywahusty#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=200</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;h3&gt;Defining the term:&lt;/h3&gt;
&lt;p&gt;I recently used a term and was hit with a lot of out-of-band requests for explanation. It&#039;s a good one and excellent food for thought.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;b&gt;ywahusty (yuh-wuh-hus-tee)&lt;/b&gt;: you will always have users smarter than you.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This basic concept is one of sound, pragmatic systems engineering that might appear to fly in the face of traditional product engineering... but doesn&#039;t.&lt;/p&gt;

&lt;p&gt;In traditional product engineering, there is a goal to produce a product that is both accessible and useful to the largest subset of the predefined audience of the product.  Basically, in software terms: you don&#039;t put too many knobs on the dashboard or you will have all sorts of operator errors.  You work very hard to tune those knobs or have then auto-tune so that the product behaves correctly under normal operational uses (and of course, their edge conditions).  This is just good product design.&lt;/p&gt;

&lt;p&gt;We are faced with a problem: shit goes wrong.  As an engineer for a software product, you know full well that shit will break.  Those knobs will be set and/or auto-tuned and you&#039;ll be thinking: &quot;what if?&quot;  The: &quot;Wow, I&#039;ve never seen this set of inputs. The min_wu_tang_threshold is 11... it might behave better at 42 right now... sure wish I could twist that knob that product management insisted I leave off right now.&quot;  The truth is: the product you ship is not the product they receive.  Not every knob you ship has to be in the &quot;manual,&quot; it can be in the unsupported &quot;ninja manual.&quot;  You can absolutely instrument your application without sacrificing simple and intuitive use by the majority of your audience.&lt;/p&gt;

&lt;p&gt;Bottom line? The knob should be there. My hat goes off to an &lt;a href=&quot;http://www.messagesystems.com/company/who_we_are/&quot;&gt;engineering team&lt;/a&gt; that takes this to heart: &quot;I am ten ninjas.&quot; And a second tip of the hat to the diaspora of Solaris kernel engineers that have allowed us to tweak (seemingly) insane operational constraints on production systems without applying patches or rebooting.&lt;/p&gt;

&lt;h3&gt;Appealing to the pragmatist.&lt;/h3&gt;

&lt;p&gt;I&#039;ll attempt to appeal to the pragmatist in you. You are equipped with more knowledge now than you were when you started reading this prose. This is a truth whether you agree with anything I&#039;ve said simply because you have more information.  Even you, with you current implementation knowledge would benefit from the ability to tweak, twist and manipulate the parameters of your operating product because it will allow you to test new ideas, verify assumptions and validate the design and implementation choices you&#039;ve made with far greater ease.&lt;/p&gt;

&lt;p&gt;As a side note, gdb and/or mdb aren&#039;t the &quot;knobs&quot; I&#039;m talking about: think more along the lines of sysctl&#039;s on most UNIX implementations.  These are (mostly) run-time tunable parameters -- and yes users &lt;em&gt;can&lt;/em&gt; set them to values that will cause certain, and often immediate, combustion.  (good) Kernel engineers know that price benefit of having these knobs far outweighs their liability.&lt;/p&gt;

&lt;h3&gt;Appealing to the experienced.&lt;/h3&gt;

&lt;p&gt;Now, we come full circle, for the honest engineers that can check their ego at the door. I have never in my life developed a piece of successful software that had a user-base that contained only users dumber than myself.  The concept therein is absurd for any project with even moderate adoption.  You engineer your systems to be both observable and &lt;em&gt;operable&lt;/em&gt; because at the end of the day you will get schooled by (at least some of) your users.&lt;/p&gt;

&lt;p&gt;Again... &lt;em&gt;please&lt;/em&gt; make your software operable. Why? #ywahusty&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 04 Feb 2011 10:41:44 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/200</guid>
    
</item>
<item>
    <title>Why haven't all my graphs been useful like this?</title>
    <link>http://lethargy.org/~jesus/writes/why-havent-all-my-graphs-been-useful-like-this</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/why-havent-all-my-graphs-been-useful-like-this#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=198</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I don&#039;t know now many times I&#039;ve tried to eyeball a graph from this week against a graph from last week.  This is both painful and senseless as my eyeballs simply aren&#039;t that good.  Enter &quot;&lt;a href=&quot;http://circonus.com/blog/2011/01/does-this-look-right-to-you&quot;&gt;the right way to do it&lt;/a&gt;.&quot;  Bliss.&lt;/p&gt;

&lt;img src=&quot;http://circonus.com/i/content/blog/longspike-overlay.png&quot; /&gt; 
    </content:encoded>

    <pubDate>Thu, 20 Jan 2011 16:21:28 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/198</guid>
    
</item>
<item>
    <title>Capacity Planning</title>
    <link>http://lethargy.org/~jesus/writes/capacity-planning</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/capacity-planning#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=197</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;img src=&quot;http://circonus.com/i/content/blog/4weeks1year-linest.png&quot; style=&quot;width: 100%; border: 1px solid #999; margin-bottom: 1em&quot;/&gt;

&lt;p&gt;I used to export data into Excel and do linear regressions on it... How I have no need.  I am happier person and people like me more.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://circonus.com/blog/2011/01/capacity-planning-made-easy&quot;&gt;Here&#039;s how we made capacity planning easier for everyone.&lt;/a&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 05 Jan 2011 19:33:46 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/197</guid>
    
</item>
<item>
    <title>Theo seeks aspiring database administrator</title>
    <link>http://lethargy.org/~jesus/writes/theo-seeks-aspiring-database-administrator</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/theo-seeks-aspiring-database-administrator#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=196</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;What does it mean to be a &lt;a href=&quot;http://omniti.com/is/hiring/database-administrator&quot;&gt;database administrator&lt;/a&gt;?  It means more than just respecting data in a room full of engineers and analysts that do not -- it means bending them to your will and making them respect it, too.  It means knowing when people&#039;s concept of sacrosanct data integrity and consistency can be thrown out the window and letting those people know that, this time, they can cope with inaccuracy or volatility.  You think those things contradict? This job&#039;s not for you.&lt;/p&gt;

&lt;p&gt;Do you think the world can be solved through relational algebra? I&#039;m listening.  Do you think the world should be solved through relational algebra? Don&#039;t apply here. Have you edited a database redo/write-ahead log in a hex editor to bootstrap a failed recovery?  Now we&#039;re talking about reality.  We live in a world where the probability of bit errors on disks rattles our cage by guaranteeing corrupt data and indexes when using traditional filesystems. Being responsible for data in this world is no simple task.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you think you can scale single RDBMS to the sizes we see on a daily basis, I&#039;ll beat you with a stick.&lt;/li&gt;
&lt;li&gt;If you think RDBMS is are passe and any problem can be appropriately solved with a NoSQL solution, I&#039;ll beat you with a stick.&lt;/li&gt;
&lt;li&gt;If you think data is holy, I&#039;ll buy you a stick.&lt;/li&gt;
&lt;li&gt;If you try to pipe my data through the wrong tool, I&#039;ll carve zeros and ones into my stick and then beat you with it.&lt;/li&gt;
&lt;li&gt;If you think its okay to let someone who cares more about code than data roll out queries without your review, I&#039;ll make you beat them with a stick, then beat you with a stick while you clean up their bloody remains.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a real database architect&#039;s role, you don&#039;t manage a database -- you manage data.  You keep it secret, you keep it safe, you keep it clean, and you keep it available.  From Oracle, to PostgreSQL, to MSSQL, to MySQL, to Cassandra, to Riak, to Hadoop, to Esper you will be responsible for the operational integrity of systems that touch data and turn it into useful outputs for people and businesses.&lt;/p&gt;

&lt;p&gt;If you know relational databases and at least one of NoSQL systems or streaming databases (CEP/IEP), then you may have what it takes to be on the &lt;a href=&quot;http://omniti.com/is/hiring/database-administrator&quot;&gt;OmniTI data management team&lt;/a&gt;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 28 Dec 2010 08:20:40 -0500</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/196</guid>
    
</item>
<item>
    <title>Web Performance Boot Camp</title>
    <link>http://lethargy.org/~jesus/writes/web-performance-boot-camp</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/web-performance-boot-camp#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=195</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;Slides are &lt;a href=&quot;http://lethargy.org/~jesus/misc/webperformancebootcamp.pdf&quot;&gt;here&lt;/a&gt;, get &#039;em while they&#039;re hot.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 02 Nov 2010 16:33:09 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/195</guid>
    
</item>
<item>
    <title>Perform or Die</title>
    <link>http://lethargy.org/~jesus/writes/perform-or-die</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/perform-or-die#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=194</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;There&#039;s no excuse these days for crappy web performance.  The low hanging fruit is just too low. It is trivial to make a web site that loads fast for users. Do it.  If you don&#039;t know how, you should come to my &lt;a href=&quot;http://na.apachecon.com/c/acna2010/sessions/631&quot;&gt;Web Performance Boot Camp tutorial&lt;/a&gt; at &lt;a href=&quot;http://apachecon.com/&quot;&gt;ApacheCon&lt;/a&gt;. Make you site fast &amp;#8212; no excuses.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 29 Oct 2010 22:39:50 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/194</guid>
    
</item>
<item>
    <title>Why JSON sucks.</title>
    <link>http://lethargy.org/~jesus/writes/why-json-sucks</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/why-json-sucks#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=193</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;JSON sucks.  Don&#039;t get me wrong, I love the simplicity of it.  It&#039;s simple, it&#039;s easy, it&#039;s portable, it&#039;s ubiquitous at this point. None of that means it doesn&#039;t suck.  Outside of Javascript (hence the portability), JSON itself is limited to native types in the grammar:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;null&lt;/li&gt;
  &lt;li&gt;object (like a hash)&lt;/li&gt;
  &lt;li&gt;array&lt;/li&gt;
  &lt;li&gt;string&lt;/li&gt;
  &lt;li&gt;integer (signed 32bit)&lt;/li&gt;
  &lt;li&gt;number (double)&lt;/li&gt;
  &lt;li&gt;boolean&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Really? It&#039;s 2010 and we&#039;re all flocking to a grammar where we can only accurately represent integers up to 2&lt;sup&gt;31&lt;/sup&gt;-1. WTF?  Any new standard we adopted should certainly have had grammar specifications for: 1, 8, 16, 32, 64, 128 bit signed and unsigned integers, 32bit and 64bit IEEE floating point (float and double) as well as arbitrary precision real numbers.  I&#039;d much rather have a grammar that I struggle to translate into my native language data types (like, &quot;hmmm, what am I supposed to do with a real in C?&quot;) than I would have a grammar in which I cannot precisely express myself.&lt;/p&gt;

&lt;p&gt;Every time I need to (correctly) represent a large integer such as 4611686018427387900, I&#039;m forced to do so in a string.  It causes me to throw up in mouth a little. Everyone seems dead set on this, so I suppose I&#039;ll learn to cherish the flavor of bile.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 10 Oct 2010 09:19:17 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/193</guid>
    
</item>
<item>
    <title>Finding leaks on Solaris (w/o Valgrind)</title>
    <link>http://lethargy.org/~jesus/writes/finding-leaks-on-solaris-wo-valgrind</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
            <category>PostgreSQL</category>
    
    <comments>http://lethargy.org/~jesus/writes/finding-leaks-on-solaris-wo-valgrind#comments</comments>
    <wfw:comment>http://lethargy.org/~jesus/wfwcomment.php?cid=192</wfw:comment>

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

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;Premise: I write a lot of C code.  I run a lot of Solaris.&lt;/p&gt;

&lt;p&gt;Sadness: One of my favorite tools ever made is Valgrind.  Valgrind does not run on Solaris.&lt;/p&gt;

&lt;p&gt;A lot of the C code I write is event-driven and as such (complicated) it is harder to write code and leaked memory is a common residual of this more complicated coding effort.  Memory leaks suck.  Most of the code I write is systems-level code and as such is exercised heavily and needs to run for months or years without restart.  So, leaks more than suck.&lt;/p&gt;

&lt;p&gt;Valgrind will tell you exactly where you&#039;re leaking (and it feels like it tells you why)... BFM.&lt;/p&gt;

&lt;p&gt;On Solaris, we have a different option: libumem.&lt;/p&gt;

&lt;p&gt;I compile almost all of my apps against libumem, which has the effect of replacing malloc/free/and friends with a more multi-processor scalable slab-allocator implementation than the default one in libc.  A very useful feature in libumem is debugging and leak detection... how?&lt;/p&gt;

&lt;p&gt;First, let&#039;s assume you&#039;ve compiled your app with debugging symbols (-g in the compiler flags).  Next, I&#039;ll assume you didn&#039;t have the foresight to link against libumem (-lumem on the linker line).  We need to link in libumem and we need to turn on debugging.  In the case of this example, our app is the Apache web server &lt;kbd&gt;httpd&lt;/kbd&gt;.&lt;/p&gt;

&lt;p&gt;
&lt;kbd&gt;LD_PRELOAD=libumem.so.1 UMEM_DEBUG=default /opt/apache22/bin/httpd&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;Now, just find the process ID of exampled (perhaps as easy as a &lt;kbd&gt;pgrep exampled&lt;/kbd&gt;). It is leaking, so we&#039;ll use the process ID 666. To find the leaks (without killing or restarting), we can simply use the mdb umem helper ::findleaks on the running process.&lt;/p&gt;

&lt;p&gt;
&lt;kbd&gt;echo &quot;::findleaks -d &quot; | mdb -p 666 &gt; leak-profile.txt&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;Note you can also do this from a core... very nice.&lt;/p&gt;

&lt;p&gt;The output has a summary and then individual profile records grouped by stack trace of allocation, like:&lt;/p&gt;

&lt;pre&gt;
umem_alloc_16384 leak: 203 buffers, 16384 bytes each, 3325952 bytes total
            ADDR          BUFADDR        TIMESTAMP           THREAD
                            CACHE          LASTLOG         CONTENTS
         1d36b60          1d37000   70235c07811a50              197
                           65a468           617900                0
                 libumem.so.1`umem_cache_alloc_debug+0x152
                 libumem.so.1`umem_cache_alloc+0x1a2
                 libumem.so.1`umem_alloc+0xdb
                 libumem.so.1`malloc+0x59
                 libapr.so.0.2.12`allocator_alloc+0x466
                 libapr.so.0.2.12`apr_palloc+0xda
                 bio_filter_out_ctx_new+0x37
                 ssl_io_filter_init+0xb1
                 ssl_init_ssl_connection+0x2cd
                 ssl_hook_pre_connection+0x123
                 ap_run_pre_connection+0xc3
                 ap_process_connection+0x30
                 process_socket+0xa8
                 worker_thread+0x2d8
                 libapr.so.0.2.12`dummy_worker+0x30
&lt;/pre&gt;

&lt;p&gt;mod_ssl... Why are you so mean to me?&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 09 Oct 2010 16:04:18 -0400</pubDate>
    <guid isPermaLink="false">http://lethargy.org/~jesus/writes/192</guid>
    
</item>

</channel>
</rss>
