<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Rhino Research</title>
    <description>Software architecture training and consulting</description>
    <link>http://rhinoresearch.com/</link>
    <atom:link href="http://rhinoresearch.com/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Sun, 05 Jul 2015 19:26:26 -0400</pubDate>
    <lastBuildDate>Sun, 05 Jul 2015 19:26:26 -0400</lastBuildDate>
    <generator>Jekyll v2.2.0</generator>
    
      <item>
        <title>Master software architecture</title>
        <description>&lt;p&gt;The &lt;em&gt;good news&lt;/em&gt; is that &lt;strong&gt;software design is no longer a black art&lt;/strong&gt; and the field has consolidated on a set of shared ideas as its foundation. Temperament and aptitude help, but it is now possible to teach developers the essentials of architectural design. The &lt;em&gt;bad news&lt;/em&gt; is that mainstream developers are just now starting to become aware of these ideas, yet the scale and complexity of systems has been steadily increasing year after year.&lt;/p&gt;

&lt;p&gt;Here are some insights to our philosophy:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Risk-driven architecting&lt;/strong&gt;. You can do just enough software architecture by focusing on risks and choosing corresponding design techniques. Your designs will vary in detail depending on how risky each area is for this project, perhaps deep on security but light on auditability.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Democratic approach&lt;/strong&gt;. Our courses are for developers and architects. Architecture is a kind of software design that all developers should understand, not just architects.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Emphasis on engineering&lt;/strong&gt;. Our courses are on how to design software, not on how to facilitate meetings. Soft skills are a compliment to design skills, not a substitute for engineering know-how.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Practical advice&lt;/strong&gt;. You will learn techniques that work in practice and learn anti-patterns to watch out for.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 23 May 2015 00:00:00 -0400</pubDate>
        <link>http://rhinoresearch.com/home/main</link>
        <guid isPermaLink="true">http://rhinoresearch.com/home/main</guid>
        
        
        <category>home</category>
        
      </item>
    
      <item>
        <title>Software Architecture and Design Courses at Rhino Research</title>
        <description>&lt;p&gt;Course participants will leave with a coherent mental framework of software architecture, helping them to reconcile business needs with implementation issues, identify risks, and successfully design systems.&lt;/p&gt;

&lt;h2 id=&quot;courses&quot;&gt;Courses&lt;/h2&gt;

&lt;p&gt;We offer a set of interlocking classes designed to suit your needs.  The shorter the course, the more general the intended audience.  Combining the two 3-day architecture courses yields the same content as the 5-day marathon course.  Splitting the training is recommended so that participants have an opportunity to try out the new techniques (and generate questions) before the advanced material.&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;Course&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;&lt;em&gt;Length&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;&lt;em&gt;% Lecture&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;&lt;em&gt;Audience&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;&lt;em&gt;Content&lt;/em&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;/training/dine-and-discover&quot;&gt;Dine and Discover&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;90 min&lt;/td&gt;
      &lt;td&gt;100%&lt;/td&gt;
      &lt;td&gt;Fully general&lt;/td&gt;
      &lt;td&gt;What and why of software architecture&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;/training/essence-of-software-architecture-course&quot;&gt;Essence of Software Architecture&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;1 day&lt;/td&gt;
      &lt;td&gt;90%&lt;/td&gt;
      &lt;td&gt;Mostly general&lt;/td&gt;
      &lt;td&gt;Dine and Discover + a tour of how architecture is done&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;/training/software-architecture-with-uml&quot;&gt;Software Architecture with UML&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;3 day&lt;/td&gt;
      &lt;td&gt;60%&lt;/td&gt;
      &lt;td&gt;Engineers&lt;/td&gt;
      &lt;td&gt;Essence of architecture + simplified how-to + exercises&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;/training/advanced-software-architecture-course&quot;&gt;Advanced Software Architecture&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;3 day&lt;/td&gt;
      &lt;td&gt;60%&lt;/td&gt;
      &lt;td&gt;Engineers&lt;/td&gt;
      &lt;td&gt;Adds realistic wrinkles + advanced techniques&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;/training/software-architecture-marathon&quot;&gt;Software Architecture Marathon&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;5 day&lt;/td&gt;
      &lt;td&gt;60%&lt;/td&gt;
      &lt;td&gt;Engineers&lt;/td&gt;
      &lt;td&gt;Combined Introduction + Advanced courses&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;/training/software-design&quot;&gt;Software Design&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;3 day&lt;/td&gt;
      &lt;td&gt;70%&lt;/td&gt;
      &lt;td&gt;Engineers&lt;/td&gt;
      &lt;td&gt;Module and component design (not architecture)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The lectures in the 3- and 5-day courses contain a running example and comprise about 60% of course time.  The remaining 40% are in-depth exercises designed to reinforce key concepts.&lt;/p&gt;

