tag:blogger.com,1999:blog-86884525639155240752024-03-13T17:57:15.935+01:00peSHIr.NETMicrosoft .NET, general programming and gadget related weblog by Jarno Peschier (aka peSHIr)peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.comBlogger69125tag:blogger.com,1999:blog-8688452563915524075.post-1228596135386248542019-05-01T15:48:00.000+02:002019-05-02T22:51:25.248+02:00Maybe this blog might also come back to life...To be honest, just like <a href="https://peshir.wordpress.com/" target="_blank">my Dutch more personal blog</a>, this English more professionally oriented one has been effectively dead for years. The personal one has however had a new post in januari, and has sort of come alive a bit again, mostly around <a href="https://peshir.wordpress.com/category/hobby/modelvliegen/" target="_blank">the topic of flying with drones and model helicopters</a>.<br><br>
<a href="https://peshir.wordpress.com/2019/01/21/nee-ik-ben-niet-dood/" target="_blank">Just like I did last januari in Dutch</a> I am not making any promises at all. This post is just here to make sure something is more recent than 2012. To make it visually interesting and give you something to watch, I'll also add something from my <a href="https://www.youtube.com/playlist?list=PL4DLdjDRaxge9SPrwB3ODRczaATmgZowF" target="_blank">YouTube playlist of drone movies</a>:<br><br>
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/bNTZEmkw1TE/0.jpg" src="https://www.youtube.com/embed/bNTZEmkw1TE?feature=player_embedded" frameborder="0" allowfullscreen=""></iframe></div>
<br>Bye for now!peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-21885647194437546852012-09-23T18:48:00.001+02:002012-09-28T05:53:56.764+02:00SpaceUp Europe, #ILATweetup and Mars<p>Busy weeks. Lots of (outer) space.<br/>What have I been doing?</p>
<p>Well, first of all I have volunteered (and have been accepted) as part of the Media and Communication Team of the <a href="http://www.oewf.org/cms/mars2013.phtml">next Mars Analog Field Simulation</a> of the <a href="http://www.oewf.org/">Austrian Space Forum</a>, that will take place in Morocco in februari of 2013. This means I have worked on putting together some of the press kit documents for the recent press conference for the mission that took place last week in Vienna, doing Skype-meetings with the team, being in Innsbruck for the upcoming dress rehearsal and finally being in Innsbruck for the first of the four week mission in februari 2013. I also plan to be writing mobile apps for ÖWF.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.facebook.com/photo.php?fbid=4406402085590&set=a.1543255708720.73054.1454798193&type=1" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="229" width="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinD_9ioKnlu7HdZfuCUWkCpUBRWRY_S7YxgOSvjV0Jc5lxlravv6uC2fBAQkHgmuHT7Q0UVdXfwCJQgRkp71UTUW1M8JGAI037PrKyjpO1laaWLCLIWPbKoTsWYIGw_mMkNyvGqPmEXr4/s320/Jarno+en+Andr%25C3%25A9.jpg" /></a></div>
<p>Secondly, I was at <a href="http://www.spacetweetup.org/wiki/index.php/ILAtweetup:_Blog_and_media_reports">the awesome #ILATweetup</a> in Berlin last weekend. This was a <a href="http://www.spacetweetup.org/">tweetup event</a> organised by ESA/DLR during the <a href="http://www.ila-berlin.de/">ILA Air Show</a>, where participants where treated to a dense program of interesting talks, a tour of the <a href="https://www.facebook.com/photo.php?fbid=4406406325696&set=a.2767989886309.143916.1454798193&type=1">Zero-G Airbus A-300</a> and a meet-and-greet with four astronauts, including <a href="https://www.facebook.com/photo.php?fbid=4406402085590&set=a.1543255708720.73054.1454798193&type=1">André Kuipers</a>. I was clearly <a href="http://www.spacetweetup.org/wiki/index.php/ILAtweetup:_Photos_and_Videos">not the only one taking pictures</a> (and video) during that day..</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.facebook.com/media/set/?set=a.4406144639154.177779.1454798193&type=1#!/photo.php?fbid=348795468544148&set=a.271631999593829.63325.213727358717627&type=1&relevant_count=1" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="117" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkIvAYw0FHaj0cduC2Td_zxdMY_bYPri0xpW9eKS6FNPzaKpuK3EU5Xma53FiTOzvHY-geqEkpMIG6-C7DM2YaREe-MlX_6C-2WGoDNtfP601KV2zGbvPtiFjX4JVDQN1C8ul4x8HYlEA/s320/SpaceUp+Europe+group+photo.jpg" /></a></div>
<p>Finally (for this blog post), I have been at the very first <a href="http://spaceup.org/">SpaceUp unconference event</a> in Europe, which was at <a href="http://www.cosmodrome.be/">the Cosmodrome in Genk</a> this weekend. <a href="https://www.facebook.com/photo.php?fbid=499440373402128&set=o.397908366936951&type=1&theater">Lots of familiar faces were there</a>, and <a href="http://skyweek.wordpress.com/2012/09/21/live-blog-vom-ersten-europaischen-spaceup/">interesting space stuff</a>. While en route to the second day I heard <a href="http://twitter.com/jenstimmermans">Jens Timmermans</a> of the <a href="http://www.538.nl">largest radio station in the Netherlands</a> talking about Twitter trending topics and asking "What's your hashtag for today?". On a whim I texted that I was going to <a href="https://twitter.com/i/#!/search/realtime/%23SpaceUpEU">#SpaceUpEU</a> and he almost immediately called me back, <a href="https://twitter.com/peSHIr/status/249758455441805312">giving me some airtime to promote this awesome event</a> on national radio <a href="https://skydrive.live.com/redir?resid=FEC8DE0C9895E736!36973&authkey=!AOOmvRKb8IoyAJM">(link to recorded Dutch audio)</a>, which was unexpected.</p>
<p>So I have been keeping myself busy.<br/>Tomorrow will be "just an ordinary day at the office".<br/> ;-)</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0Cosmodrome50.957461141198074 5.536336898803710950.956211141198075 5.5338693988037111 50.958711141198073 5.5388043988037108tag:blogger.com,1999:blog-8688452563915524075.post-82235120797514193952012-04-19T11:43:00.002+02:002012-04-19T11:43:59.445+02:00Romo second generation protocol has been revealedIt seems that Romotive has released a full description of the new protocol to talk to their second generation Romo smartphone robots <a href="http://romotive.com/blog/2012/04/hackers-welcomed-second-gen-protocol/">on their blog</a>. I have not yet found the time to dig into upgrading my <a href="http://wp7romo.codeplex.com/">Romo SDK for Windows Phone</a> with this, but I really want to, so keep checking the Codeplex site and this blog for more information on that.peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-38663757547630626422012-03-22T07:40:00.002+01:002012-03-22T07:42:19.482+01:00Time for the yearly Layar update, it seems...<p><a href="http://peshir.blogspot.com/search/label/AR">After all, I seem to be doing one each calendar year.</a> Except that - surprise, surprise.. - there really isn't one, as far as I'm concerned.</p>
<p><a href="https://twitter.com/#!/peSHIr/status/182714273456328705">I actually just said it out loud: I've given up on Layar.</a> They are apparently <i>never</i> going to release their software <a href="https://twitter.com/#!/peSHIr/status/182696752418258944">on any device that I (want to) own</a>.</p>
<p>Bye bye, Layar. I wish you all the best without me as a user...</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-19866544429407378402012-03-12T17:33:00.002+01:002012-03-16T20:18:25.274+01:00Romo codeplex site is live<p>It does not contain much (yet), but <a href="http://wp7romo.codeplex.com/">the Codeplex site I created for my work on a WP7 SDK for controlling a Romo smartphone robot</a> is now published and available.</p>
<p>If you have <a href="http://www.kickstarter.com/projects/peterseid/romo-the-smartphone-robot">a revision 1 Romo</a> and a <a href="http://create.msdn.com">developer unlocked</a> <a href="http://windowsphone.com">Windows Phone</a> you can now <A href="http://wp7romo.codeplex.com/releases/view/84067">download a pre-alpha XAP file</a> of an app that turns your Romo+smartphone into a moving compass.</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-73069514801043816152012-02-20T13:33:00.000+01:002012-02-20T13:37:50.720+01:00Zaagmans has been featured on AppFlow<p>I just had a look at my phone, and this is what I saw on the <a href="http://www.windowsphone.com/nl-NL/apps/578ef361-c265-46b7-b6f4-63cbd7fbefe0">AppFlow</a> live tile:</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKrl0uNxQsrOyi-YYArqHwtCzjGRvZRdJvOQYMCaNsMo-YWlbjmp4WkveESttI3MikjpHsemzBF3SursNiLsW8mFo4Y31QmNFWXid7-VaJuyxvUpteHl1vgCqdhWRQ83Z14yI-IK549jQ/s1600/Zaagmans+AppFlow+live+tile.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="200" width="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKrl0uNxQsrOyi-YYArqHwtCzjGRvZRdJvOQYMCaNsMo-YWlbjmp4WkveESttI3MikjpHsemzBF3SursNiLsW8mFo4Y31QmNFWXid7-VaJuyxvUpteHl1vgCqdhWRQ83Z14yI-IK549jQ/s200/Zaagmans+AppFlow+live+tile.jpg" /></a></div>
<p>This caused me to pause for a while.<br/>
I knew that app icon...<br/>
That's <a href="http://peshir.blogspot.com/2012/02/zaagmans.html">Zaagmans</a>, the silly app I made!</p>
<p>Starting AppFlow proved that my app is the one featured app in there:</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglS-34tj-xNPno9ZDsXsAAlUgKZHBEubx7BaOVgctLnsvBhNbVbxS7L43nk-6mXMvgarJZa229RXKcoG8yS5XM7JwtcG4H48OrIuRhHIPQ-_8M7H-wwVV9-o6L3NRVcB-QBd0-TK-CftE/s1600/Zaagmans+AppFlow+featured.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="200" width="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglS-34tj-xNPno9ZDsXsAAlUgKZHBEubx7BaOVgctLnsvBhNbVbxS7L43nk-6mXMvgarJZa229RXKcoG8yS5XM7JwtcG4H48OrIuRhHIPQ-_8M7H-wwVV9-o6L3NRVcB-QBd0-TK-CftE/s200/Zaagmans+AppFlow+featured.jpg" /></a></div>
<p>I'm guessing this is just for the NL marketplace (AppFlow recommends per marketplace now), but I still think it's cool!</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com1Zonnebaan 9, 3542 West, The Netherlands52.117534823467729 5.038819313049316452.11631582346773 5.0363518130493166 52.118753823467728 5.0412868130493163tag:blogger.com,1999:blog-8688452563915524075.post-7688294025511651592012-02-19T15:14:00.000+01:002012-02-19T15:14:04.220+01:00The "guy in the Netherlands"<p>Oh, just two things I mentioned on Twitter before, but not yet here:
<ul>
<li>I am the "guy in the Netherlands" mentioned in the <a href="http://news.cnet.com/8301-32973_3-57371451-296/romo-the-smartphone-robot-raises-$1.5m-seeks-world-domination/">"Romo the smartphone robot raises $1.5M, seeks world domination"</a> article.</li>
<li>My work on writing WP7 software to control Romo is mentioned <a href="http://romotive.com/about/hiring">as the first "something cool you've built" hack on the Romo hiring page</a>.</li>
</ul>
<p>I must say that I like both of them.</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-88610938893107545162012-02-19T14:01:00.000+01:002012-02-19T14:04:30.425+01:00Romo has landed in the Netherlands<div class="separator" style="clear: both; text-align: center;"><a href="https://www.facebook.com/photo.php?fbid=3183622156856&set=a.1608477619227.86346.1454798193&type=1&theater" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"><img border="0" height="180" width="135" src="https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/426274_3183622156856_1454798193_2963897_271978900_n.jpg" /></a></div>Last week brought the <a href="http://technet.microsoft.com/nl-nl/edge/techdays-2012">Microsoft TechDays in The Hague</a>. And as part of the <a href="http://www.caesarexperts.nl/">Caesar Experts</a> booth, lots of people here in the Netherlands finally saw a <a href="http://romotive.com/">Romo smartphone robot</a> in person!<br />
<br />
<a href="http://peshir.blogspot.com/search/label/romo">Elsewhere on this blog</a> you can see how I got to know Romo and how <a href="http://peshir.blogspot.com/2011/12/romo-robot-control-library-for-wp7.html">I am writing software support for him for Windows Phones</a>. As we expected lots of Lumia phones would be available as winnable goodies at TechDays (and we were right...) I suggested we'd go for completely different: show off my work on WP7 Romo, <a href="https://www.facebook.com/photo.php?v=3177326039457">get people in the Netherlands to actually see one in action</a> and have two to raffle off to registered visitors of our booth. This was actually a great succes, as far as I'm concerned. I've received lots of questions and <a href="https://twitter.com/#!/Pocketinfo_nl/status/170135588408795137/photo/1">people really seemed to like the Romo concept</a>.<br />
<br />
Unfortunately, the new Februari revision Romos could not be here in time, so the two winners will receive their robots later, as soon as I receive them. I hope this should not be long. Also based on the information I now have, these new revision should have support for some extra frequencies to maybe add some better control to turning the robot and ways to turn the 5V auxiliary ports on the front of the robot off and on again. When I have received information on these frequencies, included them in the Windows Phone library and have the library tested on both my original #42 revision one Romo and a new revision one, I will make my library public so anyone could write WP7 apps that drive a Romo robot.<br />
<br />
If you have any questions, please don't hestitate to ask.<br />
And stay tuned for more Romo information!<br />peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-9755325015267445472012-02-13T12:33:00.000+01:002012-02-20T13:38:07.258+01:00Zaagmans...For readers not from the Netherlands, let me just quickly introduce the concept of "Zaagmans". You could translate him as "Mr. Saw", and he's a fictional construct mentioned by <a href="http://nl.wikipedia.org/wiki/Jiskefet#Cast">the characters</a> of <a href="http://nl.wikipedia.org/wiki/Jiskefet#Debiteuren_Crediteuren">a dreary office satire called "Debiteuren Crediteuren"</a> in <a href="http://nl.wikipedia.org/wiki/Jiskefet">the comedy program Jiskefet</a> on Dutch televison. Zaagmans of course comes along each wednesday at noon, to "saw the week in half".<br />
<br />
In the second week of Januari Zaagmans came up at work (must have been wednesday the 11th) and I had the idea that it would be easy to either set an alarm for noon every wednesday with the sound of a saw or write a small silly app to do that for me and optionally show me a countdown. I kept things to myself and at home that evening I wrote just such an app. I wanted <a href="http://en.wikipedia.org/wiki/Eating_your_own_dog_food">to dogfood</a> it myself for a week, and after I knew for sure it worked on wednesday I published it. It turned up <a href="http://www.windowsphone.com/nl-NL/apps/ff477079-f5b3-4b0b-8fad-5c45c1c3f886">in the Marketplace</a> on december the 22nd, just over three weeks ago.<br />
<br />
<iframe width="640" height="480" src="http://www.youtube.com/embed/YSyokEyodK4" frameborder="0" allowfullscreen></iframe><br />
<br />
I would never have believed what I started. Download numbers are trailing a couple of days, as you probably know, but in the first 2.5 weeks the app has been downloaded 123 times! And it is only published to a couple of markets: just NL originally, but as quite a number of Windows Phone users over here still have not switched from their "fake" US/UK/DE/BE Live ID they started using when NL support was still far away, I enlarged this a bit.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlwbvEAH_-UVmw8NKwhJgL3GHbOmgPfSxYX1WOrJxrvA-MU2KPe3vPI0ngJJQjdHO2ljiYkps-RVf-kz3vI_wgD93o_jhFfosGGMUQu-CVKrY7MIRZFlrklEPtondOygqIdNdoAHmL99E/s1600/Zaagmans+downloadboast.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="231" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlwbvEAH_-UVmw8NKwhJgL3GHbOmgPfSxYX1WOrJxrvA-MU2KPe3vPI0ngJJQjdHO2ljiYkps-RVf-kz3vI_wgD93o_jhFfosGGMUQu-CVKrY7MIRZFlrklEPtondOygqIdNdoAHmL99E/s320/Zaagmans+downloadboast.png" /></a></div><br />
What I find astonishing is the fact that I have 9 reviews already, almost all of them five star except for one four star one. And this morning I noticed that <a href="http://www.windowsphone.com/nl-NL/apps/578ef361-c265-46b7-b6f4-63cbd7fbefe0">Zaagmans is in the 3/48 position of the "New & Impressive" section in AppFlow</a>! Wow, that's still just for the Dutch marketplace, but this little app really seems to be touching a nerve. It my own little <a href="http://www.windowsphone.com/nl-NL/apps/4ad4f1c2-b7db-df11-a844-00237de2db9e">Rubber Duck</a>! ;-)<br />
<br />
So far, there has been one update where you are now able to choose the sound you want to hear (first version made random choice of the original three sounds) and a second is current going through Marketplace submission right. After that at least one more version will be submitted that has <a href="http://www.flurry.com/">Flurry statistics</a> built in; I really want to see what people do with this app.<br />
<br />
If you have ideas for it, please let me know.peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com2tag:blogger.com,1999:blog-8688452563915524075.post-21535546041628626192012-01-18T17:33:00.002+01:002012-02-13T11:56:32.354+01:00Romotive publishes Romo audio protocol<a href="http://romotive.com/blog/">On their blog</a>, Romotive has made public <a href="http://romotive.com/blog/2012/01/hackers-welcomed-heres-our-protocol/">which audio waves you need to generate on which audio channel</a> to control a <a href="http://romotive.com/meetromo">Romo first revision smartphone robot</a>. So if you want something programmable with an audio port to control one, now you know how!<br />
<br />
The article even briefly mentions <a href="http://peshir.blogspot.com/search/label/romo">my own work on a Romo control library</a> for <a href="http://windowsphone.com/">Windows Phone</a>, which can change the amplitude of the soundwaves it sends out to control robot speed as well.<br />
<br />
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 <a href="http://www.nokia.com/nl-nl/producten/telefoon/lumia800/">Nokia Lumia 800</a> they have, and they told me they liked what they saw so far.<br />
<br />
There should be more information about this soon, even though the next revision of Romo (which should be out in or shortly after this Februari) will include more frequencies as part of the interface.<br />
<br />
Just be patient...peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-72562513665452380712011-12-30T21:43:00.000+01:002012-03-22T08:40:04.914+01:00Romo robot control library for WP7After seeing <a href="http://www.kickstarter.com/projects/peterseid/romo-the-smartphone-robot">the Romo smartphone robot on Kickstarter</a> some time ago, I was hooked. I wanted one. And I wanted to program for it myself, on my <a href="http://windowsphone.com">Windows Phone</a>! 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...<br />
<br />
<iframe frameborder="0" height="410px" src="http://www.kickstarter.com/projects/peterseid/romo-the-smartphone-robot/widget/video.html" width="480px"></iframe><br />
<br />
And then it was a landslide (they raised $114796!), and around Christmas I received my robot. It happened to be limited edition number <a href="http://www.google.nl/q=the%20answer%20to%20life%20the%20universe%20and%20everything">42</a> and all, pleasing my inner nerd immensely. To get to work!<br />
<br />
In fact, I had contacted the guys at <a href="http://romotive.com">Romotive</a> 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.<br />
<br />
<a href="https://twitter.com/#!/LocalJoost/status/152747666000982016">Today after the last day at work</a>, I met up with some of the <a href="http://wp7.nl/">WP7NL</a> crew. <a href="https://www.facebook.com/photo.php?fbid=10150487085064318&set=a.10150462100499318.386724.817819317&type=1">This first demo</a> 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.<br />
<br />
When the library is done and tested, which means having written and published at least one Romo WP7 app myself, <a href="http://wp7romo.codeplex.com/">I plan to publish it open source on Codeplex</a> 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!<br />
<br />
<a href="http://peshir.blogspot.com/search/label/romo">Keep watching this space for more info!</a>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com1Heinrich Bertéstraat 2, 3543 Utrecht, The Netherlands52.10634703998074 5.0374889373779352.101470539980738 5.02761843737793 52.111223539980742 5.04735943737793tag:blogger.com,1999:blog-8688452563915524075.post-84431730007530218422011-11-25T08:54:00.001+01:002012-01-03T13:47:26.535+01:00Command & Conquer, Distimo styleJust a quick post, reacting to <a href="https://twitter.com/#!/tijmentiming/status/139366580176961536">a comment by Tijmen</a> after <a href="https://twitter.com/#!/peSHIr/status/139348215936983042">tweeting about the cool Command & Conquer style competitor map</a> by <a href="http://monitor.distimo.com/">Distimo</a>.<br />
<br />
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 <a href="http://www.windowsphone.com/en-US/apps/3a2d8622-baeb-46e9-9b9b-13f4771f3460">my Klout Tile app</a> (which should be all of the <a href="http://klout.com/">Klout</a> apps out there right now..) have the highest ranking within <a href="http://www.windowsphone.com/en-US/categories/social">the Social category</a> in that country:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzDp5F-PHqNlJdAgdHbCn_GFHy1NwQ4we4VnkqM1vLaRzoMZOMo9VLqNGS4qM-s6a29CCvgJZAs1tQY67FQW2va5J0i6L7sa3e5OPn3p6B91J8pr-R7J24sd3bpGwYVMZl8puEZUB7GHU/s1600/Distimo+Klout+app+map+nov+2011.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="185" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzDp5F-PHqNlJdAgdHbCn_GFHy1NwQ4we4VnkqM1vLaRzoMZOMo9VLqNGS4qM-s6a29CCvgJZAs1tQY67FQW2va5J0i6L7sa3e5OPn3p6B91J8pr-R7J24sd3bpGwYVMZl8puEZUB7GHU/s320/Distimo+Klout+app+map+nov+2011.PNG" /></a></div><br />
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 <a href="http://peshir.blogspot.com/2011/11/perfect-way-to-ask-for-wp7-app-review.html">the "review begging" that was a bit excessive in v1.0</a> (with a daily recurring reminder). At least my app is still the only one with a Live Tile for your score.<br />
<br />
My goal: get the whole world blue. ;-)<br />
<br />
<i>Update:</i> 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).peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0's-Graveland 1, 3119 Schiedam, The Netherlands51.922057689768792 4.403586387634277351.921445689768795 4.4023523876342772 51.922669689768789 4.4048203876342775tag:blogger.com,1999:blog-8688452563915524075.post-79950374437112939922011-11-08T16:12:00.000+01:002011-11-27T14:58:38.398+01:00The perfect way to ask for a WP7 App Review...?<p>Today I got <a href="https://twitter.com/#!/DevJef/status/133834259948503041">a mention on Twitter I really liked</a> about the way I implemented "review begging" in <a href="http://www.windowsphone.com/en-US/apps/3a2d8622-baeb-46e9-9b9b-13f4771f3460">my latest Windows Phone 7 app</a>. I do it using the following code:</p><pre class="brush: csharp">using System;
using Microsoft.Phone.Scheduler;
/* ...part of AboutPage.asmx.cs... */
public static void ResetReviewReminder(KloutSettings settings)
{
const string name = "ReviewReminder";
Action removeReminder = () => {
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);
}
}
}
</pre><h2>What does this do?</h2><p>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 <tt>ApplicationBar</tt> 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.</p><p>This reminder asks the user what she thinks about the app and also includes a <tt>NavigationUri</tt> 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.)</p><h2>How do I use it?</h2><p>Each time the Klout Tile app is started, I call <tt>AboutPage.ResetReviewReminder()</tt> 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.</p><p>Apart from this I have the following code in my About page to handle the user clicking review button:</p><pre class="brush: csharp">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();
}
</pre><p>This makes sure that when the user <em>does</em> click on the review button, any reminder that exists will be deleted and no more reminders will ever be (re)created in the future.</p><h2>Some of the advantages</h2><p>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 <tt>MessageBox</tt> 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.</p><p>Using a system reminder like the code above does gives the following advantages:</p><ul><li>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.)</li>
<li>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.</li>
<li>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.</li>
<li>If the reminder pops up at a time that is not convenient for the user, she can just snooze it, like any other reminder.</li>
<li>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).</li>
<li>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 <tt>Microsoft.Phone.Tasks.MarketplaceReviewTask</tt> is executed directly, eliminating one further step!)</li>
<li>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.</li>
</ul><p>So I think using a <tt>Reminder</tt> to do you "review begging" might be the perfect solution. What do you think?</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com4Klokjesbloemlaan 25, 3452 Vleuten, The Netherlands52.097937882756696 5.005967617034912152.0967183827567 5.0035001170349123 52.099157382756694 5.008435117034912tag:blogger.com,1999:blog-8688452563915524075.post-55650938607376452892011-10-28T18:00:00.000+02:002012-01-03T13:43:23.703+01:00Capturing Console output without interfering with it<p>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.</p><h2>Options...</h2><p>The key to making this work is finding out that the .NET implementation of <tt><a href="http://msdn.microsoft.com/en-us/library/system.console.aspx">System.Console</a></tt> has access to <a href="http://en.wikipedia.org/wiki/Standard_streams">the normal <tt>stdin</tt>, <tt>stdout</tt> and <tt>stderr</tt> console streams</a> wrapped in a <tt><a href="http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx">TextWriter</a></tt>.</p><p>If you then find out that <tt>Console</tt> has methods like <tt><a href="http://msdn.microsoft.com/en-us/library/system.console.setout.aspx">SetOut()</a></tt>for changing the <tt>TextWriter</tt>s that are used for this, you have way of capturing text that the existing console application writes out using <tt><a href="http://msdn.microsoft.com/en-us/library/system.console.writeline.aspx">Console.Writeline()</a></tt> and related methods so you can email it.</p><h2>...that leave existing output as it</h2><p>But wait, functionality for the application should remain the same, so this output should stilll remain visible on the console too. Here <a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)">design patterns</a> come to our aid, in this case <a href="http://en.wikipedia.org/wiki/Decorator_pattern">the Decorator pattern</a>. The class we need is the following:</p><pre class="brush: csharp">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(); } }
}
}
</pre><p>What does the above class do? Well, not very much. All it does is decorate another <tt>TextWriter</tt>. That is: it derives from <tt>TextWriter</tt>, taking another <tt>TextWriter</tt> in its constructor which it stores, and then it simply passes through all method calls that write elementary pieces of text to the stored <tt>TextWriter</tt>. This makes sure it does not interfere with whatever that other <tt>TextWriter</tt> would normally be doing.</p><p>And it does one extra thing: keep an instance of a <tt><a href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx">StringBuilder</a></tt> as well, and also fill this from the same overridden methods. Finally, our new <tt>TextWriter</tt> decorator supplies a read-only property to get at the stored string in the <tt>StringBuilder</tt> buffer.</p><h2>How to use this</h2><p>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 <tt>Main()</tt> method for the application.</p><h3>Before</h3><pre class="brush: csharp">using System;
static int Main(string[] args)
{
// Application code, calling Console.WriteLine() etc.
return 0;
}
</pre><h3>After</h3><pre class="brush: csharp">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;
}
</pre><p>And that is basically all. Hope you enjoyed this little code sample.</p><p>(For more information on how to write the <tt>EmailSuperUser</tt> method, see <a href="http://weblogs.asp.net/scottgu/archive/2005/12/10/432854.aspx">this Scott Guthrie blogpost</a> and/or <a href="http://www.systemnetmail.com/">the System.Net.Mail documentation</a>.)</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com2Klokjesbloemlaan 7, 3452 Vleuten, The Netherlands52.098544238666008 5.006203651428222752.096105738666012 5.0012681514282225 52.100982738666005 5.0111391514282229tag:blogger.com,1999:blog-8688452563915524075.post-15643359009778786592011-09-25T18:10:00.000+02:002011-09-26T09:18:50.944+02:00Ich bin ein Asperger...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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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..<br />
<br />
<h2>Asperger</h2><br />
Quite a number of years ago I first heard or read about <a href="http://en.wikipedia.org/wiki/Asperger_syndrome">Asperger Syndrome</a>, a development disorder that's part of the so-called <a href="http://en.wikipedia.org/wiki/Autism_spectrum">autisme spectrum</a>. 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.<br />
<br />
Recently Asperger has maybe gotten a bit more attention because the (not only with me) very popular <a href="http://en.wikipedia.org/wiki/Sheldon_Cooper">Sheldon Cooper</a> from <a href="http://www.imdb.com/title/tt0898266">The Bing Bang Theory</a> exhibits many of the typical symptoms. Also, <a href="https://twitter.com/#!/peSHIr/status/62768220041523200">a short Twitter discussion</a> 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.<br />
<br />
All this resulted in me buying the book <a href="http://www.amazon.com/Asperger-Marriage-Chris-Slater-Walker/dp/1843100177">Asperger Marriage</a> a couple of weeks ago. On the 19th of september <a href="https://twitter.com/#!/peSHIr/status/115897786230251520">I eventually read it completely in one go; I just could not put it down.</a> 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...<br />
<br />
<h2>Now what?</h2><br />
<a href="https://twitter.com/#!/peSHIr/status/115898195778863106">Therefore I am now convinced that I suffer of Asperger Syndrome.</a> 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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The coming weeks I will have enough to read: lots of books have been written on this subject and also weblogs like <a href="http://life-with-aspergers.blogspot.com">Life with Aspergers</a>, which I instantly added to Google Reader. I think <a href="http://www.amazon.com/Pretending-Be-Normal-Aspergers-Syndrome/dp/1853027499">the book "Pretending to be normal"</a> 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.<br />
<br />
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.<br />
<br />
Thank you.<br />
<br />
(This is an English translation of <a href="http://peshir.wordpress.com/2011/09/25/ich-bin-ein-asperger/">the original Dutch blogpost</a>. I wanted to have this introductory information in English too. <a href="http://peshir.wordpress.com/category/persoonlijk/gezondheid-en-welzijn/asperger/">Any possible future posts on this subject will likely be Dutch only.</a>)peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com2tag:blogger.com,1999:blog-8688452563915524075.post-85482811504270175152011-09-18T11:09:00.000+02:002011-10-28T11:41:43.008+02:00Fire-and-forget background code execution<p>Finally, time for some code again.</p><p>In the course of <a href="create.msdn.com">writing some Windows Phone 7 apps</a> for the <a href="http://www.appsfornoordholland.nl/summary-of-contest-in-english">Apps for Noord-Holland</a> competition I've just hacked together a tiny class that wraps the <tt><a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx">BackgroundWorker</a></tt> class for one simpe case: you want a bit of code to execute in the background, fire-and-forget style:</p><pre class="brush: csharp">var loadData = new peSHIr.BackgroundHelper(() =>
{
// load something
// load something else
// and that's it, basically
});
</pre><p>So you're not really interested in giving the <tt><a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx">BackgroundWorker</a></tt> 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.</p><p>If you want/need this, here's a simple utility class you can use:</p><pre class="brush: csharp">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 && worker != null ? worker.IsBusy : false;
}
}
}
}
</pre><p>Be sure to <a href="http://stackoverflow.com/questions/tagged/windows-phone-7+multithreading">keep your multi-threading in order</a>, though. So if the code stores something, use appropriate locking. Or if you access GUI elements, go through the proper <tt><a href="http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.aspx">Dispatcher</a></tt>. 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. ;-)</p><p>Enjoy!</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com2Klokjesbloemlaan 66, 3452 Vleuten, The Netherlands52.098465149232212 5.006289482116699252.096026649232215 5.001353982116699 52.100903649232208 5.0112249821166994tag:blogger.com,1999:blog-8688452563915524075.post-22784399318376144872011-09-09T10:33:00.000+02:002011-09-16T11:51:07.794+02:00"Hey, what's up with the daily tweet to @twitter @support...?"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.<br />
Recently I have been starting to <a href="https://twitter.com/#!/peSHIr/status/111772680033804288">post (almost) daily tweets</a> asking <a href="http://www.twitter.com/">Twitter</a> to support <a href="http://www.mobypicture.com/">Mobypicture</a>. 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.<br />
<h2>
My problem</h2>
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 <a href="https://twitter.com/#!/peSHIr/media/grid">a complete grid of such images</a>.<br />
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: <a href="http://www.twitpic.com/">TwitPic</a>, <a href="http://photobucket.com/">PhotoBucket</a> and <a href="http://yfrog.com/">yfrog</a>, while the service that I use (the Dutch <a href="http://www.mobypicture.com/">Mobypicture</a>) is not included.<br />
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.<br />
<h2>
So, ask the parties involved</h2>
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).<br />
Twitter seems to have misinterpreted my original request for "Moby support", and quite stoically referred me to <a href="https://mobypicture.zendesk.com/home">the Moby support page</a>. Nice one, Twitter; show us you care about your users... ;-) So I changed my daily request a bit, based on this responses.<br />
Then, after more clarification by DM, I received the following DM response from <a href="http://twitter.com/support">Twitter</a>:<br />
<blockquote>
You can turn off media here: <a href="https://support.twitter.com/articles/20169200-media-settings-and-best-practices">https://support.twitter.com/articles/20169200-media-settings-and-best-practices</a></blockquote>
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:<br />
<blockquote>
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! <a href="https://support.twitter.com/articles/20169409">https://support.twitter.com/articles/20169409</a></blockquote>
<h2>
So, that's it?</h2>
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.<br />
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):<br />
<blockquote>
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!</blockquote>
<h2>
So, the world is stuck with my daily tweet</h2>
I feel I have no other course of action left, than continue my daily tweet asking for Mobypicture support in the current Twitter webinterface...<br />
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.<br />
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.<br />
Hopefully this blogpost clarifies the reason for that annoying daily tweet. And thank you for reading this far! ;-)peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-62548976679687784692011-08-15T13:40:00.000+02:002012-01-05T13:32:19.208+01:003D Masters app has more downloads than expected<p>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 <a href="http://peshir.blogspot.com/2011/07/windows-phone-app-for-3d-masters.html">3D Masters app</a>. 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:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ1PEbIhujfrTY11CluDebSQMIRZj5ITKiUF8kdDdE3z2WRyntErzkPUiJbnuNrcZUXkv-2vztVBmVupzF_ZKjFqaGZ0I6PtrC2rDlQqEsrNFLKVtPca2Wl8IEOxRzWs-e-JPekIVskHs/s1600/3dmasters_downloads.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="241" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ1PEbIhujfrTY11CluDebSQMIRZj5ITKiUF8kdDdE3z2WRyntErzkPUiJbnuNrcZUXkv-2vztVBmVupzF_ZKjFqaGZ0I6PtrC2rDlQqEsrNFLKVtPca2Wl8IEOxRzWs-e-JPekIVskHs/s400/3dmasters_downloads.png" /></a></div><p><a href="http://peshir.blogspot.com/2010/11/first-wp7-app-should-be-published.html">My other application</a> 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!</p><p>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. ;-)</p><p><em>Update, early Januari 2012:</em> 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 <em>really</em> need to get cracking on the update for next July, when the 3D Masters 2012 event will be in Venlo again.</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com1tag:blogger.com,1999:blog-8688452563915524075.post-81778478999646940742011-07-20T12:28:00.004+02:002012-09-05T07:40:18.154+02:00Quick WP7 app development<p>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.</p><p>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.</p><p>This past week has been a bit of rollercoaster for me, building and deploying a <a href="http://peshir.blogspot.com/2011/07/windows-phone-app-for-3d-masters.html">Windows Phone 7 app with background information for the 3D Masters 2011</a>. As a bit of background, I'll sketch a timeline of how this app came to be. All times shown are in 24h <a href="http://www.timeanddate.com/worldclock/converted.html?day=20&month=7&year=2011&hour=11&min=0&sec=0&p1=16&p2=234">CEST</a> and approximate, accurate to within maybe half an hour. Here goes:</p><div class="separator" style="clear: both; text-align: center;"><a href="http://www.fly3dx.com/manoeuvres2009/34-K25Auto.wmv" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"><img border="0" height="320" width="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2oYehgFlMqtLM5n-6p4HL2tBJG3XZOV4DizlQuxQLIs0ZQctspJnPaUF68O67mLtYQGwSVzvtGvLxmw0NyS3XYiT21n8WughGX9mTlJon2FUIS8_wWiP7dXLbBJ1GbkZNn_PFLHcjXE4/s320/3D+Masters+04.png" /></a></div><ul><li><b>Fri, Juli 15th, 18:30</b>: Meet friends for diner in Haarlem, before seeing the final Harry Potter.</li>
<li><b>19:00</b>: Received an mail from 3D Masters about availability of an <a href="http://itunes.apple.com/it/app/3d-masters/id448803884?mt=8">iPhone app</a> for the event.</li>
<li><b>20:00</b>: After emailing back and forth a bit with <a href="http://uk.linkedin.com/pub/jeff-barringer/30/278/90a">Jeff Barringer</a> during diner, I decided to try and write a WP7 equivalent.</li>
<li><b>20:50</b>: Harry Potter begins, or rather: ends... ;-)</li>
<li><b>Sat, Juli 16th, 7:00</b>: I start a new blank WP7 solution in VS2010 and get to work.</li>
<li><b>22:00</b>: 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.</li>
<li><b>Sun, Juli 17th, 10:00</b>: 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. ;-)</li>
<li><b>Mon, Juli 18th, 0:30</b>: 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.</li>
<li><b>1:30</b>: 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.</li>
<li><b>6:00</b>: 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.</li>
<li><b>20:00</b>: Saw that app submission status was "Testing in progress".</li>
<li><b>22:00</b>: Noticed that the App Hub was showing the "down for maintenance" message.</li>
<li><b>Tue, Juli 19th, 17:00</b>: 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 <a href="http://forums.create.msdn.com/forums/t/65793.aspx">the App Hub forum thread about possible states</a>.<br />
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.</li>
<li><b>21:30</b>: 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.</li>
<li><b>Wed, Juli 20th (=today), 6:00</b>: I was able to find my app in Marketplace on my phone and download and install it. Victory!</li>
<li><b>11:00</b>: 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. ;-)</li>
<li><b>Fri, Juli 22nd, 9:00</b>: 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?</li>
<li><b>11:00</b>: Thanks for <a href="http://www.mobypicture.com/user/peSHIr/view/10198881">all your interest</a>; this turns out to be my most popular post since I did <a href="http://peshir.blogspot.com/2009/09/omnia-qwerty-some-first-impressions.html">that Samsung Omnia Qwerty review</a> two years ago. ;-)</li>
<li><b>Mon, 15th of August</b>: <a href="http://peshir.blogspot.com/2011/08/3d-masters-app-has-more-downloads-than.html">Download numbers seem to start trailing off</a> around 60 downloads.</li>
<li><b>Early november</b>: 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.</li>
<li><b>Fri, 24th of August 2012</b>: Unbelievable, really. Even though I missed the 3D Masters 2012 deadline (the app still shows hardcoded data from the 2011 event right now), the download graph keeps on going up steadily, now at around 2500 downloads and about 100 active users daily (according to Flurry statistics). Possible this active user bases keeps coming back to watch the movies while practising?</li>
</ul><p>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 <em>can</em> have very quick new app results!</p><p>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.</p><p><a href="http://en.wikipedia.org/wiki/Q.E.D.">Q.E.D.</a> (now, when was that vacation again...?)</p><p><small>(Oh, and lots of ideas for version 1.1 of course, for the next 3D Masters and other 3DX events...)</small></p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com3tag:blogger.com,1999:blog-8688452563915524075.post-35183767277797628322011-07-18T08:32:00.000+02:002011-07-18T08:32:24.557+02:00MetalScroll for VS2010?<p>Anyone who, like myself, loved <a href="http://peshir.blogspot.com/2009/11/remember-rockscroll-now-theres.html">MetalScroll</a> in VisualStudio, knows that with WPF VS2010 it doesn't work anymore. However, there is an alternative: go to <tt>Tools</tt>, <tt>Extension Manager</tt> right now and install the <a href="http://go.microsoft.com/fwlink/?LinkId=189202">Productivity Power Tools for VisualStudio</a> if you haven't already. The Enhanced Scrollbar that is included will probably do what you want.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg0FY6hnl-uVkAqiuaNLTQi1GEERkzE18m1pPZPfXTDidavX_Q3G6ChTW6OYTFwX2DGNzyJ8pN8cnsZhlSxB3V-Z412NSvdLSZ8ft76mvqCybfF60Raz3gD6Yu2nvT7xvT7U9eQCIP69k/s1600/EnhancedScrollbarVS2010.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="308" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg0FY6hnl-uVkAqiuaNLTQi1GEERkzE18m1pPZPfXTDidavX_Q3G6ChTW6OYTFwX2DGNzyJ8pN8cnsZhlSxB3V-Z412NSvdLSZ8ft76mvqCybfF60Raz3gD6Yu2nvT7xvT7U9eQCIP69k/s400/EnhancedScrollbarVS2010.PNG" /></a></div>
<p>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.</p>
<p>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.</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com2tag:blogger.com,1999:blog-8688452563915524075.post-63860369435156483302011-07-18T01:37:00.007+02:002011-07-20T11:20:42.879+02:00Windows Phone app for the 3D Masters!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixN3xf2kjAAIlM8Uk2h8jgd6jfbNupFIwYQ8Qzv7GgCoZEItc-DyKEG_jHYY85jvvf09DaQHSI_wGl3S-kgcsbGnxW7hHDZXdK21H9cUQptBUgMRwF-rZXwYihlWkBz4l-L0AkmMEf9Cc/s1600/3D+Masters+03.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"><img border="0" height="320" width="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixN3xf2kjAAIlM8Uk2h8jgd6jfbNupFIwYQ8Qzv7GgCoZEItc-DyKEG_jHYY85jvvf09DaQHSI_wGl3S-kgcsbGnxW7hHDZXdK21H9cUQptBUgMRwF-rZXwYihlWkBz4l-L0AkmMEf9Cc/s320/3D+Masters+03.png" /></a></div>
<p>Friday night, while having diner with friends before seeing the final Harry Potter movie, I got an email from the <a href="http://www.3dmasters.org.uk/">3D Masters</a> organizers that there was an iPhone app containing all kind of useful information.</p>
<p>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.</p>
<p>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 <a href="http://create.msdn.com">App Hub</a>. Which, unfortunately <a href="https://twitter.com/peSHIr/status/92733046222102528">seems to do nothing but give me errors</a>...</p>
<p><em>Around 6:00:</em> The next morning the uploading seemed to work. I really hope that <a href="http://social.zune.net/redirect?type=phoneApp&id=0f8f67de-f1b0-e011-a53c-78e7d1fa76f8">the 3D Masters app</a> 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.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXX4kI5uVBbH6wDhTKEA4jXx38l7qocRWTkW-Xy2RZTqz8pQWzHUiFBIDXS6D4Yoh_hWVL9MXsuTDtZdVReIa3GWJnU-LYV8JqIH7-QVSNLH1tm18-AgaSiYT82N5TSfMJkjCjdC47oZc/s1600/3D+Masters+02.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"><img border="0" height="320" width="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXX4kI5uVBbH6wDhTKEA4jXx38l7qocRWTkW-Xy2RZTqz8pQWzHUiFBIDXS6D4Yoh_hWVL9MXsuTDtZdVReIa3GWJnU-LYV8JqIH7-QVSNLH1tm18-AgaSiYT82N5TSfMJkjCjdC47oZc/s320/3D+Masters+02.png" /></a></div>
<p><em>Around 22:00:</em> 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...</p>
<p><em>Tuesday the 19th, around 17:00:</em> Great to see that we are linked from <a href="http://www.3dmasters.org.uk/index.htm">the 3D Master website</a> now. Thanks, Jeff!</p>
<p>However, it is <em>not at all</em> 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 <a href="https://pocketbusiness.blob.core.windows.net/3dmasters/ThreeDX.xap">making the XAP file available</a>, 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.</p>
<p><em>Tuesday the 19th, around 21:30:</em> 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.</p>
<p><em>Wednesday the 20th, around 6:00:</em> I found my app in Marketplace and installed it. If you don't see it yet, that's probably because of the <a href="http://en.wikipedia.org/wiki/Content_delivery_network">CDN technology</a> 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 <a href="http://social.zune.net/redirect?type=phoneApp&id=0f8f67de-f1b0-e011-a53c-78e7d1fa76f8">the 3D Masters Windows Phone 7 app</a> this weekend!</P>
<P>Enjoy it, and see you next saturday in Venlo!</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com2tag:blogger.com,1999:blog-8688452563915524075.post-22861012829046127562011-06-30T11:11:00.000+02:002011-06-30T11:11:15.973+02:00Easily exclude generated proxies from your code coverage<p>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.</p>
<p>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 <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggernonusercodeattribute.aspx"><tt>DebuggerNonUserCode</tt> attribute</a> to the relevant classes, like so:</p>
<pre class="brush: csharp">
// 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
}
</pre>
<p>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).</p>
<p>Nifty, huh? ;-)</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-90037369629997877392011-05-02T08:38:00.003+02:002011-05-02T08:40:57.505+02:00My take on using var in C#The discussion seems to pop up from time to time among C# programmers: To <tt><a href="http://msdn.microsoft.com/en-us/library/bb383973.aspx">var</a></tt>? Or not to <tt>var</tt>...? I know my take on the matter, but I never took the time to write it down. Luckily, <a href="http://blogs.msdn.com/b/ericlippert/archive/2011/04/20/uses-and-misuses-of-implicit-typing.aspx">Eric Lippert seems to have done this for me</a>; I don't think I could agree more with his take. As seems to be the case rather often, come to think of it..peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-21891658826557680922011-04-19T10:57:00.002+02:002011-04-21T13:43:13.688+02:00Mango = Layar, Skype, and almost too much to name...<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJL8DUeZXWgpuC4Hwbn4E9oCRrmOcVsg1ghOdMEgkidoBNYMa6DAaULLODId5qRAICpjSk3YtocqZ2PYtUrQTzeUD9waOjth6xxA3f_dM4JJYk3Dj6dsfnKYsxMGcVW3GNLtAl0_RJC64/s1600/mix11.jpg" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"><img border="0" height="150" width="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJL8DUeZXWgpuC4Hwbn4E9oCRrmOcVsg1ghOdMEgkidoBNYMa6DAaULLODId5qRAICpjSk3YtocqZ2PYtUrQTzeUD9waOjth6xxA3f_dM4JJYk3Dj6dsfnKYsxMGcVW3GNLtAl0_RJC64/s200/mix11.jpg" /></a></div>
<p>Just a quick YAY! After the recent MIX reveals it seems like <a href="http://peshir.blogspot.com/2010/11/i-want-layar-on-my-wp7.html">my Layar wish</a> will come true with Mango! Now I'm "just" waiting for a resolution of the <a href="http://peshir.blogspot.com/2010/10/google-maps-should-no-must-come-to-wp7.html">Google (Maps) vs Bing (Maps)</a> situation in the Netherlands.</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0tag:blogger.com,1999:blog-8688452563915524075.post-22254021156627596882011-04-19T10:53:00.001+02:002011-04-21T13:49:39.201+02:00DevDays 2011<p>Yes, it is almost time: the <a href="http://www.techdays.nl/">2011 edition of the Dutch DevDays</a>. That's why the rest of this blog post will be in Dutch. My apologies to any international readers.</p>
<p>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: <a href="http://www.techdays.nl/Beleef">de Beleef pagina</a> waar je de HTML snippet kunt krijgen voor je eigen logo bevat een fout. De image URL begint met <tt>./images</tt> in plaats van met <tt>http://www.techdays.nl/images</tt>. Beetje slordig, maar gelukkig makkelijk te corrigeren.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3T6WiJFQAj37iaQtqwC7wuU2hZFulcbGlFSP9op6eoiCD-JbtALizB4yijxbfUyPE7XhyphenhyphenoKDp9tsaSVW84QTb6twpYiwPa1UVTzergBhEL703u_jXpMIdDI7cMRI545udR9NpiEzyZD4/s1600/devdays11.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"><img border="0" height="52" width="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3T6WiJFQAj37iaQtqwC7wuU2hZFulcbGlFSP9op6eoiCD-JbtALizB4yijxbfUyPE7XhyphenhyphenoKDp9tsaSVW84QTb6twpYiwPa1UVTzergBhEL703u_jXpMIdDI7cMRI545udR9NpiEzyZD4/s200/devdays11.png" /></a></div>
<p>Mijn persoonlijke agenda zal waarschijnlijk best een hoop op <a href="http://dotnetbyexample.blogspot.com/p/my-devdays-2011-agenda.html">die van Joost</a> 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.</p>
<p>Tot in het World Forum in Den Haag!</p>peSHIrhttp://www.blogger.com/profile/14895291650174860198noreply@blogger.com0