<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:nasrat</id>
  <title>Paul's Wibblings</title>
  <subtitle>Paul Nasrat</subtitle>
  <author>
    <name>Paul Nasrat</name>
  </author>
  <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom"/>
  <updated>2009-04-14T15:37:32Z</updated>
  <lj:journal userid="430399" username="nasrat" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://nasrat.livejournal.com/data/atom" title="Paul's Wibblings"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:56365</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/56365.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=56365"/>
    <title>Event: London Talk and Discussion on Agile Systems</title>
    <published>2009-04-14T15:37:32Z</published>
    <updated>2009-04-14T15:37:32Z</updated>
    <content type="html">I'm giving a talk and discussion on Agile Systems Administration and Infrastructure at Skills Matter on April 23rd.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://skillsmatter.com/event/agile-scrum/agile-pragmatic-systems-administration"&gt;http://skillsmatter.com/event/agile-scrum/agile-pragmatic-systems-administration&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:55571</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/55571.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=55571"/>
    <title>Fosdem 2009</title>
    <published>2009-01-17T10:36:08Z</published>
    <updated>2009-01-24T10:52:52Z</updated>
    <content type="html">I finally got organinsed and booked going to FOSDEM, I didn't get there last year and am looking forward to it. Hopefully get a chance to catch up with some people. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.fosdem.org"&gt;&lt;img src="http://www.fosdem.org/promo/going-to" alt="I&amp;#39;m going to FOSDEM, the Free and Open Source Software Developers&amp;#39; European Meeting" /&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:55507</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/55507.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=55507"/>
    <title>A new entry into the state driven config management field</title>
    <published>2009-01-16T10:02:17Z</published>
    <updated>2009-01-16T10:03:43Z</updated>
    <content type="html">Whilst reading my daily blog roll I noticed that Ezra &lt;a href="http://brainspl.at/articles/2009/01/15/chef-suck-on-my-chocolate-salty-balls"&gt;posted&lt;/a&gt; about a new configuration management tool &lt;a href="http://github.com/opscode/chef/tree/master"&gt;chef&lt;/a&gt; and fact gatherer project &lt;a href="http://github.com/opscode/ohai/tree/master"&gt;ohai&lt;/a&gt; from the guys as opscode.&lt;br /&gt;&lt;br /&gt;There is more details on the &lt;a href="http://wiki.opscode.com/display/chef/Home"&gt;wiki&lt;/a&gt;, and I'm interested in finding out design differences to puppet and facter. An initial look at ohai looks good - JSON output of facts leads to clearer ability to collect nested facts than namespacing ipaddress_eth0.&lt;br /&gt;&lt;br /&gt;chef looks to use ruby rather than an external dsl for it's cookbooks (recipes).</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:54976</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/54976.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=54976"/>
    <title>Puppet gets Continuous Integration</title>
    <published>2008-12-01T20:45:09Z</published>
    <updated>2008-12-01T20:45:09Z</updated>
    <content type="html">Whilst I was caught up with the day job (long, long commutes ...) Puppet seems to have got itself a CI setup:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://reductivelabs.com/trac/puppet/wiki/PuppetContinuousIntegration"&gt;http://reductivelabs.com/trac/puppet/wiki/PuppetContinuousIntegration&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have a weird and wonderful os you want hosted in it for functional/integration testing follow the instructions.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:54570</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/54570.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=54570"/>
    <title>puppetdoc goodness</title>
    <published>2008-11-20T13:46:39Z</published>
    <updated>2008-11-20T13:46:39Z</updated>
    <content type="html">More puppet goodenss from masterzen in the form of improved puppetdoc allowing inline manifest documentation:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://reductivelabs.com/trac/puppet/wiki/PuppetManifestDocumentation"&gt;http://reductivelabs.com/trac/puppet/wiki/PuppetManifestDocumentation&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Sample output here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.masterzen.fr/puppet/rdoc/index.html"&gt;http://www.masterzen.fr/puppet/rdoc/index.html&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:54301</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/54301.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=54301"/>
    <title>puppetdoc goodness</title>
    <published>2008-11-20T10:21:05Z</published>
    <updated>2008-11-20T10:21:05Z</updated>
    <content type="html">More puppet goodenss from masterzen in the form of improved puppetdoc:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://reductivelabs.com/trac/puppet/wiki/PuppetManifestDocumentation"&gt;http://reductivelabs.com/trac/puppet/wiki/PuppetManifestDocumentation&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:54064</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/54064.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=54064"/>
    <title>Scribe</title>
    <published>2008-11-07T18:05:48Z</published>
    <updated>2008-11-07T18:05:48Z</updated>
    <content type="html">I've just come across Facebook's open sourced logging aggregator scribe, which looks interesting:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.facebook.com/notes.php?id=9445547199#/note.php?note_id=32008268919&amp;id=9445547199&amp;index=0"&gt;http://www.facebook.com/notes.php?id=9445547199#/note.php?note_id=32008268919&amp;id=9445547199&amp;index=0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developers.facebook.com/scribe/"&gt;http://developers.facebook.com/scribe/&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:53612</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/53612.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=53612"/>
    <title>Capturing the intent of system changes</title>
    <published>2008-11-04T21:05:24Z</published>
    <updated>2008-11-04T21:05:24Z</updated>
    <content type="html">There has been some discussion on the puppet lists about potential language shortcomings, something &lt;a href="http://madstop.com/"&gt;lak&lt;/a&gt; said echoed with some thoughts I've been having recently:&lt;br /&gt;&lt;br /&gt;&lt;quote&gt;&lt;br /&gt;No one starts with code, even when they think they do -- you always&lt;br /&gt;start with intent.  Why are you building this node?  What services&lt;br /&gt;should it offer?  Why?&lt;br /&gt;&lt;/quote&gt;&lt;br /&gt;&lt;br /&gt;In Test Driven/Behaviour Driven Development projects I see intent and goal extensively within the language of the tests.&lt;br /&gt;&lt;br /&gt;Time and again when I see setups with systems in a state where their configuration is divergent and it's impossible to tell what is the desired state (if you haven't heard of puppet - check it out) and why the change was needed. &lt;br /&gt;&lt;br /&gt;Take for an example an organisation using NFS or Samba as a backend store for documents for a distributed workflow. Tweaks to the config (kernel parameters, mount options, config changes) may be apparent from the system or puppet, but it may not be clear the underlying value that you're trying to achieve. It may be throughput, reliability, access - systems changes are usually made for a specific reason - I'd like to be able to more easily capture that (preferably in the format of executable tests to validate) but make it easy for Jo, the Sysadmin, to easily do as change is driven out either in reaction to a situation or as part of a planned change.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:53466</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/53466.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=53466"/>
    <title>Puppet 0.24.6</title>
    <published>2008-11-01T11:08:45Z</published>
    <updated>2008-11-01T11:08:45Z</updated>
    <content type="html">I'm really excited to get back from holiday and see the release of puppet 0.24.6. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/group/puppet-users/browse_thread/thread/d3752a90ef20323f"&gt;http://groups.google.com/group/puppet-users/browse_thread/thread/d3752a90ef20323f&lt;/a&gt;#&lt;br /&gt;&lt;br /&gt;Some of the new language features from Brice are really useful and should allow for much richer expression in manifests.&lt;br /&gt;&lt;br /&gt;I'm hoping to get back to working on the win32 port, and looking at improving facter again.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:52943</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/52943.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=52943"/>
    <title>Systems Administration must die, die, die</title>
    <published>2008-06-01T14:46:54Z</published>
    <updated>2008-06-01T14:46:54Z</updated>
    <content type="html">I really think that the term "Systems Administration" needs to go away. Use Systems Integrator, Systems Engineer (or Systems Reliability Engineer if you're Google) or some other term that more accurately represents the role.&lt;br /&gt;&lt;br /&gt;I know there has been a lot of discussion about DSL's and Polyglot Programming around (eg &lt;a href="http://ola-bini.blogspot.com/2008/05/new-hope-polyglotism.html"&gt;http://ola-bini.blogspot.com/2008/05/new-hope-polyglotism.html&lt;/a&gt;), but I know that good Systems Engineers regularly context switch between different DSLs (config file syntax, puppet) languages (shell, batch, sed, awk, perl, python, ruby, powershell).&lt;br /&gt;&lt;br /&gt;From my own experience I might be debugging a core dumping application using gdb, then swapping puppet update something, followed by a dash of shell, a sprinkling of graphing in gnuplot (or gruff and ruby), then some Java. I don't think the word administration even comes close to explaining that.&lt;br /&gt;&lt;br /&gt;I don't hear the term "Operator" in common usage for Systems Engineer, and I'd like to see Administrator go the same way. If you're recruiting for people think about the fact that words are powerful, think about the role and what it involves, then see if you feel that Administrator is the word you'd choose to fit that.&lt;br /&gt;&lt;br /&gt;If you don't know what your friendly neighbourhood Systems Integrator does, ask her if she would mind you shadowing for a day, if you're developing you probably will learn a lot about how to write applications that are supportable just from understanding the pain points of debugging with just a log file!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:52603</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/52603.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=52603"/>
    <title>Thoughtworks Geek Night - Mocking 28th May</title>
    <published>2008-05-20T05:49:27Z</published>
    <updated>2008-05-20T05:49:27Z</updated>
    <category term="events"/>
    <category term="oss"/>
    <content type="html">&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;May 28th will be a Mocking focussed Geek Night at the ThoughtWorks office:&lt;br /&gt;&lt;br /&gt;Mocking can make code more reliable, more comprehensible and allow you&lt;br /&gt;to spot problems in design long before your code is deployed. Speakers&lt;br /&gt;will include Steve Freeman and Nat Pryce, developers of JMock and&lt;br /&gt;Felix Leipold of ThoughtWorks.&lt;br /&gt;&lt;br /&gt;Time permitting there will also be a mocking dojo to allow you to get&lt;br /&gt;&lt;br /&gt;See:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://londongeeknights.wetpaint.com"&gt;http://londongeeknights.wetpaint.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://upcoming.yahoo.com/event/498162/"&gt;http://upcoming.yahoo.com/event/498162/&lt;/a&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:52288</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/52288.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=52288"/>
    <title>Shell history meme</title>
    <published>2008-04-12T17:36:12Z</published>
    <updated>2008-04-12T17:36:12Z</updated>
    <content type="html">&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head&lt;br /&gt;96 ls&lt;br /&gt;47 vi&lt;br /&gt;37 sudo&lt;br /&gt;35 cd&lt;br /&gt;30 make&lt;br /&gt;21 vim&lt;br /&gt;17 svn&lt;br /&gt;16 curl&lt;br /&gt;15 gdb&lt;br /&gt;12 grep</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:52140</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/52140.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=52140"/>
    <title>OS X and dtrace</title>
    <published>2008-03-12T08:19:59Z</published>
    <updated>2008-03-12T08:24:20Z</updated>
    <category term="os x"/>
    <category term="dtrace"/>
    <content type="html">&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;Played a bit with trying to get &lt;a href="http://prefetch.net/projects/apache_modtrace/index.html"&gt;mod_trace&lt;/a&gt; the dtrace module for apache working with Leopard yesterday evening.&lt;br /&gt;&lt;pre&gt;
gcc -o foo -arch x86_64 foo.c
/var/folders/rV/rV1x2DafFr0R6tGG+1bbk++++TM/-Tmp-//ccnykQ1o.s:11:bad
register name `%%esi)'
&lt;/pre&gt;&lt;br /&gt;I didn't have time to fully investigate so fired off a &lt;a href="http://opensolaris.org/jive/thread.jspa?messageID=214321&amp;amp;tstart=0"&gt;reproducer&lt;/a&gt; to dtrace-discuss. It turns out that DTRACE_PROBE, DTRACE_PROBE1 and friends are not supported on OS X despite being exported. A little further investigation this morning showed that the root cause is actually a bad define in /usr/include/mach/i386/sdt_isa.h:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#ifdef __x86_64__&lt;br /&gt;&lt;br /&gt;#define DTRACE_NOPS                     \&lt;br /&gt;       "nop"                   "\n\t"  \&lt;br /&gt;       "leal 0(%%esi), %%esi"  "\n\t"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;So rather than use the DTRACE_PROBE# family the correct way to do this on OS X is to use the generated macros (and probe tests) from dtrace -h:&lt;br /&gt;&lt;pre&gt;
dtrace -h -arch x86_64 -s foo.d
cat foo.d
provider testDtraceProbe {
    probe probe__noargs();
};
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then include the generated foo.h in your and use the generated probe, eg: TESTDTRACEPROBE_PROBE_NOARGS. A good example of this is the patch for &lt;a href="http://leenux.org.uk/dtrace-patches/dtrace-with-postgres-on-osx"&gt;dtrace on postgresql&lt;/a&gt; for OS X from Lee Packham.&lt;br /&gt;&lt;br /&gt;Hopefully tonight I can get a working mod_trace on OS X and write some dtrace scripts for apache and in the future maybe be able to look at uprobes systemtap on Linux as well. It &lt;a href="http://sourceware.org/bugzilla/show_bug.cgi?id=952"&gt;looks as if systemtap user space probes are progressing &lt;br /&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:51730</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/51730.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=51730"/>
    <title>Tool of the day</title>
    <published>2008-02-19T17:45:40Z</published>
    <updated>2008-02-19T17:45:59Z</updated>
    <category term="oss"/>
    <category term="netfilter"/>
    <category term="lagfactory"/>
    <content type="html">I was looking for something to simulate delay and latency on linux using netfilter or iptables and discovered Netem and the wonderful &lt;a href="http://software.inl.fr/trac/wiki/LagFactory"&gt;lagfactory&lt;/a&gt; script that did just what I wanted.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:51482</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/51482.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=51482"/>
    <title>Puppet and ctags</title>
    <published>2008-02-11T21:06:53Z</published>
    <updated>2008-02-11T21:07:35Z</updated>
    <category term="puppet"/>
    <category term="ctags"/>
    <content type="html">Whilst finding my way around puppet, I realised that some of the tools I'm used to when developing in other languages weren't quite there. &lt;br /&gt;&lt;br /&gt;A quick read through the ctags documentation and I knocked up a couple of simple regular expressions that enable me to quick navigate through a large, split out puppet configuration using vim. Adding the following to ~/.ctags will enable you to run ctags -R at the top of your puppet manifests and navigate through tags. I'll probably need to actually go through the language definition and ctags docs some more to provide more comprehensive functionality but this works for me right now so I wanted to share it.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
--langdef=puppet
--langmap=puppet:.pp
--regex-puppet=/^class[ \t]*([:a-zA-Z0-9_\-]+)[ \t]*/\1/d,definition/
--regex-puppet=/^site[ \t]*([a-zA-Z0-9_\-]+)[ \t]*/\1/d,definition/
--regex-puppet=/^node[ \t]*([a-zA-Z0-9_\-]+)[ \t]*/\1/d,definition/
--regex-puppet=/^define[ \t]*([:a-zA-Z0-9_\-]+)[ \t]*/\1/d,definition/
&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:51361</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/51361.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=51361"/>
    <title>Virtualisation libraries</title>
    <published>2008-02-04T10:11:16Z</published>
    <updated>2008-02-04T16:27:59Z</updated>
    <category term="virtualisation"/>
    <content type="html">Whilst looking into the progress of &lt;a href="http://libvirt.org"&gt;libvirt&lt;/a&gt; and use with VMWare and OS X, I discovered &lt;a href="http://www.lostcreations.com/code/wiki/ivi"&gt;ivi&lt;/a&gt; which is a java library around VMWare, Xen, KVM and OpenVZ. Hopefully VMWare in libvirt won't be far off.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:50798</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/50798.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=50798"/>
    <title>Yaboot update</title>
    <published>2008-01-04T13:33:40Z</published>
    <updated>2008-01-04T13:34:20Z</updated>
    <category term="yaboot"/>
    <category term="fedora"/>
    <content type="html">It's taken me some time since I moved in to the new place to setup my test environment again, it's not ideal as I don't have as much ppc hardware as I used to but it's a start.  The morning was spent getting dhcp setup, and ensuring neboot worked end to end with the iBook. Once that was done I could test &lt;a href="http://yaboot.ozlabs.org/"&gt;yaboot git HEAD&lt;/a&gt; using netboot.&lt;br /&gt;&lt;br /&gt;Some of the recent features are really useful, I love being able to netboot to test the netboot code, then do &lt;br /&gt;&lt;code&gt;&lt;br /&gt;device=hd partition=2 filename=yaboot.conf&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;To boot off the hard disk. The use of the initrd= to load an alternate initrd from the command line is an improvement I've wanted for a long time and is great. It's also a good start to adding multiple initramfs images.&lt;br /&gt;&lt;br /&gt;There is also the bootonce feature which I've not really played with in anger, as I tend to do most of my yaboot testing via netboot, which is even easier now we support larger images.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:49260</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/49260.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=49260"/>
    <title>yaboot</title>
    <published>2007-08-17T15:36:14Z</published>
    <updated>2008-02-24T10:56:29Z</updated>
    <category term="yaboot"/>
    <content type="html">yaboot 1.3.14 is released&lt;br /&gt;&lt;br /&gt;&lt;a href="http://yaboot.ozlabs.org/"&gt;http://yaboot.ozlabs.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once my Fedora account is sorted I'll update there.&lt;br /&gt;&lt;br /&gt;Many nice things for enterprise ppc users - bootonce, pSeries netbooting, user confs, pxelinux style netbooting.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:49039</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/49039.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=49039"/>
    <title>Time for a change</title>
    <published>2007-08-17T14:32:35Z</published>
    <updated>2007-08-17T14:32:35Z</updated>
    <content type="html">After much consideration - I've decided to pursue other opportunities outside of Red Hat.  My last day is today.&lt;br /&gt;&lt;br /&gt;It's been a tough call, Red Hat have been a fantastic employer but it's time for me to do something different with my days. &lt;br /&gt;&lt;br /&gt;I'm still looking forward to being active in Fedora, RPM, yaboot and other communities in my free time.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:47821</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/47821.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=47821"/>
    <title>RPM 4.4.2.1</title>
    <published>2007-07-23T13:52:33Z</published>
    <updated>2007-07-23T13:52:33Z</updated>
    <category term="rpm"/>
    <content type="html">As &lt;a href="http://laiskiainen.org/blog/?p=13"&gt;Panu&lt;/a&gt; discusses and the &lt;a href="https://lists.dulug.duke.edu/pipermail/rpm-announce/2007-July/000001.html"&gt;announcement&lt;/a&gt; details. &lt;a href="http://www.rpm.org"&gt;rpm.org&lt;/a&gt; has released rpm-4.4.2.1 maintenance release.&lt;br /&gt;&lt;br /&gt;The hg branch for 4.4.x is &lt;a href="http://hg.rpm.org/rpm-4.4.x"&gt;http://hg.rpm.org/rpm-4.4.x&lt;/a&gt;&lt;br /&gt;The hg branch for HEAD and new development is &lt;a href="http://hg.rpm.org/"&gt;http://hg.rpm.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mailing list for discussion is here &lt;a href="https://lists.rpm.org/mailman/listinfo/rpm-maint"&gt;https://lists.rpm.org/mailman/listinfo/rpm-maint&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fedora users should see it hitting rawhide shortly.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:46039</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/46039.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=46039"/>
    <title>Perl/Python Module Finding</title>
    <published>2007-02-09T10:21:42Z</published>
    <updated>2007-02-09T10:21:42Z</updated>
    <content type="html">I had a look at Peter Gordon's python module finding code to work with rpmbuild.&lt;br /&gt;&lt;br /&gt;I'd rather something use the &lt;a href="http://docs.python.org/lib/module-modulefinder.html"&gt;modulefinder&lt;/a&gt; module.&lt;br /&gt;&lt;br /&gt;Whilst we're at it'd also be nice if we could use &lt;a href="http://search.cpan.org/~autrijus/Module-ScanDeps-0.51/lib/Module/ScanDeps.pm"&gt;Module::ScanDeps&lt;/a&gt; for the perl module finding.  We really shouldn't be writing our own language specific dependency generators where good ones already exist.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:45765</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/45765.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=45765"/>
    <title>RPM developer position</title>
    <published>2007-02-08T09:54:33Z</published>
    <updated>2007-02-08T09:54:33Z</updated>
    <content type="html">There's a job at Red Hat for someone who wants to work with RPM, we want to build a bigger team around RPM and this should help&lt;br /&gt;&lt;br /&gt;&lt;a href="http://redhat.hrdpt.com/cgi-bin/a/highlightjob.cgi?jobid=1949"&gt;http://redhat.hrdpt.com/cgi-bin/a/highlightjob.cgi?jobid=1949&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you're interested drop me a line to let me know as well as applying online.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:43215</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/43215.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=43215"/>
    <title>Off on holiday</title>
    <published>2006-05-31T10:43:17Z</published>
    <updated>2006-05-31T10:43:17Z</updated>
    <category term="fedora holiday"/>
    <content type="html">Just to let people know I'm away on holiday over the next week and a half and will be out of contact as I'll not be taking a computer and will be enjoying hiking, camping, etc.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:42829</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/42829.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=42829"/>
    <title>pysqlite memory fun</title>
    <published>2006-02-01T19:57:55Z</published>
    <updated>2008-02-24T10:57:59Z</updated>
    <category term="debugging"/>
    <category term="python"/>
    <category term="fedora"/>
    <content type="html">&lt;p&gt;Today got put on hold a bit due to the yum eating all the memory on the box issues on rawhide.  I thought I'd share how I tracked it down.  I noticed the issue doing a test install on an IBM OpenPower LPAR.  Thinking it was the lpar, I boosted the memory - but noted that I got OOM killer regardless of memory. In car hypothesis - probably sqlite upgrade, confirmed on getting to office on cube mates machine, whilst mine booted up.  Start tracking down.&lt;p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;
&lt;p&gt;Let's see what changed:
&lt;pre&gt;diff -ur sqlite-3.3.2 sqlite-3.3.3 | diffstat
 62 files changed, 663 insertions(+), 279 deletions(-)
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;OK, great - now if they were using git I could use git bisect I think.  I look what source control they are using and discover it's CVS.  A little bit of poking reveals they use trac so I can get a timeline:
http://www.sqlite.org/cvstrac/timeline?d=30&amp;e=2006-Feb-01&amp;c=2&amp;px=&amp;s=3&amp;dm=1&amp;x=1&amp;m=1
From that I see that changeset 3020 to 3045 are relevant.  I see that I can individually pull them without using CVS:

&lt;br&gt;&lt;pre&gt;for patch in $(seq 3020 3045); do curl -o ${patch}.patch http://www.sqlite.org/cvstrac/patchset?cn=$patch ; done&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;All well and good, a quick test shows that they are CVS patch,  never mind patchutils comes to the rescue with fixcvsdiff.  Now I have a starting tarball, a whole bunch of patches.  I set up a local git (cg-init) tree of 3.3.2 and ct-tag it, then I loop over and apply each patches (ignoring some rejects I either don't care about or were applied already) and cg-commit with a comment on which patch number it came from.  The behaviour only exhibits itself in python using pysqlite, so something changed that broke table creation.  I create a simple test case.&lt;/p&gt;

&lt;p&gt;Now I whip out git bisect - it's the first time I've used it and it along with the test case really sped up the process.  A few bisections later and I'm at the patch where the issue exhibits itself #3040.  Time to look it up, http://www.sqlite.org/cvstrac/tktview?tn=1554. OK so now I can head over to pysqlite source and see what it does with sqlite3_prepare.  &lt;pre&gt;rc = sqlite3_prepare(db, tail, 0, &amp;statement, &amp;tail);&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;That really doesn't look like a good plan, but never bit us before as it was unimplemented.  Checking the API docs I decide to just use a negative value.  Test it out and all seems good.&lt;/p&gt;

&lt;p&gt;I'm very grateful to have such tools as git bisect and patchutils at my disposal, and certainly for my first foray with git in anger it really worked well.  I'm also grateful that sqlite had something that I could create patchsets from easily, else I'd have had to do a lot more by hand.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:nasrat:41084</id>
    <link rel="alternate" type="text/html" href="http://nasrat.livejournal.com/41084.html"/>
    <link rel="self" type="text/xml" href="http://nasrat.livejournal.com/data/atom/?itemid=41084"/>
    <title>RPM Guide Available</title>
    <published>2005-11-03T22:22:50Z</published>
    <updated>2005-11-03T22:22:50Z</updated>
    <content type="html">I'm very pleased to announce that the Red Hat RPM Guide has been made&lt;br /&gt;available under the Open Publication Licence, Version 1.0.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fedora.redhat.com/docs/drafts/rpm-guide-en/"&gt;http://fedora.redhat.com/docs/drafts/rpm-guide-en/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is much more recent than Maximum RPM and gives a good starting&lt;br /&gt;point to work towards living documentation for RPM.  Although some&lt;br /&gt;sections - notably Chapter 7 requires a complete rewrite.  However I&lt;br /&gt;wanted to get it out in it's current form (basically as published plus&lt;br /&gt;errata).&lt;br /&gt;&lt;br /&gt;Participation through normal Fedora Documentation process:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fedora.redhat.com/projects/docs/"&gt;http://fedora.redhat.com/projects/docs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll be attempting to form a team to help edit/update content.  If you&lt;br /&gt;want to help please follow up to fedora-docs-list.</content>
  </entry>
</feed>
