<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>cmiles - blog</title>
	<atom:link href="http://cmiles.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://cmiles.info</link>
	<description>Charles Miles - Tucson Hiking, Outside and Adventures, Excel, .net, Life</description>
	<lastBuildDate>Sun, 02 May 2010 23:03:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='cmiles.info' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/cc481128f2d984c4a795b563bcae7ec9?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>cmiles - blog</title>
		<link>http://cmiles.info</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://cmiles.info/osd.xml" title="cmiles - blog" />
	<atom:link rel='hub' href='http://cmiles.info/?pushpress=hub'/>
		<item>
		<title>My Bike Commuting Setup!</title>
		<link>http://cmiles.info/2010/05/02/my-bike-commuting-setup/</link>
		<comments>http://cmiles.info/2010/05/02/my-bike-commuting-setup/#comments</comments>
		<pubDate>Sun, 02 May 2010 23:03:00 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[Bicycle]]></category>
		<category><![CDATA[BikeCommuting]]></category>
		<category><![CDATA[Tucson]]></category>

		<guid isPermaLink="false">https://cmiles.wordpress.com/2010/05/02/my-bike-commuting-setup/</guid>
		<description><![CDATA[I have been commuting for over 5 years now! I am not a bike or bike gear expert, but I have fun and get great ideas from other rider’s setups/gear/ideas so I thought I would share my current gear list! &#160; Bike: Volea Sport with Volae Carbon seat – This is a beautiful machine! I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=140&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I have been commuting for over 5 years now! I am not a bike or bike gear expert, but I have fun and get great ideas from other rider’s setups/gear/ideas so I thought I would share my current gear list!</p>
<p>&#160;<a href="http://www.flickr.com/photos/cmiles/4572145677/"><img src="http://s3.amazonaws.com:80/camiles_WebImages/2010_ADTCAM/1004 Volea Recumbet from the front.JPG" width="456" height="607" /></a></p>
<p>Bike:</p>
<p><a href="http://www.volaerecumbents.com/">Volea</a> <a href="http://www.volaerecumbents.com/2009/volae_sport.php">Sport</a> with <a href="http://www.hostelshoppe.com/cgi-bin/readitem.pl?Accessory=1089843061">Volae Carbon seat</a> – This is a beautiful machine! I am a convert to this style of bike and find it more comfortable and fun than a diamond frame for my daily commute. If you happen to be in Tucson <a href="http://www.ajobikes.com/">Ajo Bikes</a> has a nice collection of recumbents… Nothing (no matter how amazing) is going to work for everyone in every situation. After riding my Volea for close to 9 months I would recommend it without hesitation for commuting in Tucson, but would encourage anyone who was interested to think about: </p>
<ul>
<li>You won’t be hopping curbs with this style bike – it is not for every style of riding… </li>
<li>Parking can be slightly more complicated (not much, but squeezing into a crowded rack is harder or maybe even impossible depending on the style of rack). </li>
<li>Get ready to be noticed! You are NOT going to blend in and if questions, comments,&#160; strange stares, shouts, laughter and fun conversations are not your cup of tea you will be better off with another bike. </li>
<li>I have not found many very tire choices for wider tires for the 650c wheels that come on many Volea models (skinny racing tires are no problem…) – you might consider choices such as the <a href="http://www.volaerecumbents.com/2009/volae_expedition.php">Volae Expedition</a>/<a href="http://www.volaerecumbents.com/2009/volae_expeditionpro.php">Expedition Pro</a> instead of the <a href="http://www.volaerecumbents.com/">Volea</a> <a href="http://www.volaerecumbents.com/2009/volae_sport.php">Sport</a> for 26” wheels/more tire options. </li>
</ul>
<p>Other Brands – If you are interested in this style bike I would recommend a look at the bikes at the <a href="http://www.hostelshoppe.com/recumbent_catalog.php">Hostel Shoppe</a> and <a href="http://www.bacchettabikes.com/">Bachetta</a>.</p>
<p>&#160;</p>
<p>Cargo:</p>
<p>Underseat – A <a href="http://www.terracycle.com/Merchant2/merchant.mvc?Screen=CTGY&amp;Store_Code=T&amp;Category_Code=R">Terracycle Easy Reacher Rack</a> is a really nice addition – slightly better ride because the rack positions the weight under you. Also gives you reasonable access to your panniers without getting out of your seat!</p>
<p>Rear – You can get a number of inexpensive options to work just fine (as in my current setup), but I have been very curious about the Volea recommended <a href="http://www.terracycle.com/Merchant2/merchant.mvc?Screen=CTGY&amp;Store_Code=T&amp;Category_Code=R">Old Man Mountain Sherpa Rack</a> with the <a href="http://www.hostelshoppe.com/cgi-bin/readitem.pl?Accessory=1083879755">Volea Rack Adapter Kit</a>.</p>
<p>Panniers – I am using a pair of <a href="http://www.pacoutdoor.com/">Pacific Outdoor Equipment Coops</a>. These Grocery Bag style panniers are large and durable –&gt; in some areas water proof bags would be more practical, but are (in my opinion) overkill for Tucson. I keep several <a href="http://www.seatosummit.com/products/display/7">Sea to Summit Ultra-Sil Dry Sacks</a> in my bag to protect electronics and other valuables in the infrequent rain.</p>
<p>&#160;</p>
<p>Office:</p>
<p>I often have my Lenovo X-61 Tablet with me &#8211; I was originally worried about having it in a pannier rather than on my back &#8211; but so far having it in the pannier has caused exactly 0 problems! I am carrying my computer in a <a href="http://www.tombihn.com/page/001/PROD/300/TB0300">Tom Bihn Horizontal Brain Cell</a> – the best laptop case I have ever found – and I add a little organization with a Tom Bihn <a href="http://www.tombihn.com/page/001/PROD/ACC/TB0345">Horizontal Freudian Slip</a></p>
<p>&#160;</p>
<p>Tires:</p>
<p>This is the first bike that I have owned with 650c wheels. It is possible that I have not looked in the right places, but so far I have found relatively few tire choices compared with 26” or 700 wheels. I have used:</p>
<p><a href="http://www.conti-online.com/generator/www/de/en/continental/bicycle/themes/race/recetyres/ultra_gatorskin/ultragatorskin_en.html">Continental – Ultra GatorSkin 650x23C</a> – These are great but I found that they were a little hard/skinny esp. for a load of groceries/heavier loads.</p>
<p><a href="http://www.terrybicycles.com/product/detail/2500403/current/tellus-pt-tire--x-c--">Tellus PT Tire 650 x 28C (28-571) by Terry</a> – I have used this tire for several months and I love it! Cushier than the Ultra GatorSkins and a much nicer ride with a heavier load (and not so wide that I feel slow). You might notice that many 650c tubes you will find do not have 28 in the range of tire sizes that they list – but on the recommendation of Georgena Terry I used the <a href="http://www.schwalbetires.com/bike_tires/tubes/presta_valve-40_mm">Schwalbe SV11</a> tubes that I had been using with the <a href="http://www.conti-online.com/generator/www/de/en/continental/bicycle/themes/race/recetyres/ultra_gatorskin/ultragatorskin_en.html">Continental – Ultra GatorSkin 650x23C</a>.</p>
<p><a href="http://www.bontrager.com/products/components/tires">Bontrager Race X</a> – I have not tried any of these yet but with so few choices for wider 650c tires it is certainly worth noting that Bontrager offer several models in its Race X series that come in 650 x 25 (<a href="http://www.bontrager.com/model/00444">Race X Lite</a> and <a href="http://www.bontrager.com/model/02865">Race X Lite AC</a>). (Thanks to <a href="http://www.volaerecumbents.com/">Volea</a> and the <a href="http://www.hostelshoppe.com/recumbent_catalog.php">Hostel Shoppe</a> for pointing these out to me).</p>
<p>&#160;</p>
<p>Light:</p>
<p><a href="http://www.exposurelights.com/products/maxx_d/index.php">Exposure MaXx-D</a> – It was time for a new light when I bought my recumbent and the cable free design of the MaXx-D was a great feature – no routing cables (which may take slightly more creativity on a recumbent) and only one thing to take off the bike when it is parked. This has performed really nicely so far – bright and good battery life. I originally intended to mount the light on a <a href="http://www.hostelshoppe.com/cgi-bin/readitem.pl?Accessory=983907300">Volea T-Bar Light Mount</a> – but the reflections from the shiny crank arms were too much of a distraction and I ended up mounting the light on my handle bars, which works just fine…</p>
<p><a href="http://www.cateye.com/en/product_detail/273">Cat Eye SL-LD100</a> – on my helmet for a little additional visibility since I am frequently riding at night.</p>
<p><a href="http://www.ptsportlights.com/?q=node/124">Princeton Tec Swerve</a> – a simple rear light, this has worked ok.</p>
<p>&#160;</p>
<p>Outerwear:</p>
<p>I dont really have too much bike specific clothing – but these pieces seem to mix and match nicely to cover the range of Tucson weather:</p>
<p><a href="http://www.outdoorresearch.com/site/index.html">OR</a> Wind Beaker&#160; The OR shell I have is old and no longer made, a simple small pullover with a nice long zipper that makes it easy to get on over a helmet.</p>
<p><a href="http://www.outdoorresearch.com/site/m_s_revel_jacket.html">OR Revel Jacket</a> – This goes in my bag in wet weather – the Revel Jacket is water proof with great venting options. No need for a cycle specific piece on the recumbent…</p>
<p><a href="http://www.icebreaker.com/">Icebreaker</a> Long sleeve Top:. A nice layering option when it is chilly. This piece is made from Merino Wool, the main benefit being that it can sit in my bag a lot longer without needing a wash. Not a current model but a 260 weight piece.</p>
<p><a href="http://www.patagonia.com/web/us/product/mens-nano-puff-pullover?p=84020-0-961">Patagonia Nano Puff Pullover</a>: For the cold &#8211; the Nano Puff is surprisingly warm for the weight/bulk.</p>
<p><a href="http://www.manzella.com/">Manzella</a> Vapor Gloves: The Vapor gloves are a lightweight fleece with a nice high visibility color and a few reflective hits.</p>
<p><a href="http://www.manzella.com/">Manzella</a> Hatchback Gloves: Thicker fleece and a high visibility shell that stows out of the way in the back of the glove and can be pulled out to cover your fingers. The small strip of reflective trim is another nice detail.</p>
<p><a href="http://marmot.com/fall_2009/mens/hats/helmet_liner/">Marmot Helmet Liner</a>: Not too bulky under my helmet and provides enough warmth for any time of year in Tucson.</p>
<p>&#160;<a href="http://www.flickr.com/photos/cmiles/4572771486/in/set-72157623125316092/"><img src="http://s3.amazonaws.com:80/camiles_WebImages/2010_ADTCAM/1004 Volea Recumbent.JPG" width="459" height="345" /></a></p>
<p>If you have any ideas/suggestions please leave a comment below!</p>
<p>CM</p>
<br />Filed under: <a href='http://cmiles.info/category/bicycle/'>Bicycle</a>, <a href='http://cmiles.info/category/bikecommuting/'>BikeCommuting</a>, <a href='http://cmiles.info/category/tucson/'>Tucson</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=140&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2010/05/02/my-bike-commuting-setup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>

		<media:content url="http://s3.amazonaws.com:80/camiles_WebImages/2010_ADTCAM/1004 Volea Recumbet from the front.JPG" medium="image" />

		<media:content url="http://s3.amazonaws.com:80/camiles_WebImages/2010_ADTCAM/1004 Volea Recumbent.JPG" medium="image" />
	</item>
		<item>
		<title>Generating WPF with T4 Templates for Localization</title>
		<link>http://cmiles.info/2010/01/29/generating-wpf-with-t4-templates-for-localization/</link>
		<comments>http://cmiles.info/2010/01/29/generating-wpf-with-t4-templates-for-localization/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 15:36:00 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[globalization]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[t4]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2010/01/29/generating-wpf-with-t4-templates-for-localization/</guid>
		<description><![CDATA[Recently I had the opportunity to explore setting up a small WPF application for globalization/localization. I had no previous experience with this process, so I started by doing some searching and reading. I thought the links below were particularly interesting: WPF Localization Guidance – Included in this project is The WPF Localization Guidance PDF by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=136&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I had the opportunity to explore setting up a small WPF application for globalization/localization. I had no previous experience with this process, so I started by doing some searching and reading. I thought the links below were particularly interesting:</p>
<p><a href="http://wpflocalization.codeplex.com/">WPF Localization Guidance</a> – Included in this project is The WPF Localization Guidance PDF by Rick Strahl and Michele Leroux Bustamante – I highly recommend reading this! Great details, several approaches are examined.</p>
<p><a href="http://www.codeproject.com/KB/WPF/InternationalizedWizard.aspx">Creating an Internationalized Wizard in WPF</a> by Josh Smith, Karl Shifflett. Very nice walk thru of building an Internationalized Wizard style app with resource files. This is a very approachable place to start.</p>
<p><a href="http://www.codeproject.com/KB/WPF/WPFLocalize.aspx">WPF Multi-Lingual at Runtime</a> by Andrew Wood – A XmlDataProvider based solution.</p>
<p><a href="http://www.codeproject.com/KB/WPF/Article.aspx?aid=17334">Localizing WPF Applications using Locbaml</a> by brunzefb – This link is notable for its comparison of several different approaches.</p>
<p><a href="http://www.codeproject.com/Articles/37339/WPF-Localization.aspx">WPF Localization</a> by Sacha Barber – Interesting because of the third method shown in the article that uses ResourceDictionaries. For more information on using Resource Dictionaries see the answer to <a href="http://stackoverflow.com/questions/1659822/localization-of-text-that-includes-subscript-and-inline-images-in-wpf">this question</a> on <a href="http://www.stackoverflow.com">Stack Overflow</a> by&#160; Ray Burns.</p>
<p>&#160;</p>
<p>One interesting thing about many of the approaches above is that the focus seems to on localizing strings/text, and to a lesser degree settings, images and other resources. In the context of WPF I was surprised not to find more information about customizing the layout of the UI as part of the translation into another language. I think the structure of XAML encourages a UI composed of many elements that will need more than string substitution to be ideal in another language.</p>
<p>For example, the XAML below and UI it generates seems typical of the kind of composition and ‘richness’ encouraged by WPF/XAML’s structure and tools: </p>
<pre class="brush: xml; gutter: false;">
&lt;UserControl
		xml:lang=&quot;en&quot;
        xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
        xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&gt;
    &lt;UserControl.Resources&gt;
        &lt;ResourceDictionary&gt;
            &lt;ResourceDictionary.MergedDictionaries&gt;
                &lt;ResourceDictionary Source=&quot;basic_styles.xaml&quot; /&gt;
                &lt;ResourceDictionary Source=&quot;equations.xaml&quot; /&gt;
            &lt;/ResourceDictionary.MergedDictionaries&gt;
        &lt;/ResourceDictionary&gt;
    &lt;/UserControl.Resources&gt;

	&lt;WrapPanel Style=&quot;{StaticResource description_wrap_panel_style}&quot;&gt;

		&lt;TextBlock	x:Name=&quot;c_textblock&quot;
					Style=&quot;{StaticResource description_textblock_style}&quot;
					AutomationProperties.Name = &quot;Enter a Constant, C, that satisfies the following equation: the standard error of the estimate is equal to the constant C over the square root of the sample size&quot;&gt;
			Enter a constant, &lt;Italic&gt;C&lt;/Italic&gt;, that satisfies
    	&lt;InlineUIContainer Style='{StaticResource image_container_style}'&gt;
    		&lt;Image x:Name='formula_11'
					Source='{StaticResource equation_11}'
					Style='{StaticResource image_style}'&gt;
                &lt;Image.Height&gt;
                    &lt;MultiBinding Converter='{StaticResource image_size}'&gt;
                        &lt;Binding Mode='OneWay'
								ElementName='formula_11'
								Path='Tag'/&gt;
                        &lt;Binding Mode='OneWay'
								ElementName='c_textblock'
								Path='FontSize'/&gt;
                    &lt;/MultiBinding&gt;
                &lt;/Image.Height&gt;
            &lt;/Image&gt;
    	&lt;/InlineUIContainer&gt;
	    &lt;/TextBlock&gt;

		&lt;TextBlock 	Style=&quot;{StaticResource description_textblock_style}&quot;
					KeyboardNavigation.TabIndex=&quot;1&quot;&gt;
			(&lt;Hyperlink AutomationProperties.Name='More information about the constant C' x:Name='c_hyperlink'&gt;more info&lt;/Hyperlink&gt;)
		&lt;/TextBlock&gt;

		&lt;TextBox 	Style=&quot;{StaticResource entry_textbox_style}&quot;
					AutomationProperties.LabeledBy=&quot;{Binding ElementName=c_textblock}&quot;
					KeyboardNavigation.TabIndex=&quot;0&quot;&gt;
		&lt;/TextBox&gt;

	&lt;/WrapPanel&gt;
&lt;/UserControl&gt;
</pre>
<p><img src="http://s3.amazonaws.com:80/camiles_WebImages/2009_ADTCAM/T4_Localization_Sample_English.JPG" width="461" height="114" /></p>
<p>Certainly changing out all of the strings to translate this example is possible (slightly painful because of the number of string to change out…). In French or Spanish this would work fine:</p>
<p>&#160;<img src="http://s3.amazonaws.com:80/camiles_WebImages/2009_ADTCAM/T4_Localization_Sample_French.JPG" width="472" height="104" /></p>
<p><img src="http://s3.amazonaws.com:80/camiles_WebImages/2009_ADTCAM/T4_Localization_Sample_Spanish.JPG" width="471" height="98" />&#160;</p>
<p>However, here is the same UI translated into Japanese – notice that the translator did not keep the elements in the same position.</p>
<p><img src="http://s3.amazonaws.com:80/camiles_WebImages/2009_ADTCAM/T4_Localization_Sample_Japanese.JPG" width="467" height="103" /></p>
<p>&#160;</p>
<p>To accommodate a flexible layout in this application I decided to use T4 templates to generate &#8216;loose&#8217; XAML files. These files are included in the output and parsed at runtime based on the CurrentCulture.</p>
<p>The code below is the contents of the file base_block.tt – this t4 template holds the common elements of the XAML files and will be ‘imported’ by the language specific t4 templates. The language specific templates will provide values for the variables introduced in base_block.tt. One important detail is the use of encoding=&quot;Unicode&quot; &#8211; I assumed “Utf-8” would work but the XamlParser would error on some characters when the template specified Utf-8, apparently because of the BOM setting…</p>
<pre class="brush: xml; gutter: false;">
&lt;#@ template debug=&quot;false&quot; hostspecific=&quot;false&quot; language=&quot;C#&quot; #&gt;
&lt;#@ output extension=&quot;.xaml&quot; encoding=&quot;Unicode&quot;#&gt;

&lt;UserControl
		xml:lang=&quot;&lt;#= this.xml_lang #&gt;&quot;
        xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
        xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&gt;
    &lt;UserControl.Resources&gt;
        &lt;ResourceDictionary&gt;
            &lt;ResourceDictionary.MergedDictionaries&gt;
                &lt;ResourceDictionary Source=&quot;basic_styles.xaml&quot; /&gt;
                &lt;ResourceDictionary Source=&quot;equations.xaml&quot; /&gt;
            &lt;/ResourceDictionary.MergedDictionaries&gt;
        &lt;/ResourceDictionary&gt;
    &lt;/UserControl.Resources&gt;

	&lt;WrapPanel Style=&quot;{StaticResource description_wrap_panel_style}&quot;&gt;

		&lt;TextBlock	x:Name=&quot;c_textblock&quot;
					Style=&quot;{StaticResource description_textblock_style}&quot;
					AutomationProperties.Name = &quot;&lt;#= this.textblock_automation_name #&gt;&quot;&gt;
			&lt;#= this.textblock_constant_C_contents #&gt;
	    &lt;/TextBlock&gt;

		&lt;TextBlock 	Style=&quot;{StaticResource description_textblock_style}&quot;
					KeyboardNavigation.TabIndex=&quot;1&quot;&gt;
			&lt;#= this.hyperlink_textblock_contents #&gt;
		&lt;/TextBlock&gt;

		&lt;TextBox 	Style=&quot;{StaticResource entry_textbox_style}&quot;
					AutomationProperties.LabeledBy=&quot;{Binding ElementName=c_textblock}&quot;
					KeyboardNavigation.TabIndex=&quot;0&quot;&gt;
		&lt;/TextBox&gt;

	&lt;/WrapPanel&gt;
&lt;/UserControl&gt;

&lt;#+

	private string xml_lang = @&quot;&quot;;
	private string textblock_constant_C_contents = @&quot;&quot;;
	private string textblock_automation_name = @&quot;&quot;;
	private string hyperlink_textblock_contents = @&quot;&quot;;

#&gt;
</pre>
<p>Note that the variables hold all of the information that I wanted to be able to manipulate &#8211; not just the string portions of the UI. The file for English, en.tt:</p>
<pre class="brush: xml; gutter: false;">
&lt;# 

	xml_lang = @&quot;en&quot;;

	textblock_constant_C_contents =
		@&quot;Enter a constant, &lt;Italic&gt;C&lt;/Italic&gt;, that satisfies
    	&lt;InlineUIContainer Style='{StaticResource image_container_style}'&gt;
    		&lt;Image x:Name='formula_11'
					Source='{StaticResource equation_11}'
					Style='{StaticResource image_style}'&gt;
                &lt;Image.Height&gt;
                    &lt;MultiBinding Converter='{StaticResource image_size}'&gt;
                        &lt;Binding Mode='OneWay'
								ElementName='formula_11'
								Path='Tag'/&gt;
                        &lt;Binding Mode='OneWay'
								ElementName='c_textblock'
								Path='FontSize'/&gt;
                    &lt;/MultiBinding&gt;
                &lt;/Image.Height&gt;
            &lt;/Image&gt;
    	&lt;/InlineUIContainer&gt;&quot;;

	textblock_automation_name = @&quot;Enter a Constant, C, that satisfies the following equation: the standard error of the estimate is equal to the constant C over the square root of the sample size&quot;;

	hyperlink_textblock_contents = @&quot;(&lt;Hyperlink AutomationProperties.Name='More information about the constant C' x:Name='c_hyperlink'&gt;more info&lt;/Hyperlink&gt;)&quot;;

#&gt;

&lt;#@ include file=&quot;base_block.tt&quot; #&gt;
</pre>
<p>The file for the Spanish version:</p>
<pre class="brush: xml; gutter: false;">
    &lt;#

        xml_lang = @&quot;es&quot;;

        textblock_constant_C_contents =
            @&quot;Ingrese una constante, &lt;Italic&gt;C&lt;/Italic&gt;, para resolver
            &lt;InlineUIContainer Style='{StaticResource image_container_style}'&gt;
                &lt;Image x:Name='formula_11'
                        Source='{StaticResource equation_11}'
                        Style='{StaticResource image_style}'&gt;
                    &lt;Image.Height&gt;
                        &lt;MultiBinding Converter='{StaticResource image_size}'&gt;
                            &lt;Binding Mode='OneWay'
                                    ElementName='formula_11'
                                    Path='Tag'/&gt;
                            &lt;Binding Mode='OneWay'
                                    ElementName='c_textblock'
                                    Path='FontSize'/&gt;
                        &lt;/MultiBinding&gt;
                    &lt;/Image.Height&gt;
                &lt;/Image&gt;
            &lt;/InlineUIContainer&gt;&quot;;

        textblock_automation_name = @&quot;Ingrese una constante, C, que satisface la siguiente ecuación: el error estándar de la estimación es igual a la constante C sobre la raíz cuadrada del tamaño de la muestra.&quot;;

        hyperlink_textblock_contents = @&quot;(&lt;Hyperlink AutomationProperties.Name='Más información acerca de la constante C'&gt;más información&lt;/Hyperlink&gt;)&quot;;

    #&gt;

    &lt;#@ include file=&quot;base_block.tt&quot; #&gt;
</pre>
<p>Each of the XAML files has a Build Action of ‘Content’ so that it is included in the output for the project.&#160; At runtime I look at the CurrentCulture, compare that to the names of the generated XAML files that are available, feed the file to XamlReader.Load() and add the resulting UserControl into the UI as needed. A small sample app demonstrating this is a available <a href="http://s3.amazonaws.com/camiles_WebImages/2009_ADTCAM/T4LocalizationSample_VS2010.zip">here</a>.</p>
<p>&#160;</p>
<p>I do not have enough experience with globalization/localization to be confident this approach would work in all situations, but for this application it did work and I enjoyed that it: easily allows flexible UI layout, generated XAML files that could be viewed in the VS editor and is simple to use. I seems to me that the biggest downsides to this approach are that it does not allow translators to work on a simple value pair style file and the loose XAML does not allow for a code-behind (which is usually fine but occasionally awkward – at least for me). I would love to hear any comments or feedback on this approach!</p>
<p>&#160;</p>
<p>Special thanks to Lance and Kent for translating for me!! And extra thanks to Lance for pointing out how to cleanly <a href="http://en.support.wordpress.com/code/posting-source-code/">post source code</a> on <a href="http://en.support.wordpress.com/code/posting-source-code/">WordPress.com</a></p>
<p>&#160;</p>
<p>Enjoy!</p>
<p>CM</p>
<br />Filed under: <a href='http://cmiles.info/category/net/'>.net</a> Tagged: <a href='http://cmiles.info/tag/net/'>.net</a>, <a href='http://cmiles.info/tag/globalization/'>globalization</a>, <a href='http://cmiles.info/tag/localization/'>localization</a>, <a href='http://cmiles.info/tag/t4/'>t4</a>, <a href='http://cmiles.info/tag/wpf/'>WPF</a>, <a href='http://cmiles.info/tag/xaml/'>XAML</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/136/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=136&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2010/01/29/generating-wpf-with-t4-templates-for-localization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>

		<media:content url="http://s3.amazonaws.com:80/camiles_WebImages/2009_ADTCAM/T4_Localization_Sample_English.JPG" medium="image" />

		<media:content url="http://s3.amazonaws.com:80/camiles_WebImages/2009_ADTCAM/T4_Localization_Sample_French.JPG" medium="image" />

		<media:content url="http://s3.amazonaws.com:80/camiles_WebImages/2009_ADTCAM/T4_Localization_Sample_Spanish.JPG" medium="image" />

		<media:content url="http://s3.amazonaws.com:80/camiles_WebImages/2009_ADTCAM/T4_Localization_Sample_Japanese.JPG" medium="image" />
	</item>
		<item>
		<title>Mercurial and White Presentations</title>
		<link>http://cmiles.info/2009/12/17/mercurial-and-white-presentations/</link>
		<comments>http://cmiles.info/2009/12/17/mercurial-and-white-presentations/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 21:16:00 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[TucsonDotNetUserGroup]]></category>
		<category><![CDATA[White]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2009/12/17/mercurial-and-white-presentations/</guid>
		<description><![CDATA[I recently had the opportunity to do two presentations at a Tucson .NET User Group meeting &#8211; Aaron Wagner and I gave a ~40 minute presentation on Mercurial and I did a short presentation on White! It was a privilege to have the opportunity to share information about these tools and great to get some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=135&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I recently had the opportunity to do two presentations at a <a href="http://www.tucsondotnet.org/TucsonDotNet/default.aspx">Tucson .NET User Group</a> meeting &#8211; <a href="http://www.twocentsworth.com/">Aaron Wagner</a> and I gave a ~40 minute presentation on <a href="http://mercurial.selenic.com/wiki/">Mercurial</a> and I did a short presentation on <a href="http://white.codeplex.com/">White</a>!</p>
<p>It was a privilege to have the opportunity to share information about these tools and great to get some extra motivation to keep learning. The Mercurial presentation was 2/3 slides and 1/3 live demo (<a href="http://mercurial.selenic.com/wiki/">Mercurial</a>/<a href="http://bitbucket.org/tortoisehg/stable/wiki/download">TortoiseHg</a> and <a href="http://fogcreek.com/kiln/">Kiln</a>) targeted at providing a basic introduction to Mercurial. I have put the slides <a href="http://s3.amazonaws.com/camiles_WebImages/2009_ADTCAM/CM_and_AW_20_Minute_Mercurial_Presentation.zip">here for download</a> (<a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 Unported</a>), if you are doing a similar short presentation they may be useful – if you are just looking for tutorials/information about Mercurial I suggest you skip these slides and look at <a href="http://mercurial.selenic.com/wiki/Tutorial">this tutorial</a> and <a href="http://hgbook.red-bean.com/read/">this book</a> – both great starting points. (Powerpoint and Impress files are included in the download – the Impress file is not ideal but should be clean enough to easily use or copy).</p>
<p>Enjoy!</p>
<p>CM</p>
<br />Posted in .net Tagged: Mercurial, TucsonDotNetUserGroup, White <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=135&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2009/12/17/mercurial-and-white-presentations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>
	</item>
		<item>
		<title>Some Experiences in the Display of Mathematical Equations in WPF</title>
		<link>http://cmiles.info/2009/10/03/some-experiences-in-the-display-of-mathematical-equations-in-wpf/</link>
		<comments>http://cmiles.info/2009/10/03/some-experiences-in-the-display-of-mathematical-equations-in-wpf/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 21:07:00 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[equations]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2009/10/03/some-experiences-in-the-display-of-mathematical-equations-in-wpf/</guid>
		<description><![CDATA[I recently needed to display ‘notes’ in a WPF application – the interesting detail was that the notes contained both text and mathematical equations. I did not find a tremendous amount of information about presenting mathematical equations in WPF &#8211; so I thought I would share my experiences. The notes for the application were delivered [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=130&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I recently needed to display ‘notes’ in a WPF application – the interesting detail was that the notes contained both text and mathematical equations. I did not find a tremendous amount of information about presenting mathematical equations in WPF &#8211; so I thought I would share my experiences.</p>
<p>The notes for the application were delivered by the client as a Microsoft Word document.</p>
<p>Because I do not have any experience with Adobe Illustrator or any of the Expression products none of the solutions I investigated involves those products.</p>
<p>&#160;</p>
<p><a href="http://www.math.union.edu/~dpvc/jsMath/">jsMath</a> &#8211; My first idea was to display the notes in a browser control with the hope of reusing them on the web. I quickly found <a href="http://www.math.union.edu/~dpvc/jsMath/">jsMath</a> which generates equations from TeX input (if formulas in TeX are not a familiar idea see <a href="http://en.wikipedia.org/wiki/Math_markup">Help:Displaying a Formula</a>). Setup was quick and my test page looked nice in Firefox. However, the rendering in the WPF Browser control was unacceptable. It is completely possible that I did not have something configured correctly and/or that there were settings I needed to change, but I decided to move on…</p>
<p>&#160;</p>
<p><a href="http://www.w3.org/Math/">MathML</a> &#8211; As an alternative to having jsMath handle the equations I briefly looked into using MathML. Unfortunately <a href="http://www.mozilla.org/projects/mathml/start.xhtml">this page</a> failed to open correctly on my machine in IE8, Chrome, Safari and Opera. That was enough to steer me away from MathML. The page opened without problems in Firefox 3.5…</p>
<p>&#160;</p>
<p><a href="http://wpfchromium.codeplex.com/">WPF Chromium WebBrowser control</a> &#8211; I was not quite ready to give up on the idea of presenting the notes in a browser control with jsMath and thought the rendering in this control might be better. I did not get very far with this and did not try the control in my project &#8211; not because of problems with the control, but because the <a href="http://princeofcode.com/awesomium.php">Awesomium</a> project that this control uses is <a href="http://princeofcode.com/blog/?p=267">going closed source</a>. I was unsure about the future of the WPF Chromium WebBrowser control without updated versions of Awesomium so I moved on to my next idea.</p>
<p>&#160;</p>
<p><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.documentviewer.aspx">DocumentViewer</a> -&#160; I already had nicely formatted text and equations in the original Word document and thought that I might be able to leverage that. The WPF DocumentViewer control can display <a href="http://en.wikipedia.org/wiki/Open_XML_Paper_Specification">XPS</a> documents &#8211; and Word documents can be saved as XPS. I saved the first note from the Word document as a .XPS file and &#8211; after figuring out that System.Windows.Xps.Packaging is in ReachFramework.dll &#8211; quickly put together a test. The file displayed quickly and easily (including equations) and for some applications this could be a great option!&#160; However, I felt the DocumentViewer was too page and print focused for this application. I do not think &#8211; at least in it’s default configuration – that the DocumentViewer is a very good solution for displaying shorter items for easy on-screen reading (esp. in a smaller screen area). I am sure I could have tweaked options to improve the DocumentViewer for use in this application, but this seemed like the wrong approach.</p>
<p>&#160;</p>
<p>Word/XPS converted to <a href="http://msdn.microsoft.com/en-us/library/system.windows.documents.flowdocument.aspx">FlowDocument</a> – I thought these articles were interesting, but was skeptical about the time/results, and did not try this approach &#8211; <a href="http://khason.net/blog/converting-fixeddocument-xpsdocument-too-to-flowdocument/">Converting FixedDocument (XPSDocument too) to FlowDocument</a> and <a href="http://khason.net/blog/wordml-to-flowdocument-&ndash;-how-to-convert-docx-files-to-wpf-flowdocument/">WordML to FlowDocument – how to convert docx files to WPF FlowDocument</a>. I would be really curious to hear from anyone how the conversion of Word equations works with the ideas/code presented in these articles.</p>
<p>&#160;</p>
<p><a href="http://msdn.microsoft.com/en-us/library/system.windows.documents.flowdocument.aspx">Flow Document</a>&#160; + Images &#8211; Images seem like an obvious/traditional choice for presenting the equations and the FlowDocument seemed like an interesting choice for presenting text and images for on-screen reading. One easy way to produce the images is <a href="http://rogercortesi.com/eqn/">Roger&#8217;s Online Equation Editor</a> which transforms LaTeX equations into images. It is easy to work with images in WPF &#8211; but the problem I had was getting the images to look as sharp as the text in the FlowDocument when they were resized. If this was a document for printing, or had specific static layout requirements, I think that the images would have worked great. But as the images were resized (either because of dynamic layout changes or changes to the applications design) I was not able to keep them as sharp as the surrounding text. If I had more graphics expertise I may have been able to find a better image type/resolution/rescaling combination.</p>
<p>&#160;</p>
<p>FlowDocument + Shapes &#8211; <a href="http://twocentsworth.com/">a good friend</a> suggested that I look for ways to represent the equations as <a href="http://www.w3.org/Graphics/SVG/">SVG</a>. What I eventually found was <a href="http://www.inkscape.org/">Inkscape</a> + <a href="http://www.elisanet.fi/ptvirtan/software/textext/">textext</a>. textext works as an add-in to Inkscape that allows you to render LaTeX. The install and troubleshooting steps near the bottom of the textext page are critical in finding the dependencies (<a href="http://www.miktex.org/">MikTex</a>, <a href="http://www.pstoedit.net/pstoedit">Pstoedit</a>, <a href="http://pages.cs.wisc.edu/~ghost/gsview/">Ghostscript</a>) and dealing with errors (I had to add a directory to my path to get textext working). Once it is up and running textext worked great – it is very easy to create an equation and save it as an SVG file. The next problem is moving the equation from SVG into XAML.</p>
<p>&#160;</p>
<p>SVG to XAML <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.aspx">Canvas</a> &#8211; All of the methods below can be used to convert an SVG file&#160; into shapes in a XAML Canvas object. In the case of the equations I was producing all of the solutions below generally produced usable output. The Canvas output could be inserted directly into your application &#8211; or it could be placed in a resource file by stripping out the Name elements and adding a Key. In addition to using the Canvas directly it could also be used as a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.visualbrush.aspx">VisualBrush</a>.</p>
<p><a href="http://members.chello.nl/~a.degreef/XAML.html">Xsl</a> &#8211; I was able to use the xsl on <a href="http://members.chello.nl/~a.degreef/XAML.html">this page</a> to get canvas based output (and do a some xsl debugging in Visual Studio &#8211; a great feature and the first time I have used it).</p>
<p><a href="http://www.inkscape.org/">Inkscape</a> &#8211; Inkscape has save as XAML built-in. In the past, for simple images, this worked great for me. For the equations that I was producing in this project the canvas that Inkscape produced apparently lacked a RenderTransform that was crucial to correct display. The problem was fairly easy to fix, but mainly because I had the output from XamlTune as a comparison.</p>
<p><a href="http://xamltune.codeplex.com/">XamlTune</a> &#8211; The command line executable in this project worked great &#8211; and could potentially be integrated into a build script which is a nice bonus. I had trouble with the gui portion of this project crashing.</p>
<p>The Canvas with shapes output is ok &#8211; but I want to reuse the same equation multiple times, use the same equations both as larger stand-alone figures and inline with the text and rescale the larger images as the application’s size changes. I assume that I could get the canvas based resources working for all of those requirements (although I not sure exactly how and imagine a bit of awkward code…). However, I know that having the equations as <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.drawingimage.aspx">DrawingImages</a> in a resource file would allow me to use the equations inside an Image tag, solving the problems above.</p>
<p>&#160;</p>
<p>FlowDocument + <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.drawingimage.aspx">DrawingImage</a> &#8211; The only programs I found that produced DrawingImage output from SVG input were <a href="http://www.wpf-graphics.com/ViewerSvg.aspx">ViewerSvg Professional</a> or <a href="http://www.wpf-graphics.com/ReaderSvg.aspx">Ab2d.ReaderSvg Professional</a> (the ‘Basic’ versions are not listed as having ‘Export as Geometry’ support) from <a href="http://www.wpf-graphics.com/Home.aspx">WPF Graphics</a> (demo downloads available – note these will also convert from SVG to a Canvas). This software did nice conversions from SVG to DrawingImage with a good array of options. The <a href="http://www.wpf-graphics.com/ReaderSvg.aspx">Ab2d.ReaderSvg</a> class library also includes a sample application that allows you to combine multiple SVGs into DrawingImages inside a ResourceDictionary, which is almost exactly what I wanted to do! For some situations these applications will not be appropriate since they are commercially licensed software with a cost of $169/$399.</p>
<p>&#160;</p>
<p>Conclusion: The options above present several viable solutions for presenting mathematical equations in a WPF application. Every project will have different requirements that will dictate the best solution. With that said &#8211; in my opinion -&#160; the combination of Inkscape and textext to create equations in SVG and <a href="http://www.wpf-graphics.com/ReaderSvg.aspx">Ab2d.ReaderSvg Professional</a> to convert the SVG into DrawingImage resources is the best combination currently available for presenting mathematical&#160; equations for on-screen reading in a WPF application.</p>
<p>&#160;</p>
<p>Enjoy!</p>
<p>CM</p>
<br />Posted in .net Tagged: equations, LaTeX, SVG, WPF, XAML <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=130&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2009/10/03/some-experiences-in-the-display-of-mathematical-equations-in-wpf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>
	</item>
		<item>
		<title>A beginner’s view &#8211; Textual DSL with OSLO</title>
		<link>http://cmiles.info/2009/08/22/a-beginners-view-textual-dsl-with-oslo/</link>
		<comments>http://cmiles.info/2009/08/22/a-beginners-view-textual-dsl-with-oslo/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 22:43:43 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[Oslo]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2009/08/22/a-beginners-view-textual-dsl-with-oslo/</guid>
		<description><![CDATA[For just over a month I have been working on a project at work that lets users select inventory items from a database using a textual DSL. This is the first DSL I have ever produced! I thought that it was interesting that with no significant experience in building DSLs I was able to produce [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=129&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>For just over a month I have been working on a project at work that lets users select inventory items from a database using a textual DSL. This is the first DSL I have ever produced! I thought that it was interesting that with no significant experience in building DSLs I was able to produce a useful application in a relatively short period of time. Below are the best resources I found and a few remarks:</p>
<p>&#160;</p>
<p>Overview/Perspective: The <a href="http://herdingcode.com/">Herding Code</a> interview with <a href="http://www.voelter.de/">Markus Völter</a> (who you might know from <a href="http://www.se-radio.net/">Software Engineering Radio</a>) is interesting – while not strictly focused on textual DSLs he gives a great overview/critique of Microsoft’s OSLO effort and interesting information on the Eclipse tools in this space (some recent news related to topics in the interview from <a href="http://www.douglaspurdy.com/2009/08/17/on-oslo/">Douglas Purdy</a> and a <a href="http://voelterblog.blogspot.com/2009_08_01_archive.html">short post by Markus</a>). If you want to see some of the Eclipse tools he mentions the second link will take you to a nice presentation.</p>
<ul>
<li><a href="http://herdingcode.com/?p=206">Herding Code 56: Markus Völter on Model-Driven Development, DSLs and Product Line Engineering</a></li>
<li><a href="http://msdn.microsoft.com/en-us/oslo/dd727732.aspx">Markus Völter: Textual DSLs and Code Generation with Eclipse Tools</a></li>
</ul>
<p>Useful MGrammar/OSLO focused podcast: This podcast features <a href="http://wildermuth.com/">Shawn Wildermuth</a> and has some great discussion around DSLs with a focus on OSLO:</p>
<ul>
<li><a href="http://deepfriedbytes.com/podcast/episode-33-getting-the-scoop-about-olso-and-m-with-shawn-wildermuth/">Deep Fried Bytes Episode 33: Getting the Scoop About Oslo and M with Shawn Wildermuth</a></li>
</ul>
<p>Bits and samples: The Oslo Developer Center &#8211; official downloads and samples (I thought the MGrammar samples were good study material):</p>
<ul>
<li><a title="http://msdn.microsoft.com/en-us/oslo/default.aspx" href="http://msdn.microsoft.com/en-us/oslo/default.aspx">&quot;Oslo&quot; Dev Center</a></li>
</ul>
<p>Focused start: This three part series by Shawn Wildermuth was incredibly valuable because the focus of the articles matched what I was trying to accomplish quite well:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/dd441702.aspx">Textual Domain Specific Languages for Developers &#8211; Part 1</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd548006.aspx">Textual Domain Specific Languages for Developers &#8211; Part 2</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd789404.aspx">Textual Domain Specific Languages for Developers &#8211; Part 3</a></li>
</ul>
<p>Digging deeper: There is a good chance that you will need to dig into some of the details of MGraph and MGrammar – I found the following references useful:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/dd878360.aspx">MGraph Object Model</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd285282.aspx">The &quot;Oslo&quot; Modeling Language Specification</a></li>
</ul>
<p>Skeptical? The application I developed is currently being tested by a handful of users, so far these are the points I would make in support of the DSL:</p>
<ul>
<li>Less dev time than you might guess: this is a small business app with a tight focus, it was coded by one dev working part-time on the app in about 4 weeks. There are always more features to implement, but the app is useful now with a fairly low investment.</li>
<li>Powerful/Flexible Searching: For advanced users the DSL exposes many more search fields/categories/options than I know how to expose via a reasonable list/wizard/combo box/text box style query build screen, and it is not nearly as tedious! The textual interface allows advanced users to be more efficient and creative and gives them access to more options than they had in the past.</li>
<li>Conventional UI feeds the DSL: I found the ‘conventional’ query build screen to be fast and pleasant to develop because it simply constructs the text to be parsed! This means that anything I build for the conventional interface needs to be supported by the DSL – this forces all features to remain ‘exposed’ in the textual interface for more advanced users.</li>
</ul>
<p>Pain points:</p>
<ul>
<li>I was surprised by the amount of work that I had to to to turn the AST produced by parsing the user’s input into usable objects/actions. There are some samples/posts/ideas out that can help build objects automatically – but this seems like an obvious area for Microsoft to enhance since we are talking about an all MS tool chain. I imagine that most scenarios are going to involve walking the tree to build/modify objects? Is there an approach or scenario that really does not do that?</li>
<li>The lack of a text editor component to put in your application in conjunction with your DSL is disappointing. There is an obvious need to deliver an editor for your DSL embedded in your app with syntax highlighting and keyword completion, if that is currently available I am not aware of it… While inputting text into a vanilla textbox may be a good test of the simplicity and logic of your DSL I doubt it is really the user experience you want. If a commercial product is an option then <a href="http://www.actiprosoftware.com/Products/DotNet/WPF/SyntaxEditor/Default.aspx">Actipro’s WPF SyntaxEditor</a> might be interesting – they have MGrammar support which sounds encouraging, but I have not made time to test it out.</li>
</ul>
<p>While the jury is still out if the application mentioned in this post will be successful I think that it was the right choice to build and try a DSL – hopefully if you are interested in trying out a textual DSL in .NET the links and information above will be interesting!</p>
<p>CM</p>
<br />Posted in .net Tagged: dsl, Oslo <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=129&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2009/08/22/a-beginners-view-textual-dsl-with-oslo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>
	</item>
		<item>
		<title>2008!</title>
		<link>http://cmiles.info/2008/12/25/2008/</link>
		<comments>http://cmiles.info/2008/12/25/2008/#comments</comments>
		<pubDate>Thu, 25 Dec 2008 07:53:11 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[udate]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2008/12/25/2008/</guid>
		<description><![CDATA[My blog has been silent during almost all of 2008 and I thought it was time for an update! Hikes/Outdoor adventures: In 2007 I put a number of my outdoor activities on this blog – it was fun, but I found over time that flickr sets were perfect for what I wanted to do: pictures [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=121&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>My blog has been silent during almost all of 2008 and I thought it was time for an update!</p>
<p>Hikes/Outdoor adventures: In 2007 I put a number of my outdoor activities on this blog – it was fun, but I found over time that <a href="http://www.flickr.com">flickr</a> sets were perfect for what I wanted to do: pictures with tags + a short description. <a href="http://www.flickr.com/photos/cmiles/collections/72157603652789071/">2008 Sets</a>:</p>
<p><a href="http://www.flickr.com/photos/cmiles/sets/72157603933333345/">San Pedro</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157603978370159/">Thumb Canyon</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157604329359828/">Molino Area</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157604333926073/">Box Camp</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157604329359934/">Box Camp</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157604503096724/">Seven Cataracts</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157606082709127/">Lower Highway Drainages</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157606102288187/">Zion</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157606790629059/">Ridgeline</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157607300320695/">Palisades</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157608200082295/">Milagrosa</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157608394781738/">Molino</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157609678425634/">Seattle</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157610335043667/">Romero Pools</a>, <a href="http://www.flickr.com/photos/cmiles/sets/72157611154877947/">Seven Cataracts</a></p>
<p>Reading: In addition to some technical books and some sci-fi (nothing astounding&#160; this year in sci-fi books for me) the highlights were: Richard Powers <a href="http://www.amazon.com/Echo-Maker-Novel-Richard-Powers/dp/0312426437/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1230188883&amp;sr=8-1">Echo Maker</a>, David Mitchell <a href="http://www.amazon.com/Cloud-Atlas-Novel-David-Mitchell/dp/0375507256/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1230188957&amp;sr=1-1">Cloud Atlas</a> and <a href="http://www.amazon.com/Number9Dream-David-Mitchell/dp/0812966929/ref=pd_bxgy_b_img_a">Number 9 Dream</a>, Haruki Murakami <a href="http://www.amazon.com/Kafka-Shore-Haruki-Murakami/dp/1400079276/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1230189047&amp;sr=1-1">Kafka on the Shore</a>. All of those were really good and I am astounded I found all of those in a single year (suggestions welcome!) – if I had to pick a favorite I think it would be Cloud Atlas, if you pick it up and find yourself slightly underwhelmed 1/3 of the way in KEEP READING, trust me…</p>
<p>Music: <a href="http://www.amazon.com/Steinbr%C3%BCchel/dp/B000QKCEAI/ref=sr_f1_3?ie=UTF8&amp;s=dmusic&amp;qid=1230189330&amp;sr=101-3">Steinbruchel</a> (<a href="http://www.amazon.com/Steinbruchel/dp/B000RGEIAU/ref=sr_f1_2?ie=UTF8&amp;s=dmusic&amp;qid=1230189564&amp;sr=101-2">and spelling variation…</a>) and <a href="http://www.amazon.com/Vampire-Weekend/dp/B000TOS0V8/ref=sr_f1_1?ie=UTF8&amp;s=dmusic&amp;qid=1230189609&amp;sr=101-1">Vampire Weekend</a> were the finds for me this year – very different but both amazing.</p>
<p>Programming: In 2008 I worked in C# and VB.NET on Linq to Sql/SqlMetal, Sql Server/Express User Instances and <a href="http://msdn.microsoft.com/en-us/library/cc707819.aspx">WPF/Composite Application Guidance</a>. I am certainly not an expert in any of these technologies &#8211; but have deployed working applications that are useful to their users and great motivation to keep learning! I also worked thru the first 10 <a href="http://projecteuler.net/">Euler problems</a> in <a href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/default.aspx">F#</a>.</p>
<p>Classes: I have been taking classes at <a href="http://www.pima.edu/">Pima Community College</a> to keep learning, this year I completed Introduction to VB.NET, Web Publishing and Programming &amp; Problem Solving II.</p>
<p>Bike Commuting: Another year! I feel really lucky to live in a spot where I can commute to work, to school and to most of my errands by bike – it is really a great part of my day! Favorite items that go with me: X61 Tablet (in the no longer available hi-res screen), <a href="http://www.cradlepoint.com/phs300/phs300.php">Cradlepoint PHS300</a>+ Verizon UM150 for instant internet hotspot, Tom Bihn <a href="http://www.tombihn.com/page/001/PROD/100/TB0103">Smart Alec</a> with <a href="http://www.tombihn.com/page/001/PROD/300/TB0390">Vertical Brain Cell</a> and <a href="http://www.tombihn.com/page/001/PROD/ACC/TB0344">Vertical Freudian Slip</a>.</p>
<p>&#160;</p>
<p>Happy Holidays!</p>
<p>Charles</p>
<br />Posted in Life Tagged: 2008, udate <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=121&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2008/12/25/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>
	</item>
		<item>
		<title>Soldier Canyon &#8211; Prison Camp to Hairpin Turn</title>
		<link>http://cmiles.info/2007/12/18/soldier-canyon-prison-camp-to-hairpin-turn/</link>
		<comments>http://cmiles.info/2007/12/18/soldier-canyon-prison-camp-to-hairpin-turn/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 02:14:57 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[Canyoneering]]></category>
		<category><![CDATA[Hiking]]></category>
		<category><![CDATA[Santa Catalinas]]></category>
		<category><![CDATA[Tucson]]></category>
		<category><![CDATA[santa catalina mountains]]></category>
		<category><![CDATA[soldier canyon]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2007/12/18/soldier-canyon-prison-camp-to-hairpin-turn/</guid>
		<description><![CDATA[After quite a few days of rain this weekend finally brought drier weather, it seemed like an interesting chance to see Soldier Canyon full of water &#8211; so we set out on a hike from Prison Camp to Hairpin Turn via Soldier Canyon. If you stay in the water course there are a number of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=113&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>After quite a few days of rain this weekend finally brought drier weather, it seemed like an interesting chance to see Soldier Canyon full of water &#8211; so we set out on a hike from Prison Camp to Hairpin Turn via Soldier Canyon. If you stay in the water course there are a number of possible rappels &#8211; but this is also very fun canyon to do without technical gear and it is possible to see practically all of the canyon without any rappelling. The weather was cold and the canyon full of water so we bypassed optional rappels 1-3. Here is a quick comparison of the water flow between <a href="http://www.flickr.com/photos/cmiles/sets/72157600259500563/">January of 2006</a> and <a href="http://www.flickr.com/photos/cmiles/sets/72157603477401519/">December 2007</a>:</p>
<p align="center">
<p><a href='http://www.flickr.com/photos/cmiles/504939345/in/set-72157600259500563/' title='2006 Soldier Canyon Boulder'><img src='http://s3.amazonaws.com/camiles_WebImages/2006_ADTCAM/JanSoldierBoulder.jpg' alt='2006 Soldier Canyon Boulder' /></a></p>
<p><a href='http://www.flickr.com/photos/cmiles/2115725255/in/set-72157603477401519/' title='2007 Soldier Canyon Boulder'><img src='http://s3.amazonaws.com/camiles_WebImages/2007_ADTCAM/0712+Soldier+Boulder+Falls.jpg' width='450' alt='2007 Soldier Canyon Boulder' /></a></p>
<p>This hike requires a car shuttle &#8211; the lower car should be parked in the pull-out along the right side of the road just before the first hairpin turn heading  up the mountain (before the road crosses Soldier canyon). Climbers will know this as the parking area for the Hairpin Turn and Rivendale areas. After dropping off the car head for the the Gordon Hirabayashi Recreation Area (often called &#8216;Prison Camp&#8217;) where, just as in past hikes to this area (<a href="http://www.flickr.com/photos/cmiles/sets/72157600259500563/">same hike Jan. 2006</a>, <a href="http://cmiles.wordpress.com/2007/03/27/upper-soldier-canyon-to-soldier-trail-loop/">partial version of this hike 2007</a>), we parked in one of the pull outs along the loop at the end of the road. </p>
<p>Start on Soldier Trail which will quickly take you to Soldier Canyon &#8211; leave Soldier Trail as it heads up and left and follow the canyon. Bypass the first drops and falls on a climber&#8217;s trail on the right side of the canyon and continue hiking and scrambling into and down the canyon. The scrambling in this section is generally easy, but it is also easy to escape the canyon bottom to bypass any difficulties. </p>
<p>Eventually the canyon flattens out as you hike thru the area where Soldier Trail crosses the canyon several times. Soldier Trail leaves the canyon for the last time and climbs up to the cliffs on the left side of the canyon just before the canyon begins to narrow into another beautiful &#8211; and possibly technical &#8211; section. </p>
<p>As you work down the narrowing canyon bottom you will come to a short drop, optional rappel 1 (depending on water flow stronger climbers may bypass this rappel). Shortly down canyon you will come to <a href="http://www.flickr.com/photos/cmiles/2115744671/in/set-72157603477401519/">optional rappel 2</a> &#8211; this is  more easily down climbed than the previous drop but flowing water could make the climbing quite slick. Work past another short drop on the left side of the canyon and down to <a href="http://www.flickr.com/photos/cmiles/2115725255/in/set-72157603477401519/">optional rappel 3</a> which takes you around a huge boulder that creates one of the most beautiful spots in the canyon. It is awkward &#8211; but possible &#8211; to bypass optional rappel 3 by working up onto the cliffs on the left side of the canyon. All of the optional rappels can be easily avoided by hiking along the cliffs above the canyon and thrashing back down into the canyon bottom. </p>
<p>After the giant boulder there is one more set of cliffs down canyon that form <a href="http://www.flickr.com/photos/cmiles/2116515162/in/set-72157603477401519/">optional rappel 4</a> &#8211; when the cliffs are dry this could be a down climb for confident climbers (there are also options to escape and reenter to the canyon). Past these cliffs the canyon is a beautiful hike down to Hairpin Turn with a number of small scrambles and occasional route finding puzzles. <a href="http://www.flickr.com/photos/cmiles/2117429673/in/set-72157603477401519/">Map</a>.</p>
<p>Enjoy!<br />
CM</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cmiles.wordpress.com/113/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cmiles.wordpress.com/113/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/113/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=113&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2007/12/18/soldier-canyon-prison-camp-to-hairpin-turn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>

		<media:content url="http://s3.amazonaws.com/camiles_WebImages/2006_ADTCAM/JanSoldierBoulder.jpg" medium="image">
			<media:title type="html">2006 Soldier Canyon Boulder</media:title>
		</media:content>

		<media:content url="http://s3.amazonaws.com/camiles_WebImages/2007_ADTCAM/0712+Soldier+Boulder+Falls.jpg" medium="image">
			<media:title type="html">2007 Soldier Canyon Boulder</media:title>
		</media:content>
	</item>
		<item>
		<title>Arizona Canyoneering Books</title>
		<link>http://cmiles.info/2007/10/29/arizona-canyoneering-books/</link>
		<comments>http://cmiles.info/2007/10/29/arizona-canyoneering-books/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 02:48:37 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[Canyoneering]]></category>
		<category><![CDATA[arizona canyoneering books]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2007/10/29/arizona-canyoneering-books/</guid>
		<description><![CDATA[I updated a few of my posts today to note that there were alternate descriptions in the latest book about canyoneering in Arizona: Arizona Technical Canyoneering &#8211; by Todd Martin (you may know his website &#8211; Todd&#8217;s Desert Hiking Guide &#8211; lots of good information and hike/trip reports) The other book that is not to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=112&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I updated a few of my posts today to note that there were alternate descriptions in the latest book about canyoneering in Arizona:</p>
<p><a href="http://www.toddshikingguide.com/AZTechnicalCanyoneeri">Arizona Technical Canyoneering</a> &#8211; by Todd Martin (you may know his website &#8211; <a href="http://www.toddshikingguide.com/index.htm">Todd&#8217;s Desert Hiking Guide</a> &#8211; lots of good information and hike/trip reports)</p>
<p>The other book that is not to be missed in this category is:<br />
<a href="http://www.summithut.com/catalog/remap/product.asp/DeptID/48/SortOrder/1/pfid/27892/"><br />
Canyoneering Arizona</a> &#8211; by Tyler Williams (revised edition)</p>
<p>I have not done enough of the hikes in either book to offer a review &#8211; but I have had a few good adventures with <a href="http://www.summithut.com/catalog/remap/product.asp/DeptID/48/SortOrder/1/pfid/27892/">Canyoneering Arizona</a> and am already excited about some of the destinations in <a href="http://www.toddshikingguide.com/AZTechnicalCanyoneeri">Arizona Technical Canyoneering</a>.</p>
<p>Enjoy!<br />
CM</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cmiles.wordpress.com/112/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cmiles.wordpress.com/112/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=112&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2007/10/29/arizona-canyoneering-books/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>
	</item>
		<item>
		<title>Agua Caliente Canyon Loop Hike</title>
		<link>http://cmiles.info/2007/10/17/agua-caliente-canyon-loop-hike/</link>
		<comments>http://cmiles.info/2007/10/17/agua-caliente-canyon-loop-hike/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 08:27:51 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[Hiking]]></category>
		<category><![CDATA[Santa Catalinas]]></category>
		<category><![CDATA[agua caliente canyon]]></category>
		<category><![CDATA[canyon hiking]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2007/10/17/agua-caliente-canyon-loop-hike/</guid>
		<description><![CDATA[Agua Caliente and Milagrosa canyons are beautiful destinations at the base of the Santa Catalina Mountains on the east side of Tucson. Interesting sections of both canyons can be enjoyed as loop hikes starting from the end of Suzenu Road &#8211; this weekend we decided to visit Agua Caliente Canyon. Map. To get to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=110&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Agua Caliente and Milagrosa canyons are beautiful destinations at the base of the Santa Catalina Mountains on the east side of Tucson. Interesting sections of both canyons can be enjoyed as loop hikes starting from the end of Suzenu Road &#8211; this weekend we decided to visit Agua Caliente Canyon. <a href="http://www.flickr.com/photos/cmiles/1578341077/">Map</a>.</p>
<p>To get to the trail follow Snyder east &#8211; after Synder divides look for a left turn onto Suzenu Road. Park on the right side of the road before the T intersection. Start the hike by taking a right &#8211; thru the gate &#8211; and to the end of the road. At the end of the road continue past a gate (several &#8216;No Parking&#8217; signs) and across a wash via an old road &#8211; after a few minutes (and heading downhill) look for the trail on your left (if you start to cross the wash you have gone too far). </p>
<p><a href='http://www.flickr.com/photos/cmiles/1573795067/'><img src='http://s3.amazonaws.com/camiles_WebImages/2007_ADTCAM/0710+Boulders+blocking+Agua+Caliente+Canyon.JPG' alt='Boulders jamming Agua Caliente Canyon' width='500' /></a></p>
<p>The trail has great views of the Santa Catalinas and the Agua Caliente Hill area &#8211; the trail also has very little shade and can be quite hot (be prepared!). It is   fairly easy to follow the trail into the bottom of Agua Caliente canyon. The canyon bottom is unremarkable for the first minutes, but keep hiking and you will arrive at a rocky section with falls/drops/pools. There are several obstacles to bypass down canyon &#8211; these will likely require bushwhacking, scrambling and/or following faint trails on the loose/sandy/exposed/bushy side of the canyon (be very careful!). The canyon gradually mellows as you head towards the junction with Milagrosa canyon &#8211; we spotted an <a href="http://www.flickr.com/photos/cmiles/1574675830">impressive beehive</a> high on the cliffs during our hike. When you reach the junction work your way back up onto the trail and head back to the parking area.</p>
<p><a href='http://www.flickr.com/photos/cmiles/1574691486'><img src='http://s3.amazonaws.com/camiles_WebImages/2007_ADTCAM/0710+Reflection+of+the+Cliffs+above+Agua+Caliente+Canyon.JPG' alt='Reflections of the canyon walls'></a></p>
<p>Update! 2007-10-28 &#8211; For another description of Agua Caliente Canyon (and Milagrosa) see <a href="http://www.toddshikingguide.com/AZTechnicalCanyoneering/index.htm">Arizona Technical Canyoneering</a>.</p>
<p>Enjoy!<br />
CM</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cmiles.wordpress.com/110/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cmiles.wordpress.com/110/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/110/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=110&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2007/10/17/agua-caliente-canyon-loop-hike/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>

		<media:content url="http://s3.amazonaws.com/camiles_WebImages/2007_ADTCAM/0710+Boulders+blocking+Agua+Caliente+Canyon.JPG" medium="image">
			<media:title type="html">Boulders jamming Agua Caliente Canyon</media:title>
		</media:content>

		<media:content url="http://s3.amazonaws.com/camiles_WebImages/2007_ADTCAM/0710+Reflection+of+the+Cliffs+above+Agua+Caliente+Canyon.JPG" medium="image">
			<media:title type="html">Reflections of the canyon walls</media:title>
		</media:content>
	</item>
		<item>
		<title>Montrose Canyon</title>
		<link>http://cmiles.info/2007/10/08/montrose-canyon/</link>
		<comments>http://cmiles.info/2007/10/08/montrose-canyon/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 16:23:35 +0000</pubDate>
		<dc:creator>cmiles</dc:creator>
				<category><![CDATA[Hiking]]></category>
		<category><![CDATA[Santa Catalinas]]></category>
		<category><![CDATA[canyon hiking]]></category>
		<category><![CDATA[montrose canyon]]></category>
		<category><![CDATA[romero canyon trail]]></category>
		<category><![CDATA[trail hiking]]></category>

		<guid isPermaLink="false">http://cmiles.wordpress.com/2007/10/08/montrose-canyon/</guid>
		<description><![CDATA[The Romero Canyon Trail in Santa Catalina State park can be a busy location &#8211; on a hot day you will undoubtedly pass groups of hikers focused on getting to the Romero Pools and enjoying the cool water. For much of the hike to the Romero Pools you can look down into Montrose Canyon. On [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=105&subd=cmiles&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>The Romero Canyon Trail in <a href="http://www.pr.state.az.us/Parks/parkhtml/catalina.html">Santa Catalina State</a> park can be a busy location  &#8211; on a hot day you will undoubtedly pass groups of hikers focused on getting to the Romero Pools and enjoying the cool water. For much of the hike to the Romero Pools you can look down into Montrose Canyon. On Sunday we hiked up the Romero Canyon Trail until the last prominent saddle before the pools and bushwhacked/boulder hopped down the steep hillside into Montrose Canyon. Getting off the trail quickly separated us from the crowds and we took advantage of the quiet to have a nice nap in the shade beside the water. From where we entered the canyon traveling down is mostly easy hiking and scrambling &#8211; but we did come to several places where we had to exit the canyon to bypass obstacles. Eventually we ended up back at the Overlook to the Montrose Pools and returned to the car via the Romero Canyon Trail.</p>
<p>CM</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cmiles.wordpress.com/105/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cmiles.wordpress.com/105/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cmiles.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cmiles.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cmiles.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cmiles.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cmiles.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cmiles.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cmiles.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cmiles.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cmiles.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cmiles.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cmiles.info&blog=331266&post=105&subd=cmiles&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://cmiles.info/2007/10/08/montrose-canyon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d94d5fb54d2d8a5b8b6afa0328d9542b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cmiles</media:title>
		</media:content>
	</item>
	</channel>
</rss>