<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Avivo Tech Blog &#187; microsoft</title>
	<atom:link href="http://tech.avivo.si/tag/microsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.avivo.si</link>
	<description>Solving problems</description>
	<lastBuildDate>Tue, 24 Jan 2012 14:46:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Get all project files from Visual Source Safe for a given date</title>
		<link>http://tech.avivo.si/2011/08/get-all-project-files-from-visual-source-safe-for-given-date/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=get-all-project-files-from-visual-source-safe-for-given-date</link>
		<comments>http://tech.avivo.si/2011/08/get-all-project-files-from-visual-source-safe-for-given-date/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 11:52:03 +0000</pubDate>
		<dc:creator>Avivo</dc:creator>
				<category><![CDATA[Programming Techniques]]></category>
		<category><![CDATA[System administration]]></category>
		<category><![CDATA[get all projects files from visual source safe for a given date]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[microsoft visual source safe]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[visual source safe]]></category>
		<category><![CDATA[vss]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=1362</guid>
		<description><![CDATA[If you are developing some application and use Visual Source Safe as version control software then you probably needed (at least one time) to retrieve all files from your project for specific day from the past. Visual Source Safe does not allow you to do this from its GUI but there is a DOS command [...]]]></description>
			<content:encoded><![CDATA[<p>If you are developing some application and use Visual Source Safe as version control software then you probably needed (at least one time) to retrieve all files from your project for specific day from the past.<br />
Visual Source Safe does not allow you to do this from its GUI but there is a DOS command that can help you.</p>
<p>To use the command-line, you must set the Environment Variable for <strong>SSDIR</strong> to the location of your working SourceSafe database, such as <strong>\\Dev1\VSS</strong> where Dev1 is the name of the server and VSS is the name of the share where the database is located. You may also need to add ss.exe path to your <strong>PATH </strong>variable &#8211; it is usually in folder: <strong>c:\Program Files (x86)\Microsoft Visual SourceSafe\</strong></p>
<p>This is the command:</p>
<div style="margin:20px 0;">
<pre>ss Get "$/your_vss_folder" -R -Vd15-03-2009;2:00a</pre>
</div>
<p>or just without an hour</p>
<div style="margin:20px 0;">
<pre>ss Get "$/your_vss_folder" -R -Vd15-03-2009</pre>
</div>
<ul>
<li>First parameter is folder under your Visual Source Safe project</li>
<li>-R means to get all files recursively</li>
<li>-V means date and in this example we get all files for 15.3.2009</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2011/08/get-all-project-files-from-visual-source-safe-for-given-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to block Remote IP address (hacker attack) on Windows 2008 Server?</title>
		<link>http://tech.avivo.si/2011/04/how-to-block-remote-ip-address-hacker-attack-on-windows-2008-server/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-block-remote-ip-address-hacker-attack-on-windows-2008-server</link>
		<comments>http://tech.avivo.si/2011/04/how-to-block-remote-ip-address-hacker-attack-on-windows-2008-server/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 10:44:13 +0000</pubDate>
		<dc:creator>Avivo</dc:creator>
				<category><![CDATA[System administration]]></category>
		<category><![CDATA[attack]]></category>
		<category><![CDATA[block intruder]]></category>
		<category><![CDATA[block ip address on windows 2008 server]]></category>
		<category><![CDATA[block remote ip]]></category>
		<category><![CDATA[dos attack]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[prevent hacker attack]]></category>
		<category><![CDATA[protect your server]]></category>
		<category><![CDATA[windows 2008 server]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=1277</guid>
		<description><![CDATA[Block IP address with Windows Firewall 2008 This procedure helped us when someone wanted to hack our server (taken from original post). If you ever feel that someone may be trying to break into your server or know an IP address that you want to block from accessing your server there is a built in [...]]]></description>
			<content:encoded><![CDATA[<h2>Block IP address with Windows Firewall 2008</h2>
<p>This procedure helped us when someone wanted to hack our server (taken from original <a href="https://support.gearhost.com/KB/a520/block-ip-address-with-windows-firewall-2008.aspx" target="_blank">post</a>). If you ever feel that someone may be trying to break into your server or know an IP address that you want to block from accessing your server there is a built in firewall on all of our 2008 DDS servers. You can use this firewall to block either a range of IP addresses or a single address.</p>
<ol>
<li>Log into your server via RDP.</li>
<li>Click on <strong>start &gt; administrative tools &gt; windows firewall with advanced security</strong></li>
<li>On the left side of the firewall window click on the <strong>inbound rules</strong> option.</li>
<li>On the right side of the screen click on <strong>New Rule</strong>.</li>
<li>Click on the <strong>custom radio button</strong> and then click <strong>next</strong>.</li>
<li>Make sure the <strong>All programs radio is selected</strong> then click <strong>next</strong>.</li>
<li>On the protocol and ports options <strong>leave everything</strong> at its defaults and click <strong>next</strong>.</li>
<li>On the scope screen you will see two boxes the top one is for local IP addresses and the bottom is for <strong>remote IP addresses</strong>. In this scenario we are trying to block an outside (remote) IP from accessing anything on the server so we will need to add the IP address to this section only as it will not be a local IP address.</li>
<li>Click on the <strong>radio </strong>that says <strong>these IP addresses</strong> in the remote section as shown below:<br />
<img class="alignnone size-full wp-image-1279" title="DDSipblockremoteradioshot" src="http://tech.avivo.si/wp-content/uploads/2011/04/DDSipblockremoteradioshot.png" alt="" width="555" height="249" /></li>
<li>Click on the <strong>Add </strong>button.</li>
<li>In the next window we will be adding a single IP address to the rule, you can also add an entire range at this point if you wish.<br />
<img class="alignnone size-full wp-image-1278" title="DDSipblockipinput" src="http://tech.avivo.si/wp-content/uploads/2011/04/DDSipblockipinput.png" alt="" width="344" height="370" /></li>
<li>Click <strong>ok</strong>, click <strong>next</strong>.</li>
<li>Make sure you select the<strong> Block the connection</strong> radio on the next screen and then click <strong>next</strong>.</li>
<li><strong>Leave all of the options</strong> on the next screen checked this will be sure to block the IP no matter the connection they are trying to use. Click <strong>next</strong>.</li>
<li><strong>Name the rule</strong> on the next screen something you can remember in case you wish to remove or edit it in the future. Click <strong>finish </strong>and thats it</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2011/04/how-to-block-remote-ip-address-hacker-attack-on-windows-2008-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to copy validation message from one element to another in ASP.NET MVC 2?</title>
		<link>http://tech.avivo.si/2011/04/how-to-copy-validation-message-from-one-element-to-another-in-asp-net-mvc-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-copy-validation-message-from-one-element-to-another-in-asp-net-mvc-2</link>
		<comments>http://tech.avivo.si/2011/04/how-to-copy-validation-message-from-one-element-to-another-in-asp-net-mvc-2/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 14:47:58 +0000</pubDate>
		<dc:creator>Avivo</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Programming Techniques]]></category>
		<category><![CDATA[copy validation message]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mvc 2]]></category>
		<category><![CDATA[validation in mvc 2]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=1271</guid>
		<description><![CDATA[Just create an extension to ModelStateDictionary like this: using System; using System.Collections.Generic; using System.Data; using System.Text; using System.Web.Mvc; namespace Avivo.Web.Common { public static class ModelStateDictionaryExtensions { /// &#60;summary&#62; /// Copy validation message from one field to another /// &#60;/summary&#62; /// &#60;param name="modelState"&#62;model state&#60;/param&#62; /// &#60;param name="source"&#62;field to copy from&#60;/param&#62; /// &#60;param name="target"&#62;field to copy to&#60;/param&#62; [...]]]></description>
			<content:encoded><![CDATA[<div style="margin-bottom:30px;">Just create an extension to <strong>ModelStateDictionary </strong>like this:</div>
<pre class="csharp">
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using System.Web.Mvc;

namespace Avivo.Web.Common
{
  public static class ModelStateDictionaryExtensions
  {
    /// &lt;summary&gt;
    /// Copy validation message from one field to another
    /// &lt;/summary&gt;
    /// &lt;param name="modelState"&gt;model state&lt;/param&gt;
    /// &lt;param name="source"&gt;field to copy from&lt;/param&gt;
    /// &lt;param name="target"&gt;field to copy to&lt;/param&gt;
    public static void CopyMessage(this ModelStateDictionary modelState, string source,
      string target)
    {
      if (modelState.ContainsKey(source) &#038;&#038; modelState.Errors.Count &gt; 0)
      {
        modelState.AddModelError(target, modelState.Errors[0].ErrorMessage);
      }
    }
  }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2011/04/how-to-copy-validation-message-from-one-element-to-another-in-asp-net-mvc-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight: Equidistant items in a stack panel</title>
		<link>http://tech.avivo.si/2011/03/silverlight-xaml-equidistant-items-in-a-stack-panel/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=silverlight-xaml-equidistant-items-in-a-stack-panel</link>
		<comments>http://tech.avivo.si/2011/03/silverlight-xaml-equidistant-items-in-a-stack-panel/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 13:00:28 +0000</pubDate>
		<dc:creator>developer</dc:creator>
				<category><![CDATA[Programming Techniques]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Silverlight/WPF]]></category>
		<category><![CDATA[axis]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[coordinates]]></category>
		<category><![CDATA[equidistant]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[stackpanel]]></category>
		<category><![CDATA[wpf]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=1164</guid>
		<description><![CDATA[This post describes how to align items in a container so the two neighbour items are always aligned with equal distance. Solution should be flexible, meaning that when items are changed or when container is resized items should keep equal distance in between. Reader should have some basic knowledge about C# and XAML for Silverlight. [...]]]></description>
			<content:encoded><![CDATA[<p>This post describes how to align items in a container so the two neighbour items are always aligned with equal distance. Solution should be flexible, meaning that when items are changed or when container is resized items should keep equal distance in between. Reader should have some basic knowledge about C# and XAML for Silverlight.</p>
<h2>Ideas</h2>
<ul>
<li>using Canvas and positioning items with <strong>absolute coordinates</strong> &#8211; items are always fixed, coordinates need to be calculated, so it is the least flexible approach, no</li>
<li>using <strong>StackPanel</strong> with items that have margin &#8211; margins need to be recalculated when an item is added or removed or when container is resized, maybe</li>
<li>using Grid with <strong>predefined rows and columns</strong> &#8211; notice <em>predefined</em>, means less flexibility, but offers equal size rows/columns, maybe</li>
<li>using a <strong>custom control</strong> &#8211; making Grid more dynamic but extending number of rows/columns when items are added, yes</li>
</ul>
<h2>Custom Control: EqualDistanceStackPanel</h2>
<p>As written before, custom control should extend Grid to become more flexible</p>
<pre style="background: #eeeeee; padding: 15px;">public class EqualDistanceStackPanel : Grid
{
}</pre>
<p>&nbsp;</p>
<p><em>EqualDistanceStackPanel</em> should implement <em>ItemsSource</em> and <em>ItemTemplate</em> just like <em><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol%28v=vs.95%29.aspx" target="_blank">ItemsControl</a></em></p>
<pre style="background: #eeeeee; padding: 15px;">#region ItemsSource
public IEnumerable ItemsSource
{
  get { return (IEnumerable)GetValue(ItemsSourceProperty); }
  set { SetValue(ItemsSourceProperty, value); }
}

public static readonly DependencyProperty ItemsSourceProperty =
  DependencyProperty.Register("ItemsSource", typeof(IEnumerable),
  typeof(EqualDistanceStackPanel), new PropertyMetadata(ItemsSourceChanged));

private static void ItemsSourceChanged(DependencyObject d,
  DependencyPropertyChangedEventArgs e)
{
  var panel = d as EqualDistanceStackPanel;
  if (panel != null)
  {
    if (e.OldValue != null)
    {
      panel.ClearItems();
    }
    if (e.NewValue != null)
    {
      panel.BindItems(e.NewValue as IEnumerable);
    }
  }
}
#endregion

public DataTemplate ItemTemplate
{
  get;
  set;
}</pre>
<p>&nbsp;</p>
<p><em>ClearItems</em> method deletes all previous elements from the panel and <em>BindItems</em> attaches fresh controls from item template.</p>
<pre style="background: #eeeeee; padding: 15px;">protected void ClearItems()
{
  this.Children.Clear();
}

protected void BindItems(IEnumerable items)
{
  if (this.ItemTemplate == null)
  {
    return;
  }

  //Create and attach children
  foreach (var item in items)
  {
    var element = this.ItemTemplate.LoadContent() as FrameworkElement;
    element.DataContext = item;
    this.Children.Add(element);
  }

  //Realign in container
  Refresh();
}</pre>
<p>&nbsp;</p>
<p>How should the custom control look in XAML? <em>EqualDistanceStackPanel</em> gets a collection of items, e.g. of UIElement type.</p>
<pre style="background: #eeeeee; padding: 15px;">&lt;Grid xmlns:c="clr-namespace:Avivo.Controls"&gt;
  &lt;c:EqualDistanceStackPanel ItemsSource="{Binding Items}" Orientation="Vertical"&gt;
    &lt;c:EqualDistanceStackPanel.ItemTemplate&gt;
      &lt;DataTemplate&gt;
        &lt;ContentPresenter Content="{Binding}" /&gt;
      &lt;/DataTemplate&gt;
    &lt;/c:EqualDistanceStackPanel.ItemTemplate&gt;
  &lt;/c:EqualDistanceStackPanel&gt;
&lt;/Grid&gt;</pre>
<p>&nbsp;</p>
<h2>Example</h2>
<p>Ruler has been made to demonstrate the usage of EqualDistanceStackPanel. Numbers are bound to the control and ticks are bound to another control using the same binding collection. Left image represents container height 300px and right when resized to 460px &#8211; elements are automatically aligned with equal distance.<br />
<img class="alignnone size-full wp-image-1177" title="Example of a ruler" src="http://tech.avivo.si/wp-content/uploads/2011/01/equidistant-stack-panel.jpg" alt="" width="414" height="734" /></p>
<p><a href="http://labs.avivo.si/equidistant/" target="_blank">Try demo</a>, resize browser to see the effect. This control has been originally developed for custom chart axes in <a href="http://qrcode.good-survey.com/" target="_blank">QR Code Statistics</a> application. <em>EqualDistanceStackPanel</em> control is lightweight, works for the statistics application and should be improved for general usage.</p>
<h2>Source code</h2>
<ul>
<li><a href="http://labs.avivo.si/equidistant/EqualDistanceStackPanel.zip">Source code</a>, Visual Studio sample Silverlight and web project</li>
</ul>
<h2>References</h2>
<ul>
<li><a href="http://chris.59north.com/post/Using-DataTemplates-in-custom-controls.aspx" target="_blank">Using DataTemplates in custom controls</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2011/03/silverlight-xaml-equidistant-items-in-a-stack-panel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to show compiler errors in ASP.NET MVC Views?</title>
		<link>http://tech.avivo.si/2011/02/how-to-show-compiler-errors-in-asp-net-mvc-views/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-show-compiler-errors-in-asp-net-mvc-views</link>
		<comments>http://tech.avivo.si/2011/02/how-to-show-compiler-errors-in-asp-net-mvc-views/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 15:21:13 +0000</pubDate>
		<dc:creator>Avivo</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[ascx]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[aspx]]></category>
		<category><![CDATA[compiler errors in asp.net mvc views]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[show error in aspx or ascx]]></category>
		<category><![CDATA[view]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=1195</guid>
		<description><![CDATA[Just open your csproj project file in notepad and find MvcBuildViews and set value to True. &#60;MvcBuildViews&#62;true&#60;/MvcBuildViews&#62;]]></description>
			<content:encoded><![CDATA[<p>Just open your <strong>csproj </strong>project file in notepad and find <strong>MvcBuildViews </strong>and set value to <strong>True</strong>.</p>
<pre class=xml>
&lt;MvcBuildViews&gt;true&lt;/MvcBuildViews&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2011/02/how-to-show-compiler-errors-in-asp-net-mvc-views/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to create custom error 404 in ASP.NET MVC</title>
		<link>http://tech.avivo.si/2011/01/how-to-show-or-create-custom-404-error-page-in-asp-net-mvc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-show-or-create-custom-404-error-page-in-asp-net-mvc</link>
		<comments>http://tech.avivo.si/2011/01/how-to-show-or-create-custom-404-error-page-in-asp-net-mvc/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 00:39:04 +0000</pubDate>
		<dc:creator>Avivo</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[404 custom error page]]></category>
		<category><![CDATA[404 error]]></category>
		<category><![CDATA[custom 404 error page]]></category>
		<category><![CDATA[error page]]></category>
		<category><![CDATA[how to create custom 404 error page]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=1158</guid>
		<description><![CDATA[Introduction So, whenever an error occurs, you would like to show a custom 404 error page in ASP.NET MVC? This blog post describes how to techically handle and display error page effectively. Reader should have some basic knowledge of setting IIS and ASP .NET MVC project. Error page is displayed when something goes wrong. Page [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>So, whenever an error occurs, you would like to show a custom 404 error page in ASP.NET MVC? This blog post describes how to techically handle and display error page effectively. Reader should have some basic knowledge of setting IIS and ASP .NET MVC project.</p>
<p>Error page is displayed when something goes wrong. Page should inform user about what happened and what he or she should do next. Page should also inform bots, crawlers, spiders not to search any relevent content in there, e.g. Google won&#8217;t display error page as search result. This is handled with HTTP status code known as 404. There are also <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes">other HTTP status codes</a> for specific problems, e.g. for maintenance, for restricted access&#8230;</p>
<h2>Create action and view</h2>
<p>First, create a friendly page for user and set indicator for bots not to handle this page as obvious page. In this case &#8220;Main&#8221; controller with &#8220;Error&#8221; action. Note for IE 5,6: error page should have content larger than 512 bytes otherwise IE will display its own content.</p>
<pre class=csharp>
public class MainController
{
  public ActionResult Error()
  {
    //404 - Tell search engine not to display this page on search results
    Response.StatusCode = 404;
    Response.StatusDescription = "Not Found";
    return View();
  }
}
</pre>
<h2>Register route that eats anything</h2>
<p>Open Global.asax(.cs) in the MVC project and register error page route. Rule should be designed to capture all requests that do not fit in previous route rules. Simple solution: <tt>{*anything}</tt> rule captures any path including slashes, e.g. <em>/shop/mushrooms-123</em>.</p>
<pre class=csharp>
//Somewhere in Global.asax
public static void RegisterRoutes(RouteCollection routes)
{
  //Registered routes
  //...

  //Error route should be registered last
  routes.MapRoute
  (
    "ErrorPage",
    "{*anything}",
    new { controller = "Main", action = "Error" }
  );
}
</pre>
<p>
<strong>Advantage</strong>: no redirects, requested URL string should be kept in browser&#8217;s location bar. For example, when<br />
user requests <em>/shop/mushrooms-123</em> in browser the error page content will be display but the URL will remain original.<br />
The opposite of redirecting and displaying <em>/error</em> in location bar.</p>
<h2>How to handle other errors?</h2>
<p>Other errors in ASP .NET can be handled in <tt>Application_Error</tt> method in <tt>Global.asax</tt>.</p>
<pre class=csharp>
//Somewhere in Global.asax
protected void Application_Error()
{
  //Useful for debugging to get error details
  Exception ex = Server.GetLastError();

  //Redirect to error page
  //Can be "/Main/Error" or "/error" or other route as "ErrorPage" rule eats all
  Response.Redirect(Request.ApplicationPath + "/error/500");
}
</pre>
<h2>Configuration in IIS 7.5</h2>
<p>1. Open IIS Manager. Shortcut: click Start in Windows, type &#8220;inetmgr&#8221; in search box then press Enter.<br />
2. Click on a website on the left side.<br />
3. Select Error Pages on the right side.<br />
4. Configure scenarios for specific status codes, as displayed on screenshots.</p>
<p><a href="http://tech.avivo.si/2011/01/how-to-show-or-create-custom-404-error-page-in-asp-net-mvc/error-page-1/" rel="attachment wp-att-1351"><img src="http://tech.avivo.si/wp-content/uploads/2011/01/error-page-1-600x277.png" alt="" title="Configure Error Pages in IIS (1)" width="600" height="277" class="alignnone size-medium wp-image-1351" /></a></p>
<p><a href="http://tech.avivo.si/2011/01/how-to-show-or-create-custom-404-error-page-in-asp-net-mvc/error-page-2/" rel="attachment wp-att-1352"><img src="http://tech.avivo.si/wp-content/uploads/2011/01/error-page-2-600x277.png" alt="" title="Configure Error Pages in IIS (2)" width="600" height="277" class="alignnone size-medium wp-image-1352" /></a></p>
<h2>Troubleshooting</h2>
<p>Q: Browser displays system error page when I expect custom error page.<br />
A: Configure Error Pages for the website in IIS. Error Pages may differ between websites.</p>
<p>Q: Error handling is defined in web.config but does not work in Windows Server 2008.<br />
A: Try to edit Error Pages directly in IIS (IIS Manager -> Sites -> (website name) -> Error Pages)</p>
<p>Q: Status code 200 OK displays a custom error page but 404 Not Found displays generic IIS error page (yellow box with techical message)<br />
A: Configure Error Pages (see above). &#8220;customErrors&#8221; in web.config may not work as expected.</p>
<p>Q: Can I keep status 200 OK to display error page?<br />
A: It will do the job for users who visually see and understand the content, but may not work for bots (i.e. displaying error page in search result)</p>
<p><!--Simple as that, just register this route (and set right action in your controller) and voila!--><br />
<!--And if you want to catch also <strong>Compilation Errors</strong> (yellow screens with error messages) then you can catch all exceptions in your Global.asax.cs like this:&#8211;></p>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2011/01/how-to-show-or-create-custom-404-error-page-in-asp-net-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>String or binary data would be truncated. The statement has been terminated.</title>
		<link>http://tech.avivo.si/2010/12/string-or-binary-data-would-be-truncated-the-statement-has-been-terminated/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=string-or-binary-data-would-be-truncated-the-statement-has-been-terminated</link>
		<comments>http://tech.avivo.si/2010/12/string-or-binary-data-would-be-truncated-the-statement-has-been-terminated/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 12:33:38 +0000</pubDate>
		<dc:creator>Avivo</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ms sql server]]></category>
		<category><![CDATA[store procedures]]></category>
		<category><![CDATA[String or binary data would be truncated]]></category>
		<category><![CDATA[string would be truncated]]></category>
		<category><![CDATA[t-sql]]></category>
		<category><![CDATA[The statement has been terminated]]></category>
		<category><![CDATA[transact sql]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=1082</guid>
		<description><![CDATA[If this is not a problem for you that some long string will be truncated and you don&#8217;t want SQL to send you this error just use at the beginning of your StoreProcedure this statement: SET ANSI_WARNINGS OFF]]></description>
			<content:encoded><![CDATA[<p>If this is not a problem for you that some long string will be truncated and you don&#8217;t want SQL to send you this error just use at the beginning of your StoreProcedure this statement:</p>
<pre class=sql>
SET ANSI_WARNINGS OFF
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2010/12/string-or-binary-data-would-be-truncated-the-statement-has-been-terminated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The dark side of Android phone development &#8211; part 2</title>
		<link>http://tech.avivo.si/2010/12/the-dark-side-of-android-phone-development-part-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-dark-side-of-android-phone-development-part-2</link>
		<comments>http://tech.avivo.si/2010/12/the-dark-side-of-android-phone-development-part-2/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 22:12:05 +0000</pubDate>
		<dc:creator>Avivo</dc:creator>
				<category><![CDATA[Mobile development]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Android hacks]]></category>
		<category><![CDATA[android mobile development]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[samsung galaxy S]]></category>
		<category><![CDATA[symbian]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=683</guid>
		<description><![CDATA[About this blog post Unlike the Official Google articles that are mostly praising Android as Mobile platform, this article covers practical development experiences with Android platform. Authors of this article have prior practical experiences in web and desktop enterprise software development and have recently developed few Java applications for Android 2.1-update1. Content has been written [...]]]></description>
			<content:encoded><![CDATA[<table bgcolor="#efeded">
<tbody>
<tr>
<td style="padding: 7px; padding-bottom: 0px; font-family: Georgia; font-size: 15px; line-height: 21px;"><strong>About this blog post</strong><br />
Unlike the Official Google articles that are mostly praising Android as Mobile platform, this article covers practical development experiences with Android platform.</p>
<p>Authors of this article have prior practical experiences in web and desktop enterprise software development and have recently developed few Java applications for Android 2.1-update1. Content has been written in Autumn 2010, statements in the article are referenced to that time and to the testing on Samsung Galaxy S i9000 phone.</td>
</tr>
</tbody>
</table>
<div style="padding-top: 20px;">
<h2>Android Development</h2>
</div>
<p>As we pointed out in this blog title, we just wanted to make an awesome Android phone application and we wanted to find out how much effort does Android OS really take for a development. Users don&#8217;t care about this and web press don&#8217;t care much as long Apps are great and working and all the hard work by developers isn&#8217;t mentioned a lot, except at dev blogs.</p>
<p><strong>How Android is working</strong><br />
Android market is the main source from which users download mobile Apps to their phones. First thing that we noticed is that Google, the grandmaster of web search engines, doesn&#8217;t even have search feature on Android Market website so you can not find mobile App that you are looking for. By <a href="http://www.androlib.com/appstats.aspx" target="_blank">statistics</a> there is only a small amount of payable Apps and their price is around a dollar ($1) and most of the applications on the Market are free.</p>
<p><strong>Web view of Android market v iPhone App store</strong></p>
<p><a href="http://www.android.com/market/" target="_blank"><img class="alignnone size-full wp-image-890" title="Go to Android Market" src="http://tech.avivo.si/wp-content/uploads/2010/12/android-market-2.jpg" alt="" width="318" height="269" /></a><a href="http://www.apple.com/iphone/apps-for-iphone/"><img class="alignnone size-full wp-image-891" title="Go to iPhone market" src="http://tech.avivo.si/wp-content/uploads/2010/12/iphone-market-2.jpg" alt="" width="340" height="269" /></a></p>
<p>Google definitely plays whole different game on mobile space. Knock-outing all other players with free OS for all handset Vendors it gained mass and popularity and is trying to secure future dominance over mobile search and advertisement, Apps. This isn&#8217;t such a bad strategy after all if you think that predictions for Mobile market are <a href="http://www.readwriteweb.com/archives/mobile_app_marketplace_175_billion_by_2012.php" target="_blank">$17.5 billion $ by 2012</a>.</p>
<p>Developers are the most collateral damage inside Android value system. They are trying to make good Apps and it is a shame that Google don&#8217;t care to promote developers properly with better Market and it looks like Google is the only one who gains profit out of this relationship. Is it also true that Google has been lucky, or to say it better, just on time with Android launch and become the only real competitor to iPhone, which is sold by only one vendor &#8211; Apple.</p>
<p>On the contrary, Android, that has open approach, allowed many different vendor carriers to get into smart phone market (HTC, SAMSUNG, &#8230;). Taking advantage of growing Apps market and advertising Android platform Google is collecting large statistic numbers for variety of marketing use. At the same time public relationship (mostly fans) has done a great job hiding the background of so called always beta Android platform.</p>
<p><!-- Android Blog: What do you think about Android Market?  --><br />
<!--<script type="text/javascript" src="http://www.good-survey.com/poll/m85fc07ew67s.js"></script>--></p>
<p><strong>Why Android is not very friendly for developers and can improve a lot in the future?</strong></p>
<ol>
<li><strong>No earnings for developers</strong> Developers have less chances to earn money on the market since the users expect to download FREE applications - good for users, bad for developers. In the long term is also bad for users because they will get lower quality products. Here are not counted enterprise solutions for real clients.</li>
<li><strong>Market is not organized</strong> Market is huge, tens of thousands of Apps, lots of daily uploads with no quality control... Lots of free Apps are very poor and not very good and this means that is harder to find a quality product on Android market.  Consider how can normal user find your application?</li>
<li><strong>Bad API consistency</strong> Java in theory is a good idea, you should learn language, coded once and then run the code on different platforms and Android runs Java applications. Android platform have different features, like file structure, graphical interface, accessing hardware features, etc. So programmers make APIs and libraries to simplify development, to avoid writing code for same functionality over and over again. Android API has like every other API issues with backward compatibility, extensibility, maintainability... and backward compatibility is poor, applications written for 2.1 are not guaranteed to work on newer phones (2.2). Code does not necessarily compile for latest version because Google has renamed a method or a constant (e.g. frequently used FILL_PARENT renamed to MATCH_PARENT).</li>
<p><strong>API bugs</strong> API documentation is sometimes inaccurate and outdated, for example saying "<span style="text-decoration: underline;"><a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html#getSupportedPictureSizes%28%29" target="_blank">this method will always return a list with at least one element</a></span>" but what it does is exactly the opposite - returning null.  As Android has many documentation issues phone manufacturers interpret documentation in their own way, not following the documentation strictly (e.g. random phone resolutions). Manufacturers improvize to gain some hardware features, like accessing the secondary camera or secondary SD card (e.g. originally /sdcard is for external storage but on Samsung Galaxy S /sdcard is used for internal, /sdcard/sd for external). <strong> </strong> <strong> </strong>Developers always have to look for work-arounds, trying to write some  logic code at first that it does not work, trying the other way and it  does not work either, trying for the third way when it finally works. Dealing with that kind of work-arounds takes time and nerves.  <strong>In long-term this issues may result in non-consistent APIs, different for each phone model, as it was back in J2ME days.</strong> <strong> </strong></p>
<li><strong>Other Android disadvantages we experienced:</strong>
<ul>
<li>Not so easy customizable (you can change colour of a button but cannot change the transition animation between activities)</li>
<li>Emulator is slow, no camera support</li>
<li>Sometimes during development testing Phone Galaxy S freezed and the only way to wake up the phone was to take battery out.</li>
<li>Not as friendly to use as iPhone, e.g. you have to deal with USB drivers. Not as fast as iPhone.</li>
</ul>
</li>
</ol>
<p><strong>Conclusion:</strong> Android solutions are short-terms for developer, patch it and "works now" and API design is really a large downside for a mass consumer product as it is Android.<br />
<!-- Android Blog: If you have experience in mobile development please rate and compare overall development cycle?  --><br />
<!--<script src="http://www.good-survey.com/poll/m85fc07eb62k.js" type="text/javascript"></script>--></p>
<p><strong>Why Android is also not perfect for final users?</strong></p>
<ol>
<li><strong>Bound to Google</strong> Android phone user needs GMail account to download an application from the market.  Once a user logs in with GMail account and downloads at least one application it can no longer remove the account from the phone without resetting the phone to the factory defaults. With default settings open Google has chance to always track an account for controlling downloads and tracking IP and GPS location of the phone (default settings on Samsung Galaxy S phone).</li>
<li><strong>Hacks, viruses, security, privacy issue</strong> on Android phones can be exploited easily with numerous hacks to unlock the phone (e.g. by uploading custom firmware ROM) or bypass security restrictions (root access hacks). Even with the brand new phone<strong> you can type *#*#...#</strong> sort of <a href="http://forum.samdroid.net/f38/google-android-hidden-secret-codes-hacks-tricks-2261/" target="_blank">secret codes</a> to access the hidden or debugging features on Android phone.  For access  to for hidden GPS settings type: <strong>*#*#1472365#*#*</strong> on Samsung Galaxy S phone).
<div style="padding: 8px 0;"><img class="alignnone size-medium wp-image-709" title="android-hack-privacy-hidden-settings" src="http://tech.avivo.si/wp-content/uploads/2010/11/android-hack-privacy-hidden-settings-600x328.jpg" alt="" width="600" height="328" /></div>
<div style="padding-top: 8px;">Pre-installed system applications can enable Wi-Fi, Bluetooth, camera, browse contacts without user ever knowing or agreeing. In our case we get unwanted silent imports of GMail messages and contacts just by logging with GMail account on the Android market.</div>
</li>
<li><strong>Beta quality products for users</strong> Nowadays Mobile phone market is already huge and touch screens are very popular and competitors are fighting for every percent on the market. To be a step before or to catch the competitors Google needs to provide Android products fast. Quick releases mean less testing and buggy features, resulting in fair-quality beta products. Samsung Galaxy S is at the time of writing the hottest Android phone on the market  and many are comparing as <a href="http://www.tomshardware.com/news/iPhone-4-Galaxy-S-Android-Eclair-Google,10934.html" target="_blank">Android iPhone</a>, but guess what: GPS does not even work  correctly with the initial firmware. Sometimes touch screen freezes and you cannot turn off or reset the phone because "turn off" is triggered with a touch (there is always a way to take battery out and insert it again).<br />
 To emphasize this test with Galaxy S: <strong>Android</strong> <strong>software</strong> is currently the main problem, not hardware. Software could be a whole lot better, hardware is at it's optimum.</li>
</ol>
<p><!-- Android Blog: What do you think of Android OS? --><br />
<!--<script src="http://www.good-survey.com/poll/m85fc07ed57o.js" type="text/javascript"></script>--></p>
<p><strong>What are the conclusion sorted by the facts:</strong></p>
<ol>
<li>Users expect free apps resulting less $ for developers</li>
<li>Fairly compatible platform versions</li>
<li>Android market is big with lot of toy apps and few very useful everyday applications</li>
<li>Privacy issues: Google holds you and you can not escape</li>
<li>Questionable security, easily exploited platform (hacks)</li>
<li>Constant searching for work-arounds during development</li>
<li>Phone manufacturers use API in its own interpretation</li>
<li>Fair quality software, is it a bug or feature?</li>
</ol>
<div style="padding-top: 20px;">
<h2>Final words</h2>
<p>In the terms of software and UX we have to admit that iPhone is currently much better then Android, who is trying to catch up, resulting in quick decisions, bugs, and lower quality product. Android is improving and we can soon expect  it will be a stable platform (1 year) and because is »open« platform compare to »closed« iPhone system has lot of potential to overcome iPhone. There is large amount of phone manufacturers that produce Android phones with free Android OS opposite to iPhone which is under Apple control. Very important fact is that number of Android  developers are growing more rapidly than developers for iPhone and also on the market Android phones are selling faster then iPhone (USA example). Android is definitely a step forward compared to J2ME but now it looks that it is going to the same problematic direction (resolutions, different hardware, compatibility).</p>
<p>What do you think? Share your thoughts in the comments.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2010/12/the-dark-side-of-android-phone-development-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to create a SSL certificate and bind it to IIS 7.0</title>
		<link>http://tech.avivo.si/2010/11/how-to-create-a-ssl-certificate-and-bind-it-to-iis-7-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-create-a-ssl-certificate-and-bind-it-to-iis-7-0</link>
		<comments>http://tech.avivo.si/2010/11/how-to-create-a-ssl-certificate-and-bind-it-to-iis-7-0/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 15:40:41 +0000</pubDate>
		<dc:creator>developer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[binding https in iis problem]]></category>
		<category><![CDATA[certificates]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[iis 7 ssl certificates problem]]></category>
		<category><![CDATA[iis https binder]]></category>
		<category><![CDATA[iis https problem]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=829</guid>
		<description><![CDATA[This article describes how to create a SSL certificate using OpenSSL and how to setup a HTTPS connection on IIS 7.0 with the created certificate. IIS7 can import .pfx certificates. Avoid tutorials that say &#8216;-des3&#8242; because DES3 is outdated (not secured as others), use RSA instead Certificate creation using OpenSSL Download OpenSSL application for Windows: [...]]]></description>
			<content:encoded><![CDATA[<p>This article describes how to create a SSL certificate using OpenSSL and how to setup a HTTPS connection on IIS 7.0 with the created certificate.</p>
<p>IIS7 can import <strong>.pfx</strong> certificates.<br />
Avoid tutorials that say &#8216;-des3&#8242; because DES3 is outdated (not secured as others), use RSA instead</p>
<h3><strong>Certificate creation using OpenSSL</strong></h3>
<p>Download OpenSSL application for Windows:<br />
<a title="OpenSSL certificates for Windows" href="http://www.openssl.org/related/binaries.html" target="_blank">http://www.openssl.org/related/binaries.html</a></p>
<p>on Ubuntu:<br />
<strong>&gt; sudo apt-get install openssl</strong></p>
<p>Generate a private key and certificate using the command:<br />
<strong>&gt; openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout cert.pem -out cert.pem<br />
Country Name (2 letter code) [AU]:SI<br />
State or Province Name (full name) [Some-State]:Slovenia<br />
Locality Name (eg, city) []:Ljubljana<br />
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Avivo d.o.o.<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (eg, YOUR name) []:example.com<br />
Email Address []:info@example.com</strong></p>
<p>Convert to PKCS#12 (.pfx)<br />
<strong>&gt; openssl pkcs12 -export -out cert.pfx -in cert.pem -name &#8220;Certificate Friendly Name&#8221;</strong></p>
<p>You may have to enter a password several times for private key and generated certificate.<br />
<strong>cert.pfx</strong> file is created when the procedure is successfully completed.</p>
<p>Also be aware to enter domain name under &#8216;Common Name&#8217;</p>
<p><strong>Set-up HTTPS on IIS</strong><br />
Open IIS Manager (Start -&gt; Run -&gt; inetmgr). Click on the root tree node on the left side and select &#8216;Server Certificates&#8217; on the right side.</p>
<p><img class="alignnone size-full wp-image-831" title="IIS-root" src="http://tech.avivo.si/wp-content/uploads/2010/11/IIS-root.jpg" alt="" width="700" height="413" /></p>
<p>When you click on &#8216;Server Certificates&#8217; you can see  on the far right side. &#8216; under &#8216;Actions&#8217;  &#8216;Import&#8230;&#8217; Click on it.</p>
<p><img class="alignnone size-full wp-image-833" title="Import-SSL" src="http://tech.avivo.si/wp-content/uploads/2010/11/Import-SSL.jpg" alt="" width="700" height="233" /></p>
<p>Browse for the generated &#8216;your_cert.pfx&#8217; file from previous step. Enter the password and click OK.</p>
<p><img class="alignnone size-full wp-image-835" title="Importing-SSL" src="http://tech.avivo.si/wp-content/uploads/2010/11/Importing-SSL.jpg" alt="" width="374" height="269" /><br />
Certificate now appears on the list.</p>
<p><img class="alignnone size-large wp-image-836" title="SSL-Imported" src="http://tech.avivo.si/wp-content/uploads/2010/11/SSL-Imported-700x184.jpg" alt="" width="700" height="184" /></p>
<p>Back to the IIS tree, right click on a web site and select &#8216;Edit Bindings&#8230;&#8217;</p>
<p><img class="alignnone size-full wp-image-837" title="ChooseSSL" src="http://tech.avivo.si/wp-content/uploads/2010/11/ChooseSSL.jpg" alt="" width="700" height="294" /></p>
<p>Click on &#8216;Add&#8230;&#8217; -&gt; Type = <strong>https </strong>and choose SSL certificate to your certificate</p>
<p><img class="alignnone size-full wp-image-838" title="SSL-add" src="http://tech.avivo.si/wp-content/uploads/2010/11/SSL-add.jpg" alt="" width="483" height="263" /></p>
<h3><strong>How to fix IIS problem with multiple certificates</strong></h3>
<p><strong>Problem:</strong></p>
<p>On IIS 7 that you can not create more than one HTTPS binding, even though you have more then one SSL certificate and you need HTTPS binding on different hosted websites. If you have one IP address you can bind only one SSL to chosen website. This small application can fix this.</p>
<p><strong>Solution:</strong></p>
<p>Download our mini utility from Codeplex: <a href="http://iishttpsbinder.codeplex.com/" target="_blank">http://iishttpsbinder.codeplex.com/</a></p>
<p><strong>How to use:</strong></p>
<p><strong><img class="alignnone size-full wp-image-841" title="iisman-screenshot" src="http://tech.avivo.si/wp-content/uploads/2010/11/iisman-screenshot.jpg" alt="" width="677" height="330" /><br />
</strong></p>
<p><strong>References:</strong><br />
<a href="http://forums.iis.net/t/1117559.aspx" target="_blank">http://forums.iis.net/t/1117559.aspx</a><br />
<a href="https://www.iis.net/ConfigReference/system.applicationHost/sites/site/bindings" target="_blank">https://www.iis.net/ConfigReference/system.applicationHost/sites/site/bindings</a></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">Avivo d.o.o.</div>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2010/11/how-to-create-a-ssl-certificate-and-bind-it-to-iis-7-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remove items from List using LINQ</title>
		<link>http://tech.avivo.si/2010/11/remove-items-from-list-using-linq/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=remove-items-from-list-using-linq</link>
		<comments>http://tech.avivo.si/2010/11/remove-items-from-list-using-linq/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 18:13:52 +0000</pubDate>
		<dc:creator>Avivo</dc:creator>
				<category><![CDATA[Programming Techniques]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[collections]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ms sql server]]></category>
		<category><![CDATA[Remove items from list using linq]]></category>
		<category><![CDATA[remove items in runtime]]></category>

		<guid isPermaLink="false">http://tech.avivo.si/?p=821</guid>
		<description><![CDATA[Typical scenario: you got your list of items from database but you want to remove some items from it (items that match additional criterion). It is simple as this (i.e. assuming that your list is named yourItems): yourItems.RemoveAll(x => x.ItemPropertyId != null);]]></description>
			<content:encoded><![CDATA[<p>Typical scenario: you got your list of items from database but you want to remove some items from it (items that match additional criterion).</p>
<p>It is simple as this (i.e. assuming that your list is named <strong>yourItems</strong>):</p>
<pre class=csharp>
yourItems.RemoveAll(x => x.ItemPropertyId != null);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tech.avivo.si/2010/11/remove-items-from-list-using-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

