<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>.NET Blogs PL</title>
      <description>Polskie źródła na temat .NET</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=94548470726de8d52cb40f39c97fac3c</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=94548470726de8d52cb40f39c97fac3c&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 22:54:40 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>Kilka porad na temat usług REST</title>
         <link>http://feedproxy.google.com/~r/piotrzielinski/~3/Yd49hf3wmpk/</link>
         <description>O usługach REST, które dzisiaj są wszechobecne pisałem już wiele razy np. tutaj.  Dzisiaj chciałbym napisać krótkie podsumowanie w formie porad i antywzorców. Zaczynamy: 1. Nigdy nie używaj czasowników w URI. Przykład błędnych linków: GET: localhost&amp;#92;persons&amp;#92;1&amp;#92;UpdateEmail?email=&amp;#8217;&amp;#8230;&amp;#8217; Jedynym dozwolonym czasownikiem w adresie to HTTP verb. Całość linku to nic innego jak hierarchia zasobów. Poprawna aktualizacja adresu [&amp;#8230;]</description>
         <guid isPermaLink="false">http://www.pzielinski.com/?p=2808</guid>
         <pubDate>Thu, 01 Oct 2015 20:42:55 +0000</pubDate>
         <content:encoded><![CDATA[<p>O usługach REST, które dzisiaj są wszechobecne pisałem już wiele razy np. <a rel="nofollow" target="_blank" href="http://www.pzielinski.com/?p=2514">tutaj</a>.  Dzisiaj chciałbym napisać krótkie podsumowanie w formie porad i antywzorców. Zaczynamy:</p>
<p><strong>1. Nigdy nie używaj czasowników w URI. </strong></p>
<p>Przykład błędnych linków:</p>
<p>GET: localhost&#92;persons&#92;1&#92;UpdateEmail?email=&#8217;&#8230;&#8217;</p>
<p>Jedynym dozwolonym czasownikiem w adresie to HTTP verb. Całość linku to nic innego jak hierarchia zasobów. Poprawna aktualizacja adresu email może wyglądać zatem następująco:</p>
<p>PUT: localhost&#92;persons&#92;1&#92;email</p>
<p>Metoda PUT oznacza, że mamy do czynienia z modyfikacją danych. UpdateEmail to nazwa metody, a nie zasobu co jest sprzeczne z REST. Adres email&#8217;a w przypadku PUT można umieścić w ciele zapytania.</p>
<p>Analogicznie jeśli chcemy odczytać dane osoby, nie powinniśmy:</p>
<p>GET localhost&#92;persons&#92;1&#92;getdata</p>
<p>Poprawny adres to:</p>
<p>GET localhost&#92;persons&#92;1&#92;data</p>
<p><strong>2. REST != RPC.  </strong></p>
<p>Osoby zaczynające z REST, często próbują korzystać z tego typu usług tak samo jak np. z WCF. Klasyczne RPC (Remote-Procedure-Call) polega na wykonaniu konkretnej metody na usłudze. REST to hierarchia zasobów  więc powinniśmy tworzyć linki w postaci:</p>
<p>localhost/persons/1/address/town</p>
<p>Widzimy, że operujemy tutaj na kilku poziomach. Niepoprawną z kolei postacią jest:</p>
<p>localhost/persons/gettown?id=1</p>
<p>Wynika to nie tylko z użycia czasownika w nazwie, ale również w operowaniu bezpośrednio na korzeniu zasobów, zamiast na wykorzystaniu całej dostępnej hierarchii.</p>
<p><strong>3. Korzystaj z dostępnych metod  HTTP.</strong></p>
<p>Jeśli chcemy usunąć zasób wtedy:</p>
<p>DELETE local/host/persons/1</p>
<p>Początkujące osoby zbyt często korzystają wyłącznie z GET. Jeśli usługa ma realizować zadania CRUD, wtedy zdecydowanie potrzebujemy POST,GET,PUT,DELETE.</p>
<p><strong>4. Korzystaj z dostępnych statusów HTTP.</strong></p>
<p>Status 200 (OK) zdecydowanie nie jest jedynym z którego możemy korzystać. Jeśli operacja nie uda się, wtedy oprócz zwrócenia błędu w ciele HTTP, należy zwrócić również kod np. 500 (Internal Error) albo 400 (Bad Request) w zależności od kontekstu. Kody od 400 to błędy spowodowane przez klienta (np. nieprawidłowe zapytanie), z kolei od 500 to błędy spowodowane przez serwer.</p>
<p>Jeśli tworzymy nową encję za pomocą HTTP POST, można zwrócić 201 (Created) zamiast po prostu 200 (OK), który bardziej nadaję się na zapytania HTTP GET.</p>
<p>Inny przykład to kod 204 (No content). Jeśli użytkownik wywoła localhost/persons/5, a osoba o identyfikatorze 5 nie istnieje, wtedy zamiast 200 należy zwrócić kod 204.</p>
<p><strong>5. QueryString</strong></p>
<p>Klasyczne parametry QueyString wciąż są dozwolone, ale nie powinny określać one zasobów. Innymi słowy, złą praktyką jest:</p>
<p>localhost/persons?id=1</p>
<p>Identyfikator w tym przypadku jest ściśle powiązany z zasobem. Dopuszczalne jest za to używanie QueryString do określenia np. sortowania:</p>
<p>lcoalhost/persons?sort=desc</p>
<p>Podobnie sprawa wygląda z filtrowaniem czy z innymi parametrami, które nie określają zasobów a po prostu np. ich sposób wyświetlania.</p>
<p><strong>6. Zwrócenie stanu obiektu po aktualizacji.</strong></p>
<p>Utworzenie zasobu lub jego aktualizacja (POST, PUT) powinny zwracać jego reprezentacje albo link, który umożliwia odczytanie pełnego stanu. Innymi słowy, po utworzeniu zasobu, ciało odpowiedzi nie może być puste. Zwykle zwraca się mapę linków&#92;operacji, które można wykonać na nowo utworzonym zasobie.</p>
<p><strong>7.  Usługa powinna być bezstanowa.</strong></p>
<p>Umożliwia to łatwiejsze skalowanie jak i cachowanie. Oznacza to, że wywołanie danej akcji, nie powinno zależeć od wykonania wcześniejszych operacji. Oczywiście mowa o stanie usługi, a nie aplikacji, gdzie stan stanowi zestaw reguł biznesowych. Z tego względu, autoryzacja nie powinna bazować na ciasteczkach czy sesjach ponieważ łamią one tą zasadę. Lepiej przesyłać dany token w każdym zapytaniu. Innymi słowy, każde zapytanie powinno dostarczyć wszystkie niezbędne dane do wykonania akcji.</p>
<img src="http://feeds.feedburner.com/~r/piotrzielinski/~4/Yd49hf3wmpk" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Strange Loop and NCDevCon</title>
         <link>http://jj09.net/strange-loop-and-ncdevcon/</link>
         <description>Last week I had a pleasure to speak at Strange Loop and NCDevCon. Strange Loop At the Strange Loop I presented Aurelia &amp;#8211; the next generation JavaScript Framework: Strange Loop is an intersection of everything: from Researchers, through programmers maintaining 20 years old systems that still works, Web Developers using the latest Frameworks (like React),(...)</description>
         <guid isPermaLink="false">http://jj09.net/?p=11381</guid>
         <pubDate>Thu, 01 Oct 2015 04:11:37 +0000</pubDate>
         <content:encoded><![CDATA[<p>Last week I had a pleasure to speak at <a rel="nofollow" target="_blank" href="http://thestrangeloop.com/">Strange Loop</a> and <a rel="nofollow" target="_blank" href="http://www.ncdevcon.com/">NCDevCon</a>.</p>
<h3>Strange Loop</h3>
<p>At the Strange Loop I presented Aurelia &#8211; the next generation JavaScript Framework:</p>
<p></p> 
<p>Strange Loop is an intersection of everything: from Researchers, through programmers maintaining 20 years old systems that still works, Web Developers using the latest Frameworks (like React), Web Developers using mature (AKA &#8216;old&#8217;) frameworks (like Spring), DevOps deploying with Docker, large scale distributed systems architects, to Common Lisp fans. The most important thing is &#8211; most of the people at this conference are real passionate programmers. I really recommend you to check out Sam Aaron&#8217;s session: <a rel="nofollow" target="_blank" href="https://www.youtube.com/watch?v=YlRTTzlhquo">Beating Threads &#8211; live coding with real time</a>. Sam is a researcher who created programming environment that allows you to compose music by writing code. Something that can be used today, which is cool, and he presented it with such a passion that cannot be described by words.</p>
<p>All videos from Strange Loop are available on <a rel="nofollow" target="_blank" href="https://www.youtube.com/channel/UC_QIfHvN9auy2CoOdSfMWDw">their YouTube channel</a>.</p>
<p>If you think that now everyone is creating Web Apps and Mobile Apps &#8211; go to Strange Loop! You will see a different World.</p>
<p><img class="aligncenter size-full wp-image-11391" src="http://jj09.net/wp-content/uploads/2015/09/strangeloop2015.jpg" alt="The Strange Loop 2015" width="600"/></p>
<h3>NCDevCon</h3>
<p>I&#8217;ve been at NCDevCon only for the day two, because of overlap with Strange Loop, and I presented how TypeScript helps to build large scale applications. Unfortunately, there is no video from my session, because just before my talk there was a power outage. I, and other speakers (if they still had battery), had to present from laptops while people were looking from behind our shoulders.</p>
<p><img class="aligncenter size-full wp-image-11401" src="http://jj09.net/wp-content/uploads/2015/09/ncdevcon2015.jpg" alt="NCDevCon 2015" width="600" height="600"/></p>
<p>I gave similar talk earlier this year at <a rel="nofollow" target="_blank" href="http://www.meetup.com/NET-Developers-Association/events/221661449/">.NET Developers meetup in Redmond.</a> You can find video and slides in <a rel="nofollow" target="_blank" href="http://jj09.net/building-large-scale-web-applications-with-typescript/">this blog post</a>.</p>
<p>At NCDevCon I&#8217;ve seen only 3 sessions, because 1 hour after my session, in addition to power outage, the fire alarm started beeping, and the rest of the conference was cancelled. Videos from day 1, and maybe some from day 2 (if speakers record them at home) will be available at <a rel="nofollow" target="_blank" href="http://ncdevcon.com/">NCDevCon.com</a>.</p>
<p>This conference was more down to Earth for me, as everybody was talking about Web and Mobile. You can find more detailed overview in <a rel="nofollow" target="_blank" href="http://southofshasta.com/blog/ncdevcon-2015-recap/">this blog post</a>.</p>
<p>On my way back from Raleigh, NC (where NCDevCon took place) I had connection flight in Minneapolis, MN. This gave me an opportunity to see the airport of XXI century: power outlets everywhere, free WiFi, and iPads for free public use (utilized also for ordering food at restaurants).</p>
<p><img class="aligncenter size-full wp-image-11411" src="http://jj09.net/wp-content/uploads/2015/09/minneapolis_airport1.jpg" alt="Minneapolis airport" width="800" height="600"/><br />
<img class="aligncenter size-full wp-image-11421" src="http://jj09.net/wp-content/uploads/2015/09/minneapolis_airport2.jpg" alt="Minneapolis airport" width="800" height="600"/><br />
<img class="aligncenter size-full wp-image-11431" src="http://jj09.net/wp-content/uploads/2015/09/minneapolis_airport3.jpg" alt="Minneapolis airport" width="800" height="600"/><br />
<img class="aligncenter size-full wp-image-11441" src="http://jj09.net/wp-content/uploads/2015/09/minneapolis_airport4.jpg" alt="Minneapolis airport" width="800" height="600"/></p>
<div id="themify_builder_content-11381" class="themify_builder_content themify_builder_content-11381 themify_builder themify_builder_front">
	
	
</div>]]></content:encoded>
      </item>
      <item>
         <title>Last Day at Work</title>
         <link>http://codingbytodesign.net/2015/09/30/last-day-at-work/</link>
         <description>Hi, today is the last day of current work place. I am going tomorrow to the new opened door. So, the fingers-cross ;-). Below picture of souvenir I got at work from my team. Thank you very much! p ;-).</description>
         <guid isPermaLink="false">http://codingbytodesign.net/?p=3092</guid>
         <pubDate>Wed, 30 Sep 2015 11:41:10 +0000</pubDate>
         <content:encoded><![CDATA[<p><font size="3" face="Calibri">Hi, today is the last day of current work place. I am going tomorrow to the new opened door. So, the fingers-cross ;-). Below picture of souvenir I got at work from my team. Thank you very much!</font></p>
<p><a rel="nofollow" target="_blank" href="http://codingbytodesign.net/wp-content/uploads/2015/09/image.png"><font size="3" face="Calibri"><a rel="nofollow" target="_blank" href="http://codingbytodesign.net/"><img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://codingbytodesign.net/wp-content/uploads/2015/09/image1.png" width="634" height="844"/></a></font></a></p>
<p><font size="3" face="Calibri">p ;-).</font></p>]]></content:encoded>
      </item>
      <item>
         <title>Blog Kokosa | Angażuj się!</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/vWIahnoAqiI/Blog-Kokosa-Angazuj-sie</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_7zfYp2ysrUCir0uh7FELzg.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Czy czujesz się znudzony swoją pracą, która kojarzy Ci się tylko z monotonnym wykonywaniem tych samych, nudnych obowiązków? Nie &quot;porywa&quot; Cię to co robisz? Ot po prostu idziesz &quot;do roboty&quot; i czekasz na weekend? Stagnacja i marazm? 

