<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8688452563915524075</id><updated>2012-01-18T17:33:25.772+01:00</updated><category term='devdays'/><category term='helicopter'/><category term='AR'/><category term='Visual Studio'/><category term='wp7'/><category term='emulator'/><category term='personal'/><category term='omnia qwerty'/><category term='repost'/><category term='Console'/><category term='twitter'/><category term='IEnumerable'/><category term='example'/><category term='multithreading'/><category term='frustration'/><category term='extension method'/><category term='romo'/><category term='statistics'/><category term='Boffoonery'/><category term='maps'/><category term='app hub'/><category term='.NET'/><category term='google'/><title type='text'>peSHIr.NET</title><subtitle type='html'>Microsoft .NET, general programming and gadget related weblog by Jarno Peschier (aka peSHIr)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>60</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2153554604162862619</id><published>2012-01-18T17:33:00.002+01:00</published><updated>2012-01-18T17:33:25.783+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='romo'/><title type='text'>Romotive publishes Romo audio protocol</title><content type='html'>&lt;a href="http://romotive.com/blog/"&gt;On their blog&lt;/a&gt;, Romotive has made public &lt;a href="http://romotive.com/blog/2012/01/hackers-welcomed-heres-our-protocol/"&gt;which audio waves you need to generate on which audio channel&lt;/a&gt; to control a &lt;a href="http://romotive.com/meetromo"&gt;Romo first revision smartphone robot&lt;/a&gt;. So if you want something programmable with an audio port to control one, now you know how!&lt;br /&gt;
&lt;br /&gt;
The article even briefly mentions &lt;a href="http://peshir.blogspot.com/search/label/romo"&gt;my own work on a Romo control library&lt;/a&gt; for &lt;a href="http://windowsphone.com/"&gt;Windows Phone&lt;/a&gt;, which can change the amplitude of the soundwaves it sends out to control robot speed as well.&lt;br /&gt;
&lt;br /&gt;
This library (and my first two apps) are slowly but surely nearing a state in which they can be made public for every WP7 developer to easily interact with Romo devices. The Romotive staff has already received preliminary XAP files to use on the &lt;a href="http://www.nokia.com/nl-nl/producten/telefoon/lumia800/"&gt;Nokia Lumia 800&lt;/a&gt; they have, and they told me they liked what they saw so far.&lt;br /&gt;
&lt;br /&gt;
There should be more information about soon, at the very latest within the next four weeks.&lt;br/&gt;Just be patient...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2153554604162862619?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2153554604162862619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2012/01/romotive-publishes-romo-audio-protocol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2153554604162862619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2153554604162862619'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2012/01/romotive-publishes-romo-audio-protocol.html' title='Romotive publishes Romo audio protocol'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-7256251366545238071</id><published>2011-12-30T21:43:00.000+01:00</published><updated>2011-12-31T09:58:47.134+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='romo'/><title type='text'>Romo robot control library for WP7</title><content type='html'>After seeing &lt;a href="http://www.kickstarter.com/projects/peterseid/romo-the-smartphone-robot"&gt;the Romo smartphone robot on Kickstarter&lt;/a&gt; some time ago, I was hooked. I wanted one. And I wanted to program for it myself, on my &lt;a href="http://windowsphone.com"&gt;Windows Phone&lt;/a&gt;! So I pledged a certain amount of money for the limited edition one - gotta have the T-shirt too - and waited for the Kickstarter results...&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder="0" height="410px" src="http://www.kickstarter.com/projects/peterseid/romo-the-smartphone-robot/widget/video.html" width="480px"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
And then it was a landslide (they raised $114796!), and around Christmas I received my robot. It happened to be limited edition number &lt;a href="http://www.google.nl/q=the%20answer%20to%20life%20the%20universe%20and%20everything"&gt;42&lt;/a&gt; and all, pleasing my inner nerd immensely. To get to work!&lt;br /&gt;
&lt;br /&gt;
In fact, I had contacted the guys at &lt;a href="http://romotive.com"&gt;Romotive&lt;/a&gt; to ask about the sounds needed to drive the robot. The evening before FedEx would deliver, I had a first draft of a library and an app with some simple buttons. When the Romo arrived, this code immediately drove the Romo robot flawlessly, without any changes needed. That certainly was cool.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://twitter.com/#!/LocalJoost/status/152747666000982016"&gt;Today after the last day at work&lt;/a&gt;, I met up with some of the &lt;a href="http://wp7.nl/"&gt;WP7NL&lt;/a&gt; crew. &lt;a href="https://www.facebook.com/photo.php?fbid=10150487085064318&amp;set=a.10150462100499318.386724.817819317&amp;type=1"&gt;This first demo&lt;/a&gt; received some great reactions and some good suggestions too. Turns out the Romo base reacts to volume as well as sound frequencies. So I reworked the library to allow you to use this to not only control forward/backward motion and left/right rotation but variable speed for both as well.&lt;br /&gt;
&lt;br /&gt;
When the library is done and tested, which means having written and published at least one Romo WP7 app myself, I plan to publish it open source (on Codeplex or something?) and make the binaries available (nice reason to get into NuGet) as soon as possible. And then, order yourself a Romo, and get programming robots!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://peshir.blogspot.com/search/label/romo"&gt;Keep watching this space for more info!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-7256251366545238071?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/7256251366545238071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/12/romo-robot-control-library-for-wp7.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/7256251366545238071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/7256251366545238071'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/12/romo-robot-control-library-for-wp7.html' title='Romo robot control library for WP7'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>1</thr:total><georss:featurename>Heinrich Bertéstraat 2, 3543 Utrecht, The Netherlands</georss:featurename><georss:point>52.10634703998074 5.03748893737793</georss:point><georss:box>52.10147053998074 5.02761843737793 52.11122353998074 5.04735943737793</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-8443173000753021842</id><published>2011-11-25T08:54:00.001+01:00</published><updated>2012-01-03T13:47:26.535+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><title type='text'>Command &amp; Conquer, Distimo style</title><content type='html'>Just a quick post, reacting to &lt;a href="https://twitter.com/#!/tijmentiming/status/139366580176961536"&gt;a comment by Tijmen&lt;/a&gt; after &lt;a href="https://twitter.com/#!/peSHIr/status/139348215936983042"&gt;tweeting about the cool Command &amp; Conquer style competitor map&lt;/a&gt; by &lt;a href="http://monitor.distimo.com/"&gt;Distimo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Data for the following map (click on it for a larger version) is from the last month. It uses colors to show which of the WP7 apps I designated as competitors for &lt;a href="http://www.windowsphone.com/en-US/apps/3a2d8622-baeb-46e9-9b9b-13f4771f3460"&gt;my Klout Tile app&lt;/a&gt; (which should be all of the &lt;a href="http://klout.com/"&gt;Klout&lt;/a&gt; apps out there right now..) have the highest ranking within &lt;a href="http://www.windowsphone.com/en-US/categories/social"&gt;the Social category&lt;/a&gt; in that country:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-1IWFlsz29rI/Ts9J9dcv0xI/AAAAAAAAAV0/cQn4xo1swek/s1600/Distimo%2BKlout%2Bapp%2Bmap%2Bnov%2B2011.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="185" width="320" src="http://2.bp.blogspot.com/-1IWFlsz29rI/Ts9J9dcv0xI/AAAAAAAAAV0/cQn4xo1swek/s320/Distimo%2BKlout%2Bapp%2Bmap%2Bnov%2B2011.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Interesting, huh? Especially since the other newcomer (from France, and currently only biggest there) shows the most information from the Klout API at the moment. Really should push out v1.1 of my Klout Tile app soon: it shows more data, should be more stable and cuts back on &lt;a href="http://peshir.blogspot.com/2011/11/perfect-way-to-ask-for-wp7-app-review.html"&gt;the "review begging" that was a bit excessive in v1.0&lt;/a&gt; (with a daily recurring reminder). At least my app is still the only one with a Live Tile for your score.&lt;br /&gt;
&lt;br /&gt;
My goal: get the whole world blue. ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Update:&lt;/i&gt; Since posting this, another Klout app started showing your score on a live tile. So the "blue earth" goal doesn't seem like it'll be happening soon, as I am currently busy on other WP7 apps (one of which actually has a fixed deadline).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-8443173000753021842?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/8443173000753021842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/11/command-conquer-distimo-style.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8443173000753021842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8443173000753021842'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/11/command-conquer-distimo-style.html' title='Command &amp; Conquer, Distimo style'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-1IWFlsz29rI/Ts9J9dcv0xI/AAAAAAAAAV0/cQn4xo1swek/s72-c/Distimo%2BKlout%2Bapp%2Bmap%2Bnov%2B2011.PNG' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>&amp;#39;s-Graveland 1, 3119 Schiedam, The Netherlands</georss:featurename><georss:point>51.92205768976879 4.403586387634277</georss:point><georss:box>51.921445689768795 4.402352387634277 51.92266968976879 4.4048203876342775</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-7995037443711293992</id><published>2011-11-08T16:12:00.000+01:00</published><updated>2011-11-27T14:58:38.398+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><title type='text'>The perfect way to ask for a WP7 App Review...?</title><content type='html'>&lt;p&gt;Today I got &lt;a href="https://twitter.com/#!/DevJef/status/133834259948503041"&gt;a mention on Twitter I really liked&lt;/a&gt; about the way I implemented "review begging" in &lt;a href="http://www.windowsphone.com/en-US/apps/3a2d8622-baeb-46e9-9b9b-13f4771f3460"&gt;my latest Windows Phone 7 app&lt;/a&gt;. I do it using the following code:&lt;/p&gt;&lt;pre class="brush: csharp"&gt;using System;
using Microsoft.Phone.Scheduler;

/* ...part of AboutPage.asmx.cs... */

public static void ResetReviewReminder(KloutSettings settings)
{
  const string name = "ReviewReminder";
  Action removeReminder = () =&gt; {
    if (ScheduledActionService.Find(name) != null)
      ScheduledActionService.Remove(name);
  };
#if DEBUG
  removeReminder();
  settings.UsedReviewButton = false;
#endif
  if (settings.UsedReviewButton)
  {
    removeReminder();
  }
  else
  {
    ScheduledAction reminder = ScheduledActionService.Find(name);
    if (reminder == null)
    {
      reminder = new Reminder(name)
      {
        Title = "How do you like me so far?",
        Content = "Would you mind using the about dialog " +
        "(tap here if Klout Tile is not running) " +
        "and writing a review?",
        NavigationUri = new Uri("/AboutPage.xaml", UriKind.Relative),
        RecurrenceType = RecurrenceInterval.Weekly,
        ExpirationTime = DateTime.Now.AddMonths(1),
      };
      if (System.Diagnostics.Debugger.IsAttached)
      {
        reminder.BeginTime = DateTime.Now.AddMinutes(5);
      }
      else
      {
        DateTime x = DateTime.Now.AddDays(7);
        reminder.BeginTime = new DateTime(x.Year, x.Month, x.Day, 12, 0, 0);
      }
      ScheduledActionService.Add(reminder);
    }
  }
}
&lt;/pre&gt;&lt;h2&gt;What does this do?&lt;/h2&gt;&lt;p&gt;That's an easy question to answer: if the application settings object (which is persisted in isolated storage) flags that the user has already used the review &lt;tt&gt;ApplicationBar&lt;/tt&gt; button (in Klout Tile that's the star button in the About page), then any review reminder that is found is silently deleted. If however, the user has not used the review button in the About page yet and no existing reminder is found, it creates a new review reminder.&lt;/p&gt;&lt;p&gt;This reminder asks the user what she thinks about the app and also includes a &lt;tt&gt;NavigationUri&lt;/tt&gt; that points to the About page. It is set to recur weekly for a maximum of about a month, starting three days from now. I think this is a reasonable "beg" period and frequency. (You can adjust as you see fit, of course.)&lt;/p&gt;&lt;h2&gt;How do I use it?&lt;/h2&gt;&lt;p&gt;Each time the Klout Tile app is started, I call &lt;tt&gt;AboutPage.ResetReviewReminder()&lt;/tt&gt; once. This means that, if this is the first time the user starts the app, the user will be reminded three days later to please go add a review.&lt;/p&gt;&lt;p&gt;Apart from this I have the following code in my About page to handle the user clicking review button:&lt;/p&gt;&lt;pre class="brush: csharp"&gt;private void ReviewButton_Click(object sender, EventArgs e)
{
  var settings = KloutSettings.Load();
  settings.UsedReviewButton = true;
  settings.Save();
  ResetReviewReminder(settings);
  var review = new Microsoft.Phone.Tasks.MarketplaceReviewTask();
  review.Show();
}
&lt;/pre&gt;&lt;p&gt;This makes sure that when the user &lt;em&gt;does&lt;/em&gt; click on the review button, any reminder that exists will be deleted and no more reminders will ever be (re)created in the future.&lt;/p&gt;&lt;h2&gt;Some of the advantages&lt;/h2&gt;&lt;p&gt;A lot of Windows Phone apps ask the user for a review. Some have buttons, which the user can easily choose/forget to (n)ever tap. Some wait a bit and ask the user for a review using a &lt;tt&gt;MessageBox&lt;/tt&gt; with Ok/Cancel buttons, but this can be annoying for the user, as there is no "Not right now." option. Also, if the user installs your app, runs it onces and never uses it again, the code to show this message box will never get executed.&lt;/p&gt;&lt;p&gt;Using a system reminder like the code above does gives the following advantages:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We are able to show the user a review reminder, even if they only start the app once and never come back to it again. (Unless they uninstall it, of course.)&lt;/li&gt;
&lt;li&gt;The review reminder is stored with other system reminders (like the ones from the Calendar), so they can be shown at any time, even if when the app is not running.&lt;/li&gt;
&lt;li&gt;You do not need to use a background task to get this behavior, so even if the user disables your background task (which they can) the reminder will pop up.&lt;/li&gt;
&lt;li&gt;If the reminder pops up at a time that is not convenient for the user, she can just snooze it, like any other reminder.&lt;/li&gt;
&lt;li&gt;The user still has a way to just dismiss the reminder, but as it is a daily repeating one, it should pop up the next day (for a maximum of two weeks after first start).&lt;/li&gt;
&lt;li&gt;When the reminder pops up while the app is not running, tapping the reminder opens the correct page inside the app directly to easily let the user initiate a review scenario. (For bonus points, the URI and About page could be changed so that when the user enters by tapping the reminder, the &lt;tt&gt;Microsoft.Phone.Tasks.MarketplaceReviewTask&lt;/tt&gt; is executed directly, eliminating one further step!)&lt;/li&gt;
&lt;li&gt;Finally, when the user uses the review button in the About page on their own, the reminder (whether already shown before or not) is silently deleted so the user is not bothered with our "review begging" ever again.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;So I think using a &lt;tt&gt;Reminder&lt;/tt&gt; to do you "review begging" might be the perfect solution. What do you think?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-7995037443711293992?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/7995037443711293992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/11/perfect-way-to-ask-for-wp7-app-review.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/7995037443711293992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/7995037443711293992'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/11/perfect-way-to-ask-for-wp7-app-review.html' title='The perfect way to ask for a WP7 App Review...?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>4</thr:total><georss:featurename>Klokjesbloemlaan 25, 3452 Vleuten, The Netherlands</georss:featurename><georss:point>52.097937882756696 5.005967617034912</georss:point><georss:box>52.0967183827567 5.003500117034912 52.099157382756694 5.008435117034912</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-5565093860737645289</id><published>2011-10-28T18:00:00.000+02:00</published><updated>2012-01-03T13:43:23.703+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Console'/><title type='text'>Capturing Console output without interfering with it</title><content type='html'>&lt;p&gt;Recently I've had to tackle the following problem: given an existing .NET console application, send the commandline output to an email address when the application is finished. Sounded reasonably simple, right? And in the end it was.&lt;/p&gt;&lt;h2&gt;Options...&lt;/h2&gt;&lt;p&gt;The key to making this work is finding out that the .NET implementation of &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.console.aspx"&gt;System.Console&lt;/a&gt;&lt;/tt&gt; has access to &lt;a href="http://en.wikipedia.org/wiki/Standard_streams"&gt;the normal &lt;tt&gt;stdin&lt;/tt&gt;, &lt;tt&gt;stdout&lt;/tt&gt; and &lt;tt&gt;stderr&lt;/tt&gt; console streams&lt;/a&gt; wrapped in a &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx"&gt;TextWriter&lt;/a&gt;&lt;/tt&gt;.&lt;/p&gt;&lt;p&gt;If you then find out that &lt;tt&gt;Console&lt;/tt&gt; has methods like &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.console.setout.aspx"&gt;SetOut()&lt;/a&gt;&lt;/tt&gt;for changing the &lt;tt&gt;TextWriter&lt;/tt&gt;s that are used for this, you have way of capturing text that the existing console application writes out using &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.console.writeline.aspx"&gt;Console.Writeline()&lt;/a&gt;&lt;/tt&gt; and related methods so you can email it.&lt;/p&gt;&lt;h2&gt;...that leave existing output as it&lt;/h2&gt;&lt;p&gt;But wait, functionality for the application should remain the same, so this output should stilll remain visible on the console too. Here &lt;a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)"&gt;design patterns&lt;/a&gt; come to our aid, in this case &lt;a href="http://en.wikipedia.org/wiki/Decorator_pattern"&gt;the Decorator pattern&lt;/a&gt;. The class we need is the following:&lt;/p&gt;&lt;pre class="brush: csharp"&gt;using System;
using System.IO;
using System.Text;

namespace peSHIr
{
  public class StringBufferPassthroughWriter : TextWriter
  {
     private TextWriter wrapped;
     private StringBuilder buffer;

     public StringBufferPassthroughWriter(TextWriter wrap)
     {
        wrapped = wrap;
        buffer = new StringBuilder();
     }

     public override Encoding Encoding { get { return wrapped.Encoding; } }
     public override void Write(string value) { wrapped.Write(value); buffer.Append(value); }
     public override void WriteLine(string value) { wrapped.WriteLine(value); buffer.AppendLine(value); }
     public override void WriteLine() { wrapped.WriteLine(); buffer.AppendLine(); }

     public string Buffer { get { return buffer.ToString(); } }
  }
}
&lt;/pre&gt;&lt;p&gt;What does the above class do? Well, not very much. All it does is decorate another &lt;tt&gt;TextWriter&lt;/tt&gt;. That is: it derives from &lt;tt&gt;TextWriter&lt;/tt&gt;, taking another &lt;tt&gt;TextWriter&lt;/tt&gt; in its constructor which it stores, and then it simply passes through all method calls that write elementary pieces of text to the stored &lt;tt&gt;TextWriter&lt;/tt&gt;. This makes sure it does not interfere with whatever that other &lt;tt&gt;TextWriter&lt;/tt&gt; would normally be doing.&lt;/p&gt;&lt;p&gt;And it does one extra thing: keep an instance of a &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx"&gt;StringBuilder&lt;/a&gt;&lt;/tt&gt; as well, and also fill this from the same overridden methods. Finally, our new &lt;tt&gt;TextWriter&lt;/tt&gt; decorator supplies a read-only property to get at the stored string in the &lt;tt&gt;StringBuilder&lt;/tt&gt; buffer.&lt;/p&gt;&lt;h2&gt;How to use this&lt;/h2&gt;&lt;p&gt;It should now probably be fairly obvious now how to actually "insert" this decorator in our existing console application to enable it to send an email with its complete output without interfering with that same output. I'll show a simple "before" and "after" comparison of the &lt;tt&gt;Main()&lt;/tt&gt; method for the application.&lt;/p&gt;&lt;h3&gt;Before&lt;/h3&gt;&lt;pre class="brush: csharp"&gt;using System;

