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

<channel>
	<title>Dawid Pośliński</title>
	<atom:link href="http://blog.poslinski.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.poslinski.net</link>
	<description>Code is poetry.</description>
	<lastBuildDate>Sun, 11 Jul 2010 22:12:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Zarządzanie projektami &#8211; to proste</title>
		<link>http://blog.poslinski.net/zarzadzanie-projektami-to-proste/</link>
		<comments>http://blog.poslinski.net/zarzadzanie-projektami-to-proste/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 18:22:07 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[inne]]></category>
		<category><![CDATA[moje strony]]></category>
		<category><![CDATA[projekty]]></category>
		<category><![CDATA[project managment]]></category>
		<category><![CDATA[zarządzanie projektami]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=606</guid>
		<description><![CDATA[Nie tylko My programiści, stajemy przed problemem zarządzania powierzonym nam projektem. Szczególnie, gdy w grę wchodzi wieloosobowa współpraca, wygodna i prosta platforma do współpracy między osobami zaangażowanymi w dany produkt jest bardzo ważna. Dla osób, które szukają szybkiego i wygodnego rozwiązania, powstał goProjekt. Skąd ten wpis? goProjekt, to system realizowany w ramach dotacji z z [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/07/project-menagement-to-proste.png"><img class="aligncenter size-full wp-image-607" title="project-menagement-to-proste" src="http://blog.poslinski.net/wp-content/uploads/2010/07/project-menagement-to-proste.png" alt="" width="620" height="150" /></a>Nie tylko My programiści, stajemy przed problemem zarządzania powierzonym nam projektem. Szczególnie, gdy w grę wchodzi wieloosobowa współpraca, wygodna i prosta platforma do współpracy między osobami zaangażowanymi w dany produkt jest bardzo ważna. Dla osób, które szukają szybkiego i wygodnego rozwiązania, powstał goProjekt.<span id="more-606"></span></p>
<h2>Skąd ten wpis?</h2>
<p>goProjekt, to system realizowany w ramach dotacji z z programu POIG 8.1.  Piszę o nim nie tylko dlatego, że jako programista, muszę mieć pojęcie o project management, ale również dlatego, że goProjekt wyszedł spod moich rąk.</p>
<h2>Dla kogo ten system?</h2>
<p>System docelowo ma stawiać na maksymalne user-friendly, ma być szybki (stąd między innymi niemal w całości wykorzystuje ajax) i ma być bezpieczny (stąd SSL i kilka innych zabiegów, które mają poprawić bezpieczeństwo).</p>
<p>Aplikacja jest obecnie w fazie beta, ale jest to już na tyle stabilna beta, że postanowiłem o niej napisać. Program oprócz ewidencji celów i zadań, posiada również system wiadomości, które mogą być wykorzystywane jako archiwum korespondencji (emaili) między użytkownikami, archiwum plików, gdzie można przechowywać różne wersje konkretnego pliku, cz w końcu archiwum tablic, które koncepcyjnie nawiązują do usługi Google Wave.</p>
<p>Do końca roku, zostanie wprowadzonych szereg nowych funkcjonalności, a korzystanie z goProjekt jest obecnie darmowe! W przyszłości, należy się spodziewać płatnej usługi, ale obiecuję, że cenowo bardzo konkurencyjnej względem innych tego typu produktów na rynku.</p>
<h2>Zacznij już dziś</h2>
<p>Jeżeli jeszcze nie miałeś do czynienia z project management, może właśnie zaczniesz swoją przygodę od poznania goProjekt?</p>
<p><a title="Project Menagement - System zarządzania projektami goProjekt" href="http://goprojekt.pl" target="_blank">http://goprojekt.pl</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/zarzadzanie-projektami-to-proste/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>jQuery: unselect w WebKit?</title>
		<link>http://blog.poslinski.net/jquery-unselect-w-webkit/</link>
		<comments>http://blog.poslinski.net/jquery-unselect-w-webkit/#comments</comments>
		<pubDate>Fri, 14 May 2010 20:04:56 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[ciekawostki]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[poradniki]]></category>
		<category><![CDATA[unselect]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=599</guid>
		<description><![CDATA[Pod przeglądarkami bazującymi na silniku WebKit w przypadku ustawienia .focus na polu, pojawia się problem zaznaczonego tekstu. Jak w łatwy sposób sobie z nim poradzić, aby np. kliknięcie na dowolny klawisz nie wyczyściło nam inputa? Rozwiązanie Cała sztuczka polega na pobraniu wartości inputa, za pomocą metody val(); var content = $("input[name=nazwaPola]").val(); Oraz po wykonaniu .focus, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/05/unselect_w_webkit.png"><img src="http://blog.poslinski.net/wp-content/uploads/2010/05/unselect_w_webkit.png" alt="jQuery unselect w Webkit" title="unselect_w_webkit" width="620" height="150" class="aligncenter size-full wp-image-602" /></a>Pod przeglądarkami bazującymi na silniku WebKit w przypadku ustawienia .focus na polu, pojawia się problem zaznaczonego tekstu. Jak w łatwy sposób sobie z nim poradzić, aby np. kliknięcie na dowolny klawisz nie wyczyściło nam inputa?<span id="more-599"></span></p>
<h2>Rozwiązanie</h2>
<p>Cała sztuczka polega na pobraniu wartości inputa, za pomocą metody val();</p>
<pre name="code" class="javascript">var content = $("input[name=nazwaPola]").val();</pre>
<p>Oraz po wykonaniu .focus, nadpisaniu wartości ponownie do pola, co odznaczy tekst w polu.</p>
<pre name="code" class="javascript">$("input[name=nazwaPola]").focus.val(content);</pre>
<p>Prawda, że proste?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/jquery-unselect-w-webkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jak posprzątać HTML?</title>
		<link>http://blog.poslinski.net/jak-posprzatac-html/</link>
		<comments>http://blog.poslinski.net/jak-posprzatac-html/#comments</comments>
		<pubDate>Mon, 03 May 2010 14:18:19 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[ciekawostki]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[poradniki]]></category>
		<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[htmlpurifier]]></category>
		<category><![CDATA[strip_tags]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=589</guid>
		<description><![CDATA[Każdy programista webowy, stanął lub stanie przed zadaniem zablokowania możliwości wprowadzania kodu HTML do jego aplikacji przez użytkownika, który nie jest do tego uprawniony. Czasami jednak zdarza się tak, że chcemy dać możliwość użytkownikowi na wprowadzania formatowania, a nie, żeby było jak najprostsze wykorzystujemy do tego HTML. Do tego zadania, świetnie nadaje się biblioteka do [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/05/jakposprzatachtml1.png"><img src="http://blog.poslinski.net/wp-content/uploads/2010/05/jakposprzatachtml1.png" alt="" title="jakposprzatachtml" width="620" height="150" class="aligncenter size-full wp-image-596" /></a>Każdy programista webowy, stanął lub stanie przed zadaniem zablokowania możliwości wprowadzania kodu HTML do jego aplikacji przez użytkownika, który nie jest do tego uprawniony. Czasami jednak zdarza się tak, że chcemy dać możliwość użytkownikowi na wprowadzania formatowania, a nie, żeby było jak najprostsze wykorzystujemy do tego HTML.<br />
<span id="more-589"></span><br />
Do tego zadania, świetnie nadaje się biblioteka do której korzystania chciałbym zachęcić. <strong>HTMLPurifier</strong> bo o niej mowa, potrafi nie tylko wyciąć zbędne tagi (co również można wykonać za pomocą wbudowanej w PHP funkcji strip_tags), ale również wyciąć zbędne atrybuty CSS (znajdujące się w atrybucie style znacznika), czy też konkretne atrybuty wewnątrz tagu.<br />
HTMLPurifier znajduje również znaczniki bez treści, zamienia adresy ftp, http, https itd. na linki, a nawet linki do serwisu YouTube kod embeddujący player Google&#8217;a. Stara się również poprawić niepoprawny kod np. poprzez samodzielne domykanie, niezamkniętych znaczników itp.<br />
Posiada również rozbudowany mechanizm cache&#8217;owania.</p>
<h2>Gdzie szukać?</h2>
<p>Polecam odwiedzić <a href="http://htmlpurifier.org">stronę projektu</a>, a w szczególności dział <a href="http://htmlpurifier.org/demo.php">demo</a>, który przedstawia namiastkę możliwości tej biblioteki. Bardzo dobrze skonstruowana dokumentacja, opisuje wszystkie funkcjonalności dostępne w tej bibliotece.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/jak-posprzatac-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problemy z TinyMCE i Ajax?</title>
		<link>http://blog.poslinski.net/problemy-z-tinymce-i-ajax/</link>
		<comments>http://blog.poslinski.net/problemy-z-tinymce-i-ajax/#comments</comments>
		<pubDate>Sun, 02 May 2010 11:37:22 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[ciekawostki]]></category>
		<category><![CDATA[poradniki]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tinymce]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=580</guid>
		<description><![CDATA[Przyszło mi ostatnio spotkać się w systemie którym piszę, z problemem, który nie mógł pozostać nierozwiązany. Chodziło dokładnie o to, iż w przypadku inicjowania TinyMCE w containerze otrzymanym z zapytania Ajaxowego, w przypadku, ponownej próby inicjowania pojawiał się komunikat: g.win.document is null Problem ten wynika z próby ponownego utworzenia instancji TinyMCE w miejscu, w którym [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/05/tinymceiajax.png"><img src="http://blog.poslinski.net/wp-content/uploads/2010/05/tinymceiajax.png" alt="" title="tinymceiajax" width="620" height="150" class="aligncenter size-full wp-image-586" /></a>Przyszło mi ostatnio spotkać się w systemie którym piszę, z problemem, który nie mógł pozostać nierozwiązany. Chodziło dokładnie o to, iż w przypadku inicjowania TinyMCE w containerze otrzymanym z zapytania Ajaxowego, w przypadku, ponownej próby inicjowania pojawiał się komunikat:</p>
<p><span id="more-580"></span></p>
<pre name="code" class="javascript">g.win.document is null</pre>
<p>Problem ten wynika z próby ponownego utworzenia instancji TinyMCE w miejscu, w którym już istnieje jedna instancja, jednak ponieważ zawartość html została przeładowana, a Tiny nie usuwa automatycznie &#8222;siebie&#8221;, należy to robić ręcznie.</p>
<p>Aby to zrobić, należy w ustawieniach uruchamiających Tiny, zmienić &#8216;mode: &#8222;textareas&#8221;&#8216; na &#8222;none&#8221;.</p>
<pre name="code" class="javascript">tinyMCE.init({
....
mode : "none",
...
});</pre>
<h2>Dodawanie</h2>
<p>Następnie po tym bloku kodu, należy wywołać dla każdego elementu, który chcemy zamienić na nasz edytor, następującą linie kodu:</p>
<pre name="code" class="javascript">tinyMCE.execCommand("mceAddControl", false, "'idElementu");</pre>
<p>Gdzie &#8222;idElementu&#8221; wskazywać będzie na element (może to być zarówno div, jak i textarea jak i niemalże dowolny element DOM).</p>
<h2>Usuwanie</h2>
<p>Pozostało jeszcze usuwanie. Aby je zrealizować, wystarczy przed dodaniem sprawdzić czy istnieje już w pamięci instancja TinyMCE przypisana do określonego idElementu. Wystarczy zatem przed wcześniej wymienioną linią kodu odpowiedzialną za dodawanie instancji Tiny, dodać następujący fragment kodu:</p>
<pre name="code" class="javascript">if (tinyMCE.getInstanceById('idElementu'))
{
tinyMCE.execCommand('mceFocus', false, 'idElementu');
tinyMCE.execCommand('mceRemoveControl', false, 'idElementu');
}</pre>
<h2>Pobieranie zawartości</h2>
<p>Z przydatnych metod, warto jeszcze wiedzieć, jak pobierać w dowolnej chwili zawartość (html) z naszego edytora. Realizuje się to przez następujące polecenie, które zwraca zawartość:</p>
<pre name="code" class="javascript">tinyMCE.get('idElementu').getContent()</pre>
<p>W przypadku, jeżeli na jednej stronie, mamy wiele instancji TinyMCE równocześnie, wystarczy stworzyć obiekt pełniący rolę listy i przechowywać w nim kolejne id edytora. W ten sposób, wykorzystując foreach, będziemy mogli w łatwy i szybki sposób usuwać wiele instancji Tiny jednocześnie.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/problemy-z-tinymce-i-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7 i XNA</title>
		<link>http://blog.poslinski.net/windows-phone-7-i-xna/</link>
		<comments>http://blog.poslinski.net/windows-phone-7-i-xna/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 12:37:30 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[xna]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=573</guid>
		<description><![CDATA[Ostatnio dość głośno  się mówi o nowej platformie dla XNA &#8211; Windows Phone 7. Microsoft udostępnił już stosowne narzędzia pozwalające emulować zarówno samą platformę sprzętową na PC jak również tworzyć na nią aplikację. Odnośnie samego Windows Phone&#8217;a, kilka featerów można zobaczyć na prezentacji znajdującej się pod tym adresem. Jednak to co z mojego punktu widzenia [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/03/wp7xna.png"><img class="aligncenter size-full wp-image-575" title="wp7xna" src="http://blog.poslinski.net/wp-content/uploads/2010/03/wp7xna.png" alt="" width="620" height="150" /></a>Ostatnio dość głośno  się mówi o nowej platformie dla XNA &#8211; Windows Phone 7. Microsoft udostępnił już stosowne narzędzia pozwalające emulować zarówno samą platformę sprzętową na PC jak również tworzyć na nią aplikację. <span id="more-573"></span>Odnośnie samego Windows Phone&#8217;a, kilka featerów można zobaczyć na prezentacji znajdującej się pod <a href="http://channel9.msdn.com/posts/LauraFoy/First-Look-Windows-Phone-7-Series-Hands-on-Demo/">tym</a> adresem. Jednak to co z mojego punktu widzenia jest najbardziej interesujące to właśnie możliwości tej platformy pod kątem XNA.</p>
<p>Do dyspozycji programistów będą oddane następujące predefiniowane shadery:</p>
<ul>
<li>BasicEffect (stary, dobrze znany, oferujący podstawowe efekty)</li>
<li>DualTextureEffect (jak sama nazwa wskazuje, mieszanie tekstur)</li>
<li>AlphaTestEffect (billboarding)</li>
<li>SkinnedEffect (animacje)</li>
<li>EnviromentMapEffect (mapa środowiska na obiekcie, odbicia)</li>
</ul>
<p>Custom Shadery nie będą dostępne, przy czym Microsoft nie wyklucza ich wprowadzenia w przyszłości.</p>
<p>Dostępne rozdzielczości dla gier:</p>
<ul>
<li>480&#215;800</li>
<li>360&#215;600</li>
<li>240&#215;400</li>
</ul>
<p>Oczywiście zmniejszenie rozdzielczości pozwoli na tworzenie bardziej skomplikowanych scen przy lepszym framerate (wyświetlacz 30hz, więc nie ma sensu tworzyć gier, które mają ponad 30fps, chyba, że są wyjątkowo proste i osiągają taki lub wyższy wynik przy maksymalnej rozdzielczości).</p>
<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/03/screenwp7xna.png"><img class="aligncenter size-full wp-image-576" title="screenwp7xna" src="http://blog.poslinski.net/wp-content/uploads/2010/03/screenwp7xna.png" alt="" width="620" height="318" /></a></p>
<p>Dla zainteresowanych, Microsoft udostępnił już dokumentacje i pierwszy prosty tutorial, aby ułatwić przygodę z tworzeniem aplikacji na tę platformę.</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/bb200104%28XNAGameStudio.40%29.aspx">MSDN</a></li>
<li><a href="http://creators.xna.com/en-US/article/firstwindowsphonegame">Pierwsza gra na Windows Phone</a></li>
<li><a href="http://creators.xna.com/en-us/education/gettingstarted">Wszystkie resource&#8217;y w jednym miejscu</a></li>
<li><a href="http://">Screencasty z ostatnich sesji z konferencji MIX10</a> (b. polecam prezentacje, gdzie przedstawiono przykładowe działające aplikację &#8211; <a href="http://live.visitmix.com/MIX10/Sessions/CL21">3d rpg</a> i <a href="http://live.visitmix.com/MIX10/Sessions/CL22">przykłady wykorzystania shaderów</a>)</li>
</ul>
<p>Inni artykuły:</p>
<ul>
<li><a href="http://polygamia.pl/Polygamia/1,94534,7664578,MIX10__Urzadzenia_z_Windows_Phone_7_jako_przenosne.html">Polygamia</a></li>
<li><a href="http://www.engadget.com/photos/windows-phone-7-series-xna-screenshots/#2785558">Screeny z 3d rpg</a></li>
</ul>
<p>Zapowiada się bardzo ciekawie.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/windows-phone-7-i-xna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Studencki Festiwal Informatyczny &#8211; SFI 2010</title>
		<link>http://blog.poslinski.net/studencki-festiwal-informatyczny-sfi-2010/</link>
		<comments>http://blog.poslinski.net/studencki-festiwal-informatyczny-sfi-2010/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 11:55:41 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[konferencja]]></category>
		<category><![CDATA[festiwal]]></category>
		<category><![CDATA[gamedev]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[sfi]]></category>
		<category><![CDATA[studia]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=552</guid>
		<description><![CDATA[W dniach 11-13 Marca 2010, miałem przyjemność uczestniczyć w jednej z największych imprez stricte informatycznych w regionie &#8211; Studenckim Festiwalu Informatycznym, który odbył się po raz szósty, a w którym to uczestniczyłem po raz 2gi. W kilku słowach postaram się podzielić wrażeniami z tego wydarzenia. Dzień pierwszy 7.00 &#8211; Wyjechaliśmy z Bielska-Białej z grupą kilku [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/03/sfi2010.png"><img class="aligncenter size-full wp-image-556" title="sfi2010" src="http://blog.poslinski.net/wp-content/uploads/2010/03/sfi2010.png" alt="" width="620" height="150" /></a>W dniach 11-13 Marca 2010, miałem przyjemność uczestniczyć w jednej z największych imprez stricte informatycznych w regionie &#8211; <a href="http://www.sfi.org.pl/">Studenckim Festiwalu Informatycznym</a>, który odbył się po raz szósty, a w którym to uczestniczyłem po raz 2gi. W kilku słowach postaram się podzielić wrażeniami z tego wydarzenia.</p>
<h2><span id="more-552"></span>Dzień pierwszy</h2>
<p>7.00 &#8211; Wyjechaliśmy z Bielska-Białej z grupą kilku znajomych w stronę Krakowa.</p>
<p>9.30 &#8211; Dotarliśmy do miejsca naszego zakwaterowania, gdzie musieliśmy rozwiązać problem zaparkowania samochodu na 3 dni. 72 zł było dla nas grubą przesadą za 3 dni postoju samochodu w strefie C, dlatego finalnie staliśmy za free 100m od miejsca naszego zakwaterowania, co bardzo podniosło morale. Wiadomo, że zaoszczędzone pieniądze można było spożytkować na coś przyjemniejszego. Konsekwencją perypetii parkingowych, było to, że nie zdążyliśmy na pierwszy wykład.</p>
<p>11.15 &#8211; &#8222;Silverlight dla ciekawych świata&#8221;, prowadzony przez Michała Żylińskiego z <a href="http://microsoft.pl">Microsoftu</a>, który przedstawił nowości, zaimplementowane w nowym SL&#8217;u. Na pochwałę zasługuje duża liczba przykładów.</p>
<p>12.30 &#8211; &#8222;Trendy w grach komputerowych&#8221;, czyli wykład <a href="http://drobot.org">Michała Drobota</a>, był jednym z dwóch moich ulubionych. Nie tylko dlatego, że szczególnie interesuje mnie game dev z powodów oczywistych, ale również dlatego, że Michał ma szczególny dar do mówienia. W moim odczuciu, Michał ma spory dystans do życia, a ja cenię takie podejście. Opowiadał o tym co podoba się graczom oraz co widać na horyzoncie (głównie pod kątem nowych możliwości jakie zaoferują przyszłe kontrolery).</p>
<p>13.30 &#8211; Przerwa obiadowa w pobliskim bufecie</p>
<p>14.30 -Warsztat:  &#8222;Jak wygląda produkcja konsolowej gry AAA&#8221; prowadzony przez Michała Drobota, pozwolił lepiej poznać podział obowiązków, zadań itd. przy tworzeniu gry wysokobudżetowej, ale nie tylko. Kto nie był, powinien żałować.</p>
<p>17.00 &#8211; &#8222;Gadu-Gadu: początki, rozwój, sukces&#8221;, Łukasz Foltyn twórca <a href="http://gadu-gadu.pl">Gadu-Gadu</a> opowiadał o swoich początkach w software developerce i o tym, że warto spróbować swoich sił oraz nie należy bać się fiskusa <img src='http://blog.poslinski.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>18.00 &#8211; Kolacja i zwiedzanie Krakowa &#8230;</p>
<h2>Dzień drugi</h2>
<p>10.00 &#8211; Mimo wczesnej pory, na wykładzie <a href="http://niebezpiecznik.pl/">Piotra Koniecznego</a> &#8222;Google Hacking w testach penetracyjnych&#8221;, zgromadziło się wg. organizatorów 470 osób. Piotr opowiadał o możliwościach jakie oferuje Google głównie pod kątem  indeksowania zawartości serwerów web.</p>
<p>11.15 &#8211; &#8222;Efektywność ochrony różnych technologii zabezpieczeń – omówienie praktycznych przypadków włamań z doświadczenia polskiego audytora&#8221; prowadzony przez Mariusza Staworskiego, w którym była mowa o kwestiach bezpieczeństwa i najczęściej popełnianych błędach.</p>
<p>12.30 &#8211; W wykładzie &#8222;Interfejsy mózg-komputer&#8221; <a href="http://brain.fuw.edu.pl/~durka/">Piotr Jerzy-Durka</a> opowiadał o postępach w badaniach nad sterowaniem urządzeniami za pomocą myśli. Mówił o obecnych ograniczeniach i celach jakie starają się osiągnąć badający tą formę komunikacji.</p>
<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/03/sfi2010-2.jpg"><img class="aligncenter size-full wp-image-565" title="sfi2010-2" src="http://blog.poslinski.net/wp-content/uploads/2010/03/sfi2010-2.jpg" alt="" width="620" height="465" /></a></p>
<p>14.30 &#8211; &#8222;Witaj w życiu, czyli dlaczego jednym się udaje, a innym nie?&#8221; <a href="http://www.kamilcebulski.pl/">Kamil Cebulski</a> opowiadał &#8230; no właśnie, tutaj godzinna przerwa obiadowa nie wystarczyła nam, aby pieszo dojść do miejsca, gdzie chcieliśmy coś zjeść, zjedzenia i powrotu na czas, dlatego dotarliśmy dopiero na serię pytań, w których Kamil opowiadał o tym, czy i jak warto wejść w swój biznes.</p>
<p>15.45 &#8211; Grzegorz Knapik, Tomasz Rusiłko	&#8222;Continuous Integration in Software Development&#8221; &#8211; panowie z <a href="http://www.motorola.com">Motoroli</a> opowiadali o korzyściach z integracji źródeł między członkami zespołu, podczas wytwarzania oprogramowania.</p>
<p>17.00 &#8211; Miroslav Kopecky w wykładzie &#8222;Android: member of the mobile family&#8221; pokazywał możliwości tej platformy. Przedstawiono przykłady aplikacji na Androida i niewątpliwie osoby mało przekonane do tej platformy, mogły się nawrócić. Mottem przewodnim przedstawianych programów było &#8222;I love Żywiec&#8221;.</p>
<p>18.00 &#8211; Zwiedzanie Krakowa &#8230;</p>
<h2>Dzień trzeci</h2>
<p>10:00 -	&#8222;Imagine Cup – konkurs pomysłów&#8221;, czyli wykład prowadzony przez jedną z nagrodzonych podczas ImagineCup w Kairze grup programistycznych z Polski &#8211; <a href="http://kamuflage.studentlive.pl/homepage.aspx">kAMUflage</a>. Jeden z dwóch najciekawszych dla mnie wykładów (ex aequo z wcześniej wymienionym wykładem Michała Drobota). kAMUflage, przedstawiło swój program do rozpoznawania zapisów nutowych i zamieniania ich na muzykę oraz dodatkowo na język Braila. Program posiadał tak wiele ciekawych feature&#8217;ów, że nie będę się rozpisywał na jego temat &#8211; jeśli jednak na stronie SFI pojawi się screencast z tego wykładu, mocno zachęcam do jego obejrzenia. Przy okazji, spotkał mnie miły akcent pod koniec tego wykładu, ponieważ w losowaniu nagród, udało mi się załapać na Viste Ultimate oraz koszulkę festiwalową.</p>
<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/03/sfi2010-1.jpg"><img class="aligncenter size-full wp-image-564" title="sfi2010-1" src="http://blog.poslinski.net/wp-content/uploads/2010/03/sfi2010-1.jpg" alt="" width="620" height="465" /></a></p>
<p>11:15 &#8211; Tomasz Kaczanowski z firmy <a href="http://softwaremind.pl">SoftwareMind</a> w wykładzie &#8222;Gradle &#8211; lepszy system budowania projektów&#8221;, opowiadał o swoim wkładzie w projekt Gardle, o jego możliwościach na tle konkurencyjnych rozwiązań oraz pokazywał Gardle w akcji.</p>
<p>12:30	- <a href="http://jaceklaskowski.pl/">Jacek Laskowski</a> z firmy <a href="http://www.ibm.com/us/en/">IBM</a> w wykładzie	&#8222;Service Component Architecture (SCA) z Apache Tuscany i WebSphereApplication Server 7&#8243; próbował wyjaśnić koncepcje modelu SCA, oraz zachęcał do korzystania z produktów swojej firmy, pod kątem SCA właśnie.</p>
<p>14.00 &#8211; Powrót do domu.</p>
<h2>Podsumowanie</h2>
<p>Oczywiście to było tylko moje subiektywne streszczenie, moim zdaniem najbardziej wyrazistych elementów z każdego z wykładów, z którym pewnie nie wszyscy się zgodzą. Jeżeli o czymś istotnym nie napisałem, zapraszam do komentowania tego wpisu.</p>
<p>Moim zdaniem w tym roku Festiwal był zdecydowanie lepszy niż w poprzednim (co nie znaczy, że w poprzednim było źle) i mam nadzieję, że w przyszłym roku, jeśli uda mi się znowu uczestniczyć w SFI, będzie jeszcze lepiej.</p>
<p>Dziękuje organizatorom oraz sponsorom ze świetnie spędzony czas.</p>
<p>Ps. Zdjęcia z telefonu, więc jakość mizerna.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/studencki-festiwal-informatyczny-sfi-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XNA: Kurs podstaw programowania w XNA!</title>
		<link>http://blog.poslinski.net/xna-kurs-podstaw-programowania-w-xna/</link>
		<comments>http://blog.poslinski.net/xna-kurs-podstaw-programowania-w-xna/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 09:52:13 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Główna]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[moje strony]]></category>
		<category><![CDATA[projekty]]></category>
		<category><![CDATA[xna]]></category>
		<category><![CDATA[e-learning]]></category>
		<category><![CDATA[gamedev]]></category>
		<category><![CDATA[podstawy]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=541</guid>
		<description><![CDATA[W trakcie studiów, przychodzi taki moment, kiedy należy wybrać temat pracy dyplomowej. W moim przypadku padło na technologię XNA.Obecnie system jest dość zamkniętą platformą, ale jest również w fazie testowej i plany sięgają znacznie dalej,  a sama platforma edukacyjna, prawdopodobnie zostanie zmieniona. W trakcie kursu zaprezentowałem, jak stworzyć aplikację w XNA na przykładzie wymyślonej na potrzeby [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/03/xna-kurs-podstaw.png"><img class="aligncenter size-full wp-image-542" title="xna-kurs-podstaw" src="http://blog.poslinski.net/wp-content/uploads/2010/03/xna-kurs-podstaw.png" alt="" width="620" height="150" /></a>W trakcie studiów, przychodzi taki moment, kiedy należy wybrać temat pracy dyplomowej. W moim przypadku padło na technologię XNA.<span id="more-541"></span>Obecnie system jest dość zamkniętą platformą, ale jest również w fazie testowej i plany sięgają znacznie dalej,  a sama platforma edukacyjna, prawdopodobnie zostanie zmieniona.</p>
<p>W trakcie kursu zaprezentowałem, jak stworzyć aplikację w XNA na przykładzie wymyślonej na potrzeby wykładów gry Chrupcio.</p>
<p>Lista wykładów obejmuje:</p>
<ol>
<li>Wstęp do Microsoft XNA ( 7 minut 21 sekund )</li>
<li>Przygotowanie środowiska pracy ( 5 minut 41 sekund )</li>
<li>Tworzenie projektu ( 10 minut 20 sekund )</li>
<li>Rysowanie w przestrzeni ( 6 minut 13 sekund )</li>
<li>Generowanie terenu ( 41 minut 17 sekund )</li>
<li>Model z animacjami ( 22 minuty 16 sekund )</li>
<li>Sterowanie modelem i kamerą ( 24 minut 0 sekund )</li>
<li>Stworzenie komponentów dekoracji ( 14 minut 6 sekund )</li>
</ol>
<p>Łączny czas trwania wykładów wyniósł: <strong>130</strong> minut i <strong>17</strong> sekund.</p>
<p>Zapraszam do zapoznania się z witryną (wymagana rejestracja i aktywacja konta przez administratora), oraz będę bardzo wdzięczny za wszelkie uwagi dotyczące systemu jak i tematyki / formy nauczania itp.</p>
<p style="text-align: center;"><a title="Nauka podstaw Microsoft XNA" href="http://xna.wsi.edu.pl"><strong>Internetowy System Edukacyjny XNA</strong></a></p>
<p style="text-align: left;">Mam również prośbę do zainteresowanych tą formą nauki, o wypełnienie poniższej ankiety:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="300" height="250" id="flashPoll" align="middle" style="float:left;padding:10px 10px 10px 0px;">
<param name=FlashVars VALUE="apiKey=&request_type=pollid&request_value=491671"/>
<param name="allowScriptAccess" value="always" />
<param name="movie" value="http://www.memedex.com/flash/flashPoll/flashPoll.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="http://www.memedex.com/flash/flashPoll/flashPoll.swf" quality="high" width="300" height="250" name="flashPoll" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashVars="apiKey=&request_type=pollid&request_value=491671" wmode="transparent" style="float:left;padding:10px 10px 10px 0px;"/>
</object></p>
<p>Z góry dziękuję!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/xna-kurs-podstaw-programowania-w-xna/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XNA: Co na horyzoncie?</title>
		<link>http://blog.poslinski.net/xna-co-na-horyzoncie/</link>
		<comments>http://blog.poslinski.net/xna-co-na-horyzoncie/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 23:24:02 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[ciekawostki]]></category>
		<category><![CDATA[xna]]></category>
		<category><![CDATA[project natal]]></category>
		<category><![CDATA[sensory]]></category>
		<category><![CDATA[surface]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=525</guid>
		<description><![CDATA[Wydawałoby się, że ostatnio temat XNA, nieco ucichł i nie pojawiają się jakieś kluczowe informacje związane z tym frameworkiem. Gdyby jednak podsumować co już wiadomo, na temat tego, co pojawi się w związku z kolejnymi wersjami, uzbierałoby się tego całkiem sporo. Surface Cieszy fakt, iż Microsoft wraz z wprowadzeniem kolejnych platform sprzętowych, planuje wprowadzić natywną [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/02/xna-na-horyzoncie.png"><img class="aligncenter size-full wp-image-535" title="xna-na-horyzoncie" src="http://blog.poslinski.net/wp-content/uploads/2010/02/xna-na-horyzoncie.png" alt="" width="620" height="150" /></a>Wydawałoby się, że ostatnio temat XNA, nieco ucichł i nie pojawiają się jakieś kluczowe informacje związane z tym frameworkiem. Gdyby jednak podsumować co już wiadomo, na temat tego, co pojawi się w związku z kolejnymi wersjami, uzbierałoby się tego całkiem sporo.<span id="more-525"></span></p>
<h2>Surface</h2>
<p>Cieszy fakt, iż Microsoft wraz z wprowadzeniem kolejnych platform sprzętowych, planuje wprowadzić natywną obsługę XNA przez te urządzenia. Chodzi tutaj konkretnie, o już dostępny wąskiemu gronu odbiorców stół z technologią multi-touch <a href="http://www.microsoft.com/surface/">Microsoft Surface</a>. Obecnie Microsoft udostępnia już API pozwalające pisać aplikację na Surface, w tym z użyciem XNA, które można przetestować na swoim lokalnym sprzęcie. Użytkownik podobnie jak w przypadku tworzenia aplikacji na urządzenia mobilne, widzi emulowane urządzenie.<br />
Przykład prostej aplikacji w XNA uruchomionej na Surface.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/hSTad5imww4&amp;hl=pl_PL&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/hSTad5imww4&amp;hl=pl_PL&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2>Project Natal</h2>
<p>Kolejnym dużo bardziej interesującym urządzeniem, które dołączy do gamy urządzeń wspierających XNA, będzie <a href="http://www.xbox.com/en-US/live/projectnatal/">Project Natal</a>, w którym rolę kontrolera pełnić będzie człowiek. Dwie kamery, analizować będą nasz ruch i przekładać go będą na trójwymiarowy model, który będzie mógł wchodzić w interakcje z aplikacją. Można powiedzieć, że dzięki tego typu rozwiązaniom, interfejsy naturalne wejdą w nową erę &#8211; przynajmniej pod warunkiem, że coś z tego co obiecuje Microsoft na swoich filmach zostanie spełnione.</p>
<p>Dla osób, które nie wiedzą o co chodzi, polecam te trzy prezentacje:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/CPIbGnBQcJY&amp;hl=pl_PL&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/CPIbGnBQcJY&amp;hl=pl_PL&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/rP6lkV83S6I&amp;hl=pl_PL&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/rP6lkV83S6I&amp;hl=pl_PL&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/p2qlHoxPioM&amp;hl=pl_PL&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/p2qlHoxPioM&amp;hl=pl_PL&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2>Windows Phone</h2>
<p>W ciągu ostatnich dni, głośno było również o systemie na telefony komórkowe, Windows Phone. Tutaj również otwiera się nowy rynek, ponieważ jak dotąd z małych urządzeń, wsparcie dla XNA posiadał jedynie Zune, który jak wiadomo nie posiada funkcji telefonu, stąd pewnie też i jego popularność nie była największa. Windows Phone, ma uzupełnić lukę na rynku mobilnych urządzeń, którą pozostawił Microsoft, nie dając możliwości programowania w XNA na Windows Mobile. Teraz ma pojawić się taka możliwość. Początkowo, będą to tylko aplikacje 2D, ale uważam, że kwestią czasu będą również i te 3D.</p>
<h2>Windows 7 Sensors*</h2>
<p>Osoby, które śledzą mojego <a href="http://poslinskidotnet.blip.pl/">blip&#8217;a</a>, <a href="http://twitter.com/PoslinskiDotNet">Twitter&#8217;a</a> czy też<a href="http://www.google.com/profiles/dposlinski"> Buzz&#8217;a</a>, widzieli już pewnie ten film:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/rhVm_A3eVv8&amp;hl=pl_PL&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/rhVm_A3eVv8&amp;hl=pl_PL&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
W którym przedstawiono nowe funkcjonalności, które pojawiły się w Windows7. W skrócie chodzi o to, że teraz system potrafi odczytywać stany dowolnych sensorów. Na powyższym filmiku, przedstawiono akcelerometr wykorzystany do sterowania samochodem w przykładzie edukacyjnym pobranym z oficjalnej strony XNA. Nie trudno sobie jednak wyobrazić np. wykorzystanie sensora do pomiaru tętna i dynamicznego dostosowywania poziomu trudności gry, lub intensywności akcji na ekranie, odwrotnie proporcjonalnie do szybkości bicia serca użytkownika. To jeden z przykładów, ale obecnie WinApi Windowsa, podobno, ma umożliwić na współpracę z dowolnymi sensorami zewnętrznymi.</p>
<p>Kolejny przykład: multi-touch na Windows 7:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/6Ekgr3SqMRA&amp;hl=pl_PL&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/6Ekgr3SqMRA&amp;hl=pl_PL&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Zatem początek 2010, zapowiada bardzo ciekawe nowości, które być może za kilka lat będą standardem, mimo, że teraz wydają się odległą przyszłością. Mam nadzieje, że tak się stanie, bo to również dla osób, które skupiają się wokół tych technologii, dobry znak, że warto inwestować w nie swój czas i wysiłek.</p>
<p>Jeżeli interesuje Was to co piszę, a piszę dla Was zbyt rzadko, zapraszam do śledzenia mnie na ww. serwisach mikroblogowych, gdzie znacznie częściej znaleźć można jakieś krótkie notki, szczególnie na tematy XNA&#8217;owe.</p>
<p>Na zdjęciu do wpisu widać kamerkę Project Natal (<a href="http://www.totalpcgaming.com/features/peter-molyneux-%E2%80%93-petering-out/">źródło</a>).</p>
<p>* Wolę określenie sensor, zamiast &#8222;czujnik&#8221; <img src='http://blog.poslinski.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/xna-co-na-horyzoncie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nowy rok</title>
		<link>http://blog.poslinski.net/nowy-rok/</link>
		<comments>http://blog.poslinski.net/nowy-rok/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 20:15:56 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[inne]]></category>
		<category><![CDATA[dyplom]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[offtopic]]></category>
		<category><![CDATA[uczelnia]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=516</guid>
		<description><![CDATA[Ten post nie będzie poruszał zbytnio tematów programistycznych, ale i na te przyjdzie znowu czas. Nowy rok zawitał też w moim życiu i przyznam szczerze, zaskoczył mnie bardzo pozytywnie. Dyplom W tym roku, a właściwie prawie w tym miesiącu, nadchodzi wielkimi krokami oddanie i nieco później obrona pracy dyplomowej. Przyznam szczerze, że w tej kwestii [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2010/01/nowyrok.jpg"><img class="aligncenter size-full wp-image-518" title="nowyrok" src="http://blog.poslinski.net/wp-content/uploads/2010/01/nowyrok.jpg" alt="" width="620" height="150" /></a>Ten post nie będzie poruszał zbytnio tematów programistycznych, ale i na te przyjdzie znowu czas. Nowy rok zawitał też w moim życiu i przyznam szczerze, zaskoczył mnie bardzo pozytywnie.<span id="more-516"></span></p>
<h2>Dyplom</h2>
<p>W tym roku, a właściwie prawie w tym miesiącu, nadchodzi wielkimi krokami oddanie i nieco później obrona pracy dyplomowej. Przyznam szczerze, że w tej kwestii wszystko idzie zgodnie z planem i praca dyplomowa już zbliża się ku ukończeniu. Jako ciekawostkę dla czytelników bloga, którzy przywykli do tematyki tutaj prezentowanej, dodam tylko, że temat mojej pracy ma wiele wspólnego z Microsoft XNA i częściowo, bądź też całkowicie zostanie pokazana światu po obronie.</p>
<h2>Niespodzianka</h2>
<p>Pod koniec 2009 roku, napisałem do <a title="IT Pro Ewangelist Microsoft Polska" href="http://ewangelista.it" target="_blank">Mariusza Kendziory</a> email&#8217;a (wcześniej pisałem również w komentarzach), o ewentualnych sugestiach co do bloga. Zasugerowałem pewne kosmetyczne zmiany, które w moim mniemaniu miały poprawić ogólny odbiór bloga Mariusza, który jak pewnie wielu z Was wie jest IT Pro Ewangelistą Microsoft w Polsce. Takie działanie z mojej strony wydało mi się oczywiste i przyznam szczerze, że dość rutynowe (nie żebym szukał na siłę błędów u innych, ale niewątpliwie zboczenie zawodowe, związane z tworzeniem stron, wdaje się we znaki czasem). Reakcja adresata była dla mnie mocno zaskakująca, albowiem Mariusz wysłał mi prezent od Microsoftu!</p>
<p>Przyznam szczerze, że nie jestem specjalnym wyznawcą Microsoftu mimo, że jako programista narzędzia firmy z Redmond mocno przypadły mi do gustu, ale jeżeli tacy ludzie jak Mariusz tworzą tą firmę, a wierzę że tak &#8211; to wizerunek Microsoft w mojej głowie bardzo się ocieplił.</p>
<p>Uprzedzając pytania, upominki od Mariusza (ja interpretowałem upominek jako coś małego, a nie uważam, te 2 książki za coś małego), zamieściłem w obrazku do tego wpisu(okładki).</p>
<p>Z tego miejsca chciałbym oficjalnie podziękować Mariuszowi i życzyć wszystkim produktywnego roku 2010. Jak to mówią, lepiej późno niż wcale, a wcześniej miałem problem znaleźć chwilę na napisanie tego wpisu, co mam nadzieje zostanie mi wybaczone.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/nowy-rok/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XNA: Detekcja stromych zboczy terenu</title>
		<link>http://blog.poslinski.net/xna-detekcja-stromych-zboczy-terenu/</link>
		<comments>http://blog.poslinski.net/xna-detekcja-stromych-zboczy-terenu/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 23:50:06 +0000</pubDate>
		<dc:creator>Dawid Pośliński</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[xna]]></category>
		<category><![CDATA[teren]]></category>

		<guid isPermaLink="false">http://blog.poslinski.net/?p=507</guid>
		<description><![CDATA[W wielu aplikacjach, gdzie napotyka się na problem generowania terenu, pojawia się problem detekcji, aby np. postać, którą stworzymy, nie mogła wychodzić na zbyt strome zbocza. Metod na rozwiązanie tego problemu jest kilka, ja postaram się tutaj przedstawić prostą i skuteczną, a przede wszystkim dość uniwersalną metodę, która w małych projektach powinna się doskonale sprawdzić.Postawione [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.poslinski.net/wp-content/uploads/2009/11/xna-zbocza-terenu.png"><img class="aligncenter size-full wp-image-511" title="xna-zbocza-terenu" src="http://blog.poslinski.net/wp-content/uploads/2009/11/xna-zbocza-terenu.png" alt="xna-zbocza-terenu" width="620" height="150" /></a>W wielu aplikacjach, gdzie napotyka się na problem generowania terenu, pojawia się problem detekcji, aby np. postać, którą stworzymy, nie mogła wychodzić na zbyt strome zbocza. Metod na rozwiązanie tego problemu jest kilka, ja postaram się tutaj przedstawić prostą i skuteczną, a przede wszystkim dość uniwersalną metodę, która w małych projektach powinna się doskonale sprawdzić.<span id="more-507"></span>Postawione przed nami zadanie, to na wygenerowanym z heightmap&#8217;y terenie, wykryć kiedy kolejny ruch naszego aktora (postaci, pojazdu itp.), nie będzie możliwy właśnie ze względu na przekroczenie stromości vertexa, w którego kierunku chcemy zmierzać. Do wygenerowania terrenu, wykorzystamy sample przygotowany przez twórców XNA: <a href="http://creators.xna.com/en-US/sample/collision3dheightmapnormals" target="_blank">Heightmap Collision with Normals</a>, który pozwoli wygenerować nam stosowny model terenu i wyliczy normal&#8217;e dla wszystkich vertexów.</p>
<p>Koncepcję, która przyjąłem, jest sprawdzanie, czy vertex w konkretnym punkcie, a właściwie normal do niego przypisany, jest nachylony do płaszczyzny pod odpowiednim kątem, który dobrany został eksperymentalnie (określony jest przez współczynnik i zależy od wielkości wygenerowanych vertexów i skali terenu).</p>
<p>Kluczem do wyliczania stromości, jest metoda, która jest składową klasy terrain (w moim przypadku dziedziczy po DrawableGameComponent i posiada jako składową, klasę HeightMapInfo z ww. przykładu), która to z kolei w zależności od spełnienia warunku stromości wyliczonego w ww. sposób, zwraca bool.</p>
<p>Jej postać jest następująca:</p>
<pre name="code" class="csharp">public bool bluff(Vector3 position)
        {
            Vector3 normal;
            heightMapInfo.GetHeightAndNormal(position, out position.Y, out normal);
            Vector3 angle;
            Vector3 plane = new Vector3(1, 0, 1);
            normal.Normalize();
            Vector3.Cross(ref plane, ref normal, out angle);
            angle.Normalize();

            if (Math.Abs(angle.Y) < 0.45f)
                return true;
            else
                return false;
        }
</pre>
<p>Użycie:</p>
<pre name="code" class="csharp">
// metoda update, reakcja na klawisz
if (terrain.heightMapInfo.IsOnHeightmap(newSpherePosition) &#038;&#038; terrain.bluff(newSpherePosition))
{
      // zmień pozycje i wykonaj opcjonalnie jakieś akcje
}
else
{
      // nie zmieniaj pozycji
}
</pre>
<p>Innymi metodami, które można zastosować w tym przypadku to mapa kolizji (rejonów po których można się poruszać bądź też nie), czy też np. podpięcie systemu fizyki, który wykonał by "brudną robotę" za nas. Zaletą tego rozwiązania oprócz prostoty, jest jego automatyka - raz zaimplemetowany, działa zawsze. Jestem pewien, że można by jeszcze udoskonalić zaprezentowaną metodę, zatem zainteresowanych zachęcam do przedstawienia swoich metod rozwiązania tego problemu, w komentarzach.</p>
<p>Fotografia: [ <a href="http://www.flickr.com/photos/ilker/2494733608/" target="_blank">Link</a> ]</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.poslinski.net/xna-detekcja-stromych-zboczy-terenu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
