<?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-2981093359461362305</id><updated>2012-01-13T08:38:46.869-05:00</updated><category term='C#'/><category term='Software'/><category term='Hardware'/><category term='Thoughts'/><category term='Robotics'/><category term='WCF'/><category term='WPF'/><title type='text'>Ideas, Thoughts, DIY</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-4169153350922140297</id><published>2008-01-07T12:21:00.000-05:00</published><updated>2008-01-07T12:23:23.386-05:00</updated><title type='text'>New blog location</title><content type='html'>I've moved my blog to Wordpress - &lt;a href="http://igorshare.wordpress.com/"&gt;http://igorshare.wordpress.com/&lt;/a&gt;. At this moment Blogspot is not providing any tools to promote the blog, so I've decided to try the ne place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-4169153350922140297?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://igorshare.wordpress.com/' title='New blog location'/><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/4169153350922140297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=4169153350922140297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/4169153350922140297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/4169153350922140297'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2008/01/new-blog-location.html' title='New blog location'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-184369530470731124</id><published>2007-12-31T18:22:00.001-05:00</published><updated>2007-12-31T18:22:02.339-05:00</updated><title type='text'>WPF Training video library</title><content type='html'>&lt;p&gt;&lt;img style="margin: 0px 15px 0px 0px" src="http://movielibrary.lynda.com/assets/shared/images/ui/nav/logo.gif" align="left" /&gt;Meet &lt;a href="http://www.lynda.com/" target="_blank"&gt;lynda.com&lt;/a&gt; -&amp;#160; very nice learning resource with free &lt;a href="http://movielibrary.lynda.com/html/modPage.asp?ID=384" target="_blank"&gt;WPF Training videos&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/2981093359461362305-184369530470731124?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/184369530470731124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=184369530470731124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/184369530470731124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/184369530470731124'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/12/wpf-training-video-library.html' title='WPF Training video library'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-1561028726317678285</id><published>2007-12-30T15:36:00.001-05:00</published><updated>2007-12-30T15:36:03.203-05:00</updated><title type='text'>Time tracking solutions are the must</title><content type='html'>&lt;p align="justify"&gt;A couple of unfortunate misunderstandings with clients will teach you to track the hours spent on solving their problems. Save yourself some trouble and take my word - you'll need tracking, but if you sure you don't, sometimes it's nice to have a track of hours spent on different activities.&lt;/p&gt;  &lt;p align="justify"&gt;Take a look at Toggle, it's free and it does a lot of great things like:&lt;a title="Toggl" href="http://www.toggl.com/" target="_blank"&gt;&lt;img alt="Toggl" src="http://www.toggl.com/img/logo_toggl.gif" align="right" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Live tracking&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Workspaces&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Teams and permissions&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Clients and projects&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Reports&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;and the most important - it's Internet-based so you can share the tracking between the different workstations where you work on the projects.&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-1561028726317678285?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/1561028726317678285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=1561028726317678285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/1561028726317678285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/1561028726317678285'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/12/time-tracking-solutions-are-must.html' title='Time tracking solutions are the must'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-8516623078878343121</id><published>2007-12-29T23:39:00.001-05:00</published><updated>2007-12-29T23:42:31.052-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Announcing the PopSci.com/Bug Labs Build-a-BUG Challenge</title><content type='html'>&lt;p align="justify"&gt;&lt;img style="margin: 0px 0px 0px 15px" height="202" src="http://popsci.typepad.com/how20blog/images/2007/12/17/buglabs_600.jpg" width="303" align="right" /&gt;You have a chance to win BUGbase and the first batch of four BUGmodules - the open, modular consumer-electronics hardware and Web-services platform that you can use like Legos to build practically any gadget you can dream up.&lt;/p&gt;  &lt;p align="justify"&gt; Join the PopSci.com/Bug Labs Build-a-BUG Challenge. More information can be found on the &lt;a href="http://popsci.typepad.com/how20blog/2007/12/announcing-pops.html" target="_blank"&gt;PopSci.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/2981093359461362305-8516623078878343121?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/8516623078878343121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=8516623078878343121' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/8516623078878343121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/8516623078878343121'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/12/announcing-popscicombug-labs-build-bug.html' title='Announcing the PopSci.com/Bug Labs Build-a-BUG Challenge'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-606447450830093955</id><published>2007-12-27T17:06:00.001-05:00</published><updated>2007-12-27T17:08:15.700-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>PocketPC phone usability horror story (Verizon XV6800 review)</title><content type='html'>&lt;p&gt;I'm a Verizon member not by choice but by &amp;quot;no choice at all&amp;quot;. Like in: I don't have any other choice of a provider in my house. T-Mobile, ATT nor others have any acceptable service level in my house. I think, mainly, because my close proximity to Newton and Brookline. This article will not be about Verizon's service and support (I have a lot to say here) and not about the worst choice of the devices between all the providers out there, but about my user experience with the mobile communicators that I've had recently.&lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 0px 15px 0px 0px" height="154" alt="XV6700 with keyboard open" src="http://www.mobiletechreview.com/image/phones/XV6700_open.jpg" width="200" align="left" /&gt;I have a corporate phone/communicator and using it a lot to reply to my office e-mails. As you know it's not easy to type on keyboard that has tiny buttons, like Treo or similar. The best keyboards out there are on Blackberries (it's a shame Symantec doesn't use them) and on a slide-out keyboards of the HTC devices (or alike). So, being an forced Verizon customer, I had no choice by to chose HTC XV6700 as my communicator.&lt;/p&gt;  &lt;p&gt;This is when my nightmare began. The exterior design of the phone looks nice until you start carrying it with you all the time. Since the joystick is sticking out, the carrying case starts to control the phone. Yes, literally.&lt;/p&gt;  &lt;p&gt;The phone was calling other people on it's own, answering phone calls without asking me, adding appointments and deleting calendars, etc, etc... It was like the phone was leaving it's own life. And the worst of all - when the phone call came it was hanging (to the point of soft reset). A total nightmare ...&lt;/p&gt;  &lt;p&gt;So, after talking to Verizon, I got an OK to replace it. With what? That was my main question. I had no alternative, but to wait. I've suffered for more than a year (from Jun/2006 to Nov/2007) and, finally, had a chance to replace the phone to it's successor XV6800.&lt;/p&gt;  &lt;p&gt;&lt;img title="Verizon XV6800" style="margin: 0px 15px 0px 0px" alt="Verizon XV6800" src="http://www.verizonxv6800.net/LinkClick.aspx?link=xv6800-200x168.gif&amp;amp;tabid=76&amp;amp;mid=452" align="left" border="0" /&gt; Overall impression: the phone is better than it's predecessor but not drastically. It has more memory, I should give it that, but the usability was not improved. Actually it has improved in the joystick area and became worse in others.&lt;/p&gt;  &lt;p&gt;Joystick is not sticking out as it was before, but the buttons on the sides of the phone are soft. Every time you'll want to pick the phone out of the pouch - you'll 100% press one of them.&lt;/p&gt;  &lt;p&gt;The biggest design flaw of this device, as I see it, is a headset adapter cable. There is no headset outlet on the phone, so if you'd like to plug-in one, you'll need an adapter. It's a thick cable 4-5 inch long with huge plugs that will be sticking out of your phone while you're walking - horrible view and very inconvenient. Be very careful with this adapter, it's easy falls off the phone and it's small enough to be easily lost, BUT... you can't find a replacement in any of the stores nor online.&lt;/p&gt;  &lt;p&gt;All said above is not even begins to convey how bad is the Windows Mobile usability aspect of BOTH of the devices. Let's start from the worst part:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;It's impossible to make the phone to auto-lock. So, if you want to lock the phone, you have to go to &amp;quot;Today&amp;quot; screen and press the lock button ON THE SCREEN. Yes, it's not a hardware button. There is no way to assign a hardware button to this action.&lt;/li&gt;    &lt;li&gt;It's impossible to turn the screen off while the device continues to work. I need it every time when I start a media player and put the device in a pocket or in a pouch. At this moment the phone is prone to accidental button and screen actions.&lt;/li&gt;    &lt;li&gt;The phone turns on once in a while. It's fine with me, but, at the same moment, the screen and the buttons are activated. So... you get my drift (all from above applied here).&lt;/li&gt;    &lt;li&gt;The phone synchronization is a nightmare. ActiveSync is very unreliable, self enclosed, rigid and impossible to make it do what you need. This is not a stone into the XV6800 backyard, but it adds cons to the whole experience.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I can go on an on, but, I think, I've said enough.&lt;/p&gt;  &lt;p&gt;To conclude the story, I'd like to say that, to my taste, the whole user story is not completely backed and we're still in a very deep deep Beta of the product. Under the product I mean the device(hardware) + software(OS). At this moment it looks like there is no common team that owns such product. There are hardware companies that create the hardware and Microsoft, that have fun creating an software for an abstract device.&lt;/p&gt;  &lt;p&gt;So bottom line I have a very bad user experience with this device. I'm looking forward to the next Windows Mobile release and hope the things will change to the better.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-606447450830093955?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/606447450830093955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=606447450830093955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/606447450830093955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/606447450830093955'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/12/pocketpc-phone-usability-horror-story.html' title='PocketPC phone usability horror story (Verizon XV6800 review)'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-2212738637330468343</id><published>2007-12-25T02:21:00.001-05:00</published><updated>2007-12-29T22:03:36.376-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Let's give a Windows Live Writer a test run</title><content type='html'>&lt;p&gt;I've decided to try WLW for a change. This is a test post.&lt;/p&gt;  &lt;p&gt;Amazingly - it works !!!&lt;/p&gt;  &lt;p&gt;Let's see how the code coloring will work:&lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Window_Loaded(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;br /&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    WebBrowser wb = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebBrowser();&lt;br /&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    wb.Navigate(System.Configuration.ConfigurationManager.AppSettings[&lt;span class="str"&gt;&amp;quot;Feed&amp;quot;&lt;/span&gt;]);&lt;br /&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;#160; &lt;span class="lnum"&gt;  &lt;/span&gt;windowsFormsHost.Child = wb;&lt;br /&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;And it looks like the code should be pasted as HTML. Hmm... not a lot of help there.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.google.com/igor.moochnick/R3G7oJl7NNI/AAAAAAAAAEA/9i4lxlNFlaM/clip_image001%5B4%5D"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="165" alt="clip_image001" src="http://lh5.google.com/igor.moochnick/R3G6uJl7NMI/AAAAAAAAAEI/76muqkKDAuY/clip_image001_thumb%5B1%5D" width="201" align="left" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160; And pictures? It looks like they are working via Picasa Web Albums. You're getting a free 1Gb storage account there with your Google account.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&amp;#160; So have fun with this new blog editor !&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-2212738637330468343?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/2212738637330468343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=2212738637330468343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/2212738637330468343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/2212738637330468343'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/12/let-give-windows-live-writer-test-run.html' title='Let&amp;#39;s give a Windows Live Writer a test run'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-1042448119995917792</id><published>2007-12-24T14:22:00.000-05:00</published><updated>2007-12-24T15:34:52.397-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Integrating Web Browser with WPF Forms</title><content type='html'>&lt;p&gt;There are so many situations where you need to render an HTML in your forms. It may happen when you'd want, for example, to show an external web page, feed or a locally generated content like XML or an HTML. The Web Browser is extremely handy for the Web Automation (I’ll talk about it in future posts) since you have full HTML DOM available for control at your fingertips. So, having WPF now out there is not changing a thing – it’s still possible to host Web Browser inside a form.&lt;br /&gt;&lt;br /&gt;Look how easy it is. Let’s say you want to show your blog on an application form. To do so:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a WPF application with a Form.&lt;/li&gt;&lt;li&gt;From the toolbox drop a &lt;span style="color:#3333ff;"&gt;WindowsFormsHost&lt;/span&gt; on the form. Give it a name, let’s say, “&lt;span style="color:#3333ff;"&gt;windowsFormsHost&lt;/span&gt;”. Make sure that the references to the &lt;span style="color:#3333ff;"&gt;WindowsFormsInteroperability&lt;/span&gt; and &lt;span style="color:#3333ff;"&gt;System.Windows.Forms&lt;/span&gt; were added to your project. To make a better presentation make the &lt;span style="color:#3333ff;"&gt;Margin = 0&lt;/span&gt; – the control will fill in all the available form’s space.&lt;/li&gt;&lt;li&gt;In the XAML source add “&lt;span style="color:#3333ff;"&gt;Loaded&lt;/span&gt;” attribute with “&lt;span style="color:#3333ff;"&gt;Window_Loaded&lt;/span&gt;” value to the &lt;span style="color:#3366ff;"&gt;&lt;window&gt;&lt;/span&gt; tag.&lt;/li&gt;&lt;li&gt;Add the following code to the &lt;span style="color:#3333ff;"&gt;Window_Loaded&lt;/span&gt; handler in the .cs file:&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;WebBrowser wb = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebBrowser();&lt;br /&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;wb.Navigate(ConfigurationManager.AppSettings[&lt;span class="str"&gt;"Feed"&lt;/span&gt;]);&lt;br /&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;windowsFormsHost.Child = wb;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Build, run and enjoy!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://igor.moochnick.googlepages.com/HostingIEinWPF.zip"&gt;Source code&lt;/a&gt; can be found as usual on my &lt;a href="http://igor.moochnick.googlepages.com/"&gt;site&lt;/a&gt;.&lt;/h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-1042448119995917792?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/1042448119995917792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=1042448119995917792' title='87 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/1042448119995917792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/1042448119995917792'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/12/integrating-web-browser-with-wpf-forms.html' title='Integrating Web Browser with WPF Forms'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>87</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-1654283971488903529</id><published>2007-12-23T00:42:00.000-05:00</published><updated>2007-12-23T01:08:25.581-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>RSS is not only for the news</title><content type='html'>&lt;p align="justify"&gt;The new Syndication libraries, provided in the .NET 3.5, making creation of the RSS feeds a walk in a park. By combining them with the power of the WCF you can get an amazing results.&lt;br /&gt;RSS technology allows you to reverse the client/server tandem from push to pull paradigm. Instead of client sending data to server you can publish the available data and make server to decide what to pull(download) and what to ignore, This can save a lot of valuable resources like time, network bandwidth, data transfer and processing.&lt;br /&gt;&lt;br /&gt;To make my case more interesting and appealing let’s imagine a situation where you want to make a back-up agent that will be archiving all the text files. In order to do so, all the desktops will publish all the newly changed files that need to be archived. The server will subscribe to all the relevant feeds. In this article I’ll cover, for starters, only the client’s side and in the following articles we’ll talk about different discovery and subscription mechanisms that we have in our disposal in .NET for the server.&lt;br /&gt;&lt;br /&gt;The following snippet shows you how to create s simple syndication feed:&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre&gt;&lt;br /&gt;    &lt;span class="lnum"&gt;   1:  &lt;/span&gt;SyndicationFeed feed = &lt;span class="kwrd"&gt;new&lt;/span&gt; SyndicationFeed();&lt;br /&gt;    &lt;span class="lnum"&gt;   2:  &lt;/span&gt;List&amp;lt;SyndicationItem&amp;gt; items = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;SyndicationItem&amp;gt;();&lt;br /&gt;    &lt;span class="lnum"&gt;   3:  &lt;/span&gt;...&lt;br /&gt;    &lt;span class="lnum"&gt;   4:  &lt;/span&gt;SyndicationItem item = &lt;span class="kwrd"&gt;new&lt;/span&gt; SyndicationItem(title, path, GetFileUri(path));&lt;br /&gt;    &lt;span class="lnum"&gt;   5:  &lt;/span&gt;items.Add(item);&lt;br /&gt;    &lt;span class="lnum"&gt;   6:  &lt;/span&gt;feed.Items = items;&lt;br /&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;As you can see it’s extremely easy, but this was just a half of the job. The other half is to publish the feed. There are a lot of ways to do it, but I’m going to cover one of them. Since WCF is one of the best things to use in windows services (as well as in Web services), I’m going to use it to publish the feed. Here how you will initialize the WCF host with the Feed Service as a singleton (single-instance):&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;FileChangeFeedService service = &lt;span class="kwrd"&gt;new&lt;/span&gt; FileChangeFeedService();&lt;br /&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;ServiceHost serviceHost = &lt;span class="kwrd"&gt;new&lt;/span&gt; ServiceHost(service);&lt;br /&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;serviceHost.Open();&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Note:&lt;/u&gt;&lt;/strong&gt; don’t forget to mark the service class as a single-instance service by adding &lt;span class="kwrd"&gt;ServiceBehavior&lt;/span&gt; attribute –&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;[&lt;span class="kwrd"&gt;ServiceBehavior&lt;/span&gt;(InstanceContextMode = InstanceContextMode.Single,&lt;br /&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;IncludeExceptionDetailInFaults = &lt;span class="kwrd"&gt;true&lt;/span&gt;)]&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Announce:&lt;/u&gt;&lt;/strong&gt; I’ll be talking about REST in the following posts as well as a new “Give it a REST” presentation is ready for broader public to attend.&lt;br /&gt;&lt;br /&gt;One of the beautiful things that became available with .NET 3.5 is Url templates. This allows to put HTTP verbs on the methods of a web service as well as to map the Url parts (not only parameters) to a method parameters. This in many cases will eliminate any need for parsing of the data. All the mentioned above, make the WCF Web Services REST compatible.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;[&lt;span class="kwrd"&gt;OperationContract&lt;/span&gt;]&lt;br /&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;[WebGet(UriTemplate = &lt;span class="str"&gt;"?format={format}"&lt;/span&gt;)]&lt;br /&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;SyndicationFeedFormatter Feed(&lt;span class="kwrd"&gt;string&lt;/span&gt; format);&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This contract method will be called if a web request will come to the following URL:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://localhost/feed?format=rss"&gt;http://localhost/feed?format=rss&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The format parameter (“rss” in our case) will be extracted from the URL and passed as a parameter to the Feed method. This allows us to seamlessly provide different feed formatting (thanks to the new WCF libraries):&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre&gt;&lt;br /&gt;    &lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; SyndicationFeedFormatter Feed(&lt;span class="kwrd"&gt;string&lt;/span&gt; format)&lt;br /&gt;    &lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;br /&gt;    &lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; ((format != &lt;span class="kwrd"&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (format.ToLower() == &lt;span class="str"&gt;"rss"&lt;/span&gt;))&lt;br /&gt;    &lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Rss20FeedFormatter(feed);&lt;br /&gt;    &lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;nbsp;&lt;br /&gt;    &lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Atom10FeedFormatter(feed);&lt;br /&gt;    &lt;span class="lnum"&gt;   7:  &lt;/span&gt;}&lt;br /&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Note:&lt;/u&gt;&lt;/strong&gt; if no parameters will be provided (i.e.: &lt;a href="http://localhost/feed"&gt;http://localhost/feed&lt;/a&gt;) the Feed method will be called with a NULL value.&lt;br /&gt;&lt;br /&gt;And here is what will glue everything together – the config file:&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.serviceModel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;services&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;service&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="FileChangeFeed.FileChangeFeedService"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;endpoint&lt;/span&gt; &lt;span class="attr"&gt;address&lt;/span&gt;&lt;span class="kwrd"&gt;="http://localhost:8080/feed"&lt;/span&gt; &lt;span class="attr"&gt;binding&lt;/span&gt;&lt;span class="kwrd"&gt;="webHttpBinding"&lt;/span&gt;&lt;br /&gt;              &lt;span class="attr"&gt;bindingConfiguration&lt;/span&gt;&lt;span class="kwrd"&gt;=""&lt;/span&gt; &lt;span class="attr"&gt;contract&lt;/span&gt;&lt;span class="kwrd"&gt;="FileChangeFeed.IFileChangeFeed"&lt;/span&gt; &lt;span class="attr"&gt;behaviorConfiguration&lt;/span&gt;&lt;span class="kwrd"&gt;="webBehavior"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;service&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;services&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;behaviors&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;endpointBehaviors&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;           &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;behavior&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="webBehavior"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;webHttp&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;           &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;behavior&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;endpointBehaviors&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;behaviors&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.serviceModel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; Note the endpoint behavior. As you can guess the feed can be published over any protocol, but if you’ll want to view the feed using standard RSS feed readers, it’s better to publish it over HTTP.&lt;br /&gt;&lt;br /&gt;  As soon as you’ll start the application and the service will be published – put the base Uri (http://localhost:8080/feed) in IE’s address box and you’ll see a rendered RSS feed view.&lt;br /&gt;&lt;br /&gt;  Have fun with RSS feeds and don’t be afraid to explore your possibilities.&lt;br /&gt;&lt;br /&gt;  The &lt;a href="http://igor.moochnick.googlepages.com/FilwChangeFeed.zip"&gt;source code&lt;/a&gt; can be found on my &lt;a href="http://igor.moochnick.googlepages.com/"&gt;site&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-1654283971488903529?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/1654283971488903529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=1654283971488903529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/1654283971488903529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/1654283971488903529'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/12/rss-is-not-only-for-news.html' title='RSS is not only for the news'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-3715897222895294041</id><published>2007-12-17T19:43:00.000-05:00</published><updated>2007-12-17T19:46:12.136-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Spell checker for HTML, ASP.NET, JScript, VB, C#, CSS and C++ for Visual Studio 2005 and 2008</title><content type='html'>Finally there is no excuse for the developers to misspell class and method names. Now everybody can enjoy the luxury of the Spell checkers that we always had in office applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-3715897222895294041?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/webdevtools/archive/2007/12/13/spell-checker-for-html-asp-net-jscript-vb-c-css-and-c-for-visual-studio-2005-and-2008.aspx' title='Spell checker for HTML, ASP.NET, JScript, VB, C#, CSS and C++ for Visual Studio 2005 and 2008'/><link rel='enclosure' type='' href='http://blogs.msdn.com/webdevtools/archive/2007/12/13/spell-checker-for-html-asp-net-jscript-vb-c-css-and-c-for-visual-studio-2005-and-2008.aspx' length='0'/><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/3715897222895294041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=3715897222895294041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/3715897222895294041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/3715897222895294041'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/12/spell-checker-for-html-aspnet-jscript.html' title='Spell checker for HTML, ASP.NET, JScript, VB, C#, CSS and C++ for Visual Studio 2005 and 2008'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-8637024936636863696</id><published>2007-11-21T12:16:00.000-05:00</published><updated>2008-12-09T14:53:32.688-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Part 2 - Securing Server with SSL</title><content type='html'>&lt;p&gt;&lt;br /&gt;It's not a walk in the park to work with certificates. There are a lot of bells and whistles to it than it meets the eye, but I'll try to walk you through this nightmare step-by-step in the set of the following posts. But first, I'll show you how you can jump-start your development and encrypt your traffic with some hand-made and self-issued certificates.&lt;br /&gt;&lt;br /&gt;There are a lot of ways to self-issue a test certificate, but I'm going to share with you the EASIEST one I use myself. Follow these simple steps, one by one, to create a test certificate:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a root certificate:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;makecert -pe -n "CN=Igor Cert Authority" -ss my -sr LocalMachine -a sha1 -sky signature -r "Igor Cert Authority.cer" &lt;/strong&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;If you'll run the MMC console with Certificates Add-in (Computer Account/Local Computer) and navigate to Certificates/Personal/Certificates node, you will see that the "Igor Cert Authority" certificate already installed: &lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/R0SC3ShYkBI/AAAAAAAAACI/_dWMI2GYJKQ/s1600-h/cert-authority.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5135373361485484050" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/R0SC3ShYkBI/AAAAAAAAACI/_dWMI2GYJKQ/s400/cert-authority.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a certificate for the encryption purposes:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;makecert -pe -n "CN=myhost" -ss my -sr LocalMachine -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in "Igor Cert Authority" -is my -ir LocalMachine myhost.cer&lt;/strong&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Note:&lt;/u&gt;&lt;/strong&gt; the best way to use your machine's DNS name in all the places I've used "myhost"&lt;br /&gt;&lt;br /&gt;If you'll refresh the MMC console with Certificates Add-In - you'll see that the new "myhost" certificate will be configured for you as well. &lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/R0SDSyhYkCI/AAAAAAAAACQ/i3P1BNt4Yf0/s1600-h/test-cert.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5135373833931886626" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/R0SDSyhYkCI/AAAAAAAAACQ/i3P1BNt4Yf0/s400/test-cert.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The result of the exercise above is the "myhost.cer" file that you can use now to encrypt your communication.&lt;br /&gt;&lt;br /&gt;For the sake of this demonstration, let's use the NULL SMTP server I've put together. This server will receive all the incoming SMTP requests and will process them as if it's a real SMTP server. The server will encrypt the incoming communication with the certificate that was created in the steps above.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a certificate object from the CERT file:&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;X509Certificate serverCertificate = X509Certificate.CreateFromCertFile(&lt;span class="str"&gt;"myhost.cer"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;As soon as the new client connection is established - encrypt the stream with this certificate:&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;TcpListener listener = &lt;span class="kwrd"&gt;new&lt;/span&gt; TcpListener(IPAddress.Loopback, port);&lt;br /&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;...&lt;br /&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;TcpClient client = listener.AcceptTcpClient();&lt;br /&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;...&lt;br /&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="rem"&gt;// Create the SslStream using the client's network stream.&lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;SslStream sslStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; SslStream(client.GetStream(), &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="rem"&gt;// Authenticate the server but don't require the client to authenticate.&lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;sslStream.AuthenticateAsServer(serverCertificate, &lt;span class="kwrd"&gt;false&lt;/span&gt;, SslProtocols.Tls, &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;In order to test the server, I've used the Outlook Express (it is in most cases installed by default on every machine). Don't forget to tell the Outlook Express that the communication should be secure (note the check box in the Outgoing SMTP mail section):&lt;/p&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/R0SDuyhYkDI/AAAAAAAAACY/Njsb0HYE1yM/s1600-h/outlook-express.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5135374314968223794" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/R0SDuyhYkDI/AAAAAAAAACY/Njsb0HYE1yM/s400/outlook-express.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;After the configuration is complete - have fun by sending e-mails. The sever will process all the outgoing traffic over the encrypted channel:&lt;/p&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/R0SEByhYkEI/AAAAAAAAACg/-4rLJISPpFk/s1600-h/outlook-express-send-email.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5135374641385738306" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/R0SEByhYkEI/AAAAAAAAACg/-4rLJISPpFk/s400/outlook-express-send-email.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;You can download the source of the NULL SMTP Server from my &lt;a href="http://igor.moochnick.googlepages.com/"&gt;site &lt;/a&gt;- &lt;a href="http://igor.moochnick.googlepages.com/Part2.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Tune-in for the upcoming set of articles that will show you a lot of new and cool staff.&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/2981093359461362305-8637024936636863696?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/8637024936636863696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=8637024936636863696' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/8637024936636863696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/8637024936636863696'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/11/part-2-securing-server-with-ssl.html' title='Part 2 - Securing Server with SSL'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GSYJ6cWJL8Y/R0SC3ShYkBI/AAAAAAAAACI/_dWMI2GYJKQ/s72-c/cert-authority.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-7515037159281628584</id><published>2007-11-20T20:28:00.000-05:00</published><updated>2007-11-20T20:39:16.200-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Visual Studio 2008 and .NET 3.5 Released</title><content type='html'>I don't want to announce the obvious, but just point you to a great blog to check for the news. Go to &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx"&gt;Scott Gu's Blog&lt;/a&gt; for the latest news about the Visual Studio and .NET features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-7515037159281628584?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx' title='Visual Studio 2008 and .NET 3.5 Released'/><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/7515037159281628584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=7515037159281628584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/7515037159281628584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/7515037159281628584'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/11/visual-studio-2008-and-net-35-released.html' title='Visual Studio 2008 and .NET 3.5 Released'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-9142416892935579842</id><published>2007-11-14T15:55:00.000-05:00</published><updated>2007-11-14T16:01:38.448-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Microsoft is ready to ship Visual Studio 9 (Orcas) by the end of this year.</title><content type='html'>&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Great news!!!&lt;/span&gt;&lt;/strong&gt; Microsoft is ready to ship Visual Studio 9 (Orcas) by the end of this year:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#c0c0c0;"&gt;&lt;span style="color:#666666;"&gt;· The product team at Microsoft is putting the finishing touches on Visual Studio 2008 and .NET FX 3.5 as we speak now. We are on track to shipping these products before the end of November 2007. We will have the marketing launch for these along with Windows Server 2008 and SQL Server 2008 at the end of February.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;For more announcements check &lt;a class="headermaintitle" href="http://blogs.msdn.com/somasegar/default.aspx"&gt;Somasegar's WebLog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-9142416892935579842?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/somasegar/archive/2007/11/05/teched-developer-in-europe.aspx' title='Microsoft is ready to ship Visual Studio 9 (Orcas) by the end of this year.'/><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/9142416892935579842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=9142416892935579842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/9142416892935579842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/9142416892935579842'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/11/microsoft-is-ready-to-ship-visual.html' title='Microsoft is ready to ship Visual Studio 9 (Orcas) by the end of this year.'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-2232354150371581525</id><published>2007-11-11T13:20:00.000-05:00</published><updated>2007-11-21T12:15:59.126-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Part 1- Securing Client Stream with SSL</title><content type='html'>&lt;p&gt;&lt;br /&gt;Most of the communications outside of your home network are secured and encrypted. The most popular kind of a secured communication today is the SSL. In most cases it is not even required to do any configuration for the end user.&lt;br /&gt;&lt;br /&gt;Let's assume: we have a server that requires that all the incoming connections be secured with SSL. The following post shows an example of how this can be accomplished.&lt;br /&gt;&lt;br /&gt;I'll show you the implementation by securing the POP3 communication while retrieving e-mails from the Gmail POP3 servers by the POP3 tunneling client. This client was introduced by Bart De Smet in this series of posts:&lt;br /&gt;&lt;a href="http://community.bartdesmet.net/blogs/bart/search.aspx?q=wcf+pop3+tunnel&amp;amp;p=1"&gt;Pop3 Tunneling&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note that authentication of the client is optional. This allows us to use the SSL only for the channel encryption without any client authentication and authorization. This is why the HTTPS (HTTP over SSL) is widely popular - the end users are not required to issue and configure their own certificates and the server-side issued certificates are used to encrypt the traffic.&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// The following method is invoked by the RemoteCertificateValidationDelegate.&lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; ValidateServerCertificate(&lt;br /&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;object&lt;/span&gt; sender,&lt;br /&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    X509Certificate certificate,&lt;br /&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    X509Chain chain,&lt;br /&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    SslPolicyErrors sslPolicyErrors)&lt;br /&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;{&lt;br /&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (sslPolicyErrors == SslPolicyErrors.None)&lt;br /&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    Console.WriteLine(&lt;span class="str"&gt;"Certificate error: {0}"&lt;/span&gt;, sslPolicyErrors);&lt;br /&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;span class="rem"&gt;// Do not allow this client to communicate with unauthenticated servers.&lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;}&lt;br /&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;SslStream sslStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; SslStream(client.GetStream(), &lt;span class="kwrd"&gt;false&lt;/span&gt;,&lt;br /&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;new&lt;/span&gt; RemoteCertificateValidationCallback(ValidateServerCertificate), &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        sslStream.AuthenticateAsClient(server);&lt;br /&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        stream = sslStream;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The modified Pop3Client (Pop3ClientSecured) code can be downloaded &lt;a href="http://igor.moochnick.googlepages.com/BloggerWCFseries-Part1.zip"&gt;here&lt;/a&gt;. The package includes a test application as well, so you're welcome to try it against your Gmail account (if you have it or any other POP3 account).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-2232354150371581525?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/2232354150371581525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=2232354150371581525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/2232354150371581525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/2232354150371581525'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/11/part-1-securing-client-stream-with-ssl.html' title='Part 1- Securing Client Stream with SSL'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-7915596239625553360</id><published>2007-11-11T13:00:00.000-05:00</published><updated>2007-11-11T13:08:17.119-05:00</updated><title type='text'>Anouncement! WCF and WFF posts series</title><content type='html'>Recently I've been doing a very interesting research and, as a result of this, I've built a very interesting piece of technology. Since, at this moment, I can’t reveal  it to the general public, due to my oblications to my employer, I can though talk about it in the general terms. This is leading me to publish a series of posts that will allow us to built step by step a very interesting and powerful application.&lt;br /&gt;&lt;br /&gt;Stay tuned …&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-7915596239625553360?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/7915596239625553360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=7915596239625553360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/7915596239625553360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/7915596239625553360'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/11/anouncement-wcf-and-wff-posts-series.html' title='Anouncement! WCF and WFF posts series'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-9178636726056771129</id><published>2007-09-21T13:59:00.000-04:00</published><updated>2008-12-09T14:53:32.932-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>MyOrganizer now supports Outlook/Exchange</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_GSYJ6cWJL8Y/RvQG8peqpzI/AAAAAAAAAB0/HKXtDyon-eA/s1600-h/MyOrganizer_front.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5112719115968751410" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_GSYJ6cWJL8Y/RvQG8peqpzI/AAAAAAAAAB0/HKXtDyon-eA/s320/MyOrganizer_front.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Just uploaded a new version of MyOrganizer plug-in. Now it supports Outlook/Exchange calendar in addion to the previous Google support.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://wiki.team-mediaportal.com/Extensions-Plugins/MyOrganizer"&gt;http://wiki.team-mediaportal.com/Extensions-Plugins/MyOrganizer&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-9178636726056771129?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/9178636726056771129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=9178636726056771129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/9178636726056771129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/9178636726056771129'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/09/myorganizer-now-supports.html' title='MyOrganizer now supports Outlook/Exchange'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GSYJ6cWJL8Y/RvQG8peqpzI/AAAAAAAAAB0/HKXtDyon-eA/s72-c/MyOrganizer_front.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-1022770820433512763</id><published>2007-07-11T14:20:00.000-04:00</published><updated>2008-12-09T14:53:33.119-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Stakka storage device automation</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_GSYJ6cWJL8Y/RpUfzf0gtsI/AAAAAAAAABs/sdJpBTScFWM/s1600-h/stakka.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5086006323760379586" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_GSYJ6cWJL8Y/RpUfzf0gtsI/AAAAAAAAABs/sdJpBTScFWM/s320/stakka.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Published a first stage of the Stakka Storage Device automation project.&lt;/p&gt;&lt;p&gt;You're welcome to read more about it on the &lt;a href="http://igor.moochnick.googlepages.com/roboticstakka%C2%A0device"&gt;dedicated page&lt;/a&gt; as well as to play with the Stakka automation test tool.&lt;/p&gt;&lt;p&gt;The test tool wraps the Stakka USB protocol in C# code.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-1022770820433512763?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/1022770820433512763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=1022770820433512763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/1022770820433512763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/1022770820433512763'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/07/stakka-storage-device-automation.html' title='Stakka storage device automation'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GSYJ6cWJL8Y/RpUfzf0gtsI/AAAAAAAAABs/sdJpBTScFWM/s72-c/stakka.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-264278722497328665</id><published>2007-06-27T09:46:00.001-04:00</published><updated>2008-12-09T14:53:33.521-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Motion-activated TimeLapse Video Recorder</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_GSYJ6cWJL8Y/RoJqhP0gtrI/AAAAAAAAABk/O_BFGiFZoac/s1600-h/time_lapse.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5080740449042347698" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 303px; CURSOR: hand; HEIGHT: 236px" height="255" alt="" src="http://1.bp.blogspot.com/_GSYJ6cWJL8Y/RoJqhP0gtrI/AAAAAAAAABk/O_BFGiFZoac/s400/time_lapse.png" width="356" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Creates a time-lapsed videos from web/ip cameras, JPEG/MJPEG streams as well as from AVI files. It can be configured to record video only if any motion detected.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;More information can be found on &lt;a href="http://igor.moochnick.googlepages.com/timelapsevideorecorder"&gt;my web site&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Check out a time-lapsed video created from the Stuttgart airport's MJPEG stream - &lt;a href="http://igor.moochnick.googlepages.com/shtutgard_airport.avi"&gt;shtutgard_airport.avi&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-264278722497328665?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/264278722497328665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=264278722497328665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/264278722497328665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/264278722497328665'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/06/motion-activated-timelapse-video.html' title='Motion-activated TimeLapse Video Recorder'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GSYJ6cWJL8Y/RoJqhP0gtrI/AAAAAAAAABk/O_BFGiFZoac/s72-c/time_lapse.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-6373680162514443547</id><published>2007-06-27T09:41:00.000-04:00</published><updated>2008-12-09T14:53:33.678-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'></title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RoJpe_0gtpI/AAAAAAAAABU/cRxnTDXJdqo/s1600-h/mp_webrowser-large.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5080739310876014226" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RoJpe_0gtpI/AAAAAAAAABU/cRxnTDXJdqo/s320/mp_webrowser-large.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt; Published (and checked-in) an IE-based Web Browser plug-in for the Media Portal. It supports zoom in and out of the hosted web page.&lt;/p&gt;&lt;p&gt;  More info can be found on my &lt;a href="http://igor.moochnick.googlepages.com/walltop"&gt;Wall-Top dedicated page&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/2981093359461362305-6373680162514443547?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/6373680162514443547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=6373680162514443547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/6373680162514443547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/6373680162514443547'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/06/published-and-checked-in-ie-based-web.html' title=''/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RoJpe_0gtpI/AAAAAAAAABU/cRxnTDXJdqo/s72-c/mp_webrowser-large.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-3643159597034204510</id><published>2007-04-04T10:34:00.000-04:00</published><updated>2008-12-09T14:53:34.044-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>Careful! Watch the stairs!</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RhO380LHDVI/AAAAAAAAABM/FyvqyJNTISE/s1600-h/IMAGE_00001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5049581862637735250" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RhO380LHDVI/AAAAAAAAABM/FyvqyJNTISE/s320/IMAGE_00001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt; Who stole the stairs?!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-3643159597034204510?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/3643159597034204510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=3643159597034204510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/3643159597034204510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/3643159597034204510'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/04/careful-watch-stairs.html' title='Careful! Watch the stairs!'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RhO380LHDVI/AAAAAAAAABM/FyvqyJNTISE/s72-c/IMAGE_00001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-2691434681756554889</id><published>2007-03-29T11:46:00.000-04:00</published><updated>2008-12-09T14:53:34.967-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>Keyword mix</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/Rgvfgx47w5I/AAAAAAAAAA4/kEVoDadl4f4/s1600-h/IMAGE_00001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5047373561639715730" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/Rgvfgx47w5I/AAAAAAAAAA4/kEVoDadl4f4/s200/IMAGE_00001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some companies are trying to gain your attention by using as many keywords as possible. Often they create very funny mixes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Remember the "Let's analyze this"?&lt;br /&gt;&lt;br /&gt;- This is a great car - one owner is loaded and you can fit 2 more bodies in the trunk !!! ;-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RgvgVx47w6I/AAAAAAAAABA/V6qcl8ccrKA/s1600-h/IMAGE_00003.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5047374472172782498" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RgvgVx47w6I/AAAAAAAAABA/V6qcl8ccrKA/s320/IMAGE_00003.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-2691434681756554889?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/2691434681756554889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=2691434681756554889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/2691434681756554889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/2691434681756554889'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/03/some-companies-are-trying-to-gain-your.html' title='Keyword mix'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GSYJ6cWJL8Y/Rgvfgx47w5I/AAAAAAAAAA4/kEVoDadl4f4/s72-c/IMAGE_00001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-7417849085110333880</id><published>2007-03-20T16:46:00.000-04:00</published><updated>2007-03-20T16:48:57.706-04:00</updated><title type='text'>Everybody welcome to my presentation.</title><content type='html'>I'll be presenting &lt;strong&gt;&lt;u&gt;"CCR: no more asynchronous spaghetti. An introduction."&lt;/u&gt;&lt;/strong&gt; during the "Code Camp 7: Deer in Headlights!" event. Everybody is welcome!&lt;br /&gt;&lt;br /&gt;You can see a full list of presentations here: &lt;a href="http://www.thedevcommunity.org/Events/PresentationList.aspx?id=2"&gt;http://www.thedevcommunity.org/Events/PresentationList.aspx?id=2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-7417849085110333880?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/7417849085110333880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=7417849085110333880' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/7417849085110333880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/7417849085110333880'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/03/everybody-welcome-to-my-presentation.html' title='Everybody welcome to my presentation.'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-5539831884715154331</id><published>2007-03-20T16:26:00.000-04:00</published><updated>2008-12-09T14:53:35.303-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>Don't you like this kind of FREE deals ?!!</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/RgBGx1wkcYI/AAAAAAAAAAw/gM37q_iqQCI/s1600-h/free_deal.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5044109404713283970" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/RgBGx1wkcYI/AAAAAAAAAAw/gM37q_iqQCI/s400/free_deal.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/RgBGx1wkcYI/AAAAAAAAAAw/gM37q_iqQCI/s1600-h/free_deal.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5044108399690936690" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_GSYJ6cWJL8Y/RgBF3VwkcXI/AAAAAAAAAAo/SSmGEz5ezVo/s200/free_deal_small.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It took me a while to understand what they meant. The wording is horrible.&lt;br /&gt;&lt;br /&gt;Can you figure it out?&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-5539831884715154331?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/5539831884715154331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=5539831884715154331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/5539831884715154331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/5539831884715154331'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/03/dont-you-like-this-kind-of-free-deals.html' title='Don&apos;t you like this kind of FREE deals ?!!'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GSYJ6cWJL8Y/RgBGx1wkcYI/AAAAAAAAAAw/gM37q_iqQCI/s72-c/free_deal.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-5568789685288665592</id><published>2007-03-03T12:14:00.000-05:00</published><updated>2008-12-09T14:53:35.457-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Robotics'/><title type='text'></title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/Remy22RPGmI/AAAAAAAAAAM/l65JOAGc8fw/s1600-h/plugin_running.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5037754313541098082" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_GSYJ6cWJL8Y/Remy22RPGmI/AAAAAAAAAAM/l65JOAGc8fw/s320/plugin_running.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;If you're a fan of the SourceBoost IDE and want to extend it with a set of great new plugins - now you you can do it easily. If you know any .NET language, you're welcome to download the SourceBoost plug-in framework that allows you to create plugins with comfort. .NET provides you with ease of use and an advantage of a rapid development.&lt;br /&gt;&lt;br /&gt;You can download the framework from the &lt;a href="http://igor.moochnick.googlepages.com/sourceboostplugin.net"&gt;SourceBoost Plugin.NET page&lt;/a&gt;. Follow a set of very simple instructions that I've outlined on the download page and you'll have your first plug-in in no time.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-5568789685288665592?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/5568789685288665592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=5568789685288665592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/5568789685288665592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/5568789685288665592'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/03/if-youre-fan-of-sourceboost-ide-and.html' title=''/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GSYJ6cWJL8Y/Remy22RPGmI/AAAAAAAAAAM/l65JOAGc8fw/s72-c/plugin_running.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2981093359461362305.post-7029759236964868526</id><published>2007-03-02T16:44:00.000-05:00</published><updated>2007-03-02T16:46:02.706-05:00</updated><title type='text'>My first post</title><content type='html'>Hey! Everybody is welcome and, please, send me your thoughts about my posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2981093359461362305-7029759236964868526?l=igorshare.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorshare.blogspot.com/feeds/7029759236964868526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2981093359461362305&amp;postID=7029759236964868526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/7029759236964868526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2981093359461362305/posts/default/7029759236964868526'/><link rel='alternate' type='text/html' href='http://igorshare.blogspot.com/2007/03/my-first-post.html' title='My first post'/><author><name>Igor</name><uri>http://www.blogger.com/profile/01540135630353343587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