static int Main(string[] args)
{
  // Application code, calling Console.WriteLine() etc.
  return 0;
}
&lt;/pre&gt;&lt;h3&gt;After&lt;/h3&gt;&lt;pre class="brush: csharp"&gt;using System;
using peSHIr;

// Actual EmailSuperUser() method omitted as
// exercise for the reader... ;-)

static int Main(string[] args)
{
  using (var output = new StringBufferPassthroughWriter(Console.Out))
  {
    Console.SetOut(output);
    // Application code, calling Console.WriteLine() etc.
    EmailSuperUser(output.Buffer);
  }
  return 0;
}
&lt;/pre&gt;&lt;p&gt;And that is basically all. Hope you enjoyed this little code sample.&lt;/p&gt;&lt;p&gt;(For more information on how to write the &lt;tt&gt;EmailSuperUser&lt;/tt&gt; method, see &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/12/10/432854.aspx"&gt;this Scott Guthrie blogpost&lt;/a&gt; and/or &lt;a href="http://www.systemnetmail.com/"&gt;the System.Net.Mail documentation&lt;/a&gt;.)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-5565093860737645289?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/5565093860737645289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/10/capturing-console-output-without.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5565093860737645289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5565093860737645289'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/10/capturing-console-output-without.html' title='Capturing &lt;tt&gt;Console&lt;/tt&gt; output without interfering with it'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total><georss:featurename>Klokjesbloemlaan 7, 3452 Vleuten, The Netherlands</georss:featurename><georss:point>52.09854423866601 5.006203651428223</georss:point><georss:box>52.09610573866601 5.0012681514282225 52.100982738666005 5.011139151428223</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1564335900977878659</id><published>2011-09-25T18:10:00.000+02:00</published><updated>2011-09-26T09:18:50.944+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Ich bin ein Asperger...</title><content type='html'>Looking back, I've always thought of myself as an outsider. Always had the feeling something was wrong with me. Or maybe all those other people around me were different than I was; like they had a little secret that nobody had ever told me, because they possibly though that I "just knew" like everybody else. Because it was normal for them.&lt;br /&gt;
&lt;br /&gt;
This until recently undefinable feeling has always had a great impact on my life. I was that calm, forward, studious child. That child that could perfectly entertain itself. With a book for instance; in my mind I've always been able to read. That child that never bothered anyone.&lt;br /&gt;
&lt;br /&gt;
In school I usually found the lessons to be fun and interesting. I did regret the fact that all these other students, who in general didn't seem to care for it all one bit, had to be there as well. I didn't live that far away from school, so when there was a gap in the curriculum of the day - even if it was just one hour - I got on my bike and went home. What else could I do, with all those other kids, when there was nothing to do at school? I was then better off riding home to drop off some of the school books I would no longer need that day, for instance.&lt;br /&gt;
&lt;br /&gt;
After studying computer science at Utrecht University, a period I basically allowed to happen to me like it was "just another school", meaning that the traditional college student life all but completely passed me by, I moved out on my own and started working as a computer programmer. I was perfectly work focused. Alone and deeply unhappy. Without knowing why.&lt;br /&gt;
&lt;br /&gt;
Just as in the previous years when interacting with other people, interacting with colleages and clients at work sometimes resulted in problems. Often these small or even large conflicts with people came as a complete surprise to me. Looking back they were almost always caused by breakdowns in non-verbal communication. I had for instance said something that I thought to be factually true, but I had done this in such a way that the other person felt attacked or even insulted to the bone.&lt;br /&gt;
&lt;br /&gt;
Anyway, I won't be including any more personal details. I might do so later, when both my readers and me are interested in me writing down more. At the moment I do not feel like it, and want to get back to the title of this text and how I came to write it. What I do want to add is that one of the best things that ever happened to me is my wife Rona. I would not know what to do without her..&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Asperger&lt;/h2&gt;&lt;br /&gt;
Quite a number of years ago I first heard or read about &lt;a href="http://en.wikipedia.org/wiki/Asperger_syndrome"&gt;Asperger Syndrome&lt;/a&gt;, a development disorder that's part of the so-called &lt;a href="http://en.wikipedia.org/wiki/Autism_spectrum"&gt;autisme spectrum&lt;/a&gt;. This means it is in fact a light form of autism. I never thought it would be relevant to myself in any way. Also, the many coaches I have spent time with over the years (often through work) to help with myself and my problems at work, my melancholic moods or my unrest have apparently never thought about this possibility. Or if they did, they never let me know.&lt;br /&gt;
&lt;br /&gt;
Recently Asperger has maybe gotten a bit more attention because the (not only with me) very popular &lt;a href="http://en.wikipedia.org/wiki/Sheldon_Cooper"&gt;Sheldon Cooper&lt;/a&gt; from &lt;a href="http://www.imdb.com/title/tt0898266"&gt;The Bing Bang Theory&lt;/a&gt; exhibits many of the typical symptoms. Also, &lt;a href="https://twitter.com/#!/peSHIr/status/62768220041523200"&gt;a short Twitter discussion&lt;/a&gt; with a group of programmers I know mentioned an online Asperger test, that startled me a bit with the high resulting score when I answered the questions in gest.&lt;br /&gt;
&lt;br /&gt;
All this resulted in me buying the book &lt;a href="http://www.amazon.com/Asperger-Marriage-Chris-Slater-Walker/dp/1843100177"&gt;Asperger Marriage&lt;/a&gt; a couple of weeks ago. On the 19th of september &lt;a href="https://twitter.com/#!/peSHIr/status/115897786230251520"&gt;I eventually read it completely in one go; I just could not put it down.&lt;/a&gt; Even though the individual detailed differences between myself and the main character in this book describing the marriage between Asperger Chris and his wife Gisela are enormous - every person is different - for most of the book I had the distinct feeling the book was about me. I recognized so many of it that literally seemed to be about me. A strange and not at all pleasant experience...&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Now what?&lt;/h2&gt;&lt;br /&gt;
&lt;a href="https://twitter.com/#!/peSHIr/status/115898195778863106"&gt;Therefore I am now convinced that I suffer of Asperger Syndrome.&lt;/a&gt; Although suffer is by no means the right word: it also brings me great advantages and makes me who I am. Thus I do not believe that I would want it gone even if that were possible.&lt;br /&gt;
&lt;br /&gt;
For now I am therefore not inclined to have my auto-diagnosis checked by a professional in the field. After all: based on what I now know about Asperger and about myself an actual medical diagnosis would change nothing: there is no cure (even if I would want one) and no real practically useful help that would mean anything to me. The only thing I can do is to continue to adapt and develop, and learn to cope with the handicap that I apparently have. Subconsciously I have been at this for decades, and in certain areas I have become quite good at it, even if this is or perhaps always will be a conscious effort.&lt;br /&gt;
&lt;br /&gt;
I am glad that my problems and feeling of "being different" at least for myself have a name now. This is also the reason I wrote this text: Asperger is part of me, and I would like people to know that. Not to gain any positive advantages or use it as an excuse, but to give it a place, for me.&lt;br /&gt;
&lt;br /&gt;
Well, to be honest I might want to use it as a reference. As part of an apology for instance, in a situation where my social handicap again unwittingly cause a conflict because the tricks I picked up to deal with people in a way they consciously or unconsciously expect of me have failed. Believe me: I can only get better at this.&lt;br /&gt;
&lt;br /&gt;
The coming weeks I will have enough to read: lots of books have been written on this subject and also weblogs like &lt;a href="http://life-with-aspergers.blogspot.com"&gt;Life with Aspergers&lt;/a&gt;, which I instantly added to Google Reader. I think &lt;a href="http://www.amazon.com/Pretending-Be-Normal-Aspergers-Syndrome/dp/1853027499"&gt;the book "Pretending to be normal"&lt;/a&gt; is now on the top of my reading list, because just the title alone seems so very much to fit the feeling I've been having for years.&lt;br /&gt;
&lt;br /&gt;
Everyone who knows me and have found me to act strangely or even rude in certain situations: I hope you now have an idea of the potential reason why and also why I cannot always help myself, even if I wanted. Everyone who knows me and is now thinking "But I never once noticed anything like that!" I would like to thank very much for the enormous compliment. All other readers I want to thank for taking the trouble to read this.&lt;br /&gt;
&lt;br /&gt;
Thank you.&lt;br /&gt;
&lt;br /&gt;
(This is an English translation of &lt;a href="http://peshir.wordpress.com/2011/09/25/ich-bin-ein-asperger/"&gt;the original Dutch blogpost&lt;/a&gt;. I wanted to have this introductory information in English too. &lt;a href="http://peshir.wordpress.com/category/persoonlijk/gezondheid-en-welzijn/asperger/"&gt;Any possible future posts on this subject will likely be Dutch only.&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1564335900977878659?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1564335900977878659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/09/ich-bin-ein-asperger.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1564335900977878659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1564335900977878659'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/09/ich-bin-ein-asperger.html' title='Ich bin ein Asperger...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-8548281150427017515</id><published>2011-09-18T11:09:00.000+02:00</published><updated>2011-10-28T11:41:43.008+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><title type='text'>Fire-and-forget background code execution</title><content type='html'>&lt;p&gt;Finally, time for some code again.&lt;/p&gt;&lt;p&gt;In the course of &lt;a href="create.msdn.com"&gt;writing some Windows Phone 7 apps&lt;/a&gt; for the &lt;a href="http://www.appsfornoordholland.nl/summary-of-contest-in-english"&gt;Apps for Noord-Holland&lt;/a&gt; competition I've just hacked together a tiny class that wraps the &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx"&gt;BackgroundWorker&lt;/a&gt;&lt;/tt&gt; class for one simpe case: you want a bit of code to execute in the background, fire-and-forget style:&lt;/p&gt;&lt;pre class="brush: csharp"&gt;var loadData = new peSHIr.BackgroundHelper(() =&gt;
{
    // load something
    // load something else
    // and that's it, basically
});
&lt;/pre&gt;&lt;p&gt;So you're not really interested in giving the &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx"&gt;BackgroundWorker&lt;/a&gt;&lt;/tt&gt; an argument, getting progress information, supporting cancellation, receiving a result or even when exactly the code is done running (by getting an event). You just want it to start now and eventually have it be done.&lt;/p&gt;&lt;p&gt;If you want/need this, here's a simple utility class you can use:&lt;/p&gt;&lt;pre class="brush: csharp"&gt;using System;
using System.ComponentModel;

namespace peSHIr
{
    public class BackgroundHelper
    {
        private Action work;
        private DoWorkEventHandler start;
        private RunWorkerCompletedEventHandler finish;
        private BackgroundWorker worker;

        public BackgroundHelper(Action executeInBackground)
        {
            work = executeInBackground;
            start = new DoWorkEventHandler(DoWork);
            finish = new RunWorkerCompletedEventHandler(WorkCompleted);
            worker = new BackgroundWorker();
            worker.DoWork += start;
            worker.RunWorkerCompleted += finish;
            worker.RunWorkerAsync();
        }

        private void DoWork(object sender, DoWorkEventArgs e)
        {
            if (work != null) work();
        }

        private void WorkCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            worker.DoWork -= start;
            worker.RunWorkerCompleted -= finish;
            worker = null;
            start = null;
            finish = null;
        }

        public bool IsBusy
        {
            get {
                return work != null &amp;&amp; worker != null ? worker.IsBusy : false;
            }
        }
    }
}
&lt;/pre&gt;&lt;p&gt;Be sure to &lt;a href="http://stackoverflow.com/questions/tagged/windows-phone-7+multithreading"&gt;keep your multi-threading in order&lt;/a&gt;, though. So if the code stores something, use appropriate locking. Or if you access GUI elements, go through the proper &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.aspx"&gt;Dispatcher&lt;/a&gt;&lt;/tt&gt;. But that almost goes without saying, right? Also, error handling for the code you give this class is obviously left as an excercise for the reader. ;-)&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-8548281150427017515?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/8548281150427017515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/09/fire-and-forget-background-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8548281150427017515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8548281150427017515'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/09/fire-and-forget-background-code.html' title='Fire-and-forget background code execution'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total><georss:featurename>Klokjesbloemlaan 66, 3452 Vleuten, The Netherlands</georss:featurename><georss:point>52.09846514923221 5.006289482116699</georss:point><georss:box>52.096026649232215 5.001353982116699 52.10090364923221 5.011224982116699</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2278439931837614487</id><published>2011-09-09T10:33:00.000+02:00</published><updated>2011-09-16T11:51:07.794+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>"Hey, what's up with the daily tweet to @twitter @support...?"</title><content type='html'>My Twitter followers are bound to know I have some bones to pick with Twitter lately. For one, I really don't like the treacle like performance of #NewTwitter compared to #OldTwitter (even in Chrome, not just in IE8 and IE9). But this post is not about that.&lt;br /&gt;
Recently I have been starting to &lt;a href="https://twitter.com/#!/peSHIr/status/111772680033804288"&gt;post (almost) daily tweets&lt;/a&gt; asking &lt;a href="http://www.twitter.com/"&gt;Twitter&lt;/a&gt; to support &lt;a href="http://www.mobypicture.com/"&gt;Mobypicture&lt;/a&gt;. As some people are bound to frown on this, I thought I'd write this blog post to explain why I do this, and when I plan to stop doing it.&lt;br /&gt;
&lt;h2&gt;
My problem&lt;/h2&gt;
Around the time I started these daily tweets, Twitter started rolling out their new "Recent Images" media gallery. This shows the most recent images a user tweeted (includes old style retweets, or course) on their profile and includes a link to &lt;a href="https://twitter.com/#!/peSHIr/media/grid"&gt;a complete grid of such images&lt;/a&gt;.&lt;br /&gt;
While I think this is cool feature, I really did not like that only a couple of image publish websites are included in this view, like: &lt;a href="http://www.twitpic.com/"&gt;TwitPic&lt;/a&gt;, &lt;a href="http://photobucket.com/"&gt;PhotoBucket&lt;/a&gt; and &lt;a href="http://yfrog.com/"&gt;yfrog&lt;/a&gt;, while the service that I use (the Dutch &lt;a href="http://www.mobypicture.com/"&gt;Mobypicture&lt;/a&gt;) is not included.&lt;br /&gt;
This means, that what Twitter calls "Recent Images by @peSHIr" on my profile, does not include any of my recent images, but only images by others that I happened to tweet a link to at one time. This is not what I want, obviously. I would like my Moby images to show up in this view. Or, if that is (currently) not possible, I want to disable the new image gallery so it does not show up on my profile.&lt;br /&gt;
&lt;h2&gt;
So, ask the parties involved&lt;/h2&gt;
To that end, I started tweeting my request. I also DM'ed Twitter Support and MobyPicture with more background information on my request. I have received a number of replies to this. For one thing, Moby replied they cannot help me put their images into the Twitter gallery (obviously).&lt;br /&gt;
Twitter seems to have misinterpreted my original request for "Moby support", and quite stoically referred me to &lt;a href="https://mobypicture.zendesk.com/home"&gt;the Moby support page&lt;/a&gt;. Nice one, Twitter; show us you care about your users... ;-) So I changed my daily request a bit, based on this responses.&lt;br /&gt;
Then, after more clarification by DM, I received the following DM response from &lt;a href="http://twitter.com/support"&gt;Twitter&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;
You can turn off media here: &lt;a href="https://support.twitter.com/articles/20169200-media-settings-and-best-practices"&gt;https://support.twitter.com/articles/20169200-media-settings-and-best-practices&lt;/a&gt;&lt;/blockquote&gt;
After asking around by DM some more, Twitter admitted this is not a response my question on how to disable the media gallery so it doesn't show up on my profile any more. Their eventual response to that (in two DMs) was this:&lt;br /&gt;
&lt;blockquote&gt;
We appreciate your request and feedback and will share it with the rest of the team. Unfortunately the recent imaged gallery won't be removed from your profile unless you don't have any images posted in your Tweets. Sorry! &lt;a href="https://support.twitter.com/articles/20169409"&gt;https://support.twitter.com/articles/20169409&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;
So, that's it?&lt;/h2&gt;
So, in the meantime, even though I thanked Twitter support for they rather promptly responses, I feel screwed. Unless I go back and delete all tweets that include a supported image link in them, I'm "stuck" with the image gallery on my profile, a feature I would really like when it would include my Moby images. And I am not going to hunt down those tweets and delete them.&lt;br /&gt;
Also, even though as far as I can remember the inline media display in #NewTwitter at one time showed images posted on Mobypicture, with the (again originally 2 part DM) reply from Twitter support, it seems clear my Moby images are not expected to show up in my media gallery any time soon (or ever):&lt;br /&gt;
&lt;blockquote&gt;
You're welcome. And again, as moby is not an official media partner of ours, we don't show their images in the details pane it's possible that we will consider a partnership in the future, but for now we are not affiliated. Thanks!&lt;/blockquote&gt;
&lt;h2&gt;
So, the world is stuck with my daily tweet&lt;/h2&gt;
I feel I have no other course of action left, than continue my daily tweet asking for Mobypicture support in the current Twitter webinterface...&lt;br /&gt;
So, unless my images show up in my Twitter media gallery (or possibly until I get a way to turn it off so it does not show up on my profile any more) I will be repeating that daily tweet, reminding Twitter that I have not given up asking for this support.&lt;br /&gt;
If you use Mobypicture and Twitter as well, I want to ask you to do the same or RT my daily reminder. If enough people do so, it might be a reason for Twitter to start including these images.&lt;br /&gt;
Hopefully this blogpost clarifies the reason for that annoying daily tweet. And thank you for reading this far! ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2278439931837614487?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2278439931837614487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/09/hey-whats-up-with-daily-tweet-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2278439931837614487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2278439931837614487'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/09/hey-whats-up-with-daily-tweet-to.html' title='&quot;Hey, what&apos;s up with the daily tweet to @twitter @support...?&quot;'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-6254897667968778469</id><published>2011-08-15T13:40:00.000+02:00</published><updated>2012-01-05T13:32:19.208+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='helicopter'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='app hub'/><title type='text'>3D Masters app has more downloads than expected</title><content type='html'>&lt;p&gt;As we know the App Hub download statistics take a couple of days to get processed, so it took a while to get going for my &lt;a href="http://peshir.blogspot.com/2011/07/windows-phone-app-for-3d-masters.html"&gt;3D Masters app&lt;/a&gt;. However, even though it seems to start trailing off a bit at the moment, so far there have only been a couple of days the app was not downloaded somewhere:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-x5Z5VZvekR0/TkkEIV4r7HI/AAAAAAAAAVc/TX2fitzF_bI/s1600/3dmasters_downloads.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="241" width="400" src="http://4.bp.blogspot.com/-x5Z5VZvekR0/TkkEIV4r7HI/AAAAAAAAAVc/TX2fitzF_bI/s400/3dmasters_downloads.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://peshir.blogspot.com/2010/11/first-wp7-app-should-be-published.html"&gt;My other application&lt;/a&gt; only has about 40 downloads total (and none in the time frame shown above, hence the flat start of the cumulative line). And that one has been published since early november 2010!&lt;/p&gt;&lt;p&gt;Also, I would expect the actual target demographic for the app to not be heavy Windows Phone 7 users yet. So you can understand how I'm over the moon with these download numbers. ;-)&lt;/p&gt;&lt;p&gt;&lt;em&gt;Update, early Januari 2012:&lt;/em&gt; still only a handful to go until the 400 downloads mark; that's almost additional 200 added in two months. Is that the word of mouth going around during the holiday season? New Nokia phones and advertising? I will try to get a graph out of the whole time it was published some time soon. And I &lt;em&gt;really&lt;/em&gt; need to get cracking on the update for next July, when the 3D Masters 2012 event will be in Venlo again.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-6254897667968778469?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/6254897667968778469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/08/3d-masters-app-has-more-downloads-than.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6254897667968778469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6254897667968778469'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/08/3d-masters-app-has-more-downloads-than.html' title='3D Masters app has more downloads than expected'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-x5Z5VZvekR0/TkkEIV4r7HI/AAAAAAAAAVc/TX2fitzF_bI/s72-c/3dmasters_downloads.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-8177847899964694074</id><published>2011-07-20T12:28:00.004+02:00</published><updated>2011-11-07T10:37:55.547+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='helicopter'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='app hub'/><title type='text'>Quick WP7 app development</title><content type='html'>&lt;p&gt;I have often wondered, with the certification process of a centrally controlled online application database and store principle that is often used right now, if fast reactions to events in the form of a new app were still possible. After all, you cannot quickly hack something together and put it on a website so people can install and use it.&lt;/p&gt;&lt;p&gt;While this post is by no means a thorough treatise of this subject, it does offer one concrete example that shows quick development turn-around is indeed still possible in a centralized store arrangement.&lt;/p&gt;&lt;p&gt;This past week has been a bit of rollercoaster for me, building and deploying a &lt;a href="http://peshir.blogspot.com/2011/07/windows-phone-app-for-3d-masters.html"&gt;Windows Phone 7 app with background information for the 3D Masters 2011&lt;/a&gt;. As a bit of background, I'll sketch a timeline of how this app came to be. All times shown are in 24h &lt;a href="http://www.timeanddate.com/worldclock/converted.html?day=20&amp;month=7&amp;year=2011&amp;hour=11&amp;min=0&amp;sec=0&amp;p1=16&amp;p2=234"&gt;CEST&lt;/a&gt; and approximate, accurate to within maybe half an hour. Here goes:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.fly3dx.com/manoeuvres2009/34-K25Auto.wmv" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="320" width="192" src="http://3.bp.blogspot.com/-jDvkBkNDmJU/TiaswsNUmwI/AAAAAAAAAVU/LmgCPqV3Up4/s320/3D%2BMasters%2B04.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Fri, Juli 15th, 18:30&lt;/b&gt;: Meet friends for diner in Haarlem, before seeing the final Harry Potter.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;19:00&lt;/b&gt;: Received an mail from 3D Masters about availability of an &lt;a href="http://itunes.apple.com/it/app/3d-masters/id448803884?mt=8"&gt;iPhone app&lt;/a&gt; for the event.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20:00&lt;/b&gt;: After emailing back and forth a bit with &lt;a href="http://uk.linkedin.com/pub/jeff-barringer/30/278/90a"&gt;Jeff Barringer&lt;/a&gt; during diner, I decided to try and write a WP7 equivalent.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20:50&lt;/b&gt;: Harry Potter begins, or rather: ends... ;-)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Sat, Juli 16th, 7:00&lt;/b&gt;: I start a new blank WP7 solution in VS2010 and get to work.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;22:00&lt;/b&gt;: Made nice progress. Basic app structure, icons, panorama background, start of About screen and the complete interactive map section are done. Made good progress on starting to capture the manoeuvre and pilot data from the 3DX website into two included XML files. I did do some grocery shopping along the way, so I maybe put in about 13 hours or so.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Sun, Juli 17th, 10:00&lt;/b&gt;: I return to my 3D Masters solution. Manually getting all the data into the two XML files took relatively long time (most of it during the end of todays session), but I also wrote basic ViewModels, ListBox data templates in my panorama control and all the plumbing needed to get selecting en showing the two detail pages to work. Luckily, showing the external descriptions and the movies just took one Task object each given the URLs in the data I had. ;-)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mon, Juli 18th, 0:30&lt;/b&gt;: After completing the XML data and quickly tombstoning the show panorama item (so you return to the one you left after going into detail pages), I call it a night and try to submit my app to the App Hub. With some break time (had to leave that chair some time during the day), I put in about another 13 hours of development time.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1:30&lt;/b&gt;: Then I found out that submitting new apps to App Hub was broken, possibly related to the scheduled down time that was announced for monday and is no doubt related to not only the new functionality that has shown up in App Hub, but to the approach of Mango as well. Very frustrated, I gave up, and went to bed.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;6:00&lt;/b&gt;: Up early for work. Tried to submit again, and got the XAP file and all the meta data in. Dreading that this might be too late, I went to work.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20:00&lt;/b&gt;: Saw that app submission status was "Testing in progress".&lt;/li&gt;
&lt;li&gt;&lt;b&gt;22:00&lt;/b&gt;: Noticed that the App Hub was showing the "down for maintenance" message.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tue, Juli 19th, 17:00&lt;/b&gt;: Saw that my blog post was linked from the 3D Masters website, App Hub was back up and the status of my app was now "Certified", which is not mentioned in &lt;a href="http://forums.create.msdn.com/forums/t/65793.aspx"&gt;the App Hub forum thread about possible states&lt;/a&gt;.&lt;br /&gt;
Fearing the app might not make it to Marketplace in time for the event, I at least made the XAP available so people with developer unlocked devices could sideload it at least, would that turn out to be the case.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;21:30&lt;/b&gt;: I noticed an email from the WP7 Marketplace Developer Support telling me there had been a problem processing my app submission. When I checked App Hub however, the status had now moved to Published, leaving me well confused.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Wed, Juli 20th (=today), 6:00&lt;/b&gt;: I was able to find my app in Marketplace on my phone and download and install it. Victory!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;11:00&lt;/b&gt;: Started to write this blog post, as I think this whole story might be interesting to some of the WP7 developers out there. Please don't be shy in the comments if you think it is. ;-)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Fri, Juli 22nd, 9:00&lt;/b&gt;: Start of the 3D Masters event that will end the next sunday around 17:00 in Venlo, NL. Will I see you there on saturday, perhaps?&lt;/li&gt;
&lt;li&gt;&lt;b&gt;11:00&lt;/b&gt;: Thanks for &lt;a href="http://www.mobypicture.com/user/peSHIr/view/10198881"&gt;all your interest&lt;/a&gt;; this turns out to be my most popular post since I did &lt;a href="http://peshir.blogspot.com/2009/09/omnia-qwerty-some-first-impressions.html"&gt;that Samsung Omnia Qwerty review&lt;/a&gt; two years ago. ;-)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mon, 15th of August&lt;/b&gt;: &lt;a href="http://peshir.blogspot.com/2011/08/3d-masters-app-has-more-downloads-than.html"&gt;Download numbers seem to start trailing off&lt;/a&gt; around 60 downloads.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Early november&lt;/b&gt;: In fact, the download graph from publishing the app until now seems to have an almost constant derivative until now, just having reached the 200 download mark.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;So yes, there you have it. Even though I do not recommend anybody to do this on a regular basis, if you really need to and you maybe get a bit lucky with the time your app takes to run the certification procedure you &lt;em&gt;can&lt;/em&gt; have very quick new app results!&lt;/p&gt;&lt;p&gt;In this case that means: some 26 hours of development time, starting a week before app was needed, about 4½ days (or 108 hours) from inception of the endeavour to having the app on my phone, downloaded from Marketplace.&lt;/p&gt;&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Q.E.D."&gt;Q.E.D.&lt;/a&gt; (now, when was that vacation again...?)&lt;/p&gt;&lt;p&gt;&lt;small&gt;(Oh, and lots of ideas for version 1.1 of course, for the next 3D Masters and other 3DX events...)&lt;/small&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-8177847899964694074?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/8177847899964694074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/07/quick-wp7-app-development-wp7nl.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8177847899964694074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8177847899964694074'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/07/quick-wp7-app-development-wp7nl.html' title='Quick WP7 app development'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-jDvkBkNDmJU/TiaswsNUmwI/AAAAAAAAAVU/LmgCPqV3Up4/s72-c/3D%2BMasters%2B04.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-3518376727779762832</id><published>2011-07-18T08:32:00.000+02:00</published><updated>2011-07-18T08:32:24.557+02:00</updated><title type='text'>MetalScroll for VS2010?</title><content type='html'>&lt;p&gt;Anyone who, like myself, loved &lt;a href="http://peshir.blogspot.com/2009/11/remember-rockscroll-now-theres.html"&gt;MetalScroll&lt;/a&gt; in VisualStudio, knows that with WPF VS2010 it doesn't work anymore. However, there is an alternative: go to &lt;tt&gt;Tools&lt;/tt&gt;, &lt;tt&gt;Extension Manager&lt;/tt&gt; right now and install the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=189202"&gt;Productivity Power Tools for VisualStudio&lt;/a&gt; if you haven't already. The Enhanced Scrollbar that is included will probably do what you want.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-iIec5_4GAUs/Ta1jXYHFA7I/AAAAAAAAAT4/SxLHjlZDcEs/s1600/EnhancedScrollbarVS2010.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="308" width="400" src="http://2.bp.blogspot.com/-iIec5_4GAUs/Ta1jXYHFA7I/AAAAAAAAAT4/SxLHjlZDcEs/s400/EnhancedScrollbarVS2010.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Next to the Full Map Mode shown above, it has two other modes you can easily switch to using a context menu. There are also some options for the scrollbar that you'll find in the usual place: the ever expanding VS Options dialog.&lt;/p&gt;

