<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>.NET i takie tam</title>
	<atom:link href="http://sakowicz.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sakowicz.wordpress.com</link>
	<description></description>
	<lastBuildDate>Mon, 02 Jan 2012 22:47:28 +0000</lastBuildDate>
	<language>pl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='sakowicz.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>.NET i takie tam</title>
		<link>http://sakowicz.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sakowicz.wordpress.com/osd.xml" title=".NET i takie tam" />
	<atom:link rel='hub' href='http://sakowicz.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Sudoku Solver in C#</title>
		<link>http://sakowicz.wordpress.com/2012/01/02/sudoku-solver-in-c/</link>
		<comments>http://sakowicz.wordpress.com/2012/01/02/sudoku-solver-in-c/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 22:22:09 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Aplikacje]]></category>
		<category><![CDATA[backtrack]]></category>
		<category><![CDATA[breakable toy]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[kata]]></category>
		<category><![CDATA[solver]]></category>
		<category><![CDATA[sudoku]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/?p=724</guid>
		<description><![CDATA[Another breakable toy, my variation of Sudoku solver. I&#8217;ve created it without previously googling the topic, and I was quite surprised when latter I realized that most solutions out there use just dumb trial and error. I was also glad that I can re-invent backtracking algorithm Ok. let&#8217;s start, from having a Sudoku that we [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=724&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Another breakable toy, my variation of Sudoku solver. I&#8217;ve created it without previously googling the topic, and I was quite surprised when latter I realized that most solutions out there use just dumb trial and error. I was also glad that I can re-invent backtracking algorithm <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ok. let&#8217;s start, from having a Sudoku that we want to solve:</p>
<p><a href="http://sakowicz.files.wordpress.com/2012/01/sudoku.png"><img style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;padding-top:0;border:0;margin:0 auto;" title="sudoku" src="http://sakowicz.files.wordpress.com/2012/01/sudoku_thumb.png?w=453&#038;h=437" alt="sudoku" width="453" height="437" border="0" /></a></p>
<p>After a little consideration I decided to solve it by elimination of possible values. Let’s consider first block (by block I mean inner 3&#215;3 cells squares), possible values for empty cells:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="82">
<p style="text-align:center;" align="center">Cell \ Value</p>
</td>
<td style="text-align:center;" valign="top" width="64">
<p align="center">1</p>
</td>
<td style="text-align:center;" valign="top" width="64">
<p align="center">3</p>
</td>
<td style="text-align:center;" valign="top" width="64">
<p align="center">6</p>
</td>
<td style="text-align:center;" valign="top" width="64">
<p align="center">7</p>
</td>
<td style="text-align:center;" valign="top" width="64">
<p align="center">8</p>
</td>
<td style="text-align:center;" valign="top" width="68">
<p align="center">9</p>
</td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">A1</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="68">
<p align="center">x</p>
</td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">A2</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="68">
<p align="center">x</p>
</td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">A3</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="68">
<p align="center">x</p>
</td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">B2</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="68"></td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">B3</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="68"></td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">C3</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="68"></td>
</tr>
</tbody>
</table>
<p>We can see that value 1 can be only in A1 cell so fill it in. Check remaining cells and no single value in a row or column. So we evaluate next block:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="82">
<p align="center">Cell \ Value</p>
</td>
<td valign="top" width="64">
<p align="center">1</p>
</td>
<td valign="top" width="64">
<p align="center">2</p>
</td>
<td valign="top" width="64">
<p align="center">3</p>
</td>
<td valign="top" width="64">
<p align="center">4</p>
</td>
<td valign="top" width="68">
<p align="center">6</p>
</td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">A5</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="68"></td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">B3</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="68">
<p align="center">x</p>
</td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">B4</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64"></td>
<td valign="top" width="64"></td>
<td valign="top" width="64"></td>
<td valign="top" width="68">
<p align="center">x</p>
</td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">B5</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="68"></td>
</tr>
<tr>
<td valign="top" width="82">
<p align="center">C3</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="64"></td>
<td valign="top" width="64">
<p align="center">x</p>
</td>
<td valign="top" width="64"></td>
<td valign="top" width="68">
<p align="center">x</p>
</td>
</tr>
</tbody>
</table>
<p>Now value 1 and 6 are only possible in cells B5 and B4 so we fill them in. Check remaining cells after reduction &#8211; no single possible values – we go to the next block.</p>
<p>We cycle through all blocks until all cells are filled in (will happen only for very simple Sudoku) or number of empty cells is not changed after a cycle. In the second case, we filled what we could using simple elimination and it’s time for more advanced solving techniques or guessing. This time I choose guessing, maybe later I&#8217;ll implement something more original. So we take first empty cell pick its first possible value fill it in and use recursion and <a href="http://en.wikipedia.org/wiki/Backtracking" target="_blank">backtrack algorithm</a> to check if we can complete the puzzle. If not go back pick next possible value and try again.</p>
<p>That&#8217;s it the whole working solution can be found on <a href="https://github.com/sakowiczm/Sudoku-Solver-CSharp" target="_blank">github</a>. To test the solution I&#8217;ve used online solver at <a href="http://www.sudokuwiki.org/sudoku.htm">http://www.sudokuwiki.org/sudoku.htm</a> . Beside of detail description of different techniques of solving Sudoku, it allows to import and export puzzle as string of numbers which is really helpful.</p>
<p>Next step for me is to implement the same algorithm using less familiar languages. I think of Python, Ruby, JavaScript and Dart, F# and maybe Haskell.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/724/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/724/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/724/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/724/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/724/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/724/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/724/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=724&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2012/01/02/sudoku-solver-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2012/01/sudoku_thumb.png" medium="image">
			<media:title type="html">sudoku</media:title>
		</media:content>
	</item>
		<item>
		<title>User defined rules and how to host IronPython in .NET application</title>
		<link>http://sakowicz.wordpress.com/2011/11/10/user-defined-rules-and-how-to-host-ironpython-in-net-application/</link>
		<comments>http://sakowicz.wordpress.com/2011/11/10/user-defined-rules-and-how-to-host-ironpython-in-net-application/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 22:25:41 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[DLR]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/?p=701</guid>
		<description><![CDATA[Currently I&#8217;m working on a data processing slash financial application where user can define their own processing rules. Those rules are defined in specially created scripting language &#8211; sounds impressive, right? Well it&#8217;s really interesting piece of code especially for someone like me who never worked before on parsers, tokenizes and all other stuff that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=701&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Currently I&#8217;m working on a data processing slash financial application where user can define their own processing rules. Those rules are defined in specially created scripting language &#8211; sounds impressive, right? Well it&#8217;s really interesting piece of code especially for someone like me who never worked before on parsers, tokenizes and all other stuff that is needed to built a compiler/interpreter. But this is also a problem – writing custom language is not a core part of the business. In result language evolved in a direction that was picked as we saw fit at the given moment. That is why we have nice, lean syntactical Frankenstein monster that is working fine with one exception &#8211; it&#8217;s rather slow. </p>
<p align="justify">So conclusion from this situation &#8211; if something is not core part of a business and it&#8217;s pretty important – think twice before you go and build it. Most likely business won’t spare enough time/money/developers to do this right.</p>
<p align="justify">Realizing this we decided to retire our friendly Frankenstein baby and use Python instead.</p>
<p align="justify">Python is a dynamic programming language which is getting more traction in recent years. It is used by companies like Google, Yahoo and even NASA. In result of its growing popularity Microsoft decided to create Python implementation for .NET. The project is called <a href="http://ironpython.net/">IronPython</a> and it was open-sourced not so long ago. Because it is built on .NET using Dynamic Runtime Extensions (DLR) it can be easily integrate with other managed applications.</p>
<p>To embed Python in .NET app it’s enough to reference following assemblies:</p>
<ul>
<li>Microsoft.Scripting.Metadata.dll</li>
<li>Microsoft.Scripting.dll</li>
<li>Microsoft.Dynamic.dll</li>
<li>IronPython.Modules.dll</li>
<li>IronPython.dll</li>
</ul>
<p>And type two lines of code, like below, to execute you first script:</p>
<p><a href="http://sakowicz.files.wordpress.com/2011/11/image4.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" src="http://sakowicz.files.wordpress.com/2011/11/image_thumb4.png?w=338&#038;h=148" width="338" height="148" /></a></p>
<p align="justify">This is just simple evaluator &#8211; execution of something a bit more complicated let say mixing Python method and C# code, can be achieved like this:</p>
<p><a href="http://sakowicz.files.wordpress.com/2011/11/image7.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" src="http://sakowicz.files.wordpress.com/2011/11/image_thumb7.png?w=709&#038;h=340" width="709" height="340" /></a></p>
<p align="justify">After instantiation of<b> </b>necessary objects &#8211; ScriptingEngine, ScriptScope etc. about them in a moment, compile a Python method, obtain function delegate from ScriptScope and execute it.</p>
<p align="justify">There is four main classes that we need to work with IronPython or any language based on DLR for that matter:</p>
<ul>
<li>
<div align="justify">ScriptEngine &#8211; this is a DLR object that represents language semantics e.g. IronPython, IronRuby etc. It&#8217;s responsible for executing code.</div>
</li>
<li>
<div align="justify">ScriptScope &#8211; essentially this class represents a namespace &#8211; it&#8217;s used for storing runtime variables. We can execute script in context of multiple ScriptScopes.</div>
</li>
<li>
<div align="justify">ScriptSource &#8211; represents source code and offers a variety of ways to execute or compile the source.</div>
</li>
<li>
<div align="justify">CompiledCode &#8211; represents compiled script &#8211; can improve performance in case we want to reuse it.</div>
</li>
</ul>
<p align="justify">During integration of Python into the project one of the focuses was ability to reuse library of existing domain functions written in C# without burdening a user with knowledge about references, modules etc. How I choose to solve this problem was using ExpandoObject as a vessel for passing rule delegates into Python script. Let’s look at following example:</p>
<p><a href="http://sakowicz.files.wordpress.com/2011/11/image8.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" src="http://sakowicz.files.wordpress.com/2011/11/image_thumb8.png?w=663&#038;h=564" width="663" height="564" /></a></p>
<p align="justify">There are two important things here: first script defines function Add which sums two parameters a and b and third value that is obtained from C# function called GetValue(). GetValue in this example is as simple as it can gets:</p>
<p> <b></b>
<p><a href="http://sakowicz.files.wordpress.com/2011/11/image3.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" src="http://sakowicz.files.wordpress.com/2011/11/image_thumb3.png?w=158&#038;h=72" width="158" height="72" /></a></p>
<p align="justify">Keyword RULE is global variable that we defined as ExpandoObject and passed to ScriptScope which is used to execute script. ExpandoObject holds delegates to functions we want to use in Python method.</p>
<p align="justify">It is possible to use dictionary or some other predefined object &#8211; instead Expando but first I think that syntax: variable.function(parameters) fit nicely with Python. Secondly we can add properties dynamically which in case of hundreds built in rules can come in handy. Just add some script analyzer and pass only delegates of required functions.</p>
<p align="justify">All above examples and some more can be found <a href="https://github.com/sakowiczm/IronPython-Integration">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/701/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/701/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/701/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/701/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/701/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/701/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/701/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/701/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/701/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/701/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/701/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/701/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/701/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/701/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=701&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2011/11/10/user-defined-rules-and-how-to-host-ironpython-in-net-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/11/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/11/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/11/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/11/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Agatha and Request/Response pattern</title>
		<link>http://sakowicz.wordpress.com/2011/10/29/agatha-and-requestresponse-pattern/</link>
		<comments>http://sakowicz.wordpress.com/2011/10/29/agatha-and-requestresponse-pattern/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 20:04:49 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[wcf]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[services]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/?p=673</guid>
		<description><![CDATA[Request/Response pattern is very simple pattern that can make our life easier when working with wcf services. The idea is to wrap all service operation parameters in one object that we call a request and return an object that we call a response. There is few advantages of such approach, the main ones (at least [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=673&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Request/Response pattern is very simple pattern that can make our life easier when working with wcf services. The idea is to wrap all service operation parameters in one object that we call a request and return an object that we call a response. There is few advantages of such approach, the main ones (at least for me) are:</p>
<ul>
<li>
<div align="justify">You can inherit request and responses from base objects where you can put some common properties like user information, security token or error message. </div>
<li>
<div align="justify">Simplifies versioning of a service </div>
<li>
<div align="justify">Generated proxy is easier to read and understand </div>
</li>
</ul>
<p align="justify">Simple right? Sure – that is why I was surprised when I’ve read about framework that was described as a ‘Request/Response Service Layer’. Why the strait forward pattern needs a framework? Is this one of those projects that were created just for sake of creating it? I was almost ready to close the page when I saw a little bit of code that I sub conscience liked:</p>
<pre class="csharpcode"><a href="http://sakowicz.files.wordpress.com/2011/10/image.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" src="http://sakowicz.files.wordpress.com/2011/10/image_thumb.png?w=711&#038;h=224" width="711" height="224"></a></pre>
<pre class="csharpcode">&nbsp;</pre>
<p align="justify">One class one operation? Interesting I must admit most services which I was working with – looked like bunch different procedures putted in the same file – procedural, ugly hard to read and understand. Is this possibly a solution? </p>
<p align="justify">Please meet Agatha – she will make your life easier or not &#8211; depends your preferences. So what this framework is doing? – simply it’s request dispatcher. There is predefined contract with one operation:</p>
<pre class="csharpcode"><a href="http://sakowicz.files.wordpress.com/2011/10/image1.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" src="http://sakowicz.files.wordpress.com/2011/10/image_thumb1.png?w=412&#038;h=91" width="412" height="91"></a></pre>
<pre class="csharpcode">&nbsp;</pre>
<p align="justify">All messages are send to this operation – and Agatha based on request object type is routing it to specific handler. Basic sample can be found here. So what we gain:</p>
<ol>
<li>
<div align="justify">proper code separation for service operations – now we have handlers </div>
<li>
<div align="justify">we can publish only one service for all implemented handlers </div>
<li>
<div align="justify">no need to update client side proxy when service is changed </div>
<li>
<div align="justify">authentication, authorization, error logging &#8211; can be done just in one place </div>
<li>
<div align="justify">we can batch requests for traffic optimization – so ‘chatty’ services are not a problem anymore </div>
<li>
<div align="justify">framework handles client and server endpoints with minimal wcf configuration </div>
</li>
</ol>
<p align="justify">So it is nice simple and easy – but only when both client and server are using Agatha. We can still consume service in other languages but it will be awkward – request types will indicate what operation we want to call. One more issue that was actually mentioned by one of my colleagues is lack of clearly defined interface which will make service even more difficult to use by 3rd party.</p>
<p align="justify">In summary interesting approach for handling services. Especially if you want to use them for internal clients that you can control. But I would think twice if I had to develop something for greater audience. </p>
<p align="justify">You can find Agatha on <a href="https://github.com/davybrion/Agatha" target="_blank">GitHub</a>. Example application is described <a href="http://davybrion.com/blog/2009/11/hello-world-with-agatha/" target="_blank">here</a>, and <a href="http://davybrion.com/blog/2009/11/requestresponse-service-layer-series/" target="_blank">here</a> you can find series of post describing framework in more details.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/673/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=673&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2011/10/29/agatha-and-requestresponse-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/10/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/10/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Performance Counters i ich kategorie</title>
		<link>http://sakowicz.wordpress.com/2011/03/14/performance-counters-i-ich-kategorie/</link>
		<comments>http://sakowicz.wordpress.com/2011/03/14/performance-counters-i-ich-kategorie/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 21:39:18 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Aplikacje]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Performance Counters]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/?p=660</guid>
		<description><![CDATA[Performance Counters to taki mechanizm Windows, dzięki któremu możemy oszacować wydajność naszej aplikacji (i nie tylko naszej). Świetnie się również sprawdzają, przy identyfikacji wszelkich problemów z wyciekami pamięci lub przy poszukiwaniu niezamkniętych połączeń do bazy danych. Pełną listę odstępnych &#8216;liczników&#8217; podzielonych na kategorie można zobaczyć uruchamiając Performance Monitor umieszczony Control Panel -&#62; Administrative Tools. Wszystkie [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=660&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Performance Counters to taki mechanizm Windows, dzięki któremu możemy oszacować wydajność naszej aplikacji (i nie tylko naszej). Świetnie się również sprawdzają, przy identyfikacji wszelkich problemów z wyciekami pamięci lub przy poszukiwaniu niezamkniętych połączeń do bazy danych. Pełną listę odstępnych &#8216;liczników&#8217; podzielonych na kategorie można zobaczyć uruchamiając Performance Monitor umieszczony Control Panel -&gt; Administrative Tools.</p>
<p><a href="http://sakowicz.files.wordpress.com/2011/03/image3.png"><img style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;padding-top:0;border:0;margin:0 auto;" title="image" src="http://sakowicz.files.wordpress.com/2011/03/image_thumb3.png?w=676&#038;h=482" border="0" alt="image" width="676" height="482" /></a></p>
<p>Wszystkie liczniki podzielone są na kategorie &#8211; i właśnie z tymi kategoriami miałem problem. Otóż przykładowo, aby stworzyć nową kategorię i dodać do niej nasze liczniki, wywołamy następującą metodą:</p>
<div style="background:white;overflow:auto;width:auto;color:black;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;">
<pre style="line-height:125%;margin:0;">CounterCreationDataCollection counters = <span style="color:#0000ff;">new</span> CounterCreationDataCollection();

counters.Add(<span style="color:#0000ff;">new</span> CounterCreationData(<span style="color:#a31515;">"Counter 1"</span>,
                                        <span style="color:#a31515;">"Counter 1 Description"</span>,
                                        PerformanceCounterType.NumberOfItems32));
counters.Add(<span style="color:#0000ff;">new</span> CounterCreationData(<span style="color:#a31515;">"Counter 2"</span>,
                                        <span style="color:#a31515;">"Counter 2 Description"</span>,
                                        PerformanceCounterType.NumberOfItems32));

PerformanceCounterCategory.Create(<span style="color:#a31515;">"Nowa Kategoria"</span>,
                                    <span style="color:#a31515;">"Nowe Kategoria Description"</span>,
                                    PerformanceCounterCategoryType.Unknown, counters);</pre>
</div>
<p>Fajnie, a co jeśli teraz chcemy dodać nowy licznik do naszej kategorii? No cóż klops &#8211; nieco skostniałe API nam tego nie umożliwia, przynajmniej nie bezpośrednio. Otóż, co możemy zrobić to pobrać wszystkie istniejące liczniki, skasować kategorie i utworzyć ja ponownie wzbogacona o nowe liczniki. Przykładowo:</p>
<div style="background:white;overflow:auto;width:auto;color:black;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;">
<pre style="line-height:125%;margin:0;"><span style="color:#00aaaa;">string</span> categoryName = <span style="color:#aa5500;">"Nowa Kategoria"</span>;

CounterCreationDataCollection counters = <span style="color:#0000aa;">new</span> CounterCreationDataCollection();

<span style="color:#0000aa;">if</span> (PerformanceCounterCategory.Exists(categoryName))
{
    PerformanceCounterCategory pcc = PerformanceCounterCategory.GetCategories()
                      .Where(c =&gt; c.CategoryName == categoryName).FirstOrDefault();

    <span style="color:#0000aa;">if</span> (pcc != <span style="color:#0000aa;">null</span>)
    {
        var existingCouters = pcc.GetCounters().
                        Select(c =&gt; <span style="color:#0000aa;">new</span> CounterCreationData()
        {
            CounterName = c.CounterName,
            CounterHelp = c.CounterHelp,
            CounterType = c.CounterType
        }).ToArray();

        counters.AddRange(existingCouters);
    }

    PerformanceCounterCategory.Delete(categoryName);
}

counters.Add(<span style="color:#0000aa;">new</span> CounterCreationData(<span style="color:#aa5500;">"Counter 3"</span>,
                                     <span style="color:#aa5500;">"Counter 3 Description"</span>,
                                     PerformanceCounterType.NumberOfItems32));

PerformanceCounterCategory.Create(categoryName,
                                  categoryName + <span style="color:#aa5500;">" Description"</span>,
                                  PerformanceCounterCategoryType.Unknown, counters);</pre>
</div>
<p>Powinno grac i buczeć. Jedno, na co trzeba zwrócić uwagę to, ze możliwy jest mały poślizg z &#8216;publikacja&#8217; nowego licznika przez Windows. Co może powodować problemy? Gdy instalujemy cos np. serwisy windowsowe z pliku batch &#8211; licznik z jednego serwisu jeszcze nie został opublikowany a drugi serwis juz pobiera ich listę, aby je zmodyfikować.</p>
<p>Więcej o Performance Counters można znaleźć <a href="http://www.codeproject.com/KB/dotnet/perfcounter.aspx" target="_blank">tutaj</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/660/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/660/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=660&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2011/03/14/performance-counters-i-ich-kategorie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>OMG!! My knowledge is gone!!</title>
		<link>http://sakowicz.wordpress.com/2011/03/01/omg-my-knowledge-is-gone/</link>
		<comments>http://sakowicz.wordpress.com/2011/03/01/omg-my-knowledge-is-gone/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 22:22:24 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/?p=650</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=650&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://sakowicz.files.wordpress.com/2011/03/image2.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;border-top:0;border-right:0;padding-top:0;margin:0 auto;" title="image" border="0" alt="image" src="http://sakowicz.files.wordpress.com/2011/03/image_thumb2.png?w=698&#038;h=573" width="698" height="573" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/650/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=650&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2011/03/01/omg-my-knowledge-is-gone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Partial Methods</title>
		<link>http://sakowicz.wordpress.com/2011/02/28/partial-methods/</link>
		<comments>http://sakowicz.wordpress.com/2011/02/28/partial-methods/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 23:48:32 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[partial]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/2011/02/28/partial-methods-2/</guid>
		<description><![CDATA[Codziennie można nauczyć się czegoś nowego. Dzisiaj odkryłem, że w .NET nie tylko klasy mogą być określane, jako partial, ale również metody. Wygląda to tak: partial class Account { private decimal _balance; public string Balance { get { return _balance; } set { OnBalanceChanging(value); _balance = value; OnBalanceChanged(); } } partial void OnBalanceChanging(decimal balance); partial [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=624&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Codziennie można nauczyć się czegoś nowego. Dzisiaj odkryłem, że w .NET nie tylko klasy mogą być określane, jako partial, ale również metody. Wygląda to tak:</p>
<div id="codeSnippetWrapper">
<pre style="background-color:#f4f4f4;font-family:'Courier New', Courier, Monospace;font-size:8pt;line-height:12pt;color:black;overflow:visible;width:100%;direction:ltr;text-align:left;border-style:none;margin:0;padding:0;"><span style="color:#0000ff;">partial</span> <span style="color:#0000ff;">class</span> Account
{
    <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">decimal</span> _balance;

    <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> Balance
    {
        get { <span style="color:#0000ff;">return</span> _balance; }
        set
        {
            OnBalanceChanging(<span style="color:#0000ff;">value</span>);
            _balance = <span style="color:#0000ff;">value</span>;
            OnBalanceChanged();
        }
    }

    <span style="color:#0000ff;">partial</span> <span style="color:#0000ff;">void</span> OnBalanceChanging(<span style="color:#0000ff;">decimal</span> balance);
    <span style="color:#0000ff;">partial</span> <span style="color:#0000ff;">void</span> OnBalanceChanged();
}</pre>
</div>
<p style="text-align:justify;">I klasa implementująca metody OnBalanceChanging i OnBalanceChanged:</p>
<div id="codeSnippetWrapper">
<pre style="background-color:#f4f4f4;font-family:'Courier New', Courier, Monospace;font-size:8pt;line-height:12pt;color:black;overflow:visible;width:100%;direction:ltr;text-align:left;border-style:none;margin:0;padding:0;"><span style="color:#0000ff;">partial</span> <span style="color:#0000ff;">class</span> Account
{
    <span style="color:#0000ff;">partial</span> <span style="color:#0000ff;">void</span> OnBalanceChanging(<span style="color:#0000ff;">decimal</span> balance)
    {
        <span style="color:#008000;">// do sth</span>
    }

    <span style="color:#0000ff;">partial</span> <span style="color:#0000ff;">void</span> OnBalanceChanged()
    {
        <span style="color:#008000;">// do sth</span>
    }
}</pre>
</div>
<p>Proste przejrzyste i przypominające eventy, prawda? Przykład wykorzystania można znaleźć np. w klasach generowanych przez Entity Framework 4.</p>
<p><a href="http://msdn.microsoft.com/en-us/library/wa80x488.aspx" target="_blank">Dokumentacja</a> podaje zasady korzystania z partial methods (ciekawe jak by to przetłumaczyć metody cząstkowe, częściowe)?</p>
<p>· metoda musi być oznaczona słowem kluczowym partial i musi być private</p>
<p>· musi zwracać void</p>
<p>· metoda może mieć parametry oznaczone, jako ref, ale już nie, jako out (pewnie, dlatego, że niemożna zagwarantować, że zmienną oznaczoną, jako out zainicjujemy, co jest wymagane przy wykorzystaniu tego modyfikatora)</p>
<p>· metoda może być oznaczona, jako static bądź unsafe</p>
<p>Jeśli zdefiniujemy metodę partial, ale jej nie zaimplementujemy, kompilator po prostu usunie referencję do niej. Niestety, jeśli postąpimy na odwrót tj. będziemy mieli implementację a brak będzie jej definicji, kompilator zgłosi wyjątek.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/624/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=624&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2011/02/28/partial-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>
	</item>
		<item>
		<title>Ceny na Amazonie</title>
		<link>http://sakowicz.wordpress.com/2011/01/30/ceny-na-amazonie/</link>
		<comments>http://sakowicz.wordpress.com/2011/01/30/ceny-na-amazonie/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 16:06:25 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[ceny]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[kindle dx]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/?p=611</guid>
		<description><![CDATA[Od jakiegoś roku korzystam z Amazon Kindle DX &#8211; świetne urządzenie które polecam każdemu kto sporo czyta szczególnie w podróży. Jednak ceny jakie widzę na Amazonie po prostu mnie wkurzają: Książka papierowa jest tańsza od elektronicznej? Jak to możliwe? Cały proces od ścięcia drzewa, zrobienia papieru, przygotowania farby, druku, magazynowania aż po wysyłkę do klienta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=611&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Od jakiegoś roku korzystam z Amazon Kindle DX &#8211; świetne urządzenie które polecam każdemu kto sporo czyta szczególnie w podróży. Jednak ceny jakie widzę na Amazonie po prostu mnie wkurzają:</p>
<p><a href="http://sakowicz.files.wordpress.com/2011/01/clip_image002.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;padding-top:0;border:0;margin:0 auto;" title="clip_image002" src="http://sakowicz.files.wordpress.com/2011/01/clip_image002_thumb.jpg?w=690&#038;h=387" border="0" alt="clip_image002" width="690" height="387" /></a></p>
<p>Książka papierowa jest tańsza od elektronicznej? Jak to możliwe? Cały proces od ścięcia drzewa, zrobienia papieru, przygotowania farby, druku, magazynowania aż po wysyłkę do klienta &#8211; zawarty jest w cenie wersji papierowej &#8211; a ta jest niższa od wersji elektronicznej? Dobra tylko o 9c, ale zakładając, że połowa ceny wersji papierowej to koszty przygotowania i druku &#8211; to na elektronicznej przepłacamy 50%. Ile kosztuje przygotowanie wersji elektronicznej, tyle co nic, bo jak książka została złożona i przygotowana do druku &#8211; to konwersja do formatu prc, mobi etc. to jest jedno kliknięcie. Dla mnie to już tylko czysta pazerność &#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/611/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=611&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2011/01/30/ceny-na-amazonie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/01/clip_image002_thumb.jpg" medium="image">
			<media:title type="html">clip_image002</media:title>
		</media:content>
	</item>
		<item>
		<title>Problem z localhost</title>
		<link>http://sakowicz.wordpress.com/2011/01/26/problem-z-localhost/</link>
		<comments>http://sakowicz.wordpress.com/2011/01/26/problem-z-localhost/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 00:03:02 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Aplikacje]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[poroblemy]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[protocols]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/?p=605</guid>
		<description><![CDATA[Dostałem nową maszynę w pracy z świeżo wgranym image systemu. Zdążyłem sobie ją skonfigurować, zainstalowałem co trzeba, pobrałem kod z repozytorium &#8211; wszystko fajne się buduje, działa jak należy &#8211; do czasu … pierwszego restartu. Po ponownym uruchomieniu &#8211; strona nad którą jeszcze chwilę wcześniej pracowałem odmawia współpracy wyświetlają błąd 404. Ok. pewnie coś ze [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=605&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Dostałem nową maszynę w pracy z świeżo wgranym image systemu. Zdążyłem sobie ją skonfigurować, zainstalowałem co trzeba, pobrałem kod z repozytorium &#8211; wszystko fajne się buduje, działa jak należy &#8211; do czasu … pierwszego restartu.</p>
<p>Po ponownym uruchomieniu &#8211; strona nad którą jeszcze chwilę wcześniej pracowałem odmawia współpracy wyświetlają błąd 404. Ok. pewnie coś ze ścieżkami nie tak, ale nie, wszystko jest tak jak być powinno. Strona nadal wyświetla 404 &#8211; dziwne, robię iisreset nadal nic.</p>
<p>Wszystko idealnie się składa &#8211; za chwilę mam spotkanie z analitykiem i potrzebuję działającej strony &#8211; awaryjnie włączam laptopa i nadal szukam problemu.</p>
<p>Próbuję załadować inną stronę &#8211; problem ten sam 404. Ok. to już coś z IIS&#8217;em &#8211; działa (bo wyświetla 404). Czytam stronę błędu nieco dokładniej i mamy Status Code 101 &#8211; ok. sprawdzamy w Google co to znaczy &#8211; <a href="http://support.microsoft.com/kb/943891">http://support.microsoft.com/kb/943891</a></p>
<p>101 &#8211; Switching protocols.</p>
<p>Niewiele mi to mówi ale zaczynam- grzebać w konfiguracji IIS&#8217;a &#8211; i w sumie od razu, widzę problem:</p>
<p><a href="http://sakowicz.files.wordpress.com/2011/01/clip_image001.png"><img style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;padding-top:0;border:0;margin:0 auto;" title="clip_image001" src="http://sakowicz.files.wordpress.com/2011/01/clip_image001_thumb.png?w=673&#038;h=132" border="0" alt="clip_image001" width="673" height="132" /></a></p>
<p>Próba ponownego startu, zwróciła kolejny wyjątek:</p>
<p><strong>IIS Manager Error: The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0&#215;80070020) </strong></p>
<p>Jakiego pliku? Dalszych poszukiwaniach w Internecie &#8211; okazało się, że może tu chodzić nie tyle o plik co o port <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Teraz już było z górki &#8211; z linii komend, wystukałem:</p>
<p>netstat -ano</p>
<p>aby sprawdzić czy coś korzysta z portu 80 &#8211; Bingo! Przechodzę do Process Explorera i sprawdzam PID procesu korzystającego z mego portu i … okazuje się, że to Chrome <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  OK. zamykamy przeglądarkę, restartujemy IIS&#8217;a i znowu wszystko gra!!</p>
<p>Wszystko było by pięknie, gdyby nie zmarnowana godzina i uczucie, że już kiedyś chyba walczyłem z podobnym problemem.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/605/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=605&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2011/01/26/problem-z-localhost/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2011/01/clip_image001_thumb.png" medium="image">
			<media:title type="html">clip_image001</media:title>
		</media:content>
	</item>
		<item>
		<title>Maroko</title>
		<link>http://sakowicz.wordpress.com/2010/10/31/maroko/</link>
		<comments>http://sakowicz.wordpress.com/2010/10/31/maroko/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 11:56:01 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">https://sakowicz.wordpress.com/?p=582</guid>
		<description><![CDATA[Od dłuższego czasu milczałem na blogu, o przyczynach, próbuję napisać w przyszłości, teraz tylko krótka uwaga &#8211; złe środowisko pracy negatywnie wpływa na moją kreatywność czasem do tego stopnia, że tracę (oczywiście na jakiś czas) radość z tego czym się zajmuję. Dobra tyle o pracy, dzisiaj coś o Maroku z którego niedawno wróciłem. Witaj Afryko [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=582&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Od dłuższego czasu milczałem na blogu, o przyczynach, próbuję napisać w przyszłości, teraz tylko krótka uwaga &#8211; złe środowisko pracy negatywnie wpływa na moją kreatywność czasem do tego stopnia, że tracę (oczywiście na jakiś czas) radość z tego czym się zajmuję. Dobra tyle o pracy, dzisiaj coś o Maroku z którego niedawno wróciłem.</p>
<h3>Witaj Afryko</h3>
<p>To była moja pierwsza wizyta w Afryce i nie bardzo wiedziałem czego się spodziewać. Wybór miejsca był nieco problematyczny z jednej strony chciałem poleżeć trochę na plaży i zakosztować błogiego lenistwa, z drugiej chciałem zobaczyć coś więcej niż ośrodek turystyczny. Agadir w Maroko całkowicie spełniło moje oczekiwania.</p>
<p>Bezpośredni lot z Dublina do Agadiru oferowany przez jet4you trwa około trzech i pół godziny. Klasa linii lotniczej powiedział bym ryanair&#8217;owska, co przy długości lotu i ilości miejsca na nogi &#8211; pozostawia nieco do życzenia. Na lotnisku przywitało nas zachód słońca (ok. 7 wieczorem) i sucha, ciepła bryza, przyjemna odmiana od wilgoci Dublina. Droga do hotelu zajęła nam jakieś pół-godziny, w zachodzącym słońcu, obserwowaliśmy przedsmak tego co nas czeka.</p>
<h3>Agadir</h3>
<p style="text-align:center;"><a title="Agadir by s@ku, on Flickr" href="http://www.flickr.com/photos/sakowiczm/5065300679/"><img class="aligncenter" src="http://farm5.static.flickr.com/4085/5065300679_937ffe19bb.jpg" alt="Agadir" width="500" height="335" /></a></p>
<p>Agadir to nadmorskie miasto w regionie Sous, które zostało praktycznie całkowicie odbudowane po trzęsieniu ziemi w 1960 roku. Zatrzymaliśmy się w bardzo przyjemnym hotelu <a href="http://www.google.ie/images?q=Intouriste&amp;hl=en&amp;client=firefox-a&amp;hs=5J3&amp;rls=org.mozilla:en-US:official&amp;prmd=iv&amp;source=lnms&amp;tbs=isch:1&amp;ei=4OywTJzGHpH84AbqhpXEBg&amp;sa=X&amp;oi=mode_link&amp;ct=mode&amp;ved=0CA8Q_AU&amp;biw=1920&amp;bih=887" target="_blank">Intouriste</a>. Jeśli ktoś by się tam wybierał, to nie polecam tylko lodów w restauracji, i śniadań ok. godziny 7 rano (jeśli w ogóle takowe uda się dostać <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Hotel jest położony nieco na uboczu, ale do centrum czy do plaży można się dostać w niecałe 10 minut.</p>
<p>Dzielnica turystyczna rozciąga się wzdłuż plaży, i nie różni się niczym od innych resortów nastawionych na plażowiczów, ale wystarczy tylko przekroczyć ulicę Kennedego, aby zobaczyć jak żyją miejscowi. Nie będą to lepianki z gliny, niemniej jednak od razu widać, że turyści często tam nie zaglądają, śmieci są wyrzucane prosto na ulicę a jedzenie jest zdecydowanie inne od tego co podają w hotelu. Kręcąc się tam wąskimi uliczkami i straganami, notabene przypominających mi zapachami Łódzki Górniak tak z przed 20 lat, mamy przedsmak tego co nas czeka w Marrakeszu.</p>
<h3>Marrakesz</h3>
<p style="text-align:center;"><a title="Zabytkowy meczet w Marakeszu by s@ku, on Flickr" href="http://www.flickr.com/photos/sakowiczm/5065447613/"><img class="aligncenter" src="http://farm5.static.flickr.com/4127/5065447613_883643e6c2.jpg" alt="Zabytkowy meczet w Marakeszu" width="500" height="335" /></a></p>
<p>Marrakesz leży jakieś 3 godziny drogi od Agadiru, można tam zobaczyć trochę zabytków Starego Miasta (Mediny) w tym meczet i pałac sułtana. Do meczetów w Maroko, niewiernym nie wolno wchodzić, za wyjątkiem jednego który bodaj znajduje się w Casablance. Targ starego miasta, ciekawe doświadczenie, ale mi raz wystarczy. Głównie ze względu na ciągłe nagabywanie ze strony straganiarzy. Jeden to chyba się uparł, że sprzeda mi pasek, bo gdzie bym nie skręcił to czekał i wciskał mi w ręce to czego nie chciałem. Jeszcze nikt tak się nie martwił żeby mi spodnie nie spadły.</p>
<p>Acha informacja, dla wszystkich których bliski kontakt z wężami, małpami i tym podobnymi , przyprawia o dreszcze (bynajmniej nie radości). Nam to się nie przydarzyło, ale są tam osobnicy który potrafią, bez waszej zgody, zarzucić wam takie stworzenie na ramiona i oczekiwać, że zrobicie sobie zdjęcie i im za to zapłacicie.</p>
<p>Poza Medina, Marrakesz niczym nie różni się od innych europejskich miast, podsumowując byłem zobaczyłem i nieprędko tam się pojawię ponownie.</p>
<h3>Tafraout</h3>
<p style="text-align:center;"><a title="Kasbah by s@ku, on Flickr" href="http://www.flickr.com/photos/sakowiczm/5065328351/"><img class="aligncenter" src="http://farm5.static.flickr.com/4113/5065328351_ca8f68aca5.jpg" alt="Kasbah" width="500" height="335" /></a></p>
<p>Mateczko położone w górach Atlas. Jakby domy były z drewna a drogi piaszczyste nie asfaltowe, to byśmy mieli idealną scenerię do kręcenia westernów. Tak mi się jakoś skojarzyło. Gorąco termometr wskazywał 45 stopni Celsjusza, ale aż tyle to chyba nie było. Pomimo wszystko, panowie drogowcy, da się zrobić asfalt który się nie topi w temperaturach powyżej 30 stopni. Miejsce jest lokalną stolicą ręcznie robionych kocy i dywanów jeśli ktoś byłby zainteresowany. Poza tym wspaniałe formacje skalne i górskie widoki. Wracając drogą do Agadiru można podziwiać, nadal zamieszkaną, warowną twierdzę Kasbah.</p>
<h3>Jedzenie</h3>
<p>Kulinarnym aspektem wycieczki muszę przyznać byłem trochę rozczarowany.</p>
<p style="text-align:center;"><a title="Tajine by s@ku, on Flickr" href="http://www.flickr.com/photos/sakowiczm/5131098559/"><img class="aligncenter" src="http://farm2.static.flickr.com/1116/5131098559_699f6d5094.jpg" alt="Tajine" width="500" height="375" /></a></p>
<p>Spodziewałem się bogatej kuchni a okazało się, że wszystko co oferują turystom, oprócz typowo europejskich dań to trzy popisowe potrawy: kuskus, tajine i zupa z soczewicy. Albo kuchnia uboga jak w Irlandii albo po więcej trzeba zapuścić się do typowo miejscowych lokali.</p>
<p>Z napojów, popisowo parzą herbatę miętowa, a właściwie mix herbaty zielonej, suszonej i świeżej mięty &#8211; pite na gorąco z duża ilością cukru. Wbrew pozorom świetne na upały. W Maroko, standardowy europejczyk, powinien pic tylko wodę mineralna, butelkowana bądź przegotowana, lepiej nie ryzykować rozstroju żołądka czy w najgorszym przypadku jakiejś ameby. To samo się tyczy lodu w kostkach i lodów – do których dodawany jest zwykły lód.</p>
<h3>Ceny</h3>
<p>Ceny są porównywalne jak w Europie. Z początku myślałem, ze tylko w centrum są takie wysokie, aby golić naiwnych turystów &#8211; jednak nie. Zrobiliśmy sobie wycieczkę kulturoznawcza do jednego z hipermarketów Marjane i byłem zaskoczony.</p>
<p>W sklepie praktycznie sami miejscowi, od czasu do czasu w tłumie mignie tylko jakiś europejczyk, a ceny takie jak w Irlandii a czasem droższe. Paczka Pringels, kosztuje przeszło 3 euro. Podejrzewam, że na lokalnych bazarach (po ichniemu souk&#8217;ach) ceny są dużo niższe. I dlatego pewnie jedzenie w restauracjach nie było przesadnie drogie, za 3 daniowy obiad z butelka wina przyszło mi zapłacić 17 euro.</p>
<p>Niestety w hipermarkecie nie można się targować, wszędzie indziej jest to wręcz wskazane &#8211; bo jeszcze kogoś się obrazi <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ot taki sport narodowy &#8211; zwykle pierwsza cenę, należy podzielić przez 4 i będziemy w okolicy ceny dla turysty. Nie problem jest z targować się z 30 do 7-8 euro, pewnie można i więcej ale to już wymaga cierpliwości, czasu, poczucia humoru i gawędziarskiego zacięcia. Podobnie z taksówkami, trzeba się targować bo próbują zdzierać &#8211; zwykle płaciłem stałą stawkę ‘turystyczną’ 20 dirchamów, ale cena wyjściowa bywała 30 a nawet 40. Są dwa rodzaje taksówek małe pomarańczowe &#8216;petit taxi&#8217;, kursujące w obrębie jednego miasta i &#8216;grand taxi&#8217; które są większe, droższe i mogące kursować miedzi miastami. Oba rodzaje strasznie rozklekotane.</p>
<h3>Pogoda</h3>
<p>Bez zarzutu, szczególnie o tej porze roku. Temperatura w granicach 30 stopni, piękne słońce i wiaterek od morza. Pomimo, że koniec września to u nich pora deszczowa, nie uświadczyliśmy ani jednej kropli &#8211; z reszta nic dziwnego, cierpią tam na susze od jakiś 12 lat. Zdarzyły się nam dwa poranki pochmurne, ale do godziny 13 już świeciło słońce.</p>
<h3>Podsumowanie</h3>
<p>Świetne miejsce na wakacje, idealna pora roku i wszystkiego po trochu plażowania i wycieczek. Teraz pozostaje mi nic innego jak uzbroić się w nieprzemakalne wdzianko i cierpliwość. Następny wyjazd dopiero w przyszłym roku &#8211; nie pozostaje nic innego jak wspominać i planować kolejne wakacje.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/582/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=582&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2010/10/31/maroko/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4085/5065300679_937ffe19bb.jpg" medium="image">
			<media:title type="html">Agadir</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4127/5065447613_883643e6c2.jpg" medium="image">
			<media:title type="html">Zabytkowy meczet w Marakeszu</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4113/5065328351_ca8f68aca5.jpg" medium="image">
			<media:title type="html">Kasbah</media:title>
		</media:content>

		<media:content url="http://farm2.static.flickr.com/1116/5131098559_699f6d5094.jpg" medium="image">
			<media:title type="html">Tajine</media:title>
		</media:content>
	</item>
		<item>
		<title>Nagrania z &#216;redev</title>
		<link>http://sakowicz.wordpress.com/2009/04/26/nagrania-z-redev/</link>
		<comments>http://sakowicz.wordpress.com/2009/04/26/nagrania-z-redev/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 21:33:06 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Design patterns]]></category>
		<category><![CDATA[Screencasts]]></category>
		<category><![CDATA[Spotkania]]></category>
		<category><![CDATA[architektura]]></category>
		<category><![CDATA[Øredev]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[konferencja]]></category>

		<guid isPermaLink="false">http://sakowicz.wordpress.com/?p=571</guid>
		<description><![CDATA[Wyszperałem w sieci nagrania z ubiegłorocznej konferencji Øredev. Dostępne są pod tym adresem i być może kogoś zainteresują. Øredev odbywa się już od kilku lat i ma miejsce w Szwecji. Skupia się na zagadnieniach dotyczących Javy, .NET, Agile, DDD, architektury aplikacji.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=571&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://sakowicz.files.wordpress.com/2009/04/oredev.png"><img style="border:0 none;display:inline;margin:10px;" title="oredev" src="http://sakowicz.files.wordpress.com/2009/04/oredev-thumb.png?w=244&#038;h=61" border="0" alt="oredev" width="244" height="61" align="left" /></a></p>
<p>Wyszperałem w sieci nagrania z ubiegłorocznej konferencji <a href="http://www.oredev.org/" target="_blank">Øredev</a>. Dostępne są pod tym <a href="http://www.oredev.org/topmenu/video.4.45b270a411a9ed8e1278000948.html" target="_blank">adresem</a> i być może kogoś zainteresują.</p>
<p>Øredev odbywa się już od kilku lat i ma miejsce w Szwecji. Skupia się na zagadnieniach dotyczących Javy, .NET, Agile, DDD, architektury aplikacji.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/571/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/571/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/571/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=571&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2009/04/26/nagrania-z-redev/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2009/04/oredev-thumb.png" medium="image">
			<media:title type="html">oredev</media:title>
		</media:content>
	</item>
		<item>
		<title>Aplikacyjne Alternatywy</title>
		<link>http://sakowicz.wordpress.com/2009/04/16/aplikacyjne-alternatywy/</link>
		<comments>http://sakowicz.wordpress.com/2009/04/16/aplikacyjne-alternatywy/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 21:16:41 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Aplikacje]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[narzędzia]]></category>
		<category><![CDATA[programy]]></category>

		<guid isPermaLink="false">http://sakowicz.wordpress.com/?p=563</guid>
		<description><![CDATA[Natknąłem sie na fajna stronę: AlternativeTo &#8211; być może sie komuś się przyda, bo mi na pewno. Idea serwisu jest prosta, umożliwia wyszukiwanie aplikacji o podobnym zastosowaniu. Przykładowo szukamy aplikacji funkcjonalności podobnej do Adobe Photoshopa, oto co otrzymamy: Niby podobne funkcje oferują, że tak je nazwę &#8216;agregatory&#8217; oprogramowania jak tucows czy nasz rodzimy dobreprogramy.pl. Jednak [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=563&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Natknąłem sie na fajna stronę: <a href="http://alternativeto.net/" target="_blank">AlternativeTo</a> &#8211; być może sie komuś się przyda, bo mi na pewno. Idea serwisu jest prosta, umożliwia wyszukiwanie aplikacji o podobnym zastosowaniu. Przykładowo szukamy aplikacji funkcjonalności podobnej do Adobe Photoshopa, oto co otrzymamy:</p>
<p style="text-align:center;"><a href="http://sakowicz.files.wordpress.com/2009/04/image1.png"><img class="aligncenter" style="border:0 none;display:inline;" title="image" src="http://sakowicz.files.wordpress.com/2009/04/image-thumb1.png?w=608&#038;h=378" border="0" alt="image" width="608" height="378" /></a></p>
<p style="text-align:justify;">Niby podobne funkcje oferują, że tak je nazwę &#8216;agregatory&#8217; oprogramowania jak <a href="http://www.tucows.com/" target="_blank">tucows</a> czy nasz rodzimy <a href="http://dobreprogramy.pl/" target="_blank">dobreprogramy.pl</a>. Jednak AlternativeTo przejrzystością i prostotą bije je na głowę.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/563/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/563/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/563/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/563/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/563/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/563/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/563/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/563/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/563/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/563/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/563/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/563/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/563/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/563/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=563&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2009/04/16/aplikacyjne-alternatywy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>

		<media:content url="http://sakowicz.files.wordpress.com/2009/04/image-thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>ALT .NET</title>
		<link>http://sakowicz.wordpress.com/2009/04/15/alt-net/</link>
		<comments>http://sakowicz.wordpress.com/2009/04/15/alt-net/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 21:40:20 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Spotkania]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[Dublin]]></category>

		<guid isPermaLink="false">http://sakowicz.wordpress.com/?p=543</guid>
		<description><![CDATA[Właśnie zauważyłem, że całkiem niedawno, bo w Grudniu ubiegłego roku, powstała w Dublinie grupa ALT .NET. Jest to pierwsza tego typu inicjatywa w Irlandii. Spotkania tego typu są świetną okazja do poszerzenia swoich wiadomości jak również spotkania ludzi o podobnych zainteresowaniach. Dla tych, co nie wiedzą, czym jest ALT .NET krótkie wyjaśnienie ze strony społeczności: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=543&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Właśnie zauważyłem, że całkiem niedawno, bo w Grudniu ubiegłego roku, powstała w Dublinie grupa <a href="http://dublinalt.net/">ALT .NET</a>. Jest to pierwsza tego typu inicjatywa w Irlandii. Spotkania tego typu są świetną okazja do poszerzenia swoich wiadomości jak również spotkania ludzi o podobnych zainteresowaniach. Dla tych, co nie wiedzą, czym jest ALT .NET krótkie wyjaśnienie ze strony społeczności:</p>
<p style="text-align:justify;padding-left:30px;"><em>We are a self-organizing, ad-hoc community of developers bound by a desire to improve ourselves, challenge assumptions, and help each other pursue excellence in the practice of software development.</em></p>
<p style="text-align:justify;padding-left:30px;">Źródło:<em> <a href="http://altdotnet.org/">http://altdotnet.org/</a></em></p>
<p style="text-align:justify;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/543/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=543&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2009/04/15/alt-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>
	</item>
		<item>
		<title>Relaksacyjnie &#8230;</title>
		<link>http://sakowicz.wordpress.com/2009/04/08/relaksacyjnie/</link>
		<comments>http://sakowicz.wordpress.com/2009/04/08/relaksacyjnie/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 19:59:31 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Relax]]></category>

		<guid isPermaLink="false">http://sakowicz.wordpress.com/?p=540</guid>
		<description><![CDATA[Czasu brak na napisanie notki, to chociaż tak relaksacyjnie:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=540&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Czasu brak na napisanie notki, to chociaż tak relaksacyjnie:</p>
<span style="text-align:center; display: block;"><a href="http://sakowicz.wordpress.com/2009/04/08/relaksacyjnie/"><img src="http://img.youtube.com/vi/NVV9q4rESPg/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/540/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=540&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2009/04/08/relaksacyjnie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>
	</item>
		<item>
		<title>Kolejny tydzień</title>
		<link>http://sakowicz.wordpress.com/2009/03/03/kolejny-tydzien/</link>
		<comments>http://sakowicz.wordpress.com/2009/03/03/kolejny-tydzien/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 13:00:52 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://sakowicz.wordpress.com/?p=535</guid>
		<description><![CDATA[Kolejny (drugi już) tydzień w nowej pracy. Emocje związane ze zmiana otoczenia powoli opadają i nachodzą mnie pierwsze refleksje. Przede wszystkim różnica jest jest ogromna wcześniej pracowałem dla malej firmy wprowadzającej innowacyjne rozwiązania korzystając z najnowszych narzędzi dostępnych na rynku. Teraz dla odmiany wylądowałem w jednym z działających w Irlandii banków. Ot, taki skok od [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=535&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Kolejny (drugi już) tydzień w nowej pracy. Emocje związane ze zmiana otoczenia powoli opadają i nachodzą mnie pierwsze refleksje. Przede wszystkim różnica jest jest ogromna wcześniej pracowałem dla malej firmy wprowadzającej innowacyjne rozwiązania korzystając z najnowszych narzędzi dostępnych na rynku. Teraz dla odmiany wylądowałem w jednym z działających w Irlandii banków. Ot, taki skok od wytartych jenas’ów i nieoficjalnego podkoszulka do koszuli z kołnierzykiem i krawata. Zafundowano mi również mała techniczna podroż do przeszłości wracam do Visual Studio 2005. Po roku pracy z VS 2008 miałem przed tym pewne obawy, jednak jakoś strasznie tego nie odczuwam, prawdopodobnie dzięki Reshaper&#8217;owi. Bardziej denerwuje mnie brak np. LINQ, gdyż zmuszony jestem pracować na wersji 3.0 .Net Frameworka. Niesamowite, jak szybko sie człowiek przyzwyczaja do takich drobnych udogodnień. W sumie i tak ponoć jestem szczęściarzem, gdyż projekt nad którym rozpoczynamy prace uchodzi za niezwykle nowatorski &#8211; .NET 3.0, Windows Workflow i WCF. Jak dla banku to ogromny skok, z .NET 1.1 czy VB6. Pożyjemy zobaczymy, jak na razie czeka mnie nauka logiki biznesowej i pisanie specyfikacji technicznej, może najciekawsze zadanie ale ale cóż poradzić taka specyfikacja pracy.  Jedno co mnie poraża to bezwładność całej machiny, na wszystko trzeba czekać dzień, dwa lub więcej. Administratorzy to juz chyba największe lenie <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  wczoraj mi sie taki przypałętał aby nadać mi wymagane uprawnienia &#8211; wszystko było by ok gdyby nie to, ze zgłosiłem zapotrzebowanie równo tydzień wcześniej. W takim tempie na zmianę literówki w moim adresie email przyjdzie mi chyba poczekać pół roku jak nie więcej <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/535/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/535/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/535/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=535&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2009/03/03/kolejny-tydzien/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>
	</item>
		<item>
		<title>Zmiany&#8230;</title>
		<link>http://sakowicz.wordpress.com/2009/02/09/zmiany-2/</link>
		<comments>http://sakowicz.wordpress.com/2009/02/09/zmiany-2/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 12:38:13 +0000</pubDate>
		<dc:creator>sakowicz</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[praca]]></category>
		<category><![CDATA[przemyślenia]]></category>
		<category><![CDATA[specjalizacja]]></category>

		<guid isPermaLink="false">http://sakowicz.wordpress.com/?p=529</guid>
		<description><![CDATA[Trochę ostatnio ucichłem! Wiem przyznaję się bez bicia. Powodów jest kilka &#8211; moje lenistwo, brak weny i ogólne zmęczenie to jedno. Taki swoisty syndrom wypalenia zawodowego. Dlatego zrobiłem sobie taki troszkę dłuższy, bo prawie dwu miesięczny &#8211; off od pracy, komputera programowania. Jest jeszcze inny powód &#8211; zmieniam firmę. Lubiłem poprzednie miejsce, dobrze się mi [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=529&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Trochę ostatnio ucichłem! Wiem przyznaję się bez bicia. Powodów jest kilka &#8211; moje lenistwo, brak weny i ogólne zmęczenie to jedno. Taki swoisty syndrom wypalenia zawodowego. Dlatego zrobiłem sobie taki troszkę dłuższy, bo prawie dwu miesięczny &#8211; off od pracy, komputera programowania.<br />
Jest jeszcze inny powód &#8211; zmieniam firmę. Lubiłem poprzednie miejsce, dobrze się mi tam pracowało, miałem dobry kontakt z współpracownikami i przełożonymi. Jednak wszystko, co dobre, kiedyś się kończy.</p>
<p style="text-align:justify;">Znalazłem już sobie nową firmę, właśnie przeglądałem kontrakt, zaczynam w przyszłym tygodniu. Z tego, co mi wiadomo &#8211; rusza jakiś nowy projekt technologia &#8211; ASP.NET 2.0, Visual Studio 2005, SQL Server 2005. Mały downgrade, nie będzie LINQ, które zdążyłem naprawdę polubić, nie będzie też urządzeń mobilnych. Ale to świadomy wybór.</p>
<p style="text-align:justify;">Pracowałem z urządzeniami przez ostatnie 3 lata i nauczyłem się sporo, widziałem zmiany, jakie nastąpiły w podejściu do programowania urządzeń mobilnych jak i narzędzi to umożliwiających. Wiem, że wcale nie tak łatwo napisać dobrą mobilną aplikację &#8211; ograniczeń jest wiele procesor, pamięć, bateria, narzędzia etc.  Ale to się zmienia &#8211; z każdą nową wersją .NET CF, z każdą nową wersją systemu &#8211; jest prościej, bardziej kompatybilnie z pełną wersją Frameworka. Urządzenia też są coraz potężniejsze, posiadają coraz szybsze procesory, coraz więcej pamięci &#8211; obecnie ich raptowny rozwój jest ograniczony pojemnością baterii i szybkością, z jaką producenci, opróżniają swoje magazyny, z aktualnie wyprodukowanych modeli. Specjalizacja jest dobra, ale tylko, jeśli jest potrzebna, a z moich obserwacji wnioskuję, że za jakieś dwa-trzy lata będziemy mieli urządzenia mobilne, na których bez wysiłku będzie działać pełna wersja.NET Framework&#8217;a . I specjalizacja zaniknie.</p>
<p style="text-align:justify;">Czyli &#8211; pro aktywnie, mając na względzie, swoją karierę zawodową &#8211; szukam innych ciekawych obszarów, w których mogę wykorzystać swoje umiejętności programistyczne. Od jakiegoś czasu obserwuję obszar ASP.NET i tego, co się z nim dzieje. Jeśli ktoś śledzi mojego bloga, zauważył pewnie, moją pewną niechęć do technologii webowych (przynajmniej tych Microsoft&#8217;owych) &#8211; wynika to może z poprzednich doświadczeń i braku odpowiednich wzorców. Swego czasu mało, kto wiedział o wzorcach z rodziny MVP a jeszcze mniej osób stosowało i miało ugruntowaną praktykę ich wykorzystania. W większości małych-średnich projektów programista pisał kod i zajmował się designem, a projekt i kod zwykle wyglądał jak &#8211; steaming pile of shit (jak to obrazowo powiadają Irlandczycy). Nikła struktura, mało czytelne, byle działało &#8211; typowy spagetti-code. Takie były, przynajmniej, moje odczucia. Nic tylko uciekać &#8211; tak też zrobiłem, ale przyglądałem się jego rozwojowi gdzieś z oddali, czasem chwilę popracowałem z jednym czy drugim projektem ASP.NET nic wielkiego, ale obserwowałem. I pojawiły się znaki, najpierw pojawiło się coś takiego jak WCSF, później spotkałem się z czymś jak język Ruby i ostatnio ASP.NET MVC. Koniec wolnej amerykanki, strukturyzacja etc., Czyli wracam i się nawracam na web &#8211; zobaczymy co z tego wyjdzie. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:justify;">Jest jeszcze inny może nieco mniej znaczący powód &#8211; programowanie mobilne &#8211; ciągle jest taką nieco odrębną sztuką. Ilość dodatkowych bibliotek, framework&#8217;ów jest bardziej niż ograniczona. I jest się trochę jakby po za nawiasem, głównego nurtu społeczności programistycznej. Zabawa z Linq 2 Sql, Entity Frameworks, NHibrenate, Windsor Container, Rhino, Dynamic Proxy etc. jest po prostu niepraktyczna bądź w ogóle niemożliwa. A bez poznawania nowych bibliotek, framework&#8217;ów nie ma szans na rozwój zawodowy &#8211; nic tak nie pogłębia naszej wiedzy jak właśnie &#8211; analiza i wykorzystanie kodu napisanego przez innych. I trzeba z tego korzystać, szczególnie, że nam za to płacą&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sakowicz.wordpress.com/529/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sakowicz.wordpress.com/529/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sakowicz.wordpress.com/529/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sakowicz.wordpress.com/529/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sakowicz.wordpress.com/529/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sakowicz.wordpress.com/529/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sakowicz.wordpress.com/529/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sakowicz.wordpress.com/529/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sakowicz.wordpress.com/529/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sakowicz.wordpress.com/529/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sakowicz.wordpress.com/529/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sakowicz.wordpress.com/529/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sakowicz.wordpress.com/529/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sakowicz.wordpress.com/529/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sakowicz.wordpress.com&amp;blog=929078&amp;post=529&amp;subd=sakowicz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sakowicz.wordpress.com/2009/02/09/zmiany-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e1ceeee6a8c37313790c5f670d984a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sakowicz</media:title>
		</media:content>
	</item>
	</channel>
</rss>