&lt;p&gt;Here’s a &lt;a href=&quot;http://www.thebinki.com/blog/?p=64&quot;&gt;review of a class&lt;/a&gt; in Houston.&lt;/p&gt;
</description>
        <pubDate>Fri, 22 May 2015 00:00:00 -0400</pubDate>
        <link>http://rhinoresearch.com/home/course-list/courses</link>
        <guid isPermaLink="true">http://rhinoresearch.com/home/course-list/courses</guid>
        
        
        <category>home</category>
        
        <category>course-list</category>
        
      </item>
    
      <item>
        <title>Model minded development</title>
        <description>&lt;p&gt;I gave a talk to the Princeton chapter of the ACM on Model Minded Development.  &lt;/p&gt;

&lt;div class=&quot;embed-responsive embed-responsive-16by9&quot;&gt;
  &lt;iframe class=&quot;embed-responsive-item&quot; src=&quot;https://docs.google.com/presentation/d/1WZlMqTgdM9a9DpID9jSnbfJEsA9QsAWUmqKOcfeHWio/embed?start=false&amp;amp;loop=false&amp;amp;delayms=3000&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot; mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Many slides have no text, so you’ll want to go to the &lt;b&gt;&lt;a href=&quot;https://docs.google.com/presentation/d/1WZlMqTgdM9a9DpID9jSnbfJEsA9QsAWUmqKOcfeHWio/edit?usp=sharing&quot;&gt;Full slide deck with speaker notes&lt;/a&gt;&lt;/b&gt;.  &lt;/p&gt;

&lt;h3 id=&quot;abstract&quot;&gt;Abstract&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Domain-Driven Design says that we should be mindful of domain models and embed them in our code.  &lt;/li&gt;
  &lt;li&gt;Design Patterns say that we should know a catalog of patterns so we can solve recurring problems that arise in OO code.  &lt;/li&gt;
  &lt;li&gt;Software Architecture says that unless we are mindful of large-scale patterns and models then our systems will not achieve the qualities we seek.  &lt;/li&gt;
  &lt;li&gt;Test-Driven Design imposes a structure on our code so that it can be more easily tested.  &lt;/li&gt;
  &lt;li&gt;Programming styles (functional, object-oriented, procedural, etc.) impose structure on our code. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The common denominator here is that software developers are expected
to keep in mind many abstract yet complex models that constrain the
code they write.  In some ways these constraints are a burden and in
other ways they are light that illuminates a path forward.&lt;/p&gt;

&lt;p&gt;I discussed an idea called Model Minded Development that generalizes
across DDD, Design Patterns, architecture, TDD, and coding styles.
The defining characteristic of senior software developers is their
facility with Model Minded Development and it enables them to operate
at an advanced level.&lt;/p&gt;

</description>
        <pubDate>Sat, 25 Apr 2015 12:54:46 -0400</pubDate>
        <link>http://rhinoresearch.com/blog/model-minded-development-princeton-2015</link>
        <guid isPermaLink="true">http://rhinoresearch.com/blog/model-minded-development-princeton-2015</guid>
        
        
        <category>blog</category>
        
        <category>models</category>
        
        <category>architecture</category>
        
      </item>
    
      <item>
        <title>What Agilists Should Know About Software Architecture</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://neverletdown.net&quot;&gt;Michael Keeling&lt;/a&gt; and I had a
video Hangout on Air today, chatting about the intersection of
software architecture and agile.&lt;/p&gt;

&lt;div class=&quot;embed-responsive embed-responsive-16by9&quot;&gt;
  &lt;iframe class=&quot;embed-responsive-item&quot; src=&quot;http://www.youtube.com/embed/uF9dlMIyy44&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Some of the topics discussed include: 3-tier architecture, YAGNI,