&lt;p&gt;I think I actually like the Scroll Bar Mode best, as it looks most like a normal scrollbar with usefull pixel pointers on it. Switching to Full Map Mode is always just a right click away when I really need it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-3518376727779762832?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/3518376727779762832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/07/metalscroll-for-vs2010.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3518376727779762832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3518376727779762832'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/07/metalscroll-for-vs2010.html' title='MetalScroll for VS2010?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-iIec5_4GAUs/Ta1jXYHFA7I/AAAAAAAAAT4/SxLHjlZDcEs/s72-c/EnhancedScrollbarVS2010.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-6386036943515648330</id><published>2011-07-18T01:37:00.007+02:00</published><updated>2011-07-20T11:20:42.879+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='helicopter'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><title type='text'>Windows Phone app for the 3D Masters!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-n-SpsykEprA/TiNyDhaew_I/AAAAAAAAAVA/HGhZQNstnq0/s1600/3D%2BMasters%2B03.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="320" width="191" src="http://2.bp.blogspot.com/-n-SpsykEprA/TiNyDhaew_I/AAAAAAAAAVA/HGhZQNstnq0/s320/3D%2BMasters%2B03.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Friday night, while having diner with friends before seeing the final Harry Potter movie, I got an email from the &lt;a href="http://www.3dmasters.org.uk/"&gt;3D Masters&lt;/a&gt; organizers that there was an iPhone app containing all kind of useful information.&lt;/p&gt;

&lt;p&gt;Of course, this would be of no use to me, as I have a Windows Phone. So I wrote an email asking about the availability of a WP7 app with the same information, asking if it would be ok if I were to write one myself.&lt;/p&gt;

&lt;p&gt;Reactions to this were very positive, so I set out to work on it the following morning. At the moment (early monday morning), the app is finished, waiting to be uploaded into the &lt;a href="http://create.msdn.com"&gt;App Hub&lt;/a&gt;. Which, unfortunately &lt;a href="https://twitter.com/peSHIr/status/92733046222102528"&gt;seems to do nothing but give me errors&lt;/a&gt;...&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Around 6:00:&lt;/em&gt; The next morning the uploading seemed to work. I really hope that &lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;id=0f8f67de-f1b0-e011-a53c-78e7d1fa76f8"&gt;the 3D Masters app&lt;/a&gt; will still have enough time to pass testing and appear in the Marketplace before the actual event it is supposed to be used at starts, which is in (now) four days.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-hxB46uN6COc/TiXgJj0armI/AAAAAAAAAVM/b-qS8szbje8/s1600/3D%2BMasters%2B02.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="320" width="192" src="http://4.bp.blogspot.com/-hxB46uN6COc/TiXgJj0armI/AAAAAAAAAVM/b-qS8szbje8/s320/3D%2BMasters%2B02.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Around 22:00:&lt;/em&gt; Later that same evening the App Hub was down for announced maintenance. Last status update I saw for the 3D Masters app submission was "Testing in progress". This was around 20:00. I will track the progress of the App Hub update and wonder why I will be able to get a status update again...&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tuesday the 19th, around 17:00:&lt;/em&gt; Great to see that we are linked from &lt;a href="http://www.3dmasters.org.uk/index.htm"&gt;the 3D Master website&lt;/a&gt; now. Thanks, Jeff!&lt;/p&gt;

&lt;p&gt;However, it is &lt;em&gt;not at all&lt;/em&gt; certain that the app will be online in the WP7 Marketplace in time for this weekend; it's status has been "Certified" now for quite a number of hours. As a workaround, I'm &lt;a href="https://pocketbusiness.blob.core.windows.net/3dmasters/ThreeDX.xap"&gt;making the XAP file available&lt;/a&gt;, so anyone with a developer unlocked WP7 device can sideload and already use it right now. So have a look, and be ready for the coming weekend no matter what happens in the certification process.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tuesday the 19th, around 21:30:&lt;/em&gt; Strangly enough, App Hub status now says "Published", even though I got an email saying "We were unable to process the application submission for [app]. An error has occurred with your submission. [etc]", telling me to check the App Hub website.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Wednesday the 20th, around 6:00:&lt;/em&gt; I found my app in Marketplace and installed it. If you don't see it yet, that's probably because of the &lt;a href="http://en.wikipedia.org/wiki/Content_delivery_network"&gt;CDN technology&lt;/a&gt; that is involved. I know it can take up to even a couple of days before everyone actually see the app in their Marketplace app on their phone. So, unless you get very unlucky with CDN issues, you should be able to use &lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;id=0f8f67de-f1b0-e011-a53c-78e7d1fa76f8"&gt;the 3D Masters Windows Phone 7 app&lt;/a&gt; this weekend!&lt;/P&gt;

&lt;P&gt;Enjoy it, and see you next saturday in Venlo!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-6386036943515648330?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/6386036943515648330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/07/windows-phone-app-for-3d-masters.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6386036943515648330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6386036943515648330'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/07/windows-phone-app-for-3d-masters.html' title='Windows Phone app for the 3D Masters!'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-n-SpsykEprA/TiNyDhaew_I/AAAAAAAAAVA/HGhZQNstnq0/s72-c/3D%2BMasters%2B03.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2286101282904612756</id><published>2011-06-30T11:11:00.000+02:00</published><updated>2011-06-30T11:11:15.973+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Easily exclude generated proxies from your code coverage</title><content type='html'>&lt;p&gt;This is just a quick heads-up that many of you might already know about: partial classes easily enable you to add an attribute to an existing class by just adding an empty partial class definition for the same class in another source code location that just has that attribute on it.&lt;/p&gt;

&lt;p&gt;Adding an attribute like this can be used to exclude the generated code of a webservice proxy from unit test code coverage by adding a &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggernonusercodeattribute.aspx"&gt;&lt;tt&gt;DebuggerNonUserCode&lt;/tt&gt; attribute&lt;/a&gt; to the relevant classes, like so:&lt;/p&gt;

&lt;pre class="brush: csharp"&gt;
// Add DebuggerNonUserCode attribute to generated
// proxy classes to exclude it from code coverage.

namespace Your.ServiceProxy.Namespace
{
 using System.Diagnostics;
 [DebuggerNonUserCode] public partial class YourWebService { }
 [DebuggerNonUserCode] public partial class SomeServiceDto { }
 [DebuggerNonUserCode] public partial class AnotherServiceDto { }
 // et cetera
}
&lt;/pre&gt;

&lt;p&gt;As long as the service keeps using the same classnames, this solution even enables you to regenerate your proxy without losing the code coverage exclusion of the proxy (if you put this code in place not touched on regeneration).&lt;/p&gt;

&lt;p&gt;Nifty, huh? ;-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2286101282904612756?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2286101282904612756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/06/easily-exclude-generated-proxies-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2286101282904612756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2286101282904612756'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/06/easily-exclude-generated-proxies-from.html' title='Easily exclude generated proxies from your code coverage'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-9003736962999787739</id><published>2011-05-02T08:38:00.003+02:00</published><updated>2011-05-02T08:40:57.505+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>My take on using var in C#</title><content type='html'>The discussion seems to pop up from time to time among C# programmers: To &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb383973.aspx"&gt;var&lt;/a&gt;&lt;/tt&gt;? Or not to &lt;tt&gt;var&lt;/tt&gt;...? I know my take on the matter, but I never took the time to write it down. Luckily, &lt;a href="http://blogs.msdn.com/b/ericlippert/archive/2011/04/20/uses-and-misuses-of-implicit-typing.aspx"&gt;Eric Lippert seems to have done this for me&lt;/a&gt;; I don't think I could agree more with his take. As seems to be the case rather often, come to think of it..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-9003736962999787739?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/9003736962999787739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/05/my-take-on-using-var-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/9003736962999787739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/9003736962999787739'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/05/my-take-on-using-var-in-c.html' title='My take on using &lt;tt&gt;var&lt;/tt&gt; in C#'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2189165882655768092</id><published>2011-04-19T10:57:00.002+02:00</published><updated>2011-04-21T13:43:13.688+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maps'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='AR'/><title type='text'>Mango = Layar, Skype, and almost too much to name...</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-H7Ue-vNtHog/TbAYOzTa9NI/AAAAAAAAAUA/iaJPcKaCUZM/s1600/mix11.jpg" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="150" width="200" src="http://4.bp.blogspot.com/-H7Ue-vNtHog/TbAYOzTa9NI/AAAAAAAAAUA/iaJPcKaCUZM/s200/mix11.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Just a quick YAY! After the recent MIX reveals it seems like &lt;a href="http://peshir.blogspot.com/2010/11/i-want-layar-on-my-wp7.html"&gt;my Layar wish&lt;/a&gt; will come true with Mango! Now I'm "just" waiting for a resolution of the &lt;a href="http://peshir.blogspot.com/2010/10/google-maps-should-no-must-come-to-wp7.html"&gt;Google (Maps) vs Bing (Maps)&lt;/a&gt; situation in the Netherlands.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2189165882655768092?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2189165882655768092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/04/mango-layar-skype-and-almost-too-much.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2189165882655768092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2189165882655768092'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/04/mango-layar-skype-and-almost-too-much.html' title='Mango = Layar, Skype, and almost too much to name...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-H7Ue-vNtHog/TbAYOzTa9NI/AAAAAAAAAUA/iaJPcKaCUZM/s72-c/mix11.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2225402115662759688</id><published>2011-04-19T10:53:00.001+02:00</published><updated>2011-04-21T13:49:39.201+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='devdays'/><title type='text'>DevDays 2011</title><content type='html'>&lt;p&gt;Yes, it is almost time: the &lt;a href="http://www.techdays.nl/"&gt;2011 edition of the Dutch DevDays&lt;/a&gt;. That's why the rest of this blog post will be in Dutch. My apologies to any international readers.&lt;/p&gt;