Możliwe, że w mniejszym lub większym stopniu tak jest. (...) Dlatego mam dla Ciebie propozycję.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/Blog-Kokosa-Angazuj-sie&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fblog.kokosa.net%2fpost%2fangazuj-sie&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=vWIahnoAqiI:JdW7RmydasE:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=vWIahnoAqiI:JdW7RmydasE:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=vWIahnoAqiI:JdW7RmydasE:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/vWIahnoAqiI&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/Blog-Kokosa-Angazuj-sie</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>Mistrz czystego kodu - recenzja książki | Blog Programisty.NET</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/4BLEs4ZonKc/Mistrz-czystego-kodu-recenzja-ksiazki-Blog-ProgramistyNET</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_RoRFxGw_DkmVDxZ-LAkr5g.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Przemysław Walkowski
Mistrz czystego kodu – Wujka Bob-a czyli Roberta C. Martina. Z okładki możemy dowiedzieć się, że jest to książka profesjonalnego programisty. I po przeczytaniu 200 stron(całość) książki, mogę w pełnić się z taką opinią zgodzić. Polecam ją każdemu, kto chce stać się Senior Developerem. Poniżej moja recenzja.

Książka oryginalnie wydana w 2011 roku. W Polsce pierwsze wydanie w 2013 roku. ...&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/Mistrz-czystego-kodu-recenzja-ksiazki-Blog-ProgramistyNET&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fblogprogramisty.net%2fmistrz-czystego-kodu%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=4BLEs4ZonKc:wnsisAZnn9Y:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=4BLEs4ZonKc:wnsisAZnn9Y:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=4BLEs4ZonKc:wnsisAZnn9Y:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/4BLEs4ZonKc&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/Mistrz-czystego-kodu-recenzja-ksiazki-Blog-ProgramistyNET</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>Najlepsze szkolenia programistyczne | Maciej Aniserowicz</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/LOWnnAt4IN0/Najlepsze-szkolenia-programistyczne-Maciej-Aniserowicz</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_nuPYh5__5kupSbkVMEIWJw.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;29/09/2015 
                        0
                        Najlepsze szkolenia programistyczne
