<?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>schrankmonster blog &#187; Development</title>
	<atom:link href="http://www.schrankmonster.de/category/work/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.schrankmonster.de</link>
	<description>technology-ninja!</description>
	<lastBuildDate>Sun, 08 Jan 2012 21:32:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>downloading the whole Jamendo catalog</title>
		<link>http://www.schrankmonster.de/2011/09/18/downloading-the-whole-jamendo-catalog/</link>
		<comments>http://www.schrankmonster.de/2011/09/18/downloading-the-whole-jamendo-catalog/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 11:20:35 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[hack-the-planet]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2011/09/18/downloading-the-whole-jamendo-catalog/</guid>
		<description><![CDATA[Yesterday @simcup wrote on twitter about that he is currently downloading the whole Jamendo catalog of Creative Commons music. Although I already knew Jamendo it never occurred to be to download their whole catalog. Since I am a fan of choice I immediately thought about how I could download the catalog too. Since the only [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday <a href="http://twitter.com/#!/simcup/status/115186326776717312" target="_blank">@simcup</a> wrote on twitter about that he is currently downloading the whole Jamendo catalog of Creative Commons music. <a href="http://twitter.com/#!/simcup/status/115186326776717312" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="Capture" src="http://www.schrankmonster.de/wp-content/uploads/2011/09/Capture.png" alt="Capture" width="404" height="165" border="0" /></a></p>
<p>Although I already knew Jamendo it never occurred to be to download their whole catalog. Since I am a fan of choice I immediately thought about how I could download the catalog too. Since the only clue was a cryptic uri-like text how to achieve that it suddenly sounded like a great idea to write a universal tool and release it as open-source. This tool should allow users to download the whole catalog and keep their local jamendo mirror in sync with the server. So anytime new artists, albums or tracks are added the user does not need to download them all again.</p>
<p>So the only thing I had as a starting point was that cryptic uri pointing me to something I’ve never heard of called Rythmbox. Turns out that this is a GNOME music player application which has Jamendo integration. After some clueless poking around I decided to take a look at the source of Rythmbox, especially the Jamendo module.</p>
<p><a href="http://git.gnome.org/browse/rhythmbox/plain/plugins/jamendo/jamendo/JamendoSource.py?h=v0.13.x" target="_blank">This module</a> is written in python and quite clean to read. And just by looking at the first lines I came across the interesting fact that there is a almost daily updated XML dump of the Jamendo catalog available from Jamendo. Hurray! Since Jamendo wants developers to interact with the platform they decided to put a documentation online which allows anyone to write tools and stream and download tracks. After all the clues I found <a href="http://developer.jamendo.com/en/wiki/NewDatabaseDumps" target="_blank">I finally ended up on this page</a>.</p>
<p>So there are the catalog download, track stream and torrent uris necessary to download the catalog. Now the only thing that is needed is a tool which parses the XML and creates a nice folder structure for us.</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="folderstructure" src="http://www.schrankmonster.de/wp-content/uploads/2011/09/folderstructure.png" alt="folderstructure" width="183" height="128" border="0" /></p>
<p>Parsing XML in C# (my prefered programming language) is easy. Basically you can use a tool called <a href="http://msdn.microsoft.com/en-us/library/x6c1kb0s%28v=vs.80%29.aspx" target="_blank">XSD.exe</a> and let it generate first the XSD from the XML and then ready-to-use C# classes from that XSD.</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2011/09/generating_xsd_and_csharp.png" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="generating_xsd_and_csharp" src="http://www.schrankmonster.de/wp-content/uploads/2011/09/generating_xsd_and_csharp_thumb.png" alt="generating_xsd_and_csharp" width="400" height="258" border="0" /></a></p>
<p>After doing all that actually reading the whole catalog into a useable form breaks down to just three lines of code:</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2011/09/parsingxml.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="parsingxml" src="http://www.schrankmonster.de/wp-content/uploads/2011/09/parsingxml_thumb.png" alt="parsingxml" width="404" height="57" border="0" /></a></p>
<p>Isn’t it great how modern frameworks take away the complexity of such tasks. At this point I’ve already parsed the whole catalog into my tool and only wrote three lines of code. The rest was generated automatically for me. The best of all – this also works on non-windows operating systems when you use <a href="http://www.mono-project.com/Main_Page" target="_blank">mono</a>.</p>
<p>When the XML data is parsed and available in a nice data structure it’s easy to iterate through all artists, all albums and all tracks and then download the actual mp3 or ogg. And that’s basically what my tool does. It takes the XML, parses it, and downloads. It will check before downloading if the track already exists and will only download those added since the last run.</p>
<p>Additionally since I am deeply involved into the development of the <a href="http://github.com/sones/sones" target="_blank">GraphDB graph database at sones</a> I want to make use of the Jamendo data and the graph structure it poses. Since the directory structure my tool is generating is only one aspect how you could possibly look at the data it’s quite interesting to demonstrate the capabilities of GraphDB based on that data.</p>
<p>The idea behind the graph representation of the data is that you could start from almost any starting point imaginable. No matter if you you start from a single track and drill up into genre and artists, or if you start at a location and drill down to tracks.</p>
<p>So what the Downloader does in matters of GraphDB integration is that it outputs a GraphQL script which can be imported into an instance of GraphDB.</p>
<p><a href="https://github.com/bietiekay/JAMENDOwnloader" target="_blank">The sourcecode of my tool is available on github</a> and released unter the BSD license – feel free to play with it and to contribute.</p>
<p>Source 1: <a href="http://www.jamendo.com">http://www.jamendo.com</a><br />
Source 2: <a title="https://github.com/bietiekay/JAMENDOwnloader" href="https://github.com/bietiekay/JAMENDOwnloader">https://github.com/bietiekay/JAMENDOwnloader</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2011/09/18/downloading-the-whole-jamendo-catalog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>configuring the nano editor to my needs&#8230;</title>
		<link>http://www.schrankmonster.de/2011/04/24/configuring-the-nano-editor-to-my-needs/</link>
		<comments>http://www.schrankmonster.de/2011/04/24/configuring-the-nano-editor-to-my-needs/#comments</comments>
		<pubDate>Sun, 24 Apr 2011 16:52:46 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Modding]]></category>
		<category><![CDATA[N3RD]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/?p=7594</guid>
		<description><![CDATA[Configuring your favourite Editor on OSX (or Linux, or anywhere else) is important &#8211; since nano is my editor of choice I wanted to use it&#8217;s syntax highlighting capabilities. Easy as pie as it turned out: I started with a .nanorc file from this guy and modified it to recognize some of my frequent file-types [...]]]></description>
			<content:encoded><![CDATA[<p>Configuring your favourite Editor on OSX (or Linux, or anywhere else) is important &#8211; since nano is my editor of choice I wanted to use it&#8217;s syntax highlighting capabilities. Easy as pie as it turned out:</p>
<p>I started with a .nanorc file from this guy and modified it to recognize some of my frequent file-types (like .cs files).</p>
<p style="text-align: center;"><a href="http://www.schrankmonster.de/wp-content/uploads/2011/04/Bildschirmfoto-2011-04-23-um-22.20.46.png" target="_blank"><img class="aligncenter size-medium wp-image-7596" title="Bildschirmfoto 2011-04-23 um 22.20.46" src="http://www.schrankmonster.de/wp-content/uploads/2011/04/Bildschirmfoto-2011-04-23-um-22.20.46-300x191.png" alt="" width="300" height="191" /></a></p>
<p>You can download my <a href="http://www.schrankmonster.de/wp-content/uploads/2011/04/nanorc.tar.gz">nanorc.tar</a> &#8211; just extract it and put it into your user home directory.</p>
<p>Source 1: <a href="http://talk.maemo.org/showthread.php?t=68421" target="_blank">http://talk.maemo.org/showthread.php?t=68421</a><br />
Source 2: <a href="http://www.nano-editor.org/dist/v2.2/nano.html#Nanorc-Files" target="_blank">http://www.nano-editor.org/dist/v2.2/nano.html#Nanorc-Files</a><br />
Source 3: <a href="http://www.schrankmonster.de/wp-content/uploads/2011/04/nanorc.tar.gz">nanorc.tar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2011/04/24/configuring-the-nano-editor-to-my-needs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FFN-Switcher auf GitHub umgezogen</title>
		<link>http://www.schrankmonster.de/2010/10/27/ffn-switcher-auf-github-umgezogen/</link>
		<comments>http://www.schrankmonster.de/2010/10/27/ffn-switcher-auf-github-umgezogen/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 15:22:00 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[freies Funknetz]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/10/27/ffn-switcher-auf-github-umgezogen/</guid>
		<description><![CDATA[Es ist ja nun schonwieder einige Zeit her dass ich etwas über meine CB-Funk Software namens “FFN-Switcher” geschrieben habe. Nun ist es immerhin mal wieder soweit dass ich zeit gefunden habe mich mit einigen Bugfixes zu beschäftigen. Gleichzeitig habe ich den Sourcecode von meinem privaten Subversion Repository auf den öffentlich zugänglichen GitHub Dienst hochgeladen. Dort [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist ja nun schonwieder einige Zeit her dass ich etwas über meine CB-Funk Software namens “FFN-Switcher” geschrieben habe. Nun ist es immerhin mal wieder soweit dass ich zeit gefunden habe mich mit einigen Bugfixes zu beschäftigen.</p>
<p>Gleichzeitig habe ich den Sourcecode von meinem privaten Subversion Repository auf den öffentlich zugänglichen <a href="http://github.com/bietiekay/ffn-switcher/" target="_blank">GitHub Dienst hochgeladen</a>. Dort kann der Sourcecode und was noch viel wichtiger ist: die Bug- und Wunschliste abgerufen und editiert werden.</p>
<p>&#160;</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/10/github-ffnswitcher.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="github-ffnswitcher" border="0" alt="github-ffnswitcher" src="http://www.schrankmonster.de/wp-content/uploads/2010/10/github-ffnswitcher_thumb.png" width="404" height="360" /></a></p>
<p align="center"><a href="http://github.com/bietiekay/ffn-switcher/">http://github.com/bietiekay/ffn-switcher/</a>&#160;</p>
<p>Natürlich gab es in der Zwischenzeit auch einige Bugfixes. Sodass mittlerweile Version 111 online steht und über die automatische Updatefunktion abgerufen werden kann.</p>
<p>Source: <a href="http://github.com/bietiekay/ffn-switcher/">http://github.com/bietiekay/ffn-switcher/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/10/27/ffn-switcher-auf-github-umgezogen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TechEd Europe 2010&#8211;if you&#8217;re there we could meet!</title>
		<link>http://www.schrankmonster.de/2010/10/09/teched-europe-2010if-youre-there-we-could-meet/</link>
		<comments>http://www.schrankmonster.de/2010/10/09/teched-europe-2010if-youre-there-we-could-meet/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 19:50:15 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Meetings]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[sones]]></category>
		<category><![CDATA[travelling]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/10/09/teched-europe-2010if-youre-there-we-could-meet/</guid>
		<description><![CDATA[After 5 years of TechEd abstinence it’s time to visit the conference again. This years TechEd will be held in Berlin which is quite nice since traveling will be reduced to a minimum. Since the session schedule is already available I’ve already filled my calendar for TechEd week. Okay it’s impressive to see that so [...]]]></description>
			<content:encoded><![CDATA[<p align="left">After 5 years of TechEd abstinence it’s time to visit the conference again. This years TechEd will be held in Berlin which is quite nice since traveling will be reduced to a minimum. Since the session schedule is already available I’ve already filled my calendar for TechEd week.</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/10/techedcalendar.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="techedcalendar" border="0" alt="techedcalendar" src="http://www.schrankmonster.de/wp-content/uploads/2010/10/techedcalendar_thumb.png" width="404" height="282" /></a></p>
<p align="left">Okay it’s impressive to see that so many interesting sessions can be held in one week&#8217; – the bad thing is that I need do decide which to go and which to watch on video later.</p>
<p align="left">On later notice: Since I will be there it would be a great opportunity to meet. Let me know if you are there and want to meet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/10/09/teched-europe-2010if-youre-there-we-could-meet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mono 2.8 released!</title>
		<link>http://www.schrankmonster.de/2010/10/07/mono-2-8-released/</link>
		<comments>http://www.schrankmonster.de/2010/10/07/mono-2-8-released/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 18:12:01 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/10/07/mono-2-8-released/</guid>
		<description><![CDATA[Hurray! Finally the 2.8 version of Mono – the platform independent open source .NET framework is available as of today. I finally don’t have to recompile the trunk every now and then to get my bits running The Major Highlights according to the release notes are: C# 4.0 Defaults to the 4.0 profile. New Garbage [...]]]></description>
			<content:encoded><![CDATA[<p>Hurray! Finally the 2.8 version of Mono – the platform independent open source .NET framework is available as of today. I finally don’t have to recompile the trunk every now and then to get my bits running <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://www.schrankmonster.de/wp-content/uploads/2010/10/wlEmoticon-smile1.png" /></p>
<p>The Major Highlights according to the release notes are:</p>
<ul>
<li><a href="http://www.mono-project.com/CSharp">C# 4.0</a></li>
<li>Defaults to the 4.0 profile. </li>
<li>New Garbage Collection engine </li>
<li>New Frameworks:
<ul>
<li>Parallel Framework </li>
<li>System.XAML </li>
</ul>
</li>
<li>Threadpool exception behavior has changed to match .NET 2.0
<ul>
<li>potentially a breaking change for a lot of Mono-only software </li>
<li>See information below in the &quot;Runtime&quot; section. </li>
</ul>
</li>
<li>New Microsoft open sourced frameworks bundled:
<ul>
<li>System.Dynamic </li>
<li>Managed Extensibility Framework </li>
<li>ASP.NET MVC 2 </li>
<li>System.Data.Services.Client (OData client framework) </li>
</ul>
</li>
<li>Performance
<ul>
<li>Large performance improvements </li>
<li>LLVM support has graduated to stable
<ul>
<li>Use mono-llvm command to run your server loads with the LLVM backend </li>
</ul>
</li>
</ul>
</li>
<li>Preview of the <a href="http://www.mono-project.com/Generational_GC">Generational Garbage Collector</a></li>
<li>Version 2.0 of the <a href="http://www.mono-project.com/Embedding_Mono#Updates_for_Mono_version_2.8.2B">embedding API</a></li>
<li>WCF Routing </li>
<li>.NET 4.0&#8242;s CodeContracts </li>
<li>Removed the 1.1 profile and various deprecated libraries. </li>
<li>OpenBSD support integrated </li>
<li>ASP.NET 4.0 </li>
<li>Mono no longer depends on GLIB </li>
</ul>
<p>Oh – they even linked my <a href="http://developers.sones.de/2010/09/09/benchmarking-the-sones-graphdb-on-mono-sgen-and-net/" target="_blank">benchmark article</a>.</p>
<p>Source: <a title="http://www.mono-project.com/Release_Notes_Mono_2.8" href="http://www.mono-project.com/Release_Notes_Mono_2.8">http://www.mono-project.com/Release_Notes_Mono_2.8</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/10/07/mono-2-8-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>visualize your source control</title>
		<link>http://www.schrankmonster.de/2010/10/02/visualize-your-source-control/</link>
		<comments>http://www.schrankmonster.de/2010/10/02/visualize-your-source-control/#comments</comments>
		<pubDate>Sat, 02 Oct 2010 08:49:43 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/10/02/visualize-your-source-control/</guid>
		<description><![CDATA[There’s a great tool available to create impressive visualizations of source code repositories: “Software projects are displayed by Gource as an animated tree with the root directory of the project at its centre. Directories appear as branches with files as leaves. Developers can be seen working on the tree at the times they contributed to [...]]]></description>
			<content:encoded><![CDATA[<p>There’s a great tool available to create impressive visualizations of source code repositories:</p>
<p><em>“Software projects are displayed by Gource as an animated tree with the root directory of the project at its centre. Directories appear as branches with files as leaves. Developers can be seen working on the tree at the times they contributed to the project. </em></p>
<p><em>Currently there is first party support for <strong>Git</strong>, <strong>Mercurial</strong> and <strong>Bazaar</strong>, and third party (using additional steps) for </em><a href="http://code.google.com/p/gource/wiki/CVS"><em>CVS</em></a><em> and </em><a href="http://code.google.com/p/gource/wiki/SVN"><em>SVN</em></a><em>. “</em></p>
<p align="center">
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:75aa0481-1b05-4946-b6b1-acbc29121822" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/NjUuAuBcoqs?fs=1&amp;hl=de_DE&amp;hl=en"></param><embed src="http://www.youtube.com/v/NjUuAuBcoqs?fs=1&amp;hl=de_DE&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p>&#160;</p>
<p>Source: <a title="http://code.google.com/p/gource/" href="http://code.google.com/p/gource/">http://code.google.com/p/gource/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/10/02/visualize-your-source-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>putting some code in the tentacles of octocat</title>
		<link>http://www.schrankmonster.de/2010/09/19/putting-some-code-in-the-tentacles-of-octocat/</link>
		<comments>http://www.schrankmonster.de/2010/09/19/putting-some-code-in-the-tentacles-of-octocat/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 17:44:20 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/09/19/putting-some-code-in-the-tentacles-of-octocat/</guid>
		<description><![CDATA[For my own private code I was using a subversion repository for some time now. Since I am using GIT for some time now at sones and the experience so far was great I decided to port all my public projects to github. GitHub is a public git service which additionally to the source code [...]]]></description>
			<content:encoded><![CDATA[<p>For my own private code I was using a subversion repository for some time now. Since I am using GIT for some time now at sones and the experience so far was great I decided to port all my public projects to github. GitHub is a public git service which additionally to the source code management offers a great user interface.</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/09/octocat.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="octocat" border="0" alt="octocat" src="http://www.schrankmonster.de/wp-content/uploads/2010/09/octocat_thumb.png" width="400" height="400" /></a> Octocat – the official mascot of GitHub</p>
<p>So I made the following repositories and sources available on GitHub:</p>
<p align="center"><a href="http://github.com/bietiekay" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="publicrepos" border="0" alt="publicrepos" src="http://www.schrankmonster.de/wp-content/uploads/2010/09/publicrepos.png" width="400" height="432" /></a> </p>
<p>&#160;</p>
<p>Source 1: <a title="http://en.wikipedia.org/wiki/Git_%28software%29" href="http://en.wikipedia.org/wiki/Git_%28software%29">http://en.wikipedia.org/wiki/Git_%28software%29</a>    <br />Source 2: <a href="http://www.github.com">http://www.github.com</a>     <br />Source 3: <a title="http://github.com/bietiekay" href="http://github.com/bietiekay">http://github.com/bietiekay</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/09/19/putting-some-code-in-the-tentacles-of-octocat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>great cheat sheet for .NET string formatting</title>
		<link>http://www.schrankmonster.de/2010/09/18/great-cheat-sheet-for-net-string-formatting/</link>
		<comments>http://www.schrankmonster.de/2010/09/18/great-cheat-sheet-for-net-string-formatting/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 20:23:05 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/09/18/great-cheat-sheet-for-net-string-formatting/</guid>
		<description><![CDATA[Great overview of the possible .NET string formatting options: Download here (or mirror)]]></description>
			<content:encoded><![CDATA[<p align="left">Great overview of the possible .NET string formatting options:</p>
<p align="center"><a href="http://www.dylanbeattie.net/cheatsheets/dot_net_string_format_cheat_sheet.pdf" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="cheatsheet-stringormat" border="0" alt="cheatsheet-stringormat" src="http://www.schrankmonster.de/wp-content/uploads/2010/09/cheatsheetstringormat.png" width="504" height="350" /></a> </p>
<p><a href="http://www.dylanbeattie.net/cheatsheets/dot_net_string_format_cheat_sheet.pdf" target="_blank">Download here</a> (or <a href="http://www.schrankmonster.de/wp-content/uploads/2010/09/dot_net_string_format_cheat_sheet.pdf" target="_blank">mirror</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/09/18/great-cheat-sheet-for-net-string-formatting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>benchmarking the sones GraphDB (on Mono (sgen) and .NET)</title>
		<link>http://www.schrankmonster.de/2010/09/09/benchmarking-the-sones-graphdb-on-mono-sgen-and-net/</link>
		<comments>http://www.schrankmonster.de/2010/09/09/benchmarking-the-sones-graphdb-on-mono-sgen-and-net/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 21:54:11 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/09/09/benchmarking-the-sones-graphdb-on-mono-sgen-and-net/</guid>
		<description><![CDATA[Since we’re at it – we not only took the new Mono garbage collector through it’s paces regarding linear scaling but we also made some interesting measurements when it comes to query performance on the two .NET platform alternatives. The same data was used as in the last article about the Mono GC. It’s basically [...]]]></description>
			<content:encoded><![CDATA[<p>Since we’re at it – we not only took the new Mono garbage collector through it’s paces regarding linear scaling but we also made some interesting measurements when it comes to query performance on the two .NET platform alternatives.</p>
<p>The same data was used as in <a href="http://developers.sones.de/2010/09/01/taking-the-new-and-shiny-mono-simple-generational-garbage-collector-mono-sgen-for-a-walk/" target="_blank">the last article</a> about the Mono GC. It’s basically a set of 200.000 nodes which hold between 15 to 25 edges to instances of another type of nodes. One INSERT operation means that the starting node and all edges + connected nodes are inserted at once.</p>
<p>We did not use any bulk loading optimizations – we just fed the sones GraphDB with the INSERT queries. We tested on two platforms – on Windows x64 we used the Microsoft .NET Framework and on Linux x64 we used a current Mono 2.7 build which soon will be replaced by the 2.8 release.</p>
<p>After the import was done we started the benchmarking runs. Every run was given a specified time to complete it’s job. The number of queries that were executed within this time window was logged. Each run utilized 10 simultaneously querying clients. Each client executed randomly generated queries with pre-specified complexity.</p>
<p><strong>The Import</strong></p>
<p>Not surprisingly both platforms are almost head-to-head in average import times. While Mono starts way faster than .NET the .NET platform is faster at the end with a larger dataset. We also measured the ram consumption on each platform and it turns out that while Mono takes<strong> 17 kbyte per complex insert operation</strong> on average the Microsoft .NET Framework only seems to take <strong>11 kbyte per complex insert operation</strong>.</p>
<p><strong>The Benchmark</strong></p>
<p>Let the charts speak for themselves first:</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2010/09/mononet.png"><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="mononet" src="http://www.schrankmonster.de/wp-content/uploads/2010/09/mononet_thumb.png" border="0" alt="mononet" width="500" height="133" /></a></p>
<p>click to enlarge</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2010/09/benchmarkmonosgen1.png" target="_blank"><img style="display: inline; border-width: 0px;" title="benchmark-mono-sgen" src="http://www.schrankmonster.de/wp-content/uploads/2010/09/benchmarkmonosgen_thumb1.png" border="0" alt="benchmark-mono-sgen" width="500" height="338" /></a><br />
click on the picture to enlarge</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2010/09/benchmarkdotnet1.png" target="_blank"><img style="display: inline; border-width: 0px;" title="benchmark-dotnet" src="http://www.schrankmonster.de/wp-content/uploads/2010/09/benchmarkdotnet_thumb1.png" border="0" alt="benchmark-dotnet" width="500" height="333" /></a><br />
click on the picture to enlarge</p>
<p>As you can see on both platforms the sones GraphDB is able to work through more than 2.000 queries per second on average. For the longest running benchmark (1800 seconds) with all the data imported .NET allows us to answer 2.339 queries per second while Mono allows us to answer 1.980 queries per second.</p>
<p><strong>The Conclusion</strong></p>
<p>With the new generational garbage collector Mono surely made a great leap forward. It’s impressive to see the progress the Mono team was able to make in the last months regarding performance and memory consumption. We’re already considering Mono an important part of our platform strategy – this new garbage collector and benchmark results are showing us that it’s the right thing to do!</p>
<p><strong>UPDATE: </strong>There was a mishap in the “import objects per second” row of the above table.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/09/09/benchmarking-the-sones-graphdb-on-mono-sgen-and-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>taking the new and shiny Mono Simple Generational Garbage Collector ( mono-sgen ) for a walk&#8230;</title>
		<link>http://www.schrankmonster.de/2010/09/01/taking-the-new-and-shiny-mono-simple-generational-garbage-collector-mono-sgen-for-a-walk/</link>
		<comments>http://www.schrankmonster.de/2010/09/01/taking-the-new-and-shiny-mono-simple-generational-garbage-collector-mono-sgen-for-a-walk/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 16:34:08 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/09/01/taking-the-new-and-shiny-mono-simple-generational-garbage-collector-mono-sgen-for-a-walk/</guid>
		<description><![CDATA[“Mono is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft&#8217;s .Net Framework based on the ECMA standards for C# and the Common Language Runtime. We feel that by embracing a successful, standardized software platform, we can lower the barriers to producing great [...]]]></description>
			<content:encoded><![CDATA[<p><em>“Mono is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft&#8217;s .Net Framework based on the </em><a href="http://mono-project.com/ECMA"><em>ECMA</em></a><em> standards for C# and the Common Language Runtime. We feel that by embracing a successful, standardized software platform, we can lower the barriers to producing great applications for Linux.”</em> (<a href="http://mono-project.com/What_is_Mono" target="_blank">Source</a>)</p>
<p>In other words: Mono is the platform which is needed to run the sones GraphDB on any operating system different from Windows. It included the so called “Mono Runtime” which basically is the place where the sones GraphDB “lives” to do it’s work. </p>
<p>Being a runtime is not an easy task. In fact it’s abilities and algorithms take a deep impact on the performance of the application that runs on top of it. When it comes to all things related to memory management the garbage collector is one of the most important parts of the runtime:</p>
<p><em>“In computer science, <b>garbage collection</b> (<b>GC</b>) is a form of automatic memory management. It is a special case of resource management, in which the limited resource being managed is memory. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program. Garbage collection was invented by John McCarthy around 1959 to solve problems in Lisp.”</em> (<a href="http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29" target="_blank">Source</a>)</p>
<p>The Mono runtime has always used a simple garbage collector implementation called “<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/" target="_blank">Boehm-Demers-Weiser conservative garbage collector</a>”. This implementation is mainly known for its simplicity. But as more and more data intensive applications, like the sones GraphDB, started to appear this type of garbage collector wasn’t quite up to the job.</p>
<p>So the Mono team started the development on a Simple Generational Garbage collector whose properties are:</p>
<ul>
<li>Two generations. </li>
<li>Mostly precise scanning (stacks and registers are scanned conservatively). </li>
<li>Copying minor collector. </li>
<li>Two major collectors: Copying and Mark&amp;Sweep. </li>
<li>Per-thread fragments for fast per-thread allocation. </li>
<li>Uses write barriers to minimize the work done on minor collections. </li>
</ul>
<p>To fully understand what this new garbage collector does you most probably need to read <a href="http://www.mono-project.com/Compacting_GC" target="_blank">this</a> and take a look inside the <a href="http://github.com/mono/mono" target="_blank">mono s-gen garbage collector code</a>. </p>
<p>So what we did was taking the old and the new garbage collector and our GraphDB and let them iterate through an automated test which basically runs 200.000 insert queries which result in more than 3.4 million edges between more than 120.000 objects. The results were impressive when we compared the old mono garbage collector to the new mono-sgen garbage collector. </p>
<p>When we plotted a basic graph of the measurements we got that:</p>
<p>&#160;</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2010/09/monovsmonosgen.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="monovsmono-sgen" border="0" alt="monovsmono-sgen" src="http://www.schrankmonster.de/wp-content/uploads/2010/09/monovsmonosgen_thumb.png" width="450" height="375" /></a></p>
<p>On the x-axis it’s the number of inserts and on the y-axis it’s the time it takes to answer one query. So it’s a great measurement to see how big actually the impact of the garbage collector is on a complex application like the sones GraphDB. </p>
<p>The red curve is the old Boehm-Demers-Weiser conservative garbage collector built into current stable versions of mono. The blue curve is the new SGEN garbage collector which can be used by invoking Mono using the “mono-sgen” command instead of the “mono” command. Since mono-sgen is not included in any stable build yet it’s necessary to build mono from source. We documented how to do that <a href="http://developers.sones.de/wiki/doku.php?id=installation:mono" target="_blank">here</a>.</p>
<p>So what are we actually seeing in the chart? We can see that mono-sgen draws a fairly linear line in comparison to the old mono garbage collector. It’s easy to tell why the blue curve is rising – it’s because the number of objects is growing with each millisecond. The blue line is just what we are expecting from a hard working garbage collector. To our surprise the old garbage collector seems to have problems to cope with the number of objects over time. It spikes several times and in the end it even gets worse by spiking all over the place. That’s what we don’t want to see happening anywhere.</p>
<p>The conclusion is that if you are running something that does more than printing out “Hello World” on Mono you surely want to take a look at the new mono-sgen garbage collector. If you’re planning to run the sones GraphDB on Mono we highly recommend to use mono-sgen.</p>
</td>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/09/01/taking-the-new-and-shiny-mono-simple-generational-garbage-collector-mono-sgen-for-a-walk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>the &#8220;Crunchbase use-case&#8221; part 4 &#8211; the initial data import</title>
		<link>http://www.schrankmonster.de/2010/07/12/the-crunchbase-use-case-part-4-the-initial-data-import/</link>
		<comments>http://www.schrankmonster.de/2010/07/12/the-crunchbase-use-case-part-4-the-initial-data-import/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 13:59:29 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[sones]]></category>
		<category><![CDATA[Talks and Slides]]></category>
		<category><![CDATA[Crunchbase]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[GraphDB]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/07/12/the-crunchbase-use-case-part-4-the-initial-data-import/</guid>
		<description><![CDATA[It’s about time to import some data into our previously established object scheme. If you want to do this yourself you want to first run the Crunchbase mirroring tool and create your own mirror on your hard disk. In the next step another small tool needs to be written. A tool that creates nice clean [...]]]></description>
			<content:encoded><![CDATA[<p>It’s about time to import some data into our <a href="http://developers.sones.de/2010/07/01/the-crunchbase-use-case-part-3-which-data-and-how-does-a-gql-data-scheme-start/" target="_blank">previously established object scheme.</a> If you want to do this yourself you want to first run the Crunchbase mirroring tool and create your own mirror on your hard disk. </p>
<p>In the next step another small tool needs to be written. A tool that creates nice clean GQL import scripts for our data. Since every data source is different there’s not really a way around this step – in the end you’ll need to extract data here and import data here. One possible different solution could be to implement a dedicated importer for the GraphDB – but I’ll leave that for another article series. Back to our tool: It’s called <a href="http://developers.sones.de/wp-content/uploads/2010/07/First-Import.zip" target="_blank">“First-Import</a>” and it’s only purpose is to create a first small graph out of the mirrored Crunchbase data and fill the mainly primitive data attributes. <a href="http://developers.sones.de/wp-content/uploads/2010/07/First-Import.zip" target="_blank">Download this tool here.</a></p>
<p>This is why in this first step we mainly focus on the following object types:</p>
<ul>
<li><strong>Company</strong> </li>
<li><strong>FinancialOrganization</strong> </li>
<li><strong>Person</strong> </li>
<li><strong>Product</strong> </li>
<li><strong>ServiceProvider</strong> </li>
</ul>
<p>Additionally all edges to a company object and the competition will be imported in this part of the article series.</p>
<p>So what does the first-import tool do? Simple: </p>
<ol>
<li>it deserializes the JSON data into a useable object – in this case it’s written in C# and uses .NETs own JavaScript deserializer </li>
<li>it then maps all attributes of that deserialized JSON object to attribute names in our graph data object scheme and it does so by outputting a simple query
<ol>
<li>Simple Attribute Types like String and Integer are just simply assigned using the “=” operator in the Graph Query Language </li>
<li>1:1 References are assigned by assigning a REF(…) to the attribute – for example: <strong>INSERT INTO Product VALUES (Company = REF(Permalink=’companyname’))</strong> </li>
<li>1:n References are assigned by assigning a SETOF(…) to the attribute – because we are not using a bulk import interface but the standard GQL REST Interface it’s necessary that the object(s) we’re going to reference are already in existence – therefore we chose to do this 1:n linking step after creating the objects itself in a separate <strong>UPDATE</strong> step. Knowing this the <strong>UPDATE</strong> looks like this: <strong>UPDATE Company SET (ADD TO Competitions SETOF(permalink=’…’,permalink=’…’)) WHERE Permalink = ’companyname’</strong> </li>
</ol>
</li>
</ol>
<p>For the most part of the work it’s copy-n-paste to get the first-import tool together – it could have been done in a more sophisticated way (like using reflection on the deserialized JSON objects) but that’s most probably part of another article.</p>
<p>When run in the “crunchbase” directory created by the Crunchbase Mirroring tool the first-import tool generates GQL scripts – 6 of them to be precise:</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2010/07/crunchbasefirstimport.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" class="wlDisabledImage" title="crunchbase-first-import" border="0" alt="crunchbase-first-import" src="http://www.schrankmonster.de/wp-content/uploads/2010/07/crunchbasefirstimport_thumb.png" width="400" height="212" /></a></p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2010/07/gqlscriptspart4.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" class="wlDisabledImage" title="gql-scripts-part-4" border="0" alt="gql-scripts-part-4" src="http://www.schrankmonster.de/wp-content/uploads/2010/07/gqlscriptspart4_thumb.png" width="400" height="130" /></a></p>
<p>The last script is named “Step_3” because it’s supposed to come after all the others.</p>
<p>These scripts can be easily imported after establishing the object scheme. The thing is though – it won’t be that fast. Why is that? We’re creating several thousand nodes and the edges between them. To create such an edge the Query Language needs to identify the node the edge originates and the node the edge should point to. To find these nodes the user is free to specify matching criteria just like in a <strong>WHERE </strong>clause.</p>
<p>So if you do a <strong>UPDATE Company SET (ADD TO Competitions SETOF(Permalink=’company1’,Permalink=’company2’)) WHERE Permalink = ’companyname’</strong> the GraphDB needs to access the node identified by the Permalink Attribute with the value “companyname” and the two nodes with the values “company1” and “company2” to create the two edges. It will work just like all the scripts are but it won’t be as fast as it could be. What can help to speed up things are indices. Indices are used by the GraphDB to identify and find specific objects. These indices are used mainly in the evaluation of a <strong>WHERE</strong> clause.</p>
<p>The sones GraphDB offers a number of integrated indices, one of which is HASHTABLE which we are going to use in this example. Furthermore everyone interested can implement it’s own index plugin – we will have a tutorial how to do that online in the future – if you’re interested now just ask how we can help you to make it happen!</p>
<p>Back to the indices in our example:</p>
<p>The syntax of creating an index is quite easy, the only thing you have to do is tell the <strong>CREATE INDEX </strong>query on which type and attribute the index should be created and of which indextype the index should be. Since we’re using the Permalink attribute of the Crunchbase objects as an identifier in the example (it could be any other attribute or group of attributes that identify one particular object) we want to create indices on the Permalink attribute for the full speed-up. This would look like this:</p>
<ul>
<li><strong>CREATE INDEX ON Company (Permalink) INDEXTYPE HashTable</strong> </li>
<li><strong>CREATE INDEX ON FinancialOrganization (Permalink) INDEXTYPE HashTable</strong> </li>
<li><strong>CREATE INDEX ON Person (Permalink) INDEXTYPE HashTable</strong> </li>
<li><strong>CREATE INDEX ON ServiceProvider (Permalink) INDEXTYPE HashTable</strong> </li>
<li><strong>CREATE INDEX ON Product (Permalink) INDEXTYPE HashTable</strong> </li>
</ul>
<p> Looks easy, is easy! To take advantage of course this index creation should be done before creating the first nodes and edges.   <br /> 
<p>After we got that sorted the only thing that’s left is to run the scripts. This will, depending on your machine, take a minute or two.</p>
<p>So after running those scripts what happened is: all Company, FinancialOrganization, Person, ServiceProvider and Product objects are created and filled with primitive data types</p>
<ol>
<li>all attributes which are essentially references (1:1 or 1:n) to a Company object are being set, these are
<ol>
<li><strong>Company.Competitions</strong> </li>
<li><strong>Product.Company</strong> </li>
</ol>
</li>
</ol>
<p>That’s it for this part &#8211; in the next part of the series we will dive deeper into connecting nodes with edges. There is a ton of things that can be done with the data – stay tuned for the next part.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/07/12/the-crunchbase-use-case-part-4-the-initial-data-import/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The &quot;Crunchbase use-case&quot; part 3 &#8211; How does a graph data scheme start?</title>
		<link>http://www.schrankmonster.de/2010/07/12/the-crunchbase-use-case-part-3-which-data-and-how-does-a-gql-data-scheme-start/</link>
		<comments>http://www.schrankmonster.de/2010/07/12/the-crunchbase-use-case-part-3-which-data-and-how-does-a-gql-data-scheme-start/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 13:59:04 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[sones]]></category>
		<category><![CDATA[Talks and Slides]]></category>
		<category><![CDATA[Crunchbase]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[GraphDB]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/07/12/the-crunchbase-use-case-part-3-which-data-and-how-does-a-gql-data-scheme-start/</guid>
		<description><![CDATA[After the overview and the first use-case introduction it’s about time to play with some data objects. So how can one actually access the data of crunchbase? Easy as pie: Crunchbase offers an easy to use interface to get all information out of their database in a fairly structured JSON format. So what we did [...]]]></description>
			<content:encoded><![CDATA[<p>After the overview and the first use-case introduction it’s about time to play with some data objects.</p>
<p>So how can one actually access the data of crunchbase? Easy as pie: Crunchbase offers an easy to use interface to get all information out of their database in a fairly structured JSON format. So what we did is to write a tool that actually downloads all the available data to a local machine so we can play with it as we like in the following steps.</p>
<p>This small tool is called <a href="http://developers.sones.de/wp-content/uploads/2010/07/MirrorCrunchbaseJSON.zip" target="_blank">MirrorCrunchbase and can be downloaded in binary and sourcecode here.</a> As for all sourcecode and tools in this series this runs on windows and linux (mono). You can use the sourcecode to get an impression what’s going on there or just the included binaries (in bin/Debug) to mirror the data of Crunchbase.</p>
<p>To say a few words about what the MirrorCrunchbase tool actually does first a small source code excerpt:</p>
<p align="center"><a href="http://developers.sones.de/wp-content/uploads/2010/03/codesnippet_1.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="codesnippet_1" border="0" alt="codesnippet_1" src="http://developers.sones.de/wp-content/uploads/2010/03/codesnippet_1_thumb.png" width="400" height="316" /></a></p>
<p align="left">So first it gets the list of all objects like the <strong>company </strong>names and then it retrieves each <strong>company</strong> object according to it’s name and stores everything in .js files. Easy eh?</p>
<p>When it’s running you get an output similar to that:</p>
<p align="center"><a href="http://developers.sones.de/wp-content/uploads/2010/03/mirror_run_linux.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="mirror_run_linux" border="0" alt="mirror_run_linux" src="http://developers.sones.de/wp-content/uploads/2010/03/mirror_run_linux_thumb.png" width="400" height="265" /></a></p>
<p>And after the successful completion you should end up with a directory structure </p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/07/crunchbase_directory_structure.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="crunchbase_directory_structure" border="0" alt="crunchbase_directory_structure" src="http://www.schrankmonster.de/wp-content/uploads/2010/07/crunchbase_directory_structure_thumb.png" width="400" height="179" /></a></p>
<p>The .js files store basically every information according to the data scheme overview picture of <a href="http://developers.sones.de/2010/06/30/der-crunchbase-use-case-teil-2-eine-kurze-einfhrung/" target="_blank">part 2</a>.&#160; So what we want to do now is to transform this overview into a GQL data scheme we can start to work with. A main concept of sones GraphDB is to allow the user to evolve a data scheme over time. That way the user does not have to have the final data scheme before the first create statement. Instead the user can start with a basic data scheme representing only standard data types and add complex user defined types as migration goes along. That’s a fundamentally different approach from what database administrators and users are used to today.</p>
<p>Todays user generated data evolves and grows and it’s not possible to foresee in which way attributes need to be added, removed, renamed. Maybe the scheme changes completely. Everytime the necessity emerged to change anything on a established and populated data scheme it was about time to start a complex and costly migration process. To substantially reduce or even in some cases eliminate the need for such a complex process is a design goal of the sones GraphDB.</p>
<p>In the Crunchbase use-case this results in a fairly straight-forward process to establish and fill the data scheme. First we create all types with their correct name and add only those attributes which can be filled from the start – like primitives or direct references. All Lists and Sets of Edges can be added later on.</p>
<p>So these would be the Create-Type Statements to start with in this use-case:</p>
<ul>
<li>
<h5><strong>CREATE TYPE</strong> Company <strong>ATTRIBUTES</strong> ( <strong>String</strong> Alias_List, <strong>String</strong> BlogFeedURL,&#160;&#160;&#160; <strong>String</strong> BlogURL, <strong>String</strong> Category, <strong>DateTime</strong> Created_At, <strong>String</strong> CrunchbaseURL, <strong>DateTime</strong> Deadpooled_At, <strong>String</strong> Description, <strong>String</strong> EMailAdress, <strong>DateTime</strong> Founded_At, <strong>String</strong> HomepageURL, <strong>Integer</strong> NumberOfEmployees, <strong>String</strong> Overview, <strong>String</strong> Permalink, <strong>String</strong> PhoneNumber, <strong>String</strong> Tags, <strong>String</strong> TwitterUsername, <strong>DateTime</strong> Updated_At, <strong>Set&lt;<em>Company</em>&gt;</strong> Competitions )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> FinancialOrganization <strong>ATTRIBUTES</strong> ( <strong>String</strong> Alias_List, <strong>String</strong> BlogFeedURL, <strong>String</strong> BlogURL, <strong>DateTime</strong> Created_At, <strong>String</strong> CrunchbaseURL, <strong>String</strong> Description, <strong>String</strong> EMailAdress, <strong>DateTime</strong> Founded_At, <strong>String</strong> HomepageURL, <strong>String</strong> Name, <strong>Integer</strong> NumberOfEmployees, <strong>String</strong> Overview, <strong>String</strong> Permalink, <strong>String</strong> PhoneNumber, <strong>String</strong> Tags, <strong>String</strong> TwitterUsername, <strong>DateTime</strong> Updated_At )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Product <strong>ATTRIBUTES</strong> ( <strong>String</strong> BlogFeedURL, <strong>String</strong> BlogURL, <strong>Company</strong> Company, <strong>DateTime</strong> Created_At, <strong>String</strong> CrunchbaseURL, <strong>DateTime</strong> Deadpooled_At, <strong>String</strong> HomepageURL, <strong>String</strong> InviteShareURL, <strong>DateTime</strong> Launched_At, <strong>String</strong> Name, <strong>String</strong> Overview, <strong>String</strong> Permalink, <strong>String</strong> StageCode, <strong>String</strong> Tags, <strong>String</strong> TwitterUsername, <strong>DateTime</strong> Updated_At)</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> ExternalLink <strong>ATTRIBUTES</strong> ( <strong>String</strong> ExternalURL, <strong>String</strong> Title )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> EmbeddedVideo <strong>ATTRIBUTES</strong> ( <strong>String</strong> Description, <strong>String</strong> EmbedCode )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Image <strong>ATTRIBUTES</strong> ( <strong>String</strong> Attribution, <strong>Integer</strong> SizeX, <strong>Integer</strong> SizeY, <strong>String</strong> ImageURL )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> IPO <strong>ATTRIBUTES</strong> ( <strong>DateTime</strong> Published_At, <strong>String</strong> StockSymbol, <strong>Double</strong> Valuation, <strong>String</strong> ValuationCurrency )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Acquisition <strong>ATTRIBUTES</strong> ( <strong>DateTime</strong> Acquired_At, <strong>Company</strong> Company, <strong>Double</strong> Price, <strong>String</strong> PriceCurrency, <strong>String</strong> SourceDestination, <strong>String</strong> SourceURL, <strong>String</strong> TermCode )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Office <strong>ATTRIBUTES</strong> ( <strong>String</strong> Address1, <strong>String</strong> Address2, <strong>String</strong> City, <strong>String</strong> CountryCode, <strong>String</strong> Description, <strong>Double</strong> Latitude, <strong>Double</strong> Longitude, <strong>String</strong> StateCode, <strong>String</strong> ZipCode )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Milestone <strong>ATTRIBUTES</strong> ( <strong>String</strong> Description, <strong>String</strong> SourceDescription, <strong>String</strong> SourceURL, <strong>DateTime</strong> Stoned_At )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Fund <strong>ATTRIBUTES</strong> ( <strong>DateTime</strong> Funded_At, <strong>String</strong> Name, <strong>Double</strong> RaisedAmount, <strong>String</strong> RaisedCurrencyCode, <strong>String</strong> SourceDescription, <strong>String</strong> SourceURL )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Person <strong>ATTRIBUTES</strong> ( <strong>String</strong> AffiliationName, <strong>String</strong> Alias_List, <strong>String</strong> Birthplace, <strong>String</strong> BlogFeedURL, <strong>String</strong> BlogURL, <strong>DateTime</strong> Birthday, <strong>DateTime</strong> Created_At, <strong>String</strong> CrunchbaseURL, <strong>String</strong> FirstName, <strong>String</strong> HomepageURL, <strong>Image</strong> Image, <strong>String</strong> LastName, <strong>String</strong> Overview, <strong>String</strong> Permalink, <strong>String</strong> Tags, <strong>String</strong> TwitterUsername, <strong>DateTime</strong> Updated_At )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Degree <strong>ATTRIBUTES</strong> ( <strong>String</strong> DegreeType, <strong>DateTime</strong> Graduated_At, <strong>String</strong> Institution, <strong>String</strong> Subject )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Relationship <strong>ATTRIBUTES</strong> ( <strong>Boolean</strong> Is_Past, <strong>Person</strong> Person, <strong>String</strong> Title )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> ServiceProvider <strong>ATTRIBUTES</strong> ( <strong>String</strong> Alias_List, <strong>DateTime</strong> Created_At, <strong>String</strong> CrunchbaseURL, <strong>String</strong> EMailAdress, <strong>String</strong> HomepageURL, <strong>Image</strong> Image, <strong>String</strong> Name, <strong>String</strong> Overview, <strong>String</strong> Permalink, <strong>String</strong> PhoneNumber, <strong>String</strong> Tags, <strong>DateTime</strong> Updated_At )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Providership <strong>ATTRIBUTES</strong> ( <strong>Boolean</strong> Is_Past, <strong>ServiceProvider</strong> Provider, <strong>String</strong> Title )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> Investment <strong>ATTRIBUTES</strong> ( <strong>Company</strong> Company, <strong>FinancialOrganization</strong> FinancialOrganization, <strong>Person</strong> Person )</h5>
</li>
<li>
<h5><strong>CREATE TYPE</strong> FundingRound <strong>ATTRIBUTES</strong> ( <strong>Company</strong> Company, <strong>DateTime</strong> Funded_At, <strong>Double</strong> RaisedAmount, <strong>String</strong> RaisedCurrencyCode, <strong>String</strong> RoundCode, <strong>String</strong> SourceDescription, <strong>String</strong> SourceURL )</h5>
</li>
</ul>
<p>You can directly <a href="http://developers.sones.de/wp-content/uploads/2010/07/Step_1_Crunchbase_CreateTypes.zip" target="_blank">download the according GQL script here</a>. If you use the sonesExample application from our open source distribution you can create a subfolder “scripts” in the binary directory and put the downloaded script file there. When you’re using the integrated WebShell, which is by default launched on port 9975 an can be accessed by browsing to <a href="http://localhost:9975/WebShell">http://localhost:9975/WebShell</a> you can execute the script using the command “execdbscript” followed by the filename of the script.</p>
<p>As you can see it’s quite straight forward a copy-paste action from the graphical scheme. Even references are not represented by a difficult relational helper, instead if you want to reference a <strong>company</strong> object you can just do that (we actually did that – look for example at the last line of the gql script above). As a result when you execute the above script you get all the Types necessary to fill data in in the next step. </p>
<p>So that’s it for this part – in the next part of this series we will start the initial data import using a small tool which reads the mirrored data and outputs gql insert queries.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/07/12/the-crunchbase-use-case-part-3-which-data-and-how-does-a-gql-data-scheme-start/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The &#8220;CrunchBase use-case&#8221; &#8211; part 2 &#8211; A short introduction</title>
		<link>http://www.schrankmonster.de/2010/07/12/der-crunchbase-use-case-teil-2-eine-kurze-einfhrung/</link>
		<comments>http://www.schrankmonster.de/2010/07/12/der-crunchbase-use-case-teil-2-eine-kurze-einfhrung/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 13:58:30 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[sones]]></category>
		<category><![CDATA[Talks and Slides]]></category>
		<category><![CDATA[Crunchbase]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[GraphDB]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/07/12/der-crunchbase-use-case-teil-2-eine-kurze-einfhrung/</guid>
		<description><![CDATA[Where to start: existing data scheme and API This series already tells in it’s name what the use case is: The “CrunchBase”.&#160; On their website they speak for themselves to explain what it is: “CrunchBase is the free database of technology companies, people, and investors that anyone can edit.”. There are many reasons why this [...]]]></description>
			<content:encoded><![CDATA[<h3><strong>Where to start: existing data scheme and API</strong></h3>
<p>This series already tells in it’s name what the use case is: The “<a href="http://www.crunchbase.com/" target="_blank">CrunchBase</a>”.&#160; On their website they speak for themselves to explain what it is: <em>“CrunchBase is the free database of technology companies, people, and investors that anyone can edit.”</em>. There are many reasons why this was chosen as a use-case. One important reason is that all data behind the CrunchBase service is licensed under Creative-Commons-Attribution (CC-BY) license. So it’s freely available data of high-tech companies, people and investors.</p>
<p><a href="http://www.crunchbase.com" target="_blank"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="crunchbase_logo" border="0" alt="crunchbase_logo" src="http://developers.sones.de/wp-content/uploads/2010/03/crunchbase_logo1.png" width="216" height="37" /></a></p>
<p>Currently there are more than 40.000 different companies, 51.000 different people and 4.200 different investors in the database. The flood of information is big and the scale of connectivity even bigger. The graph represented by the nodes could be even bigger than that but because of the limiting factors of current relational database technology it’s not feasible to try to do that. </p>
<p>sones GraphDB is coming to the rescue: because it’s optimized to handle huge datasets of strongly connected data. Since the CrunchBase data could be uses as a starting point to drive connectivity to even greater detail it’s a great use-case to show these migration and handling.</p>
<p>Thankfully the developers at CrunchBase already made one or two steps into an object oriented world by offering an API which answers queries in JSON format. By using this API everyone can access the complete data set in a very structured way. That’s both good and bad. Because the used technologies don’t offer a way to represent linked objects they had to use what we call “relational helpers”. For example: A <strong>person</strong> founded a <strong>company</strong>. (person and company being a JSON object). There’s no standardized way to model a relationship between those two. So what the CrunchBase developers did is they added an unique-Identifier to each object. And they added a new object which is uses as a “relational helper”-object. The only purpose of these helper objects is to point towards a unique-identifier of another object type. So in our example the <strong>relationship </strong>attribute of the <strong>person </strong>object is not pointing directly to a specific company or relationship, but it’s pointing to the helper object which stores the information which unique-identifier of which object type is meant by that link.</p>
<p>To visualize this here’s the data scheme behind the CrunchBase (+all currently available links):</p>
<p align="center"><a href="http://developers.sones.de/wp-content/uploads/2010/03/CrunchbaseRelations.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="CrunchbaseRelations" border="0" alt="CrunchbaseRelations" src="http://developers.sones.de/wp-content/uploads/2010/03/CrunchbaseRelations_thumb.png" width="400" height="283" /></a></p>
<p>As you can see there are many more “relational helper” dead-ends in the scheme. What an application had to do up until now is to resolve these dead-ends by going the extra mile. So instead of retrieving a <strong>person </strong>and all <strong>relationships</strong>, and with them all data that one would expect, the application has to split the data into many queries to internally build a structure which essentially is a graph.</p>
<p>Another example would be the <strong>company </strong>object. Like the name implies all data of a company is stored there. It holds an attribute called <strong>investments </strong>which isn’t a primitive data type (like a number or text) but a user defined complex data type. This user defined data type is called <strong>List&lt;FundingRoundStructure&gt;</strong>. So it’s a simple list of <strong>FundingRoundStructure</strong> objects.</p>
<p>When we take a look at the <strong>FundingRoundStructure</strong> there’s an attribute called company which is made up by the user defined data type <strong>CompanyStructure</strong>.<strong> </strong>This <strong>CompanyStructure</strong> is one of these dead-ends because there’s just a name and a unique-id. The application now needs retrieve the right <strong>company</strong> object with this unique-id to access the company information. </p>
<p>Simple things told in a simple way: No matter where you start, you always will end up in a dead-end which will force you to start over with the information you found in that dead-end. It’s not user-friendly nor easy to implement. </p>
<p>The good news is that there is a way to handle this type of data and links between data in a very easy way. The sones GraphDB provides a rich set of features to make the life of developers and users easier. In that context: If we would like to know which companies also received funding from the same investor like let’s say the company “facebook” the only thing necessary would be one short query. Beside that those “relational helpers” are redundant information. That means in a graph database this information would be stored in the form of edges but not in any helper objects. </p>
<p>The reason why the developers of CrunchBase had to use these helpers is that JSON and the relational table behind it isn’t able to directly store this information or to query it directly. <a href="http://en.wikipedia.org/wiki/Relational_database" target="_blank">To learn more about those relational tables and databases try this link.</a></p>
<p>I want to end this part of the series with a picture of the above relational diagram (without the arrows and connections). </p>
<p align="center"><a href="http://developers.sones.de/wp-content/uploads/2010/03/Crunchbase1.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Crunchbase" border="0" alt="Crunchbase" src="http://developers.sones.de/wp-content/uploads/2010/03/Crunchbase_thumb1.png" width="400" height="337" /></a></p>
<p>The next part of the series will show how we can access the available information and how a graph scheme starts to evolve.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/07/12/der-crunchbase-use-case-teil-2-eine-kurze-einfhrung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The &#8220;CrunchBase use-case&#8221; &#8211; part 1 &#8211; Overview</title>
		<link>http://www.schrankmonster.de/2010/07/12/der-crunchbase-use-case-teil-1-bersicht/</link>
		<comments>http://www.schrankmonster.de/2010/07/12/der-crunchbase-use-case-teil-1-bersicht/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 13:57:32 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[sones]]></category>
		<category><![CDATA[Talks and Slides]]></category>
		<category><![CDATA[Crunchbase]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[GraphDB]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/07/12/der-crunchbase-use-case-teil-1-bersicht/</guid>
		<description><![CDATA[If you want to explain how easy it is for a user or developer to use the sones GraphDB to work on existing datasets you do that by showing him an example – a use case. And this is exactly what this short series of articles will do: It’ll show the important steps and concepts, [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to explain how easy it is for a user or developer to use the sones GraphDB to work on existing datasets you do that by showing him an example – a use case. And this is exactly what this short series of articles will do: It’ll show the important steps and concepts, technologies and designs behind the use case and the sones GraphDB.</p>
<p>The sones GraphDB is a DBMS focusing on strong connected unstructured and semi-structured data. As the name implies these data sets are organized in Nodes and Edges objectoriented in a graph data structure.</p>
<p align="center"><a href="http://developers.sones.de/wp-content/uploads/2010/03/graph.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="graph" border="0" alt="graph" src="http://developers.sones.de/wp-content/uploads/2010/03/graph_thumb.png" width="400" height="291" /></a></p>
<p align="center"><em>“a simple graph”</em></p>
<p>To handle these complex graph data structures the user is given a powerful toolset: the graph query language. It’s a lot like SQL when it comes to comprehensibility – but when it comes to functionality it’s completely designed to help the user do previously tricky or impossible things with one easy query.</p>
<p>This articles series is going to show how real conventional-relational data is aggregated and ported to an easy to understand and more flexible graph datastructure using the sones GraphDB. And because this is not only about telling but also about doing we will release all necessary tools and source codes along with this article. That means: This is a workshop and a use case in one awesome article series. </p>
<p>The requirements to follow all steps of this series are: You want to have a working sone GraphDB. Because we just released the OpenSource Edition Version 1.1 you should be fine following <a href="http://developers.sones.com/wiki/" target="_blank">the documentation on how to download and install it here</a>. Beside that you won’t need programming skills but if you got them you can dive deep into every aspect. Be our guest!</p>
<p>This first article is titled “Overview” and that’s what you’ll get:</p>
<blockquote><p><em><strong>part 1: Overview</strong></em></p>
<p><em><strong>part 2: A short introduction into the use-case and it’s relational data</strong></em></p>
<p><em><strong>part 3: Which data and how does a GQL data scheme start?</strong></em></p>
<p><em><strong>part 4: The initial data import</strong></em></p>
<p><strong><em>part 5:&#160; Linking nodes and edges: What’s connected with what and how does the scheme evolve?</em></strong></p>
<p><strong><em>part 6: Querying the data and how to access it from applications?</em></strong></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/07/12/der-crunchbase-use-case-teil-1-bersicht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cheat Sheets are cool</title>
		<link>http://www.schrankmonster.de/2010/07/12/cheat-sheets-are-cool/</link>
		<comments>http://www.schrankmonster.de/2010/07/12/cheat-sheets-are-cool/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 11:39:15 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Talks and Slides]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/07/12/cheat-cheets-are-cool/</guid>
		<description><![CDATA[Well if you want just the essence of information that makes you go faster on your daily tasks cheat sheets are just that: the essence of information. Today I found this cheat sheet particularly useful: Source: http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html]]></description>
			<content:encoded><![CDATA[<p>Well if you want just the essence of information that makes you go faster on your daily tasks cheat sheets are just that: the essence of information. </p>
<p>Today I found this cheat sheet particularly useful:</p>
<p align="center"><a href="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="git-cheet-sheet-small" border="0" alt="git-cheet-sheet-small" src="http://www.schrankmonster.de/wp-content/uploads/2010/07/gitcheetsheetsmall.png" width="244" height="188" /></a></p>
<p>Source: <a title="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html" href="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html">http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/07/12/cheat-sheets-are-cool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To strip those TFS Source Control references from Visual Studio Solutions</title>
		<link>http://www.schrankmonster.de/2010/04/22/how-to-strip-those-tfs-source-control-references-from-visual-studio-solutions-2/</link>
		<comments>http://www.schrankmonster.de/2010/04/22/how-to-strip-those-tfs-source-control-references-from-visual-studio-solutions-2/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 12:55:53 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/04/22/how-to-strip-those-tfs-source-control-references-from-visual-studio-solutions-2/</guid>
		<description><![CDATA[Every once in a while you download some code and fire up your Visual Studio and find out that this particular solution was once associated to a team foundation server you don’t know or have a login to. Like when you download source code from CodePlex and you get this “Please type in your username+password [...]]]></description>
			<content:encoded><![CDATA[<p>Every once in a while you download some code and fire up your Visual Studio and find out that this particular solution was once associated to a team foundation server you don’t know or have a login to. Like when you download source code from CodePlex and you get this <em>“Please type in your username+password for this CodePlex Team Foundation Server”</em>.</p>
<p>Or maybe you’re working on your companies team foundation server and you want to put some code out in the public. You surely want to get rid of these Team Foundation Server bindings.</p>
<p>There’s a fairly complicated way in Visual Studio to do this but since I was able to produce unforseen side effects I do not recommend it. </p>
<p>So what I did was looking into those files a Visual Studio Solution and Project consists of. And I found that there are really just a few files that hold those association information. As you can see in the picture below there are several files side by side to the .sln and .csproj files – like that .vssscc and .vspscc file. Even inside the .csproj and .sln file there are hints that lead to the team foundation server – so obviously besides removing some files a tool would have to edit some files to remove the tfs association.</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/04/stripfiles.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="strip-files" border="0" alt="strip-files" src="http://www.schrankmonster.de/wp-content/uploads/2010/04/stripfiles_thumb.png" width="404" height="325" /></a> </p>
<p>So I wrote such a tool and I am going release it’s source code just beneath this article. Have fun with it. It compiles with Visual Studio and even Mono Xbuild – actually I wrote it with Monodevelop on Linux <img src='http://www.schrankmonster.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Multi-platform galore! Who would have thought of that in the founding days of the .NET platform?</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/04/BildschirmfotoStripTeamFoundationServerInformationMain.csMonoDevelop.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Bildschirmfoto-StripTeamFoundationServerInformation - Main.cs - MonoDevelop" border="0" alt="Bildschirmfoto-StripTeamFoundationServerInformation - Main.cs - MonoDevelop" src="http://www.schrankmonster.de/wp-content/uploads/2010/04/BildschirmfotoStripTeamFoundationServerInformationMain.csMonoDevelop_thumb.png" width="404" height="277" /></a> </p>
<p>So this is easy – this small tool runs on command line and takes one parameter. This parameter is the path to a folder you want to traverse and remove all team foundation server associations in. So normally I take a check-out folder and run the tool on that folder and all its subfolders to remove all associations.</p>
<p>So if you want to have this cool tool you just have to click here: <a href="http://www.schrankmonster.de/wp-content/uploads/2010/04/StripTeamFoundationServerInformation.zip">Sourcecode Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/04/22/how-to-strip-those-tfs-source-control-references-from-visual-studio-solutions-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CeBIT started and we have a demo!</title>
		<link>http://www.schrankmonster.de/2010/03/03/cebit-started-and-we-have-a-demo/</link>
		<comments>http://www.schrankmonster.de/2010/03/03/cebit-started-and-we-have-a-demo/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 15:20:15 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/03/03/cebit-started-and-we-have-a-demo/</guid>
		<description><![CDATA[The effort of 10 days materializes in a Microsoft Surface demo. And you can see it at MSDN Developer Kino every day during CeBIT. &#160;]]></description>
			<content:encoded><![CDATA[<p>The effort of 10 days materializes in a Microsoft Surface demo. And you can see it at MSDN Developer Kino every day during CeBIT.</p>
<div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:098c1834-f8da-492e-9a47-e07311232593" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/J_a9UEp3U-M&amp;hl=de_DE&amp;fs=1&amp;&amp;hl=en"></param><embed src="http://www.youtube.com/v/J_a9UEp3U-M&amp;hl=de_DE&amp;fs=1&amp;&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p align="left">&#160;</p>
<p align="left"><a href="http://www.sones.com" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="IMG_0733" border="0" alt="IMG_0733" src="http://www.schrankmonster.de/wp-content/uploads/2010/03/IMG_0733.jpg" width="304" height="404" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/03/03/cebit-started-and-we-have-a-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developing on a Microsoft Surface Table</title>
		<link>http://www.schrankmonster.de/2010/02/20/developing-on-a-microsoft-surface-table/</link>
		<comments>http://www.schrankmonster.de/2010/02/20/developing-on-a-microsoft-surface-table/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 19:40:55 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/02/20/developing-on-a-microsoft-surface-table/</guid>
		<description><![CDATA[At sones I am involved in a project that works with a piece of hardware I wanted to work with for about 3 years now: the Microsoft Surface Table. I was able to play with some tables every now and then but I never had a “business case” which contained a Surface. Now that case [...]]]></description>
			<content:encoded><![CDATA[<p>At sones I am involved in a project that works with a piece of hardware I wanted to work with for about 3 years now: the Microsoft Surface Table.</p>
<p>I was able to play with some tables every now and then but I never had a “business case” which contained a Surface. Now that case just came to us: sones is at the CeBIT fair this year – we were invited by <a href="http://www.microsoft.de">Microsoft Germany</a> to join them and present our cool technology along with theirs.</p>
<p>Since we already had a graph visualisation tool the idea was to bring that tool to Surface and use the platform specific touch controls and gestures.</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/02/surface_visualgraph.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="surface_visualgraph" border="0" alt="surface_visualgraph" src="http://www.schrankmonster.de/wp-content/uploads/2010/02/surface_visualgraph_thumb.png" width="404" height="228" /></a>    <br />the VisualGraph application that gave the initial idea</p>
<p>The good news was that it’s easier than thought to develop an application for Surface and all parties are highly committed to the project. The bad news is that we were short on time right from the start: less than 10 days from concept to live presentation isn’t the definition of “comfortable time schedule”. And since we’re currently in the process of development it’s a continueing race.</p>
<p>Thankfully Microsoft is committed to a degree they even made it possible to have two great Surface and WPF ninjas who enable is to get up to speed with the project (thanks to Frank Fischer, Andrea Kohlbauer-Hug, Rainer Nasch and Denis Bauer, you guys rock!).</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/02/surface_simulator.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="surface_simulator" border="0" alt="surface_simulator" src="http://www.schrankmonster.de/wp-content/uploads/2010/02/surface_simulator_thumb.png" width="387" height="244" /></a>    <br />a Surface simulator</p>
<p>I was able to convice <a href="http://www.uid.com">UID</a> to jump in and contribute their designing and user interface knowledge to our little project (thanks to Franz Koller and Cristian Acevedo).</p>
<p>During the process of development I made some pictures which will be used here and there promoting the demonstration. To give you an idea of the progress we made here’s a before and after picture:</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/02/Surface_Finger2.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Surface_Finger2" border="0" alt="Surface_Finger2" src="http://www.schrankmonster.de/wp-content/uploads/2010/02/Surface_Finger2_thumb.png" width="404" height="244" /></a>    <br />We started with a simple port of VisualGraph to the surface table…</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2010/02/Surface_Finger.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Surface_Finger" border="0" alt="Surface_Finger" src="http://www.schrankmonster.de/wp-content/uploads/2010/02/Surface_Finger_thumb.png" width="400" height="244" /></a>    <br />…and had something better working and looking at the end of that day.</p>
<p>I think everyone did a great job so far and will continue to do so – a lot work to be done till CeBIT! <img src='http://www.schrankmonster.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Source 1: <a href="http://www.sones.com">http://www.sones.com</a>    <br />Source 2: <a href="http://www.microsoft.de">http://www.microsoft.de</a>    <br />Source 3: <a title="http://www.uid.com/" href="http://www.uid.com/">http://www.uid.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/02/20/developing-on-a-microsoft-surface-table/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>sones GraphDB Visualization Tool</title>
		<link>http://www.schrankmonster.de/2010/01/25/sones-graphdb-visualization-tool/</link>
		<comments>http://www.schrankmonster.de/2010/01/25/sones-graphdb-visualization-tool/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 17:19:56 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/01/25/sones-graphdb-visualization-tool/</guid>
		<description><![CDATA[We want to show you something today: Not everybody has an idea what to think and do with a graph data structure. Not even talking about a whole graph database management system. In fact what everybody needs is something to get “in touch” with those kinds of data representations. To make the graphs you are [...]]]></description>
			<content:encoded><![CDATA[<p>We want to show you something today: Not everybody has an idea what to think and do with a graph data structure. Not even talking about a whole graph database management system. In fact what everybody needs is something to get “in touch” with those kinds of data representations. </p>
<p>To make the graphs you are creating with the sones GraphDB that much more touchable we give you a sneak peak at our newest addition of the sone GraphDB toolset: the VisualGraph tool.</p>
<p>This tool connects to a running database and allows you to run queries on that database. The result of those queries is then presented to you in a much more natural and intuitive way, compared to the usual JSON and XML outputs. Even more: you can play with your queries and your data and see and feel what it’s like to work with a graph.</p>
<p>Expect this tool to be released in the next 1-2 months as open source. Everyone can use it, Everyone can benefit from it.</p>
<p>Oh. Almost forgot the video:</p>
<p align="center">
<p>&#160;</p>
<p align="center">
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:6dcf1e31-2321-4e6a-9432-e09dff601f5c" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/vJhwjls5Gxg&amp;hl=de_DE&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00&amp;hd=1&amp;hl=en"></param><embed src="http://www.youtube.com/v/vJhwjls5Gxg&amp;hl=de_DE&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00&amp;hd=1&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p align="center">(Watch it in full screen if you can) </p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/01/25/sones-graphdb-visualization-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>developing a command line interface for the sones GraphDB</title>
		<link>http://www.schrankmonster.de/2010/01/14/developing-a-command-line-interface-for-the-sones-graphdb/</link>
		<comments>http://www.schrankmonster.de/2010/01/14/developing-a-command-line-interface-for-the-sones-graphdb/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 17:12:06 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[hack-the-planet]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/01/14/developing-a-command-line-interface-for-the-sones-graphdb/</guid>
		<description><![CDATA[As you may know, my team and I are developing a graph database. A graph database is a database which is able to handle such things as the following: social graph So instead of tables with rows and columns, a graph database concentrates on objects and the connections between them and is therefore forming a [...]]]></description>
			<content:encoded><![CDATA[<p>As you may know, my team and I are developing a graph database. A graph database is a database which is able to handle such things as the following:</p>
<p align="center"><a href="http://en.wikipedia.org/wiki/Social_graph" target="_blank"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="510px-Sna_large" border="0" alt="510px-Sna_large" src="http://www.schrankmonster.de/wp-content/uploads/2010/01/510pxSna_large.png" width="341" height="400" /></a><a href="http://en.wikipedia.org/wiki/Social_graph" target="_blank">social graph</a></p>
<p>So instead of tables with rows and columns, a graph database concentrates on objects and the connections between them and is therefore forming a graph which can be queried, traversed, whatever-you-might-want-to-do.</p>
<p>Lately more and more companies start realizing that their demand for storing unstructured data is growing. Reflecting on unstructured data, I always think of data which cannot single-handedly be mapped in columns and rows (e.g. tables). Normally complex relations between data are represented in relation-tables only containing this relational information. The complexity to query these data structures is humongous as the table based database needs to ‘calculate’ (JOINs, …) the relations every time they are queried. Even though modern databases cache these calculations the costs in terms of memory and cpu time are huge. </p>
<p>Graph databases more or less try to represent this graph of objects and edges (as the relations are called there) as native as possible. The sones GraphDB we have been working on for the last 5 years does exactly that: It stores and queries a data structure which represents a graph of objects. Our approach is to give the user a simple and easy to learn query language and handle all the object storage and object management tasks in a fully blown object oriented graph database developed from the scratch.</p>
<p>Since not everybody seems to have heard of graph databases, we thought it might be a good idea to lower barriers by providing personalized test instances. Everyone can get one of these without the need to install anything – a working AJAX/Javascript compatible browser will suit all needs. (<a href="http://www.sones.com/partner?p_p_id=2_WAR_LiSi&amp;p_p_lifecycle=0&amp;p_p_state=normal&amp;p_p_mode=view&amp;p_p_col_id=column-2&amp;p_p_col_count=1&amp;_2_WAR_LiSi_struts_action=%2Fnetwork%2Fadd_user&amp;_2_WAR_LiSi_regType=Tester&amp;_2_WAR_LiSi_redirect=/partner" target="_blank">get your instance here.</a>)</p>
<p align="justify">
<p>Of course the user can choose between different ways to access the database test instance (like SOAP and REST) but the one we just released only needs a browser.</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2010/01/standard_cli.png" target="_blank"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="standard_cli" border="0" alt="standard_cli" src="http://www.schrankmonster.de/wp-content/uploads/2010/01/standard_cli_thumb.png" width="404" height="173" /></a> </p>
<p>The sones GraphDB WebShell – as we call it – resembles a command line interface. The user can type a query and it is instantly executed on the database server and the results are presented in either a xml, json or text format. </p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2010/01/graphdbwebshell.png" target="_blank"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="graphdb-webshell" border="0" alt="graphdb-webshell" src="http://www.schrankmonster.de/wp-content/uploads/2010/01/graphdbwebshell_thumb.png" width="404" height="220" /></a> </p>
<p align="justify">Granted – the interested user needs to know about the query language and the possible usage scenarios. Everyone can access a <a href="http://developers.sones.de/wp-content/uploads/2009/11/graphDB-Query-Language-Syntax-Documentation-english.pdf" target="_blank">long</a> and a <a href="http://developers.sones.de/wp-content/uploads/2010/01/sonesGQLcheatsheet_13012010.pdf" target="_blank">short documentation here.</a></p>
<p>Source 1: <a title="http://en.wikipedia.org/wiki/Social_graph" href="http://en.wikipedia.org/wiki/Social_graph">http://en.wikipedia.org/wiki/Social_graph</a>     <br />Source 2: <a href="http://www.sones.com">http://www.sones.com</a>     <br />Source 3: <a href="http://developers.sones.de/wp-content/uploads/2009/11/graphDB-Query-Language-Syntax-Documentation-english.pdf" target="_blank">Long documentation</a>     <br />Source 4: <a href="http://developers.sones.de/wp-content/uploads/2010/01/sonesGQLcheatsheet_13012010.pdf" target="_blank">Short documentation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/01/14/developing-a-command-line-interface-for-the-sones-graphdb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>draw Sequence Diagrams by writing them on a website</title>
		<link>http://www.schrankmonster.de/2010/01/13/draw-sequence-diagrams-by-writing-them-on-a-website/</link>
		<comments>http://www.schrankmonster.de/2010/01/13/draw-sequence-diagrams-by-writing-them-on-a-website/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 08:27:03 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Drawing]]></category>
		<category><![CDATA[graphics]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2010/01/13/draw-sequence-diagrams-by-writing-them-on-a-website/</guid>
		<description><![CDATA[Since we are developers we do need tools to note and draw what we think would solve the problems of this planet. One way to draw a sequence of actions would be a sequence diagram. There are a nbumber of tools to draw them but now I came across a web service that would allow [...]]]></description>
			<content:encoded><![CDATA[<p>Since we are developers we do need tools to note and draw what we think would solve the problems of this planet.</p>
<p>One way to draw a sequence of actions would be a <a href="http://en.wikipedia.org/wiki/Sequence_diagram" target="_blank">sequence diagram</a>. There are a nbumber of tools to draw them but now I came across a web service that would allow me to write my sequence diagram in a easy textual representation and then it draws the diagram for me. Great stuff!</p>
<p><a href="http://websequencediagrams.com/" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="webseqdiagram" border="0" alt="webseqdiagram" src="http://www.schrankmonster.de/wp-content/uploads/2010/01/webseqdiagram.png" width="404" height="352" /></a> </p>
<p>Source 1: <a title="http://en.wikipedia.org/wiki/Sequence_diagram" href="http://en.wikipedia.org/wiki/Sequence_diagram">http://en.wikipedia.org/wiki/Sequence_diagram</a>    <br />Source 2: <a title="http://websequencediagrams.com/" href="http://websequencediagrams.com/">http://websequencediagrams.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2010/01/13/draw-sequence-diagrams-by-writing-them-on-a-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>If you want to determine if your code is being compiled by Mono&#8230;</title>
		<link>http://www.schrankmonster.de/2009/12/22/if-you-want-to-determine-if-your-code-is-being-compiled-by-mono/</link>
		<comments>http://www.schrankmonster.de/2009/12/22/if-you-want-to-determine-if-your-code-is-being-compiled-by-mono/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 16:28:34 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/12/22/if-you-want-to-determine-if-your-code-is-being-compiled-by-mono/</guid>
		<description><![CDATA[… you can use the “__MonoCS_” pre-processor flag.]]></description>
			<content:encoded><![CDATA[<p>… you can use the “__MonoCS_” pre-processor flag.</p>
<p align="center"><a href="http://www.schrankmonster.de/wp-content/uploads/2009/12/monoifdef.png" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="mono-ifdef" border="0" alt="mono-ifdef" src="http://www.schrankmonster.de/wp-content/uploads/2009/12/monoifdef_thumb.png" width="400" height="254" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/12/22/if-you-want-to-determine-if-your-code-is-being-compiled-by-mono/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>small tool to filter iCal / iCalendar / ICS files</title>
		<link>http://www.schrankmonster.de/2009/12/06/small-tool-to-filter-ical-icalendar-ics-files/</link>
		<comments>http://www.schrankmonster.de/2009/12/06/small-tool-to-filter-ical-icalendar-ics-files/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 18:12:48 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[private]]></category>
		<category><![CDATA[Reallife]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/12/06/small-tool-to-filter-ical-icalendar-ics-files/</guid>
		<description><![CDATA[I am managing my appointments using Outlook on windows and iCal on OS X. Since I am not using any Exchange service right now I was happy to find out that Outlook offers a functionality to export a local calendar automatically to an iCalendar compatible ICS file. Great feature but it lacks some things I [...]]]></description>
			<content:encoded><![CDATA[<p>I am managing my appointments using Outlook on windows and iCal on OS X. Since I am not using any Exchange service right now I was happy to find out that Outlook offers a functionality to export a local calendar automatically to an iCalendar compatible ICS file. Great feature but it lacks some things I desperately need.</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2009/12/outlookg.png" target="_blank"><img style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="outlookg" src="http://www.schrankmonster.de/wp-content/uploads/2009/12/outlookg_thumb.png" border="0" alt="outlookg" width="404" height="242" /></a></p>
<p>Since I am managing my private and my business appointments in the same calendar, differentiating just by categories, I had a hard time configuring outlook to export a) an ics file containing all business appointments and b) an ics file containing all private appointments. It’s not possible to make the story short.</p>
<p>So I fired up Visual Studio as usual and wrote my own filter tool. I shall call it “iCalFilter”. It’s name is as simple as it’s functionality and code. I am releasing it under BSD license including the sources so everyone can use and modify it.</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2009/12/icalfilter_1.png" target="_blank"><img style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="icalfilter_1" src="http://www.schrankmonster.de/wp-content/uploads/2009/12/icalfilter_1_thumb.png" border="0" alt="icalfilter_1" width="404" height="61" /></a></p>
<p>It’s a command line tool which should compile on Microsoft .NET and Mono. It takes several command line parameters like:</p>
<ol>
<li>Input-File</li>
<li>Output-File</li>
<li>“include” or “exclude” –&gt; this determines if the following categories are included or excluded in the output file</li>
<li>a list of categories separated by spaces</li>
<li>an optional parameter “-remove-description” which, if entered, removes all descriptions from events and alarms</li>
</ol>
<p>Easy, eh?!</p>
<p>Grab the Source and Binary here: <a title="http://dropbox.schrankmonster.de/dropped/iCalFilter01.zip" href="http://dropbox.schrankmonster.de/dropped/iCalFilter01.zip">http://dropbox.schrankmonster.de/dropped/iCalFilter01.zip</a></p>
<p>UPDATE: You can now access <a href="https://github.com/bietiekay/iCalFilter" target="_blank">the source code on github!</a> You can even add your changes!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/12/06/small-tool-to-filter-ical-icalendar-ics-files/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unser erster Presse-Artikel im heise Newsticker</title>
		<link>http://www.schrankmonster.de/2009/11/23/unser-erster-presse-artikel-im-heise-newsticker/</link>
		<comments>http://www.schrankmonster.de/2009/11/23/unser-erster-presse-artikel-im-heise-newsticker/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 13:48:29 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/11/23/unser-erster-presse-artikel-im-heise-newsticker/</guid>
		<description><![CDATA[Was für ein Tag. Nachdem wir vor ein paar Tagen nach viel harter Arbeit die “Technical Preview” unseres Babys “graphDB” gestartet haben hat nun auch der heise Verlag – namentlich die iX die frohe Kunde aufgegriffen und einen entsprechenden Artikel im Newsticker veröffentlich. Wenn man sich auf jede Instanz die im Moment für Tester läuft [...]]]></description>
			<content:encoded><![CDATA[<p>Was für ein Tag. Nachdem wir vor ein paar Tagen nach viel harter Arbeit die “Technical Preview” unseres Babys “graphDB” gestartet haben hat nun auch der heise Verlag – namentlich die iX die frohe Kunde aufgegriffen und einen entsprechenden Artikel im Newsticker veröffentlich.</p>
<p>Wenn man sich auf jede Instanz die im Moment für Tester läuft ein Login geben lässt sieht das übrigends so aus:</p>
<p align="center"><a href="http://www.sones.com" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="hosting75instances" border="0" alt="hosting75instances" src="http://www.schrankmonster.de/wp-content/uploads/2009/11/hosting75instances.png" width="600" height="375" /></a> </p>
<p>Wundervoll zu sehen dass die Arbeit von exzellenten Entwicklern entsprechende Würdigung durch Kunden erhält. Interesse ist gut und ich denke in Zukunft wird man noch viel von der sones graphDB hören!</p>
<p>Source: <a title="http://www.heise.de/newsticker/meldung/Objektorientierte-Datenbank-als-Webservice-866041.html" href="http://www.heise.de/newsticker/meldung/Objektorientierte-Datenbank-als-Webservice-866041.html">http://www.heise.de/newsticker/meldung/Objektorientierte-Datenbank-als-Webservice-866041.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/11/23/unser-erster-presse-artikel-im-heise-newsticker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So what exactly is Microsoft Research doing?</title>
		<link>http://www.schrankmonster.de/2009/11/11/so-what-exactly-is-microsoft-research-doing/</link>
		<comments>http://www.schrankmonster.de/2009/11/11/so-what-exactly-is-microsoft-research-doing/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 09:23:07 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[hack-the-planet]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/11/11/so-what-exactly-is-microsoft-research-doing/</guid>
		<description><![CDATA[I am proud to anounce that there’s a video publicly available which shows parts and projects Microsoft Research is working on currently. It’s great to see theses projects, concepts and ideas become publicly available one by one: “Craig Mundie, chief research and strategy officer of Microsoft, presents “Rethinking Computing,” a look a how software and [...]]]></description>
			<content:encoded><![CDATA[<p>I am proud to anounce that there’s a video publicly available which shows parts and projects Microsoft Research is working on currently. It’s great to see theses projects, concepts and ideas become publicly available one by one:</p>
<p>“Craig Mundie, chief research and strategy officer of Microsoft, presents “Rethinking Computing,” a look a how software and information technology can help solve the most pressing global challenges we face today. Part of UW’s Computer Science and Engineering’s Distinguished Lecture Series, Mundie demonstrates a number of current and future-looking technologies that show how computer science is changing scientific exploration and discovery in exciting ways. He discusses the role of new science in solving the global energy crisis, and answer questions from the audience.”</p>
<p><a href="http://www.uwtv.org/programs/displayevent.aspx?rID=30363&amp;fID=6021" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="uwtv" border="0" alt="uwtv" src="http://www.schrankmonster.de/wp-content/uploads/2009/11/uwtv.png" width="404" height="280" /></a></p>
<p>Source: <a title="http://www.uwtv.org/programs/displayevent.aspx?rID=30363&amp;fID=6021" href="http://www.uwtv.org/programs/displayevent.aspx?rID=30363&amp;fID=6021">http://www.uwtv.org/programs/displayevent.aspx?rID=30363&amp;fID=6021</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/11/11/so-what-exactly-is-microsoft-research-doing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to unleash the &#8220;Virtual WiFi&#8221; feature in Windows 7 in C#</title>
		<link>http://www.schrankmonster.de/2009/11/11/how-to-unleash-the-virtual-wifi-feature-in-windows-7-in-c/</link>
		<comments>http://www.schrankmonster.de/2009/11/11/how-to-unleash-the-virtual-wifi-feature-in-windows-7-in-c/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 09:09:59 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/11/11/how-to-unleash-the-virtual-wifi-feature-in-windows-7-in-c/</guid>
		<description><![CDATA[Great stuff ahead – this is just the thing I would want to write if it’s not been written already. This tool is free and open source and it’s the perfect workaround for those usual cases when you want to download a podcast in your holiday and your apple branded device tells you “You can [...]]]></description>
			<content:encoded><![CDATA[<p>Great stuff ahead – this is just the thing I would want to write if it’s not been written already. This tool is free and open source and it’s the perfect workaround for those usual cases when you want to download a podcast in your holiday and your apple branded device tells you “You can only download files up to 10 Megabyte over 3G connections” – You take your notebook, log into 3G, create a WiFi Hotspot with this tool and off you go. </p>
<p><em>“Over the last week some of you may have heard about Connectify. It’s an app that unleashes the “Virtual WiFi” and Wireless Hosted Network features of Windows 7 to turn a PC into a Wireless Access Point or Hot Spot. Well, I looked into what it would take to build such an app, and it really wasn’t that difficult since Windows 7 has all the API’s built in to do it. After some time of looking things up and referencing the “Wireless Hosted Network” C++ sample within the WIndows 7 SDK, I now have a nice working version of the application to release. I’m calling this project “Virtual Router” since it essentially allows you to host a software based wireless router from your laptop or other PC with a Wifi card. Oh, and did I mention that this is FREE and OPEN SOURCE!”</em></p>
<p><a href="http://virtualrouter.codeplex.com/" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="VirtualRouterScreensshot" border="0" alt="VirtualRouterScreensshot" src="http://www.schrankmonster.de/wp-content/uploads/2009/11/VirtualRouterScreensshot.png" width="404" height="284" /></a> </p>
<p><em>“The Wireless Network create/shared with Virtual Router uses WPA2 Encryption, and there is not way to turn off that encryption. This is actually a feature of the Wireless Hosted Network API&#8217;s built into Windows 7 and 2008 R2 to ensure the best security possible.     <br />You can give your &quot;virtual&quot; wireless network any name you want, and also set the password to anything. Just make sure the password is at least 8 characters.”</em></p>
<p>Source: <a title="http://virtualrouter.codeplex.com/" href="http://virtualrouter.codeplex.com/">http://virtualrouter.codeplex.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/11/11/how-to-unleash-the-virtual-wifi-feature-in-windows-7-in-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Finally Aero Glas!</title>
		<link>http://www.schrankmonster.de/2009/10/29/finally-aero-glas/</link>
		<comments>http://www.schrankmonster.de/2009/10/29/finally-aero-glas/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 13:34:39 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/?p=7274</guid>
		<description><![CDATA[Hurray for VMWare! &#8211; I am using their products for years now &#8211; both private and on my job. It&#8217;s a blast to work with the Workstation and Fusion. Now they brought a major update to version 7 for VMWare Workstation and version 3 for VMWare Fusion. I upgraded my VMWare Fusion installation and finally [...]]]></description>
			<content:encoded><![CDATA[<p>Hurray for VMWare! &#8211; I am using their products for years now &#8211; both private and on my job. It&#8217;s a blast to work with the Workstation and Fusion. Now they brought a major update to version 7 for VMWare Workstation and version 3 for VMWare Fusion. I upgraded my VMWare Fusion installation and finally the one feature that I missed the most on my Windows Vista and 7 virtual machines is available now: Aero Glas!</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2009/10/aeroglas.png"><img class="aligncenter size-medium wp-image-7275" title="aeroglas" src="http://www.schrankmonster.de/wp-content/uploads/2009/10/aeroglas-300x238.png" alt="aeroglas" width="300" height="238" /></a>Oh&#8230; and it&#8217;s faster too <img src='http://www.schrankmonster.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Source: <a href="http://www.vmware.com/de/products/fusion/index.html">http://www.vmware.com/de/products/fusion/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/10/29/finally-aero-glas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If you ever needed Box-Shots of your product for a presentation&#8230;</title>
		<link>http://www.schrankmonster.de/2009/10/12/if-you-ever-needed-box-shots-of-your-product-for-a-presentation/</link>
		<comments>http://www.schrankmonster.de/2009/10/12/if-you-ever-needed-box-shots-of-your-product-for-a-presentation/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 14:48:59 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[sones]]></category>
		<category><![CDATA[Talks and Slides]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/10/12/if-you-ever-needed-box-shots-of-your-product-for-a-presentation/</guid>
		<description><![CDATA[If you – like us – need a picture of a shiny product box of a soon-to-be-released product for your presentation you may want to consider buying several tools to create such shots. But you can also just use a small tool and Windows Presentation Foundation. There’s a great article on CodeProject where a almost [...]]]></description>
			<content:encoded><![CDATA[<p>If you – like us – need a picture of a shiny product box of a soon-to-be-released product for your presentation you may want to consider buying several tools to create such shots. But you can also just use a small tool and Windows Presentation Foundation.</p>
<p>There’s a great article on CodeProject where a almost everything is pre-set-up for our needs. And everything is written in C# – great stuff!</p>
<p>In action it looks like this:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="sones-boxshot" border="0" alt="sones-boxshot" src="http://www.schrankmonster.de/wp-content/uploads/2009/10/sonesboxshot_thumb.png" width="400" height="235" /> </p>
<p>Source: <a title="http://www.codeproject.com/KB/WPF/BoxShot.aspx?display=Print" href="http://www.codeproject.com/KB/WPF/BoxShot.aspx?display=Print">http://www.codeproject.com/KB/WPF/BoxShot.aspx?display=Print</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/10/12/if-you-ever-needed-box-shots-of-your-product-for-a-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LUA is not only for WoW</title>
		<link>http://www.schrankmonster.de/2009/10/02/lua-is-not-only-for-wow/</link>
		<comments>http://www.schrankmonster.de/2009/10/02/lua-is-not-only-for-wow/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 09:29:15 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/10/02/lua-is-not-only-for-wow/</guid>
		<description><![CDATA[It’s also suitable for anyone who wants to develop iPhone Applications. “I started investigating how I might wire up — and then write native iPhone apps from — a scripting language. Lua was on my radar already. It’s compact, expressive, fast enough, and was designed to be embedded. Took only about 20 minutes to get [...]]]></description>
			<content:encoded><![CDATA[<p>It’s also suitable for anyone who wants to develop iPhone Applications.</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2009/10/hellolua.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="hello-lua" border="0" alt="hello-lua" src="http://www.schrankmonster.de/wp-content/uploads/2009/10/hellolua_thumb.png" width="248" height="200" /></a></p>
<p><em>“I started investigating how I might wire up — and then write native iPhone apps from — a scripting language. Lua was on my radar already. It’s compact, expressive, fast enough, and was designed to be embedded. Took only about 20 minutes to get the Lua interpreter running on the iPhone. The real work was to bridge Lua and all the Objective-C/CocoaTouch classes. The bridge had to work in two directions: it would need to be able to create CocoaTouch objects and also be able to respond to callbacks as part of the familiar delegate/protocol model.” </em></p>
<p>Source: <a title="http://www.mobileorchard.com/announcing-iphone-wax-native-uikit-iphone-apps-written-in-lua/" href="http://www.mobileorchard.com/announcing-iphone-wax-native-uikit-iphone-apps-written-in-lua/">Announcing iPhone WAX</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/10/02/lua-is-not-only-for-wow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a Visual Studio documentary</title>
		<link>http://www.schrankmonster.de/2009/10/02/a-visual-studio-documentary/</link>
		<comments>http://www.schrankmonster.de/2009/10/02/a-visual-studio-documentary/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 09:22:30 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/10/02/a-visual-studio-documentary/</guid>
		<description><![CDATA[There’s a great Visual Studio documentary on CH9. Highly recommended to anyone who wants to see what happened from the start till now. “Welcome to the first installment of the Visual Studio Documentary.This is an hour long documentary that is split into two parts, roughly a half hour each. Welcome to part one, where we [...]]]></description>
			<content:encoded><![CDATA[<p>There’s a great Visual Studio documentary on CH9. Highly recommended to anyone who wants to see what happened from the start till now.</p>
<p><em>“Welcome to the first installment of the Visual Studio Documentary.This is an hour long documentary that is split into two parts, roughly a half hour each. Welcome to part one, where we take you back to the days of MS-DOS and Alan Cooper who originally sold Visual Basic to Bill Gates back in 1988.&#160; Next week we will feature </em><a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/"><em>Part Two </em></a><em>but for those that would like to watch it sooner, here is </em><a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/"><em>Part Two</em></a><em>. In addition, each week we will post a longer and more in-depth stand alone interview from the interviewees that were featured in the documentary.”</em></p>
<p>Source 1: <a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/" target="_blank">Part I</a>    <br />Source 2: <a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/" target="_blank">Part II</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/10/02/a-visual-studio-documentary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>want some more expresso?</title>
		<link>http://www.schrankmonster.de/2009/09/23/want-some-more-expresso/</link>
		<comments>http://www.schrankmonster.de/2009/09/23/want-some-more-expresso/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 08:15:36 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/09/23/want-some-more-expresso/</guid>
		<description><![CDATA[Almost three years ago I wrote about this nice little Regular Expression Tool which provides not only a RegEx-Builder but also a clean and nice interface to test and play. It was a CodeProject sample project in that time and as it turns out it became a full blown version 3! Obviously the user interface [...]]]></description>
			<content:encoded><![CDATA[<p>Almost three years ago I wrote about this nice little Regular Expression Tool which provides not only a RegEx-Builder but also a clean and nice interface to test and play.</p>
<p>It was a CodeProject sample project in that time and as it turns out it became a full blown version 3!</p>
<p>Obviously the user interface was revamped completely:</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2009/09/expresso3.png" target="_blank"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="expresso3" border="0" alt="expresso3" src="http://www.schrankmonster.de/wp-content/uploads/2009/09/expresso3_thumb.png" width="400" height="249" /></a> So you now not only get the Testing and playing but also a Regular Expression Library, a cool How-To, a more useable design mode and you can even output your final regular expressions to C#, VB.NET or managed C++!</p>
<p>Great stuff! Even better is the fact that it does not come at any costs. Despite the fact that there’s a registration you can just get your free license on their website.</p>
<p>Source 1: <a title="http://www.ultrapico.com/Expresso.htm" href="http://www.ultrapico.com/Expresso.htm">http://www.ultrapico.com/Expresso.htm</a>     <br />Source 2: <a href="http://www.schrankmonster.de/2006/06/21/want-some-espresso/" target="_blank">want some espresso?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/09/23/want-some-more-expresso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a new version of Notepad++ is available.</title>
		<link>http://www.schrankmonster.de/2009/09/22/a-new-version-of-notepad-is-available/</link>
		<comments>http://www.schrankmonster.de/2009/09/22/a-new-version-of-notepad-is-available/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 13:48:53 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/09/22/a-new-version-of-notepad-is-available/</guid>
		<description><![CDATA[Great stuff this week: Notepad++ was released in&#160; a new version 5.5. Nice new features all around: Source 1: http://notepad-plus.sourceforge.net/uk/site.htm]]></description>
			<content:encoded><![CDATA[<p>Great stuff this week: Notepad++ was released in&#160; a new version 5.5. Nice new features all around:</p>
<p><a href="http://www.schrankmonster.de/wp-content/uploads/2009/09/notepadplusplus.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="notepadplusplus" border="0" alt="notepadplusplus" src="http://www.schrankmonster.de/wp-content/uploads/2009/09/notepadplusplus_thumb.png" width="404" height="279" /></a> </p>
<p>Source 1: <a title="http://notepad-plus.sourceforge.net/uk/site.htm" href="http://notepad-plus.sourceforge.net/uk/site.htm">http://notepad-plus.sourceforge.net/uk/site.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/09/22/a-new-version-of-notepad-is-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>massive parallel computing with FPGAs</title>
		<link>http://www.schrankmonster.de/2009/08/25/massive-parallel-computing-with-fpgas/</link>
		<comments>http://www.schrankmonster.de/2009/08/25/massive-parallel-computing-with-fpgas/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 13:07:04 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[hack-the-planet]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/08/25/massiveParallelComputingWithFPGAs.aspx</guid>
		<description><![CDATA[Today we had a great meeting with SciEngines. These guys offer a great platform for everything that needs massive parallelism and IO bandwidth scalability. They even brought a small copacobana cluster to our headquater. Source: http://www.sciengines.com]]></description>
			<content:encoded><![CDATA[<p> Today we had a great meeting with SciEngines. These guys offer a great platform for everything that needs massive parallelism and IO bandwidth scalability. They even brought a small <a href="http://www.sciengines.com/productscopacobanarev3.shtml" target="_blank">copacobana</a> cluster to our headquater.</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/massiveparallelcomputingwithFPGAs_D485/IMG_0045.jpg" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0045" border="0" alt="IMG_0045" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/massiveparallelcomputingwithFPGAs_D485/IMG_0045_thumb.jpg" width="404" height="304" /></a></p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/massiveparallelcomputingwithFPGAs_D485/IMG_0044.jpg" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0044" border="0" alt="IMG_0044" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/massiveparallelcomputingwithFPGAs_D485/IMG_0044_thumb.jpg" width="404" height="304" /></a> </p>
<p>Source: <a href="http://www.sciengines.com">http://www.sciengines.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/08/25/massive-parallel-computing-with-fpgas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A new version of ILmerge is</title>
		<link>http://www.schrankmonster.de/2009/08/14/a-new-version-of-ilmerge-is/</link>
		<comments>http://www.schrankmonster.de/2009/08/14/a-new-version-of-ilmerge-is/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 11:57:40 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/08/14/ANewVersionOfILmergeIs.aspx</guid>
		<description><![CDATA[“ILMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and DLLs alike and comes with several options for controlling the processing and format of the output. See the accompanying documentation for details.” Have fun merging assemblies! Source: MSDN]]></description>
			<content:encoded><![CDATA[<p>“<em>ILMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and DLLs alike and comes with several options for controlling the processing and format of the output. See the accompanying documentation for details.</em>”</p>
<p>Have fun merging assemblies!</p>
<p>Source: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=22914587-b4ad-4eae-87cf-b14ae6a939b0&#038;displaylang=en" target="_blank">MSDN</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/08/14/a-new-version-of-ilmerge-is/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Killer .NET 4 feature: Memory Mapped files</title>
		<link>http://www.schrankmonster.de/2009/08/14/killer-net-4-feature-memory-mapped-files/</link>
		<comments>http://www.schrankmonster.de/2009/08/14/killer-net-4-feature-memory-mapped-files/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 09:57:37 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Riot]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/08/14/KillerNET4FeatureMemoryMappedFiles.aspx</guid>
		<description><![CDATA[“So what is it? A memory mapped file allows you to reserve a region of address space and commit physical storage to a region (hmmm, sounds like virtual memory, isn’t it?) but the main difference is that the physical storage comes from a file that is already on the disk instead of the memory manager. [...]]]></description>
			<content:encoded><![CDATA[<p>“So what is it? A memory mapped file allows you to reserve a region of address space and commit physical storage to a region (hmmm, sounds like virtual memory, isn’t it?) but the main difference is that the physical storage comes from a file that is already on the disk instead of the memory manager. I will say that it has two main purposes:</p>
<ul>
<li>It is ideal to access a data file on disk without performing file I/O operations and from buffering the file’s content. This works great when you deal with large data files.</li>
<li>You can use memory mapped files to allow multiple processes running on the same machine to share data with each other.“</li>
</ul>
<p>OMG! You can even specifiy views on a memory mapped file… from different processes… .NET 4 FTW!</p>
<p>Source: <a title="http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx" href="http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx">http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/08/14/killer-net-4-feature-memory-mapped-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to remove a team project from Team Foundation Server 2008</title>
		<link>http://www.schrankmonster.de/2009/08/10/how-to-remove-a-team-project-from-team-foundation-server-2008/</link>
		<comments>http://www.schrankmonster.de/2009/08/10/how-to-remove-a-team-project-from-team-foundation-server-2008/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 16:31:13 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/08/10/HowToRemoveATeamProjectFromTeamFoundationServer2008.aspx</guid>
		<description><![CDATA[Well, if you don’t want to have them removed just form your Team Explorer in Visual Studio you want to go to your Team Foundation Server Remote Desktop and open a commandline. Change to the folder %program files%\Microsoft Visual Studio 9.0\Common7\IDE and do this: tfsdeleteproject /force /server: " "]]></description>
			<content:encoded><![CDATA[<p>Well, if you don’t want to have them removed just form your Team Explorer in Visual Studio you want to go to your Team Foundation Server Remote Desktop and open a commandline.</p>
<p>Change to the folder <em>%program files%\Microsoft Visual Studio 9.0\Common7\IDE</em> and do this:</p>
<div align="center">
<pre>tfsdeleteproject /force /server:<tfs server> "
<project name>"</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/08/10/how-to-remove-a-team-project-from-team-foundation-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 API Code Pack for managed code available</title>
		<link>http://www.schrankmonster.de/2009/08/10/windows-7-api-code-pack-for-managed-code-available/</link>
		<comments>http://www.schrankmonster.de/2009/08/10/windows-7-api-code-pack-for-managed-code-available/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 10:37:35 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/08/10/Windows7APICodePackForManagedCodeAvailable.aspx</guid>
		<description><![CDATA[After the upgrade of all my machines to Windows 7 I now can write code for the new UI. Great stuff! Microsoft today released the Windows 7 API Code for Microsoft.NET Framework on Code Gallery Source: Code Gallery]]></description>
			<content:encoded><![CDATA[<p>After the upgrade of all my machines to Windows 7 I now can write code for the new UI. Great stuff!</p>
<p>Microsoft today released the Windows 7 API Code for Microsoft.NET Framework on Code Gallery</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/Windows7APICodePackformanagedcodeavailab_AF4A/stickyjumplist_2.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="stickyjumplist" border="0" alt="stickyjumplist" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/Windows7APICodePackformanagedcodeavailab_AF4A/stickyjumplist_thumb.png" width="388" height="244" /></a> </p>
<p>Source: <a href="http://code.msdn.microsoft.com/WindowsAPICodePack/Release/ProjectReleases.aspx?ReleaseId=3077" target="_blank">Code Gallery</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/08/10/windows-7-api-code-pack-for-managed-code-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>the .NET Framework sourcecode release and how to unpack it…</title>
		<link>http://www.schrankmonster.de/2009/08/06/the-net-framework-sourcecode-release-and-how-to-unpack-it%e2%80%a6/</link>
		<comments>http://www.schrankmonster.de/2009/08/06/the-net-framework-sourcecode-release-and-how-to-unpack-it%e2%80%a6/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 15:55:34 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[hack-the-planet]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/08/06/theNETFrameworkSourcecodeReleaseAndHowToUnpackIt.aspx</guid>
		<description><![CDATA[It’s great to finally have the .NET sourcecode for debugging purposes – inconveniently it’s in a format you might have your difficulties just browsing along. A little tool is here to help! After you installed, let’s say the WCF sourcecode and debug symbols you get a directory structure similar to this: This source.zip.tmp file holds [...]]]></description>
			<content:encoded><![CDATA[<p>It’s great to finally have the .NET sourcecode for debugging purposes – inconveniently it’s in a format you might have your difficulties just browsing along. A little tool is here to help!</p>
<p>After you installed, let’s say the WCF sourcecode and debug symbols you get a directory structure similar to this:</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/the.NETFrameworksourcecodereleaseandhowt_F9E8/wcfsource.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="wcfsource" border="0" alt="wcfsource" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/the.NETFrameworksourcecodereleaseandhowt_F9E8/wcfsource_thumb.png" width="404" height="52" /></a> </p>
<p align="left">This source.zip.tmp file holds the whole sourcecode as one big package. It can’t be unpacked – even one would suggest that by just looking at that .zip ending in the name of the file.</p>
<p align="left">Instead this is a plain-text file of a certain yet simple format. I wrote me a little tool to unpack this file into it’s original files and directories. </p>
<p align="left">You can get the little tool, including sourcecode, here: <a href="http://www.schrankmonster.de/content/binary/UnpackMSSources.zip" target="_blank">UnpackMSSources.zip</a></p>
<p>To start the magic, you would like to go to the command line and start the tool with two parameters. Parameter 1 is the path and filename of the source.zip.tmp file. Parameter 2 is the part of the Path that needs to be cut-off. For the WCF Sources it’s “<em>/DEVDIV/depot/DevDiv/releases/Orcas/SP/ndp/cdf/src/</em>” for example.</p>
<p>The tool will then start to whirl through the file and extract all the files it founds into directories it’s creating along the way. After some seconds you would end with a directory tree like this:</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/the.NETFrameworksourcecodereleaseandhowt_F9E8/unpacked.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="unpacked" border="0" alt="unpacked" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/the.NETFrameworksourcecodereleaseandhowt_F9E8/unpacked_thumb.png" width="181" height="404" /></a> </p>
<p align="left">Have fun!</p>
<p>Source 1: <a title="http://referencesource.microsoft.com/netframework.aspx" href="http://referencesource.microsoft.com/netframework.aspx">http://referencesource.microsoft.com/netframework.aspx</a>    <br />Source 2: <a title="http://www.schrankmonster.de/content/binary/UnpackMSSources.zip" href="http://www.schrankmonster.de/content/binary/UnpackMSSources.zip">http://www.schrankmonster.de/content/binary/UnpackMSSources.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/08/06/the-net-framework-sourcecode-release-and-how-to-unpack-it%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Many 0x00s in the test run results…</title>
		<link>http://www.schrankmonster.de/2009/07/24/many-0x00s-in-the-test-run-results%e2%80%a6/</link>
		<comments>http://www.schrankmonster.de/2009/07/24/many-0x00s-in-the-test-run-results%e2%80%a6/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 13:43:17 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[Riot]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/07/24/Many0x00sInTheTestRunResults.aspx</guid>
		<description><![CDATA[We have this network share where each build from all the build-servers is dropped, including it’s test run results. It seems that we’re producing a huge number of almost empty filesystem test images which lead to astounding compression ratios:]]></description>
			<content:encoded><![CDATA[<p>We have this network share where each build from all the build-servers is dropped, including it’s test run results. It seems that we’re producing a huge number of almost empty filesystem test images which lead to astounding compression ratios:</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/Many0x00sinthetestrunresults_DC6B/efficiency.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="efficiency" border="0" alt="efficiency" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/Many0x00sinthetestrunresults_DC6B/efficiency_thumb.png" width="373" height="481" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/07/24/many-0x00s-in-the-test-run-results%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plain-Text Username Password Authentification with WCF</title>
		<link>http://www.schrankmonster.de/2009/07/21/plain-text-username-password-authentification-with-wcf/</link>
		<comments>http://www.schrankmonster.de/2009/07/21/plain-text-username-password-authentification-with-wcf/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 11:58:58 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/07/21/PlainTextUsernamePasswordAuthentificationWithWCF.aspx</guid>
		<description><![CDATA[If you got it, it’s easy. If you’re starting from scratch it ain’t as easy. We were in need of such a Username+Password Authentification so I started googling around. I found several articles but had to mash it all together in a trial-and-error session. Now that I am enlightened I want to share my knowledge: [...]]]></description>
			<content:encoded><![CDATA[<p>If you got it, it’s easy. If you’re starting from scratch it ain’t as easy. We were in need of such a Username+Password Authentification so I started googling around.</p>
<p>I found several articles but had to mash it all together in a trial-and-error session. Now that I am enlightened I want to share my knowledge:</p>
<p>Step 1: Implement an UserNamePasswordValidator class and override the Validate method.</p>
</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:06ece4dc-abff-482e-a05b-85c120b26869" class="wlWriterEditableSmartContent">
<pre style="background-color:White;overflow: auto;"><span style="color: #0000FF;">using</span><span style="color: #000000;"> System;
</span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.Collections.Generic;
</span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.Linq;
</span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.Text;
</span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.IdentityModel.Tokens;
</span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.IdentityModel.Selectors;

</span><span style="color: #0000FF;">namespace</span><span style="color: #000000;"> sones.Pandora.Database.Hosting
{
    </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">class</span><span style="color: #000000;"> UserNamePasswordAuthentification: UserNamePasswordValidator
    {

        </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">override</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> Validate(</span><span style="color: #0000FF;">string</span><span style="color: #000000;"> userName, </span><span style="color: #0000FF;">string</span><span style="color: #000000;"> password)
        {
            </span><span style="color: #0000FF;">if</span><span style="color: #000000;"> ((userName </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">Username</span><span style="color: #800000;">"</span><span style="color: #000000;">) </span><span style="color: #000000;">||</span><span style="color: #000000;"> (password </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">Password</span><span style="color: #800000;">"</span><span style="color: #000000;">))
            {
                </span><span style="color: #0000FF;">throw</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> SecurityTokenException(</span><span style="color: #800000;">"</span><span style="color: #800000;">Validation Failed!</span><span style="color: #800000;">"</span><span style="color: #000000;">);
            }
        }
    }
}
</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>Step 2: Edit the App.config file to enable the previously implemented UsernamePasswordValidator.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6f4fb716-21f7-42e2-aaf6-eeed3f8c02f0" class="wlWriterEditableSmartContent">
<pre style="background-color:White;overflow: auto;"><span style="color: #000000;">    </span><span style="color: #0000FF;"><</span><span style="color: #800000;">bindings</span><span style="color: #0000FF;">></span><span style="color: #000000;">
      </span><span style="color: #0000FF;"><</span><span style="color: #800000;">basicHttpBinding</span><span style="color: #0000FF;">></span><span style="color: #000000;">
        </span><span style="color: #0000FF;"><</span><span style="color: #800000;">binding </span><span style="color: #FF0000;">name</span><span style="color: #0000FF;">="CustomAuthentication"</span><span style="color: #0000FF;">></span><span style="color: #000000;">
          </span><span style="color: #0000FF;"><</span><span style="color: #800000;">security </span><span style="color: #FF0000;">mode</span><span style="color: #0000FF;">="TransportCredentialOnly"</span><span style="color: #0000FF;">></span><span style="color: #000000;">
            </span><span style="color: #0000FF;"><</span><span style="color: #800000;">transport </span><span style="color: #FF0000;">clientCredentialType</span><span style="color: #0000FF;">="Basic"</span><span style="color: #FF0000;"> proxyCredentialType</span><span style="color: #0000FF;">="Basic"</span><span style="color: #0000FF;">/></span><span style="color: #000000;">
          </span><span style="color: #0000FF;"></</span><span style="color: #800000;">security</span><span style="color: #0000FF;">></span><span style="color: #000000;">
        </span><span style="color: #0000FF;"></</span><span style="color: #800000;">binding</span><span style="color: #0000FF;">></span><span style="color: #000000;">
      </span><span style="color: #0000FF;"></</span><span style="color: #800000;">basicHttpBinding</span><span style="color: #0000FF;">></span><span style="color: #000000;">
    </span><span style="color: #0000FF;"></</span><span style="color: #800000;">bindings</span><span style="color: #0000FF;">></span><span style="color: #000000;">
    </span><span style="color: #0000FF;"><</span><span style="color: #800000;">behaviors</span><span style="color: #0000FF;">></span><span style="color: #000000;">
      </span><span style="color: #0000FF;"><</span><span style="color: #800000;">serviceBehaviors</span><span style="color: #0000FF;">></span><span style="color: #000000;">
        </span><span style="color: #0000FF;"><</span><span style="color: #800000;">behavior </span><span style="color: #FF0000;">name</span><span style="color: #0000FF;">="SecurityBehavior"</span><span style="color: #0000FF;">></span><span style="color: #000000;">
          </span><span style="color: #0000FF;"><</span><span style="color: #800000;">serviceCredentials</span><span style="color: #0000FF;">></span><span style="color: #000000;">
            </span><span style="color: #0000FF;"><</span><span style="color: #800000;">userNameAuthentication
            </span><span style="color: #FF0000;">userNamePasswordValidationMode</span><span style="color: #0000FF;">="Custom"</span><span style="color: #FF0000;">
            customUserNamePasswordValidatorType</span><span style="color: #0000FF;">="sones.Pandora.Database.Hosting.UserNamePasswordAuthentification, PandoraDB_WebServiceHost_UsernamePasswordAuth"</span><span style="color: #0000FF;">/></span><span style="color: #000000;">
          </span><span style="color: #0000FF;"></</span><span style="color: #800000;">serviceCredentials</span><span style="color: #0000FF;">></span><span style="color: #000000;">
        </span><span style="color: #0000FF;"></</span><span style="color: #800000;">behavior</span><span style="color: #0000FF;">></span><span style="color: #000000;">
      </span><span style="color: #0000FF;"></</span><span style="color: #800000;">serviceBehaviors</span><span style="color: #0000FF;">></span><span style="color: #000000;">
    </span><span style="color: #0000FF;"></</span><span style="color: #800000;">behaviors</span><span style="color: #0000FF;">></span><span style="color: #000000;">
    </span><span style="color: #0000FF;"><</span><span style="color: #800000;">services</span><span style="color: #0000FF;">></span><span style="color: #000000;">
      </span><span style="color: #0000FF;"><</span><span style="color: #800000;">service </span><span style="color: #FF0000;">behaviorConfiguration</span><span style="color: #0000FF;">="SecurityBehavior"</span><span style="color: #FF0000;"> name</span><span style="color: #0000FF;">="sones.Pandora.Database.Hosting.PandoraDatabaseHost"</span><span style="color: #0000FF;">></span><span style="color: #000000;">
        </span><span style="color: #0000FF;"><</span><span style="color: #800000;">endpoint </span><span style="color: #FF0000;">address</span><span style="color: #0000FF;">=""</span><span style="color: #FF0000;"> binding</span><span style="color: #0000FF;">="basicHttpBinding"</span><span style="color: #FF0000;"> bindingConfiguration</span><span style="color: #0000FF;">="CustomAuthentication"</span><span style="color: #FF0000;">
          name</span><span style="color: #0000FF;">="ep1"</span><span style="color: #FF0000;"> contract</span><span style="color: #0000FF;">="sones.Pandora.Database.Hosting.IPandoraDatabaseHost"</span><span style="color: #FF0000;"> </span><span style="color: #0000FF;">/></span><span style="color: #000000;">
      </span><span style="color: #0000FF;"></</span><span style="color: #800000;">service</span><span style="color: #0000FF;">></span><span style="color: #000000;">
    </span><span style="color: #0000FF;"></</span><span style="color: #800000;">services</span><span style="color: #0000FF;">></span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p>In this example the ServiceHost will use no server SSL certificate and therefor allow normal http access instead of just using https ssl. You can configure that behavior with the <span style="color: #0000ff"><</span><span style="color: #800000">security </span><span style="color: #ff0000">mode</span><span style="color: #0000ff">=&#8221;TransportCredentialOnly&#8221;</span><span style="color: #0000ff">> <font color="#000000">line. Just change there and define an apropriate certificate and you’re good to go with https / ssl.</font></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/07/21/plain-text-username-password-authentification-with-wcf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>farewell popfly</title>
		<link>http://www.schrankmonster.de/2009/07/17/farewell-popfly/</link>
		<comments>http://www.schrankmonster.de/2009/07/17/farewell-popfly/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 08:32:42 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/07/17/farewellPopfly.aspx</guid>
		<description><![CDATA[I’ve seen the launch of PopFly two years ago. And now I am going to see the landing “Unfortunately, on August 24, 2009 the Popfly service will be discontinued and all sites, references, and resources will be taken down. At that time, your access to your Popfly account, including any games and mashups that you [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve seen the launch of PopFly two years ago. And now I am going to see the landing <img src='http://www.schrankmonster.de/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p align="center"><a href="http://www.popfly.com/" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="popfly" border="0" alt="popfly" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/farewellpopfly_93C9/popfly_1.png" width="404" height="319" /></a> </p>
<p><em>“Unfortunately, on August 24, 2009 the Popfly service will be discontinued and all sites, references, and resources will be taken down. At that time, your access to your Popfly account, including any games and mashups that you have created, will be discontinued.”</em></p>
<p>Now somebody please tell the world that the code of popfly will be released in some way so that other people can learn and work with it. That would be great. Oh if we just wouldn’t have that many lawyers on this planet.</p>
<p>Source 1: <a title="http://popflyteam.spaces.live.com/blog/cns!51018025071FD37F!336.entry" href="http://popflyteam.spaces.live.com/blog/cns!51018025071FD37F!336.entry">http://popflyteam.spaces.live.com/blog/cns!51018025071FD37F!336.entry</a>    <br />Source 2: <a title="http://www.popfly.com/" href="http://www.popfly.com/">http://www.popfly.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/07/17/farewell-popfly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wieder aktuell: sones sucht weitere engagierte Softwareentwickler</title>
		<link>http://www.schrankmonster.de/2009/07/16/wieder-aktuell-sones-sucht-weitere-engagierte-softwareentwickler/</link>
		<comments>http://www.schrankmonster.de/2009/07/16/wieder-aktuell-sones-sucht-weitere-engagierte-softwareentwickler/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 13:33:56 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/07/16/wiederAktuellSonesSuchtWeitereEngagierteSoftwareentwickler.aspx</guid>
		<description><![CDATA[Ich hatte Ende letzten Jahres ja schon einmal ein Stellenangebot hier online gestellt. Damals mit dem Ergebnis einige sehr interessante Bewerber und letzlich auch hochmotivierte und qualifizierte Mitarbeiter gefunden zu haben. Da wir nun wieder auf der Suche nach Verstärkung sind nutze ich wieder dieses Medium: Die sones GmbH ist ein junges IT-Unternehmen mit Standort [...]]]></description>
			<content:encoded><![CDATA[<p>Ich hatte Ende letzten Jahres ja schon einmal ein Stellenangebot hier online gestellt. Damals mit dem Ergebnis einige sehr interessante Bewerber und letzlich auch hochmotivierte und qualifizierte Mitarbeiter gefunden zu haben.</p>
<p>Da wir nun wieder auf der Suche nach Verstärkung sind nutze ich wieder dieses Medium:</p>
<hr />
<p>Die sones GmbH ist ein junges IT-Unternehmen mit Standort in Erfurt. Wir forschen in den Bereichen neuartiger Datenbank- und Speichertechnologien und entwickeln auf dieser Basis neue und innovative Produkte und Lösungen. </p>
<p>Am Standort Erfurt suchen wir ab sofort eine(n) </p>
<p align="center"><em>Software-Entwickler JAVA / .NET (m/w)</em></p>
<p>Sie wollen in einem jungen Team innovative Software entwickeln die im Datenbank-Segment ganz neue Wege aufzeigt? Als Software-Entwickler bei der sones GmbH haben Sie hierzu die Gelegenheit! </p>
<p>In einem hoch motiviertem Entwicklerteam arbeiten Sie am Kern unseres Datenbanksystems mit. Sie entwickeln Features und verbessern die Qualität der Codebasis im Hinblick auf Stabilität, Performance und Skalierbarkeit. Dabei kommen modernste Entwicklungswerkzeuge zum Einsatz. </p>
<p>Wenn Sie unsere hohen Ansprüche an fachliches Wissen, Eigeninitiative und Kommunikation als Herausforderung sehen – dann sind Sie bei uns herzlich willkommen!</p>
<p>Ihre Aufgaben:</p>
<ul>
<li>Projektplanung und Projektsteuerung in Koordination mit anderen Entwicklungsbereichen </li>
<li>Analyse, Design, Implementierung neuer Produktfeatures </li>
<li>Verbesserung der Qualität existierenden Codes im Hinblick auf Stabilität, Performance und Skalierbarkeit </li>
<li>Softwaretests und Dokumentationen </li>
<li>Evaluierung neuer Technologien und Prototyping </li>
</ul>
<p>Voraussetzungen:</p>
<ul>
<li>Studium im Bereich der Informatik oder vergleichbare Ausbildung mit überzeugenden Referenzen (Projekte, Beschäftigungen) </li>
<li>Mehrjährige Erfahrung in der Objektorientierten Softwareentwicklung </li>
<li>Von Vorteil:
<ul>
<li>Programmierkenntnisse JAVA und .NET</li>
<li>Erfahrungen mit Testdriven Development </li>
<li>Gute Englischkenntnisse </li>
<li>Erfahrungen mit Datenbankarchitekturen und Netzwerkprogrammierung </li>
</ul>
</li>
</ul>
<p>Ihre Soft Skills:</p>
<ul>
<li>Kommunikationsstärke und Bereitschaft zum dynamischen Wissens- und Informationsaustausch </li>
<li>Zuverlässigkeit und eigenständige kreative Denk- und Arbeitsweise </li>
<li>Ziel- bzw. Lösungsorientiertes Vorgehen </li>
</ul>
<p>Wir bieten:</p>
<ul>
<li>Hoch motiviertes und qualifiziertes Team </li>
<li>Ausgesprochen interessante und innovative Arbeitsgebiete </li>
<li>Viel Platz für Eigeninitiative und Kreativität </li>
<li>Die ständige Möglichkeit sich weiterzubilden und weiterzuentwickeln </li>
<li>Herausforderndes Umfeld eines High-Tech Start-Ups </li>
</ul>
<p>Sie sind interessiert? Dann freuen wir uns über ihre aussagekräftige Bewerbung mit Angabe ihrer Gehaltsvorstellung an <a href="mailto:jobs@sones.de">jobs@sones.de</a></p>
<hr />
<p>Der Vollständigkeit halber das Stellenangebot nochmal als PDF:</p>
<p align="center"><a href="http://dropbox.schrankmonster.de/dropped/1_Stellenbeschreibung%20Softwareentwickler%20Datenbank.pdf" target="_blank">Stellenangebot sones GmbH</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/07/16/wieder-aktuell-sones-sucht-weitere-engagierte-softwareentwickler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allowing Web Service host to run locally without Administrator rights</title>
		<link>http://www.schrankmonster.de/2009/06/24/allowing-web-service-host-to-run-locally-without-administrator-rights/</link>
		<comments>http://www.schrankmonster.de/2009/06/24/allowing-web-service-host-to-run-locally-without-administrator-rights/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 15:01:12 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/06/24/AllowingWebServiceHostToRunLocallyWithoutAdministratorRights.aspx</guid>
		<description><![CDATA[If you’re writing WCF Web Services you maybe came to the point when you needed Administrator rights to start the Web ServiceHost. As a matter of fact the only thing you need is the right to use a that URL space. So for&#160; a WCF Web Service running on http://localhost:80/TestService/Ep2 you would use the netsh [...]]]></description>
			<content:encoded><![CDATA[<p>If you’re writing WCF Web Services you maybe came to the point when you needed Administrator rights to start the Web ServiceHost. As a matter of fact the only thing you need is the right to use a that URL space.</p>
<p>So for&#160; a WCF Web Service running on <em>http://localhost:80/TestService/Ep2</em> you would use the netsh command line tool to set the correct rights.</p>
<p>Step 1: Start an Administrator-Commandline</p>
<p>Step 2: run “<em>netsh http add urlacl url=http://+80/TestService/Ep2 user=SONES\bietiekay</em>”</p>
<p>(SONES\bietiekay = the Domain+User to grant the right)</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/AllowingWebServicehosttorunlocallywithou_EDF4/netsh.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="netsh" border="0" alt="netsh" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/AllowingWebServicehosttorunlocallywithou_EDF4/netsh_thumb.png" width="400" height="132" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/06/24/allowing-web-service-host-to-run-locally-without-administrator-rights/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hail Eris! All Hail Discordia!</title>
		<link>http://www.schrankmonster.de/2009/06/22/hail-eris-all-hail-discordia/</link>
		<comments>http://www.schrankmonster.de/2009/06/22/hail-eris-all-hail-discordia/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 11:17:53 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Reallife]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Riot]]></category>
		<category><![CDATA[rocket-science]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/06/22/HailErisAllHailDiscordia.aspx</guid>
		<description><![CDATA[I was in desperate need for an DDate equivalent running on Windows. DDate is an unix implementaion of date accoridng to the erisian calendar described in the principia discordia. I only found some C Implementations. And since it’s fun to do I ported the original Discordian Date C code to C#. You can download the [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://ddate.schrankmonster.de" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="pope" border="0" alt="pope" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/HailErisAllHailDiscordia_B9AB/pope_3.jpg" width="204" height="318" /></a> </p>
<p>I was in desperate need for an <a href="http://en.wikipedia.org/wiki/Discordian_calendar#Implementations" target="_blank">DDate</a> equivalent running on Windows. DDate is an unix implementaion of date accoridng to the erisian calendar described in the principia discordia.</p>
<p> I only found some C Implementations. And since it’s fun to do I ported the original Discordian Date C code to C#.</p>
<p>You can download the C# sourcecode, licensed under CC-BY-NC <a href="http://dropbox.schrankmonster.de/dropped/SharpDDateLib.zip" target="_blank">here</a>.</p>
<p>I also created a web page which displays the current discordian date and offers you to convert any gregorian date into discordian date representation.</p>
<p>This page can be accesses <a href="http://ddate.schrankmonster.de" target="_blank">here.</a> You can call another page with parameters and you only will get the ddate output back:</p>
<p>for example: <a title="http://ddate.schrankmonster.de/DiscordianDate.aspx?year=2009&#038;month=6&#038;day=9" href="http://ddate.schrankmonster.de/DiscordianDate.aspx?year=2009&#038;month=6&#038;day=9">http://ddate.schrankmonster.de/DiscordianDate.aspx?year=2009&#038;month=6&#038;day=9</a></p>
<p>Source 1: <a title="http://ddate.schrankmonster.de/" href="http://ddate.schrankmonster.de/">http://ddate.schrankmonster.de/</a>    <br />Source 2: <a title="http://dropbox.schrankmonster.de/dropped/SharpDDateLib.zip" href="http://dropbox.schrankmonster.de/dropped/SharpDDateLib.zip">http://dropbox.schrankmonster.de/dropped/SharpDDateLib.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/06/22/hail-eris-all-hail-discordia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a new version of the TFS Build Status Screen</title>
		<link>http://www.schrankmonster.de/2009/06/11/a-new-version-of-the-tfs-build-status-screen/</link>
		<comments>http://www.schrankmonster.de/2009/06/11/a-new-version-of-the-tfs-build-status-screen/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 07:40:46 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/06/11/aNewVersionOfTheTFSBuildStatusScreen.aspx</guid>
		<description><![CDATA[There’s an update of the beloved TFS Build Status Screen tool. And the most frequently asked feature is now built-in: Scaleability. You can scale the status screen now to fut even on the smallest screens…hurray! Source: http://raquila.com/software/team-foundation-server-build-notification-screen/]]></description>
			<content:encoded><![CDATA[<p> There’s an update of the beloved TFS Build Status Screen tool. And the most frequently asked feature is now built-in: Scaleability. </p>
<p>You can scale the status screen now to fut even on the smallest screens…hurray!</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/anewversionoftheTFSBuildStatusScreen_86FB/tfsst.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="tfsst" border="0" alt="tfsst" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/anewversionoftheTFSBuildStatusScreen_86FB/tfsst_thumb.png" width="400" height="320" /></a></p>
</p>
<p>Source: <a title="http://raquila.com/software/team-foundation-server-build-notification-screen/" href="http://raquila.com/software/team-foundation-server-build-notification-screen/">http://raquila.com/software/team-foundation-server-build-notification-screen/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/06/11/a-new-version-of-the-tfs-build-status-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Copy-Wave</title>
		<link>http://www.schrankmonster.de/2009/06/09/google-copy-wave/</link>
		<comments>http://www.schrankmonster.de/2009/06/09/google-copy-wave/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 09:06:54 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Riot]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/06/09/GoogleCopyWave.aspx</guid>
		<description><![CDATA[Oh dear. Another hyped protocol/platform from Google… oh wait. It’s not from Google. It&#8217; all started in Xerox PARC… There are several papers that describe what Google now claims to have developed… left: Xerox PARC Paper; right: Google Wave Conclusion: Go and read old Papers. As it turns out almost all newly hyped things have [...]]]></description>
			<content:encoded><![CDATA[<p>Oh dear. Another hyped protocol/platform from Google… oh wait. It’s not from Google. It&#8217; all started in Xerox PARC…</p>
<p>There are several papers that describe what Google now claims to have developed…</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/GoogleCopyWave_9B38/copywave.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="copywave" border="0" alt="copywave" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/GoogleCopyWave_9B38/copywave_thumb.png" width="404" height="209" /></a>     <br />left: Xerox PARC Paper; right: Google Wave</p>
<p>Conclusion: Go and read old Papers. As it turns out almost all newly hyped things have been described in papers from years ago.</p>
<p>Source 1: <a title="http://www.waveprotocol.org/whitepapers/operational-transform" href="http://www.waveprotocol.org/whitepapers/operational-transform">http://www.waveprotocol.org/whitepapers/operational-transform</a>    <br />Source 2: <a title="http://doi.acm.org/10.1145/215585.215706" href="http://doi.acm.org/10.1145/215585.215706">http://doi.acm.org/10.1145/215585.215706</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/06/09/google-copy-wave/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>getting System.ServiceModel.AddressAccessDeniedException in automated WCF Tests</title>
		<link>http://www.schrankmonster.de/2009/06/05/getting-system-servicemodel-addressaccessdeniedexception-in-automated-wcf-tests/</link>
		<comments>http://www.schrankmonster.de/2009/06/05/getting-system-servicemodel-addressaccessdeniedexception-in-automated-wcf-tests/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 08:53:18 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/06/05/gettingSystemServiceModelAddressAccessDeniedExceptionInAutomatedWCFTests.aspx</guid>
		<description><![CDATA[We’re currently running several build processes. So each time someone checks new code in one of the build machines gets the whole package and builds it, runs tests on it and stores the result of this whole process on the Team Foundation Server. Great stuff so far. Until you start to do things like automated [...]]]></description>
			<content:encoded><![CDATA[<p> We’re currently running several build processes. So each time someone checks new code in one of the build machines gets the whole package and builds it, runs tests on it and stores the result of this whole process on the Team Foundation Server. Great stuff so far.</p>
<p>Until you start to do things like automated WCF Testing. We’re using the selfhosting capabilities of the WCF to start a ServiceHost and then run tests against it. This works great locally. It does not on the build machines. Even if you promote the Build-Service User to Administrator you won’t get the love.</p>
<p>The error you might get would look something like this:</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/get.AddressAccessDeniedExceptioninautoma_9859/Capture.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Capture" border="0" alt="Capture" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/get.AddressAccessDeniedExceptioninautoma_9859/Capture_thumb.png" width="400" height="247" /></a></p>
<p>The exception contains an <a href="http://go.microsoft.com/fwlink/?LinkId=70353" target="_blank">URL</a> which tells you to add the Service URL to the machines URL Access Control List. On Windows XP and 2003 you have to install the Windows Support Tools and use the httpcfg command. On Windows Vista and 2008 you should use the already installed netsh commandline tool.</p>
<p>Since we need to get this to work on all current and future build servers I decided to add the netsh call to the build script, which looks like this:</p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/get.AddressAccessDeniedExceptioninautoma_9859/Capture2.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="<Exec Command="netsh http add urlacl url=http://+:10000/PandoraDatabase/ user=SONES\TFS_BUILDSERVER"/>&#8221; border=&#8221;0&#8243; alt=&#8221;<Exec Command="netsh http add urlacl url=http://+:10000/PandoraDatabase/ user=SONES\TFS_BUILDSERVER"/>&#8221; src=&#8221;http://www.schrankmonster.de/content/binary/WindowsLiveWriter/get.AddressAccessDeniedExceptioninautoma_9859/Capture2_thumb.png&#8221; width=&#8221;400&#8243; height=&#8221;109&#8243; /></a></p>
<p>Add this Target before any tests in the .proj file and you’re set.</p>
<p>Source 1: <a title="http://go.microsoft.com/fwlink/?LinkId=70353" href="http://go.microsoft.com/fwlink/?LinkId=70353">http://go.microsoft.com/fwlink/?LinkId=70353</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/06/05/getting-system-servicemodel-addressaccessdeniedexception-in-automated-wcf-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sones portiert sein Speichersystem auf das Speichermedium der Zukunft!</title>
		<link>http://www.schrankmonster.de/2009/04/15/sones-portiert-sein-speichersystem-auf-das-speichermedium-der-zukunft/</link>
		<comments>http://www.schrankmonster.de/2009/04/15/sones-portiert-sein-speichersystem-auf-das-speichermedium-der-zukunft/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 06:28:33 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Riot]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/04/15/sonesPortiertSeinSpeichersystemAufDasSpeichermediumDerZukunft.aspx</guid>
		<description><![CDATA[Aufgrund neuester Entwicklungen im Speichermedien-Segment wird ab dem nächsten Release des sones Speichersystems auch das angesagteste Speichermedium der Stunde unterstützt: die Speichergurke. Durch die sensationelle Speicherdichte und unerreichte Zuverlässigkeit ist die Speichergurke das perfekte Speichermedium für den Datenhunger von gestern, heute und morgen. Source 1: http://www.sones.de Source 2: http://www.speichergurke.de]]></description>
			<content:encoded><![CDATA[<p>Aufgrund neuester Entwicklungen im Speichermedien-Segment wird ab dem nächsten Release des sones Speichersystems auch das angesagteste Speichermedium der Stunde unterstützt: die Speichergurke.</p>
<div align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/nE4Wn0cjrO4&#038;hl=de&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/nE4Wn0cjrO4&#038;hl=de&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></div>
<p>Durch die sensationelle Speicherdichte und unerreichte Zuverlässigkeit ist die Speichergurke das perfekte Speichermedium für den Datenhunger von gestern, heute und morgen.</p>
<p>Source 1: <a href="http://www.sones.de">http://www.sones.de</a>    <br />Source 2: <a title="http://www.speichergurke.de" href="http://www.speichergurke.de">http://www.speichergurke.de</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/04/15/sones-portiert-sein-speichersystem-auf-das-speichermedium-der-zukunft/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>sones is sponsoring partner of NEXT Conference 2009</title>
		<link>http://www.schrankmonster.de/2009/04/09/sones-is-sponsoring-partner-of-next-conference-2009/</link>
		<comments>http://www.schrankmonster.de/2009/04/09/sones-is-sponsoring-partner-of-next-conference-2009/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 06:52:32 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Meetings]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/04/09/sonesIsSponsoringPartnerOfNEXTConference2009.aspx</guid>
		<description><![CDATA[Turns out that we’re actually doing business there – great news that is! Source: http://www.next-conference.com/next09/]]></description>
			<content:encoded><![CDATA[<p align="left">Turns out that we’re actually doing business there – great news that is!</p>
<p align="center"><a href="http://www.next-conference.com/next09/" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="next09hamburg" border="0" alt="next09hamburg" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/sonesissponsoringpartnerofNEXTConference_7C36/next09hamburg_1.png" width="404" height="142" /></a> </p>
<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/sonesissponsoringpartnerofNEXTConference_7C36/sponsors09_2.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="sponsors09" border="0" alt="sponsors09" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/sonesissponsoringpartnerofNEXTConference_7C36/sponsors09_thumb.png" width="404" height="159" /></a> </p>
<p>Source: <a title="http://www.next-conference.com/next09/" href="http://www.next-conference.com/next09/">http://www.next-conference.com/next09/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/04/09/sones-is-sponsoring-partner-of-next-conference-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TechED EMEA 2009 – in Germany – will we be there? :-)</title>
		<link>http://www.schrankmonster.de/2009/04/09/teched-emea-2009-%e2%80%93-in-germany-%e2%80%93-will-we-be-there/</link>
		<comments>http://www.schrankmonster.de/2009/04/09/teched-emea-2009-%e2%80%93-in-germany-%e2%80%93-will-we-be-there/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 06:33:34 +0000</pubDate>
		<dc:creator>bietiekay</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer]]></category>
		<category><![CDATA[sones]]></category>

		<guid isPermaLink="false">http://www.schrankmonster.de/2009/04/09/TechEDEMEA2009InGermanyWillWeBeThere.aspx</guid>
		<description><![CDATA[The dates are: TechEd Berlin 2009 Developer 2-6 November &#8211; Messe Berlin, Deutschland &#8211; Germany TechEd Berlin 2009 IT-Professionals 9-13 November &#8211; Messe Berlin, Deutschland &#8211; Germany Comment if you’re going too!]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/TechEDEMEA2009inGermanywillwebethere_77C2/image_2.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.schrankmonster.de/content/binary/WindowsLiveWriter/TechEDEMEA2009inGermanywillwebethere_77C2/image_thumb.png" width="404" height="62" /></a> </p>
<p>The dates are:</p>
<p><strong><a href="http://www.schrankmonster.de/SearchView.aspx?q=teched" target="_blank">TechEd</a> Berlin 2009 Developer      <br /></strong>2-6 November &#8211; Messe Berlin, Deutschland &#8211; Germany</p>
<p><strong><a href="http://www.schrankmonster.de/SearchView.aspx?q=teched" target="_blank">TechEd</a> Berlin 2009 IT-Professionals</strong>    <br />9-13 November &#8211; Messe Berlin, Deutschland &#8211; Germany</p>
<p align="center">Comment if you’re going too!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schrankmonster.de/2009/04/09/teched-emea-2009-%e2%80%93-in-germany-%e2%80%93-will-we-be-there/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

