<?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>Kubiczek devblog</title>
	<atom:link href="http://blog.kubiczek.eu/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kubiczek.eu</link>
	<description>I&#039;m lovin&#039; it ;)</description>
	<lastBuildDate>Thu, 19 Jan 2012 12:09:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>My (very short) experience with startMonitoringForRegion method</title>
		<link>http://blog.kubiczek.eu/2012/01/my-very-short-experience-with-startmonitoringforregion-method/</link>
		<comments>http://blog.kubiczek.eu/2012/01/my-very-short-experience-with-startmonitoringforregion-method/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 12:07:46 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=445</guid>
		<description><![CDATA[Since iOS 4.0 there is cool method in CoreLocation framework: - (void)startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy that can send events (even while application is in background) when phone is entering or leaving specified area. But there are two &#8220;small&#8221; disadvantages: 1) Works only on iphone 4 and newer 2) It&#8217;s based on cell position (not GPS!) so [...]]]></description>
			<content:encoded><![CDATA[<p>Since iOS 4.0 there is cool method in CoreLocation framework: </p>
<p>- (void)startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy</p>
<p>that can send events (even while application is in background) when phone is entering or leaving specified area.</p>
<p>But there are two &#8220;small&#8221; disadvantages:</p>
<p>1) Works only on iphone 4 and newer<br />
2) It&#8217;s based on cell position (not GPS!) so accuracy is about houndreds of meters</p>
<p>Could be so beautiful.. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2012/01/my-very-short-experience-with-startmonitoringforregion-method/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSL connection lag on Android</title>
		<link>http://blog.kubiczek.eu/2011/11/ssl-connection-lag-on-android/</link>
		<comments>http://blog.kubiczek.eu/2011/11/ssl-connection-lag-on-android/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 08:21:38 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=439</guid>
		<description><![CDATA[While I was developing a Homer application for Android, I met frustrating problem with delays on ssl connection. Homer uses ssl for every http request, so I decided use HttpsURLConnection class for this job. Everything was fine until you run Homer in LAN without access to internet. Than, unexpectedly, every request started taking about 5 [...]]]></description>
			<content:encoded><![CDATA[<p>While I was developing a Homer application for Android, I met frustrating problem with delays on ssl connection. Homer uses ssl for every http request, so I decided use <a href="http://developer.android.com/reference/javax/net/ssl/HttpsURLConnection.html">HttpsURLConnection</a> class for this job. Everything was fine until you run Homer in LAN without access to internet. Than, unexpectedly, every request started taking about 5 to 10 seconds. If you connect the internet, everything was fine back.</p>
<p>I resigned from HttpsUrlConnection and made directly communication using sockets. However, it didn&#8217;t solve problem &#8211; every call to <a href="http://developer.android.com/reference/javax/net/ssl/SSLSocket.html#getSession()">SSLSocket.getSession()</a> took the same 5 to 10 seconds as before. </p>
<p>Finaly, I found solution. There is a bug in Android prior to 4.0 version, which makes reverse DNS lookup for every https request. So, when you have no access to dns servers, it takes long time. To fix problem you can use code from:</p>
<p><a href="http://code.google.com/p/android/issues/detail?id=13117#c14">http://code.google.com/p/android/issues/detail?id=13117#c14</a></p>
<p>Voila!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2011/11/ssl-connection-lag-on-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Galaxy Tab 10.1 and DatagramSocket problem</title>
		<link>http://blog.kubiczek.eu/2011/09/galaxy-tab-10-1-and-datagramsocket-problem/</link>
		<comments>http://blog.kubiczek.eu/2011/09/galaxy-tab-10-1-and-datagramsocket-problem/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 17:01:55 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=431</guid>
		<description><![CDATA[While working with sockets on Android you may face the problem with InvalidArgumentException thrown when you try to create a new instance of DatagramSocket: InetSocketAddress bindInetAddr = new InetSocketAddress(bindAddr, bindPort); DatagramSocket ssdpUniSock = new DatagramSocket(bindInetAddr); The second line causes InvalidArgumentException error. Fortunately, the solution exists and is quite simple. Instead of creating an instance of [...]]]></description>
			<content:encoded><![CDATA[<p>While working with sockets on Android you may face the problem with InvalidArgumentException thrown when you try to create a new instance of DatagramSocket:</p>
<p><code>InetSocketAddress bindInetAddr = new InetSocketAddress(bindAddr, bindPort);<br />
DatagramSocket ssdpUniSock = new DatagramSocket(bindInetAddr);</code></p>
<p>The second line causes InvalidArgumentException error. Fortunately, the solution exists and is quite simple. Instead of creating an instance of <a href="http://developer.android.com/reference/java/net/DatagramSocket.html">DatagramSocket</a>, you can obtain in from <a href="http://developer.android.com/reference/java/nio/channels/DatagramChannel.html">DatagramChannel</a> and then bind an address:</p>
<p><code>DatagramChannel channel = DatagramChannel.open();<br />
DatagramSocket ssdpUniSock = channel.socket();<br />
InetSocketAddress bindInetAddr = new InetSocketAddress(bindAddr, bindPort);<br />
ssdpUniSock.bind(bindInetAddr);<br />
</code></p>
<p>Voila, done!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2011/09/galaxy-tab-10-1-and-datagramsocket-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Warsztat programisty Androida</title>
		<link>http://blog.kubiczek.eu/2011/07/warsztat-programisty-androida/</link>
		<comments>http://blog.kubiczek.eu/2011/07/warsztat-programisty-androida/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 09:25:45 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Praca, projekty, portfolio]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=424</guid>
		<description><![CDATA[Tak się jakoś złożyło, że ostatnio w moim mobilnym warsztacie zebrało się całkiem sporo różnorakiego sprzętu, który świetnie sprawdza się w jednym praktycznym zastosowaniu: testy, testy, testy &#8211; każde z tych urządzeń jest niepowtarzalne i zapewnia zupełnie odmienne “doznania” dla użytkownika. Oto i one: Poniżej krótki opis widocznych na zdjęciu urządzeń, zaczynając od lewej strony: [...]]]></description>
			<content:encoded><![CDATA[<p>Tak się jakoś złożyło, że ostatnio w moim mobilnym warsztacie zebrało się całkiem sporo różnorakiego sprzętu, który świetnie sprawdza się w jednym praktycznym zastosowaniu: testy, testy, testy &#8211; każde z tych urządzeń jest niepowtarzalne i zapewnia zupełnie odmienne “doznania” dla użytkownika. Oto i one:</p>
<p><img src="https://lh3.googleusercontent.com/-4RdzL06CT-8/Thmu-SkkcVI/AAAAAAAAFb4/ulhZHNWfh94/s800/IMG_4993.jpg" alt="Stajnia Adama" style="width:570px" /></p>
<p>Poniżej krótki opis widocznych na zdjęciu urządzeń, zaczynając od lewej strony:</p>
<p>Od razu na początek interesująca ciekawostka: “devopment platform” od Qualcomma. Zbudowany na jednordzeniowym procesorze Snapdragon MSM8655 taktowanym zegarem 1.2GHz i z 1GB RAM w środku, na zewnątrz wygląda jak prototyp smartfona z końca ubiegłego wieku (brakuje tylko wystającej antenki). Pozory jednak mylą i jest to niezła, zeszłoroczna maszyna z systemem w wersji 2.3. No ale w kieszeni się nie mieści :)</p>
<p>Kolejny smartphone, Galaxy S, charakteryzuje się tak jak i inne produkty Samsunga kiepsko działającym automatycznym dostosowywaniem jasności ekranu. Jasność ekranu zmienia się co chwilę w zbyt dużym zakresie i jak dla mnie jedynym prawidłowym rozwiązaniem jest wyłączenie tej funkcji. Jednak sam ekran to już inna bajka &#8211; 4”, 480x800px i cukierkowa kolorystyka &#8211; po prostu super! Aktualnie używam tego telefonu na co dzień, i sprawdza się prawie tak dobrze jak&#8230; iPhone 3GS w którym niestety ducha wyzionął moduł GSM. </p>
<p>Trzeci telefon, to jednocześnie pierwszy smartphone, jaki wszedł w moje posiadanie i na którym zaczynałem realizować swoje pierwsze projekty. Samsung Galaxy Spica (i5700) &#8211; zaktualizowany do systemu 2.1 i z ekranem o rozdzielczości 320x480px. Dosyć słabe urządzonko na którym android wyraźnie się dusi i krztusi, ale dzięki temu, pisząc soft, baczniejszą uwagę zwraca się na kwestie optymalizacji.</p>
<p>Kolejny model to HTC Wildfire z systemem 2.2, który w odróżnieniu od Samsunga S, w celu korzystania z radia FM nie wymaga włożonej karty SIM (SIC!!!). Choć sama jakość odbiornika jest bardzo niska, Samsung w tym samym miejscu odbiera dużo lepszy sygnał. Jak na niepozorny wygląd, telefon te działa całkiem żwawo &#8211; wydaje się, że nawet sprawniej od i5700. Być może wynika to z niewielkiego ekranu o rozdzielczości 240x320px i przekątnej 3.2”, dzięki któremu jest mniej pikseli do rysowania :)</p>
<p>Pora na Chińską zabawkę z okrągłym przyciskiem (Apple nie pozwie o to producenta?) i piękną obudową w kolorze kości słoniowej. Mini tablet o przekątnej 6.9” napędzany przez Androida w wersji 1.6 działającym na 128MB Ramu, a za “feeling” i interakcje z użytkownikiem odpowiada opornościowy(!) ekran dotykowy pracujący w rozdzielczości.. hmm, nie wiem jakiej. Co ciekawe okrągły przycisk na obudowie jest JEDYNYM fizycznym przyciskiem w tym urządzeniu (nie ma on przycisku włączenia, blokady, powrotu, głośności ani żadnych innych). Idea Jobsa stała się realna dzięki chińczykom :) Ale tak czy siak, toporna to maszyna, baaardzo toporna.</p>
<p>No i w końcu “gwiazda wieczoru” czyli tablet mogący śmiało konkurować z Ipadem2: Samsung Galaxy Tab 10.1 z systemem 3.1. Wszystko świetnie, tylko dlaczego nie ma on wbudowanego normalnego portu micro-USB? Znowu kolejny rodzaj kabelka niezbędny na podorędziu. A tabletu nie trzeba opisywać &#8211; jest prawie tak dobry jak to piszą w internecie, jednak płynność interfejsu użytkownika wciąż pozostaje w tyle za pierwszym ipadem.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2011/07/warsztat-programisty-androida/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Epe Eater &#8211; rośnie popularność, również wśród piratów</title>
		<link>http://blog.kubiczek.eu/2010/12/epe-eater-rosnie-popularnosc-rowniez-wsrod-piratow/</link>
		<comments>http://blog.kubiczek.eu/2010/12/epe-eater-rosnie-popularnosc-rowniez-wsrod-piratow/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 23:26:30 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Artykuły i felietony]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=420</guid>
		<description><![CDATA[Informacja o wydanej przed 48h godzinami grze Epe Eater, została już zaindeksowana w wielu miejscach przez google. Co ciekawe, w pierwszej kolejności pirackie kopie pojawiły się na forach.. polskojęzycznych. Trochę to smutne. No tak, tylko kto pierwszy rzuci kamieniem?]]></description>
			<content:encoded><![CDATA[<p>Informacja o wydanej przed 48h godzinami grze Epe Eater, została już zaindeksowana w wielu miejscach przez google.<br />
Co ciekawe, w pierwszej kolejności pirackie kopie pojawiły się na forach.. polskojęzycznych. Trochę to smutne.</p>
<p>No tak, tylko kto pierwszy rzuci kamieniem?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2010/12/epe-eater-rosnie-popularnosc-rowniez-wsrod-piratow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Epe Eater</title>
		<link>http://blog.kubiczek.eu/2010/12/epe-eater/</link>
		<comments>http://blog.kubiczek.eu/2010/12/epe-eater/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 11:02:38 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Praca, projekty, portfolio]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=398</guid>
		<description><![CDATA[Za górami, za lasami, hen w dalekiej krainie żyła sobie wesoła jaszczurka o imieniu Epe. Jak wszystkie jaszczurki z tej krainy, Epe uwielbiała wcinać kurczaki. Czerwone kurczaki, zielone kurczaki, niebieskie kurczaki. Czarne i kolczaste kurczaki trochę mniej. Różowych wcale. Wiodła spokojny żywot aż w końcu trafiła na ekrany telefonów. Z dumą prezentuję pierwszą własną produkcję [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.kubiczek.eu/wp-content/uploads/2010/12/icon_512x512-150x150.png" alt="icon_512x512" title="icon_512x512" width="150" height="150" class="alignleft size-thumbnail wp-image-408" /> Za górami, za lasami, hen w dalekiej krainie żyła sobie wesoła jaszczurka o imieniu Epe. Jak wszystkie jaszczurki z tej krainy, Epe uwielbiała wcinać kurczaki. Czerwone kurczaki, zielone kurczaki, niebieskie kurczaki. Czarne i kolczaste kurczaki trochę mniej.  Różowych wcale. </p>
<p>Wiodła spokojny żywot aż w końcu trafiła na ekrany telefonów.</p>
<p>Z dumą prezentuję pierwszą własną produkcję na telefony z systemem android – gra Epe Eater, do znalezienia w oficjalnym markecie w promocyjnej cenie $1.99. Będąca remakiem klasyki z PRLu, została wydana ponownie na miarę XXI wieku. „To prawdziwy łamacz palców, po którym długo będziesz leczył obolałe stawy. Czeka na Ciebie kilkadziesiąt poziomów, globalny ranking graczy, świetna muzyka i wielka przygoda.”</p>
<p><img src="http://blog.kubiczek.eu/wp-content/uploads/2010/12/screen1.jpg" alt="Epe Eater" title="Epe Eater" width="480" height="320" class="aligncenter size-full wp-image-404" /><img src="http://blog.kubiczek.eu/wp-content/uploads/2010/12/screen2.jpg" alt="Epe Eater  - gra na androida" title="Epe Eater  - gra na androida" width="480" height="320" class="aligncenter size-full wp-image-405" /></p>
<p>Gra została wydana pod szyldem świeżo powołanej marki Shakescreen, czyli kooperacji świetnego grafika i równie świetnego programisty. Jak to mówią – firma mała ale jara. :)</p>
<p>Aktualnie trwają prace nad wersją na telefony iPhone, jak i rozważania nad wydaniem wersji pod Windows Phone 7<del datetime="2010-12-14T11:28:45+00:00"> Phone</del>.</p>
<div style="width:425px;margin:0px auto;">

<object style="width:425px; height:344px;">
<param name="movie" value="http://www.youtube.com/v/emm8gakhx7U?version=3" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="window" />
<embed src="http://www.youtube.com/v/emm8gakhx7U?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" wmode="window" width="425" height="344"></object>

</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2010/12/epe-eater/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wystartowała konkurencja Allegro!</title>
		<link>http://blog.kubiczek.eu/2010/11/wystartowala-konkurencja-allegro/</link>
		<comments>http://blog.kubiczek.eu/2010/11/wystartowala-konkurencja-allegro/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 10:05:31 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Praca, projekty, portfolio]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=392</guid>
		<description><![CDATA[W końcu na rodzimym rynku pojawiła się rzeczywista konkurencja dla wiodącej platformy aukcyjnej ;) W serwisie www.aukcja-gogosy.pl można wziąć udział w licytacji unikalnych przedmiotów, które każdy kolekcjoner z ambicjami powinien posiadać w swojej kolekcji. Dobra, koniec żartów :) Chociaż nowy serwis wizerunkowy dla Real, to faktycznie aukcje internetowe: ..to jednak użytkownicy nie mogą wystawiać na [...]]]></description>
			<content:encoded><![CDATA[<p>W końcu na rodzimym rynku pojawiła się rzeczywista konkurencja dla wiodącej platformy aukcyjnej ;) W serwisie <a href="http://www.aukcja-gogosy.pl">www.aukcja-gogosy.pl</a> można wziąć udział w licytacji unikalnych przedmiotów, które każdy kolekcjoner z ambicjami powinien posiadać w swojej kolekcji.</p>
<p>Dobra, koniec żartów :) Chociaż nowy serwis wizerunkowy dla Real, to faktycznie aukcje internetowe:</p>
<p><img src="http://blog.kubiczek.eu/wp-content/uploads/2010/11/gogosy.jpg" alt="gogosy" title="gogosy" width="510" height="394" class="aligncenter size-full wp-image-394" /></p>
<p>..to jednak użytkownicy nie mogą wystawiać na nich swoich przedmiotów, ale mogą wziąć udział w licytacji Gogosów, wygrywając je za punkty payback. W tym projekcie byłem odpowiedzialny za projekt bazy danych jak i wykonanie całego backendu. Stroną wizualną zajęli się koledzy z S4. Zapraszam do zabawy! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2010/11/wystartowala-konkurencja-allegro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kwestia GIODO &#8211; jak postępować z danymi osobowymi</title>
		<link>http://blog.kubiczek.eu/2010/09/kwestia-giodo-jak-postepowac-z-danymi-osobowymi/</link>
		<comments>http://blog.kubiczek.eu/2010/09/kwestia-giodo-jak-postepowac-z-danymi-osobowymi/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 20:44:00 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Artykuły i felietony]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=383</guid>
		<description><![CDATA[W sierpniu, na własne potrzeby, opracowałem wytyczne dotyczące technicznych aspektów postępowania ze zbiorami danych osobowych, przetwarzanymi w serwisach internetowych. Wnioski, którymi się teraz z wami dzielę, zostały wyciągnięte na podstawie analizy ustaw, komentarzy prawników i przedstawicieli GIODO, oraz dostępnych w sieci opinii. Nie prezentuję tam prawniczych dywagacji, ale kwintesencję tego co istotne z mojego punktu [...]]]></description>
			<content:encoded><![CDATA[<p>W sierpniu, na własne potrzeby, opracowałem wytyczne dotyczące technicznych aspektów postępowania ze zbiorami danych osobowych, przetwarzanymi w serwisach internetowych. Wnioski, którymi się teraz z wami dzielę, zostały wyciągnięte na podstawie analizy ustaw, komentarzy prawników i przedstawicieli GIODO, oraz dostępnych w sieci opinii. Nie prezentuję tam prawniczych dywagacji, ale kwintesencję tego co istotne z mojego punktu widzenia i co może być użyteczne dla innych osób świadczących usługi w internecie.</p>
<p>Pełną wersję dokumentu <a href="http://kubiczek.eu/pliki/Giodo%20-%20przeglad%20zagadnien%20technicznych.pdf">można pobrać tutaj</a> w formacie PDF. Poniżej prezentuję kilka wybranych zagadnień:</p>
<p><strong>Czy adres email jest daną osobową?</strong><br />
Zgodnie z interpretacją GIODO sprawa jest jasna: adres email może być uznany za daną osobową, gdy pozwala na zidentyfikowanie osoby fizycznej. Przykładem adresu pozwalającego na identyfikację jest adres w formacie imie.nazwisko@nazwafirm.pl.<br />
Internauci cały czas toczą polemikę w tym temacie, jednak stanowisko urzędników jest niezmienne, a co więcej, logicznie umocowane w ustawie.</p>
<p><strong>Czy zbiór adresów email należy zgłaszać jako bazę danych osobowych?</strong><br />
Jak ustaliliśmy, email może być daną osobową. Jeżeli nie jesteśmy w stanie zapewnić, że w tworzonym zbiorze nie pojawi się adres, który spełni taki warunek, to zbiór adresów email powinien być zgłaszany do GIODO i podlegać wymaganiom ustawy. Można wyobrazić sobie, automatyczną i ręczną weryfikację adresów, przed ich dodaniem do bazy, jednak nieżyciowość takiego rozwiązania jest oczywista.</p>
<p><strong>Zabezpieczenie zbioru danych osobowych.</strong><br />
Minister, w rozporządzeniu o bardzo długiej nazwie (Dz.U. 2004 nr 100 poz. 1024) wydzielił trzy poziomy bezpieczeństwa systemów informatycznych, przy czym poziom podstawowy (najniższy) stosuje się tylko w przypadku, gdy w systemie nie są przetwarzane dane osobowe – a więc nie pozostaje on w zakresie naszych rozważań.<br />
Interesuje nas natomiast poziom podwyższony i wysoki. Poziom podwyższony powinien być stosowany w przypadku gdy system informatyczny, nie jest połączony z siecią publiczną – co w przypadku aplikacji www jest rzadko spotykane (często nawet sieci firmowe czy inne wewnętrzne, mają punkty styku z siecią publiczną), a poziom wysoki, gdy system jest połączony z siecią publiczną.</p>
<p><strong>Ochrona danych, a hosting współdzielony</strong><br />
Istnieje powszechna opinia, jakoby w żadnym przypadku nie było możliwości spełnienia wymogów bezpieczeństwa na hostingu współdzielonym – gdzie obok naszej aplikacji, uruchomionych są dziesiątki innych, a na serwer logują się zupełnie nieznane osoby. Ustawa ani rozporządzenie jednak nie stawiają precyzyjnych wymogów w tej materii, mówią natomiast że rozwiązania z zakresu ochrony danych powinny być dostosowane do zagrożeń oraz kategorii tych danych. W szczególności dane muszą być zabezpieczone przed udostępnianiem, zmianą czy ich utratą. Wydaje się, że poprawnie skonfigurowany serwer obsługujący hosting współdzielony, spełnia te wymagania, co więcej serwery utrzymywane w poważnych centrach danych, którymi operują duże firmy hostingowe, mają szansę być lepiej zabezpieczone niż przypadkowy serwer dedykowany, zarządzany przez niewprawnego administratora. Tak więc zakładam osobiście (nie jest to opinia prawnicza, ale techniczna), że dla wielu typowych rozwiązań (sklepik internetowy, forum itp.) w razie kontroli GIODO można skutecznie obronić się z wykorzystania takiego hostingu. Zadbać należy tylko o wybór sprawdzonego hostingodawcy, z jasną polityką bezpieczeństwa i klarownymi<br />
zasadami tworzenia i odzyskiwania kopii zapasowych oraz, opcjonalnie przeprowadzić z zewnątrz test bezpieczeństwa a jego wyniki zachować na wypadek kontroli.</p>
<p><a href="http://kubiczek.eu/pliki/Giodo%20-%20przeglad%20zagadnien%20technicznych.pdf">Pobierz pełną wersję dokumentu w formacie PDF.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2010/09/kwestia-giodo-jak-postepowac-z-danymi-osobowymi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pot i kreff.. Nowy program lojalnościowy SUPER-PHARM Apteka!</title>
		<link>http://blog.kubiczek.eu/2010/08/pot-i-kreff-nowy-program-lojalnosciowy-super-pharm-apteka/</link>
		<comments>http://blog.kubiczek.eu/2010/08/pot-i-kreff-nowy-program-lojalnosciowy-super-pharm-apteka/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 21:27:33 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Praca, projekty, portfolio]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=374</guid>
		<description><![CDATA[W trudzie i znoju, ale ostatecznie z sukcesem uruchomiliśmy nowy program lojalnościowy dla SUPER-PHARMu. Cały projekt składał się z kilku warstw i pracowało przy nim, oprócz S4, także kilka innych firm. Ja sam w tym projekcie byłem odpowiedzialny za stworzenie serwisu WWW programu, jego wersji dla kiosków multimedialnych oraz mechanizmów wymieniających dane z bazą sklepu, [...]]]></description>
			<content:encoded><![CDATA[<p>W trudzie i znoju, ale ostatecznie z sukcesem uruchomiliśmy nowy program lojalnościowy dla SUPER-PHARMu. Cały projekt składał się z kilku warstw i pracowało przy nim, oprócz S4, także kilka innych firm. </p>
<p>Ja sam w tym projekcie byłem odpowiedzialny za stworzenie serwisu WWW programu, jego wersji dla kiosków multimedialnych oraz mechanizmów wymieniających dane z bazą sklepu, hostowaną w &#8220;zasobach zewnętrznych&#8221;.</p>
<p><a href="http://www.klublifestyle.pl/" target="_blank"><img src="http://blog.kubiczek.eu/wp-content/uploads/2010/08/lifestyle.jpg" alt="lifestyle" title="lifestyle" width="510" height="334" class="aligncenter size-full wp-image-375" /></a></p>
<p>Projekt, od strony technicznej można określić jako średnio-skomplikowany, ale od strony organizacyjnej.. cóż, mnóstwo zdobytego doświadczenia :)<br />
Przy okazji zdobywania &#8211; zdobyłem również wiele ciekawej wiedzy na temat oferowanych w Polsce hostingów, przez tzw. &#8220;wiodących dostawców usług internetowych&#8221; i ich zapatrywania się na klientów. Ale to już temat na oddzielny post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2010/08/pot-i-kreff-nowy-program-lojalnosciowy-super-pharm-apteka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Androida zabawy z wibratorem</title>
		<link>http://blog.kubiczek.eu/2010/07/androida-zabawy-z-wibratorem/</link>
		<comments>http://blog.kubiczek.eu/2010/07/androida-zabawy-z-wibratorem/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 21:17:53 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=370</guid>
		<description><![CDATA[Zagadka. Jak w naszym programie dostać się do sterowania wibratorem? Krótkie poszukiwania i znajdujemy klasę android.os.Vibrator, ale nie ma ona publicznego konstruktora, a więc utworzenie obiektu w ten sposób: Vibrator v = new Vibrator&#40;&#41;; się nie powiedzie. Aby otrzymać obiekt Vibrator, potrzebujemy użyć metody getSystemService, którą znajdziemy w klasie android.content.Context. Vibrator v = &#40;Vibrator&#41; context.getSystemService&#40;Context.VIBRATOR_SERVICE&#41;; [...]]]></description>
			<content:encoded><![CDATA[<p>Zagadka. Jak w naszym programie dostać się do sterowania wibratorem? Krótkie poszukiwania i znajdujemy klasę <code>android.os.Vibrator</code>, ale nie ma ona publicznego konstruktora, a więc utworzenie obiektu w ten sposób:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">Vibrator v <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Vibrator<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>się nie powiedzie. Aby otrzymać obiekt Vibrator, potrzebujemy użyć metody <code>getSystemService</code>, którą znajdziemy w klasie <a href="http://developer.android.com/reference/android/content/Context.html">android.content.Context</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">Vibrator v <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Vibrator<span style="color: #009900;">&#41;</span> context.<span style="color: #006633;">getSystemService</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span>.<span style="color: #006633;">VIBRATOR_SERVICE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Ale to nie wszystko, jeżeli nie chcemy otrzymać wyjątku na klatę, powinniśmy w pliku AndroidManifest.xml zaznaczyć, że aplikacja będzie używała wibratora. W tym celu do tego pliku dopisujemy:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-permission</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.permission.VIBRATE&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Dla jasności cały przykładowy plik AndroidManifest.xml:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;manifest</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">package</span>=<span style="color: #ff0000;">&quot;kubik.game.antris&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">android:versionCode</span>=<span style="color: #ff0000;">&quot;1&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">android:versionName</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-permission</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.permission.VIBRATE&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;application</span> <span style="color: #000066;">android:icon</span>=<span style="color: #ff0000;">&quot;@drawable/icon&quot;</span> <span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span> <span style="color: #000066;">android:debuggable</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Antris&quot;</span></span>
<span style="color: #009900;">                  <span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span></span>
<span style="color: #009900;">				  <span style="color: #000066;">android:theme</span>=<span style="color: #ff0000;">&quot;@android:style/Theme.NoTitleBar.Fullscreen&quot;</span></span>
<span style="color: #009900;">				  <span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-sdk</span> <span style="color: #000066;">android:minSdkVersion</span>=<span style="color: #ff0000;">&quot;7&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/uses-sdk<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/manifest<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Zrobione. Teraz już możemy wibrować:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">Vibrator v <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Vibrator<span style="color: #009900;">&#41;</span> context.<span style="color: #006633;">getSystemService</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span>.<span style="color: #006633;">VIBRATOR_SERVICE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
v.<span style="color: #006633;">vibrate</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//wibruj pół sekundy</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2010/07/androida-zabawy-z-wibratorem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