&lt;p&gt;Zoals je op dit moment (het attending logo zal later waarschijnlijk wel weer verdwijnen) hiernaast kunt zien ben ik er ook weer bij. Kleine tip wat betreft dat logo: &lt;a href="http://www.techdays.nl/Beleef"&gt;de Beleef pagina&lt;/a&gt; waar je de HTML snippet kunt krijgen voor je eigen logo bevat een fout. De image URL begint met &lt;tt&gt;./images&lt;/tt&gt; in plaats van met &lt;tt&gt;http://www.techdays.nl/images&lt;/tt&gt;. Beetje slordig, maar gelukkig makkelijk te corrigeren.&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-3WYW8pHB0Hk/TbAZpAED2rI/AAAAAAAAAUI/c2Kgsqd5XcU/s1600/devdays11.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="52" width="180" src="http://2.bp.blogspot.com/-3WYW8pHB0Hk/TbAZpAED2rI/AAAAAAAAAUI/c2Kgsqd5XcU/s200/devdays11.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Mijn persoonlijke agenda zal waarschijnlijk best een hoop op &lt;a href="http://dotnetbyexample.blogspot.com/p/my-devdays-2011-agenda.html"&gt;die van Joost&lt;/a&gt; lijken: veel Windows Phone, zeker na MIX met alle nieuwe aankondigingen. Een daadwerkelijke definitieve keuze maak ik waarschijnlijk zoals altijd pas op de dag zelf.&lt;/p&gt;

&lt;p&gt;Tot in het World Forum in Den Haag!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2225402115662759688?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2225402115662759688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/04/devdays-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2225402115662759688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2225402115662759688'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/04/devdays-2011.html' title='DevDays 2011'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-3WYW8pHB0Hk/TbAZpAED2rI/AAAAAAAAAUI/c2Kgsqd5XcU/s72-c/devdays11.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-6174694225910005147</id><published>2011-03-11T12:22:00.003+01:00</published><updated>2011-04-21T13:37:07.185+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><title type='text'>#7slp = SevenSteps #wp7dev LAN Party</title><content type='html'>&lt;p&gt;&lt;a href="http://www.jebusinessinjepocket.nl/2011/03/11/windows-phone-7-lan-party-bij-sevensteps-groot-succes"&gt;&lt;img alt="LAN Party kick-off" heigth="50%" width="50%"  src="http://img.mobypicture.com/38d1258ececcccabe3f3ae9a9aa3d10a_view.jpg" align="right"/&gt;&lt;/a&gt;Yesterday I was at the &lt;a href="http://www.sevensteps.com/sevensteps-lan-party.ashx"&gt;Dutch Windows Phone 7 LAN party&lt;/a&gt;, "and all I got was this damn T-shirt." ;-)&lt;/p&gt;

&lt;p&gt;It was a great day, in which the &lt;a href="http://www.microsoft.com/windowsmobile/nl-nl/meet/windows-phone-7.mspx"&gt;Dutch Windows Phone 7&lt;/a&gt; developer community tried to come together with dozens of developers/designers to create a WP7 app from scratch. For some more information (including some killer images), please check out &lt;a href="http://www.jebusinessinjepocket.nl/2011/03/11/windows-phone-7-lan-party-bij-sevensteps-groot-succes"&gt;my description in Dutch&lt;/a&gt; or the &lt;a href="http://translate.google.com/translate?js=n&amp;prev=_t&amp;sl=nl&amp;tl=en&amp;u=http%3A%2F%2Fwww.jebusinessinjepocket.nl%2F2011%2F03%2F11%2Fwindows-phone-7-lan-party-bij-sevensteps-groot-succes"&gt;English machine-translation&lt;/a&gt; made possible by &lt;a href="http://translate.google.com/"&gt;a Google server farm&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-6174694225910005147?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/6174694225910005147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/03/7slp-sevensteps-lan-party.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6174694225910005147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6174694225910005147'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/03/7slp-sevensteps-lan-party.html' title='#7slp = SevenSteps #wp7dev LAN Party'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-5446543667689660993</id><published>2011-03-02T11:11:00.000+01:00</published><updated>2011-03-02T11:11:56.655+01:00</updated><title type='text'>Syntax highlighting is (finally!) back on this blog...</title><content type='html'>&lt;p&gt;After recently changing the look of my blog not only did I lose my Google Analytics code from the template, but also the inclusion of &lt;a href="http://alexgorbatchev.com/SyntaxHighlighter/"&gt;Syntax Highlighter&lt;/a&gt;. I added analytics back earlier, but hadn't come round to putting source highlighting back into place. This has now been done, and all source code posted while highlighting was gone now has the needed brush class in place again. Hopefully this will make you enjoy reading code on this weblog even better.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-5446543667689660993?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/5446543667689660993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/03/syntax-highlighting-is-finally-back-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5446543667689660993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5446543667689660993'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/03/syntax-highlighting-is-finally-back-on.html' title='Syntax highlighting is (finally!) back on this blog...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-4365338993395572142</id><published>2011-03-02T09:51:00.002+01:00</published><updated>2011-11-14T12:10:38.291+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IEnumerable'/><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Example code for SplitUp(), on infinite sequence! ;-)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-mvFKhKJCaxk/TW4DAGfcw1I/AAAAAAAAASw/5cLzlBZSWh4/s1600/splitup-example.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="320" width="239" src="http://1.bp.blogspot.com/-mvFKhKJCaxk/TW4DAGfcw1I/AAAAAAAAASw/5cLzlBZSWh4/s320/splitup-example.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;I've received some &lt;a href="http://twitter.com/aldarIT/status/40865756811886592"&gt;positive reactions&lt;/a&gt; to my previous post, in which I gave &lt;a href="http://peshir.blogspot.com/2011/02/example-of-c-lazy-functional.html"&gt;source code of a lazy implementation of a &lt;tt&gt;SplitUp()&lt;/tt&gt; function&lt;/a&gt; that could be used for paging an &lt;tt&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;However, I also got comments that example code on how you could use this would be nice. I had been thinking about that - also to show off exactly how the &lt;tt&gt;SplitUp()&lt;/tt&gt; code is lazy and what actually happens if you use it - but decided to leave it out. That was mainly because I myself already knew; it just wasn't a goal of that previous blog post for me. Personally I'm not that much of a "need to see it work in an example" kind of guy, you know? Plus, blog posts take a bit of time. ;-)&lt;/p&gt;

&lt;p&gt;Having said that, I can now give you this example, which should be self-explanatory if you run the following code in a console app project that includes the source from the previous blog code as well. Hope you enjoy it; as always all comments are welcome!&lt;/p&gt;

&lt;pre class="brush: csharp"&gt;
namespace SplitUpExample
{
  using System;
  using System.Linq;
  using System.Collections.Generic;
  using peSHIr.Utilities;

  class Program
  {
    static bool TraceDataCreation;
        
    static Action&amp;lt;string&amp;gt; println = text =&gt; Console.WriteLine(text);
    static Action&amp;lt;string&amp;gt; print = text =&gt; Console.Write(text);
    static Action newline = () =&gt; Console.WriteLine();

    static void Main(string[] args)
    {
      newline();
      println("* How can SplitUp() be used for paging");
      TraceDataCreation = false;
            
      var allData = TestData(64);
      var pagedData = allData.SplitUp(7);
      foreach (var page in pagedData)
      {
        print("Page:");
        foreach (int i in page)
        {
           print(" ");
           print(i.ToString());
        }
        newline();
      }

      newline();
      println("* And is it really lazy?");
      TraceDataCreation = true;
            
      println("Calling SplitUp() on infinite sequence now");
      var pagedInfinity = TestData().SplitUp(4);

      println("Retrieving first page now");
      var page1 = pagedInfinity.ElementAt(0);
            
      println("Retrieving third page now");
      var page3 = pagedInfinity.ElementAt(2);
            
      Action&amp;lt;string,int,int&amp;gt; results = (text,sum,count)
        =&gt; Console.WriteLine("{0}: {1}, {2}", text, sum, count);

      println("Showing results:");
      results("First page", page1.Sum(), page1.Count());
      results("Third page", page3.Sum(), page3.Count());
      println("So yes, SplitUp() is lazy like LINQ! ;-)");

#if DEBUG
      newline();
      println("(Key to quit)");
      Console.ReadKey();
#endif
    }

    static IEnumerable&amp;lt;int&amp;gt; TestData(int n)
    {
      return TestData().Take(n);
    }

    static IEnumerable&amp;lt;int&amp;gt; TestData()
    {
      // WARNING: this returns an infinite sequence!
      // Or at least: until int overflows... ;-)
      int i = 0;
      while (true)
      {
        if (TraceDataCreation)
          Console.WriteLine("Yielding {0}", i);
        yield return i++;
      }
    }

  }

}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-4365338993395572142?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/4365338993395572142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/03/example-code-for-splitup-on-infinite.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4365338993395572142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4365338993395572142'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/03/example-code-for-splitup-on-infinite.html' title='Example code for &lt;tt&gt;SplitUp()&lt;/tt&gt;, on infinite sequence! ;-)'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-mvFKhKJCaxk/TW4DAGfcw1I/AAAAAAAAASw/5cLzlBZSWh4/s72-c/splitup-example.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-7035563654078297748</id><published>2011-02-24T19:58:00.003+01:00</published><updated>2011-11-14T12:18:14.565+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IEnumerable'/><category scheme='http://www.blogger.com/atom/ns#' term='extension method'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Example of C# lazy, functional programming: SplitUp()</title><content type='html'>&lt;p&gt;I seem to be on a bit of roll here regarding &lt;a href="http://peshir.blogspot.com/search/label/extension%20method"&gt;extension methods&lt;/a&gt;. They are by no means a silver bullet, but this method is a nice LINQ-like lazy method on a generic sequence that is a perfect fit. I think it nicely illustrates how you can write your own such functional methods that are usable like LINQ methods that are part of the .NET framework, and have some of the same characteristics.&lt;/p&gt;

&lt;p&gt;This &lt;tt&gt;SplitUp()&lt;/tt&gt; extension method takes a sequence and splits it up into subsequences that each have a maximum length. For instance, &lt;a href="http://peshir.blogspot.com/2011/03/example-code-for-splitup-on-infinite.html"&gt;you can split a sequence (list, collection, array, etc.) of 64 integers into an enumerable sequence of &lt;tt&gt;List&amp;lt;int&amp;gt;&lt;/tt&gt; instances of lengths 10, 10, 10, 10, 10, 10 and 4&lt;/a&gt; by calling &lt;tt&gt;SplitUp(10)&lt;/tt&gt; on it.&lt;/p&gt;

&lt;p&gt;Here is the source:&lt;/p&gt;

&lt;pre class="brush: csharp"&gt;
namespace peSHIr.Utilities
{
 using System;
 using System.Linq;
 using System.Text;
 using System.Collections.Generic;

 /// &amp;lt;summary&amp;gt;Utility code for working with sequences&amp;lt;/summary&amp;gt;
 public static class SequenceUtility
 {
  /// &amp;lt;summary&amp;gt;Split up sequence of items&amp;lt;/summary&amp;gt;
  /// &amp;lt;typeparam name="T"&amp;gt;Item type&amp;lt;/typeparam&amp;gt;
  /// &amp;lt;param name="input"&amp;gt;Input sequence&amp;lt;/param&amp;gt;
  /// &amp;lt;param name="n"&amp;gt;Maximum number of items per sublists&amp;lt;/param&amp;gt;
  /// &amp;lt;returns&amp;gt;Sequence of lists with a maximum
  /// of &amp;lt;paramref name="n"/&amp;gt; items&amp;lt;/returns&amp;gt;
  /// &amp;lt;remarks&amp;gt;Might need a suppression of code analysis rule
  /// CA1006 because of the nested generic type in the method
  /// signature.&amp;lt;/remarks&amp;gt;
  public static IEnumerable&amp;lt;IEnumerable&amp;lt;T&amp;gt;&amp;gt;
   SplitUp&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; input, int n)
  {
   // Non-lazy error checking
   if (input == null) throw new ArgumentNullException("input");
   if (n &amp;lt; 1) throw new ArgumentOutOfRangeException("n", n, "&lt;1");
   return SplitUpLazy(input, n);
  }

  private static IEnumerable&amp;lt;IEnumerable&amp;lt;T&amp;gt;&amp;gt;
   SplitUpLazy&amp;lt;T&amp;gt;(IEnumerable&amp;lt;T&amp;gt; input, int n)
  {
   // Lazy yield based implementation
   var list = new List&amp;lt;T&amp;gt;();
   foreach (T item in input)
   {
    list.Add(item);
    if (list.Count == n)
    {
     yield return list;
     list = new List&amp;lt;T&amp;gt;();
    }
   }
   if (list.Count &amp;gt; 0) yield return list;
   yield break;
  }
 }
}
&lt;/pre&gt;

&lt;p&gt;As you can see, the &lt;tt&gt;SplitUp&lt;/tt&gt; function behaves like built in LINQ functions because its implementation is split up (pun intented...). The public variant basically just does argument checking, so you get the &lt;tt&gt;ArgumentException&lt;/tt&gt;s on improper use immediately when calling the method, while the private actual implementation uses &lt;tt&gt;yield&lt;/tt&gt; statements to implement the actual splitting of the input sequence into lists of at most &lt;tt&gt;n&lt;/tt&gt; elements.&lt;/p&gt;

&lt;p&gt;This mirrors the implementation of LINQ methods, as shown in &lt;a href="http://msmvps.com/blogs/jon_skeet/archive/tags/Edulinq/default.aspx"&gt;the very informative Edulinq blog series&lt;/a&gt; on their implementation by &lt;a href="http://www.pobox.com/~skeet"&gt;Jon Skeet&lt;/a&gt;, the so called &lt;a href="http://stackoverflow.com/users/22656/jon-skeet"&gt;&lt;em&gt;superuser&lt;/em&gt; of stackoverflow.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I hope you find this extra illustration of this technique informative, or at least find the method itself useful. Personally I have used it for splitting up sequences of input records from a file into batches for processing by a web service that had a maximum request size. I would love to hear what you have used it for, so all comments are welcome.&lt;/p&gt;

&lt;p&gt;(Added later: For those of you that like to have working pieces of example code to play with for code nuggets like this, please &lt;a href="http://peshir.blogspot.com/2011/03/example-code-for-splitup-on-infinite.html"&gt;check out my next blog post&lt;/a&gt;.)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-7035563654078297748?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/7035563654078297748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/02/example-of-c-lazy-functional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/7035563654078297748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/7035563654078297748'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/02/example-of-c-lazy-functional.html' title='Example of C# lazy, functional programming: &lt;tt&gt;SplitUp()&lt;/tt&gt;'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2463577669459461898</id><published>2011-02-23T16:21:00.003+01:00</published><updated>2011-03-02T11:06:34.485+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extension method'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Safely set NumericUpDown control value</title><content type='html'>&lt;p&gt;Very quick post about an extension method on the &lt;a href="http://msdn.microsoft.com/en-us/library/57dy4d56.aspx"&gt;&lt;tt&gt;NumericUpDown&lt;/tt&gt;&lt;/a&gt; control I once put to great use. It's small, quick, simple, &lt;a href="http://peshir.blogspot.com/2010/10/small-tip-to-net-bloggers.html"&gt;needs the &lt;tt&gt;System.Windows.Forms&lt;/tt&gt; and &lt;tt&gt;System&lt;/tt&gt; namespaces&lt;/a&gt;, but can be of great use. Enjoy:&lt;/p&gt;

&lt;pre class="brush: csharp"&gt;
public static void SafeValue(this NumericUpDown c, decimal value)
{
   c.Value = Math.Max(c.Minimum, Math.Min(value, c.Maximum));
}
&lt;/pre&gt;

&lt;p&gt;The principle will no doubt work on similar controls for WPF/Silverlight or other controls - like sliders - that at least have a value that is constrained by properties and might give exceptions if you try to set the value to an illegal value.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2463577669459461898?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2463577669459461898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2011/02/safely-set-numericupdown-control-value.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2463577669459461898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2463577669459461898'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2011/02/safely-set-numericupdown-control-value.html' title='Safely set &lt;tt&gt;NumericUpDown&lt;/tt&gt; control value'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-188684727613138028</id><published>2010-11-30T08:12:00.002+01:00</published><updated>2011-03-02T11:51:18.692+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='AR'/><title type='text'>I want Layar on my WP7</title><content type='html'>&lt;p&gt;Just browsed back a bit and found &lt;a href="http://peshir.blogspot.com/2009/09/i-want-layar-on-my-qwerty.html"&gt;this post&lt;/a&gt; from when I had just gotten my Samsung Omnia Qwerty phone. I guess as soon as the camera access API - that LG is already using in their Look n Type and ScanSearch WP7 apps - gets official for general public use, there is &lt;em&gt;no&lt;/em&gt; reason for &lt;a href="http://www.layar.com/"&gt;Layar&lt;/a&gt; to not bring out a port of their client for Windows Phone 7. I'll be waiting...&lt;/p&gt;

&lt;p&gt;Quick update after &lt;a href="http://www.mobileworldcongress.com/"&gt;MWC&lt;/a&gt;: like &lt;a href="http://twitter.com/peSHIr/status/37899924754538497"&gt;I wrote in Barcelona&lt;/a&gt;, I expect this to be unveiled at &lt;a href="http://www.microsoft.com/events/mix/"&gt;MIX in Las Vegas&lt;/a&gt;, april 12-14. So it can't be long now.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-188684727613138028?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/188684727613138028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/11/i-want-layar-on-my-wp7.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/188684727613138028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/188684727613138028'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/11/i-want-layar-on-my-wp7.html' title='I want Layar on my WP7'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-5810120087000320153</id><published>2010-11-30T08:04:00.003+01:00</published><updated>2011-03-02T11:07:35.255+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extension method'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Some handy extension methods for argument checking</title><content type='html'>After &lt;a href="http://twitter.com/marcjacobi/status/9491619522813952"&gt;a quick Twitter interaction&lt;/a&gt; with &lt;a href="http://twitter.com/marcjacobi"&gt;Marc Jacobi&lt;/a&gt; I thought I'd post a small set of extension methods I like to use for argument checking:

&lt;pre class="brush: csharp"&gt;
using System;
using System.Collections.Generic;
using System.Text;

namespace peSHIr.Utilities
{
    public static class Guards
    {
        public static void GuardNull
            (this object argument, string argumentName)
        {
            if (argument == null)
            {
                throw new ArgumentNullException(
                          argumentName,
                          "No object supplied");
            }
        }

        public static void GuardNull
            (this string argument, string argumentName)
        {
            if (String.IsNullOrEmpty(argument))
            {
                throw new ArgumentNullException(
                          argumentName,
                          "No text supplied (or text is empty)");
            }
        }

        public static void GuardZero
            (this int argument, string argumentName)
        {
            if (argument == 0)
            {
                throw new ArgumentNullException(
                          argumentName,
                          "The number zero is not allowed here");
            }
        }

        public static void GuardNull&amp;lt;T&amp;gt;
            (this Nullable&amp;lt;T&amp;gt; argument, string argumentName)
            where T:struct
        {
            if (argument.HasValue == false)
            {
                throw new ArgumentNullException(
                          argumentName,
                          "Empty nullable type not allowed here");
            }
        }

        public static void GuardMinimum&amp;lt;T&amp;gt;
            (this T argument, T lower, string argumentName)
            where T : IComparable&amp;lt;T&amp;gt;
        {
            if (argument.CompareTo(lower) &lt; 0)
            {
                throw new ArgumentOutOfRangeException(
                          argumentName, argument,
                          string.Format("Minimum allowed: {0}", lower));
            }
        }

        public static void GuardMaximum&amp;lt;T&amp;gt;
            (this T argument, T upper, string argumentName)
            where T : IComparable&amp;lt;T&amp;gt;
        {
            if (argument.CompareTo(upper) &gt; 0)
            {
                throw new ArgumentOutOfRangeException(
                          argumentName, argument,
                          string.Format("Maximum allowed: {0}", upper));
            }
        }

