<?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/"
	>

<channel>
	<title>Tamir Khason - Just code &#187; Performance</title>
	<atom:link href="http://khason.net/tag/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://khason.net</link>
	<description>Take care of the sense, and the sounds will take care of themselves.</description>
	<lastBuildDate>Sun, 08 Nov 2009 18:24:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Real singleton approach in WPF application</title>
		<link>http://khason.net/dev/read-singleton-approach-in-wpf-application/</link>
		<comments>http://khason.net/dev/read-singleton-approach-in-wpf-application/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 20:19:35 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[DEV]]></category>
		<category><![CDATA[.NET 3.5]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://khason.net/dev/read-singleton-approach-in-wpf-application/</guid>
		<description><![CDATA[One of the most common problems in WPF is memory/processor time consumption. Yes, WPF is rather greedy framework. It become even greedier when using unmanaged resources, such as memory files or interop images. To take care on it, you can implement singleton pattern for the application and share only one unmanaged instance among different application [...]


Related posts:<ol><li><a href='http://khason.net/dev/inotifypropertychanged-auto-wiring-or-how-to-get-rid-of-redundant-code/' rel='bookmark' title='Permanent Link: INotifyPropertyChanged auto wiring or how to get rid of redundant code'>INotifyPropertyChanged auto wiring or how to get rid of redundant code</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>One of the most common problems in WPF is memory/processor time consumption. Yes, WPF is rather greedy framework. It become even greedier when using unmanaged resources, such as memory files or interop images. To take care on it, you can implement singleton pattern for the application and share only one unmanaged instance among different application resources. So today we’ll try to create one large in-memory dynamic bitmap and share it between different instances of WPF controls. Let’s start</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="The Singleton" border="0" alt="The Singleton" src="http://khason.net/images/2009/08/image2.png" width="206" height="520" /> </p>
<p>First of all let’s create our single instance source. The pattern is straight forward. Create a class derived from INotifyPropertyChanged, create private constructor and static member returns the single instance of the class.</p>
<blockquote><p>public class MySingleton : INotifyPropertyChanged { </p>
<p>&#160;&#160; #region Properties     <br />&#160;&#160; public BitmapSource Source { get { return _source; } }      <br />&#160;&#160; public static MySingleton Instance {      <br />&#160;&#160;&#160;&#160;&#160; get {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (_instance == default(MySingleton)) _instance = new MySingleton();      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return _instance;      <br />&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160; }      <br />&#160;&#160; #endregion </p>
<p>&#160;&#160; #region ctor     <br />&#160;&#160; private MySingleton() { _init(); }      <br />&#160;&#160; #endregion</p>
</blockquote>
<p>Now we need to create this single instance of this class inside our XAML program. To do this, we have great extension x:Static</p>
<blockquote><p>&lt;Window.DataContext&gt;     <br />&#160;&#160;&#160; &lt;x:StaticExtension Member=&quot;l:MySingleton.Instance&quot; /&gt;      <br />&lt;/Window.DataContext&gt;</p>
</blockquote>
<p>Now we need to find a way to do all dirty work inside MySingleton and keep classes using it as simple is possible. For this purpose we’ll register class handler to catch all GotFocus routed events, check the target of the event and rebind the only instance to new focused element. How to do this? Simple as 1-2-3</p>
<p>Create class handler</p>
<blockquote><p>EventManager.RegisterClassHandler(typeof(FrameworkElement), FrameworkElement.GotFocusEvent, (RoutedEventHandler)_onAnotherItemFocused);</p>
</blockquote>
<p>Check whether selected and focused item of the right type</p>
<blockquote><p>private void _onAnotherItemFocused(object sender, RoutedEventArgs e) {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; DependencyPropertyDescriptor.FromProperty(ListBoxItem.IsSelectedProperty, typeof(ListBoxItem)).AddValueChanged(sender, (s, ex) =&gt; {}</p>
</blockquote>
<p>and reset binding </p>
<blockquote><p>var item = s as ListBoxItem;     <br />var img = item.Content as Image;      <br />if (_current != null &amp;&amp; _current.Target is Image &amp;&amp; _current.Target != img) {      <br />&#160;&#160; ((Image)_current.Target).ClearValue(Image.SourceProperty);      <br />}       <br />if (img != null) {      <br />&#160;&#160; _current = new WeakReference(img);      <br />&#160;&#160; img.SetBinding(Image.SourceProperty, _binding);      <br />}</p>
</blockquote>
<p>We almost done. a bit grease to make the source bitmap shiny </p>
<blockquote><p>var count = (uint)(_w * _h * 4);     <br />var section = CreateFileMapping(new IntPtr(-1), IntPtr.Zero, 0&#215;04, 0, count, null);      <br />_map = MapViewOfFile(section, 0xF001F, 0, 0, count);      <br />_source = Imaging.CreateBitmapSourceFromMemorySection(section, _w, _h, PixelFormats.Bgr32, (int)(_w * 4), 0) as InteropBitmap;      <br />_binding = new Binding {      <br />&#160;&#160; Mode = BindingMode.OneWay,      <br />&#160;&#160; Source = _source      <br />};      <br />CompositionTarget.Rendering += (s, e) =&gt; { _invalidate(); };</p>
</blockquote>
<blockquote><p>private void _invalidate() {     <br />&#160;&#160; var color = (uint)((uint)0xFF &lt;&lt; 24) | (uint)(_pixel &lt;&lt; 16) | (uint)(_pixel &lt;&lt; <img src='http://khason.net/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> | (uint)_pixel;      <br />&#160;&#160; _pixel++; </p>
<p>&#160;&#160; unsafe {     <br />&#160;&#160;&#160;&#160;&#160; uint* pBuffer = (uint*)_map;      <br />&#160;&#160;&#160;&#160;&#160; int _pxs = (_w * _h);      <br />&#160;&#160;&#160;&#160;&#160; for (var i = 0; i &lt; _pxs; i++) {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; pBuffer[i] = color;      <br />&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160; }      <br />&#160;&#160; _source.Invalidate();      <br />&#160;&#160; OnPropertyChanged(&quot;Source&quot;);      <br />}</p>
</blockquote>
<p>And we done. The usage of this approach is very simple – there is no usage at all. All happens automagically inside MySingleton class, all you need is to set static data context and add images</p>
<blockquote><p>&lt;StackPanel&gt;     <br />&#160;&#160;&#160; &lt;Button Click=&quot;_addAnother&quot;&gt;Add another&#8230;&lt;/Button&gt;      <br />&#160;&#160;&#160; &lt;ListBox Name=&quot;target&quot; /&gt;      <br />&lt;/StackPanel&gt;      <br />…      <br />private void _addAnother(object sender, RoutedEventArgs e) {      <br />&#160;&#160; var img = new Image { Width=200, Height=200, Margin=new Thickness(0,5,0,5) };      <br />&#160;&#160; target.Items.Add(img);      <br />&#160;&#160; this.Height += 200;      <br />}</p>
</blockquote>
<p>To summarize: in this article we learned how to use singletons as data sources for your XAML application, how to reuse it across WPF, how to connect to routed events externally and also how to handle dependency property changed from outside of the owner class. Have a nice day and be good people. </p>
<p><a href="http://khason.net/images/2009/08/ReuseSingleton.zip" target="_blank">Source code for this article (21k) &gt;&gt;</a></p>
<p>To make it works press number of times on “Add another…” button and then start selecting images used as listbox items. Pay attention to the working set of the application. Due to the fact that only one instance is in use it is not growing.</p>


<p>Related posts:<ol><li><a href='http://khason.net/dev/inotifypropertychanged-auto-wiring-or-how-to-get-rid-of-redundant-code/' rel='bookmark' title='Permanent Link: INotifyPropertyChanged auto wiring or how to get rid of redundant code'>INotifyPropertyChanged auto wiring or how to get rid of redundant code</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/dev/read-singleton-approach-in-wpf-application/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8220;Zone of Pain vs. Zone of Uselessness&#8221; or code analysis with NDepend</title>
		<link>http://khason.net/tech/zone-of-pain-vs-zone-of-uselessness-or-code-analysis-with-ndepend/</link>
		<comments>http://khason.net/tech/zone-of-pain-vs-zone-of-uselessness-or-code-analysis-with-ndepend/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 19:41:31 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[TECH]]></category>
		<category><![CDATA[.NET 3.5]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[DEV]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[promo]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[soft]]></category>

		<guid isPermaLink="false">http://khason.net/tech/zone-of-pain-vs-zone-of-uselessness-or-code-analysis-with-ndepend/</guid>
		<description><![CDATA[As for me, there are only two kinds of projects – hobbyist’s nifty tools and systems (scale may wary). The main difference between those is the easiness of making changes and refactoring. Other words, how many other developers I should persuade to do it just because “In the final analysis, it’s their war” – JFK. [...]


Related posts:<ol><li><a href='http://khason.net/tech/some-new-in-mix-downloads/' rel='bookmark' title='Permanent Link: Some new in-mix downloads'>Some new in-mix downloads</a></li>
<li><a href='http://khason.net/dev/inotifypropertychanged-auto-wiring-or-how-to-get-rid-of-redundant-code/' rel='bookmark' title='Permanent Link: INotifyPropertyChanged auto wiring or how to get rid of redundant code'>INotifyPropertyChanged auto wiring or how to get rid of redundant code</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>As for me, there are only two kinds of projects – hobbyist’s nifty tools and systems (scale may wary). The main difference between those is the easiness of making changes and refactoring. Other words, how many other developers I should persuade to do it just because “In the final analysis, it’s their war” – <em>JFK</em>. But what can be <strong>the</strong> good reason for such fast talk? &#8211; “You code sucks or at least it ought to”.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AbstractnessVSInstability" border="0" alt="AbstractnessVSInstability" src="http://khason.net/images/2009/07/AbstractnessVSInstability.png" width="250" height="250" /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AbstractnessVSInstability[10]" border="0" alt="AbstractnessVSInstability[10]" src="http://khason.net/images/2009/07/AbstractnessVSInstability10.png" width="250" height="250" />     <br />“Every generation needs a new revolution” – <em>Thomas Jefferson</em></p>
<p>So, in order to win such revolution for “systems” you absolutely need static analysis tools like <a href="http://www.ndepend.com/" target="_blank">NDepend</a>. Those tools are not intended for being your advocates, but those intended to help you to understand all risks and approximate the amount of work should be done to fulfill another revolution.</p>
<p>Unfortunately, you cannot use such tools for fair measuring of code quality because of Computer Science rules of thumb. How to decide whether “methods is too big” or “method is too complex”? However you can (and should) use it for dependencies risk detection. For example, in following illustration you can clear understand that any change inside BetterPlace.Core or BetterPlace.Model assemblies (and namespaces) can be painful.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Dependencies diagram" border="0" alt="Dependencies diagram" src="http://khason.net/images/2009/07/image1.png" width="387" height="230" /> </p>
<p>Now the only question is who is responsible of modules, using it and how long will it take to convince them to make a revolution.</p>
<p>&#160;<img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Dependency Matrix" border="0" alt="Dependency Matrix" src="http://khason.net/images/2009/07/image2.png" width="659" height="129" /> </p>
<p>From here you can start using CQL (<a href="http://www.ndepend.com/CQL.htm" target="_blank">Code Query Language</a>) which is SQL like language invented by <a href="http://www.smacchia.com/" target="_blank">Patrick</a>, the author of NDepend, for querying code elements and sections. By using it, you can define what “method is too big” means in terms of your project.</p>
<blockquote dir="ltr"><p>SELECT METHODS WHERE NbLinesOfCode &gt; 300 ORDER BY NbLinesOfCode DESC</p>
</blockquote>
<p>Or see where you should replace method overloads by default arguments, introduced in .NET 4.0</p>
<blockquote><p>SELECT METHODS WHERE NbOverloads &gt; 1 ORDER BY NbOverloads DESC</p>
</blockquote>
<p>Then, when you marked all places and human targets for revolution, you can start it. After you done, you can even compare builds and measure the amount of work and quality of results achieved.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Application metrix" border="0" alt="Application metrix" src="http://khason.net/images/2009/07/image3.png" width="252" height="120" /> <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Application metrix" border="0" alt="Application metrix" src="http://khason.net/images/2009/07/image4.png" width="250" height="123" /> </p>
<p>To finalize, I just touched the tip of what <a href="http://www.ndepend.com/" target="_blank">good static analysis tool</a> can be used for. So <a href="http://www.ndepend.com/NDependDownload.aspx" target="_blank">get it</a>, <a href="http://www.ndepend.com/GettingStarted.aspx" target="_blank">learn it</a> and use it not only when you need to make a revolutions, but also during your application design and build process to be aware about how the new monster created will looks like.</p>
<h4><a href="http://www.ndepend.com/NDependDownload.aspx" target="_blank">Download NDepend &gt;&gt;</a></h4>
<p><em>Proper disclosure: Apr 15, Patrick, the author of NDepend, asked me to review his tool and offer one license for evaluation. I told him, that do not need to evaluate it because I’m using it for a while (also I had the license of my own) and I’ll be happy to write a review once I’ll have a bit time for it. Now it happened. Thank you, Patrick, for such good work!</em></p>


<p>Related posts:<ol><li><a href='http://khason.net/tech/some-new-in-mix-downloads/' rel='bookmark' title='Permanent Link: Some new in-mix downloads'>Some new in-mix downloads</a></li>
<li><a href='http://khason.net/dev/inotifypropertychanged-auto-wiring-or-how-to-get-rid-of-redundant-code/' rel='bookmark' title='Permanent Link: INotifyPropertyChanged auto wiring or how to get rid of redundant code'>INotifyPropertyChanged auto wiring or how to get rid of redundant code</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/tech/zone-of-pain-vs-zone-of-uselessness-or-code-analysis-with-ndepend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book review: C# 2008 and 2005 Threaded Programming</title>
		<link>http://khason.net/blog/book-review-c-2008-and-2005-threaded-programming/</link>
		<comments>http://khason.net/blog/book-review-c-2008-and-2005-threaded-programming/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 21:42:28 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[BLOG]]></category>
		<category><![CDATA[blogging general]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PLINQ]]></category>
		<category><![CDATA[promo]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[TECH]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://khason.net/blog/book-review-c-2008-and-2005-threaded-programming/</guid>
		<description><![CDATA[A couple of weeks ago, Packt publishing asked me to review Gastón C. Hillar book “C# 2008 and 2005 Threaded Programming: Beginner&#8217;s Guide”. They sent me a copy of this book and today, I’m ready to write a review for it. But before I’ll start reviewing it, I want to apologize to the publisher and [...]


Related posts:<ol><li><a href='http://khason.net/tech/zone-of-pain-vs-zone-of-uselessness-or-code-analysis-with-ndepend/' rel='bookmark' title='Permanent Link: &ldquo;Zone of Pain vs. Zone of Uselessness&rdquo; or code analysis with NDepend'>&ldquo;Zone of Pain vs. Zone of Uselessness&rdquo; or code analysis with NDepend</a></li>
<li><a href='http://khason.net/tech/some-new-in-mix-downloads/' rel='bookmark' title='Permanent Link: Some new in-mix downloads'>Some new in-mix downloads</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, <a href="http://www.packtpub.com/" target="_blank">Packt publishing</a> asked me to review Gastón C. Hillar book “<a href="http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book" target="_new">C# 2008 and 2005 Threaded Programming: Beginner&#8217;s Guide</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=israkniga-20&amp;l=as2&amp;o=1&amp;a=1847197108" width="1" border="0" />”. They sent me a copy of this book and today, I’m ready to write a review for it. But before I’ll start reviewing it, I want to apologize to the publisher and author for the impartial review.</p>
<p><a href="http://www.amazon.com/gp/product/1847197108?ie=UTF8&amp;tag=israkniga-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1847197108" target="_new"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="420" alt="image" src="http://khason.net/images/2009/03/image.png" width="340" border="0" /></a></p>
<p>First of all, you should understand, that <a href="http://www.amazon.com/gp/product/1847197108?ie=UTF8&amp;tag=israkniga-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1847197108" target="_new">this book</a> is about <strong>how</strong> it possible (for this book author) to write four programs (with awful user interface) using different classes from System.Threading namespace to perform tasks, rather then <strong>what </strong>is multithreaded programming and how to achieve best performance by utilizing multiple CPU power. Your own programs will not run faster after reading this book, but you’ll probably know (if you did not know before) how to use <a title="Read MSDN documentation about System.ComponentModel.BackgroundWorker class" href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx" target="_blank" rel="tag">BackgroundWorker</a>, <a title="Read MSDN documentation about System.Threading.Thread class" href="http://msdn.microsoft.com/en-us/library/system.threading.thread.aspx" target="_blank" rel="tag">Thread</a>, <a title="Read MSDN documentation about System.Threading.ThreadPool Class" href="http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx" target="_blank" rel="tag">ThreadPool</a>, <a title="Read MSDN documentation about System.Threading.AutoResetEvent Class" href="http://msdn.microsoft.com/en-us/library/system.threading.autoresetevent.aspx" target="_blank" rel="tag">AutoResetEvent</a> and <a title="Read MSDN documentation about System.Threading.WaitHandle Class" href="http://msdn.microsoft.com/en-us/library/system.threading.waithandle.aspx" target="_blank" rel="tag">WaitHandle</a> classes. Also, there is a small chapter about thread context switching for UI thread delegates invocation and <a href="http://msdn.microsoft.com/en-us/concurrency/default.aspx" target="_blank">parallel extensions</a>.</p>
<p>There are some technical misconceptions and errors in this book. But it is not the major problem of it. The problem is that while reading this book I question myself whom this book aimed at? Language style is somewhere between blog chatting (better then mine) and <a href="http://msdn.microsoft.com/en-us/library/ms684841(VS.85).aspx" target="_blank">MSDN style documentation</a>. I admit I don’t know quite how to categorize this, the author writes in a style that is just bizarre (even more bizarre then mine in this blog <img src='http://khason.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) Overall, it sounds like I’m reading a conversation between two beginner-level programmers trying to explain one each other why they are using certain coding convention in C#.</p>
<p>Another half of this 395 pages book is just copy-paste stuff from Visual Studio (including it default tabulations and indentations). Here one of representative examples of such copy/paste</p>
<blockquote><p>// Disable the Start button      <br />butStart.Enabled = false;       <br />// Enable the Start button       <br />butStart.Enabled = true;       </p>
<p>…       </p>
<p>// Some very useful property, which used as private member for another public property       <br />private int priVeryUserfulProperty; </p>
</blockquote>
<blockquote><p>public int VeryUserfulProperty      <br />{       <br />&#160;&#160; get       <br />&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160; return priVeryUserfulProperty;       <br />&#160;&#160; }       <br />&#160;&#160; set       <br />&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160; priVeryUserfulProperty = value;       <br />&#160;&#160; }       <br />}</p>
</blockquote>
<p><strong>Verdict</strong>: Not very exemplary introduction to some classes inside System.Threading namespace for fellow students who like to read blogs, rather then books and documentation and do not want to understand how it works under the hoods, but write something and forget it. </p>
<p><strong>3- of 5</strong> on my scale. <a href="http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book" target="_blank">This book</a> is not <strong>all</strong> bad, though, but apparently suitable for very specific audience, which definitely excludes me.</p>


<p>Related posts:<ol><li><a href='http://khason.net/tech/zone-of-pain-vs-zone-of-uselessness-or-code-analysis-with-ndepend/' rel='bookmark' title='Permanent Link: &ldquo;Zone of Pain vs. Zone of Uselessness&rdquo; or code analysis with NDepend'>&ldquo;Zone of Pain vs. Zone of Uselessness&rdquo; or code analysis with NDepend</a></li>
<li><a href='http://khason.net/tech/some-new-in-mix-downloads/' rel='bookmark' title='Permanent Link: Some new in-mix downloads'>Some new in-mix downloads</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/blog/book-review-c-2008-and-2005-threaded-programming/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Finally I can reveal stuff I working for last half year!</title>
		<link>http://khason.net/blog/finally-i-can-reveal-stuff-i-working-for-last-half-year/</link>
		<comments>http://khason.net/blog/finally-i-can-reveal-stuff-i-working-for-last-half-year/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 17:19:39 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[BLOG]]></category>
		<category><![CDATA[blogging general]]></category>
		<category><![CDATA[demos]]></category>
		<category><![CDATA[My tools]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[promo]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[Work process]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://khason.net/blog/finally-i-can-reveal-stuff-i-working-for-last-half-year/</guid>
		<description><![CDATA[A couple of days ago WordFocus exposed one of our (frankly old   ) WPF prototypes for in-car energy assistant system, so today I can exclusively show you some of screens from this state of art WPF work. Real time performance of WPF touch screen application, running on low power automotive grade PC, which [...]


Related posts:<ol><li><a href='http://khason.net/blog/how-to-pass-technical-interview-in-better-place/' rel='bookmark' title='Permanent Link: How to pass technical interview in Better Place'>How to pass technical interview in Better Place</a></li>
<li><a href='http://khason.net/blog/book-review-c-2008-and-2005-threaded-programming/' rel='bookmark' title='Permanent Link: Book review: C# 2008 and 2005 Threaded Programming'>Book review: C# 2008 and 2005 Threaded Programming</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago <a href="http://worldfocus.org/blog/2009/02/09/israeli-company-builds-infrastructure-for-worlds-electric-cars/3977/" target="_blank">WordFocus exposed</a> one of <a href="http://www.betterplace.com/" target="_blank">our</a> (frankly old <img src='http://khason.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) <a title="See all WPF related posts" rel="tag" href="http://khason.net/tag/wpf/" target="_blank">WPF</a> prototypes for in-car energy assistant system, so today I can exclusively show you some of screens from this state of art WPF work. Real time performance of WPF touch screen application, running on low power automotive grade PC, which <a href="http://khason.net/blog/what-boots-faster-%e2%80%93-netbook-powered-windows-xp-or-nokia-e71-mobile-phone/" target="_blank">boots faster, then Nokia phone</a>. Huge respect for all developers and P-defs.</p>
<p><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="Map overview" src="http://khason.net/images/2009/02/c1.jpg" border="0" alt="Map overview" width="640" height="432" /></p>
<p><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="Planning screen" src="http://khason.net/images/2009/02/c2.jpg" border="0" alt="Planning screen" width="640" height="434" /> <img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="Navigation draving state" src="http://khason.net/images/2009/02/c9.jpg" border="0" alt="Navigation draving state" width="640" height="430" /></p>
<p><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="Applications" src="http://khason.net/images/2009/02/c6.jpg" border="0" alt="Applications" width="640" height="436" /></p>
<p>Full video report by <a href="http://worldfocus.org/" target="_blank">WorldFocus.org</a></p>


<p>Related posts:<ol><li><a href='http://khason.net/blog/how-to-pass-technical-interview-in-better-place/' rel='bookmark' title='Permanent Link: How to pass technical interview in Better Place'>How to pass technical interview in Better Place</a></li>
<li><a href='http://khason.net/blog/book-review-c-2008-and-2005-threaded-programming/' rel='bookmark' title='Permanent Link: Book review: C# 2008 and 2005 Threaded Programming'>Book review: C# 2008 and 2005 Threaded Programming</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/blog/finally-i-can-reveal-stuff-i-working-for-last-half-year/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Quick how to: Reduce number of colors programmatically</title>
		<link>http://khason.net/dev/quick-how-to-reduce-number-of-colors-programmatically/</link>
		<comments>http://khason.net/dev/quick-how-to-reduce-number-of-colors-programmatically/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 18:46:50 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[DEV]]></category>
		<category><![CDATA[.NET 3.5]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Work process]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[WPF crossbow]]></category>

		<guid isPermaLink="false">http://khason.net/dev/quick-how-to-reduce-number-of-colors-programmatically/</guid>
		<description><![CDATA[My colleague just asked me about how to reduce a number of colors in image programmatically. This is very simple task and contains of 43   steps:

First of all, you have to read a source image
using (var img = Image.FromFile(name)) {
var bmpEncoder = ImageCodecInfo.GetImageDecoders().FirstOrDefault(e =&#62; e.FormatID == ImageFormat.Bmp.Guid);
Then create your own encoder with certain [...]


Related posts:<ol><li><a href='http://khason.net/dev/read-singleton-approach-in-wpf-application/' rel='bookmark' title='Permanent Link: Real singleton approach in WPF application'>Real singleton approach in WPF application</a></li>
<li><a href='http://khason.net/dev/inotifypropertychanged-auto-wiring-or-how-to-get-rid-of-redundant-code/' rel='bookmark' title='Permanent Link: INotifyPropertyChanged auto wiring or how to get rid of redundant code'>INotifyPropertyChanged auto wiring or how to get rid of redundant code</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>My colleague just asked me about how to reduce a number of colors in image programmatically. This is very simple task and contains of 43 <img src='http://khason.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  steps:</p>
<p><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="Simple color matrix" src="http://khason.net/images/2009/02/image2.png" border="0" alt="Simple color matrix" width="383" height="366" /></p>
<p>First of all, you have to read a source image</p>
<blockquote><p>using (var img = Image.FromFile(name)) {<br />
var bmpEncoder = ImageCodecInfo.GetImageDecoders().FirstOrDefault(e =&gt; e.FormatID == ImageFormat.Bmp.Guid);</p></blockquote>
<p>Then create your own encoder with certain color depth (32 bits in this case)</p>
<blockquote><p>var myEncoder = System.Drawing.Imaging.Encoder.ColorDepth;<br />
var myEncoderParameter = new EncoderParameter(myEncoder, 32L);<br />
var myEncoderParameters = new EncoderParameters(1) { Param = new EncoderParameter[] { myEncoderParameter } };</p></blockquote>
<p>Then save it</p>
<blockquote><p>img.Save(name.Replace(&#8220;.png&#8221;, &#8220;.bmp&#8221;), bmpEncoder, myEncoderParameters);</p></blockquote>
<p>It it enough? Not really, because if you’re going to loose colors (by reducing color depth), it makes sense to avoid letting default WIX decoder to do this, thus you have to find nearest base colors manually. How to do this? By using simple math</p>
<blockquote><p>Color GetNearestBaseColor(Color exactColor) {<br />
Color nearestColor = Colors.Black;<br />
int cnt = baseColors.Count;<br />
for (int i = 0; i &lt; cnt; i++) {<br />
int rRed = baseColors[i].R &#8211; exactColor.R;<br />
int rGreen = baseColors[i].G &#8211; exactColor.G;<br />
int rBlue = baseColors[i].B &#8211; exactColor.B;</p>
<p>int rDistance =<br />
(rRed * rRed) +<br />
(rGreen * rGreen) +<br />
(rBlue * rBlue);<br />
if (rDistance == 0.0) {<br />
return baseColors[i];<br />
} else if (rDistance &lt; maxDistance) {<br />
maxDistance = rDistance;<br />
nearestColor = baseColors[i];<br />
}<br />
}<br />
return nearestColor;<br />
}</p></blockquote>
<p>Now, you can either change colors on base image directly</p>
<blockquote><p>unsafe {<br />
uint* pBuffer = (uint*)hMap;<br />
for (int iy = 0; iy &lt; (int)ColorMapSource.PixelHeight; ++iy)<br />
{<br />
for (int ix = 0; ix &lt; nWidth; ++ix)<br />
{<br />
Color nc = GetNearestBaseColor(pBuffer[0].FromOle());</p>
<p>pBuffer[0] &amp;= (uint)((uint)nc.A &lt;&lt; 24) | //A<br />
(uint)(nc.R &lt;&lt; 16 ) | //R<br />
(uint)(nc.G &lt;&lt; 8 ) | //G<br />
(uint)(nc.B ); //B<br />
++pBuffer;<br />
}<br />
pBuffer += nOffset;<br />
}<br />
}</p></blockquote>
<p>Or, if you’re in WPF and .NET 3.5 <a title="HLSL (Pixel shader) effects tutorial" href="http://khason.net/blog/hlsl-pixel-shader-effects-tutorial/" target="_blank">create simple pixel shader effect</a> to do it for you in hardware. Now, my colleague can do it himself in about 5 minutes <img src='http://khason.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Have a nice day and be good people.</p>


<p>Related posts:<ol><li><a href='http://khason.net/dev/read-singleton-approach-in-wpf-application/' rel='bookmark' title='Permanent Link: Real singleton approach in WPF application'>Real singleton approach in WPF application</a></li>
<li><a href='http://khason.net/dev/inotifypropertychanged-auto-wiring-or-how-to-get-rid-of-redundant-code/' rel='bookmark' title='Permanent Link: INotifyPropertyChanged auto wiring or how to get rid of redundant code'>INotifyPropertyChanged auto wiring or how to get rid of redundant code</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/dev/quick-how-to-reduce-number-of-colors-programmatically/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Line-Of-Business vs. Beautifulness or two dogmas comparison as exemplified by two Twitter applications</title>
		<link>http://khason.net/blog/line-of-business-vs-beautifulness-or-two-dogmas-comparison-as-exemplified-by-two-twitter-applications/</link>
		<comments>http://khason.net/blog/line-of-business-vs-beautifulness-or-two-dogmas-comparison-as-exemplified-by-two-twitter-applications/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 08:03:48 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[BLOG]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[blogging general]]></category>
		<category><![CDATA[blogging tools]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Windows Gadgets]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://khason.net/blog/line-of-business-vs-beautifulness-or-two-dogmas-comparison-as-exemplified-by-two-twitter-applications/</guid>
		<description><![CDATA[Today I want to speak about two dogmas: design and functional driven programming. As the example of those two approaches, I want to introduce two Twitter clients: *Chirp by thirteen23 and TwitterFox by Naan Studio
 
As you can see, *Chirp is state of art application with outstanding user interface, and well-defined usability studies. While TwitterFox [...]


Related posts:<ol><li><a href='http://khason.net/blog/book-review-c-2008-and-2005-threaded-programming/' rel='bookmark' title='Permanent Link: Book review: C# 2008 and 2005 Threaded Programming'>Book review: C# 2008 and 2005 Threaded Programming</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Today I want to speak about two dogmas: design and functional driven programming. As the example of those two approaches, I want to introduce two Twitter clients: <a href="http://www.thirteen23.com/experiences/desktop/chirp/" target="_blank">*Chirp by thirteen23</a> and <a href="http://twitterfox.net/" target="_blank">TwitterFox by Naan Studio</a></p>
<p><img title="Chirp and TwitterFox comparision" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="651" alt="Chirp and TwitterFox comparision" src="http://khason.net/images/2009/01/image26.png" width="664" border="0" /> </p>
<p>As you can see, *Chirp is state of art application with outstanding user interface, and well-defined usability studies. While TwitterFox is wacky grey boring kind-of-grid only. However, you cannot judge app by only how it looks like. Let’s try to understand first what’s for you need twitter client?</p>
<h3>Defining application goals by user story</h3>
<p><a href="https://twitter.com/tamir" target="_blank">I’m using twitter</a> as quick and handy business tool to write my thought, feelings and everyday events. It is not my main (not even secondary) task during the day, so I want to be able to open, write and forget. Thus, I need an application, that can be invoked by one click and dismissed after writing. Also, I do not want background application to gasp valuable space in my screen, when not in use. Thus it should be background process with reduced workset and one textarea, to be focused when the main window become active. Also the application should hide itself when unfocus, yet be able to notify me about events without disturbing. </p>
<p>Let’s see how it done in *Chirp:</p>
<ul>
<li>140MB workset</li>
<li>No ability to hide</li>
<li>Bouncing thingy at left upper corner to disturb you – it designed as you main desktop beautifier.</li>
<li>No ability to know that new twittes arrived without showing main window</li>
<li>Twit process required to click additional button (named “Update” for some reason)</li>
<li>If you not finished typing, you can either dismiss all text of post it.</li>
<li>Strange 140 characters countdown on background absolutely esthetical, yet very disturbing.</li>
<li>You cannot type more, then 140 characters – this restricted by textbox. If pasted bigger text all additional characters truncated.</li>
<li>You need mouse to operate an application</li>
</ul>
<p>Now TwitterFox:</p>
<ul>
<li>10MB workset</li>
<li>You can hide it by hitting escape or clicking X button</li>
<li>Small and portable without disturbing elements – it not designed as your main everyday app.</li>
<li>New twits counter over small icon in browser tray, all other notifications can be disabled</li>
<li>Once focused text are become active, expanded automatically and ready to write</li>
<li>If you’re hiding it without clearing area, all un write text remains – you can clear it by one click</li>
<li>Small 140 characters countdown which is visible only when typing</li>
<li>You can type more, then 140 characters – counter becomes red, and you cannot post, however you’re able to fix, by dismissing unnecessary spaces or characters.</li>
<li>Can be operated by only keyboard.</li>
</ul>
<p><strong>Bottom line</strong>: *Chirp designed to show how good it looks, while TwitterFox to twit only. Thus for my specific user story TwitterFox won!</p>
<h3>Defining functional specifications</h3>
<p>Next task defined for Twitter is read other twits. I used to read all my following and followers when I have free minute. Sometimes I retwit things, rather often reply followers and read replies and rarely send direct messages. </p>
<p>*Chirp provides twit area without scrollbar, yet not restricted to number of twits. Other words, you can scroll with mouse wheel only or by holding somewhere inside and dragging unlimited up and down. When the mouse is over specific twit, it fades and show three buttons: reply, direct and retwit. Also each twit contains the name of the client was used (just like in regular web interface). When clicking user avatar it brings to special internal screen with last twit of the user, information and statistics about him, three functional buttons: UnFollow, Fave and Block and huge button Get User’s Tweets. When clicking the line displays the time of the twit it puts twit url into clipboard.</p>
<p>Also *Chirp contains five main functional buttons: Faves, Home, Direct, Update and Refresh. When Home tab unfocused (for example you’re on other screen), it also displays a number of new twits. </p>
<p>Error screen of *Chirp is really odd. It contains everything you not really need to know and beautiful whales moving on screen.</p>
<p><img title="WTF?" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="458" alt="WTF?" src="http://khason.net/images/2009/01/image27.png" width="305" border="0" /> </p>
<p>TwitterFox is much simpler. It contains two buttons on mouse/keyboard over – reply and fave. When clicking on user’s avatar it opens it’s page in Twitter with all necessary information. Main TwitterFox window contains three buttons: Recent, Replies, Messages.</p>
<p>No doubt, that *Chirp provides much richer functional spec, but wait, am I really need all this? I told earlier, that I used to read twits and replies, while *Chirp has no such view at all. You can easy copy twit url into clipboard, but what for? Also, you can read&#160; bio and statistics of people you following whenever you want without opening browser window. But how often you’re doing that?</p>
<p>TwitterFox concentrated on functionality – twit, read, reply, read replies (and direct messages) – base tasks , Twitter designed for. It also marks replies with contrast color in public timeline, while *Chirp has inline reply functionality with threaded discussions support (which is very odd for Twitter)</p>
<p><strong>Bottom line</strong>: *Chirp is enriched with not useful features, while TwitterFox contains only things, you’re use. Thus for my specific functional requirements TwitterFox won again!</p>
<h3>Developers vs. Designers final round</h3>
<p>So, we already understand, that *Chirp is an application, designed to show how skilled <a href="http://www.thirteen23.com/" target="_blank">thirteen23</a> designers are. And it achieved this goal. The application is state-of-art, looks and designed very well with taking into account even small details, however it huge, unusable for everyday twittering and extremely slow. This is a general example about Designers’ doctrine.</p>
<p>TwitterFox is very ugly, but concentrated on functionality, tiny and reactive. It includes only features are necessary for twittering and has no other goals. So, this is a general example about Developers’ doctrine.</p>
<p>Is it possible to messmate those doctrines? Probably it is. And it is really simple. Each one of actors should do his own work. Designers should design and Developers – develop. I spoke about it a lot during my lectures, I’ll speak about it also at <a href="http://khason.net/blog/action-required-smart-client-development-present-and-future/" target="_blank">11th February in user group meeting</a>. By now, when you know how I see Twitter, <a href="https://twitter.com/tamir" target="_blank">you can start following me</a>. Also, I’m interesting to hear your ideas about Designer-Developer intercommunication. It is not just about Microsoft way <img src='http://khason.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img title="Designer and Developer - Microsoft way" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="207" alt="Designer and Developer - Microsoft way" src="http://khason.net/images/2009/01/image28.png" width="419" border="0" /> </p>
<p>Have a nice day and be good people.</p>


<p>Related posts:<ol><li><a href='http://khason.net/blog/book-review-c-2008-and-2005-threaded-programming/' rel='bookmark' title='Permanent Link: Book review: C# 2008 and 2005 Threaded Programming'>Book review: C# 2008 and 2005 Threaded Programming</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/blog/line-of-business-vs-beautifulness-or-two-dogmas-comparison-as-exemplified-by-two-twitter-applications/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Windows 7 &#8211; dry run or why Intel does not like Microsoft</title>
		<link>http://khason.net/itpro/windows-7-dry-run-or-why-intel-does-not-like-microsoft/</link>
		<comments>http://khason.net/itpro/windows-7-dry-run-or-why-intel-does-not-like-microsoft/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 18:01:57 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[ITPRO]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[blogging general]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Lenovo]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows Live]]></category>
		<category><![CDATA[x64]]></category>

		<guid isPermaLink="false">http://khason.net/itpro/windows-7-dry-run-or-why-intel-does-not-like-microsoft/</guid>
		<description><![CDATA[Finally, I got a couple of free minutes to install Windows 7 x64 on my work machine. I have to admin, that installation was extremely fast. I just put DVD and keep talking with one of our architects near whiteboard. We enough to close only one issue, while Windows was installed and running.&#160; 
 
There [...]


Related posts:<ol><li><a href='http://khason.net/blog/windows-7-dry-run-or-how-things-should-be-done-to-correct-old-mistakes/' rel='bookmark' title='Permanent Link: Windows 7 &ndash; dry run or how things should be done to correct old mistakes'>Windows 7 &ndash; dry run or how things should be done to correct old mistakes</a></li>
<li><a href='http://khason.net/itpro/quick-it-tip-how-to-build-bootable-usb-stick/' rel='bookmark' title='Permanent Link: Quick IT tip: How to build bootable USB stick'>Quick IT tip: How to build bootable USB stick</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Finally, I got a couple of free minutes to install Windows 7 x64 on my work machine. I have to admin, that installation was extremely fast. I just put DVD and keep talking with one of our architects near whiteboard. We enough to close only one issue, while Windows was installed and running.&#160; </p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows 7 beta fish" border="0" alt="Windows 7 beta fish" src="http://khason.net/images/2009/01/image5.png" width="446" height="330" /> </p>
<p>There are number of visual glitches, but it’s beta after all. Next thing is to install drivers. Everything was great (it even find and install fingerprint reader), except three strange drivers on my Lenovo W500, that Windows 7 refused to find:</p>
<ul>
<li>PCI Serial Port </li>
<li>PCI Simple Communications Controller </li>
<li>SM Bus Controller </li>
</ul>
<p>What can be those drivers? The clue was in SM Bus. It something related to board chipset. So, just checked <a href="http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;lndocid=MIGR-70313" target="_blank">Intel AMT</a>, <a href="http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;lndocid=MIGR-70315" target="_blank">Intel PM45</a> and <a href="http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;lndocid=MIGR-70595" target="_blank">Intel LMS</a>. My approximation was right, Windows 7 (and Microsoft Windows Update service) has no information regarding Intel stuff while all other (more rare drivers were installed fluently). I also need to install three of those drivers in Windows Vista compatibility mode in order to make it works. </p>
<p>Why this happen? Why it’s so hard to two huge conglomerates to work together in order to bring customers better installation experience? It seemed, that Lenovo did huge work with Microsoft to adopt its hardware drivers for Windows 7. Even switchable graphic cards worked perfect without additional drivers. So why Lenovo can, while Intel cannot? </p>
<p>I believe, that the problem is with Intel, who self fighting not to loss high end (and cost) processors, when the market requests low cost Atom-based machines with low power, yet good performing graphic processors. </p>
<p>Regarding biometric devices and switchable graphics. If you want to be able to login to domain with your fingerprint, be sure, that you visited Control Panel\Hardware and Sound\Biometric Devices\Change settings and check this option. By default it’s off.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Login to domain with fingerprint on Windows 7" border="0" alt="Login to domain with fingerprint on Windows 7" src="http://khason.net/images/2009/01/image15.png" width="501" height="322" /> </p>
<p>Also it not seemed, that Windows 7 supports hybrid graphic cards. So unless I’ll find a way to get rid of this issue, I have to use Lenovo switchable graphics utility…</p>
<p>Next thing was to install gentlemen&#8217;s assembly:</p>
<ul>
<li><font size="3">Windows Live Essentials</font> </li>
<li>Microsoft Office 2007 + SPs </li>
<li>Total Commander </li>
<li>Skype </li>
<li>Virtual PC 2008 SP1 </li>
<li>Visual Studio 2008 + SP1 </li>
</ul>
<p>All installations were fine, except small problem with business edition of Skype. Newly introduced Action Center advised me to install 4.0 beta version of Skype to prevent compatibility issues.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows 7 Action Center" border="0" alt="Windows 7 Action Center" src="http://khason.net/images/2009/01/image6.png" width="798" height="295" /> </p>
<p>Another problem (not really Windows, but Microsoft related) is a time, that takes to install Visual Studio. For some reason installation of Office (which is not smaller, then VS) takes about 5 minutes on my machine, when for Visual Studio it takes more, then 40 minutes to be installed.Devdiv guys, please do something with this installer.</p>
<p>So two restarts and here we go. Windows 7 with all necessary software installed. Now issues started.</p>
<p>The only disappointment was because of Windows Experience Index (140GB 7200RPM hard disk is not big and fast enough for this version of OS). If this not, what is?</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://khason.net/images/2009/01/image7.png" width="655" height="195" /> </p>
<p>But it can be fixed easily by disabling cache on disk Device Manager –&gt; Disk Drives –&gt; Uncheck “Disk write caching policy”.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://khason.net/images/2009/01/image13.png" width="493" height="312" /> </p>
<p>After doing this your system will run much faster and score will be increased.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://khason.net/images/2009/01/image14.png" width="624" height="177" /> </p>
<p>I cannot understand the reason it checked by default for non solid state drives, which unsuitable for fast caching.</p>
<p>Switchable graphic cards are also seemed, to be an issue for Windows 7. It does not supported by now to switch graphic cards. All you can do is to pitch BIOS for denying OS from display driver detection and set the card you want. Here how my machine scores looks like with second graphic card enabled.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://khason.net/images/2009/01/image16.png" width="605" height="178" /> </p>
<h3>Taskbar is for fun, not for work</h3>
<p>First of all new branded taskbar. How I supposed to distinct what running and what don’t? Shinny borders and backgrounds? Cool, but not really helpful for me. Just for test try to set “Hide when minimized” option for Outlook 2007 and then detect whether it running or not. Ah, yes, I have to go via tinny arrow to configure taskbar icons – too bad. </p>
<p>Another issue with this bar is configuration of shortcuts. Just in case, sometimes I want to run programs minimized or maximized or set start keys (right click on shortcut and Properties). How should I do it for pinned items?</p>
<p>&#160;<img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://khason.net/images/2009/01/image8.png" width="336" height="481" /> </p>
<p>I understand, that for 5 years Microsoft tried somehow to prevent from developers to junk users notification area on taskbar, by hiding, swapping and moving things there. Finally, they managed to solve it by putting all trash into big shiny icons? Just take a look on Microsoft Messenger appearance in tasksbar. You <a href="http://blogs.msdn.com/tims/archive/2009/01/12/the-bumper-list-of-windows-7-secrets.aspx" target="_blank">have to run it in Vista compatibility mode</a> in order to prevent it putting icon in this area? Too bad! This not called “feature complete” for sure.</p>
<h3>Software compatibility</h3>
<p>Yes, not everything perfect. For example drag and drop (DragonDrop) for Virtual PC will not work in regular mode in Windows 7. You have to create shared folder to workaround it. All programs, required elevated permission (those which triggered UAC on Vista all the time) will ask you for run only once, but if you accidently pressed anything else, then Allow, you’ll never be able to run it again (unless resetting UAC credentials in Windows). Also all those great programs, not required installations or any registry changes (for example Notepad++ or WinSCP will always treated as suspicious by Windows Defender, thus will start very slow all the time and some times required to be sent “for inspection”. This is general fail of Defender. Why me (as user) should wait you (as service provider) to check something. Do it on background, if you want to…</p>
<h3>My first BSoD</h3>
<p>Yes, I did it. I never was able to get Blue Screen of Death on Windows Vista. Here it happened after another restart. The reason was very funny: I did not closed Outlook before restarted Windows 7 (this fade screen with your applications will be forcibly closed). Yes, it was not really major BSoD. Windows made memory dump to prevent future crashes and send information. BTW, if you want to be able to report problems, you should use keys from Connect website, rather, then from MSDN. Beta reporting services is sensitive to product key.</p>
<h3>Background services or what is really missing</h3>
<p>My overall experience of Windows 7 is 7 of 10. It is major improvement of Windows Vista, but it still far from being perfect. I would advice to add OS foreground task dispatching. There are too many developers (also Microsoft’s, who trying to perform long tasks in UI thread). I think, that operation system should handle such cases and dispatch jobs to background to prevent UI freeze. </p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://khason.net/images/2009/01/image9.png" width="409" height="173" /> </p>
<p>Another thing, is to find good compromise between annoying user and smart operations. Other words, do not try to assume what customer want to do, let him to decide (or at least enable such option). Good example for this is very odd Clear Type wizard. What would you answer to such question?</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Click whatever it looks the same, just fix it!" border="0" alt="Click whatever it looks the same, just fix it!" src="http://khason.net/images/2009/01/image10.png" width="624" height="411" /> </p>
<p>Why I need to see the same stuff three times, when all I want it file manager?</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="You have a lot of documents, misics, pictures and videos" border="0" alt="You have a lot of documents, misics, pictures and videos" src="http://khason.net/images/2009/01/image11.png" width="301" height="442" /> </p>
<p>Stop trying to replace software. You already screwed with Microsoft Valet.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://khason.net/images/2009/01/image12.png" width="621" height="522" /> </p>
<p>ISO file burn directly from Windows is really great feature, but an ability to mount iso images as virtual disks would be much better.</p>
<p>Other words, if you, Microsoft, want to create great operation system – do operation system, do not try to complete OS issues with another nice to have features. But no words – great work. Thank you.</p>
<p>Ah, and do not forget to fire everybody in IE dev team… It awful and has no future.</p>
<p>Next time we’ll speak about developer point of view to Windows 7.</p>


<p>Related posts:<ol><li><a href='http://khason.net/blog/windows-7-dry-run-or-how-things-should-be-done-to-correct-old-mistakes/' rel='bookmark' title='Permanent Link: Windows 7 &ndash; dry run or how things should be done to correct old mistakes'>Windows 7 &ndash; dry run or how things should be done to correct old mistakes</a></li>
<li><a href='http://khason.net/itpro/quick-it-tip-how-to-build-bootable-usb-stick/' rel='bookmark' title='Permanent Link: Quick IT tip: How to build bootable USB stick'>Quick IT tip: How to build bootable USB stick</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/itpro/windows-7-dry-run-or-why-intel-does-not-like-microsoft/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Nifty time savers for WPF development</title>
		<link>http://khason.net/dev/nifty-time-savers-for-wpf-development/</link>
		<comments>http://khason.net/dev/nifty-time-savers-for-wpf-development/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 18:23:04 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[DEV]]></category>
		<category><![CDATA[.NET 3.5]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Work process]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://khason.net/dev/nifty-time-savers-for-wpf-development/</guid>
		<description><![CDATA[I just published an article on Code Project, that explains how to use my latest FM USB library for building real world software radio receiver with WPF. There I referenced to some nifty WPF time savers, I’m using for everyday development. So, today I want to share those code pieces with you.
 
Binding time savers
Want [...]


Related posts:<ol><li><a href='http://khason.net/dev/read-singleton-approach-in-wpf-application/' rel='bookmark' title='Permanent Link: Real singleton approach in WPF application'>Real singleton approach in WPF application</a></li>
<li><a href='http://khason.net/dev/inotifypropertychanged-auto-wiring-or-how-to-get-rid-of-redundant-code/' rel='bookmark' title='Permanent Link: INotifyPropertyChanged auto wiring or how to get rid of redundant code'>INotifyPropertyChanged auto wiring or how to get rid of redundant code</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://www.codeproject.com/KB/WPF/fmradio.aspx">I just published an article</a> on Code Project, that explains how to use my latest <a target="_blank" href="http://www.codeplex.com/FM">FM USB library</a> for building real world software radio receiver with WPF. There I referenced to some nifty WPF time savers, I’m using for everyday development. So, today I want to share those code pieces with you.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Software radio reciever screenshot" border="0" alt="Software radio reciever screenshot" src="http://khason.net/images/2009/01/radio.jpg" width="500" height="199" /> </p>
<h3>Binding time savers</h3>
<p>Want to use following syntax for set binding in code?</p>
<blockquote><p>Presets.SetBinding(ListBox.ItemsSourceProperty, _device, &quot;Presets&quot;);</p>
</blockquote>
<p>This piece of code sets binding to Preset DependencyObject, which is Listbox and connects ListBox.ItemsSource dependency property with “Presets” property of CLR object _device. How it done? Simple, as usual</p>
<blockquote><p>[DebuggerStepThrough]     <br />public static BindingExpressionBase SetBinding(this DependencyObject target, DependencyProperty dp, object source, string path) {      <br />&#160;&#160; Binding b = new Binding(path);      <br />&#160;&#160; b.Source = source;      <br />&#160;&#160; return BindingOperations.SetBinding(target, dp, b);      <br />}</p>
</blockquote>
<p>But what to do when we need a converter? Simple:</p>
<blockquote><p>[DebuggerStepThrough]     <br />public static BindingExpressionBase SetBinding(this DependencyObject target, DependencyProperty dp, object source, string path, IValueConverter converter) {      <br />&#160;&#160; Binding b = new Binding(path);      <br />&#160;&#160; b.Source = source;      <br />&#160;&#160; b.Converter = converter;      <br />&#160;&#160; return BindingOperations.SetBinding(target, dp, b);      <br />}</p>
</blockquote>
<p>However to use this method, we need to create special object, which implements IValueConverter. Whey not to do it generically? Like this:</p>
<blockquote><p>SignalTransform.SetBinding(ScaleTransform.ScaleYProperty, _device.RDS,&quot;SignalStrength&quot;, new ValueConverter&lt;byte, double&gt;(b =&gt; { return 1-(b / 36d); }));</p>
</blockquote>
<p>But we need this special handy ValueConverter class. What’s the problem? Here come the king:</p>
<blockquote><p>public class ValueConverter&lt;TIN, TOUT&gt; : IValueConverter { </p>
<p>&#160;&#160; public ValueConverter(Func&lt;TIN, TOUT&gt; forwardConversion) {     <br />&#160;&#160;&#160;&#160;&#160; ForwardConversion = forwardConversion;      <br />&#160;&#160; } </p>
<p>&#160;&#160; public ValueConverter(Func&lt;TIN, TOUT&gt; forwardConversion, Func&lt;TOUT, TIN&gt; reverseConversion) {     <br />&#160;&#160;&#160;&#160;&#160; ForwardConversion = forwardConversion;      <br />&#160;&#160;&#160;&#160;&#160; ReverseConversion = reverseConversion;      <br />&#160;&#160; } </p>
<p>&#160;&#160; public Func&lt;TIN, TOUT&gt; ForwardConversion { get; set; } </p>
<p>&#160;&#160; public Func&lt;TOUT, TIN&gt; ReverseConversion { get; set; }     <br />&#160;&#160; public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {      <br />&#160;&#160;&#160;&#160;&#160; try {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var in1 = Object.ReferenceEquals(value, DependencyProperty.UnsetValue) ? default(TIN) : (TIN)value;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return ForwardConversion(in1);      <br />&#160;&#160;&#160;&#160;&#160; } catch {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return Binding.DoNothing;      <br />&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160; } </p>
<p>&#160;&#160; public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {     <br />&#160;&#160;&#160;&#160;&#160; try {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var out1 = Object.ReferenceEquals(value, DependencyProperty.UnsetValue) ? default(TOUT) : (TOUT)value;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return ReverseConversion(out1);      <br />&#160;&#160;&#160;&#160;&#160; } catch {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return Binding.DoNothing;      <br />&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160; } </p>
<p>}</p>
</blockquote>
<p>Isn’t it really simple? But what to do with ugly App.Current.Dispatcher.BeginInvoke((SendOrPostCallback)delegate(object o)…? Use dispatcher time savers. </p>
<h3>Dispatcher time savers</h3>
<p>Don’t you ever want to do this in order to make context switching between UI thread and other application thread in WPF?</p>
<blockquote><p>this.Dispatch(() =&gt; {… DO SOMETHING IN UI THREAD …};</p>
</blockquote>
<p>Now you can (with default and preset DispatcherPriority:</p>
<blockquote><p>public static DispatcherOperation Dispatch(this DispatcherObject sender, Action callback) { return sender.Dispatch(DispatcherPriority.Normal, callback); } </p>
<p>public static DispatcherOperation Dispatch(this DispatcherObject sender,&#160; DispatcherPriority priority, Action callback) {     <br />&#160;&#160; if (sender.Dispatcher == null) return null;      <br />&#160;&#160; if (sender.Dispatcher.CheckAccess()) {      <br />&#160;&#160;&#160;&#160;&#160; callback();      <br />&#160;&#160;&#160;&#160;&#160; return null;      <br />&#160;&#160; } else {      <br />&#160;&#160;&#160;&#160;&#160; return sender.Dispatcher.BeginInvoke(priority, callback);      <br />&#160;&#160; }      <br />}</p>
</blockquote>
<p>Nice, isn’t it? But what to do if we do not want to set binding, but we do want to be notified about property change of dependency objects? </p>
<h3>Bindingless handlers time saver</h3>
<p>Let’s assume, that we have “Tune” UIelement, which has Angle property, but not exposes PropertyChanged event (like it done with <a target="_blank" href="http://blogs.msdn.com/expression/archive/2007/10/13/rotary-custom-control.aspx">Rotary custom control by Expression Blend team</a>… Designers, you know… <img src='http://khason.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>However I want to be able to add handler for Angle dependency property changed event and do something when it changed. Like this:</p>
<blockquote><p>Tune.AddValueChanged(RotaryControl.RotaryControl.AngleProperty, (s, ex) =&gt; {     <br />&#160;&#160; _device.Tune(Tune.Angle &gt; _prevTune);      <br />&#160;&#160; _prevTune = Tune.Angle;      <br />});</p>
</blockquote>
<p>Here comes our time saver for this purpose:</p>
<blockquote><p>public static void AddValueChanged(this DependencyObject sender, DependencyProperty property, EventHandler handler) {     <br />&#160;&#160; DependencyPropertyDescriptor.FromProperty(property, sender.GetType()).AddValueChanged(sender, handler);      <br />}</p>
</blockquote>
<p>But if we add handler we should be able to remove it too.</p>
<blockquote><p>public static void RemoveValueChanged(this DependencyObject sender, DependencyProperty property, EventHandler handler) {     <br />&#160;&#160; DependencyPropertyDescriptor.FromProperty(property, sender.GetType()).RemoveValueChanged(sender, handler);      <br />}</p>
</blockquote>
<p>Now we done with some of my nifty helpers. And last, but not the least: </p>
<h3>All times question: how to scale ranges</h3>
<p>Here is how <img src='http://khason.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>public static double ToRange(this double value, double minSource, double maxSource, double minTarget, double maxTarget) {     <br />&#160;&#160; var sr = maxSource &#8211; minSource;      <br />&#160;&#160; var tr = maxTarget &#8211; minTarget;      <br />&#160;&#160; var ratio = sr / tr;      <br />&#160;&#160; return minTarget+(value / ratio);      <br />}</p>
</blockquote>
<p>Now we can connect them and get something like this:</p>
<blockquote><p>Volume.AddValueChanged(RotaryControl.RotaryControl.AngleProperty, (s, ex) =&gt; {     <br />&#160;&#160; DirectSoundMethods.Volume = (int)Volume.Angle.ToRange(Volume.CounterClockwiseMostAngle, Volume.ClockwiseMostAngle, -4000, 0);      <br />});</p>
</blockquote>
<p>Isn’t it brilliant? </p>
<p>Have a good day and <a target="_blank" href="http://www.codeproject.com/KB/WPF/fmradio.aspx">be sure to read and rate my last article on Code Project</a> <img src='http://khason.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Be good people.</p>


<p>Related posts:<ol><li><a href='http://khason.net/dev/read-singleton-approach-in-wpf-application/' rel='bookmark' title='Permanent Link: Real singleton approach in WPF application'>Real singleton approach in WPF application</a></li>
<li><a href='http://khason.net/dev/inotifypropertychanged-auto-wiring-or-how-to-get-rid-of-redundant-code/' rel='bookmark' title='Permanent Link: INotifyPropertyChanged auto wiring or how to get rid of redundant code'>INotifyPropertyChanged auto wiring or how to get rid of redundant code</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/dev/nifty-time-savers-for-wpf-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What boots faster – Netbook, powered Windows XP or Nokia E71 mobile phone?</title>
		<link>http://khason.net/blog/what-boots-faster-%e2%80%93-netbook-powered-windows-xp-or-nokia-e71-mobile-phone/</link>
		<comments>http://khason.net/blog/what-boots-faster-%e2%80%93-netbook-powered-windows-xp-or-nokia-e71-mobile-phone/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 14:08:42 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[BLOG]]></category>
		<category><![CDATA[blogging general]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[ITPRO]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[VIDEO]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://khason.net/blog/what-boots-faster-%e2%80%93-netbook-powered-windows-xp-or-nokia-e71-mobile-phone/</guid>
		<description><![CDATA[Some days ago, somebody from Microsoft was shocked, when I told him, that I’m planning to run Windows XP (and later Windows 7) as operation system for mission critical automotive device. He even checked with Windows XP embedded team boot times for XP. They told him, that the minimum can be achieved is about 40 [...]


Related posts:<ol><li><a href='http://khason.net/blog/windows-7-dry-run-or-how-things-should-be-done-to-correct-old-mistakes/' rel='bookmark' title='Permanent Link: Windows 7 &ndash; dry run or how things should be done to correct old mistakes'>Windows 7 &ndash; dry run or how things should be done to correct old mistakes</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Some days ago, somebody from Microsoft was shocked, when I told him, that I’m planning to run Windows XP (and later Windows 7) as operation system for mission critical automotive device. He even checked with Windows XP embedded team boot times for XP. They told him, that the minimum can be achieved is about 40 seconds cold boot and 30 seconds from hibernate state. I was upset and decided to tweak my system for smallest possible boot time. Here the result video. This is not the limit. I believe, that I’ll be able to decrease Windows XP boot time to less, then 10 seconds with a bit more efforts.</p>
<p><strong>Note: </strong>This is absolutely authentic and non-touched video, recorded today by me, comparing boot time of Windows XP on unbranded weak netbook (Atom 1.6, 128MB and 8G SSD) and my Nokia E71 mobile phone. 15 seconds boot time of Windows XP achieved by tweaking only well known registry values and OS configuration values without special profundity of system settings. </p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/FjFy_EwmVlg&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FjFy_EwmVlg&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Now the question: with todays’ devices, why we are not running XP for mobile and automotive mission critical devices?</p>


<p>Related posts:<ol><li><a href='http://khason.net/blog/windows-7-dry-run-or-how-things-should-be-done-to-correct-old-mistakes/' rel='bookmark' title='Permanent Link: Windows 7 &ndash; dry run or how things should be done to correct old mistakes'>Windows 7 &ndash; dry run or how things should be done to correct old mistakes</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/blog/what-boots-faster-%e2%80%93-netbook-powered-windows-xp-or-nokia-e71-mobile-phone/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Issues, you reported were fixed</title>
		<link>http://khason.net/blog/issues-you-reported-were-fixed/</link>
		<comments>http://khason.net/blog/issues-you-reported-were-fixed/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 05:35:46 +0000</pubDate>
		<dc:creator>Tamir</dc:creator>
				<category><![CDATA[BLOG]]></category>
		<category><![CDATA[.NET 3.5]]></category>
		<category><![CDATA[blogging general]]></category>
		<category><![CDATA[DEV]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[My tools]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[promo]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://khason.net/blog/issues-you-reported-were-fixed/</guid>
		<description><![CDATA[Hi, folks. And thank you for reporting issues with WpfPerf Performance Profiling tool. Now it was fixed, so, download and use new and fixed version.
Keep reporting, as you can see, you have the power to change!
 
Imaginary by Malcolm Dare


Related posts:&#8220;Zone of Pain vs. Zone of Uselessness&#8221; or code analysis with NDepend



Related posts:<ol><li><a href='http://khason.net/tech/zone-of-pain-vs-zone-of-uselessness-or-code-analysis-with-ndepend/' rel='bookmark' title='Permanent Link: &ldquo;Zone of Pain vs. Zone of Uselessness&rdquo; or code analysis with NDepend'>&ldquo;Zone of Pain vs. Zone of Uselessness&rdquo; or code analysis with NDepend</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hi, folks. And thank you for <a href="http://khason.net/blog/for-all-those-who-have-problems-with-running-wpf-performance-profiling-tool-%e2%80%93-microsoft-cares/" target="_blank">reporting issues with WpfPerf Performance Profiling tool</a>. Now <a href="http://blogs.msdn.com/jgoldb/archive/2008/10/10/fixes-to-wpfperf-performance-profiling-tool.aspx" target="_blank">it was fixed</a>, so, <a href="http://windowsclient.net/wpf/perf/wpf-perf-tool.aspx" target="_blank">download and use new and fixed version</a>.</p>
<p>Keep reporting, as you can see, you have the power to change!</p>
<p><img title="image" style="display: inline" height="283" alt="image" src="http://khason.net/images/2008/12/image-17ef7242.png" width="377" border="0" /> </p>
<p><font size="1">Imaginary by </font><a href="http://www.pixelfoundry.co.za/dare/index.html" target="_blank"><font size="1">Malcolm Dare</font></a></p>


<p>Related posts:<ol><li><a href='http://khason.net/tech/zone-of-pain-vs-zone-of-uselessness-or-code-analysis-with-ndepend/' rel='bookmark' title='Permanent Link: &ldquo;Zone of Pain vs. Zone of Uselessness&rdquo; or code analysis with NDepend'>&ldquo;Zone of Pain vs. Zone of Uselessness&rdquo; or code analysis with NDepend</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://khason.net/blog/issues-you-reported-were-fixed/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
