<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.3" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>i like ellipses...</title>
	<link>http://ilikeellipses.com</link>
	<description>the blog for developers who care about more than just code...</description>
	<pubDate>Wed, 15 Apr 2009 21:07:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ILikeEllipses" /><feedburner:info uri="ilikeellipses" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Migration or new features?</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/7K4oCohLvVg/</link>
		<comments>http://ilikeellipses.com/2009/04/15/migration-or-new-features/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 21:04:25 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2009/04/15/migration-or-new-features/</guid>
		<description><![CDATA[Migration is evil. It&#8217;s a pain in the butt. It&#8217;s difficult to test. It&#8217;s time consuming. And it only gets run by each user only once. Is it really worth it?  
As soon as phrases such as &#8220;mapping the data,&#8221; &#8220;data transfer,&#8221; &#8220;data migration,&#8221; or &#8220;convert the legacy data&#8221; appear in the context of [...]]]></description>
			<content:encoded><![CDATA[<p>Migration is evil. It&#8217;s a pain in the butt. It&#8217;s difficult to test. It&#8217;s time consuming. And it only gets run by each user only once. <span class="Apple-style-span" style="font-weight: bold">Is it really worth it?<span class="Apple-style-span" style="font-weight: normal"> </span></span> </p>
<blockquote class="webkit-indent-blockquote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px"><p><span class="Apple-style-span" style="font-style: italic">As soon as phrases such as &#8220;mapping the data,&#8221; &#8220;data transfer,&#8221; &#8220;data migration,&#8221; or &#8220;convert the legacy data&#8221; appear in the context of a project, a wise systems engineer or project manager should see red flags waving&#8230;</span> </p></blockquote>
<blockquote class="webkit-indent-blockquote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px"><p><span class="Apple-style-span" style="font-style: italic"></span><a href="http://www.ertin.com/pr_legacydata.html"><span style="font-size: 9px">[Legacy Data and Software Project Planning]</span> </a> </p></blockquote>
<p> All that time and effort put forth into migration could be used instead to implement new features instead. Users are always clammering for your application to do this or that, fix this bug, add that feature. Do they really care about migrating their old data? </p>
<p> But looking at the total user experience of an application, is lost data really ever ok? Especially when it can be prevented? On the face of it, I want to say no, but if users really want the ability to install your application on a flash drive, they might not care that the upgrade forgot which views they had open. Maybe it&#8217;s <span class="Apple-style-span" style="font-weight: bold">all a matter of impact</span>.</p>
<p>But then again, some users will really care either way. So maybe you&#8217;re just screwed&#8230; </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7K4oCohLvVg:JXvnywBoNR0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7K4oCohLvVg:JXvnywBoNR0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7K4oCohLvVg:JXvnywBoNR0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=7K4oCohLvVg:JXvnywBoNR0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7K4oCohLvVg:JXvnywBoNR0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=7K4oCohLvVg:JXvnywBoNR0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7K4oCohLvVg:JXvnywBoNR0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=7K4oCohLvVg:JXvnywBoNR0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7K4oCohLvVg:JXvnywBoNR0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=7K4oCohLvVg:JXvnywBoNR0:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2009/04/15/migration-or-new-features/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2009/04/15/migration-or-new-features/</feedburner:origLink></item>
		<item>
		<title>The Aaron and Mike Show #3</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/E5j-2SMZM0c/</link>
		<comments>http://ilikeellipses.com/2008/11/06/the-aaron-and-mike-show-3/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 22:17:33 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[The Aaron and Mike Show]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/11/06/the-aaron-and-mike-show-3/</guid>
		<description><![CDATA[Our third installment is signed, sealed and delivered. Despite a temporary change of cohosts and change of location, it&#8230; well&#8230; we got through it. That&#8217;s all that counts. Check it out!
Streaming live video by Ustream
]]></description>
			<content:encoded><![CDATA[<p>Our third installment is signed, sealed and delivered. Despite a temporary change of cohosts and change of location, it&#8230; well&#8230; we got through it. That&#8217;s all that counts. <a href="http://www.ustream.tv/recorded/843853">Check it out</a>!</p>
<p><embed height="320" type="application/x-shockwave-flash" width="400" src="http://www.ustream.tv/flash/video/843853" allowscriptaccess="always" allowfullscreen="true" flashvars="autoplay=false" /><a style="padding-right: 0px; padding-left: 0px; font-weight: normal; font-size: 10px; background: #ffffff; padding-bottom: 4px; width: 400px; color: #000000; padding-top: 2px; display: block; text-align: center; text-decoration: underline" href="http://www.ustream.tv/" target="_blank">Streaming live video by Ustream</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=E5j-2SMZM0c:P0vPxGU4m-o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=E5j-2SMZM0c:P0vPxGU4m-o:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=E5j-2SMZM0c:P0vPxGU4m-o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=E5j-2SMZM0c:P0vPxGU4m-o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=E5j-2SMZM0c:P0vPxGU4m-o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=E5j-2SMZM0c:P0vPxGU4m-o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=E5j-2SMZM0c:P0vPxGU4m-o:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=E5j-2SMZM0c:P0vPxGU4m-o:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=E5j-2SMZM0c:P0vPxGU4m-o:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=E5j-2SMZM0c:P0vPxGU4m-o:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/11/06/the-aaron-and-mike-show-3/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/11/06/the-aaron-and-mike-show-3/</feedburner:origLink></item>
		<item>
		<title>Decoupling Your Classes</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/5Vwj8td0KHA/</link>
		<comments>http://ilikeellipses.com/2008/11/06/decoupling-your-classes/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 22:17:15 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[patterns]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/11/06/decoupling-your-classes/</guid>
		<description><![CDATA[Don&#8217;t you hate it when you go back to some old code and then just want to vomit? I had an experience like that recently. I went into the options form of my pet project Bitter and found this gem:
&#160;
public OptionsForm : Form       {      [...]]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t you hate it when you go back to some old code and then just want to vomit? I had an experience like that recently. I went into the options form of my pet project Bitter and found this gem:</p>
<p>&#160;</p>
<blockquote><p><em>public OptionsForm : Form       <br />{        <br />&#160;&#160;&#160; private void ApplyTheme()        <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; MainForm.GetInstance().UpdateColors();        <br />&#160;&#160;&#160; }        <br />}</em></p>
</blockquote>
<p>&#160;</p>
<p>Bleh! Oob! Ick! Seriously, what was I thinking? Right there, the options form is tied to the MainForm. Those two classes can&#8217;t be reused elsewhere without some rework. Not good. So how do you fix it? My first thought is usually interfaces. So then I came up with this:</p>
<p>&#160;</p>
<blockquote><p><em>interface IThemeable       <br />{        <br />&#160;&#160;&#160; void UpdateColors();        <br />} </em></p>
<p><em></em></p>
<p><em>public OptionsForm : Form       <br />{        <br />&#160;&#160;&#160; public MyForm(IThemeable themeableParent)        <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; m_themeableParent = themeableParent;        <br />&#160;&#160;&#160; } </em></p>
<p><em>&#160;&#160;&#160; private void ApplyTheme()       <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; m_themeableParent.UpdateColors();        <br />&#160;&#160;&#160; }        <br />}</em></p>
</blockquote>
<p>&#160;</p>
<p>Ah&#8230; so much better. Now if the options form gets reused, it&#8217;s parent only needs to implement IThemeable and then I&#8217;m good to go. One other method I tend to use a lot (maybe even overuse) is the <a href="http://en.wikipedia.org/wiki/Observer_pattern">Observer Pattern</a>. In the observer pattern, you have a subject that sends events, produces information, publishes data, or in whatever way has something that an observer of the subject wants. The subject can zero observers, one observers, or N observers. It doesn&#8217;t really care if someone is listening or not. Anyway, here is how I would solve this problem with the observer pattern:</p>
<p>&#160;</p>
<blockquote><p><em>interface IThemeObserver       <br />{        <br />&#160;&#160;&#160; void OnThemeChanged();        <br />} </em></p>
<p><em>interface IThemeSubject       <br />{        <br />&#160;&#160;&#160; void RegisterThemeObserver(IThemeObserver observer);        <br />&#160;&#160;&#160; void OnThemeChanged();        <br />} </em></p>
<p><em>public OptionsForm : Form, IThemeSubject       <br />{        <br />&#160;&#160;&#160; public MyForm(IThemeObserver parent)        <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; RegisterThemeObserver(parent);        <br />&#160;&#160;&#160; } </em></p>
<p><em>&#160;&#160;&#160; public void RegisterThemeObserver(IThemeObserver observer)       <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; m_observers.Add(observer);        <br />&#160;&#160;&#160; } </em></p>
<p><em>&#160;&#160;&#160; public void OnThemeChanged()       <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (IThemeObserver observer in m_observers)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; observer.OnThemeChanged();        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />&#160;&#160;&#160; } </em></p>
<p><em>&#160;&#160;&#160; private void ApplyTheme()       <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; OnThemeChanged();        <br />&#160;&#160;&#160; }        <br />}</em></p>
</blockquote>
<p>&#160;</p>
<p>So those are my modus operandi. How do you fix similar problems?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=5Vwj8td0KHA:rUq5Q154LJs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=5Vwj8td0KHA:rUq5Q154LJs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=5Vwj8td0KHA:rUq5Q154LJs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=5Vwj8td0KHA:rUq5Q154LJs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=5Vwj8td0KHA:rUq5Q154LJs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=5Vwj8td0KHA:rUq5Q154LJs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=5Vwj8td0KHA:rUq5Q154LJs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=5Vwj8td0KHA:rUq5Q154LJs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=5Vwj8td0KHA:rUq5Q154LJs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=5Vwj8td0KHA:rUq5Q154LJs:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/11/06/decoupling-your-classes/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/11/06/decoupling-your-classes/</feedburner:origLink></item>
		<item>
		<title>The Aaron and Mike Show #2</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/9jLFXNbceiU/</link>
		<comments>http://ilikeellipses.com/2008/10/30/the-aaron-and-mike-show-2/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 20:10:12 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[The Aaron and Mike Show]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/10/30/the-aaron-and-mike-show-2/</guid>
		<description><![CDATA[The second show is in the bag. Talked a little about PDC (which I knew very little about) and a little about Aaron&#8217;s upcoming trip. Check it out!
Streaming live video by Ustream
]]></description>
			<content:encoded><![CDATA[<p>The second show is in the bag. Talked a little about PDC (which I knew very little about) and a little about Aaron&#8217;s upcoming trip. <a href="http://www.ustream.tv/recorded/826075">Check it out</a>!</p>
<p><embed height="320" type="application/x-shockwave-flash" width="400" src="http://www.ustream.tv/flash/video/826075" allowscriptaccess="always" allowfullscreen="true" flashvars="autoplay=false" /><a style="padding-right: 0px; padding-left: 0px; font-weight: normal; font-size: 10px; background: #ffffff; padding-bottom: 4px; width: 400px; color: #000000; padding-top: 2px; display: block; text-align: center; text-decoration: underline" href="http://www.ustream.tv/" target="_blank">Streaming live video by Ustream</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=9jLFXNbceiU:5LLfx7rOJME:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=9jLFXNbceiU:5LLfx7rOJME:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=9jLFXNbceiU:5LLfx7rOJME:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=9jLFXNbceiU:5LLfx7rOJME:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=9jLFXNbceiU:5LLfx7rOJME:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=9jLFXNbceiU:5LLfx7rOJME:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=9jLFXNbceiU:5LLfx7rOJME:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=9jLFXNbceiU:5LLfx7rOJME:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=9jLFXNbceiU:5LLfx7rOJME:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=9jLFXNbceiU:5LLfx7rOJME:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/10/30/the-aaron-and-mike-show-2/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/10/30/the-aaron-and-mike-show-2/</feedburner:origLink></item>
		<item>
		<title>I Have a Path.Combine, But How About a Url.Combine?</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/t_KiXbPti4U/</link>
		<comments>http://ilikeellipses.com/2008/10/30/i-have-a-pathcombine-but-how-about-a-urlcombine/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 06:41:23 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/10/30/i-have-a-pathcombine-but-how-about-a-urlcombine/</guid>
		<description><![CDATA[If you&#8217;re wanting to combine two URLs with Path.Combine, then you&#8217;re likely to wind up with something like &#8220;http://bitterware.com\download.html&#8221;&#8230; and that&#8217;s not very good. What we need is something like a Url.Combine. Well, we have something like that. We have Uri.TryCreate, but it&#8217;s not as pretty as Path.Combine. So I prettied it up, wrapped it [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re wanting to combine two URLs with Path.Combine, then you&#8217;re likely to wind up with something like &#8220;<em>http://bitterware.com\download.html&#8221;</em>&#8230; and that&#8217;s not very good. What we need is something like a Url.Combine. Well, we have something like that. We have Uri.TryCreate, but it&#8217;s not as pretty as Path.Combine. So I prettied it up, wrapped it up and thought I&#8217;d share:</p>
<blockquote><p><em>namespace Bitter<br />{<br />&nbsp;&nbsp;&nbsp; namespace Path<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static class Url<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static string Combine(string domain, string page)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string combinedUrl = String.Empty;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uri baseUri = null; </em>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // create the URI object from the string domain<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; baseUri = new Uri(domain);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; baseUri = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </em>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // try to combine and create the new URI<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (baseUri != null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uri value = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Uri.TryCreate(baseUri, page, out value))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; combinedUrl = value.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </em>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return combinedUrl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</em>
<p><em>&#8230;</em></p>
</blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=t_KiXbPti4U:7CU7Bv6nN6M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=t_KiXbPti4U:7CU7Bv6nN6M:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=t_KiXbPti4U:7CU7Bv6nN6M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=t_KiXbPti4U:7CU7Bv6nN6M:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=t_KiXbPti4U:7CU7Bv6nN6M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=t_KiXbPti4U:7CU7Bv6nN6M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=t_KiXbPti4U:7CU7Bv6nN6M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=t_KiXbPti4U:7CU7Bv6nN6M:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=t_KiXbPti4U:7CU7Bv6nN6M:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=t_KiXbPti4U:7CU7Bv6nN6M:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/10/30/i-have-a-pathcombine-but-how-about-a-urlcombine/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/10/30/i-have-a-pathcombine-but-how-about-a-urlcombine/</feedburner:origLink></item>
		<item>
		<title>The Aaron and Mike Show #1</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/ZqvJzdRUlzg/</link>
		<comments>http://ilikeellipses.com/2008/10/24/the-aaron-and-mike-show-1/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 20:07:13 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[The Aaron and Mike Show]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/10/24/the-aaron-and-mike-show-1/</guid>
		<description><![CDATA[Yesterday was a successful run (at least in our eyes) of our first show. The recording starts a few minutes in, pesky record button, but we have most of it. We have the video stored up on ustream in case you missed it. We&#8217;ll be broadcasting again next Thursday, so don&#8217;t miss it!!! Unless you [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday was a successful run (at least in our eyes) of our first show. The recording starts a few minutes in, pesky record button, but we have most of it. We have the <a href="http://www.ustream.tv/recorded/808022">video stored up on ustream</a> in case you missed it. We&#8217;ll be <a href="http://www.ustream.tv/channel/the-aaron-and-mike-show">broadcasting again next Thursday</a>, so don&#8217;t miss it!!! Unless you have something to do&#8230; then watch the recorded version!!!</p>
<p><embed height="320" type="application/x-shockwave-flash" width="400" src="http://www.ustream.tv/flash/video/808022" allowscriptaccess="always" allowfullscreen="true" flashvars="autoplay=false" /><a style="padding-right: 0px; padding-left: 0px; font-weight: normal; font-size: 10px; background: #ffffff; padding-bottom: 4px; width: 400px; color: #000000; padding-top: 2px; display: block; text-align: center; text-decoration: underline" href="http://www.ustream.tv/" target="_blank">Streaming live video by Ustream</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=ZqvJzdRUlzg:JXPCczxpnHo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=ZqvJzdRUlzg:JXPCczxpnHo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=ZqvJzdRUlzg:JXPCczxpnHo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=ZqvJzdRUlzg:JXPCczxpnHo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=ZqvJzdRUlzg:JXPCczxpnHo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=ZqvJzdRUlzg:JXPCczxpnHo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=ZqvJzdRUlzg:JXPCczxpnHo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=ZqvJzdRUlzg:JXPCczxpnHo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=ZqvJzdRUlzg:JXPCczxpnHo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=ZqvJzdRUlzg:JXPCczxpnHo:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/10/24/the-aaron-and-mike-show-1/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/10/24/the-aaron-and-mike-show-1/</feedburner:origLink></item>
		<item>
		<title>Showing Administrator Shield on a Button</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/98X4bKV4eKQ/</link>
		<comments>http://ilikeellipses.com/2008/10/24/showing-administrator-shield-on-a-button/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 17:38:03 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/10/24/showing-administrator-shield-on-a-button/</guid>
		<description><![CDATA[By now, I&#8217;m sure that everyone has seen the little shield image on a button or file:
 
We all know that it means that you need adminstrator rights, or to log in to an admin account in order to install something or perform some operation that only admins can do. Well recently I&#8217;ve been working [...]]]></description>
			<content:encoded><![CDATA[<p>By now, I&#8217;m sure that everyone has seen the little shield image on a button or file:</p>
<p><img src="http://i183.photobucket.com/albums/x294/mike6024/PaintNetShieldButton.png" /> </p>
<p>We all know that it means that you need adminstrator rights, or to log in to an admin account in order to install something or perform some operation that only admins can do. Well recently I&#8217;ve been working on an install and on the auto-updating feature of <a href="http://bitterware.com">Bitter</a>, so I really wanted the ability to show this so that users immediately knew that it required admin rights. But how do you do this in C#? Well, of course, there&#8217;s no simple Button.ShowShield() method or anything as easy as that. You need to import a dll and then call a method with a certain constant. Fun, eh? Anyway, I wrapped all that into a class and thought I&#8217;d share. If anyone finds any bugs or improvements let me know. Enjoy!</p>
<blockquote><p><em>class ShieldButton : Button       <br />{        <br />&#160;&#160;&#160; [DllImport(&quot;user32.dll&quot;)]        <br />&#160;&#160;&#160; private static extern IntPtr SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam); </em></p>
<p><em>&#160;&#160;&#160; // Define BCM_SETSHIELD locally, declared originally in Commctrl.h       <br />&#160;&#160;&#160; private const uint BCM_SETSHIELD = 0&#215;0000160C; </em></p>
<p><em>&#160;&#160;&#160; private bool m_useShield = true; </em></p>
<p><em>&#160;&#160;&#160; protected override void OnCreateControl()       <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; base.OnCreateControl();        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; SetShield();        <br />&#160;&#160;&#160; } </em></p>
<p><em>&#160;&#160;&#160; private void SetShield()       <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (m_useShield)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Set button style to the system style, else the shield image won&#8217;t show        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.FlatStyle = FlatStyle.System; </em></p>
<p><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Send the BCM_SETSHIELD message to the button control to show the shield image       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SendMessage(new HandleRef(this, this.Handle), BCM_SETSHIELD, new IntPtr(0), new IntPtr(1));        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; else        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Send the BCM_SETSHIELD message to the button control to hide the shield image        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SendMessage(new HandleRef(this, this.Handle), BCM_SETSHIELD, new IntPtr(0), new IntPtr(0)); </em></p>
<p><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Set button style back to the system style, since we removed the shield image       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.FlatStyle = FlatStyle.Standard;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />&#160;&#160;&#160; } </em></p>
<p><em>&#160;&#160;&#160; public bool Enabled       <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; get        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return base.Enabled;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </em></p>
<p><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160; set       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // need to hide the shield image before disabling, else it won&#8217;t disable properly        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; m_useShield = value;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SetShield(); </em></p>
<p><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; base.Enabled = value;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />&#160;&#160;&#160; }        <br />}</em></p>
</blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=98X4bKV4eKQ:MLtnxPpwAH4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=98X4bKV4eKQ:MLtnxPpwAH4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=98X4bKV4eKQ:MLtnxPpwAH4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=98X4bKV4eKQ:MLtnxPpwAH4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=98X4bKV4eKQ:MLtnxPpwAH4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=98X4bKV4eKQ:MLtnxPpwAH4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=98X4bKV4eKQ:MLtnxPpwAH4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=98X4bKV4eKQ:MLtnxPpwAH4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=98X4bKV4eKQ:MLtnxPpwAH4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=98X4bKV4eKQ:MLtnxPpwAH4:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/10/24/showing-administrator-shield-on-a-button/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/10/24/showing-administrator-shield-on-a-button/</feedburner:origLink></item>
		<item>
		<title>The Aaron and Mike Show</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/GW-xWQggdKw/</link>
		<comments>http://ilikeellipses.com/2008/10/23/the-aaron-and-mike-show/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 15:52:21 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/10/23/the-aaron-and-mike-show/</guid>
		<description><![CDATA[Aaron Lerch and I have started a new venture. No, it&#8217;s not &#34;The Aaron and Mike Show&#34;. Ok, maybe it is. Basically we&#8217;re going to be talking tech and probably making fools of ourselves along the way. It&#8217;s being broadcast at 4pm EST live and we&#8217;ll keep the recordings around for later viewing. Check it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://aaronlerch.com">Aaron Lerch</a> and I have started a new venture. No, it&#8217;s not &quot;The Aaron and Mike Show&quot;. Ok, maybe it is. Basically we&#8217;re going to be talking tech and probably making fools of ourselves along the way. It&#8217;s being broadcast at 4pm EST live and we&#8217;ll keep the recordings around for later viewing. <a href="http://ilikeellipses.com/live/">Check it out.</a></p>
<p>But there&#8217;s also been talk of The Mike and Aaron Show too. So stay tuned&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=GW-xWQggdKw:XfFRFwUH4ks:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=GW-xWQggdKw:XfFRFwUH4ks:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=GW-xWQggdKw:XfFRFwUH4ks:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=GW-xWQggdKw:XfFRFwUH4ks:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=GW-xWQggdKw:XfFRFwUH4ks:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=GW-xWQggdKw:XfFRFwUH4ks:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=GW-xWQggdKw:XfFRFwUH4ks:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=GW-xWQggdKw:XfFRFwUH4ks:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=GW-xWQggdKw:XfFRFwUH4ks:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=GW-xWQggdKw:XfFRFwUH4ks:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/10/23/the-aaron-and-mike-show/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/10/23/the-aaron-and-mike-show/</feedburner:origLink></item>
		<item>
		<title>Zune 3.0 Software Released</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/Hv2VPxtb00w/</link>
		<comments>http://ilikeellipses.com/2008/09/16/zune-30-software-released/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 18:49:52 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[Zune]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/09/16/zune-30-software-released/</guid>
		<description><![CDATA[New software for the Zune for both the desktop and the device was released today.

You can download it, but the Zune desktop software should do that for you. Anyway, it looks like some new features are managing your Zune identity and a new search box on the desktop.
 
And on the device, there&#8217;s games, a [...]]]></description>
			<content:encoded><![CDATA[<p>New software for the Zune for both the desktop and the device was <a href="http://www.zune.net/en-US/whatsnew.html">released today</a>.</p>
<p><a href="http://i183.photobucket.com/albums/x294/mike6024/ZuneDesktopIdentity.png"><img src="http://i183.photobucket.com/albums/x294/mike6024/ZuneDesktopIdentitysm.png"></a></p>
<p>You can <a href="http://www.zune.net/en-us/products/zunesoftware/download.htm">download it</a>, but the Zune desktop software should do that for you. Anyway, it looks like some new features are managing your Zune identity and a new search box on the desktop.</p>
<p><img src="http://i183.photobucket.com/albums/x294/mike6024/ZuneMarketplaceOnDevice.jpg"> </p>
<p>And on the device, there&#8217;s games, a clock, tagging a song you hear using the FM radio&nbsp; as well as&#8230; purchasing media wirelessly! Awesome. Now if only I could get the wireless to work on my Zune&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=Hv2VPxtb00w:aE4lWtsWKFA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=Hv2VPxtb00w:aE4lWtsWKFA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=Hv2VPxtb00w:aE4lWtsWKFA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=Hv2VPxtb00w:aE4lWtsWKFA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=Hv2VPxtb00w:aE4lWtsWKFA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=Hv2VPxtb00w:aE4lWtsWKFA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=Hv2VPxtb00w:aE4lWtsWKFA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=Hv2VPxtb00w:aE4lWtsWKFA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=Hv2VPxtb00w:aE4lWtsWKFA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=Hv2VPxtb00w:aE4lWtsWKFA:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/09/16/zune-30-software-released/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/09/16/zune-30-software-released/</feedburner:origLink></item>
		<item>
		<title>How Soon We Forget</title>
		<link>http://feedproxy.google.com/~r/ILikeEllipses/~3/7CNVOOUudBE/</link>
		<comments>http://ilikeellipses.com/2008/09/08/how-soon-we-forget/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 16:22:49 +0000</pubDate>
		<dc:creator>mike hall</dc:creator>
		
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://ilikeellipses.com/2008/09/08/how-soon-we-forget/</guid>
		<description><![CDATA[According to this other Mike Hall, Vista isn&#8217;t all it&#8217;s cracked up to be. Apparently it&#8217;s too difficult to understand, especially that darn Windows logo:
It&#8217;s completely alien to the user until they get used to it. It&#8217;s silly little things like where you used to have the Start menu &#8212; it&#8217;s now a Windows graphic [...]]]></description>
			<content:encoded><![CDATA[<p>According to this other Mike Hall, Vista isn&#8217;t <a href="http://www.crainsmanchesterbusiness.co.uk/apps/pbcs.dll/article?AID=/20080908/SUB/309089989/1027/toc/-/-/hasta-la-vista-vista">all it&#8217;s cracked up to be</a>. Apparently it&#8217;s too difficult to understand, especially that darn Windows logo:</p>
<blockquote><p><em>It&#8217;s completely alien to the user until they get used to it. It&#8217;s silly little things like where you used to have the Start menu &#8212; it&#8217;s now a Windows graphic which is harder to explain on a support helpline.</em></p>
</blockquote>
<p>Yeah, training people to click on the logo instead of the &quot;Start&quot; text will take several hundred man hours. Other companies have had &quot;problems&quot; too:</p>
<blockquote><p><em>Transfer of files is actually slower than in previous versions</em></p>
</blockquote>
<p>And even though much of that problem has been addressed in SP1, we won&#8217;t mention that.</p>
<blockquote><p><em>Putting a Vista machine on a desk costs more money</em></p>
</blockquote>
<p>Wait a second here&#8230; so you&#8217;re telling me that the newest, up-to-date OS with all the new features and better security takes better hardware to run? Ok, wait&#8230; slow down&#8230; It does more <strong>AND</strong> it needs more RAM and proc speed? Wait wait&#8230; So you&#8217;re saying I don&#8217;t get all that for free. Ok, you&#8217;re still going too fast for me&#8230;</p>
<p>What people love to forget is that the same things were said when XP came out. &quot;Why go with XP? We love Windows 2000!&quot; XP was the new, glitzy OS with all the bells and whistles. There were compatibility problems. It took more RAM and beefier processors. But that&#8217;s how this game works. But people just love to blame Vista. They <strong>want</strong> to blame Vista.</p>
<p>What&#8217;s worse is that they don&#8217;t even want to try it out first, because if they did, <a href="http://www.mojaveexperiment.com/">they&#8217;d probably like it</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7CNVOOUudBE:OWxTi7sFBEA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7CNVOOUudBE:OWxTi7sFBEA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7CNVOOUudBE:OWxTi7sFBEA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=7CNVOOUudBE:OWxTi7sFBEA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7CNVOOUudBE:OWxTi7sFBEA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=7CNVOOUudBE:OWxTi7sFBEA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7CNVOOUudBE:OWxTi7sFBEA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=7CNVOOUudBE:OWxTi7sFBEA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ILikeEllipses?a=7CNVOOUudBE:OWxTi7sFBEA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ILikeEllipses?i=7CNVOOUudBE:OWxTi7sFBEA:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://ilikeellipses.com/2008/09/08/how-soon-we-forget/feed/</wfw:commentRss>
		<feedburner:origLink>http://ilikeellipses.com/2008/09/08/how-soon-we-forget/</feedburner:origLink></item>
	</channel>
</rss>