        public static void GuardRange&amp;lt;T&amp;gt;
            (this T argument, T lower, T upper, string argumentName)
            where T : IComparable&amp;lt;T&amp;gt;
        {
            if (argument.CompareTo(lower) &lt; 0 || argument.CompareTo(upper) &gt; 0)
            {
                throw new ArgumentOutOfRangeException(
                          argumentName, argument,
                          string.Format("Allowed: [{0},{1}]", lower, upper));
            }
        }
    }
}
&lt;/pre&gt;

When you can use &lt;a href="http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx"&gt;code contracts&lt;/a&gt; this is probably preferable. Otherwise, these little extension methods can come in really handy for some general cases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-5810120087000320153?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/5810120087000320153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/11/some-handy-extension-methods-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5810120087000320153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5810120087000320153'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/11/some-handy-extension-methods-for.html' title='Some handy extension methods for argument checking'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-4646017911358582479</id><published>2010-11-06T14:10:00.000+01:00</published><updated>2010-11-06T14:10:51.725+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><title type='text'>First WP7 app should be published!</title><content type='html'>&lt;p&gt;This morning I found out that &lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;id=c279e728-29e8-df11-9264-00237de2db9e"&gt;my first Windows Phone 7 application&lt;/a&gt; had passed testing. It's status is now "Published to Marketplace", but I have not been able to see it appear on my phone yet. Hope it does so soon.&lt;/p&gt;

&lt;p&gt;In the meantime, here are a couple of screenshots of the application in English; it supports English, German, Spanish and, even though not supported yet, Dutch. All the content that is shown (RSS feed items from &lt;a href="http://www.caesar.nl/"&gt;my companies website&lt;/a&gt; and its &lt;a href="http://twitter.com/caesargroep"&gt;tweets&lt;/a&gt;) is in Dutch only, however.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_XCNtGA3h_vU/TNVSgoVNG7I/AAAAAAAAARs/-7nL5XG8EAo/s1600/Screenshot+01+en-UK.png" imageanchor="1" style="float:left"&gt;&lt;img border="0" height="200" width="120" src="http://3.bp.blogspot.com/_XCNtGA3h_vU/TNVSgoVNG7I/AAAAAAAAARs/-7nL5XG8EAo/s200/Screenshot+01+en-UK.png"&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_XCNtGA3h_vU/TNVShPBPCuI/AAAAAAAAAR0/muyDNit8DtM/s1600/Screenshot+02+en-UK.png" imageanchor="1" style="float:left"&gt;&lt;img border="0" height="200" width="120" src="http://3.bp.blogspot.com/_XCNtGA3h_vU/TNVShPBPCuI/AAAAAAAAAR0/muyDNit8DtM/s200/Screenshot+02+en-UK.png"&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_XCNtGA3h_vU/TNVShcYDPeI/AAAAAAAAAR8/Z7kmi0OsmRs/s1600/Screenshot+03+en-UK.png" imageanchor="1" style="float:left"&gt;&lt;img border="0" height="200" width="120" src="http://4.bp.blogspot.com/_XCNtGA3h_vU/TNVShcYDPeI/AAAAAAAAAR8/Z7kmi0OsmRs/s200/Screenshot+03+en-UK.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-4646017911358582479?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/4646017911358582479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/11/first-wp7-app-should-be-published.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4646017911358582479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4646017911358582479'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/11/first-wp7-app-should-be-published.html' title='First WP7 app should be published!'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XCNtGA3h_vU/TNVSgoVNG7I/AAAAAAAAARs/-7nL5XG8EAo/s72-c/Screenshot+01+en-UK.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1881658307127138104</id><published>2010-11-03T13:00:00.000+01:00</published><updated>2010-11-03T13:00:55.379+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><title type='text'>Is WP7 getting another theme in its next version?</title><content type='html'>&lt;p&gt;When playing with the &lt;a href="http://silverlight.codeplex.com/releases/view/55034#DownloadId=163012"&gt;example code solution&lt;/a&gt; of the November 2010 version of the &lt;a href="http://silverlight.codeplex.com/releases/view/55034#DownloadId=163011"&gt;Silverlight for Windows Phone Toolkit&lt;/a&gt;, I noticed the following:&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/_XCNtGA3h_vU/TNFNsqg3ZcI/AAAAAAAAARk/LMmzA1-a9fo/s1600/wp7_dazzle.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="174" src="http://1.bp.blogspot.com/_XCNtGA3h_vU/TNFNsqg3ZcI/AAAAAAAAARk/LMmzA1-a9fo/s320/wp7_dazzle.png"/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Since this screen seems to do its best to mimick the Theme page from WP7 phone settings to show off one of the places where WP7 itself uses the ListPicker control (with &lt;a href="http://twitter.com/peSHIr/status/29093405605"&gt;appointment status&lt;/a&gt; being another one), I would not be surprised if we would see a new "dazzle" theme in a next version of the Windows Phone OS.&lt;/p&gt;

&lt;p&gt;This piece of example code could mean nothing of course, but I'm still curious what a "dazzle" theme might look like...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1881658307127138104?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1881658307127138104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/11/is-wp7-getting-another-theme-in-its.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1881658307127138104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1881658307127138104'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/11/is-wp7-getting-another-theme-in-its.html' title='Is WP7 getting another theme in its next version?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XCNtGA3h_vU/TNFNsqg3ZcI/AAAAAAAAARk/LMmzA1-a9fo/s72-c/wp7_dazzle.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-3477810949633901493</id><published>2010-11-03T10:01:00.002+01:00</published><updated>2010-11-03T10:19:47.853+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><category scheme='http://www.blogger.com/atom/ns#' term='app hub'/><title type='text'>Annoyed by swamped App Hub</title><content type='html'>&lt;p&gt;Yes, I really am.&lt;/p&gt;

&lt;p&gt;I admit that a launch of the magnitude of &lt;a href="http://www.microsoft.com/windowsphone/en-us/default.aspx"&gt;Windows Phone 7&lt;/a&gt; is no easy thing. And that I didn't really get active in WP7 application writing until the LG developer prototype device from Microsoft arrived two weeks ago. But still.&lt;/p&gt;

&lt;p&gt;I have been wanting to publish at least one WP7 app to the marketplace for almost those two weeks now. Thanks to Microsoft NL (way to go, &lt;a href="http://twitter.com/mahoekst"&gt;Matthijs&lt;/a&gt;!) I should have been white-listed for WP7 app publishing already, but so far this has not materialized. The &lt;a href="http://create.msdn.com/"&gt;App Hub&lt;/a&gt; &lt;a href="http://forums.create.msdn.com/forums/"&gt;forum&lt;/a&gt; seems awash with developers in a similar predicament. Without a real solution in sight.&lt;/p&gt;

&lt;p&gt;The relevant forum threads all started mentioning the magical date of november the 3rd as a solution: by then everyone registered as a marketplace developer (no matter the platform) would be able to publish WP7 apps. Too bad no time (and timezone) was mentioned for this...&lt;/p&gt;

&lt;p&gt;Because right now here in the Netherlands 10am on november the 3rd has come and gone, but I still cannot publish. Combining the 'timezone' and the 'no specific time mentioned' issues &lt;a href="http://twitter.com/peSHIr/status/29552238573"&gt;I'm waiting for tomorrow morning&lt;/a&gt;, roughly assuming after 11pm on the 3rd on LA time. However, &lt;a href="http://twitter.com/peSHIr/status/29553780719"&gt;I do not assume publishing will have commenced normally (=in force) by then&lt;/a&gt;...&lt;/p&gt;

&lt;p&gt;I would definately &lt;em&gt;not&lt;/em&gt; want to be on the WP7 App Hub team right now. Good luck the coming weeks, guys!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-3477810949633901493?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/3477810949633901493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/11/annoyed-by-swamped-app-hub.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3477810949633901493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3477810949633901493'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/11/annoyed-by-swamped-app-hub.html' title='Annoyed by swamped App Hub'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-4312025230832494809</id><published>2010-10-20T21:12:00.005+02:00</published><updated>2011-03-02T11:24:43.919+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><title type='text'>A small tip to .NET bloggers...</title><content type='html'>&lt;p&gt;I have a small tip for .NET bloggers out there:
&lt;blockquote&gt;Will you &lt;em&gt;please&lt;/em&gt; include full namespaces in your example code?&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;For people not yet well versed in the .NET API that you describe or use in your code, nothing is more frustrating than copying a couple of lines of code from a blog and then finding out that it doesn't compile because they have not referenced the right assembly and/or included the needed using statement for the namespace.&lt;/p&gt;

&lt;p&gt;What would you prefer to find as an example in a post that describes how you can let Windows open a website in the default browser by simply starting a new process with the URL as the commandline?&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;&lt;pre class="brush: c#" title="Full inline namespaces in code"&gt;
System.Diagnostics.Process.Start("http://blog.peshir.nl/");&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;&lt;pre class="brush: c#" title="Needed using statements in code"&gt;
using System.Diagnostics
...
Process.Start("http://blog.peshir.nl/");&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;&lt;pre class="brush: c#" title="Needed namespace mentioned in text"&gt;
Process.Start("http://blog.peshir.nl/");&lt;/pre&gt;
You find the &lt;tt&gt;Process&lt;/tt&gt; class in the &lt;tt&gt;System.Diagnostics&lt;/tt&gt; namespace.
&lt;/li&gt;

&lt;li&gt;&lt;pre class="brush: c#" title="You're on your own... Good luck!"&gt;
Process.Start("http://blog.peshir.nl/");&lt;/pre&gt;
&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;To me any option is fine, except the last one.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-4312025230832494809?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/4312025230832494809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/10/small-tip-to-net-bloggers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4312025230832494809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4312025230832494809'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/10/small-tip-to-net-bloggers.html' title='A small tip to .NET bloggers...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1873391999983306325</id><published>2010-10-20T10:05:00.001+02:00</published><updated>2010-10-20T21:21:11.722+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maps'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Maps should (no: must) come to WP7</title><content type='html'>&lt;p&gt;With my personal interest in maps and mapping I read &lt;a href="http://dotnetbyexample.blogspot.com/2010/10/google-maps-for-windows-phone-7.html"&gt;the blog post about Google Maps on WP7&lt;/a&gt; (using the &lt;a href="http://maps.bing.com/"&gt;Bing Maps&lt;/a&gt; Silverlight control) by &lt;a href="http://twitter.com/LocalJoost"&gt;LocalJoost&lt;/a&gt; with great interest.&lt;/p&gt;

&lt;p&gt;He mentioned a lot of pageviews to this post shortly after posting it, &lt;a href="http://twitter.com/LocalJoost/status/27909811739"&gt;and I just saw him tweet&lt;/a&gt; about his post being picked up on &lt;a href="http://wpcentral.com/microsoft-developer-throws-down-gauntlet-google-shows-how-code-google-maps-wp7"&gt;by wpcentral.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I think it's great that wpcentral.com did pick up on this. However, I do not agree at all with the first part of the possibly meant to be funny footnote by Daniel Rubino:

&lt;blockquote&gt;Yeah, I know. Who would want to use Google Maps when Bing kicks so much butt? [...]&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;I suspect that Daniel is both Microsoft biased (not really a problem for me) and not based in the Netherlands, because even though I hear a lot of positive things about Bing Search and Bing Maps, I keep comparing it to Google Search and Google Maps and have not switched yet.&lt;/p&gt;

&lt;p&gt;To be frank and rather blunt about it: Bing can't stand in the shadow of Google. Or at least it cannot in the Netherlands, which happens to be where I live and use these services almost exclusively.&lt;/p&gt;

&lt;p&gt;Before anyone starts comparing actual mobile client features I want to point out that this is mainly related to (probably) legal and data issues and not to the technology. I just have the feeling Google in general "finds more" for me, gives me more useful results. Also, I like the visual style of Google Maps more than that of Bing Maps at the moment, but that could just take some getting used too.&lt;/p&gt;

&lt;p&gt;So for now I'll take Google over Bing any way I can get it. And that includes a Google Maps client for WP7, preferably written by Google itself and including all the official Google Maps features.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://google.com/gmm"&gt;Google, are you listening...?&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1873391999983306325?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1873391999983306325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/10/google-maps-should-no-must-come-to-wp7.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1873391999983306325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1873391999983306325'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/10/google-maps-should-no-must-come-to-wp7.html' title='Google Maps should (no: must) come to WP7'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-6955029849468588756</id><published>2010-06-11T08:47:00.009+02:00</published><updated>2011-04-19T11:57:14.982+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='helicopter'/><title type='text'>Some RC helicopter flight simulator resources</title><content type='html'>&lt;p&gt;If you &lt;a href="http://twitter.com/peSHIr"&gt;follow me on Twitter&lt;/a&gt; you probably know that I am in the process of &lt;a href="http://www.flycam.nl/index.php?option=com_content&amp;amp;task=view&amp;amp;id=13&amp;amp;Itemid=28"&gt;learning how to fly RC helicopters&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have done quite a lot of hours in a &lt;a href="http://flycam.nl/index.php?page=shop.product_details&amp;flypage=shop.flypage&amp;product_id=23&amp;category_id=24&amp;option=com_virtuemart&amp;Itemid=2"&gt;simulator&lt;/a&gt; already and own &lt;a href="http://www.parkfun-rc.com/html/axial_3d_ec-135_rescue_team_re.html"&gt;a coaxial chopper&lt;/a&gt; I use for indoor hover training, &lt;a href="http://www.mobypicture.com/user/peSHIr/view/5687584"&gt;which you can see here&lt;/a&gt; as it was before the flimsy bodywork got slightly damaged &lt;a href="http://www.mobypicture.com/user/peSHIr/view/7055558"&gt;(and here after a second recent crash)&lt;/a&gt;...&lt;/p&gt;

&lt;p&gt;At the time of writing this I was thinking about getting myself a &lt;a href="http://de.robbe-online.net/rims_de.storefront/4c49448f00e4b67e271b3e0dc1460682/Product/View/1&amp;2DS2515"&gt;Nano Arrow&lt;/a&gt;, as it is smaller/lighter (=less easily damaged), has a "normal" configuration with single rotor blades and a powered tail rotor and &lt;a href="http://www.mobypicture.com/user/peSHIr/view/7097020"&gt;is cute as hell&lt;/a&gt;. I have now bought one of these and use it for training. ;-)&lt;/p&gt;

&lt;h2&gt;Simulator resources&lt;/h2&gt;

&lt;p&gt;Recently &lt;a href="http://twitter.com/sevensteps/status/15879263225"&gt;I got a question about simulators&lt;/a&gt;, specifically if there were any open source/free ones around.&lt;/p&gt;