Co roku nieprzebrane bogactwa pompowane są w rozwój programistów. Czy faktycznie szkolenia warte są tyle, ile się za nie płaci? Na pewno nie wszystkie. Dzisiaj podzielę się z Wami refleksjami o Szkoleniu Idealnym – wartym swojej ceny.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/Najlepsze-szkolenia-programistyczne-Maciej-Aniserowicz&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.maciejaniserowicz.com%2f2015%2f09%2f29%2fnajlepsze-szkolenia-programistyczne%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=LOWnnAt4IN0:QZD6k5TKXRQ:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=LOWnnAt4IN0:QZD6k5TKXRQ:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=LOWnnAt4IN0:QZD6k5TKXRQ:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/LOWnnAt4IN0&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/Najlepsze-szkolenia-programistyczne-Maciej-Aniserowicz</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>LINQ to Entities does not recognize the method Last() method, and this method cannot be translated into a store expression. ~ Programowanie i okolice</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/djLytCrtVm4/LINQ-to-Entities-does-not-recognize-the-method-Last-method-and-this-method-cannot-be-translated-into-a-store-expression-Programowanie-i-okolice</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_WTmDSWhKPE-oE6VuRw6pYw.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Ten błąd jest konsekwencją architektury providera SQL Server dla linq to entities, który całe zapytanie konwertuje na SQL...&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/LINQ-to-Entities-does-not-recognize-the-method-Last-method-and-this-method-cannot-be-translated-into-a-store-expression-Programowanie-i-okolice&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fblog.programista-www.pl%2f2015%2f09%2flinq-to-entities-does-not-recognize.html&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=djLytCrtVm4:7QiUIfJogRA:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=djLytCrtVm4:7QiUIfJogRA:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=djLytCrtVm4:7QiUIfJogRA:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/djLytCrtVm4&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/LINQ-to-Entities-does-not-recognize-the-method-Last-method-and-this-method-cannot-be-translated-into-a-store-expression-Programowanie-i-okolice</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>Universal Apps - weryfikacja stanu połączenia internetowego</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/46bNvWtlgWQ/Universal-Apps-weryfikacja-stanu-polaczenia-internetowego</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_izXHeTgalEOlPXvPR_0bsQ.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Większość mobilnych aplikacji wymaga aktywnego połączenia internetowego do poprawnego działania. Wiele z nich, nie posiada nawet trybu offline i bez sieci po prostu nie jest w stanie funkcjonować. Często developer musi również reagować na rodzaj połączenia sieciowego, z którego aktualnie korzysta użytkownik (WiFi/GSM), dlatego temat ten jest naprawdę ważny z perspektywy całego projektu aplikacji.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/Universal-Apps-weryfikacja-stanu-polaczenia-internetowego&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.altcontroldelete.pl%2fartykuly%2funiversal-apps-weryfikacja-stanu-polaczenia-internetowego%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=46bNvWtlgWQ:9gbAhALAyF0:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=46bNvWtlgWQ:9gbAhALAyF0:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=46bNvWtlgWQ:9gbAhALAyF0:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/46bNvWtlgWQ&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/Universal-Apps-weryfikacja-stanu-polaczenia-internetowego</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>Darmowa konferencja o SharePoint i Office 365</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/w1VTVn2SGao/Darmowa-konferencja-o-SharePoint-i-Office-365</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_S27-2CxBBkSOmTfgHnU24A.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Darmowa konferencja o SharePoint i Office 365 Collab365
Rozpoczęła się rejestracja na darmową konferencję online Collab365 poświęconą platformie SharePoint, Office365, Azure oraz Jak je zaimplementować w Biznesie. Wydarzenie będzie...&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/Darmowa-konferencja-o-SharePoint-i-Office-365&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2ftszulczewski.pl%2fdarmowa-konferencja-o-sharepoint-i-office-365%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=w1VTVn2SGao:uvFjkW57nqs:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=w1VTVn2SGao:uvFjkW57nqs:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=w1VTVn2SGao:uvFjkW57nqs:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/w1VTVn2SGao&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/Darmowa-konferencja-o-SharePoint-i-Office-365</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>SQL Injection alert!</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/nJrUZBIsbQ4/SQL-Injection-alert</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_a6-BGE1EFEyGfkMUF2Ql2Q.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Z SQL Injection jest jak z polio czy odrą: w drugiej dekadzie XXI wieku możemy o nim zapomnieć. Wystarczy się zaszczepić, czyli: nie sklejać ręcznie poleceń SQL. Prawda?

“Użyj parametrów z ADO.NET, a będzie cacy” – mówili. “Użyj Simple.Data, a złęgo obawiać się nie musisz” – mówili. Ależ kłamali!

Jakież przeogromne było moje zdziwienie, gdy niedawno dostałem buga mówiącego, iż “coś dziwnego się dzieje jeśli w nazwie rekordu wstawi się apostrof”. WTF, jak to? Oczywiście sugestią naprawienia błędu od strony biznesu było “zabronienie wstawiania apostrofu w nazwę rekordu” :). No tak…

