<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="AboutClose" xml:space="preserve">
    <value>Close</value>
  </data>
  <data name="AboutDescription" xml:space="preserve">
    <value>&lt;Section xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;
&lt;Paragraph&gt;
&lt;Bold&gt;"Do you twig?"&lt;/Bold&gt; is an ecological quiz that tries to arouse general interest in forests and ecological problems caused by deforestation by providing startling, funny or otherwise interesting information in the form of a question and answer game. If you only want to take a quick peek at the application, please read at least the following three important points:&lt;LineBreak /&gt;
&lt;LineBreak /&gt;
• &lt;Bold&gt;Resolution&lt;/Bold&gt;: the quiz will work with small window sizes; however, for a better experience and to avoid that the trees grow over the quiz questions and buttons over time, a window size of 1024x768 pixels or higher is recommended.&lt;LineBreak /&gt;
• &lt;Bold&gt;Known issue&lt;/Bold&gt;: switching between browser tabs or minimizing the window causes the tree rendering to start over. This is by design, to work around a visual glitch in the rendering technique that would occur otherwise.&lt;LineBreak /&gt;
• &lt;Bold&gt;CPU load&lt;/Bold&gt;: although heavily optimized, rendering the trees requires quite some CPU power. I have tried to target mid-range computer specs and to test on different platforms, but you may still run into performance problems.&lt;LineBreak /&gt;
&lt;LineBreak /&gt;
Feel free to provide feedback and comments as well as ask questions by email: &lt;Hyperlink NavigateUri="mailto:peter.kuhn@pitorque.de" TargetName="_blank"&gt;Peter.Kuhn@pitorque.de&lt;/Hyperlink&gt;. Thank you and have fun! :-)&lt;LineBreak /&gt;
&lt;LineBreak /&gt;
The following paragraphs contain more technical information on the project that may be of interest if you are a Silverlight developer.&lt;LineBreak /&gt;
&lt;/Paragraph&gt;
&lt;Paragraph&gt;
&lt;Bold&gt;For developers&lt;/Bold&gt;&lt;LineBreak /&gt;
I love forests, mostly because green is my favorite color :-) and because I like the quiet in the woods. Over the years I have visited forests in every part of the world I went to, from Canada to Japan, and when I heard about the Eco Contest I had the idea to create a small application that provides both some entertainment and a visual gimmick. Development of the application as it is took around 70 hours, from a proof of concept for the tree rendering to cleaning up, commenting and refactoring the code a bit in the end.&lt;LineBreak /&gt;
&lt;LineBreak /&gt;
&lt;Italic&gt;The trees&lt;/Italic&gt;&lt;LineBreak /&gt;
Although the application is a round trip to several of Silverlight's features, like using MVVM, multiple repositories support (RIA Services + embedded XML), visual states, behaviors, isolated storage and many more, the part people are most interested in probably is the tree rendering. Each of the trees is constructed from several thousands of visual elements. The theoretical maximum number of individiual path elements exceeds 80,000 per tree, but due to various randomizations and variations in the construction process the typical number of elements for every tree is around 5,000 for the branches and 10,000-15,000 for the leaves.&lt;LineBreak /&gt;
&lt;LineBreak /&gt;
When I wrote the first proof of concept for the tree rendering, performance was horrible. Creating the tree structures alone took five to ten seconds at 100% CPU load on my computer, and during the rendering the browser often was completely frozen. In several iterations I had to give up a lot of the nice and fancy things you would usually use in a storybook Silverlight application design; I started creating visual elements in code instead of using user controls, I introduced object pooling to lower the costs of object creation and found a whole lot of additional optimizations to increase the performance to what you can experience now. If you are interested in a detailed explanation of the concepts, I invite you to read my blog post about it here: &lt;Hyperlink NavigateUri="http://www.pitorque.de/MisterGoodcat/post/How-I-let-the-trees-grow.aspx" TargetName="_blank"&gt;Mister Goodcat's blog post on the tree rendering&lt;/Hyperlink&gt; (available March 3rd!).&lt;LineBreak /&gt;
&lt;LineBreak /&gt;
&lt;Italic&gt;Used tools&lt;/Italic&gt;&lt;LineBreak /&gt;
The tools used to create the software were:&lt;LineBreak /&gt;
• Visual Studio 2010&lt;LineBreak /&gt;
• Expression Blend 4&lt;LineBreak /&gt;
• SQL Server 2008 Express&lt;LineBreak /&gt;
• &lt;Hyperlink NavigateUri="http://mvvmlight.codeplex.com/" TargetName="_blank"&gt;MVVM Light&lt;/Hyperlink&gt; by Laurent Bugnion&lt;LineBreak /&gt;
• The &lt;Hyperlink NavigateUri="http://writeablebitmapex.codeplex.com/" TargetName="_blank"&gt;WriteableBitmapEx project&lt;/Hyperlink&gt; by Rene Schulte&lt;LineBreak /&gt;
• &lt;Hyperlink NavigateUri="http://www.silverlight.net/getstarted/riaservices/" TargetName="_blank"&gt;RIA Services&lt;/Hyperlink&gt;&lt;LineBreak /&gt;
• Paint .NET&lt;LineBreak /&gt;
• Anime Studio Pro 7&lt;LineBreak /&gt;
• Many little helpers and utilities&lt;LineBreak /&gt;
• A constant supply of Swabian pockets, coffee and music by Charon&lt;LineBreak /&gt;
&lt;LineBreak /&gt;
I'd like to thank everyone who kindly helped with testing on different computer configurations and provided feedback on the performance and features, in particular Jessi and Alex.&lt;LineBreak /&gt;
&lt;LineBreak /&gt;
Thanks for reading through all this stuff.
&lt;/Paragraph&gt;
&lt;/Section&gt;</value>
  </data>
  <data name="AboutTitle" xml:space="preserve">
    <value>About</value>
  </data>
  <data name="MainErrorTitle" xml:space="preserve">
    <value>Error</value>
  </data>
  <data name="QuestionsAnswerIsCorrect" xml:space="preserve">
    <value>Your answer is correct!</value>
  </data>
  <data name="QuestionsAnswerIsWrong" xml:space="preserve">
    <value>Your answer is wrong.</value>
  </data>
  <data name="QuestionsExplanationSourceLink" xml:space="preserve">
    <value>External link to source</value>
  </data>
  <data name="QuestionsFinish" xml:space="preserve">
    <value>Finish</value>
  </data>
  <data name="QuestionsLoadError" xml:space="preserve">
    <value>An error occurred while loading the questions.