quality attributes, big design up front, little design up front,
design patterns, architecture patterns, walking skeletons, thin
vertical slices, spiral model, system metaphor, extreme programming
(XP), application frameworks, MVC, publish-subscribe, refactoring,
architectural refactoring, refactoring vs rework,
refactoring-to-patterns, lean thinking, last responsible moment,
keeping options open as long as possible, Michael Waterman (NZ),
cost-value-curve, “I’d love to have that problem”, architecture
mismatch, conscious design decisions.&lt;/p&gt;

</description>
        <pubDate>Mon, 17 Feb 2014 21:43:00 -0500</pubDate>
        <link>http://rhinoresearch.com/blog/hangout-what-agilists-should-know-about-software-architecture</link>
        <guid isPermaLink="true">http://rhinoresearch.com/blog/hangout-what-agilists-should-know-about-software-architecture</guid>
        
        
        <category>blog</category>
        
        <category>agile</category>
        
        <category>architecture</category>
        
        <category>hangout</category>
        
      </item>
    
      <item>
        <title>Video &amp; Lecture on Intro to Software Architecture</title>
        <description>&lt;p&gt;This lecture, recorded at the University of Colorado Boulder in September 2012, is an introduction to the major concepts of software architecture.  The audience consisted of 70 seniors majoring in computer science.  It is based on material taken from the book Just Enough Software Architecture.&lt;/p&gt;

&lt;div class=&quot;embed-responsive embed-responsive-16by9&quot;&gt;
  &lt;iframe class=&quot;embed-responsive-item&quot; src=&quot;http://www.youtube.com/embed/PliHAP5m0BE&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Most developers have no formal eduction in software architecture, yet
a system’s architecture has a big influence on its success.  Software
architecture has been intensively researched for more than twenty
years now and studying it will help you do a better job of designing
systems, give you names for the concepts and patterns, and help you
choose between competing designs.&lt;/p&gt;

&lt;!--break--&gt;

&lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/assets/pdf/Intro-to-SA-CUBoulder-2012-09-18.pdf&quot;&gt;Slides&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://http://www.amazon.com/Just-Enough-Software-Architecture-Risk-Driven/dp/0984618104&quot;&gt;Book hardback&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/e-book&quot;&gt;Book e-Book&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;topics&quot;&gt;Topics&lt;/h2&gt;

&lt;p&gt;Major topics covered in this lecture include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Architects focus on system qualities&lt;/li&gt;
  &lt;li&gt;Tradeoffs&lt;/li&gt;
  &lt;li&gt;Architecture, architecting, architects&lt;/li&gt;
  &lt;li&gt;Views&lt;/li&gt;
  &lt;li&gt;Quality attributes&lt;/li&gt;
  &lt;li&gt;Analysis&lt;/li&gt;
  &lt;li&gt;Standard notations&lt;/li&gt;
  &lt;li&gt;Guiderails&lt;/li&gt;
  &lt;li&gt;Architectural styles&lt;/li&gt;
  &lt;li&gt;Conceptual model&lt;/li&gt;
  &lt;li&gt;Engineering with models&lt;/li&gt;
  &lt;li&gt;Canonical model structure&lt;/li&gt;
  &lt;li&gt;Models and code&lt;/li&gt;
  &lt;li&gt;Process and risk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pacing of the lecture is considerably slower than when I give this
lecture to industry practitioners because undergraduates need to be
provided with more examples to ground the lessons.  This lecture was
just over 2 hours but with a different audience it would be about 75
minutes.&lt;/p&gt;

&lt;h2 id=&quot;exercise-designing-an-alarm-clock&quot;&gt;Exercise: Designing an alarm clock&lt;/h2&gt;

&lt;p&gt;Here is the exercise that goes along with the lecture.  The point of
the exercise is to focus attention not on the features of the alarm
clock – all alarm clocks have reasonably equivalent features for our
purposes – but instead on the &lt;em&gt;qualities&lt;/em&gt; and the ways the clocks can
fail.&lt;/p&gt;

&lt;p&gt;Why would you choose a battery-based clock over one that plugs into
the wall?  Well, LED clocks are easy to read at night but generally
start blinking 12:00 every time the power goes out.  So there is a
tradeoff between readability and reliability.  But of course the
battery can fail too…&lt;/p&gt;