&lt;p&gt;As I really didn't know (only having used &lt;a href="http://www.realflight.com/"&gt;RealFlight&lt;/a&gt; 4.5 myself), I did a quick Google. This is what I found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.thepcmanwebsite.com/media/helicopter_flight/helicopter_flight.shtml"&gt;A silly, arcade like Java "simulator"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://rcvehicles.about.com/od/software/a/flightsim.htm"&gt;Flight simulator information on about.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://rcvehicles.about.com/od/software/tp/RC_Helicopter_Flight_Simulator.htm"&gt;List of helicopter flight simulators on about.com&lt;/a&gt;, including links to demo versions&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.heliguy.com/nexus/fms.html"&gt;Flying Model Simulator&lt;/a&gt;, which does seem to be (also available as?) freeware&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.hovercontrol.com/"&gt;Hovercontrol.com&lt;/a&gt; seems to be related to helicopter simulation with/in Microsoft Flight Simulator?&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.thirtythousandfeet.com/flightsi.htm"&gt;Flight simulator information on thirtythousandfeet.com&lt;/a&gt; (seems to be geared more towards fixed wing aircraft?)&lt;/li&gt;
&lt;li&gt;
&lt;li&gt;&lt;a href="http://www.flightgear.org/"&gt;FlightGear Flight Simulator&lt;/a&gt; seems to actually be open source&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you know of anything that should be in this list that I missed (didn't put that much time into compiling it), please let me know in the comments.&lt;/p&gt;

&lt;h2&gt;Get the right controller&lt;/h2&gt;

&lt;p&gt;One last comment: if you are (or become) serious about flying RC helicopters, I think it will be imperative to have simulator software that has a physical USB transmitter available or at least the means to attach and use one.&lt;/p&gt;

&lt;p&gt;What you have in your hands while simulator flying should really be as close as you can get to what you will be flying your actually helicopter with. This helps to train muscle memory and make you a pilot instead of "just" a gamer trying to fly an actual helicopter model.&lt;/p&gt;

&lt;h2&gt;Small update&lt;/h2&gt;

&lt;p&gt;If you want to know &lt;a href="http://peshir.wordpress.com/category/helicopter/"&gt;more about my helicopter adventure, please check out my personal blog&lt;/a&gt; (which is in Dutch).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-6955029849468588756?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/6955029849468588756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/06/some-rc-helicopter-flight-simulator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6955029849468588756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6955029849468588756'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/06/some-rc-helicopter-flight-simulator.html' title='Some RC helicopter flight simulator resources'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-3696378182798135094</id><published>2010-03-17T12:27:00.000+01:00</published><updated>2010-03-17T12:27:00.442+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><title type='text'>Is Microsoft insane?</title><content type='html'>You're probably guessing this blog post has something to do with &lt;a href="http://is.gd/aLIBd"&gt;Windows Phone 7 Series (or WP7)&lt;/a&gt;. Also, many of you will agree the answer to the above question must still be "no", especially given the qualities of the iphone and the numbers this device sells. However, &lt;a href="http://www.petitionspot.com/petitions/7seriesphoneboycott"&gt;unless the locked down nature of WP7 changes&lt;/a&gt; Microsoft clearly does not want me as a WP7 customer. Their loss. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-3696378182798135094?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/3696378182798135094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/03/is-microsoft-insane.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3696378182798135094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3696378182798135094'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/03/is-microsoft-insane.html' title='Is Microsoft insane?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2159359270592628484</id><published>2010-02-11T16:04:00.005+01:00</published><updated>2011-02-23T16:30:38.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><title type='text'>Cultural barbarism .NET</title><content type='html'>&lt;p&gt;If you follow &lt;a href="http://twitter.com/peSHIr"&gt;me on Twitter&lt;/a&gt;, you will have seen me rant about an alpha version of some piece of software on my phone. While I will not be naming it here, because that is just not the point, it is clearly the reason for this blog post.&lt;/p&gt;

&lt;p&gt;The application - lets call it &lt;a href="http://stackoverflow.com/questions/437/what-is-your-solution-to-the-fizzbuzz-problem"&gt;FizzBuzz&lt;/a&gt; just to have a generic name - looks good, and seems to work okay (great, if you consider that it's an alpha version) except for one thing that for me made it totally useless. FizzBuzz contacts an internet service through (I think) a &lt;a href="http://en.wikipedia.org/wiki/REST"&gt;REST&lt;/a&gt; API. And at least one of the parameters involved is a decimal number. When I used the version of the FizzBuzz application that sparked this post, all I got was a fatal exception message box after which the applications was killed, &lt;a href="http://stackoverflow.com/questions/434839/where-do-you-like-to-catch-exceptions-and-why/434903#434903"&gt;which in itself was fine&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;So some application crashed. What gives?&lt;/h2&gt;

&lt;p&gt;What's not fine however is the fact that the problem that caused the crash was a &lt;tt&gt;FizzBuzzException&lt;/tt&gt; with a message a bit like &lt;tt&gt;"Invalid attribute 52,0987654321"&lt;/tt&gt;. The original FizzBuzz API no doubt accepts its decimal values with a dot. I live in the Netherlands however, so my phone is set to the (for me) correct local settings, which include a decimal comma. So, what went wrong?&lt;/p&gt;

&lt;p&gt;Simple: the creator of the FizzBuzz phone application seems to have been working from a faulty assumption: in the .NET framework &lt;tt&gt;decimal.ToString()&lt;/tt&gt; always creates its results "the same way I'm used to getting them". And that is plainly wrong. The whole question of globalization is just completely ignored then!&lt;/p&gt;

&lt;h2&gt;Globalization? Oh no, not that!&lt;/h2&gt;

&lt;p&gt;Don't get me wrong here. Globalization is a royal &lt;a href="http://twitter.com/LocalJoost/status/8716241513"&gt;pain in the ass&lt;/a&gt;. So, I'm not saying that, just because &lt;a href="http://www.codeproject.com/KB/books/CustomCultures.aspx"&gt;the current .NET framework seems to be able cope just fine with globalization in almost every way&lt;/a&gt;, each and every application written using it &lt;a href="http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html"&gt;should pass the complete Turkey test&lt;/a&gt;. Which by the way is &lt;a href="http://www.codinghorror.com/blog/archives/001075.html"&gt;in no particular way meant to be negative about Turkey&lt;/a&gt; in particular. ;-)&lt;/p&gt;

&lt;p&gt;Also, this post is not about the FizzBuzz phone application showing times in 12-hour time (without AM/PM indication even) and dates in &lt;tt&gt;M/DD&lt;/tt&gt; numerical format. I sure would like it very much if it would show this to me in 24-hour time and &lt;tt&gt;D-M&lt;/tt&gt; format (either by making use of the current Culture settings, or by letting the user choose among a number of options in its Settings), but that is again not my point here.&lt;/p&gt;

&lt;h2&gt;What are you saying, then?&lt;/h2&gt;

&lt;p&gt;I just think there are minimum levels of "cultural awareness" for each and every .NET programmer. And knowing that &lt;tt&gt;ToString()&lt;/tt&gt; (and anything directly or indirectly using it) is dependent on &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.thread.currentculture.aspx"&gt;the current culture&lt;/a&gt; is part of that. Not just getting an "aha" feeling when someone (like me) tells you about this, but using this in your daily work every day.&lt;/p&gt;

&lt;p&gt;What really helps with this is static code analysis: if you turn on rules &lt;a href="http://msdn.microsoft.com/en-us/library/ms182189.aspx"&gt;CA1304&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/ms182190.aspx"&gt;CA1305&lt;/a&gt; it almost becomes impossible to forget about these things. Especially if you turn on the &lt;tt&gt;Treat warnings as errors&lt;/tt&gt; option, which might be a bit much for most.&lt;/p&gt;

&lt;p&gt;Another basic that every .NET developer should be aware of is &lt;a href="http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.invariantculture.aspx"&gt;the invariant culture&lt;/a&gt; and when to use it.&lt;/p&gt;

&lt;p&gt;Every time you are converting a value to a string &lt;em&gt;for the purpose of showing it to the human user of your application&lt;/em&gt;, the assumption above is usually fine. Normally the .NET Framework will silently use the current culture which will be related to the local settings made on the device and everything should be peachy.&lt;/p&gt;

&lt;p&gt;However, when you are creating a string for the specific use in an API to other software - like in the situation the FizzBuzz application was converting decimal values to strings - you normally need a specific format. Or to be correct: the API you use expects a specific format. And since most software development has historically been English based, you'd better use dots in your text-formatted decimal numbers, unless specified otherwise. For this, the invariant culture is perfect.&lt;/p&gt;

&lt;p&gt;For some small bits of code then. When dealing with API use (not GUI to human user use) I often put the following in string related classes:&lt;/p&gt;

&lt;pre class="brush: c#; gutter: false"&gt;
using System.Globalization;

// ...

class SomeApiStringHandling {

   private static CultureInfo invariant = CultureInfo.InvariantCulture; 

   // ...

   void SomeMethodUsingStringFormat() {
      string.Format(invariant, "Format", data);
      // instead of the usual
      string.Format("Format", data);
   }   

   // ...
}
&lt;/pre&gt;

&lt;p&gt;Also, don't forget about &lt;tt&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.string.tolowerinvariant.aspx"&gt;string.ToLowerInvariant()&lt;/a&gt;&lt;/tt&gt; as opposed to the much more well known &lt;tt&gt;string.ToLower()&lt;/tt&gt; (and the same for the variants for upper case) in situations where use of the invariant culture matters.&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Please adjust your basic assumptions (if you haven't already): assume the current culture comes into play when converting to/from strings &lt;em&gt;at all times&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;When working with strings in relation to software based protocols and your "old assumptions" should hold, simply explicitly specify the use of the invariant culture.&lt;/li&gt;
&lt;li&gt;Only if you have a compelling need to (or when it interests you) should you actually read up further on the whole globalization situation, including the Turkey test, date/time/currency formats, multiple resource files for different cultures, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oh, and if any one of you still thinks that one &lt;tt&gt;char&lt;/tt&gt; equals one byte, let me know. Perhaps I can then start talking about &lt;a href="http://blogs.msdn.com/michkap/default.aspx"&gt;Unicode and other character encodings&lt;/a&gt; a bit, alright? Whole different can of worms entirely... ;-)&lt;/p&gt;

&lt;p&gt;&lt;small&gt;P.S. To be fair, by the time this blog post is actually published, the FizzBuzz application that was a reason for me to write this post corrected the problem and is now working fine. Just wanted to have this mentioned explicitly.&lt;/small&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2159359270592628484?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2159359270592628484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/02/cultural-barbarism-net.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2159359270592628484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2159359270592628484'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/02/cultural-barbarism-net.html' title='Cultural barbarism .NET'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2074845761341209412</id><published>2010-02-03T10:56:00.000+01:00</published><updated>2010-02-03T10:56:47.433+01:00</updated><title type='text'>My old (make that ancient) website is going down...</title><content type='html'>&lt;p&gt;If you read this blog and generally follow me online or have been doing some time ago, chances are &lt;a href="http://www.jarno.demon.nl/"&gt;http://www.jarno.demon.nl/&lt;/a&gt; has come up on your screen at some time.&lt;/p&gt;

&lt;p&gt;This is the website I started working on when I was at university. This was somewhere in 1996 I think, judging from the copyright message. I wrote an MS-DOS console application myself in some compilable BASIC dialect to create and maintain the site. This application, called JHS2HTML, would take *.jhs files and some general header/footer type information and create a an HTML file for each, in essence giving me the website to then go FTP somewhere. The tool had dynamic placemarkers for things like the current date or year, easy linking to other *.jhs files (creating mouseover links) and macros for things like the UPDATED images that were all in fashion at the time. Oh yes, this 'sophisticated CMS' included style sheets and master pages and all that. Sort of. &amp;lt;grin&amp;gt;&lt;/p&gt;

&lt;p&gt;Let's face it, this website is old, outdated and frankly a bit (lot?) embarrassing even. But still, I never took it down or moved it and I'm still paying the ISP I had the time just so it remains. That, and because I'm a lazy administrator, and never actually canceled. This is now going to change.&lt;/p&gt;

&lt;p&gt;I think I keep getting some job offer calls from the CV on the site. And there are also still things on there that are difficult or impossible to find elsewhere on the web, like: the ghost website of RUN Flagazine, information on the HP82240B printer (although I think this is also mirrored in the HP48 FAQ) and my masters thesis.&lt;/p&gt;

&lt;p&gt;So, after reading about &lt;a href="http://www.httrack.com/"&gt;HTTrack&lt;/a&gt; on &lt;a href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/12/14/Back-up-your-Site_2F00_Blog-by-Crawling-it-with-HTTrack.aspx"&gt;POKE 53280,0&lt;/a&gt; I am now dragging all the content down so I can stored it in my Jungledisk account somewhere so it isn't lost completely. And afterwards I will be taking my Demon account down. So expect my ancient website to soon vanish, at least from the current URL...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2074845761341209412?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2074845761341209412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2010/02/my-old-make-that-ancient-website-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2074845761341209412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2074845761341209412'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2010/02/my-old-make-that-ancient-website-is.html' title='My old (make that ancient) website is going down...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-7362035347891510674</id><published>2009-12-20T15:11:00.002+01:00</published><updated>2009-12-20T15:12:31.983+01:00</updated><title type='text'>Blog should load faster; stalking me takes an extra click</title><content type='html'>&lt;p&gt;I have had some location badges on my blog for a while, but this seemed to slow down page loading quite a bit. Also, why would any blog page show my location?&lt;/p&gt;&lt;p&gt;So now I've moved all this geo-info onto the Google Site that &lt;a href="http://peshir.nl/"&gt;my domain&lt;/a&gt; points to. This should make blog post loading a bit more snappy. And should you still feel the urge to stalk me, you can use the "Where am I" link provided in the top right corner.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-7362035347891510674?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/7362035347891510674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/12/blog-should-load-faster.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/7362035347891510674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/7362035347891510674'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/12/blog-should-load-faster.html' title='Blog should load faster; stalking me takes an extra click'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-6797043068941205979</id><published>2009-12-06T12:08:00.000+01:00</published><updated>2009-12-06T12:08:57.098+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><title type='text'>Trying Windows Phone upgrade for Omnia Qwerty...</title><content type='html'>&lt;p&gt;And so far, Samsung it not giving me a good feeling about this at all! Check tag &lt;a href="http://twitter.com/search?q=%23omniaqwertyupgrade#search?q=%23omniaqwertyupgrade"&gt;#omniaqwertyupgrade on Twitter&lt;/a&gt; for more (real time) information. Will let you know how this turns out.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-6797043068941205979?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/6797043068941205979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/12/trying-windows-phone-upgrade-for-omnia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6797043068941205979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6797043068941205979'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/12/trying-windows-phone-upgrade-for-omnia.html' title='Trying Windows Phone upgrade for Omnia Qwerty...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1792990637822363915</id><published>2009-11-05T13:50:00.006+01:00</published><updated>2011-05-02T08:47:41.411+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Remember RockScroll? Now there's... MetalScroll!</title><content type='html'>&lt;p&gt;&lt;a href="http://www.hanselman.com/blog/IntroducingRockScroll.aspx"&gt;In May of 2008 a blog post&lt;/a&gt; by &lt;a href="http://twitter.com/shanselman"&gt;Scott Hanselman&lt;/a&gt; introduced me to RockScroll, an amazing add-in for VisualStudio.&lt;/p&gt;

&lt;p align="center"&gt;&lt;img alt="RockScroll in action" height="50%" width="50%" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/IntroducingRockScroll_C29C/RockScroll_5.png"/&gt;&lt;/p&gt;

&lt;p&gt;This piece of software made the scrollbar in code editor windows wider and showed an extremely scaled down graphical representation of the code in its place. It would still work as a scrollbar, but you would get a great sense of were you were in the source code file. And it had additional features, like highlighting words you double clicked, both in the editor and in the scrollbar thumbnail image.&lt;/p&gt;

&lt;h3&gt;RockScroll had a couple of rough edges...&lt;/h3&gt;

&lt;p&gt;I have used it for quite a while, but unfortunately it had a couple of issues that eventually let it drift from sight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It did not take into account (collapsed) code regions.&lt;/li&gt;
&lt;li&gt;You could very easily highlight something when you didn't want to.&lt;/li&gt;
&lt;li&gt;Highlights stayed around until cleared by highlighting something else.&lt;/li&gt;
&lt;li&gt;You could not change the colors that were used in the scrollbar.&lt;/li&gt;
&lt;li&gt;It seemed to have occasional stability issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But now there is a solution...&lt;/p&gt;

&lt;h3&gt;MetalScroll to the rescue!&lt;/h3&gt;

&lt;p&gt;A new add-in by &lt;a href="http://social.msdn.microsoft.com/Profile/en-US/?user=Mihnea%20Balta&amp;sp=vsg"&gt;Mihnea Balta&lt;/a&gt; (of &lt;a href="http://www.griffinlair.com/"&gt;Griffin&lt;/a&gt;) called &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/3a50c69b-9b35-4eb2-b06a-328758afcaa2"&gt;MetalScroll&lt;/a&gt; now does eveything RockScroll did while, as far as I can tell right now, solving &lt;em&gt;all of these issues&lt;/em&gt; and more! It even turned open source.&lt;/p&gt;

&lt;p align="center"&gt;&lt;img alt="MetalScroll in action" height="50%" width="50%" src="http://metalscroll.googlecode.com/files/MetalScroll.png"/&gt;&lt;/p&gt;

&lt;p&gt;If you work in VS2005/VS2008, then do yourself a real favour and &lt;a href="http://code.google.com/p/metalscroll/"&gt;download it from Google Code&lt;/a&gt; now!&lt;/p&gt;

&lt;p&gt;UPDATE: If you work in VS2010 (in which COM/Win32 based plugins no longer work due to the WPF rewrite), you can find and install the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef/"&gt;Productivity Power Tools&lt;/a&gt; - which features an enhanced scrollbar with three modes - under &lt;tt&gt;Tools, Extension Manager...&lt;/tt&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1792990637822363915?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1792990637822363915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/11/remember-rockscroll-now-theres.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1792990637822363915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1792990637822363915'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/11/remember-rockscroll-now-theres.html' title='Remember RockScroll? Now there&apos;s... MetalScroll!'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-3477441210902145876</id><published>2009-11-04T10:00:00.003+01:00</published><updated>2009-11-04T10:00:01.084+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Boffoonery'/><title type='text'>Boffoonery: getting back</title><content type='html'>&lt;p&gt;And there you have it; I should be well on my way back to the European mainland again, maybe even back out of the tunnel already. Just as well too: we've got a &lt;a href="http://en.wikipedia.org/wiki/Guus_Meeuwis"&gt;Guus Meeuwis&lt;/a&gt; concert lined up for tonight in Utrecht. (What was I thinking!)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-3477441210902145876?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/3477441210902145876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/11/boffoonery-getting-back.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3477441210902145876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3477441210902145876'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/11/boffoonery-getting-back.html' title='Boffoonery: getting back'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-6734211567114452577</id><published>2009-11-03T21:00:00.001+01:00</published><updated>2009-11-03T21:00:02.273+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Boffoonery'/><title type='text'>Boffoonery: being there</title><content type='html'>&lt;p&gt;At the moment I should definately be at &lt;a href="http://www.thebloomsbury.com"&gt;the Bloomsbury Theatre&lt;/a&gt; for &lt;a href="http://www.boffoonery.com"&gt;Boffoonery&lt;/a&gt;. I wonder how &lt;a href="http://twitter.com/bobbyllew"&gt;@bobbyllew&lt;/a&gt; will be in the flesh. Will &lt;a href="http://twitter.com/stephenfry"&gt;@stephenfry&lt;/a&gt; be there, as he would try to be? How will I like the show. Unless plagued by gadget troubles &lt;a href="http://twitter.com/peSHIr"&gt;I'll probably be twittering about it.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-6734211567114452577?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/6734211567114452577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/11/boffoonery-being-there.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6734211567114452577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6734211567114452577'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/11/boffoonery-being-there.html' title='Boffoonery: being there'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1664082030019388443</id><published>2009-11-03T15:00:00.003+01:00</published><updated>2009-11-03T15:00:03.290+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Boffoonery'/><title type='text'>Boffoonery: getting there</title><content type='html'>&lt;p&gt;I've been to London a couple of times already, by (almost) all the different available means: plane to Heathrow, ferry (both by car and by coach) and the Channel Tunnel by car. I've even been on the Calais-Dover hovercraft once.&lt;/p&gt;

&lt;p&gt;However, as you're reading this I'll be either in the Eurostar train to St.Pancras or already in London. My first train ride to the UK. Can't wait to get to &lt;a href="http://www.boffoonery.com/"&gt;Boffoonery&lt;/a&gt;...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1664082030019388443?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1664082030019388443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/11/boffoonery-getting-there.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1664082030019388443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1664082030019388443'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/11/boffoonery-getting-there.html' title='Boffoonery: getting there'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-8172850099225882946</id><published>2009-10-27T11:41:00.004+01:00</published><updated>2009-10-27T11:46:04.206+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Twitter must be doing some maintenance?</title><content type='html'>&lt;p&gt;Haven't seen anything on &lt;a href="http://status.twitter.com/"&gt;status.twitter.com&lt;/a&gt; about it yet, but seeing the following instead of a Fail Whale is a first for me:&lt;/p&gt;

&lt;blockquote&gt;Service Temporarily Unavailable
&lt;br/&gt;&lt;br/&gt;
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
&lt;br/&gt;&lt;br/&gt;
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.&lt;/blockquote&gt;

&lt;p&gt;Nothing a quick reload wouldn't fix (for now). But still...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-8172850099225882946?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/8172850099225882946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/10/twitter-must-be-doing-some-maintenance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8172850099225882946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8172850099225882946'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/10/twitter-must-be-doing-some-maintenance.html' title='Twitter must be doing some maintenance?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-3864384944880266464</id><published>2009-10-19T15:47:00.012+02:00</published><updated>2011-04-19T11:44:12.826+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IEnumerable'/><category scheme='http://www.blogger.com/atom/ns#' term='extension method'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Efficient checking whether IEnumerable contains data</title><content type='html'>&lt;p&gt;Have you ever needed to check - in a LINQ context, or otherwise - whether an &lt;a href="http://msdn.microsoft.com/en-us/library/9eekhta0.aspx"&gt;&lt;tt&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/tt&gt;&lt;/a&gt; (or plain &lt;tt&gt;IEnumerable&lt;/tt&gt;) contained any elements?&lt;/p&gt;&lt;p&gt;Of course a check using the &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.count.aspx"&gt;&lt;tt&gt;Count&amp;lt;T&amp;gt;()&lt;/tt&gt;&lt;/a&gt; extension method to check for an element count of zero works here, but this would be... unfortunate... for sequences yielding large numbers of elements because of the &lt;a href="http://en.wikipedia.org/wiki/Big_O_notation"&gt;&lt;em&gt;O&lt;/em&gt;(n)&lt;/a&gt; linear behavior.&lt;/p&gt;&lt;p&gt;Maybe the following source code (or the LINQ &lt;tt&gt;Any()&lt;/tt&gt; method, see comments) could be of use to you in those cases from now on:&lt;/p&gt;&lt;pre class="brush: c#; gutter: false"&gt;/// &amp;lt;summary&amp;gt;Sequence contains at least 1 item?&amp;lt;/summary&amp;gt;
/// &amp;lt;typeparam name="T"&amp;gt;Type of elements&amp;lt;/typeparam&amp;gt;
/// &amp;lt;param name="sequence"&amp;gt;Sequence to check&amp;lt;/param&amp;gt;
/// &amp;lt;returns&amp;gt;true/false&amp;lt;/returns&amp;gt;
public static bool NotEmpty&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; sequence)
{
  return sequence.GetEnumerator().MoveNext();
}