Inwestygacja ruszyła pełną parą. Czy to coś w Simple.Data, jakiś brzydki babol? Ano nie, niemożliwe! Czy to w takim razie coś w naszym prywatnym buildzie Simple.Data.PostgreSql? Nie, też nie… A więc…&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/SQL-Injection-alert&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.maciejaniserowicz.com%2f2015%2f09%2f24%2fsql-injection-alert%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=nJrUZBIsbQ4:Dd-nKxFbV4M:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=nJrUZBIsbQ4:Dd-nKxFbV4M:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=nJrUZBIsbQ4:Dd-nKxFbV4M:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/nJrUZBIsbQ4&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/SQL-Injection-alert</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>Blog Kokosa | WG.NET 90 debriefing oraz devWarszaty briefing!</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/_4IEzbzAjGs/Blog-Kokosa-WGNET-90-debriefing-oraz-devWarszaty-briefing</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_W6aCv2YHxEOKgCgt0r0jww.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;WG.NET 90 za nami, powoli zbliżamy się do okrągłego, setnego wydania! Dla mnie to było ważne spotkanie, bo miałem po raz drugi przyjemność wystąpić ze swoją prezentacją. Stresu było sporo (...)&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/Blog-Kokosa-WGNET-90-debriefing-oraz-devWarszaty-briefing&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fblog.kokosa.net%2fpost%2fwg-net-90-debriefing-oraz-devwarszaty-briefing&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=_4IEzbzAjGs:_uvjbEUmK8E:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=_4IEzbzAjGs:_uvjbEUmK8E:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=_4IEzbzAjGs:_uvjbEUmK8E:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/_4IEzbzAjGs&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/Blog-Kokosa-WGNET-90-debriefing-oraz-devWarszaty-briefing</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>[EN] How to prevent code biodegradation? | Future Processing</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/wURgmPs3nBg/How-to-prevent-code-biodegradation-Future-Processing</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_Z6OuDczFG0-9t58tsa1aVw.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;In this short article I would like to say a few words about the phenomenon of code biodegradation and present you some tips on how to deal with it, so that your everyday work doesn’t become a real ordeal over time.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/How-to-prevent-code-biodegradation-Future-Processing&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=https%3a%2f%2fwww.future-processing.pl%2fblog%2fhow-to-prevent-code-biodegradation%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=wURgmPs3nBg:G1IxbnrlvBY:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=wURgmPs3nBg:G1IxbnrlvBY:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=wURgmPs3nBg:G1IxbnrlvBY:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/wURgmPs3nBg&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/How-to-prevent-code-biodegradation-Future-Processing</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>22 - O wiadomościach z Szymonem Pobiegą | DevTalk</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/82__cxcxdao/22-O-wiadomosciach-z-Szymonem-Pobiega-DevTalk</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_3X9_U1wAz0a259KUoKyWqA.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Dzisiaj technicznie-architektonicznie. Dwudziesty drugi odcinek DevTalka pod znakiem WIADOMOŚCI i KOMUNIKACJI stoi. Reflektor w te mgliste pojęcia kieruje Szymon Pobiega: programista/architekt, blogger, prelegent. Pracuje w Particular Software, gdzie klepie NServiceBusa dla Udiego Dahana (pamiętacie DevTalk#14 – CQRS with Udi Dahan?). Zatem: zdecydowanie wie o czym mówi!
Z rozmowy dowiecie się czym tak naprawdę jest komunikacja i dlaczego warto sobie zawracać głowę jakimiś “wiadomościami” czy “kolejkami...&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/22-O-wiadomosciach-z-Szymonem-Pobiega-DevTalk&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fdevtalk.pl%2f2015%2f09%2f22-o-wiadomosciach-z-szymonem-pobiega%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=82__cxcxdao:_xpGYULt6PA:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=82__cxcxdao:_xpGYULt6PA:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=82__cxcxdao:_xpGYULt6PA:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/82__cxcxdao&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/22-O-wiadomosciach-z-Szymonem-Pobiega-DevTalk</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>[EN] IP heatmap generator</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/Du2QEq-03z0/EN-IP-heatmap-generator</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_C0-laEWJx0mhAxQZZNN6GA.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Recently, together with my co-worker Breck, we were looking at the error logs. One of our ideas – in order to investigate errors that were hard to diagnose – was to check in which part of the World users who get errors are located.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/EN-IP-heatmap-generator&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fjj09.net%2fip-heatmap-generator%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=Du2QEq-03z0:QfnmrMs_k6Q:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=Du2QEq-03z0:QfnmrMs_k6Q:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=Du2QEq-03z0:QfnmrMs_k6Q:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/Du2QEq-03z0&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/EN-IP-heatmap-generator</guid>
         <pubDate>Wed, 30 Sep 2015 08:59:43 +0000</pubDate>
      </item>
      <item>
         <title>Najlepsze szkolenia programistyczne</title>
         <link>http://www.maciejaniserowicz.com/2015/09/29/najlepsze-szkolenia-programistyczne/</link>
         <description>&lt;p&gt;Co roku nieprzebrane bogactwa pompowane są w rozwój programistów. Czy faktycznie szkolenia warte są tyle, ile się za nie płaci? Na pewno nie wszystkie. Dzisiaj podzielę się z Wami refleksjami o Szkoleniu Idealnym &amp;#8211; wartym swojej ceny. Ponad cztery lata minęły od publikacji tekstu o wdzięcznym tytule &amp;#8220;Szkolenia programistyczne, czyli maszyna ssąco-uciszająca&amp;#8220;. Ależ wtedy sobie [...]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.maciejaniserowicz.com/2015/09/29/najlepsze-szkolenia-programistyczne/&quot;&gt;Najlepsze szkolenia programistyczne&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.maciejaniserowicz.com&quot;&gt;Maciej Aniserowicz&lt;/a&gt;.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.maciejaniserowicz.com/?p=2610</guid>
         <pubDate>Tue, 29 Sep 2015 04:55:00 +0000</pubDate>
         <content:encoded><![CDATA[<p>Co roku nieprzebrane bogactwa pompowane są w rozwój programistów. Czy faktycznie szkolenia warte są tyle, ile się za nie płaci? Na pewno nie wszystkie. Dzisiaj podzielę się z Wami refleksjami o Szkoleniu Idealnym &#8211; wartym swojej ceny.</p>
<p>Ponad cztery lata minęły od publikacji tekstu o wdzięcznym tytule &#8220;<a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/2011/02/14/szkolenia-programistyczne-czyli-maszyna-ssaco-uciszajaca/">Szkolenia programistyczne, czyli maszyna ssąco-uciszająca</a>&#8220;. Ależ wtedy sobie ulżyłem. Nadszedł czas na refleksje trochę z drugiej strony: skupię się na zaletach szkolenia-sukcesu, a nie wadach szkolenia-porażki. Szklanka jest w połowie pełna, nie? <img src="http://s.w.org/images/core/emoji/72x72/1f609.png" alt="&#x00d83d;&#x00de09;" class="wp-smiley" style="height:1em;max-height:1em;"/></p>
<h2>Praktyka &gt; teoria</h2>
<p>Programista to taki zwierz, który z internetu korzystać umie jak mało kto. Logiczne, prawda? Jaki jest więc sens sadzania go w ławce i <strong>recytowania</strong> do jego uszu informacji, które odnajdzie w ciągu 5 minut obcowania z Google? Ano wydaje mi się, że&#8230; średni.</p>
 Szkolenie musi obfitować w ćwiczenia praktyczne. Programista powinien kombinować, zmagać się z wyzwaniami i rozwiązywać problemy za pomocą kodu! 
<p>Przy okazji CraftConf 2015 wraz z <a rel="nofollow" target="_blank" href="https://twitter.com/rwilczynski">Robertem</a> uczestniczyliśmy w całodniowym warsztacie na temat mikroserwisów. Realizujemy projekt w tej &#8220;architekturze&#8221;, więc chcieliśmy przekonać się, ile jeszcze o tym nie wiemy. Prowadzący sroce spod ogona nie wypadł, bo był to koleś z Thoughtworks. Okazało się niestety, że przez bite 7 godzin nawet nie trzeba było otworzyć swoich laptopów. Ot, pooglądaliśmy slajdy, posłuchaliśmy i wyszliśmy. Bardzo, bardzo średnio. Wyszła z tego &#8220;jednoosobowa mikrokonferencja&#8221; o mikroserwisach, a nie szkolenie czy warsztat.</p>
<p>Szkolenie powinno obfitować w ćwiczenia praktyczne. Takie, które zaangażują zerojedynkowego dev-ducha. Moim zdaniem szkolenia w postaci warsztatów są o wiele bardziej wartościowe niż czysto teoretyczne wykłady. Oczywiście podstawy teoretyczne także muszą się pojawić, ale <strong>programista powinien robić głównie to, co lubi najbardziej, czyli: kombinować, zmagać się z wyzwaniami i rozwiązywać problemy za pomocą kodu</strong>! Od razu zastosować w praktyce wszystko to, o czym jest mowa. Teoria to tylko odpowiedni wstęp, podkładka.</p>
<p>W tym kontekście bardzo, ale to bardzo podoba mi się poniższy cytat:</p>
<blockquote class="modern-quote full"><p>Tell me and I forget. Teach me and I remember. Involve me and I learn.</p>
<p>(Benjamin Franklin)</p></blockquote>
<p>Dobrze skonstruowane, ciekawe zadania mają jeszcze jedną zaletę: już dzień po szkoleniu programista może wziąć zdobytą wiedzę i zastosować ją w praktyce! Jeżeli jednym z ćwiczeń będzie, na przykład, odpowiednia konfiguracja kontenera Dependency Injection w aplikacji webowej i pokrycie tej konfiguracji testami, to co zrobi uczestnik szkolenia gdy następnym razem będzie musiał taką czynność wykonać? Wróci do materiałów szkoleniowych, przypomni sobie jak zostało to zrealizowane i DLACZEGO, a następnie świadomie zrealizuje część swojej codziennej pracy. Wiedząc dlaczego działa tak a nie inaczej, bez copy/paste ze StackOverflow.</p>
<p>Ale przecież każdy problem programistyczny można rozwiązać na wiele sposobów. Nie ma jednego idealnego złotego środka!</p>
<p>Jak najbardziej, dlatego też potrzebny jest:</p>
<h2>Czas na dyskusje</h2>
<p>Szkolenie, w przeciwieństwie do prezentacji na konferencji, to komunikacja w obie strony. A nawet w &#8220;trzy strony&#8221;: trener -&gt; uczestnicy, uczestnicy -&gt; trener oraz uczestnicy &lt;-&gt; uczestnicy! Komunikacji powinno być jak najwięcej. Pytania, dywagacje, wymyślanie dodatkowych scenariuszy i najlepszych sposobów na uporanie się z przedstawianym problemem &#8211; to wtedy tak naprawdę powstaje faktycznie pożądana agenda szkolenia. Każdy w sali powinien mieć okazję do wypowiedzenia się, podzielenia swoimi refleksjami i doświadczeniami. <strong>Zabierając głos nie chciałbym usłyszeć: &#8220;cicho, bo nie wyrobimy się z materiałem&#8221;</strong>.</p>
 Szkolenie, to komunikacja w obie strony. Często to jedyny czas na szczerą rozmowę nawet w samym zespole. To nie tylko &#8220;flow trenerskiej wiedzy&#8221;, ale również &#8220;team building&#8221;. 
<p>Często te dwa czy trzy dni szkolenia to najlepszy czas na szczerą komunikację nawet w samym zespole, wśród uczestników! Być może na co dzień pracują w innych projektach i widują się przelotnie na kawie w kuchni, a może i to nie. Podczas szkolenia sami mogą lepiej się poznać i wspólnie wpaść na pomysł rozwiązania problemu dręczącego ich w codziennej pracy. Szkolenie to nie tylko &#8220;flow trenerskiej wiedzy&#8221;, ale również &#8220;team building&#8221;, jakkolwiek tego wyrażenia nie znoszę :). Jego charakter często jest nie tylko edukacyjny, ale i &#8211; w rozsądnych granicach &#8211; rozrywkowy.</p>
<p>Ja wolałbym skończyć szkolenie chwilę przed czasem (w razie braku dyskusji), niż siedzieć godzinę dłużej z pękającą głową, bez oddechu i możliwości wyrażenia swojego zdania, czekając tylko na koniec bo &#8220;kotlety w domu ubite, kartofli kipio, żonka zła, a ja jeszcze w robocie&#8221;.</p>
<p>Ważne jest również jednak do kogo się &#8220;swoje zdanie wypowiada&#8221;. Tutaj kluczowe okazuje się być:</p>
<h2>Doświadczenie</h2>
<p>Znam niestety przypadki szkoleń, podczas których jedyna różnica w wiedzy pomiędzy trenerem a uczestnikami jest taka, że trener ma jakiegoś &#8220;training kita&#8221;, czy jak to się nazywa. Czyta z książki po kolei co ma do przeczytania, a jeśli w książce nie ma na jakiś temat informacji, to po pojawieniu się trudniejszego pytania na sali słychać tylko&#8230; skowyt świerszczy ;).</p>
 Nie da się przygotować szkolenia z tematu, nad którym sam się człowiek nie namęczył. W przeciwnym wypadku: od razu widać braki. 
<p>Często wynika to z bardzo prostej przyczyny: brak doświadczenia praktycznego. <strong>Nie da się przygotować dobrego szkolenia z tematu, nad którym sam się człowiek nie natrudził, nie nagarbił, nie namęczył</strong>. Nawet podczas prezentacji wiedzy z książki, artykułu czy &#8220;encyklopedii&#8221;, osobiste doświadczenia szkoleniowca dają o sobie znać, przepuszczając wszystkie podane informacje przez bardzo wartościowy filtr: &#8220;ja WIEM jak to się sprawdza&#8221;.</p>
<p>Trener mówiący o testach powinien pisać testy. Trener mówiący o wdrożeniach powinien realizować wdrożenia. Wreszcie: trener mówiący o &lt;TFU TFU przez lewe ramię, i prawe też na wszelki wypadek&gt; SharePoincie, powinien w tym SharePoincie siedzieć po uszy! W przeciwnym wypadku: od razu widać braki. Widać, gdzie się zmyśla informacje na bieżąco. Kiedy się WIE, a kiedy się &#8220;gdyba&#8221;. I takie gdybanie, jeśli ma kamuflować brak doświadczenia, wygląda dość kuriozalnie. A nawet żałośnie.</p>
<p>Ale czy niezbędna jest alfa i omega? W praktyce: zdrowo jest zdawać sobie sprawę z tego, że nikt nie wie &#8220;wszystkiego&#8221; o &#8220;wszystkim&#8221;. Ba, nikt nie wie &#8220;wszystkiego&#8221; o &#8220;czymkolwiek&#8221;! Choćby nawet wydawało się inaczej. Zamiast tego co powiecie na to:</p>
<h2>Trener członkiem zespołu</h2>
<p>Takim jak wszyscy inni. Ze swoją wizją, bogatym doświadczeniem, rozległą wiedzą na eksperckim poziomie w prezentowanym obszarze, ale jednak&#8230; omylnym? <strong>Nie ma wszechwiedzących guru</strong>. Nie w &#8220;realu&#8221;, poza internetem :).</p>
 Nie ma wszechwiedzących guru. Trzeba szanować wzajemne &#8211; różne przecież! &#8211; doświadczenia. <strong>Trener nie jest &#8220;jedynym mądrym w sali pełnej debili&#8221;</strong>. 
<p>Miałem doświadczenia ze szkoleniowcami broniącymi niedających się obronić teorii. Ignorujących sensowne argumenty. Zamykających oczy na rzeczywistość inną niż ta przez nich kreowana. Puszczających mimo uszu niewygodne pytania. Bo przecież &#8220;trenerowi nie wypada się przyznać do błędu&#8221;. Lub &#8220;nieprzewidzenia wszystkich możliwych scenariuszy&#8221;. Tak? A no nie! Takie podejście nie zachęca bynajmniej do dalszych dyskusji. Ile zespołów &#8211; tyle problemów. I to niejednokrotnie tak pokręconych, że po prostu nie da się ich przewidzieć podczas przygotowywania materiału szkolenia.</p>
<p>W swojej &#8220;trenerskiej karierze&#8221; miałem już historię, kiedy to musiałem zmienić program szkolenia, bo jeden z zespołów uznał, że prezentowane przeze mnie podejście jest&#8230; dalekie od ideału. Podczas kilkuminutowej dyskusji uargumentowali to na tyle dobrze, że po prostu przyznałem rację. Nie jest to proste, gdyż materiał szkoleniowy powstaje przez naprawdę bardzo długi czas, dojrzewa i jest szlifowany, wydaje się być dopracowany w najmniejszych szczegółach&#8230; Czasami jednak spojrzenie kolejnych oczu z innej perspektywy burzy ten słodki obrazek i wychwytuje niedoskonałości. I to dobrze gdy tak się dzieje! W omawianym przypadku wspólnie wypracowaliśmy najlepszą alternatywę, pośmialiśmy się, i od razu po powrocie do domu poprawiłem materiał zgodnie z ich sugestiami. Kolejna edycja tego szkolenia będzie więc lepsza niż wszystkie poprzednie.</p>
<p>To buduje zdrową relację. Atmosferę dialogu. Zachęca do poszanowania wzajemnych &#8211; różnych przecież! &#8211; doświadczeń. Szkoleniowiec nie dostarcza wyrytych w skale przykazań, na pytania odpowiadając &#8220;BO TAK!&#8221;. <strong>Nie jest &#8220;jedynym mądrym w sali pełnej debili&#8221;</strong>. To by było strasznie smutne.</p>
<p>Skoro tak, to szkoda byłoby spędzić te wspólne chwile na przeciąganiu kontrolek po designerze, czyż nie?</p>
<h2>Bez marnowania czasu</h2>
<p>Niedawno rozmawiałem z firmą, która podczas zamawiania szkolenia upewniała się: &#8220;czy nie będzie tak, że połowę czasu spędzimy na konfigurowaniu środowiska i zadaniach pobocznych?&#8221;. Ano właśnie&#8230;</p>
 Do każdego ćwiczenia powinno być stworzone skonfigurowane środowisko. Nawet małpa umie poprzeciągać kontrolki z toolbara na designer 
<p>Czy programiści są w stanie w trakcie jednego szkolenia napisać cały skomplikowany system? Prawdopodobnie nie. Dlatego <strong>do każdego ćwiczenia, skupiającego się na wybranym elemencie zagadnienia, powinno być stworzone odpowiednio skonfigurowane środowisko</strong>. Czy to kawałki już napisanego kodu: wymaganego, a niemającego związku z zadaniem. Czy to gotowy skrypt instalujący potrzebne narzędzia/rozszerzenia. Czy to, w najbardziej rozbudowanych przypadkach, nawet cała maszyna wirtualna!</p>
<p>Nie oszukujmy się: nawet małpa byłaby w stanie wziąć myszkę w dłoń i poprzeciągać kontrolki z toolbara na designer. I czułem się właśnie jak małpa na szkoleniu, w trakcie którego na podobne &#8211; powtarzalne, nudne, banalne &#8211; zadania przewidziana była godzina.</p>
<p>Nienawidzę marnowania czasu: &#8220;ani swojego, ani bliźniego&#8221;. Zadania podczas szkolenia powinny mieć cel. Każde powinno wnosić coś nowego. Wymagać skupienia, uwagi i zaangażowania, ale nagradzać satysfakcjonującymi rezultatami.</p>
<p>A do tego wszystkiego, na koniec &#8211; okrasa:</p>
<h2>Pasja i inspiracja</h2>
<p>Bardzo pożądaną cechą u szkoleniowca jest to, aby prezentował coś więcej niż &#8220;tylko&#8221; materiał aktualnego szkolenia. Owszem, odpowiednie przygotowanie tych kilku(nastu) godzin jest niezmiernie ważne, ale co jeśli dodatkowo w trakcie spotkań da się&#8230; <strong>zmienić podejście do zawodu programisty</strong>?</p>
 A gdyby tak dało się zmienić podejście do zawodu programisty? Pokazać ilu rzeczy związanych z programowaniem nie widać z &#8220;cubicle&#8221;. 
<p>Będąc smutasem, &#8220;odbębniającym te kilka godzin dziennie w dev-kopalni i do domu&#8221;, którego na chwilę wygonili z &#8220;cubicle&#8221; na szkolenie żeby wymusić przedłużenie lojalki, wbrew pozorom największą korzyść mogę wynieść nie z zawartości sladjów czy ćwiczeń, a z&#8230; rozmowy. W przerwach, przy obiedzie czy przy poszkoleniowym browarze. Z rozmowy z kimś, kto z zawodu programisty czerpie pełnymi garściami: jeździ na konferencje, uczestniczy w życiu lokalnych grup pasjonackich, potrafi wskazać drzwi do dev-społeczności i nazwiska warte poznania. Z kimś, kto może pokazać, ilu świetnych rzeczy związanych z programowaniem nie widać z tego &#8220;cubicle&#8221;. Z kimś, kto może na długo zmienić stosunek do wykonywanej pracy, otworzyć oczy na &#8220;dev-świat&#8221;. Wszędzie da się znaleźć możliwości rozwoju oraz zwiększenia satysfakcji z &#8220;roboty&#8221;, tylko trzeba wiedzieć gdzie tego szukać. Bywało już tak, że między jednym a drugim dniem szkolenia umawiałem się na występ na lokalnej grupie pasjonackiej. I gorąco zachęcałem cały zespół, aby wybrali się tam ze mną. Szczególnie jeśli byłby to ich pierwszy raz.</p>
<h2>I co dalej?</h2>
<p>Z wystąpieniami publicznymi przetestowałem pewien proces. Najpierw zdefiniowałem taką prezentację, jaką sam bym chciał oglądać. Prezentację &#8220;dobrą&#8221;, która nie jest marnowaniem czasu widza. A następnie zacząłem takie właśnie prelekcje przygotowywać i z nimi jeździć po konferencjach oraz grupach pasjonackich. Efekt? <a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/speaker/">28 prezentacji</a> w przeciągu najbardziej intensywnych 20 miesięcy (niektóre można obejrzeć tutaj: <a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/video/">Video</a>). A co najważniejsze z mojego punktu widzenia: podobają się publiczności!</p>
<blockquote><p>Wtrącenie:<br />
Zachęcam do zapoznania się z <strong>moją ofertą szkoleń</strong> na <a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/szkolenia/">http://www.maciejaniserowicz.com/szkolenia/</a>. Znajdziesz tam agendę kilku proponowanych tematów (testy, SOLID, CQRS, mikroserwisy), a następne (wzorce projektowe, kontrola wersji&#8230;) czekają na swoją kolej. Każdy program można pobrać jako ładny PDF i podesłać osobom odpowiedzialnym za organizację szkoleń Twojej w firmie. Do zobaczenia? <img src="http://s.w.org/images/core/emoji/72x72/1f609.png" alt="&#x00d83d;&#x00de09;" class="wp-smiley" style="height:1em;max-height:1em;"/></p>
<p>Dodatkowo zachęcam do zapisania się na newsletter: <a rel="nofollow" target="_blank" href="http://eepurl.com/bw_LL5">http://eepurl.com/bw_LL5</a>. Informacje o szkoleniach otwartych będą znajdować się najpierw tam, wraz z kuponami zniżkowymi.</p></blockquote>
 Czy moje szkolenia są idealne? Zapewne nie. Nie śmiem także twierdzić, że są najlepsze. Ale droga do tego celu opisana jest w powyższych akapitach. Póki co &#8211; uczestnicy są zadowoleni. 
<p>Podobnie postąpiłem i tym razem. Kiedyś wylałem swoje żale odnośnie szkoleń &#8211; no i dobra, ale nic z tego nie wynikło, poza poklepaniem się po plecach z innymi programistami. Potem zastanowiłem się (dość długo) nad przyczynami niezadowolenia i pomyślałem jak można to wyeliminować. W końcu wraz z firmą <a rel="nofollow" target="_blank" href="http://bottega.com.pl">Bottega</a> zrealizowałem garść szkoleń według &#8220;swoich&#8221; reguł. Niejednokrotnie podczas przygotowywania materiału myślałem sobie: &#8220;ale to będzie fajne, sam bym chętnie w takim warsztacie uczestniczył!&#8221;. A to jest zdecydowanie tak zwany &#8220;precondition&#8221; udanego szkolenia. Czy faktycznie są one <strong>idealne? Zapewne nie</strong>, bo przecież zawsze coś można zrobić lepiej. Nie śmiem także twierdzić, że są najlepsze. Ale do tego dążę, a droga do celu jest opisana w powyższych akapitach. Sporo zależy od nastawienia i doświadczeń uczestników. Póki co okazuje się, że <strong>uczestnicy są zadowoleni</strong>. Na tyle, że niektórzy klienci od razu zamawiają kolejne tematy, bądź kolejne terminy. No i&#8230;? No i super, czyli to działa!</p>
<p>Jak Ty widzisz ten problem? Uczestniczysz w szkoleniach? Co dla Ciebie jest w nich najważniejsze?</p>
<p>The post <a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/2015/09/29/najlepsze-szkolenia-programistyczne/">Najlepsze szkolenia programistyczne</a> appeared first on <a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com">Maciej Aniserowicz</a>.</p>
<div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=P6uZtw5S2Wo:byuYFEm-sxc:QDrqXnVDFOM"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?d=QDrqXnVDFOM" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=P6uZtw5S2Wo:byuYFEm-sxc:lt7SxnsiOIA"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?d=lt7SxnsiOIA" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=P6uZtw5S2Wo:byuYFEm-sxc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?d=qj6IDK7rITs" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=P6uZtw5S2Wo:byuYFEm-sxc:0VBWazUhMmc"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?d=0VBWazUhMmc" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=P6uZtw5S2Wo:byuYFEm-sxc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?i=P6uZtw5S2Wo:byuYFEm-sxc:D7DqB2pKExk" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/maciejaniserowicz/~4/P6uZtw5S2Wo" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>LINQ to Entities does not recognize the method Last() method, and this method cannot be translated into a store expression.</title>
         <link>http://feedproxy.google.com/~r/ProgramowanieIOkolice/~3/fbX4TAUqu00/linq-to-entities-does-not-recognize.html</link>
         <description>Ten błąd jest konsekwencją architektury providera SQL Server dla linq to entities, który całe zapytanie konwertuje na SQL. W SQL nie ma polecenia last a jedynie za pomocą Polecenia SELECT TOP X można uzyskać pierwszych X wierszy. Prostym rozwiązaniem jest zamiana wywołania Last() na&amp;nbsp;&lt;span style=&quot;background-color:white;color:#222222;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:15px;line-height:19.5px;&quot;&gt;OrderByDescending(x =&amp;gt; x.ID).First();&lt;/span&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?a=fbX4TAUqu00:M34wXT3xqvw:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?a=fbX4TAUqu00:M34wXT3xqvw:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?i=fbX4TAUqu00:M34wXT3xqvw:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?a=fbX4TAUqu00:M34wXT3xqvw:7Q72WNTAKBA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?d=7Q72WNTAKBA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?a=fbX4TAUqu00:M34wXT3xqvw:qj6IDK7rITs&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?d=qj6IDK7rITs&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/ProgramowanieIOkolice/~4/fbX4TAUqu00&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <author>Michał Kubiak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4040020377021109331.post-7716739832147653581</guid>
         <pubDate>Mon, 28 Sep 2015 23:16:00 +0000</pubDate>
      </item>
      <item>
         <title>LINQ to Entities does not recognize the method Last() method, and this method cannot be translated into a store expression.</title>
         <link>http://feedproxy.google.com/~r/ProgramowanieIOkolice/~3/fbX4TAUqu00/linq-to-entities-does-not-recognize.html</link>
         <description>Ten błąd jest konsekwencją architektury providera SQL Server dla linq to entities, który całe zapytanie konwertuje na SQL. W SQL nie ma polecenia last a jedynie za pomocą Polecenia SELECT TOP X można uzyskać pierwszych X wierszy. Prostym rozwiązaniem jest zamiana wywołania Last() na&amp;nbsp;&lt;span style=&quot;background-color:white;color:#222222;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:15px;line-height:19.5px;&quot;&gt;OrderByDescending(x =&amp;gt; x.ID).First();&lt;/span&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?a=fbX4TAUqu00:M34wXT3xqvw:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?a=fbX4TAUqu00:M34wXT3xqvw:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?i=fbX4TAUqu00:M34wXT3xqvw:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?a=fbX4TAUqu00:M34wXT3xqvw:7Q72WNTAKBA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?d=7Q72WNTAKBA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?a=fbX4TAUqu00:M34wXT3xqvw:qj6IDK7rITs&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ProgramowanieIOkolice?d=qj6IDK7rITs&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/ProgramowanieIOkolice/~4/fbX4TAUqu00&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <author>Michał Kubiak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4040020377021109331.post-7716739832147653581</guid>
         <pubDate>Mon, 28 Sep 2015 23:16:00 +0000</pubDate>
      </item>
      <item>
         <title>VS 2015 PerfTip</title>
         <link>http://blog.octal.pl/2015/09/vs-2015-perftip.html</link>
         <description>Jedną z kolejnych nowości w VS 2015 jest poniższy tooltip PerfTip bo tak nazywa się ten informacyjny dodatek to kolejna nowość w Visual Studio. Dzięki niemu od razu podczas debuggowania dowiemy się ile wynosi czas wykonania poszczególnych instrukcji naszego kodu. Funkcja ta potrafi także wyliczyć czas wykonania bloku kodu. Wystarczy ustawić breakpoint na pierwszej instrukcji [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blog.octal.pl/?p=894</guid>
         <pubDate>Mon, 28 Sep 2015 12:41:49 +0000</pubDate>
         <category>Visual Studio</category>
      </item>
      <item>
         <title>[EN] Offline Pessimistic Lock in Entity Framework (or any other ORM) | WellDesignedSoftwareException</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/LYRighfgoCM/EN-Offline-Pessimistic-Lock-in-Entity-Framework-or-any-other-ORM-WellDesignedSoftwareException</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_jAY72I9mR0yo6dKoOERLYA.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;It was always surprising to me that so few projects were started with data access concurrency in mind. I’ve heard many discussions about new fancy frameworks and UI controls the teams were about to use but possibility of concurrent access to users’ data didn’t appear to be a concern in their minds.
Wen you think about it, it seems to be very logical. People have a natural tendency to avoid problems they haven’t encountered directly. There are so few people with attitude of challenging o...&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/EN-Offline-Pessimistic-Lock-in-Entity-Framework-or-any-other-ORM-WellDesignedSoftwareException&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=https%3a%2f%2fmkarczewski.wordpress.com%2f2015%2f09%2f18%2foffline-pessimistic-lock-in-entity-framework-or-any-other-orm%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=LYRighfgoCM:UXzGFo5m19Q:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=LYRighfgoCM:UXzGFo5m19Q:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=LYRighfgoCM:UXzGFo5m19Q:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/LYRighfgoCM&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/EN-Offline-Pessimistic-Lock-in-Entity-Framework-or-any-other-ORM-WellDesignedSoftwareException</guid>
         <pubDate>Mon, 28 Sep 2015 07:12:08 +0000</pubDate>
      </item>
      <item>
         <title>Po devWarsztatach</title>
         <link>http://www.maciejaniserowicz.com/2015/09/28/po-devwarsztatach/</link>
         <description>&lt;p&gt;Niecałe 4 tygodnie temu zapraszałem Was na darmowe otwarte jednodniowe szkolenie z testów. Niedługo później ruszyła rejestracja i&amp;#8230; bilety zniknęły podobno w około 30 sekund. Kolejne 50 osób wylądowało na liście rezerwowej. Wow, nie spodziewałem się, że zainteresowanie będzie AŻ TAKIE! Całość została sfinalizowana w minioną sobotę w siedzibie mBanku w centrum Warszawy. I było&amp;#8230; [...]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.maciejaniserowicz.com/2015/09/28/po-devwarsztatach/&quot;&gt;Po devWarsztatach&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.maciejaniserowicz.com&quot;&gt;Maciej Aniserowicz&lt;/a&gt;.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.maciejaniserowicz.com/?p=2638</guid>
         <pubDate>Mon, 28 Sep 2015 04:55:00 +0000</pubDate>
         <content:encoded><![CDATA[<p>Niecałe 4 tygodnie temu <a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/2015/09/02/zapraszam-na-darmowe-szkolenie-z-testw/">zapraszałem Was na darmowe otwarte jednodniowe szkolenie z testów</a>. Niedługo później <a rel="nofollow" target="_blank" href="http://www.meetup.com/devWarsztaty/events/225010681/">ruszyła rejestracja</a> i&#8230; bilety zniknęły podobno w około 30 sekund. Kolejne 50 osób wylądowało na liście rezerwowej. Wow, nie spodziewałem się, że zainteresowanie będzie AŻ TAKIE! Całość została sfinalizowana w minioną sobotę w siedzibie mBanku w centrum Warszawy. I było&#8230; git!</p>
<p>Agendę naszego spotkania znajdziecie na stronie &#8220;<a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/szkolenia/testowanie-automatyczne-core/">Testowanie automatyczne (&#8220;core&#8221; – 1 dzień)</a>&#8220;.</p>
<p>Zajęcia przeplatane były kawką, pizzą i rozpakowywaniem mBankowych podarunków. A na koniec losowanie nagród: wejściówki na Programistok, Leetspeek oraz licencje od JetBrains. Strasznie miło!</p>
<p>Jedyne czego mi brakowało to żywiołowe dyskusje &#8211; ich nie bardzo doświadczyliśmy. Może wynikało to z faktu, że ludzie się wzajemnie nie znali. A może dlatego, że było nas w sumie aż 26 osób. A może powód jest jeszcze inny? Jeśli ktoś wie jaki to niech koniecznie da znać!</p>
<p>Opinie, jakie otrzymałem w powarsztatowej ankiecie, aż onieśmielają. Zobaczcie:</p>
<p><a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/wp-content/uploads/2015/09/clip_image001.png"><img style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" title="clip_image001" src="http://www.maciejaniserowicz.com/wp-content/uploads/2015/09/clip_image001_thumb.png" alt="clip_image001" width="424" height="456" border="0"/></a></p>
<p>Do tego sporo bardzo budujących komentarzy tekstowych. Radość w sercu mym zapanowała na długie godziny po ich lekturze.</p>
<p>Feedback jaki dostałem zarówno po tych, jak i kilku ostatnich &#8220;zamkniętych&#8221; warsztatach, dał mi do myślenia. Mam sporo refleksji odnośnie szkoleń programistycznych. Podzielę się z Wami nimi jutro z samego rańca, więc zapraszam!</p>
<p>Inicjatywa <a rel="nofollow" target="_blank" href="http://devwarsztaty.pl">devWarsztatów</a> jest po prostu świetna. <strong>Wielkie gratulacje w stronę <a rel="nofollow" target="_blank" href="http://blog.gutek.pl">Gutka</a> ślę, że udało mu się to wszystko wymyślić i zorganizować.</strong> I do tego jakie tempo: już w najbliższą sobotę odbędzie się <a rel="nofollow" target="_blank" href="http://devwarsztaty.pl/warsztaty/2015-10-03/">kolejne spotkanie</a>! Wypas. Czuję w kościach, że to się nieźle rozrośnie, bo korzyści są duże dla każdego: i uczestników, i prowadzących, i potencjalnych sponsorów, i &#8220;organizacji użyczających lokal&#8221;&#8230; Oj, aż się nie mogę doczekać i będę z ciekawością obserwować dalszy rozwój wydarzeń!</p>
<p>A tymczasem: dzięki wszystkim za udział i wspólne spędzenie soboty. Oraz taki miły feedback. Jeśli macie jeszcze coś &#8211; cokolwiek! &#8211; do dodania, to piszcie czy w komentarzach do tego posta, czy na maila, czy na stronie meetup, czy na fejsie, czy do Gutka, czy&#8230; kanałów jest bardzo wiele, więc na pewno drogę znajdziecie ;).</p>
<p><strong>I jeszcze jedno!</strong><br />
Jednym z pytań w ankiecie było: &#8220;Czy poleciłbyś to szkolenie gdyby było organizowane jako komercyjny płatny warsztat otwarty?&#8221;. Ku mojemu zadowoleniu wszyscy uczestnicy odpowiedzieli twierdząco. Najprawdopodobniej uczynię więc taki eksperyment w nadchodzących miesiącach. Tym samym zapraszam do zapisania się na newsletter pod tym adresem: <a rel="nofollow" target="_blank" href="http://eepurl.com/bw_LL5">http://eepurl.com/bw_LL5</a>. Planuję puścić tam informację wcześniej niż na blogu i zaoferować zniżkę dla subskrybentów.</p>
<p>The post <a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com/2015/09/28/po-devwarsztatach/">Po devWarsztatach</a> appeared first on <a rel="nofollow" target="_blank" href="http://www.maciejaniserowicz.com">Maciej Aniserowicz</a>.</p>
<div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=NpskUcShSnA:5jlwGY-Nkkg:QDrqXnVDFOM"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?d=QDrqXnVDFOM" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=NpskUcShSnA:5jlwGY-Nkkg:lt7SxnsiOIA"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?d=lt7SxnsiOIA" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=NpskUcShSnA:5jlwGY-Nkkg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?d=qj6IDK7rITs" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=NpskUcShSnA:5jlwGY-Nkkg:0VBWazUhMmc"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?d=0VBWazUhMmc" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/maciejaniserowicz?a=NpskUcShSnA:5jlwGY-Nkkg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/maciejaniserowicz?i=NpskUcShSnA:5jlwGY-Nkkg:D7DqB2pKExk" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/maciejaniserowicz/~4/NpskUcShSnA" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>So it begins... again!</title>
         <link>http://feedproxy.google.com/~r/LukaszSowa/~3/BWQqzQir7n4/so-it-begins-again</link>
         <description>&lt;p&gt;I've started tech blogging straight after finishing high school in May 2008. I wanted to track my progress as a software developer and start building my professional image. Today, over 7 years later, I have to admit it was one of the best decisions in my whole career. I've met hundreds of interesting people, made a few friends, gained some fame in Polish dev community and got some lucrative gigs as a consultant — all these thanks to my blog. It served me as a real platform for personal development during my years at uni. So why I'm starting all over? Read along, answer at the end of this post.&lt;/p&gt;&lt;h1&gt;Stats&lt;/h1&gt;&lt;p&gt;As techies, we all love numbers. Let's talk about them. First, basic info — I wrote total 94 posts (with 195 comments) in 88 months which gives us about 1.07 posts a month. Yep, I had problems with regular writing. Second, a screenshot from my Google Analytics account:&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Screenshot from Google Analytics for a lifetime of my blog&quot; title=&quot;Screenshot from Google Analytics for a lifetime of my blog&quot;&gt;&lt;/p&gt;&lt;p&gt;It's not super impressive, but I'm very happy with it. Polish dev community is not that big also content was very specialized.&lt;/p&gt;&lt;p&gt;About 80% of the traffic was attracted by posts about developing operating systems with a course about writing your own UNIX clone. The series was immensely popular and linked to from various blogs and forums. It became famous after winning a blog competition run by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.maciejaniserowicz.com&quot; title=&quot;Blog by Maciej Aniserowicz&quot;&gt;Maciej Aniserowicz&lt;/a&gt; (thanks Maciej!). I'm glad that in 2015, when people are writing mainly websites and mobile apps, low–level programming is still a thing! 10% of the traffic are my rants about my beloved Warsaw University of Technology and single post about setting up Emacs as a C/C++ IDE (someone even used it to produce articles on Wikibooks). Rest 10% are .NET things, reviews of Polish tech events and other garbage.&lt;/p&gt;&lt;p&gt;If you want to know more numbers, ask in the comments. I'll do my best to deliver accurate answer.&lt;/p&gt;&lt;h1&gt;Why?&lt;/h1&gt;&lt;p&gt;There's one thing I regret about my blog — I started writing in Polish. It seemed like a great idea in 2008, but since then my career has changed substantially. I no longer limit myself to Polish dev community, I travel a lot, I run &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://iterato.rs&quot; title=&quot;Iterators website&quot;&gt;my very own company&lt;/a&gt; that delivers software worldwide and I communicate in English every day. All of these made me want to share my knowledge with broader audience.&lt;/p&gt;&lt;p&gt;Better outreach is absolutely the main reason for starting from scratch. Another, minor one, is that I wanted to sort of underline the fact that being an independent software consultant is now a closed chapter of my life. It's hard to explain, but having new personal website helped me to achieve that feeling.&lt;/p&gt;&lt;p&gt;I'm still going to write about tech, obviously. Currently I'm very much into functional programming (and Scala ecosystem in particular) and distributed systems, so prepare for hardcore discussions about that topics. However, I'm not going to focus solely on code snippets and rants about new frameworks. As software business turned out to be much more interesting than I expected, I'm planning to share my thoughts about 'softer' subjects like building teams, managing projects, marketing, selling and everything else that goes along with producing software.&lt;/p&gt;&lt;p&gt;Old blog is now available at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://archiwum.lukaszsowa.pl&quot; title=&quot;My old blog in Polish&quot;&gt;archiwum.lukaszsowa.pl&lt;/a&gt;, but I made sure to not break any links using smart redirects. If you don't want to miss any new content, subscribe to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://luksow.com/atom.xml&quot; title=&quot;My RSS feed&quot;&gt;my RSS&lt;/a&gt; or even better, subscribe to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://eepurl.com/bzRN9L&quot; title=&quot;My newsletter&quot;&gt;my newsletter&lt;/a&gt; — I'm going to send some extra content there!&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;</description>
         <guid isPermaLink="false">http://luksow.com/articles/2015/09/27/so-it-begins-again</guid>
         <pubDate>Sun, 27 Sep 2015 13:37:00 +0000</pubDate>
      </item>
      <item>
         <title>Breakthrough DbTester Solution and Training</title>
         <link>http://codingbytodesign.net/2015/09/27/breakthrough-dbtester-solution-and-training/</link>
         <description>Hi, today I would like to share with you new training about some breakthrough database code test tool named DbTester. I have never find anything similar that can help me with T-SQL performance tune up, so I wrote it by myself and I would like to share with you training about it. Solution itself uses [&amp;#8230;]</description>
         <guid isPermaLink="false">http://codingbytodesign.net/?p=3083</guid>
         <pubDate>Sun, 27 Sep 2015 11:11:46 +0000</pubDate>
         <content:encoded><![CDATA[<p><font size="3" face="Calibri">Hi, today I would like to share with you new training about some breakthrough database code test tool named DbTester. I have never find anything similar that can help me with T-SQL performance tune up, so I wrote it by myself and I would like to share with you training about it. Solution itself uses Extended Events Sessions for monitoring and it works pretty well I think.</font></p>
<p><font size="3" face="Calibri"><a rel="nofollow" target="_blank" href="http://codingbytodesign.net"><img title="DbTester" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="DbTester" src="http://codingbytodesign.net/wp-content/uploads/2015/09/DbTester.png" width="634" height="364"/></a> </font></p>
<span class='embed-youtube' style='text-align:center;display:block;'></span> 
<p><font size="3" face="Calibri">Here you have <a rel="nofollow" target="_blank" href="http://codingbytodesign.net/wp-content/plugins/filedownload/download.php/?path=http://codingbytodesign.net/wp-content/uploads/2015/09/DbTester.zip&type=&check=&referer=/feed/"><span>DbTester Training Content</span></a> (<span style="color:#006600;">9</span> downloads) for download and you can easily learn from this above training how to use it in your own performance tuning fights. Thanks for reading and Enjoy!</font></p>
<p><font size="3" face="Calibri">p ;).</font></p>]]></content:encoded>
         <category>.NET</category>
      </item>
      <item>
         <title>Przypadek niedziałającej aplikacji w Windows Store</title>
         <link>http://blog.octal.pl/2015/09/przypadek-niedzialajacej-aplikacji-w-windows-store.html</link>
         <description>Jakiś czas temu napisaliśmy małą aplikację, która pozwala optymalizować czas urlopu. KiedyUrlop &amp;#8211; bo o niej mowa działała sobie już sporo czasu &amp;#8211; nikt nie narzekał (może poza mną gdy patrzyłem na zbyt małą liczbę pobrań), aż kilka dni temu znajomy oznajmił mi, że KiedyUrlop się nie odpala. Sprawdziłem u siebie i rzeczywiście &amp;#8211; zaraz [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blog.octal.pl/?p=878</guid>
         <pubDate>Fri, 25 Sep 2015 19:32:25 +0000</pubDate>
      </item>
      <item>
         <title>C# Pro Tip: ReSharper Postfix | DARIUSZ WOZNIAK.NET</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/Ar3oyY2WOQY/C-Pro-Tip-ReSharper-Postfix-DARIUSZ-WOZNIAKNET</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_WD1UZCI7NkaFzYokTACU-A.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;Ciekawym pomysłem na wydajniejszą (tak, jeszcze większą! :)) pracę z kodem jest dodatek do ReSharpera o nazwie Postfix.

Idea polega na uzupełnianiu kodu w oparciu o różne wzorce, tzw. postfix, które pojawiają się po napisaniu naszego kodu. Innymi słowy, jest to połączenie „surround templates” i resharperowego Quick Fix (Alt+Enter). Postfix uzupełniamy jednak klawiszem Tab.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/C-Pro-Tip-ReSharper-Postfix-DARIUSZ-WOZNIAKNET&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fdariuszwozniak.net%2f2015%2f09%2f16%2fc-pro-tip-resharper-postfix%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=Ar3oyY2WOQY:faQM6kJIIr4:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=Ar3oyY2WOQY:faQM6kJIIr4:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=Ar3oyY2WOQY:faQM6kJIIr4:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/Ar3oyY2WOQY&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/C-Pro-Tip-ReSharper-Postfix-DARIUSZ-WOZNIAKNET</guid>
         <pubDate>Thu, 24 Sep 2015 18:54:31 +0000</pubDate>
      </item>
      <item>
         <title>[En]Microservices with minimum overhead using ASP.NET Web API and Azure – part 2 – Deployment | Future Processing</title>
         <link>http://feedproxy.google.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~3/-dkMLWl0F_w/Microservices-with-minimum-overhead-using-ASPNET-Web-API-and-Azure-part-2-Deployment-Future-Processing</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div style=&quot;float:right;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://dotnetomaniak.pl/Data/Thumbnails/small_PRQ4sGxhiU-l0iVC6fvp3Q.png&quot;/&gt;&lt;/div&gt;&lt;div&gt;This is the second one of two posts concerning approach to build cost effective, but prepared for scaling, systems using ASP.NET Web API and Azure.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding-top:4px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dotnetomaniak.pl/Microservices-with-minimum-overhead-using-ASPNET-Web-API-and-Azure-part-2-Deployment-Future-Processing&quot;&gt;&lt;img alt=&quot;Podbij &amp;#x002191;&quot; src=&quot;http://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.future-processing.pl%2fblog%2fmicroservices-with-web-api-and-azure-deployment%2f&quot; style=&quot;border:0px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=-dkMLWl0F_w:XoNRaat-PgQ:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?a=-dkMLWl0F_w:XoNRaat-PgQ:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy?i=-dkMLWl0F_w:XoNRaat-PgQ:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dotnetomaniakpl-OstatnioOpublikowaneArtykuy/~4/-dkMLWl0F_w&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://dotnetomaniak.pl/Microservices-with-minimum-overhead-using-ASPNET-Web-API-and-Azure-part-2-Deployment-Future-Processing</guid>
         <pubDate>Thu, 24 Sep 2015 18:54:31 +0000</pubDate>
      </item>
   </channel>
</rss>
<!-- fe7.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 22:54:40 UTC 2015 -->