&lt;p&gt;The class structures its choices according to the “rational
architecture choice” template, which looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Since X is a priority, we chose design Y, accepting downside Z.
&lt;/code&gt;&lt;/pre&gt;

&lt;div class=&quot;embed-responsive embed-responsive-16by9&quot;&gt;
  &lt;iframe class=&quot;embed-responsive-item&quot; src=&quot;http://www.youtube.com/embed/x30DcBfCJRI&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I hope you enjoy it.&lt;/p&gt;
</description>
        <pubDate>Sat, 22 Sep 2012 00:00:00 -0400</pubDate>
        <link>http://rhinoresearch.com/blog/cu-boulder-intro-to-software-architecture-video</link>
        <guid isPermaLink="true">http://rhinoresearch.com/blog/cu-boulder-intro-to-software-architecture-video</guid>
        
        
        <category>blog</category>
        
        <category>video</category>
        
        <category>architecture</category>
        
      </item>
    
      <item>
        <title>Updated Drupal site</title>
        <description>&lt;p&gt;Upgrading Drupal is always a bit stressful.  It’s easy to get a site
up and running and then customize it – but it’s exactly those
customizations that can get lost in the upgrade.  It appears to be all
back to normal but let me know if you find anything that seems broken.&lt;/p&gt;
</description>
        <pubDate>Sat, 15 Sep 2012 00:00:00 -0400</pubDate>
        <link>http://rhinoresearch.com/blog/updated-drupal-site</link>
        <guid isPermaLink="true">http://rhinoresearch.com/blog/updated-drupal-site</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Conceptual Models of Software Architecture</title>
        <description>&lt;p&gt;Earlier this year, I gave talks at the GOTO Copenhagen and GOTO
Amsterdam conferences.  A few folks at the conferences called it “the
dandelion talk” because there is an example in the middle of my
conceptual model of how to get rid of dandelions in your yard.  Of
course the real idea is that conceptual models of architecture can
help you become a better software engineer – the difference between
the 20-year-old version of yourself and the older, master-builder
version of yourself.  This is perhaps my favorite of all the talks
I’ve given, so I hope that you enjoy it too.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.infoq.com/presentations/Conceptual-Model-Software-Design&quot;&gt;&lt;img src=&quot;/assets/img/infoq-video.png&quot; /&gt;&lt;br /&gt;GOTO Copenhagen talk on
conceptual models of software architecture&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Opens on InfoQ website; no easily embeddable video – but going to
their site gives you both the video and the slides)&lt;/p&gt;
</description>
        <pubDate>Wed, 22 Aug 2012 00:00:00 -0400</pubDate>
        <link>http://rhinoresearch.com/blog/video/conceptual%20models/architecture/conceptual-models-of-software-architecture</link>
        <guid isPermaLink="true">http://rhinoresearch.com/blog/video/conceptual%20models/architecture/conceptual-models-of-software-architecture</guid>
        
        
        <category>blog</category>
        
        <category>video</category>
        
        <category>conceptual models</category>
        
        <category>architecture</category>
        
      </item>
    
      <item>
        <title>Architecture Hoisting - video of Atlanta talk</title>
        <description>&lt;p&gt;I presented my work on Architecture Hoisting last week in Atlanta. The
big idea is that software often relies on global design constraints
(guiderails) to achieve its qualities (e.g., reliability, security).&lt;/p&gt;

&lt;p&gt;But you’ve really only got two options for ensuring those guiderails:
(1) developer vigilance and (2) architecture hoisting. In the small
(say inside of a data structure), using vigilance to keep an invariant
is possible. In the large, architectural guiderails (self-imposed
constraints that simplify the software) are much harder to ensure, as
the recent remote exploit in Google Chrome (a use-after-free bug)
illustrates.&lt;/p&gt;

&lt;p&gt;The other option, architecture hoisting, has not been widely
recognized so this talk gives it a clear definition, shows examples of
it in use, and discusses its applicability and trade-offs.&lt;/p&gt;

&lt;h2 id=&quot;abstract&quot;&gt;Abstract&lt;/h2&gt;