/// &amp;lt;summary&amp;gt;Sequence contains at least 1 item?&amp;lt;/summary&amp;gt;
/// &amp;lt;param name="sequence"&amp;gt;Sequence to check&amp;lt;/param&amp;gt;
/// &amp;lt;returns&amp;gt;true/false&amp;lt;/returns&amp;gt;
public static bool NotEmpty(this IEnumerable sequence)
{
  return sequence.GetEnumerator().MoveNext();
}&lt;/pre&gt;&lt;p&gt;These extension methods check whether the given sequence contains elements or not, but does so taking only &lt;a href="http://en.wikipedia.org/wiki/O(1)"&gt;&lt;em&gt;O&lt;/em&gt;(1)&lt;/a&gt; constant time. In other words: the entire sequence is not fully evaluated, but the minimal work is being done to check if the sequence contains at least one element.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-3864384944880266464?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/3864384944880266464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/10/efficient-checking-whether-ienumerable.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3864384944880266464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3864384944880266464'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/10/efficient-checking-whether-ienumerable.html' title='Efficient checking whether IEnumerable&lt;T&gt; contains data'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-8973063550944681030</id><published>2009-10-14T15:40:00.003+02:00</published><updated>2009-10-14T15:51:20.742+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><title type='text'>What is wrong with me - Part 2</title><content type='html'>&lt;p&gt;Remember &lt;a href="http://peshir.blogspot.com/2009/09/what-is-wrong-with-me.html"&gt;"What is wrong with me?"&lt;/a&gt;, the blog post from september 16th? Right now I'm pondering whether electronic gadgets are just not for me.&lt;/p&gt;&lt;p&gt;Yesterday evening I turned my phone off for a couple of hours. Ever since I turned it back on, it turns itself off (or hangs, or whatever) after the screen has been off for an as of yet undetermined amount of time. Then I need to remove the battery or use &lt;a href="http://peshir.blogspot.com/2009/09/can-you-hard-reset-omnia-qwerty.html"&gt;the receded reset switch&lt;/a&gt;, which turns out to be a "soft reset" (=leaving memory) and not a "hard reset" (or factory reset) after all.&lt;/p&gt;&lt;p&gt;This is a disaster for a phone: unless I actively keep it on and active (including the display, which burns battery like there's no tomorrow), it's a brick that I need to turn on again when I need to use it.&lt;/p&gt;&lt;p&gt;Right now I don't have the time to repave it, but I'm still hoping this is some kind of software glitch. If repaving this thing again doesn't remedy this symptom, I'll need to have the obviously faulty hardware replaced. In any case: just my luck.&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;lt;sigh&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-8973063550944681030?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/8973063550944681030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/10/what-is-wrong-with-me-part-2.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8973063550944681030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8973063550944681030'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/10/what-is-wrong-with-me-part-2.html' title='What is wrong with me - Part 2'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-5700143847967434030</id><published>2009-10-13T12:00:00.002+02:00</published><updated>2009-10-13T12:14:55.450+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>So Google logos are location specific?</title><content type='html'>&lt;p&gt;Today I saw something interesting when I opened &lt;a href="http://www.google.nl/"&gt;the Dutch Google search page&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_XCNtGA3h_vU/StRRhe8yAAI/AAAAAAAAAQg/PpQTMHMpIs4/s1600-h/150+jaar+Max+Havelaar.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 134px;" src="http://2.bp.blogspot.com/_XCNtGA3h_vU/StRRhe8yAAI/AAAAAAAAAQg/PpQTMHMpIs4/s320/150+jaar+Max+Havelaar.JPG" border="0" alt="150 jaar Max Havelaar" id="BLOGGER_PHOTO_ID_5392024289554857986"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The &lt;tt&gt;ALT&lt;/tt&gt; text said "150 jaar &lt;a href="http://en.wikipedia.org/wiki/Max_Havelaar"&gt;Max Havelaar&lt;/a&gt;" and this doodle is not in the official &lt;a href="http://www.google.com/logos/"&gt;Google logo list&lt;/a&gt; for oktober 2009.&lt;/p&gt;&lt;p&gt;Does this mean that local branches of Google are actually creating localized logo doodles that are independent of the official world wide ones? And if so, what's then the use of the global logo list? Mmm...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-5700143847967434030?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/5700143847967434030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/10/so-google-logos-are-location-specific.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5700143847967434030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5700143847967434030'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/10/so-google-logos-are-location-specific.html' title='So Google logos are location specific?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XCNtGA3h_vU/StRRhe8yAAI/AAAAAAAAAQg/PpQTMHMpIs4/s72-c/150+jaar+Max+Havelaar.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-2632949863336205582</id><published>2009-10-12T21:19:00.002+02:00</published><updated>2009-10-12T21:25:01.732+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><title type='text'>I need to get cracking on that multitude of sensors!</title><content type='html'>&lt;p&gt;Mmm, I'm already two days late: it seems Samsung has released &lt;a href="http://innovator.samsungmobile.com/"&gt;an SDK for using the extra sensors&lt;/a&gt; (like accelerometer, compass, proximity, etc.) that are in their latest mobile phones. What could I do with this in &lt;a href="http://peshirtweets.peshir.nl/"&gt;my Twitter client&lt;/a&gt; for Windows Mobile, for instance...?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-2632949863336205582?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/2632949863336205582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/10/i-need-to-get-cracking-on-that.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2632949863336205582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/2632949863336205582'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/10/i-need-to-get-cracking-on-that.html' title='I need to get cracking on that multitude of sensors!'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-3622770023899421165</id><published>2009-10-01T08:44:00.004+02:00</published><updated>2011-11-25T13:11:29.474+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>I have a finite Erdős Number</title><content type='html'>&lt;p&gt;I was browsing some old &lt;a href="http://xkcd.com/"&gt;XKCD comics&lt;/a&gt; the other day when I stumbled upon &lt;a href="http://xkcd.com/599/"&gt;one I couldn't really place&lt;/a&gt;, as I had not actually heard of &lt;a href="http://en.wikipedia.org/wiki/Paul_Erd%C5%91s"&gt;Paul Erdős&lt;/a&gt; before.&lt;/p&gt;&lt;p&gt;Well, that's a problem that Wikipedia can easily solve. As I started reading up on &lt;a href="http://en.wikipedia.org/wiki/Erd%C5%91s_number"&gt;Erdős Number&lt;/a&gt;s, I noticed the &lt;a href="http://www.oakland.edu/enp/compute/"&gt;Compute your Erdős Number&lt;/a&gt; page at the &lt;a href="http://www.oakland.edu/enp"&gt;Erdős Number Project&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;And lo and behold: &lt;a href="http://www.cs.uu.nl/staff/marc.html"&gt;Marc van Kreveld&lt;/a&gt; is listed in the list of &lt;a href="https://files.oakland.edu/users/grossman/enp/Erdos1.html"&gt;all authors with &lt;tt&gt;EN ≤ 2&lt;/tt&gt;&lt;/a&gt;. So, because the subject of &lt;a href="http://www.jarno.demon.nl/thesis.htm"&gt;my masters thesis&lt;/a&gt; got &lt;a href="http://www.geocomputation.org/1998/21/gc_21.htm"&gt;presented by him&lt;/a&gt; at the &lt;a href="http://www.geocomputation.org/1998/index.html"&gt;3rd International Conference on GeoComputation&lt;/a&gt; in Bristol, I guess my Erdős Number is three. Hence the recent &lt;a href="http://twitter.com/peSHIr/status/4441402843"&gt;Twitter announcement.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-3622770023899421165?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/3622770023899421165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/10/i-have-finite-erdos-number.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3622770023899421165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/3622770023899421165'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/10/i-have-finite-erdos-number.html' title='I have a finite Erdős Number'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1324254297917837653</id><published>2009-09-29T14:38:00.002+02:00</published><updated>2009-09-29T14:44:11.751+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><category scheme='http://www.blogger.com/atom/ns#' term='AR'/><title type='text'>I want Layar on my Qwerty</title><content type='html'>&lt;p&gt;It seems &lt;a href="http://layar.com/layar-reality-browser-adds-3d-to-its-platform/"&gt;Layar has added 3D graphics&lt;/a&gt; to their AR (Augmented Reality) application for Android. As the &lt;a href="http://peshir.blogspot.com/search/label/omnia%20qwerty"&gt;Qwerty&lt;/a&gt; includes all the needed hardware (camera, tilt sensors and electronic compass), I would really like a Layar client for it to be able to try this out myself and perhaps even start to use this on a regular basis.&lt;/p&gt;&lt;p&gt;Has anyone already heard about Samsung (or anyone else) releasing any API information needed for using the sensors in the Qwerty in your own software? Because that information (and the porting work by Layar) seems to be the only thing currently standing in the way of making this a reality right now...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1324254297917837653?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1324254297917837653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/i-want-layar-on-my-qwerty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1324254297917837653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1324254297917837653'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/i-want-layar-on-my-qwerty.html' title='I want Layar on my Qwerty'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-418951209793618455</id><published>2009-09-28T11:48:00.002+02:00</published><updated>2009-09-28T11:54:18.231+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><title type='text'>Can you hard-reset an Omnia Qwerty?</title><content type='html'>&lt;p&gt;Only just back from vacation &lt;a href="http://twitter.com/LocalJoost"&gt;LocalJoost&lt;/a&gt; just asked me a question I don't know the answer to, based on &lt;a href="http://www.pdashop.nl/review/77971/48519/compact-compleet-crimineel-snel-en-bijna-perfect.html"&gt;his review of his current Samsung&lt;/a&gt;: can you use a hardware button combination to hard reset an &lt;a href="http://peshir.blogspot.com/search/label/omnia%20qwerty"&gt;Omnia Qwerty&lt;/a&gt;?&lt;/p&gt;&lt;p&gt;Contrary to my normal default behavior I sort of skipped reading the manual on this phone, so I really have no idea. I'll investigate and if I find anything, I'll let you know...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-418951209793618455?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/418951209793618455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/can-you-hard-reset-omnia-qwerty.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/418951209793618455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/418951209793618455'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/can-you-hard-reset-omnia-qwerty.html' title='Can you hard-reset an Omnia Qwerty?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-8764271200386899254</id><published>2009-09-21T08:40:00.003+02:00</published><updated>2009-09-28T11:55:33.899+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><title type='text'>Don't fidget too much with hybrid systems</title><content type='html'>&lt;p&gt;If you &lt;a href="http://twitter.com/peSHIr"&gt;follow me on Twitter&lt;/a&gt;, you've seen my frustration that caused me to hard reset &lt;a href="http://peshir.blogspot.com/search/label/omnia%20qwerty"&gt;my Omnia Qwerty&lt;/a&gt; and start over this last weekend.&lt;/p&gt;&lt;p&gt;The direct problem was that ActiveSync kept complaining about not having enough free memory to sync. No matter what I tried to find that took up space and delete it, I could not get this to work. I suspect a double figure Mb podcast I tried to download using the Podcast application on the Qwerty and have listened too lingered in some kind of cache.&lt;/p&gt;&lt;p&gt;As I had been fiddling around with "the edge between Windows Mobile and Samsung TouchWiz" when I got the phone, there were some tiny usability problems that made me decide to simply do a hard reset and start over. This post is mainly about those usability problems.&lt;/p&gt;&lt;p&gt;My recent experience enforced my view that compound hybrid systems usually have inherent instabilities and quirks near the composition interface. In this case: a Windows Mobile phone, made by Microsoft, with quite an extensive set of customizations and additions in the form of TouchWiz and related software, by Samsung.&lt;/p&gt;&lt;p&gt;I had tried to turn off TouchWiz off completely, to see if this would be my preferred way of using the Qwerty, then changed the theme, tried the installed Today Screen plugins, etc. I then found out that some of the default WM control panels and applications had been completely replaced by Samsung and that these applications (of course) kept their TouchWiz look, giving an ugly, hybrid experience. So I decided to switch back to full TouchWiz operation. This did however give me a message box about incompatible Today Screen plugins &lt;em&gt;every single time&lt;/em&gt; I switched between Work and Life modes. I could not find a way to get this "back to normal".&lt;/p&gt;&lt;p&gt;So, in devices that are clearly based on the seperate efforts of two manufacturers to get to the total UX of the device, just don't fidget around with GUI settings too much, even if you think you know what you're doing. The edge cases apparently are never quite as rock-solidly tested as either the base platform on its own or the additions...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-8764271200386899254?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/8764271200386899254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/dont-fidget-too-much-with-hybrid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8764271200386899254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/8764271200386899254'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/dont-fidget-too-much-with-hybrid.html' title='Don&apos;t fidget too much with hybrid systems'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-9164749606365729371</id><published>2009-09-16T01:32:00.003+02:00</published><updated>2009-09-21T09:09:03.713+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><title type='text'>What is wrong with me?</title><content type='html'>&lt;p&gt;Yep, there it was: the first nasty freeze of my new phone. This is a little computer, after all. It was ugly too: screen update failure, no initial reaction to anything including holding power button. However, it turned off eventually (before I took the battery out) and then would not turn back on. After removing the battery for a while it seems fine again. And all I was doing was enter a new calendar entry while having the phone connected over USB. &amp;lt;sign&amp;gt;&lt;/p&gt;&lt;p&gt;Also, I have been trying out more normal Windows Mobile usage, turning TouchWiz checkbox off so I get the normal WM6 start menu. However, this seems to give a silly hybrid, as Samsung has included touch based versions of some WM6 applications, left the originals, replaced some completely and left a couple. This means, no matter what WM6 theme you select, some setting dialogs and sub-apps still show up Samsung like, with the black background. Also, why does the Samsung start menu (which looks good, but takes a rather hefty 8+ Mb of RAM when running, possibly due to graphics) only have two color themes to choose from, that both have absolutely nothing to do with the WM themes? &amp;lt;sign&amp;gt;&lt;/p&gt;&lt;p&gt;I'll get my exact use of this thing sorted yet: will (have to) use it for the next two years, after all.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-9164749606365729371?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/9164749606365729371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/what-is-wrong-with-me.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/9164749606365729371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/9164749606365729371'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/what-is-wrong-with-me.html' title='What is wrong with me?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1354597141792943410</id><published>2009-09-15T09:02:00.008+02:00</published><updated>2009-10-15T08:19:31.659+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><title type='text'>Omnia Qwerty: some first impressions</title><content type='html'>&lt;p&gt;This blog post is not very structured. I'll just list a couple of points that pop into my mind immediately based on my first couple of hours with &lt;a href="http://peshir.blogspot.com/search/label/omnia%20qwerty"&gt;my new Samsung Omnia Qwerty&lt;/a&gt;. Here goes.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;First things first: the &lt;tt&gt;*#0*#&lt;/tt&gt; key combination works &lt;a href="http://pocketnow.com/hardware-1/lcd-test"&gt;as advertised elsewhere&lt;/a&gt;, including working electronic compass hardware! In oktober Samsung has even released an &lt;a href="http://peshir.blogspot.com/2009/10/i-need-to-get-cracking-on-that.html"&gt;SDK to access this&lt;/a&gt; and other internal sensors on their phones.&lt;/li&gt;
&lt;li&gt;I like the way it looks very much. The red wavy line effect on the back looks cool. I like the way it feels a bit less: too smooth, too slick. Starts to feel sweaty really quick. The more non-slip back of the Kaiser felt better, I think.&lt;/li&gt;
&lt;li&gt;The previous point also means that both the front and the back are immensely susceptible to finger print smearing (as expected, really).&lt;/li&gt;
&lt;li&gt;Even though the TouchWiz interface takes a bit of getting used too - this phone does not really feel like a Windows Mobile phone with it on - and I still feel like a fish out of water a bit, I think it's a great interface for the general phone user. Much better than the regular WM experience. I think I'll continu to use it.&lt;/li&gt;
&lt;li&gt;Also, I really like the private/work settings. The (default) work UI is the one &lt;a href="http://www.samsung-omnia-pro.nl/wp-content/uploads/2009/06/samsung-omnia-pro-b7610-qwerty.jpg"&gt;shown here&lt;/a&gt; (I miss the Weather panel though?), while the(default) private one is the one &lt;a href="http://www.mobilecowboys.nl/images/upload/Samsung-Omnia-Qwerty-Omnia-II.jpg"&gt;shown here&lt;/a&gt;, which you probably know from other Samsung phones. Somehow this works well. The settings switch includes things like ringtone &lt;strike&gt;and sound/vibrate settings&lt;/strike&gt;. So, as mandatory at my current work location, I have the Work profile set to vibrate only. Too bad it doesn't also include phone sound setting, but just the ringtone used. At least it takes only one hardware button to easily switch. It really almost is like you have two different phones.&lt;/li&gt;
&lt;li&gt;Silly &lt;strike&gt;software gripe: what's with the zoom context menu? Sounds like a nice feature, but in the Opera browser - which as I used it on my Kaiser had a great zoom function itself - it seems to (partially?) block the application context menu items. Most irritatingly: I could get "Text Selection" mode active, but could not Copy anything, making text selection useless.&lt;/strike&gt; me: next to the zoom arrows is a little context menu icon. Tap that, and you still get the context menu you'd expect.&lt;/li&gt;
&lt;li&gt;Talking about copy/paste: why can't I paste a key into the wifi network configuration utility? I sure hope this device will not have the habit my Kaiser had of occasionally "forgetting" wlan network settings, asking me for a key again for networks that it should know already. I have a private note file on my memory card with settings like this that I would then quickly copy-paste. Here, it seems I will then need to manually enter the key each time...&lt;/li&gt;
&lt;li&gt;The TouchWiz version of the SMS client seems nice (bit like the calender and contact list apps). Then why isn't there an email variant as well? This looks like the "normal" WM email client app to me. With the tiny scroll bar. And worse: no finger scrolling: this just selects text in the message body. So you have to use the tiny scroll bar to read your mail. Or at least, so it seems to me now.&lt;/li&gt;
&lt;li&gt;Is there a way to make the font used in built-in apps (like email) to be smaller? &lt;strike&gt;It seems to have been beefed up, probably to avoid the "tiny unreadable text syndrome" due to the much larger than 320x200 screen resolution. However this seems to give me less characters per line than I had on my 320x200 Kaiser, which seems extremely backwards.&lt;/strike&gt; Yes, of course there is, as the email application uses the Windows Mobile system wide text size setting. But of course Samsung doesn't give you access to this through TouchWiz and &lt;a href="http://myomniapro.com/2009/09/17/the-worst-application-on-the-omnia-pro/"&gt;the default is... suboptimal&lt;/a&gt;. Turn TouchWiz off so you get the normal WM start menu when you tap the Start icon in the top left corner, then got to &lt;tt&gt;Settings&lt;/tt&gt;, &lt;tt&gt;System&lt;/tt&gt; tab, &lt;tt&gt;Display&lt;/tt&gt; (or is that &lt;tt&gt;Screen&lt;/tt&gt; in English?) and select a smaller size in the third tab. I'm using the smallest one now, and this makes the email client useable again.&lt;/li&gt;
&lt;li&gt;Speed seems more than adequate. Maybe not as "zooming" as I was led to believe based on pure Mhz and pre-release hype, but it still feels very good to work with so far.&lt;/li&gt;
&lt;li&gt;I really like the many sensors this thing has: 3D orientation, compass, proximity and ambiant light (in lux). It's really too bad that so little of the software involved seems to know about it though. I mean, when you place the device screen down on a flat surface all sound except explicit alarms mute (proximity/tilt sensor combo?) and the media player and photo viewer seem to automatically switch orientation. Other than that (and the LCDtest app and a quant little Dice "game" that shows a pair of colors dice that you can roll by shaking the phone...) there seem to be hardly any software that is aware of these sensors in any way. There really needs to be some kind of native support for these things in the OS, people!&lt;/li&gt;
&lt;li&gt;Have I missed any option, or is it really impossible to have the Camera application take pictures with the front facing camera? Seems like an obvious thing to do, and I could so easily with my Kaiser.&lt;/li&gt;
&lt;li&gt;I was a bit eager to try out the FM radio (first phone device I've had that has one built in) to maybe listen a bit of radio while at work, but it seems too bad that this will not be possible. Of course you need to use the earphones (as they are the antenna), but at work I have Omnia set to vibrate and this means the earphones are dead. I only hear something when I set the phone to play sound. Wouldn't the earphones override this? What do other phones do here? This is my first phone where I have earphones included and the first time I ever used them...&lt;/li&gt;
&lt;li&gt;Positive surprise: the Connected Home application. This seems to be a DLNA/UPnP (not sure exactly which, or both) client/server. It only works over wifi, but I could select my home NAS and start streaming The IT Crowd episodes that are stored there. Very pleasant surprise. Also, I saw my mobile phone listed in the Network Browser of my Philips HDTV. Could not see anything, but that's because sharing is not turned on by default (smart move). You can select folders to share, so you could for instance start this application and start browsing images/movies on you phone using your in-home multimedia setup automatically. Cool!&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;This list seems to contain way more negatives than positives, but this does not mean I don't like the phone. It could just be so (very) much better, which is as expected, but still too bad.&lt;/p&gt;&lt;p&gt;&lt;a href="http://peshir.blogspot.com/search/label/omnia%20qwerty"&gt;Anyway, more news as it happens.&lt;/a&gt; This is a bit of rough week for me so far, so I'm not sure when this will be exactly. In the meantime, feel free to ask for specific things (here in the comments, or &lt;a href="http://twitter.com/peSHIr"&gt;on Twitter&lt;/a&gt;) and I'll try to answer if I can.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1354597141792943410?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1354597141792943410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/omnia-qwerty-some-first-impressions.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1354597141792943410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1354597141792943410'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/omnia-qwerty-some-first-impressions.html' title='Omnia Qwerty: some first impressions'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-6787505271256918</id><published>2009-09-14T15:39:00.003+02:00</published><updated>2009-09-14T15:46:34.135+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><title type='text'>I have my Omnia Qwerty</title><content type='html'>&lt;p&gt;It was delivered around 13:10 local time (very nice ETA, I'd say). However, at work I had no time to play with it, except insert the battery and SIM and plug it in to charge the battery.&lt;/p&gt;&lt;p&gt;Also, the PC at work BSOD'ed on me when locking it before going to lunch and apart from some meetings I've just been struggle with the bastard ever since. Lost my full XP profile (again, twice even!). So you understand why my mood could &lt;em&gt;not&lt;/em&gt; be any fouler at the moment. I'm just going home now..&lt;/p&gt;&lt;p&gt;More phone information might be forthcoming tonight, but it could very well be tomorrow or even later this week. Will definately try the LCD test program that should show off the electronic compass as one of the first things, I think. In the meantime, questions in comments might get an answer.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-6787505271256918?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/6787505271256918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/i-have-my-omnia-qwerty.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6787505271256918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6787505271256918'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/i-have-my-omnia-qwerty.html' title='I have my Omnia Qwerty'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-785802085805258485</id><published>2009-09-10T15:21:00.002+02:00</published><updated>2009-09-10T15:25:15.572+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><title type='text'>A bit more patience</title><content type='html'>Even though I did not get an email this time notifying me of a later delivery date I noticed the estimated delivery date on &lt;a href="http://www.smartphoneshop.nl/product/74474/samsung-omnia-qwerty-onyx-black.html"&gt;smartphoneshop.nl&lt;/a&gt; is now the 12th of september. I just called customer support and they confirmed this: delivery on saturday or possibly even tuesday. Had them reset the address to my home address again and will continue waiting...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-785802085805258485?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/785802085805258485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/bit-more-patience.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/785802085805258485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/785802085805258485'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/bit-more-patience.html' title='A bit more patience'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-5378206299318653558</id><published>2009-09-09T08:23:00.003+02:00</published><updated>2009-09-09T09:04:38.809+02:00</updated><title type='text'>Compound virtual game controllers?</title><content type='html'>&lt;p&gt;I am looking for something that I suspect popped up in hardcore gaming already but I at least have never heard of yet.&lt;/p&gt;&lt;p&gt;Is there software for Windows that lets you combine inputs from two or more controllers into one new virtual controller? This one controller should then be usuable through the Windows game controller support for legacy software that only supports one single joystick.&lt;/p&gt;&lt;p align="center"&gt;&lt;img alt="Legacy Windows Joystick dialog" src="http://sites.google.com/site/peshirnl/Legacyjoystick.png"&gt;&lt;/p&gt;&lt;p&gt;Check out &lt;a href="http://stackoverflow.com/questions/1392429/"&gt;this Stackoverflow question&lt;/a&gt; for more information.&lt;br&gt;Please answer anything useful there (or comment here).&lt;br&gt;Thanks!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-5378206299318653558?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/5378206299318653558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/compound-virtual-game-controllers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5378206299318653558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/5378206299318653558'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/compound-virtual-game-controllers.html' title='Compound virtual game controllers?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1338258744252512629</id><published>2009-09-02T09:40:00.006+02:00</published><updated>2009-09-02T17:40:56.102+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omnia qwerty'/><title type='text'>Samsung Omnia Qwerty count down...</title><content type='html'>&lt;p&gt;Well, it's almost time.&lt;/p&gt;&lt;p&gt;Yesterday I phoned Smartphoneshop.nl about the &lt;a href="http://www.smartphoneshop.nl/product/74474/samsung-omnia-qwerty-onyx-black.html"&gt;Samsung Omnia Pro&lt;/a&gt; that I ordered, apparently rebranded in the meantime to be called the Omnia Qwerty. Its estimated delivery date had already slipped two weeks earlier, so I just wanted to make sure. It turns out that by their information I should still have it delivered into my hands on friday.&lt;/p&gt;&lt;p&gt;Of course after &lt;a href="http://twitter.com/peSHIr/status/3688932931"&gt;I twittered about this&lt;/a&gt; I noticed that now &lt;a href="http://myomniapro.com/2009/09/01/omnia-pro-hits-retail-in-holland-as-omnia-qwerty/"&gt;"the world at large" seems to be watching me&lt;/a&gt;. Thanks &lt;a href="http://twitter.com/chippy/status/3695756762"&gt;@Chippie&lt;/a&gt;! ;-) All because the Netherlands seems to be one of the first countries in the world where the Qwerty is actually released.&lt;/p&gt;&lt;p&gt;Quite a number of people around the world are waiting about news about the Qwerty from actual users getting their grubby little paws on them and actually using them. If you're one of them, just keep watching &lt;a href="http://twitter.peshir.nl/"&gt;Twitter&lt;/a&gt; and &lt;a href="http://blog.peshir.nl/"&gt;this blog&lt;/a&gt; and you'll definately get to know about my experience with the Qwerty (good or bad). I'm especially curious about &lt;a href="http://pocketnow.com/hardware-1/lcd-test"&gt;the &lt;tt&gt;*#0*#&lt;/tt&gt; feature that shows off the digital compass&lt;/a&gt; hardware.&lt;/p&gt;&lt;p&gt;&lt;tt&gt;&amp;lt;fingers crossed="true"&amp;gt;&lt;/tt&gt;I sure hope I won't be having teething problems with this one, like I seem to have had with my current Kaiser, because I (again!) have an early one off the assembly line...&lt;tt&gt;&amp;lt;/fingers&amp;gt;&lt;/tt&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1338258744252512629?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1338258744252512629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/samsung-omnia-qwerty-count-down.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1338258744252512629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1338258744252512629'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/samsung-omnia-qwerty-count-down.html' title='Samsung Omnia Qwerty count down...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-4162038347436358639</id><published>2009-09-01T07:49:00.007+02:00</published><updated>2009-09-01T08:45:03.443+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><title type='text'>IE8 keeps forcing Bing on me</title><content type='html'>&lt;p&gt;Disclaimer up front: this is only on the single workstation at my current client, which definately seems to have some software rot related issues; no other XP or Vista PCs I've ever seen IE8 on has ever shown me this problem. Still... it's &lt;em&gt;very&lt;/em&gt; annoying.&lt;/p&gt;&lt;p&gt;Anyway...&lt;/p&gt;&lt;p&gt;Yesterday morning logging into the XP machine I work on took quite a lot of time. It turned out this was because of Internet Explorer 8 being rolled out. I was (and am) happy with that, as generally I quite like IE8.&lt;/p&gt;&lt;p&gt;However, after going through the Welcome To IE8 wizard, I was surprised by the following dialog:&lt;/p&gt;&lt;a href="http://2.bp.blogspot.com/_XCNtGA3h_vU/Spy3JxfMTcI/AAAAAAAAAAw/7-GOTx1RXX0/s1600-h/IE8+Corrupted+Search+Provider.PNG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 86px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5376373433704402370" border="0" alt="" src="http://2.bp.blogspot.com/_XCNtGA3h_vU/Spy3JxfMTcI/AAAAAAAAAAw/7-GOTx1RXX0/s320/IE8+Corrupted+Search+Provider.PNG" /&gt;&lt;/a&gt;&lt;p&gt;I did not even have Bing as a search provider before. Still, I know this machine to be sort of freaky software-wise, so my initial reaction was "Cool... And even though you apparently added Bing, thanks!" This of course changed when I noticed this:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;In the dialog that opens, I cannot make Google my default search provider; that option simply seems to do nothing.&lt;/li&gt;&lt;li&gt;Also, I cannot delete the Bing search provider; that option is greyed out.&lt;/li&gt;&lt;li&gt;Finally, I keep getting this message every time I start IE8.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In essence, IE8 now forces me to use Bing to search, unless I remember to manually change the search provider when I start entering something in the search box. Also it keeps reminding me that it is forcing me to this each time I start IE8. And to top it off, it keeps blaming some other piece software as the reason for this.&lt;/p&gt;&lt;p&gt;If I were inclined to Microsoft bashing, I'd be doing a lot of it right now, I can tell you...&lt;/p&gt;&lt;p&gt;P.S. If you have any ideas on what to do about this, please contribute on &lt;a href="http://superuser.com/questions/33389/ie8-search-provider-corruption-keeps-forces-bing-com-upon-me"&gt;Superuser.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-4162038347436358639?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/4162038347436358639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/09/ie8-keeps-forcing-bing-on-me.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4162038347436358639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4162038347436358639'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/09/ie8-keeps-forcing-bing-on-me.html' title='IE8 keeps forcing Bing on me'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XCNtGA3h_vU/Spy3JxfMTcI/AAAAAAAAAAw/7-GOTx1RXX0/s72-c/IE8+Corrupted+Search+Provider.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-6832684775493488770</id><published>2009-08-21T18:22:00.004+02:00</published><updated>2009-08-21T18:45:32.103+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='repost'/><title type='text'>Le Chatelier's Principle for complex systems and the Fundamental Failure-Mode Theorem</title><content type='html'>&lt;p&gt;Ehh... what...?&lt;/p&gt;&lt;p&gt;As (nearly) always the &lt;a href="http://blogs.msdn.com/oldnewthing" target="_blank"&gt;blog entries by Raymond Chen&lt;/a&gt; are very good; &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2008/04/16/8398400.aspx" target="_blank"&gt;his latest one is about a number of books he has on his "to read" list&lt;/a&gt;. That's a concept I'm very familiar with by the way...&lt;/p&gt;&lt;p&gt;Two principles he mentions (especially the second one) seem to exactly coincide with one of my views of this world: When you start to think about it, it is actually amazing how much is happening without problem:&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:times new roman;"&gt;The most important lessons I learned are a reinterpretation of Le Chatelier's Principle for complex systems ("Every complex system resists its proper functioning") and the Fundamental Failure-Mode Theorem ("Every complex system is operating in an error mode").&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;At least it's clear that - apart from &lt;a href="http://www.amazon.com/Expert-F-Experts-Voice-Net/dp/1590598504" target="_blank"&gt;Expert F#&lt;/a&gt; which I started reading yesterday - I still have lot left to read...&lt;/p&gt;&lt;span style="font-size:85%;"&gt;(&lt;/span&gt;&lt;a href="http://peshir.spaces.live.com/blog/cns!FEC8DE0C9895E736!1301.entry"&gt;&lt;span style="font-size:85%;"&gt;Originally posted in Dutch on the 17th of april 2008.&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-6832684775493488770?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/6832684775493488770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/08/le-chateliers-principle-for-complex.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6832684775493488770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/6832684775493488770'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/08/le-chateliers-principle-for-complex.html' title='Le Chatelier&apos;s Principle for complex systems and the Fundamental Failure-Mode Theorem'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1217599283130022171</id><published>2009-08-21T18:17:00.003+02:00</published><updated>2009-08-21T18:21:31.614+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='repost'/><title type='text'>Cool: My article got translated and expanded upon!</title><content type='html'>It happened almost a year ago already, but Peter de Jonghe seems to have translated &lt;a href="http://www.microsoft.com/netherlands/msdn/netmagazine/code/magazine12.aspx" target="_blank"&gt;my article on BlobStreams&lt;/a&gt; to English and expanded the subject matter a bit to &lt;a href="http://www.codeproject.com/KB/database/LobStreamFrameworkPart1.aspx" target="_blank"&gt;generalize the method to more than just SQL Server&lt;/a&gt; image blobs. Cool!

&lt;span style="font-size:85%;"&gt;(&lt;a href="http://peshir.spaces.live.com/blog/cns!FEC8DE0C9895E736!1353.entry"&gt;Originally posted in june 2008.&lt;/a&gt;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1217599283130022171?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1217599283130022171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/08/cool-my-article-got-translated-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1217599283130022171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1217599283130022171'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/08/cool-my-article-got-translated-and.html' title='Cool: My article got translated and expanded upon!'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-4237775834321153268</id><published>2009-08-21T18:00:00.006+02:00</published><updated>2009-08-21T18:11:11.627+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='repost'/><title type='text'>Do you like 'casts? I don't...</title><content type='html'>Please check out &lt;a href="http://blog.stackoverflow.com/2008/06/listen-to-podcasts-in-less-time/#comment-2211" target="_blank"&gt;my comment on Stack Overflow on 'casts&lt;/a&gt;.

Is the increasing number of 'casts based on people generally loving to consume information in that format? Or is it just that it's less hassle for the publisher to just hit "record", start yapping and dump the bits somewhere afterwards?

Do you like the "personal broadcasting" way (or as I call it "lazy blogging" way) of supplying content on the interwebs like this? Or do you share my view on them and think it wastes your time, hampers you and makes the information content generally less available/useable?

What do you think?

&lt;span style="font-size:85%;"&gt;(&lt;/span&gt;&lt;a href="http://peshir.spaces.live.com/blog/cns!FEC8DE0C9895E736!1354.entry"&gt;&lt;span style="font-size:85%;"&gt;Originally posted in july of 2008&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;, but I still think this way.)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-4237775834321153268?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/4237775834321153268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/08/do-you-like-casts-i-dont.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4237775834321153268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4237775834321153268'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/08/do-you-like-casts-i-dont.html' title='Do you like &apos;casts? I don&apos;t...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-1117956419168532908</id><published>2009-08-21T18:00:00.005+02:00</published><updated>2009-08-21T18:10:36.922+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='repost'/><title type='text'>Ancient hardware/software...</title><content type='html'>&lt;a href="http://sense.net/~egan/" target="_blank"&gt;Someone&lt;/a&gt; has written &lt;a href="http://sense.net/~egan/virtual82240b/" target="_blank"&gt;a description on how to enable printing from HP calculators&lt;/a&gt;. The hardware device (&lt;a href="http://www.internationalcalculator.com/hp82240b.html" target="_blank"&gt;a small battery operated IR connected thermal printer&lt;/a&gt;) that HP made for this seems to have been terminated a long time ago, but I did write an MS-DOS application more than 10 years ago to emulate it. Apparently &lt;a href="http://www.jarno.demon.nl/hp82240b.htm" target="_blank"&gt;that piece of software&lt;/a&gt; is still the best way of getting hardcopy output from a HP calculator at this time (taking trouble to run it in an MS-DOS emulator, as it does not seem to run in XP+).

&lt;a href="http://blufiles.storage.live.com/y1p2ZATR8yqdWB4u0yvvzgDk7dx615PUtKQMrZ3KqIJY7hTjy4yLRWZTshoGqZ5TWAz"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 320px; HEIGHT: 200px; CURSOR: hand" border="0" alt="" src="http://blufiles.storage.live.com/y1p2ZATR8yqdWB4u0yvvzgDk7dx615PUtKQMrZ3KqIJY7hTjy4yLRWZTshoGqZ5TWAz" /&gt;&lt;/a&gt;

Maybe I should try to find if I have the source code of it somewhere (or just use &lt;a href="http://www.jarno.demon.nl/ptrcodes.htm" target="_blank"&gt;the printer code information on my own site&lt;/a&gt; to work from scratch) and construct an up to date application written in .NET to emulate the printer under Windows...? &lt;grin&gt;

What do you think?

&lt;span style="font-size:85%;"&gt;(&lt;/span&gt;&lt;a href="http://peshir.spaces.live.com/blog/cns!FEC8DE0C9895E736!1355.entry"&gt;&lt;span style="font-size:85%;"&gt;Originally posted in july 2008&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt; and apparently my ancient MS-DOS only emulator is currently still the best bet for printing anything from HP48 or HP28 calculators if you don't have the actual hardware!)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-1117956419168532908?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/1117956419168532908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/08/ancient-hardwaresoftware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1117956419168532908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/1117956419168532908'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/08/ancient-hardwaresoftware.html' title='Ancient hardware/software...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-4306774909069534490</id><published>2009-08-21T17:50:00.001+02:00</published><updated>2009-08-21T17:52:16.527+02:00</updated><title type='text'>What's with the "repost" tag?</title><content type='html'>I have just started this weblog and will (also) be posting some things I have posted elsewhere before. These items will have links back to the original location and a &lt;span style="font-family:courier new;"&gt;repost&lt;/span&gt; tag. Just so you know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-4306774909069534490?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/4306774909069534490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/08/whats-with-repost-tag.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4306774909069534490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/4306774909069534490'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/08/whats-with-repost-tag.html' title='What&apos;s with the &quot;repost&quot; tag?'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8688452563915524075.post-470132191510285119</id><published>2009-08-21T11:28:00.005+02:00</published><updated>2009-08-21T11:40:24.968+02:00</updated><title type='text'>Oh no, yet another blog? Yes...</title><content type='html'>Welcome, everyone!

I have been blogging at various locations for quite a while now, but that was all kind of haphazardly (for lack of a better word). Personal stuff, programming related stuff, English, Dutch, and all that intermingled.

From now on this should be a thing of the past!

&lt;a href="http://peshir.spaces.live.com/"&gt;My weblog at Microsoft Live&lt;/a&gt; will remain a personal blog (with most or all of it in Dutch) and this new weblog should contain more work related ramblings in English. This can be .NET related, programming in general, experiences with devices, conference news and notes, etc.

I will look through other blog locations for potentially interesting info from my past and crosspost that here. So expect some potentially dusty items to appear here first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8688452563915524075-470132191510285119?l=peshir.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peshir.blogspot.com/feeds/470132191510285119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://peshir.blogspot.com/2009/08/oh-no-yet-another-blog-yes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/470132191510285119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8688452563915524075/posts/default/470132191510285119'/><link rel='alternate' type='text/html' href='http://peshir.blogspot.com/2009/08/oh-no-yet-another-blog-yes.html' title='Oh no, yet another blog? Yes...'/><author><name>peSHIr</name><uri>http://www.blogger.com/profile/14895291650174860198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_XCNtGA3h_vU/Sa9-Mac_6jI/AAAAAAAAAAM/mUvVLs8jbAM/S220/peSHIr.jpg'/></author><thr:total>0</thr:total></entry></feed>
