<?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>Waidner IT Solutions</title>
	<atom:link href="http://waidner-itsolutions.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://waidner-itsolutions.de</link>
	<description>Creating smarter concepts.</description>
	<lastBuildDate>Sat, 12 May 2012 13:33:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Lotus Domino: Löschmarkierungen und wieder auftauchende Dokumente</title>
		<link>http://waidner-itsolutions.de/2012/03/lotus-domino-loschmarkierungen-und-wieder-auftauchende-dokumente/</link>
		<comments>http://waidner-itsolutions.de/2012/03/lotus-domino-loschmarkierungen-und-wieder-auftauchende-dokumente/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 14:29:28 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Lotus Notes]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=412</guid>
		<description><![CDATA[Eine kleine Geschichte zweier Lotus Notes Benutzer und ihrer Daten. Herr User erzeugt sich eine lokale Replik einer Datenbank auf seinem Notebook. Herr User ist leider Chef und damit Gelegenheitsanwender, d.h. er braucht nur einmal im halben Jahr die Datenbank &#8230; <a href="http://waidner-itsolutions.de/2012/03/lotus-domino-loschmarkierungen-und-wieder-auftauchende-dokumente/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Eine kleine Geschichte zweier Lotus Notes Benutzer und ihrer Daten.</p>
<p>Herr User erzeugt sich eine lokale Replik einer Datenbank auf seinem Notebook. Herr User ist leider Chef und damit Gelegenheitsanwender, d.h. er braucht nur einmal im halben Jahr die Datenbank für ein paar Statistiken. Ansonsten wird auch nicht repliziert, da es ja zu viel Zeit kostet.</p>
<p>Frau Anwender ist regelmäßiger User der Anwendung, hat ebenfalls eine lokale Replik und arbeitet täglich damit. Mindestens 1x pro Tag wird repliziert. Im Zuge einer Aufräumaktion wird eines schönen Tages die Datenbank bereinigt, etliche Duplikate werden gelöscht. Die Datenqualität ist bestens, alles ist gut.</p>
<p>Ende des Jahres passiert das Unglück: Herr User braucht dringend die aktuellen Statistiken, schmeißt die Replikation an (&#8220;warum dauert das eigentlich immer so lange?&#8221;) und zieht eben den Report. Katastrophe, Einträge sind mehrfach vorhanden, völlig unbrauchbare Auswertung. Auch Frau Anwender trifft der Schlag, da auf einmal die ganze Aufräumaktion wieder hinfällig ist.</p>
<p>Was ist passiert? Notes hat eine unschöne Angewohnheit, die dazu führt, dass Löschmarkierungen entsorgt werden. In den Replikationsoptionen einer Anwendung findet sich eine scheinbar harmlose Option:</p>
<p><a href="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2012/03/Harmlose-Option.jpg"><img class="alignnone size-medium wp-image-413" title="Harmlose Option" src="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2012/03/Harmlose-Option-300x88.jpg" alt="" width="300" height="88" /></a></p>
<p>&#8220;Remove documents not modified in the last (days)&#8221; ist zwar auf 90 Tage gestellt, aber welcher Wahnsinnige aktiviert schon diese Option? Doof nur, dass Notes dies auch verwendet, um die Ablaufzeit von Löschmarkierungen zu ermitteln, und zwar <strong>egal, ob die Option aktiviert oder deaktiviert</strong> ist. Nach einem Drittel der eingestellten Zeit werden Löschmarkierungen (deletion stubs) entsorgt. Kann man <a href="http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.designer.domino.main.doc%2FH_REPLICATION_SETTINGS_THAT_LIMIT_THE_CONTENTS_OF_A_REPLICA_7276_STEPS.html" target="_blank">hier nachlesen</a>. Dies bedeutet für unser Beispiel, dass +/- 30 Tage nach der Aufräumaktion von Frau Anwender die Löschmarkierungen vom Server getilgt werden. Gibt es Repliken, wie die von Herrn User, die in dieser Zeit nicht repliziert haben, dann Pech: die Markierungen sind weg, die Dokumente dafür aber wieder da! Na Gratulation, da hat sich die IBM was feines ausgedacht.</p>
<p>Aber Rettung naht, es gibt nun PIRC (Purge Interval Replication Control). Wenn man einen 8.5.3er Server mit einem 8.5.3er Client paart, dann hat man eine neue Option auf der Replikationsseite:</p>
<p><a href="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2012/03/PIRC.jpg"><img class="alignnone size-medium wp-image-415" title="PIRC" src="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2012/03/PIRC-300x69.jpg" alt="" width="300" height="69" /></a></p>
<p>Was macht diese? Verhindern, dass alter Mist wieder in die Datenbank repliziert wird. Funktioniert es? Ja, aber es muss leider pro Server pro Replik aktiviert werden. Es gibt auch einen langen <a href="https://www-304.ibm.com/support/docview.wss?rs=899&amp;uid=swg21501675" target="_blank">Artikel, der alle Details erklärt</a>, und <a href="http://noteshexe.de/blog/?p=1612" target="_blank">einen Blogeintrag bei der Notes-Hexe</a>, aber die Fakten sind einfach:</p>
<p>Repliziert eine nicht-PIRC-Replik mit einer PIRC-Replik, landen nur die Dokumente in der Datenbank, die innerhalb des angezeigten Intervals modifiziert worden sind. Nebenwirkung: Wenn man lange nicht repliziert, werden sehr alte Änderungen der lokalen Replik möglicherweise nicht übertragen. Aber das kann man zum Glück durch einfaches neu abspeichern umgehen.</p>
<p>Kleiner Gag am Rande: In der Doku zu 8.5.3 findet man nichts, weil es diese nicht gibt, sondern immer noch die 8.5.1 Doku ausgeliefert wird. Profiarbeit!</p>
]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2012/03/lotus-domino-loschmarkierungen-und-wieder-auftauchende-dokumente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Softwarequalität durch Kundentests</title>
		<link>http://waidner-itsolutions.de/2012/01/softwarequalitat-durch-kundentests/</link>
		<comments>http://waidner-itsolutions.de/2012/01/softwarequalitat-durch-kundentests/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 16:24:07 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Testmanagement]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=405</guid>
		<description><![CDATA[Es gibt viele Name dafür: Bananensoftware (weil sie beim Kunden reift), TdK-Software (Test durch Kunde), Alpha-release; man kann die Liste lange fortsetzen. Im Grunde wird ein Hauptproblem der Softwareentwicklung beschrieben: mangelnde Qualitätssicherung führt zu ausgelieferten Programmen, deren Fehler erst durch &#8230; <a href="http://waidner-itsolutions.de/2012/01/softwarequalitat-durch-kundentests/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt viele Name dafür: Bananensoftware (weil sie beim Kunden reift), TdK-Software (Test durch Kunde), Alpha-release; man kann die Liste lange fortsetzen. Im Grunde wird ein Hauptproblem der Softwareentwicklung beschrieben: mangelnde Qualitätssicherung führt zu ausgelieferten Programmen, deren Fehler erst durch den Kunden entdeckt werden, oder deren Funktionalität einfach nicht zur Problemstellung passt.</p>
<p>Darf der Kunde also immer nur perfekte Software erhalten?</p>
<p>Für im Echtbetrieb eingesetzte Software gilt die Aussage in jedem Fall. Ein System, welches wie auch immer produktiv genutzt wird, sollte fehlerfrei sein, da sind wir uns einig.</p>
<p>Wenn es sich allerdings um Software handelt, die sich noch im Entwicklungsprozess befindet, kann man diesen Vorsatz oft außen vor lassen. Klar sollten die offensichtlichen Fehler bereits durch den Softwareentwickler und seine Test-Kollegen beseitigt worden sein, aber wenn es um inhaltliche oder Bedienerfragen geht, muss keine Perfektion erreicht sein. Ganz im Gegenteil habe ich bereits sehr gute Erfahrungen damit gemacht, den Kunden so früh wie möglich an &#8220;seinem&#8221; Produkt teilhaben zu lassen. Wenn man sich als Entwickler nicht monatelang in sein stilles Kämmerlein zurückzieht, sondern den Kontakt mit dem Kunden sucht, ihn oft nach seiner Meinung fragt, dann wird am Ende ein besseres Produkt entstehen. Und wenn ich diese Meinung oft haben will, dann muss ich als Entwickler den Mut haben, auch einmal ein unfertiges Produkt zu präsentieren. Wenn eine Demo nicht ganz perfekt durchläuft, auch mal etwas nicht so funktioniert, wie es sollte, und dafür beim nächsten Termin korrigiert ist, wird der Prozess der Softwareentwicklung deutlich.</p>
<p>Und genau dieser Prozess muss deutlich werden, es muss gezeigt werden, dass Softwareentwicklung ein Handwerk ist, bei dem Mitarbeit gefordert ist. Ohne die Integration des Kunden und seiner Mitarbeiter kann man noch so gut designen, das Endprodukt wird nicht richtig zufriedenstellen. Die beste Software habe ich entwickelt, wenn sich die Endanwender ganz früh beteiligen durften und sahen, wie ihre Tests Auswirkungen auf das fertige Produkt haben. Man nutzt hier aus, dass viele Menschen &#8220;etwas bewegen wollen&#8221;, auch wenn es nur Kleinigkeiten sind. Die Motivation steigt ungemein, wenn das eigene Wort Gehör findet.</p>
<p>Probieren Sie es als Entwickler: bringen Sie Software früh zum Kunden. Probieren Sie es als Kunde: lassen Sie ihre Anwender früh mit neuen Systemen &#8220;spielen&#8221;. Die Softwarequalität wird steigen.</p>
]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2012/01/softwarequalitat-durch-kundentests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AudioSorter &#8211; Dateien auf dem USB-Stick sortieren</title>
		<link>http://waidner-itsolutions.de/2011/12/audiosorter-dateien-auf-dem-usb-stick-sortieren/</link>
		<comments>http://waidner-itsolutions.de/2011/12/audiosorter-dateien-auf-dem-usb-stick-sortieren/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 14:31:16 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=400</guid>
		<description><![CDATA[Die MP3-Musiksammlung auch im Auto abspielen ist heute dank USB-Anschluss meist kein Problem mehr. Was allerdings bei vielen Autoradios nicht anständig funktioniert, ist die Sortierung der Titel nach Tracknummer des Albums. Den meisten Anwendern erscheint die Abspielreihenfolge zufällig, dem ist &#8230; <a href="http://waidner-itsolutions.de/2011/12/audiosorter-dateien-auf-dem-usb-stick-sortieren/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Die MP3-Musiksammlung auch im Auto abspielen ist heute dank USB-Anschluss meist kein Problem mehr. Was allerdings bei vielen Autoradios nicht anständig funktioniert, ist die Sortierung der Titel nach Tracknummer des Albums. Den meisten Anwendern erscheint die Abspielreihenfolge zufällig, dem ist aber nicht so: meistens wird die Reihenfolge verwendet, in der die Dateien auf den Stick kopiert worden sind.</p>
<p>Um das Problem zu umgehen, und außerdem noch einmal eine gute Ausrede zu haben, etwas mit der Windows Presentation Foundation (WPF) in C# herumzuprobieren, habe ich den AudioSorter geschrieben. Das kleine Programm erwartet eine Laufwerksangabe und bei einem Klick auf &#8220;Sort&#8221; werden alle Stücke nach ihrer Tracknummer im ID3-Tag sortiert. Klappt bei meinem Autoradio einwandfrei, vielleicht hilft es auch anderen.</p>
<p>Das Programm kann kostenlos hier heruntergeladen werden: <a href="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2011/12/AudioSorter.zip">AudioSorter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2011/12/audiosorter-dateien-auf-dem-usb-stick-sortieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Waidner IT Solutions auf Google+</title>
		<link>http://waidner-itsolutions.de/2011/11/waidner-it-solutions-auf-google/</link>
		<comments>http://waidner-itsolutions.de/2011/11/waidner-it-solutions-auf-google/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 11:23:15 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=397</guid>
		<description><![CDATA[Google+ hat Anfang November die Möglichkeit von Pages für Firmenpräsenzen eingeführt und seitdem habe ich auch mit Waidner IT Solutions dort eine Seite hinterlegt. Sie finden dort zusätzlich zu den längeren Blogeinträgen hier, aktuelle Neuigkeiten sowie kleinere Tipps und Anmerkungen &#8230; <a href="http://waidner-itsolutions.de/2011/11/waidner-it-solutions-auf-google/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Google+ hat Anfang November die Möglichkeit von <a href="http://www.google.com/+/business/" target="_blank">Pages für Firmenpräsenzen</a> eingeführt und seitdem habe ich auch mit <a href="https://plus.google.com/b/106373318639696752708/" target="_blank">Waidner IT Solutions dort eine Seite</a> hinterlegt. Sie finden dort zusätzlich zu den längeren Blogeinträgen hier, aktuelle Neuigkeiten sowie kleinere Tipps und Anmerkungen oder den einen oder anderen Link auf spannende Artikel im Netz.<br />
Ich würde mich freuen, wenn Sie mir auch dort folgen und diese weitere Möglichkeit zur Kontaktaufnahme nutzen.</p>
]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2011/11/waidner-it-solutions-auf-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erstellungsdatum einer Datenbank anhand der ReplicaID berechnen</title>
		<link>http://waidner-itsolutions.de/2011/10/erstellungsdatum-einer-datenbank-anhand-der-replicaid-berechnen/</link>
		<comments>http://waidner-itsolutions.de/2011/10/erstellungsdatum-einer-datenbank-anhand-der-replicaid-berechnen/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 10:36:23 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Lotus Notes]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=389</guid>
		<description><![CDATA[Mein aktuelles Projekt dreht sich um die Inventarisierung von Lotus Notes Datenbanken im Zuge der Migration nach Sharepoint. Dabei sollte eine Übersicht der echten Erstellungsdaten der Datenbanken generiert werden. Das, was man normalerweise im Properties-Dialog sieht, sind ja die Daten &#8230; <a href="http://waidner-itsolutions.de/2011/10/erstellungsdatum-einer-datenbank-anhand-der-replicaid-berechnen/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mein aktuelles Projekt dreht sich um die Inventarisierung von Lotus Notes Datenbanken im Zuge der Migration nach Sharepoint. Dabei sollte eine Übersicht der echten Erstellungsdaten der Datenbanken generiert werden. Das, was man normalerweise im Properties-Dialog sieht, sind ja die Daten für den aktuellen Server, hilft also nicht direkt weiter.</p>
<p><img class="aligncenter size-full wp-image-391" title="Properties" src="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2011/10/Properties.jpg" alt="" width="298" height="165" /></p>
<p>Aber es gibt eine eigentlich recht simple Lösung. Notes speichert der Erstelldatum in der ReplicaID der Datenbank, wie man bspw. <a href="http://www-01.ibm.com/support/docview.wss?uid=swg21091457" target="_blank">hier</a> nachlesen kann. Also muss die Information nur noch extrahiert werden und das geht ganz gut mit einem API-Call, nämlich ConvertTIMEDATEToText.</p>
<p>Die gesamte Funktion inklusive Deklarationen sieht dann so aus:</p>

<div class="wp_syntax"><div class="code"><pre class="lotusscript" style="font-family:monospace;"><span style="color: #0000FF;">Type</span> TIMEDATE
	Innards<span style="color: #000000;">&#40;</span><span style="color: #FF00FF;">0</span> <span style="color: #0000FF;">To</span> <span style="color: #FF00FF;">1</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Long</span>
<span style="color: #0000FF;">End</span> <span style="color: #0000FF;">Type</span>
&nbsp;
<span style="color: #0000FF;">Declare</span> <span style="color: #0000FF;">Function</span> ConvertTIMEDATEToText <span style="color: #0000FF;">Lib</span> <span style="color: #000000;">&quot;nnotes.dll&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #0000FF;">ByVal</span> IntlFormat <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Integer</span>, _
<span style="color: #0000FF;">ByVal</span> TimeFormat <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Integer</span>, InputTime <span style="color: #0000FF;">As</span> TIMEDATE, <span style="color: #0000FF;">ByVal</span> retTextBuffer <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span>, _
<span style="color: #0000FF;">ByVal</span> TextBufferLength <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Integer</span>, retTextLength <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Integer</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Integer</span>
&nbsp;
<span style="">%REM
	Function calculateCreationDate
	Description: Berechnet aus der Replika-ID der Datenbank das Erstelldatum
%END REM</span>
<span style="color: #0000FF;">Public</span> <span style="color: #0000FF;">Function</span> calculateDBCreationDate<span style="color: #000000;">&#40;</span>strReplicaID <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF;">As</span> <span style="color: #0000EE;">NotesDateTime</span>
	<span style="color: #0000FF;">Dim</span> apiTime <span style="color: #0000FF;">As</span> TIMEDATE
	<span style="color: #0000FF;">Dim</span> session <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">New</span> <span style="color: #0000EE;">NotesSession</span>
	<span style="color: #0000FF;">Dim</span> retStr <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span> * <span style="color: #FF00FF;">81</span>
	<span style="color: #0000FF;">Dim</span> retLen <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Integer</span>
	<span style="color: #0000FF;">Dim</span> retCode <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">Integer</span>
	<span style="color: #0000FF;">Dim</span> datResult <span style="color: #0000FF;">As</span> <span style="color: #0000EE;">NotesDateTime</span>
	<span style="color: #0000FF;">Dim</span> strDate <span style="color: #0000FF;">As</span> <span style="color: #0000FF;">String</span>
&nbsp;
	apiTime.<span style="color: #0000AA;">Innards</span><span style="color: #000000;">&#40;</span><span style="color: #FF00FF;">0</span><span style="color: #000000;">&#41;</span> = <span style="color: #0000FF;">Val</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&quot;&amp;H&quot;</span> &amp; <span style="color: #0000FF;">Right</span><span style="color: #000000;">&#40;</span>strReplicaID, <span style="color: #FF00FF;">8</span><span style="color: #000000;">&#41;</span> &amp; <span style="color: #000000;">&quot;L&quot;</span><span style="color: #000000;">&#41;</span>
	apiTime.<span style="color: #0000AA;">Innards</span><span style="color: #000000;">&#40;</span><span style="color: #FF00FF;">1</span><span style="color: #000000;">&#41;</span> = <span style="color: #0000FF;">Val</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&quot;&amp;H&quot;</span> &amp; <span style="color: #0000FF;">Left</span><span style="color: #000000;">&#40;</span>strReplicaID, <span style="color: #FF00FF;">8</span><span style="color: #000000;">&#41;</span> &amp; <span style="color: #000000;">&quot;L&quot;</span><span style="color: #000000;">&#41;</span>
&nbsp;
	retCode = ConvertTIMEDATEToText<span style="color: #000000;">&#40;</span><span style="color: #FF00FF;">0</span>, <span style="color: #FF00FF;">0</span>, apiTime, retStr, <span style="color: #0000FF;">Len</span><span style="color: #000000;">&#40;</span>retStr<span style="color: #000000;">&#41;</span>-<span style="color: #FF00FF;">1</span>, retLen<span style="color: #000000;">&#41;</span>
&nbsp;
	strDate = <span style="color: #0000FF;">Left$</span><span style="color: #000000;">&#40;</span>retStr, retLen<span style="color: #000000;">&#41;</span>
	<span style="color: #0000FF;">Set</span> datResult = <span style="color: #0000FF;">New</span> <span style="color: #0000EE;">NotesDateTime</span><span style="color: #000000;">&#40;</span>strDate<span style="color: #000000;">&#41;</span>
&nbsp;
	<span style="color: #0000FF;">Set</span> calculateDBCreationDate = datResult
<span style="color: #0000FF;">End</span> <span style="color: #0000FF;">Function</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2011/10/erstellungsdatum-einer-datenbank-anhand-der-replicaid-berechnen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrum Day 2011</title>
		<link>http://waidner-itsolutions.de/2011/09/scrum-day-2011/</link>
		<comments>http://waidner-itsolutions.de/2011/09/scrum-day-2011/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 20:22:09 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=372</guid>
		<description><![CDATA[Weiterbildung ist immer wichtig, und so habe ich gestern und heute in Darmstadt in den Gebäuden der Telekom den Scrum Day 2011 mitgenommen. Der erste Tag bot vormittags zuerst ein World Cafe zum Thema &#8220;Agile Tookit&#8221; und dann zwei Workshop-Runden &#8230; <a href="http://waidner-itsolutions.de/2011/09/scrum-day-2011/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Weiterbildung ist immer wichtig, und so habe ich gestern und heute in Darmstadt in den Gebäuden der Telekom den <a href="http://www.scrum-day.de/" target="_blank">Scrum Day 2011</a> mitgenommen.</p>
<p>Der erste Tag bot vormittags zuerst ein <a href="http://de.wikipedia.org/wiki/World-Caf%C3%A9" target="_blank">World Cafe</a> zum Thema &#8220;Agile Tookit&#8221; und dann zwei Workshop-Runden mit jeweils 4 Tracks. Ich betreibe zwar seit Anbeginn meiner Programmiererfahrung agile Entwicklung (siehe beispielsweise <a title="Simples UI-Prototyping" href="http://waidner-itsolutions.de/2011/09/simples-ui-prototyping/">auch den letzten Artikel</a>), habe aber nie einen bestimmtes System verfolgt. Das wollte ich nachholen und habe daher etwas auf Grundlagenworkshops und allgemein brauchbare Themen gesetzt.</p>
<p>&#8220;Scrum in 90 Minuten&#8221; bot dafür ein ganz gutes Programm, zwei Telekom-Mitarbeiter haben den Workshop vorgestellt, der auch intern durchgeführt wurde. Im großen und ganzen nicht schlecht, fehlte eigentlich nur ein bisschen Inhalt über die Motivation. Von &#8220;Scrum Smells&#8221; hatte ich mir mehr erhofft, hier wurden 3 Gruppen gebildet, die nahezu ohne Moderatorenhilfe dazu getrieben wurden, die Probleme in Scrum aufzuarbeiten. Die Grundidee war gut, nur gab es im Publikum relativ viele Anfänger und durch die nicht vorhandene Leitung ein bisschen Strukturlosigkeit, so dass das Ergebnis in meinen Augen nicht spannend war.</p>
<p>Es folgte noch eine <a href="http://de.wikipedia.org/wiki/Open_Space" target="_blank">Open Space Diskussion</a>, das bedeutet, dass die Teilnehmer wieder die Provider von Inhalten wurden. Aus Zeitgründen habe ich nach der Themenvorstellung erst einmal meinen Tag beendet; es gab ja noch einen zweiten.</p>
<p>Der heutige Tag begann mit einer <a href="http://www.scrum-day.de/289agenda/dttelekomkeynote/index.html" target="_blank">Keynote von Dr. Thomas Kiesling</a>, der die Scrum-Transition bei der Telekom sehr ehrlich und realistisch beschrieb. Echt ein Highlight.</p>
<p>Es folgte mit <a href="http://www.scrum-day.de/289agenda/keynote/index.html" target="_blank">Ken Schwaber</a> einer der Scrum-Gurus, der für meinen Geschmack allerdings zu viele Gemeinplätze erwähnt, zu viel auf sein neues Buch einging und wenig erhellendes brachte &#8211; Ausnahme das geänderte Wording in der aktuellen Scrum-Ausgabe, das einige Nuancen korrigiert. Mit &#8220;how to sell Scrum&#8221; hatte es nicht so viel zu tun.</p>
<p>Was hatte ich mir an Vorträgen ausgesucht? &#8220;<a href="http://www.scrum-day.de/vortraege/revolutiondurchagileleantransformation.html" target="_blank">(R)evolution durch Agile-Lean Transformation</a>&#8221; zeigte ganz gut, mit welcher Argumentation man Agile Entwicklung mit Hilfe von Lean Transformation promoten kann. Als Einstieg in den Tag ok.</p>
<p>&#8220;<a href="http://www.scrum-day.de/vortraege/zusammenarbeitinitprojektenundanderewunder.html" target="_blank">Zusammenarbeit in IT Projekten und andere Wunder</a>&#8221; brachte mich etwas weg von der Technik. Warum sind viele IT Projekte so unglaublich schwierig? Weil man sich zu sehr auf die Technik und zu wenig auf die zwischenmenschlichen Probleme konzentriert. Die Erklärungsansätze waren gut, die Ideen ebenfalls. Hat mir gut gefallen, kann man als Consultant gebrauchen.</p>
<p>Ein ganz schwieriger Punkt bei agiler Entwicklung sind die berühmten Festpreisverträge. &#8220;<a href="http://www.scrum-day.de/vortraege/agilecontracting.html" target="_blank">Agile contracting</a>&#8221; versuchte gegenzusteuern, schaffte es aber leider nur bis Folie 3 mich zu begeistern. Leider endet das Ganze viel zu sehr in einem Modell, das versucht, agil so lange zu verbiegen, bis es klassisch ist. Nicht erhellend.</p>
<p>Hinterher folgte &#8220;<a href="http://www.scrum-day.de/vortraege/howtogetagile.html" target="_blank">How to become agile</a>&#8220;. Ein Erfahrungsbericht über die Umsetzung von Scrum bei der Telekom, eigentlich die Fortführung der Keynote. Leider etwas hastig vorgetragen, aber grundsätzlich ein interessantes Thema. Spannend, wie ein Behörden-ähnlich strukturiertes Unternehmen wie die Telekom agile Entwicklung versucht.</p>
<p>&#8220;<a href="http://www.scrum-day.de/vortraege/continuousdeliveryhighwaytoproduction.html" target="_blank">Continuous delivery</a>&#8221; war mein Starter nach der Mittagspause (Nudeln + Gulasch btw.). Zuallererst fiel die absolut geniale Präsentation auf. Mit <a href="http://prezi.com/index/" target="_blank">Prezi Desktop</a> lieferten die beiden Vortragenden eine super Show und auch der Inhalt passte wirklich gut. Tageshighlight neben der T-Kom Keynote.</p>
<p>Der Abschluss für mich war &#8220;<a href="http://www.scrum-day.de/vortraege/traditionellesprojektmanagementscrum.html" target="_blank">Traditionelles Projektmanagement &amp; Scrum</a>&#8220;. Wie Feuer und Wasser? Ja, definitiv, der Vortrag brachte auf jeden Fall nicht die Lösung.</p>
<p>Zusammenfassend muss ich sagen, die zwei Tage haben sich schon gelohnt, auch wenn einige Vorträge/Workshops mäßig waren. Alles bat Diskussionsstoff für die Pausen, man kam gut ins Gespräch. Die Erfahrungen der Kollegen waren wirklich erhellend und aus diesen Erfahrungen lernt man.</p>
<p>Was ist die große Erkenntnis? Scrum oder generell agile Entwicklungsmethoden sind sinnvoll und ausgereift; die Probleme ergeben sich derzeit eher in den starren Strukturen des Projektleads und aus dem Sales/Procurement. Solange Festpreisverträge die Regel sind, solange auf Änderungen in den Anforderungen nicht reagiert wird, kann auch die agile Entwicklung nicht ihre Stärken ausspielen. Schade eigentlich.</p>
<p>P.S.: Die Workshops der ersten Tages sind mangels Inhalt auf der Website nicht verlinkt.</p>
]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2011/09/scrum-day-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Simples UI-Prototyping</title>
		<link>http://waidner-itsolutions.de/2011/09/simples-ui-prototyping/</link>
		<comments>http://waidner-itsolutions.de/2011/09/simples-ui-prototyping/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 20:31:46 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=366</guid>
		<description><![CDATA[Wer wie ich an einer Universität oder Fachhochschule Informatik mit Zielrichtung Softwareentwicklung studiert hat, dem ist wahrscheinlich beigebracht worden, jedes Programm von unten nach oben zu entwickeln. Man startet mit dem Datenmodell und arbeitet sich über ein Kommandozeileninterface so langsam &#8230; <a href="http://waidner-itsolutions.de/2011/09/simples-ui-prototyping/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wer wie ich an einer Universität oder Fachhochschule Informatik mit Zielrichtung Softwareentwicklung studiert hat, dem ist wahrscheinlich beigebracht worden, jedes Programm von unten nach oben zu entwickeln. Man startet mit dem Datenmodell und arbeitet sich über ein Kommandozeileninterface so langsam nach oben, bis man eine Benutzeroberfläche entwickelt. Das Problem ist nur: so kann man nur schlecht mit Kunden arbeiten.</p>
<p>Meine Erfahrung ist, dass noch in der initialen Besprechung oft gefragt wird, wann man den nächsten Termin einplanen kann, an dem man sich &#8220;einen ersten Entwurf&#8221; anschauen kann. Wenn ich jetzt den Termin festmache und dann nur ein abstraktes Datenmodell zeige sowie die Kernalgorithmen präsentiere, kann das kaum jemand einordnen. &#8220;Wie weit ist der? 2 Wochen sind rum und es gibt nur ein bisschen Theorie und nicht mal ein Fenster im Programm ist fertig?&#8221;.</p>
<p>Wie also kann ich einerseits strukturiert entwickeln (von unten nach oben) und gleichzeitig nicht zu viel Zeit in eine Oberfläche investieren, die sich sicherlich noch mehrmals ändert?</p>
<p>Es gibt viele Prototyping-Applikationen, mit denen man sogenannte mockups erstellen kann, beispielhaft kann man hier <a href="http://balsamiq.com/products/mockups" target="_blank">Balsamiq</a> oder <a href="http://www.axure.com/" target="_blank">Axure</a> nennen. Einen ganz anderen Ansatz verfolgt das <a href="http://www.istartedsomething.com/20071018/powerpoint-prototype-toolkit-01/" target="_blank">PowerPoint Prototyping Tookit</a>. Hier wird keine lange Einarbeitungszeit fällig (wenn ich davon ausgehe, dass viele User PowerPoint zumindest leidlich bedienen können) und oft ist die Lizenz für die Software sowieso vorhanden.</p>
<p><a href="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2011/09/toolkitsample.jpg"><img class="size-full wp-image-367 alignright" title="Controls" src="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2011/09/toolkitsample.jpg" alt="" width="350" height="264" /></a>Im Prinzip handelt es sich bei dem Paket und eine normale PowerPoint-Datei, die vorgefertigte Bildschirmelemente wie Buttons, Fenster oder Scrollbalken enthält. Diese sind gesammelt vorhanden und können einfach per Copy &amp; Paste zu vollständigen Bildschirmmasken zusammengesetzt werden.</p>
<p>Ich habe das bei einem aktuellen Projekt einmal ausprobiert und war positiv überrascht, wie simpel und zeitsparend sich damit Oberflächen &#8220;zusammenkopieren&#8221; lassen. Klar, die Genauigkeit von professionellen Tools wird damit nicht erreicht, aber das will ich auch überhaupt nicht. Ganz im Gegenteil, ein bisschen schief ist nicht schlecht, weil der Kunde damit klar erkennt, dass es sich nicht um ein endgültiges Produkt handelt.</p>
<p>Die Kombination von diesem einfachen Tool mit der &#8220;wissenschaftlich korrekten&#8221; Arbeitsweise stellt beide Seiten zufrieden und am Ende kommt ein Produkt heraus, das passt &#8211; und darauf kommt es doch an.</p>
]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2011/09/simples-ui-prototyping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code, der zwischen i++ und ++i unterscheidet, ist zu kompliziert</title>
		<link>http://waidner-itsolutions.de/2011/08/code-der-zwischen-i-und-i-unterscheidet-ist-zu-kompliziert/</link>
		<comments>http://waidner-itsolutions.de/2011/08/code-der-zwischen-i-und-i-unterscheidet-ist-zu-kompliziert/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 21:47:43 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=360</guid>
		<description><![CDATA[Beim Programmieren kommt man früher oder später an den Punkt, an dem man fremden Code liest und sich fragt: &#8220;Programmiert der Autor absichtlich so kompliziert, oder bin ich einfach zu unfähig, das Ganze zu verstehen?&#8221;. Es kommen Zweifel auf, ob &#8230; <a href="http://waidner-itsolutions.de/2011/08/code-der-zwischen-i-und-i-unterscheidet-ist-zu-kompliziert/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Beim Programmieren kommt man früher oder später an den Punkt, an dem man fremden Code liest und sich fragt: &#8220;Programmiert der Autor absichtlich so kompliziert, oder bin ich einfach zu unfähig, das Ganze zu verstehen?&#8221;. Es kommen Zweifel auf, ob man nicht Sprachfeatures verpasst hat, oder nicht versteht, diese effizient einzusetzen.</p>
<p>Ich halte mich nicht für den besten Programmierer der Welt und versuche daher, immer Programmcode zu erstellen, den jeder verstehen kann, der einigermaßen sein Handwerk beherrscht. Und damit meine ich, Entwickler, die programmieren können, nicht unbedingt aber in der Programmiersprache, die ich gerade verwende (die Chance ist ja bei LotusScript durchaus hoch).</p>
<p>Jeder Programmierer denkt anders, löst die gleichen Herausforderungen anders, als man es selbst tun würde. Ich selbst löse jetzt Probleme anders, als ich es vor 5 Jahren getan habe. Hierbei meine ich nicht die Verwendung von Sprachfeatures, oder die inzwischen sicherlich bessere Beherrschung des Umfanges einer Sprache &#8211; ich meine die verwendeten Algorithmen.</p>
<p>Beim Programmieren von Business Anwendungen geht es zu 80% darum, den Auftraggeber zu verstehen und eine Applikation zu erstellen, die seine Bedürfnisse an Verwendung und Wartbarkeit zufriedenstellt. Und Wartbarkeit schließt ein, dass mein Quellcode von mir, oder auch von meinen Nachfolgern mit dem geringst möglichen Einsatz gelesen und vor allem verstanden werden kann, sollten Modifikationen anstehen. Denn nur wer Quellcode wirklich versteht, kann kosteneffektiv Änderungen vornehmen, die nicht in Hunderten von Folgefehlern münden.</p>
<p>Mein Appell ist also: lesbaren Code schreiben. Dazu gehört anständiges Kommentieren, brauchbare Variablen- und Funktionsnamen und eine gute Dokumentation. Gute Programme lesen sich wie eine Geschichte.</p>
<p>Nicht dazu gehören, jedes mögliche Sprachfeature ohne Rücksicht auf Verluste auszunutzen, kurze oder kryptische Bezeichner zu verwenden, oder innerhalb eines Programms den Programmierstil zu wechseln.</p>
<p>Einen guten Artikel zum Thema, der meine Idee mit guten Beispielen unterstützt, findet sich beispielsweise <a href="http://www.ibm.com/developerworks/linux/library/l-clear-code/index.html" target="_blank">hier bei IBM</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2011/08/code-der-zwischen-i-und-i-unterscheidet-ist-zu-kompliziert/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zeiterfassung für Freiberufler</title>
		<link>http://waidner-itsolutions.de/2011/08/zeiterfassung-fur-freiberufler/</link>
		<comments>http://waidner-itsolutions.de/2011/08/zeiterfassung-fur-freiberufler/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 17:34:18 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Selbständigkeit]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=352</guid>
		<description><![CDATA[Auch als Freiberufler muss man immer schauen, dass am Ende des Geldes möglichst kein Monat mehr übrig ist. Dies erreicht man sicherlich auch dadurch, dass man seine Arbeitsstunden verlässlich erfasst und auch so dem Kunden präsentiert, dass dieser weiß, dass &#8230; <a href="http://waidner-itsolutions.de/2011/08/zeiterfassung-fur-freiberufler/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Auch als Freiberufler muss man immer schauen, dass am Ende des Geldes möglichst kein Monat mehr übrig ist. Dies erreicht man sicherlich auch dadurch, dass man seine Arbeitsstunden verlässlich erfasst und auch so dem Kunden präsentiert, dass dieser weiß, dass er für sein Geld auch etwas bekommt. Ich kann nur den Tipp geben, detaillierte Stundenaufstellungen in der Rechnung zu vermerken, anstatt einfach nur den kompletten Betrag aufzulisten. Es erhöht die Glaubwürdigkeit einfach immens, wenn da statt</p>
<p>März 2011 &#8211; Programmierung Software x &#8211; 1000€</p>
<p>dann folgendes aufgeführt ist:</p>
<p>4.3.2011 Konzeptionierung Programm X, 4h<br />
5.3.2011 Erstellung Mockups für das Benutzerinterface, 2h<br />
5.3.2011 Vorstellung Konzept beim Kunden, 2h<br />
6.3.2011 Programmierung Datenmodell, 8h<br />
9.3.2011 Programmierung Oberfläche, 4h<br />
Summe: 1000€</p>
<p>Dies lässt deutlich weniger Raum für Diskussionen, erklärt außerdem, was man für sein Geld bekommt und die eigene Arbeit erscheint wertiger.</p>
<p>Wie man diese Detaillierung hinbeekommt? Ich für meinen Teil bin nicht so der Freund des Papiers und da ich einen Großteil meiner Arbeit eh am Rechner erledige, lasse ich ein kleines Tool mitlaufen, das mir den Großteil der Arbeit abnimmt. Derzeit verwende ich dafür <a href="http://toggl.com" target="_blank">toggl.com</a>, was für Einzelpersonen kostenlos ist. Supereinfache Stundenerfassung, getrennt nach Kunden und Projekten und eine Vielzahl von Berichten, die man auch gut exportieren kann.</p>
<p style="text-align: center;"><a href="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2011/08/Stundenerfassung1.png"><img class="aligncenter size-full wp-image-354" title="Stundenerfassung" src="http://waidner-itsolutions.de/wordpress/wp-content/uploads/2011/08/Stundenerfassung1.png" alt="" width="450" /></a></p>
<p>Also, gebt dem Ganzen eine Chance. Auch aus Fairness dem Auftraggeber gegenüber.</p>
]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2011/08/zeiterfassung-fur-freiberufler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bequemes Syntax-Highlighting für WordPress</title>
		<link>http://waidner-itsolutions.de/2011/07/bequemes-syntax-highlighting-fur-wordpress/</link>
		<comments>http://waidner-itsolutions.de/2011/07/bequemes-syntax-highlighting-fur-wordpress/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 19:26:12 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://waidner-itsolutions.de/?p=344</guid>
		<description><![CDATA[Vielleicht hat es der eine oder andere schon in meinen Artikeln gesehen, ich benutze ein neues Format für Quellcode auf meiner Website. Ab sofort gibt es das Ganze mit tollem Syntax-Highlighting in einem eigenen Block. Möglich macht das Ganze das &#8230; <a href="http://waidner-itsolutions.de/2011/07/bequemes-syntax-highlighting-fur-wordpress/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vielleicht hat es der eine oder andere schon <a title="Mit LotusScript prüfen, ob ein User eine Rolle hat" href="http://waidner-itsolutions.de/2011/06/mit-lotusscript-prfen-ob-ein-user-eine-rolle-hat/">in meinen Artikeln</a> gesehen, ich benutze ein neues Format für Quellcode auf meiner Website. Ab sofort gibt es das Ganze mit tollem Syntax-Highlighting in einem eigenen Block.</p>
<p>Möglich macht das Ganze das Plugin <a title="wp-syntax" href="http://wordpress.org/extend/plugins/wp-syntax/" target="_blank">WP-Syntax</a>, das nichts anderes macht, als <a title="geshi" href="http://qbnz.com/highlighter/" target="_blank">geshi</a>, einen generischen Syntax-Highlighter in einem Plugin zu kapseln. Das Tolle an der Sache ist die Einfachheit des Einsatzes:</p>
<p>&lt;pre lang=&#8221;programmiersprache&#8221;&gt;Codeschnipsel&lt;/pre&gt;</p>
<p>wobei im Attribut &#8216;lang&#8217; die Programmiersprache angegeben wird, in der formatiert werden soll. Unterstützt werden gut 100 Programmiersprachen von gängigen wie C, Java oder PHP bis hin zu exotischen wie Brainfuck oder X++.</p>
<p>Und weil es so schön ist, noch ein paar Beispiele:</p>

<div class="wp_syntax"><div class="code"><pre class="lotusscript" style="font-family:monospace;"><span style="color: #008000;">' Ein bisschen LotusScript</span>
<span style="color: #0000FF;">Dim</span> test <span style="color: #0000FF;">as</span> <span style="color: #0000FF;">new</span> <span style="color: #0000EE;">NotesSession</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">// Etwas C#</span>
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">int</span> a <span style="color: #008000;">=</span> <span style="color: #FF0000;">5</span><span style="color: #008000;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">; ini-Dateien funktionieren ebenfalls</span>
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>sektion<span style="">&#93;</span></span>
<span style="color: #000099;">label</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> value</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://waidner-itsolutions.de/2011/07/bequemes-syntax-highlighting-fur-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