&lt;p&gt;Software architecture focuses on quality attribute
requirements, such as scalability or performance, that are overall
properties of a system.  This talk describes Architecture Hoisting, a
a design technique where the architecture ensures an intensional
design constraint (i.e., a guiderail) to achieve a global property.
Discussed examples include the NASA JPL Mission Data System,
Enterprise Java Beans, and the Apache Portable Runtime.&lt;/p&gt;

&lt;div class=&quot;embed-responsive embed-responsive-16by9&quot;&gt;
  &lt;iframe class=&quot;embed-responsive-item&quot; src=&quot;http://www.youtube.com/embed/qQXDVZcScq4&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
        <pubDate>Sun, 18 Mar 2012 00:00:00 -0400</pubDate>
        <link>http://rhinoresearch.com/blog/architecture-hoisting-atlanta-video</link>
        <guid isPermaLink="true">http://rhinoresearch.com/blog/architecture-hoisting-atlanta-video</guid>
        
        
        <category>blog</category>
        
        <category>architecture</category>
        
        <category>hoisting</category>
        
        <category>video</category>
        
      </item>
    
      <item>
        <title>Speaking at Atlanta IASA, Weds 14th, 2012</title>
        <description>&lt;p&gt;I will be in Atlanta giving a talk on &lt;a href=&quot;http://www.iasaglobal.org/NewsBot.asp?MODE=VIEW&amp;amp;ID=416&quot;&gt;Architecture Hoisting next week
at the local IASA
chapter&lt;/a&gt;.  The
topic of architecture hoisting is in my book but I’ve had several
requests to dig into it further and this talk is the result.  Here’s
the talk abstract:&lt;/p&gt;

&lt;h3 id=&quot;solve-problems-by-hoisting-them-into-your-architecture&quot;&gt;Solve Problems by Hoisting Them into your Architecture&lt;/h3&gt;

&lt;p&gt;Architecture hoisting is an established technique that has only
recently been identified and named.  It is suitable when you have a
challenging design problem that requires consistency in the
implementation.  Architecture hoisting assigns responsibility for a
problem to the architecture itself with the intent of guaranteeing a
goal or property of the system.  Once a goal or property has been
hoisted into the architecture, developers should not need to write any
additional code to achieve it.&lt;/p&gt;
</description>
        <pubDate>Thu, 08 Mar 2012 00:00:00 -0500</pubDate>
        <link>http://rhinoresearch.com/blog/announce-atlanta-architecure-hoisting</link>
        <guid isPermaLink="true">http://rhinoresearch.com/blog/announce-atlanta-architecure-hoisting</guid>
        
        
        <category>blog</category>
        
        <category>architecture</category>
        
        <category>hoisting</category>
        
      </item>
    
      <item>
        <title>Book on sale:  Now just $19.50 with free shipping (limited time)</title>
        <description>&lt;p&gt;A little while ago, several cases of my books were being shipped to
Amazon by the US postal service but those cases went missing.  The
USPS claims to have never found them despite being well labeled and
indeed having an Amazon packing list inside the box.&lt;/p&gt;

&lt;p&gt;Fast forward to now and those books are showing up on Amazon and eBay.
But all is not well!  It seems they were sold by the USPS to
scavengers who have put them up for sale.  I’d thought that this would
be no problem, but it appears that Amazon does not like it when others
sell books below their wholesale price, so they’re penalizing my book
and selling it at list price – but nobody pays retail prices for
books.&lt;/p&gt;

&lt;p&gt;So, rather than let the scoundrels profit, I’m letting readers profit.
&lt;a href=&quot;http://www.amazon.com/gp/offer-listing/0984618104&quot;&gt;I’m selling the book myself as an Amazon Seller for
$19.50&lt;/a&gt; until the
scavenged inventory makes its way through the system.  So grab
yourself an extra one and tell your friends since I’m not sure how
long this will last.&lt;/p&gt;

&lt;p&gt;–George&lt;/p&gt;
</description>
        <pubDate>Tue, 06 Mar 2012 00:00:00 -0500</pubDate>
        <link>http://rhinoresearch.com/blog/book-on-sale-2012-03-06</link>
        <guid isPermaLink="true">http://rhinoresearch.com/blog/book-on-sale-2012-03-06</guid>
        
        
        <category>blog</category>
        
        <category>book</category>
        
      </item>
    
  </channel>
</rss>