Please try again later.</value>
  </data>
  <data name="QuestionsLoading" xml:space="preserve">
    <value>Loading...</value>
  </data>
  <data name="QuestionsNextQuestion" xml:space="preserve">
    <value>Next question</value>
  </data>
  <data name="QuestionsNumberXOfY" xml:space="preserve">
    <value>Question {0} of {1}</value>
  </data>
  <data name="QuestionsShowAnswer" xml:space="preserve">
    <value>Show answer</value>
  </data>
  <data name="ResultAnsweredQuestionsXOfY" xml:space="preserve">
    <value>You answered {0} of {1} questions correctly.</value>
  </data>
  <data name="ResultBackHome" xml:space="preserve">
    <value>Back Home</value>
  </data>
  <data name="ResultLoadError" xml:space="preserve">
    <value>An error occurred while loading your result.
Please try again later.</value>
  </data>
  <data name="ResultReplay" xml:space="preserve">
    <value>Replay the quiz for a different set of questions!</value>
  </data>
  <data name="ResultYourRankIs" xml:space="preserve">
    <value>Your rank is</value>
  </data>
  <data name="WelcomeLearnMore" xml:space="preserve">
    <value>If you want to learn more about "Do you twig?",
please refer to the About button in the upper left corner.</value>
  </data>
  <data name="WelcomeStartQuiz" xml:space="preserve">
    <value>Start Quiz</value>
  </data>
  <data name="WelcomeSubTitle" xml:space="preserve">
    <value>An ecological tour in questions and answers</value>
  </data>
  <data name="WelcomeTitle" xml:space="preserve">
    <value>Welcome!</value>
  </data>
</root>