<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Tech-Blog: Category technology</title>
    <link>/articles/category/technology</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Mike Pierson's technology blog</description>
    <item>
      <title>On Bootstrapping Active Directory for EC2's Windows Images</title>
      <description>&lt;p&gt;Amazon's EC2 service now includes a number of &lt;a href='http://aws.amazon.com/windows/'&gt;Windows Server 2003 images&lt;/a&gt;, starting at $0.125 per hour.  These Microsoft sanctioned images are a great alternative to the &lt;a href='http://www.howtoforge.com/amazon_elastic_compute_cloud_qemu'&gt;QEMU shenanigans&lt;/a&gt; from the past.&lt;/p&gt;

&lt;p&gt;One of the advantages of Amazon's EC2 service is the ability to provision virtual machines via scripts, and without human interaction.  Here's a description of my approach to bringing an instance of Active Directory online via script.&lt;/p&gt;

&lt;p&gt;Prerequisites:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;Amazon EC2 account
 &lt;li&gt;command line RDP client (e.g. rdesktop)
 &lt;li&gt;dcpromo answer file (I found Daniel Petri's &lt;a href='http://www.petri.co.il/unattended_installation_of_active_directory.htm'&gt;article&lt;/a&gt; helpful)
&lt;/ul&gt;

&lt;p&gt;Your RDP client will need to support two features: file sharing, and remote script execution.  I've found the Mac RDP clients tough to use via script, but Ubuntu's &lt;i&gt;rdesktop&lt;/i&gt; works just fine in a VirtualBox VM.&lt;/p&gt;

&lt;h3&gt;Starting the Windows Server VM&lt;/h3&gt;
&lt;p&gt;Choose the &lt;a href='http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1792&amp;categoryID=209'&gt;Basic Microsoft Windows Server 2003&lt;/a&gt; image or the &lt;a href='http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1793&amp;categoryID=209'&gt;Basic Microsoft Windows Server 2003 with Authentication Services&lt;/a&gt; image; a small standard instance type should be sufficient.&lt;/p&gt;
&lt;p&gt;(The Firefox &lt;a href='http://sourceforge.net/projects/elasticfox/'&gt;elasticfox&lt;/a&gt; EC2 plugin makes it easy to manage windows instances.)&lt;/p&gt;

&lt;p&gt;Once your instance is online, you'll need the public DNS name and administrator password for the instance.&lt;/p&gt;

&lt;h3&gt;Installing Active Directory&lt;/h3&gt;

&lt;p&gt;Normally, AD is installed and configured by running &lt;i&gt;dcpromo&lt;/i&gt; and working through the  relevant dialog boxes.  Unattended installs are supported via the &lt;i&gt;/answer&lt;/i&gt; argument:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
   C:&gt; dcpromo /answer:%path_to_answer_file%
 &lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;Running this command on an EC2 instance poses two challenges: how to run a windows command remotely from a script, and how to copy our &lt;i&gt;dcpromo&lt;/i&gt; answer file from our local host to EC2.   Fortunately RDP solves both problems.  Using rdesktop one can define a script to run on session startup, and a local folder to share with the remote host.&lt;/p&gt;
&lt;p&gt;Install Active Directory remotely using &lt;i&gt;rdesktop&lt;/i&gt; as follows:&lt;/p&gt;
 
&lt;p&gt;
 &lt;pre&gt;
   mpierson:$ rdesktop -r disk:share=/home/mpierson/winshare/ \
     -u Administrator -p &amp;lt;admin_password&amp;gt; \
     -s "dcpromo /answer:\\\\tsclient\\share\\dcpromo.install" \
     &amp;lt;windows_hostname&amp;gt;
 &lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;where &lt;i&gt;/home/mpierson/winshare/dcpromo.install&lt;/i&gt; is the local path of the &lt;i&gt;dcpromo&lt;/i&gt; answer file for your AD configuration.   (The RDP file share defined by the &lt;i&gt;-r&lt;/i&gt; argument will appear in the Windows host network share list with a host name of &lt;i&gt;tsclient&lt;/i&gt;.)&lt;/p&gt; 

&lt;p&gt;FWIW, here is an &lt;a href='http://qdvt1jwcv8mbupt2.tech-blog.s3.amazonaws.com/dcpromo.install'&gt;example&lt;/a&gt; answer file for &lt;i&gt;dcpromo&lt;/i&gt;.&lt;/p&gt;

&lt;h3&gt;Access Your AD Domain&lt;/h3&gt;

&lt;p&gt;Use &lt;i&gt;rdesktop&lt;/i&gt; to access your new AD domain as follows:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
   mpierson:$ rdesktop 
     -u Administrator -p &amp;lt;admin_password&amp;gt; \
     -d &amp;lt;win_domain_name&amp;gt; \
     &amp;lt;windows_hostname&amp;gt;
 &lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;where &lt;i&gt;win_domain_name&lt;/i&gt; is the DomainNetBiosName defined in your &lt;i&gt;dcpromo&lt;/i&gt; answer file.&lt;/p&gt;


</description>
      <pubDate>Wed, 29 Apr 2009 09:09:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:c8b4eed4-c5e4-4d6a-a2f9-19898c874a0e</guid>
      <author>Mike</author>
      <link>/articles/2009/04/29/on-bootstrapping-active-directory-on-ec2s-windows-server-2003-image</link>
      <category>technology</category>
      <category>ec2</category>
      <category>windows</category>
      <category>activedirectory</category>
      <trackback:ping>/articles/trackback/464</trackback:ping>
    </item>
    <item>
      <title>On Bootstrapping Oracle's 10g XE EC2 Image</title>
      <description>&lt;p&gt;Oracle has made a &lt;a href='http://www.oracle.com/technology/tech/cloud/index.html'&gt;number of their products&lt;/a&gt; available for use on Amazon's &lt;a href='http://aws.amazon.com/ec2/'&gt;EC2&lt;/a&gt; service. Unfortunately, each instance of their 10g XE RDBMS image must be &lt;a href='http://www.oracle.com/technology/tech/cloud/demos/oracle_on_ec2_viewlet_swf.htm'&gt;configured manually&lt;/a&gt; via ssh before use.&lt;/p&gt;

&lt;p&gt;Turns out that the &lt;a href='http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1720&amp;categoryID=205'&gt;10g XE&lt;/a&gt; image hijacks the bash profile script to force manual configuration.  If one was motivated to enable unattended configuration of the image, the bash profile script could be un-hijacked with scp:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
  mpierson:$ scp -i EC2_KEY my-bash-profile.sh root@&amp;lt;EC2-HOST-NAME&amp;gt;:/root/.bash_profile
 &lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;BTW, the hijack script overwritten by &lt;i&gt;scp&lt;/i&gt; above is also a good starting point for an script that would bring the database online in an unattended scenario.  Here's what it does:&lt;/p&gt;
&lt;ol&gt;
 &lt;li&gt;force acceptance of Oracle EC2 license
 &lt;li&gt;force change to &lt;i&gt;oracle&lt;/i&gt; system user
 &lt;li&gt;set Oracle environment, including host name
 &lt;li&gt;force change to SYSTEM and SYS oracle db accounts
&lt;/ol&gt;


</description>
      <pubDate>Tue, 28 Apr 2009 12:37:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:03134ac4-cefe-4372-80e3-7f7739b95538</guid>
      <author>Mike</author>
      <link>/articles/2009/04/28/on-bootstrapping-oracles-10g-xe-ec2-image</link>
      <category>technology</category>
      <category>ec2</category>
      <category>oracle</category>
      <trackback:ping>/articles/trackback/463</trackback:ping>
    </item>
    <item>
      <title>Extracting IdM Configuration from a Running Instance</title>
      <description>&lt;p&gt;An IdM customer recently found themselves in a pickle: they wanted to integrate additional resources into their IdM deployment, but did not have access to the original configuration files or CBE.&lt;/p&gt;

&lt;p&gt;Here are the steps we took to extract configuration from their production repository:&lt;/p&gt;
&lt;ol&gt;
 &lt;li&gt;export configuration from running system via lh
 &lt;li&gt;split export file, one file per top level element
 &lt;li&gt;mangle XML objects (remove date based attributes, GUID etc)
 &lt;li&gt;repeat above for reference, out-of-the-box, IdM deployment
 &lt;li&gt;diff XML object sets (custom deployment vs. reference deployment)
&lt;/ol&gt;

&lt;p&gt;And the details...&lt;/p&gt;

&lt;h3&gt;Export Configuration&lt;/h3&gt;

&lt;p&gt;Use the lh command to extract the running configuration:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
   mpierson:$ export WSHOME=/var/lib/tomcat/webapps/idm
   mpierson:$ $WSHOME/bin/lh console -c "export /tmp/export.xml"
 &lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: the export process may take some time, and consume significant cycles on the host and the repo; the resulting export.xml file will be of the order of 100Mb, depending on the number of user/resource accounts.&lt;/p&gt;


&lt;h3&gt;Split Export File&lt;/h3&gt;

&lt;p&gt;To facilitate comparison of the custom configs to the reference deployment, split the export file into many files, one per top level waveset element:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
   mpierson:$ xsltproc split-waveset.xslt /tmp/export.xml
 &lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;We used a &lt;a href='http://qdvt1jwcv8mbupt2.tech-blog.s3.amazonaws.com/split-waveset.xslt'&gt;simple XSL transform&lt;/a&gt; that writes each child of the top level &lt;i&gt;waveset&lt;/i&gt; element to a file, using file names based on name or id attributes, if available.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: the example XSL transform will write the files to a directory called 'split', and there will potentially be &lt;b&gt;many&lt;/b&gt; files created.&lt;/p&gt;

&lt;h3&gt;Mangle XML Objects&lt;/h3&gt;

&lt;p&gt;Again, to facilitate comparison of the custom config objects to the reference deployment, we mangled the split XML files to remove date based attributes, owner/modifier attributes, and GUIDs:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
   mpierson:$ ./remove-transient-attrs.sh split-dir idm-key-prefix
 &lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;... where &lt;i&gt;split-dir&lt;/i&gt; is the name of the directory containing XML files to be cleansed, and &lt;i&gt;idm-key-prefix&lt;/i&gt; is the first 5-6 characters of the instance ID prefix (i.e. '123456' in "#ID#123456789ABC...")&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: here is the &lt;a href='http://qdvt1jwcv8mbupt2.tech-blog.s3.amazonaws.com/remove-transient-attrs.sh'&gt;bash script&lt;/a&gt; that utilized &lt;i&gt;find&lt;/i&gt; and &lt;i&gt;perl&lt;/i&gt; to strip the relevant attributes.&lt;/p&gt;

&lt;h3&gt;Repeat for Reference Deployment&lt;/h3&gt;

&lt;p&gt;Repeat steps 1 thru 3 to produce an reference set of waveset objects.  Ensure that you reference IdM deployment matches the version, including hotfixes, of the running instance being analyzed.&lt;/p&gt;

&lt;h3&gt;Catalog Differences in Custom Deployment&lt;/h3&gt;

&lt;p&gt;We applied &lt;i&gt;diff&lt;/i&gt; recursively over the two sets of waveset objects:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
   mpierson:$ diff -N -r --brief -w reference-elements/ custom-elements/
 &lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;The results of a diff will likely include a number of run-time objects, including User, Account, XmlData, and Syslog elements.  Filter run-time objects from the diff for a better view of configuration:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
   mpierson:$ diff -N -r --brief -w reference-elements/ custom-elements/ |\
    grep -v Account| grep -vi syslog |\
    grep -v TaskInstance | grep -v "User-" |\
    grep -v TaskResult | grep -v XmlData |\
    grep -v WorkItem
 &lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;We used a similar approach to produce a list of the XML objects that define the IdM configuration:&lt;/p&gt;
&lt;p&gt;
 &lt;pre&gt;
   mpierson:$ diff -N -r --brief -w reference-elements/ custom-elements/ |\
    grep -v Account| grep -vi syslog |\
    grep -v TaskInstance | grep -v "User-" |\
    grep -v TaskResult | grep -v XmlData |\
    grep -v WorkItem |\
    awk '{print $4;}' &gt; files.txt
 &lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes&lt;/b&gt;: the results of this process provides a starting point for a rigorous reverse engineering endeavour. Manual inspection of the results, and extensive testing are recommended!&lt;/p&gt; 




</description>
      <pubDate>Fri, 24 Apr 2009 22:16:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:5ce192e5-9cf2-4199-ba12-0295b39e091f</guid>
      <author>Mike</author>
      <link>/articles/2009/04/24/extracting-idm-configuration-from-a-running-instance</link>
      <category>technology</category>
      <category>idm</category>
      <category>sun</category>
      <trackback:ping>/articles/trackback/461</trackback:ping>
    </item>
    <item>
      <title>Amazon EC2 Diary I</title>
      <description>&lt;p&gt;I've been an Amazon &lt;a href='http://aws.amazon.com/ec2/'&gt;EC2&lt;/a&gt; evangelist for the past couple of years.  The EC2 'cloud computing' service is an early entry in the on-demand hosting market, featuring practically unlimited computing resources (CPUs, storage and bandwidth) provisioned in real time via public APIs.&lt;/p&gt;

&lt;p&gt;With a tip of the hat to Tim's &lt;a href='http://www.tbray.org/ongoing/When/200x/2008/12/18/Android-Diary'&gt;Android diary&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;I suspect that my experiences are going to be shared by quite a few people in the not-too-distant future, so why not record them?&lt;/blockquote&gt;

&lt;p&gt;My experience with EC2 involves deployment of JES environments, typically for development and testing of &lt;a href='http://en.wikipedia.org/wiki/Identity_access_management'&gt;IAM&lt;/a&gt; applications.  In future posts I'll share my approach and some concrete examples of how I have leveraged EC2 to save time and money.&lt;/p&gt;

&lt;p&gt;For now, a short summary of the EC2 features that have provided value.&lt;/p&gt;

&lt;h3&gt;Per-Hour Billing&lt;/h3&gt;
&lt;p&gt;Most of us do not work 24 hrs per day seven days per week, so it makes not to pay for dedicated computing resources when developing applications.  The EC2 rates are reasonable relative to commercial hosting services, and I suspect an order of magnitude more economical than buying servers and deploying traditional virtual hosts.&lt;/p&gt;

&lt;h3&gt;Multi-OS Support&lt;/h3&gt;
&lt;p&gt;The EC2 service started with Linux OS support only, but has since added Solaris and Windows Server 2003.  I use all three.&lt;/p&gt;

&lt;h3&gt;Scriptable API&lt;/h3&gt;
&lt;p&gt;There are no online forms, or phone calls, or visits to Best Buy.  Provisioning of EC2 resources can be fully automated.  Use bash, Java, Perl, Ruby..., whatever.&lt;/p&gt;  

&lt;h3&gt;Community &amp; Tools&lt;/h3&gt;
&lt;p&gt;There are open source API libraries in your favourite language, commercial management utilities, a Firefox plugin available.  And of course there are many pre-built EC2 images available to the public.&lt;/p&gt;

</description>
      <pubDate>Wed, 07 Jan 2009 21:30:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:291e6873-4bb3-4db2-812a-182944ba84e0</guid>
      <author>Mike</author>
      <link>/articles/2009/01/07/amazon-ec2-diary-i</link>
      <category>technology</category>
      <category>amazon</category>
      <category>ec2</category>
      <trackback:ping>/articles/trackback/435</trackback:ping>
    </item>
    <item>
      <title>iPod video</title>
      <description>&lt;p&gt;The worst kept secret is now &lt;a href="http://www.wired.com/news/mac/0,2125,69193,00.html?tw=rss.GAD"&gt;public&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Will the video iPod move mainstream video off of cable?  Maybe not.  But it may be the trigger for mainstream video blogs and pod casts, downloadable TV shows, live video.  Something big is going to happen.  It will also be interesting to see if/how Sony reacts with their PSP.&lt;/p&gt;

&lt;p&gt;There may be an opportunity for a bloglines-like app for notification of new video content -- an RSS based TV guide.  Or maybe a Flickr for home video?&lt;/p&gt;


</description>
      <pubDate>Thu, 13 Oct 2005 11:04:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:1d53fc75-2777-4397-a894-a7f79dfc4bf9</guid>
      <author>Mike</author>
      <link>/articles/2005/10/13/ipod-video</link>
      <category>technology</category>
      <category>blogs</category>
      <category>media</category>
      <category>web</category>
      <category>arts + entertainment</category>
    </item>
    <item>
      <title>Web quickies</title>
      <description>
&lt;p&gt;Some tidbits from my &lt;a href="http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt; RSS &lt;a href="http://www.bloglines.com/public/mpierson"&gt;subscriptions&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://rnd.historicalfact.com/phonetags/"&gt;Phonetags&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Via &lt;a href="http://www.smartmobs.com"&gt;Smart Mobs&lt;/a&gt;, Phonetags allows cell phone users to create bookmarks for &lt;a href="http://www.bbc.co.uk/6music/index.shtml?logo"&gt;BBC6&lt;/a&gt; radio content, complete with metadata.  A clever way to create playlists for users &amp;rsquo;on the go&amp;rsquo;, and a taste of what is to come as radio and TV merge with Internet enabled mobile devices.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://metaatem.net/words/In-Touch"&gt;Spell with Flickr&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://flickr.com/"&gt;Flickr&lt;/a&gt;, one of the leading online photo organizers, opened their &lt;a href="http://flickr.com/services/api/"&gt;API&lt;/a&gt; some time ago, allowing third party applications to flourish.  Spelling with images is a little cheezy, but it&amp;rsquo;s a start (note the smart URI for the In-Touch example). Amazon, one of the first to open their API, can do something similar with &lt;a href="http://amaztype.tha.jp/US/Books/Title?q=In%2DTouch"&gt;conver art&lt;/a&gt;.  Via  &lt;a href="http://www.smartmobs.com"&gt;Smart Mobs&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://www.ysearchblog.com/archives/000087.html"&gt;Yahoo Mobile RSS&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Yahoo has added RSS aggregation to it&amp;rsquo;s list of &lt;a href="http://mobile.yahoo.com/"&gt;mobile offerings&lt;/a&gt;.  The UI seems a little primitive, although it&amp;rsquo;s tough to comment much without seeing the aggregator in action. See also the Yahoo news &lt;a href="http://news.yahoo.com/news?tmpl=story&amp;u=/cmp/20050311/tc_cmp/159401003"&gt;article&lt;/a&gt;.  I&amp;rsquo;d like to hear comments from anyone who uses Yahoo on their mobile. Via &lt;a href="http://www.mmoom.com/"&gt;MMOM&lt;/a&gt;.&lt;/p&gt;

</description>
      <pubDate>Thu, 17 Mar 2005 12:09:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:035f70dece6f7f03c780bfdd47838842</guid>
      <author>mop</author>
      <link>/articles/2005/03/17/htmlQuickies-3</link>
      <category>technology</category>
      <category>web</category>
      <trackback:ping>/articles/trackback/113</trackback:ping>
    </item>
    <item>
      <title>Foray into 64-bit computing</title>
      <description>

&lt;p&gt;A summary of my experience to date with AMD&amp;rsquo;s 64-bit platform...&lt;/p&gt;

&lt;p&gt;AMD has been developing 64-bit processors since 1999 or so, and released their first commercial chips in 2003.  Large word systems have been around for some time (SPARC, MIPS, etc.), so why now and why AMD?  Much of the recent interest in 64-bit systems is due to the scaling of commodity hardware - processors are fast and memory is cheap.  In theory, fast hardware will diminish the overhead associated with larger data chunks and registers, and 64-bit systems can utilize large amounts of RAM.  The new AMD processors are interesting because they are backward compatible with Intel 32-bit instruction sets (i.e. you can use binaries compiled for x86) and because the chips are priced to compete with 32-bit commodity hardware.&lt;/p&gt;

&lt;h3&gt;32-bit emulation&lt;/h3&gt;
&lt;p&gt;Is it marketing hype or is AMD64&amp;rsquo;s backwards compatibility a stroke of genius. Perhaps on a desktop, where you&amp;rsquo;re running a mix of compiled and commercial software it&amp;rsquo;ll be nice to have a choice.  The reality is probably not that simple, but I suspect OSs will adapt.  On servers, I suspect that most 64-bit systems will run in a pure 64-bit environment.&lt;/p&gt;

&lt;h3&gt;larger address space&lt;/h3&gt;
&lt;p&gt;The AMD address space is larger than conventional systems (40-bit, I think) allowing many gigabytes of RAM (terrabytes?) to be addresses without funky munging that is required in 32-bit systems. The 4GB address space of 32-bit systems is becoming a practical limit in today&amp;rsquo;s commodity systems.  This, I think, is AMD64&amp;rsquo;s current sweet spot.&lt;/p&gt;

</description>
      <pubDate>Thu, 12 Aug 2004 11:00:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:68017d8e8e9771c6ff75929ff77a0afe</guid>
      <author>mop</author>
      <link>/articles/2004/08/12/amd64</link>
      <category>technology</category>
      <trackback:ping>/articles/trackback/103</trackback:ping>
    </item>
    <item>
      <title>NetGear router upgrade</title>
      <description>
&lt;p&gt;If anyone else is having a hard time ugrading the firmware of their NetGear MR814 wireless router using Mozilla/Firefox, then Marty might have the &lt;a href="http://www.martian.org/marty/archives/000956.html"&gt;answer&lt;/a&gt;.  The trick is to include the &lt;i&gt;Upgrade=" Upload "&lt;/i&gt; parameter.&lt;/p&gt;

</description>
      <pubDate>Fri, 30 Jul 2004 21:53:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:b73cdd18eb5e26d29f83a1c261944649</guid>
      <author>mop</author>
      <link>/articles/2004/07/30/netgearRouter</link>
      <category>technology</category>
      <trackback:ping>/articles/trackback/123</trackback:ping>
    </item>
  </channel>
</rss>
