<?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>Damian Szymczuk</title>
	<atom:link href="http://dszymczuk.pl/feed/" rel="self" type="application/rss+xml" />
	<link>http://dszymczuk.pl</link>
	<description>Programista, projektant,  wykonawca aplikacji internetowych</description>
	<lastBuildDate>Thu, 26 Apr 2012 12:30:26 +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>Thunderbird &#8211; kopia kontaktów online</title>
		<link>http://dszymczuk.pl/2012/thunderbird-kopia-kontaktow-online/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=thunderbird-kopia-kontaktow-online</link>
		<comments>http://dszymczuk.pl/2012/thunderbird-kopia-kontaktow-online/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 12:30:26 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Programy]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=540</guid>
		<description><![CDATA[Korzystanie z dwóch komputerów jest coraz bardziej powszechne. Największym problemem przy takim rodzaju pracy jest synchronizacja danych pomiędzy komputerami. Rozwiązań na ten problem jest mnóstwo: pendrive, dyski zewnętrzne, serwery FTP czy aplikacje działające w chmurze typu Dropbox. W tym wpisie &#8230; <a href="http://dszymczuk.pl/2012/thunderbird-kopia-kontaktow-online/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Korzystanie z dwóch komputerów jest coraz bardziej powszechne. Największym problemem przy takim rodzaju pracy jest synchronizacja danych pomiędzy komputerami. Rozwiązań na ten problem jest mnóstwo: pendrive, dyski zewnętrzne, serwery FTP czy aplikacje działające w chmurze typu Dropbox.</p>
<p>W tym wpisie chcę pokazać jak wykorzystać Dropboxa do synchronizacji kontaktów z programu pocztowego Thunderbird. Dlaczego chcę synchronizować?</p>
<p>Kilka przyczyn:</p>
<ol>
<li>Lubię mieć porządek w kontaktach i na komputerach</li>
<li>Chcę mieć pod ręką wszystkie adresy</li>
<li>Chcę mieć takie same książki adresowe, żeby nie okazało się, że na jednym komputerze mam adres, a na innym nie</li>
<li>Chcę, aby nadawca wyświetlał się tak jak ja chce</li>
</ol>
<p>Chyba wystarczająco dużo powodów. Więc do roboty&#8230;</p>
<p><span id="more-540"></span>Zadanie jest dość proste, ale czasochłonne w zależności od ilości danych jakie posiadamy (ilość zapisanych adresów) oraz jak bardzo chcemy mieć je szczegółowe.</p>
<p>Co potrzebujemy:</p>
<ol>
<li>Thunderbird&#8217;a <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Dropbox&#8217;a <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Wtyczkę <a href="https://addons.mozilla.org/pl/thunderbird/addon/thundersync/" target="_blank">ThunderSync</a></li>
<li>Trochę wolnego czasu</li>
</ol>
<p>Teraz przechodzimy do czynów. Utworzyłem sobie nową książkę, do której wrzucę aktualne swoje kontakty. W niej zapiszę sobie adresy w sposób jaki chcę, aby mi się wyświetlały. Po tym wszystkim przechodzę do ustawień ThunderSync:</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2012/04/2012-04-26_140604.png"><img class="aligncenter size-medium wp-image-543" title="2012-04-26_140604" src="http://dszymczuk.pl/wp-content/uploads/2012/04/2012-04-26_140604-300x208.png" alt="" width="300" height="208" /></a>Jak widać dla każdej książki możemy ustawić inne parametry. Moją zbiorczą książką jest Adresy mailowe. Do niej powrzucałem wszystkie potrzebne kontakty. Teraz z menu po lewej wybieramy naszą książkę adresową, a po prawej wybrane opcje. Format w jakim będę eksportował to vCard. Dzięki temu można wykorzystać te dane do innych celów.</p>
<p>Następnie wskazałem folder, do którego ma zapisać kontakty. Jest to oczywiście nowo utworzony folder na Dropbox&#8217;ie.</p>
<p>Teraz trzeba wybrać akcje, jakie mają być w trakcie uruchamiania, zamykania i działania Thunderbird&#8217;a. Ja ustawiłem, że na początku ma zaimportować dane, a na końcu wyeksportować je. Jednak, jeśli dane się nie zmieniły, to żaden monit o akcje nie zostanie wyświetlony.</p>
<p>Jeśli jednak coś się zmieniło, to pojawi się okienko ze zmianami:</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2012/04/2012-04-26_140533.png"><img class="aligncenter size-medium wp-image-544" title="2012-04-26_140533" src="http://dszymczuk.pl/wp-content/uploads/2012/04/2012-04-26_140533-300x277.png" alt="" width="300" height="277" /></a></p>
<p>Teraz wybieramy opcję Compare, aby porównać wpisy. Jeśli jesteśmy gotowi do synchronizacji to klikamy na Synchronise, a wtyczka utworzy nam pliki kontaktów w folderze na Dropbox&#8217;ie. Teraz musimy tylko poczekać, aż zsynchronizuje się folder z Dropbox&#8217;em i już mamy przenośną książkę adresową <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Na drugim komputerze należy zrobić to samo porównując zapisane adresy z tymi z Dropbox&#8217;a.</p>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2012/thunderbird-kopia-kontaktow-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZF &#8211; kodowanie dla filtra StringToLower</title>
		<link>http://dszymczuk.pl/2012/zf-kodowanie-dla-filtra-stringtolower/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zf-kodowanie-dla-filtra-stringtolower</link>
		<comments>http://dszymczuk.pl/2012/zf-kodowanie-dla-filtra-stringtolower/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 22:14:22 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=526</guid>
		<description><![CDATA[Tym razem krótki wpis o tym, jak starciem 4 godziny na znalezieniu błędu związanego z kodowaniem. Krótko w czym rzecz&#8230; Podpinałem mapy Google do formularza Zend. Zadanie proste &#8211; wpisuje nazwę ulicy, a zwracana jest długość i szerokość geograficzna. Wszystko &#8230; <a href="http://dszymczuk.pl/2012/zf-kodowanie-dla-filtra-stringtolower/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tym razem krótki wpis o tym, jak starciem 4 godziny na znalezieniu błędu związanego z kodowaniem. Krótko w czym rzecz&#8230; Podpinałem mapy Google do formularza Zend. Zadanie proste &#8211; wpisuje nazwę ulicy, a zwracana jest długość i szerokość geograficzna. Wszystko pięknie działa napisane w JS. Teraz następuje wysłanie formularza, odbiór danych i przekazanie ich do modelu. Jakie było moje zdziwienie, kiedy w modelu zamiast polskich znaków wyskoczyły krzaczki-pytajniki.</p>
<p>Jak to rozwiązać?<span id="more-526"></span>Moja pierwsza myśl &#8211; błędne kodowanie pliku. Sprawdzam, jednak UTF8 (tekst zapisany w pliku jako echo wyświetlał polskie znaki).</p>
<p>Druga myśl &#8211; mapy Google zwracają w innym kodowaniu &#8211; po za komentowaniu całego kody związanego z mapami błąd nadal występował.</p>
<p>Trzecia myśl &#8211; coś z formularzem w Zendzie. Także zacząłem komentować wpisy związane z tym elementem. Nagle po za komentowaniu filtrów zaczęły występować polskie znaki. Tak więc stopniowo od wcementowywałem i znalazłem winnego &#8211; filtr StringToLower.</p>
<p>Rozwiązanie?</p>
<p>Bardzo proste <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Wystarczyło sięgnąć do <a title="dokumentacji Zend" href="http://framework.zend.com/manual/en/zend.filter.set.html#zend.filter.set.stringtolower" target="_blank">dokumentacji Zend</a>, dodać w konstruktorze obiektu-filtra kodowanie i wszystko działa jak należy <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="brush: php; ruler: true; highlight: [2];">$street-&gt;addFilters(array(
            new Zend_Filter_StringToLower('UTF-8'),
            new Zend_Filter_StringTrim(),
            new Zend_Filter_StripNewlines(),
            new Zend_Filter_StripTags()
        ));</pre>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2012/zf-kodowanie-dla-filtra-stringtolower/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZF &#8211; Weryfikacja unikalności adresu e-mail w bazie danych</title>
		<link>http://dszymczuk.pl/2012/weryfikacja-unikalnosci-adresu-e-mail-w-bazie-danych/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=weryfikacja-unikalnosci-adresu-e-mail-w-bazie-danych</link>
		<comments>http://dszymczuk.pl/2012/weryfikacja-unikalnosci-adresu-e-mail-w-bazie-danych/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 13:06:41 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=516</guid>
		<description><![CDATA[Kolejne doświadczenie &#8211; kolejny wpis Tym razem zmierzymy się z czymś, co każdy programista musi zaimplementować podczas tworzenia formularza do rejestracji użytkowników. Jest to weryfikacja nazwy bądź adresu e-mail nowego użytkownika w celu unikalności nazwy. Można rozwiązać to na kilka &#8230; <a href="http://dszymczuk.pl/2012/weryfikacja-unikalnosci-adresu-e-mail-w-bazie-danych/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Kolejne doświadczenie &#8211; kolejny wpis <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Tym razem zmierzymy się z czymś, co każdy programista musi zaimplementować podczas tworzenia formularza do rejestracji użytkowników. Jest to weryfikacja nazwy bądź adresu e-mail nowego użytkownika w celu unikalności nazwy. Można rozwiązać to na kilka sposobów, np. w kontrolerze pobrać wartość w formularzu a następnie sprawdzić za pomocą metody z modelu czy dany wpis istnieje, ALBO&#8230;</p>
<p><span id="more-516"></span>&#8230; wykorzystać dostępny walidator, stworzony do tego celu o nazwie <a href="http://framework.zend.com/manual/en/zend.validate.set.html#zend.validate.Db" target="_blank">Db_RecordExists i Db_NoRecordExists</a>. Jego zadaniem jest sprawdzenie wartości w zdefiniowanej tabeli i kolumnie. Dlaczego to rozwiązanie jest lepsze? Kilka powodów:</p>
<ol>
<li>Weryfikacja odbywa się w obrębie obiektu-formularza. Dzięki temu zachowujemy porządek przy stosowaniu walidatorów a także przy możliwej modyfikacji kodu.</li>
<li>Zajmuje dużo mniej miejsca i czasu, niż pisanie własnych metod wywoływanych w kontrolerach</li>
</ol>
<p>W jaki sposób to wywołać? Krótki przykład:</p>
<pre class="brush: php; ruler: true; highlight: [7,8,9];">$mail = new Zend_Form_Element_Text('mail');
        $mail-&gt;setLabel('Adres e-mail:');
        $mail-&gt;setRequired(true);
        $mail-&gt;addValidators(array(
					 new Zend_Validate_NotEmpty(),
					 new Zend_Validate_EmailAddress(),
					 new Zend_Validate_Db_NoRecordExists(array(
								'table' =&gt; 'user',
								'field' =&gt; 'use_mail'
									))
				 ));</pre>
<p>Jako parametry podajemy nazwę tabeli i kolumny, która służy do weryfikacji konta. Jak widać użycie tego walidatora jest bardzo proste i przyjemne.</p>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2012/weryfikacja-unikalnosci-adresu-e-mail-w-bazie-danych/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kolorowanie pól formularz w przypadku błędów</title>
		<link>http://dszymczuk.pl/2012/kolorowanie-pol-formularz-w-przypadku-bledow/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kolorowanie-pol-formularz-w-przypadku-bledow</link>
		<comments>http://dszymczuk.pl/2012/kolorowanie-pol-formularz-w-przypadku-bledow/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 12:45:43 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend_Form]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=504</guid>
		<description><![CDATA[W tym wpisie chciałbym pokazać w jaki sposób zmienić styl pola tekstowego, gdy nie przejdzie on walidacji. Problem zostanie rozwiązany za pomocą CSS &#8211; zostanie dodana odpowiednia klasa dla input&#8217;a z błędnie wprowadzonymi danymi &#8211; po prawej na poniższym rysunku. &#8230; <a href="http://dszymczuk.pl/2012/kolorowanie-pol-formularz-w-przypadku-bledow/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>W tym wpisie chciałbym pokazać w jaki sposób zmienić styl pola tekstowego, gdy nie przejdzie on walidacji. Problem zostanie rozwiązany za pomocą CSS &#8211; zostanie dodana odpowiednia klasa dla input&#8217;a z błędnie wprowadzonymi danymi &#8211; po prawej na poniższym rysunku.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2012/02/inputy.png"><img class="aligncenter size-medium wp-image-506" title="inputy" src="http://dszymczuk.pl/wp-content/uploads/2012/02/inputy-300x24.png" alt="" width="300" height="24" /></a>Bierzemy się do dzieła.</p>
<p><span id="more-504"></span></p>
<p>Pierwsze co będziemy potrzebować to definicja klasy CSS dla błędnego input&#8217;a &#8211; nazwę ją inputError.</p>
<pre class="brush: css; ruler: true;">form input.inputError {
    border-color: #B94A48;
    color: #B94A48;
}</pre>
<p>Ten wpis spowoduje utworzenie czerwonej ramki dla pola tekstowego. Teraz należy to obsłużyć wykorzystując do tego komponent Zend_Form. W tym celu zostanie wykorzystana metoda setAttrib z odpowiednimi parametrami (dodanie klasy oraz jej nazwę). W celu ułatwienia tego procesu dla większej liczby kontrolek można napisać metodę w formularzu, która będzie dodawała klasę CSS do inputa w przypadku wystąpienia błędu:</p>
<pre class="brush: php; ruler: true; highlight: [4,5];">public function highlightErrorElements()
    {
        foreach($this-&gt;getElements() as $element) {
            if($element-&gt;hasErrors()) {
                $element-&gt;setAttrib('class', 'inputError');
            }
        }
    }</pre>
<p>Ostatnią rzeczą jaka pozostała to wywołanie tej metody w kontrolerze na obiekcie-formularzu:</p>
<pre class="brush: php; ruler: true; highlight: [2];">if($form_register-&gt;isErrors()) {
            $form_register-&gt;highlightErrorElements();
            $form_register-&gt;populate($_POST);
        }</pre>
<p>Teraz jeśli formularz będzie zawierał błędy, to jego pola tekstowe zostaną obramowane w kolorze czerwonym.</p>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2012/kolorowanie-pol-formularz-w-przypadku-bledow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tworzenie wirtualnych hostów w Windows</title>
		<link>http://dszymczuk.pl/2012/tworzenie-wirtualnych-hostow-w-windows/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tworzenie-wirtualnych-hostow-w-windows</link>
		<comments>http://dszymczuk.pl/2012/tworzenie-wirtualnych-hostow-w-windows/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 14:33:49 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Serwery]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=484</guid>
		<description><![CDATA[Praca nad kilkoma projektami dla programisty to codzienność, w szczególności dla programistów aplikacji internetowych. Często należy dodać nową funkcjonalność do projektu, albo poprawić błędy. Zaczyna pojawiać się problem organizacji projektów lub zaawansowane aplikacje nie działają tak jak powinny. Co wtedy &#8230; <a href="http://dszymczuk.pl/2012/tworzenie-wirtualnych-hostow-w-windows/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Praca nad kilkoma projektami dla programisty to codzienność, w szczególności dla programistów aplikacji internetowych. Często należy dodać nową funkcjonalność do projektu, albo poprawić błędy. Zaczyna pojawiać się problem organizacji projektów lub zaawansowane aplikacje nie działają tak jak powinny.</p>
<p><strong><em>Co wtedy zrobić?</em></strong></p>
<p><span id="more-484"></span>Z pomocą przychodzą wirtualne hosty. Co to jest? Najprościej mówiąc jest to takie skonfigurowanie serwera Apache, że dla podanej nazwy domeny przekierowuje użytkownika do danego folderu w obrębie serwera. Przykład.</p>
<p>Mamy 1 serwer, który ma 3 aplikacja, każdą w innym katalogu. Struktura wygląda mniej wiecej tak:</p>
<blockquote><p>www/aplikacja1</p>
<p>www/aplikacja2/public</p>
<p>www/aplikacja3/production</p></blockquote>
<p>Teraz chcemy odwoływać się do poszczególnych aplikacji. Posiadając XAMPPa, domyślnie dostęp do aplikacja jeden znajduje się pod adresem:</p>
<blockquote><p>http://localhost/aplikacja1</p></blockquote>
<p>Jeśli chcemy włączyć drugą aplikację wchodzimy na adres:</p>
<blockquote><p>http://localhost/aplikacja2/public</p></blockquote>
<p>&nbsp;</p>
<p><strong><em>Po co stosować wirtualne hosty?</em></strong></p>
<p>Wcześniej nie używałem ich. Potrzeba ich użycia rozpoczęła się od programowania z wykorzystaniem Zend Framework. ZF narzuca strukturę katalogów, która powinna być stosowana w projektach. W celu poprawnego działania aplikacji należy uruchamiać aplikację z folderu public.</p>
<p>&nbsp;</p>
<p><strong><em>I w czym problem?</em></strong></p>
<p>Problem pojawia się przy przekierowaniu żądań http. Zamiast odwoływać się do</p>
<blockquote><p>http://localhost/aplikacja2/public</p></blockquote>
<p>Aplikacja przekieruje nas do:</p>
<blockquote><p>http://localhost/aplikacja2</p></blockquote>
<p>Lub co gorsza do:</p>
<blockquote><p>http://localhost</p></blockquote>
<p>Powoduje to wczytanie zupełnie innej aplikacji lub nie poprawnego jej działania.</p>
<p>&nbsp;</p>
<p><strong><em>Jak skonfigurować te wirtualne hosty? I co one nam w ogóle dadzą?</em></strong></p>
<p>Zacznę od odpowiedzi na drugie pytanie. Wprowadzają porządek do projektów, a także umożliwiają &#8222;podpięcie&#8221; domeny pod wskazany adres, np. http://moj-projekt.lh może wskazywać na folder www/aplikacja2/public .</p>
<p>Rozwiązanie to daje możliwość uporządkowania pracy podczas pisania programów dla klientów. Przykładowo klient ma zarezerwowaną domenę: szybkiekomputery.pl ,a my możemy tworzyć aplikację pod: szybkiekomputery.lh</p>
<p>&nbsp;</p>
<p><em><strong>Co to jest *.lh ?</strong></em></p>
<p>To jest mój prywatny wymysł na określenie localhost (l &#8211; local , h &#8211; host).</p>
<p>&nbsp;</p>
<p><em><strong>Konfiguracja wirtualnych hostów</strong></em></p>
<p>Standardowo wykonuje się tą operację na 2 plikach:</p>
<p>1. C:\Windows\System32\drivers\etc\hosts</p>
<p>2. ścieżka_do_xamppa\apache\conf\extra\httpd-vhosts.conf</p>
<p>Dodawanie lub edycja wybranych wpisów umożliwia konfigurację. Jest jednak szybszy sposób, dla osób, które wolą wyklikać dane niż zmieniać konfigurację w plikach.</p>
<p>Służy do tego program vHost firmy AvoSoft. Możliwy do ściągnięcia z tego <a href="http://dszymczuk.pl/download/vHost.zip" target="_blank">linku</a>.</p>
<p>Umożliwia on graficzne dodawanie i edytowanie tych wpisów. Poniżej znajdują się screeny z aplikacji, przedstawiającą dodanie hosta krok po kroku.</p>
<p>Przed przystąpieniem do pracy należy sprawdzić konfigurację dla folderu MySQL i Apache.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2012/01/2012-01-06_152307.png"><img class="aligncenter size-medium wp-image-492" title="2012-01-06_152307" src="http://dszymczuk.pl/wp-content/uploads/2012/01/2012-01-06_152307-300x225.png" alt="" width="300" height="225" /></a>Po uruchomianiu vHost należy przejść do zakładki Add. Należy wypełnić pola pożądanymi danymi (Hostname &#8211; nazwa hosta, Root folder &#8211; główny folder aplikacji), a na końcu zatwierdzić przyciskiem Add.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2012/01/2012-01-06_152516.png"><img class="aligncenter size-medium wp-image-493" title="2012-01-06_152516" src="http://dszymczuk.pl/wp-content/uploads/2012/01/2012-01-06_152516-300x225.png" alt="" width="300" height="225" /></a>Po akceptacji pojawi się komunikat o poprawnym dodaniu hosta.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2012/01/2012-01-06_152546.png"><img class="aligncenter size-full wp-image-494" title="2012-01-06_152546" src="http://dszymczuk.pl/wp-content/uploads/2012/01/2012-01-06_152546.png" alt="" width="290" height="161" /></a>Ostatnią rzeczą jaka została do wykonania to restart Apache &#8211; przechodzimy do panelu XAMPP, zatrzymuje Apache a potem startujemy go.</p>
<p>Od teraz możemy odwoływać się do naszego projektu poprzez wpisanie w przeglądarce: http://moj-projekt.lh</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2012/tworzenie-wirtualnych-hostow-w-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android na komputerze</title>
		<link>http://dszymczuk.pl/2011/android-na-komputerze/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-na-komputerze</link>
		<comments>http://dszymczuk.pl/2011/android-na-komputerze/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 16:32:10 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=409</guid>
		<description><![CDATA[Android na komputerze? Tak, to możliwe Natknąłem się na taki wpis przeglądając pure.pc . Zaciekawiony, szybko pobrałem wersję dla eeepc z myślą, że może zainstaluję ją na Netbooku. Zanim jednak to zrobiłem, chciałem sprawdzić jak to zainstalować, tym bardziej, że &#8230; <a href="http://dszymczuk.pl/2011/android-na-komputerze/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Android na komputerze? Tak, to możliwe <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Natknąłem się na taki wpis przeglądając <a href="http://www.purepc.pl/urzadzenia_mobilne/google_android_40_dla_architektury_x86" target="_blank">pure.pc</a> .</p>
<p>Zaciekawiony, szybko pobrałem wersję dla eeepc z myślą, że może zainstaluję ją na Netbooku. Zanim jednak to zrobiłem, chciałem sprawdzić jak to zainstalować, tym bardziej, że chciałbym mieć też obok Windows&#8217;a 7. A już super by było, jakbym nie musiał robić formata, aby zainstalować systemy. Czy mi się udało? Zapraszam do czytania <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-409"></span>Pierwsze co zrobiłem to test na wirtualnej maszynie. Zrobiłem 2 partycje &#8211; na Windows 7 i Androida. Przy czym partycję pod Windows 7 sformatowałem z typem NTFS. Partycję pod Androida na razie zostawiamy w spokoju.</p>
<blockquote><p>Co zrobić w przypadku, kiedy mamy już zainstalowanego Windowsa i chcemy utworzyć nową partycję? Należy użyć programu do zmiany partycji np. GParted . Na Androida 3 GB w zupełności wystarczą. Przy formatowaniu należy wybrać typ plików FAT32.</p></blockquote>
<p>Po instalacji zamontowałem płytę z Androidem na wirtualnej maszynie i rozpocząłem swój bój.</p>
<p>Pierwsze co należy zrobić to sformatować partycję pod Androida i nadać jej typ FAT32. Dlaczego taki? Ponieważ spod Windowsa będziemy edytować plik menu.lst z GRUB&#8217;a, który odpowiada za kolejność wyświetlania listy systemów wraz z kilkoma jego opcjami. A pomimo wielkich chęci nie udało mi się to zrobić z poziomu Androida. Więc zostaje nam FAT32.</p>
<p>Wybieramy opcję: <strong>Live CD &#8211; Debug mode</strong></p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160415.png"><img class="aligncenter size-medium wp-image-422" title="2011-12-06_160415" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160415-300x225.png" alt="" width="300" height="225" /></a>Dzięki niej dostaniemy się do konsoli, w której przeprowadzimy pewne operacje dyskowe umożliwiające nam instalację.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160433.png"><img class="aligncenter size-medium wp-image-425" title="2011-12-06_160433" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160433-300x225.png" alt="" width="300" height="225" /></a>Pojawi się czarny ekran z białymi (szarymi) literkami i cyferkami. Jak skończy przelatywać na końcu naciskamy enter, aby pojawił się prompt.</p>
<p>Teraz utworzymy nową partycję i ustawimy jej typ plików na FAT32. W tym celu wpisujemy: <strong>fdisk /dev/sda</strong></p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_1606181.png"><img class="aligncenter size-medium wp-image-428" title="2011-12-06_160618" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_1606181-300x225.png" alt="" width="300" height="225" /></a>Wpisując <strong>p</strong> i naciskając enter zobaczymy listę dostępnych partycji.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160848.png"><img class="aligncenter size-medium wp-image-427" title="2011-12-06_160848" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160848-300x225.png" alt="" width="300" height="225" /></a>W związku z tym, że mamy ją już utworzoną, zmienimy jej tylko typ na FAT32 wybierając: <strong>t</strong> potem numer partycji (w moim przypadku 3) <strong>3</strong> a następnie typ na jaki ma być skonwertowana &#8211; FAT32 to jest <strong>b</strong>.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160856.png"><img class="aligncenter size-medium wp-image-429" title="2011-12-06_160856" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160856-300x225.png" alt="" width="300" height="225" /></a>Następnie musimy zapisać nasze zmiany wpisując <strong>w</strong> i naciskając enter.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160925.png"><img class="aligncenter size-medium wp-image-430" title="2011-12-06_160925" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_160925-300x225.png" alt="" width="300" height="225" /></a>Na koniec robimy restart poleceniem <strong>reboot -f .</strong></p>
<p>Przechodzimy już do właściwej instalacji. Wybieramy opcję:<strong>  Installation &#8211; Install Android-x86 to harddisk</strong></p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_161632.png"><img class="aligncenter size-medium wp-image-431" title="2011-12-06_161632" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_161632-300x225.png" alt="" width="300" height="225" /></a>Następnie wybieramy partycję, w moim przypadku jest to partycja nr 3 (sda3).</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_161838.png"><img class="aligncenter size-medium wp-image-443" title="2011-12-06_161838" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_161838-300x166.png" alt="" width="300" height="166" /></a>Formatujemy jako <strong>fat32</strong>. Potwierdzamy nasz wybór &#8211; <strong>Yes</strong></p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_161911.png"><img class="aligncenter size-medium wp-image-444" title="2011-12-06_161905" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_161905-300x166.png" alt="" width="300" height="166" /><img class="aligncenter size-medium wp-image-445" title="2011-12-06_161911" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_161911-300x166.png" alt="" width="300" height="166" /></a>Czy chcesz zainstalować GRUB? Wybieramy opcję <strong>Yes</strong> &#8211; dzięki temu będziemy mieli menu do wyboru systemu na początku bootowania dysku.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162004.png"><img class="aligncenter size-medium wp-image-446" title="2011-12-06_162004" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162004-300x166.png" alt="" width="300" height="166" /></a>Instalator powinien wykryć naszego Windowsa na pierwszej partycji. Pyta się nas, czy chcemy dodać go na listę systemów dla GRUB&#8217;a? Odpowiadamy <strong>Yes</strong>.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162010.png"><img class="aligncenter size-medium wp-image-447" title="2011-12-06_162010" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162010-300x166.png" alt="" width="300" height="166" /></a>Proces instalacji rozpoczyna się. Po niej dostajemy pytanie, czy chcemy utworzyć plik na pliki użytkownika o rozmiarze 512 MB. Znowu się zgadzamy <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <strong>Yes</strong></p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162231.png"><img class="aligncenter size-medium wp-image-448" title="2011-12-06_162231" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162231-300x166.png" alt="" width="300" height="166" /></a>Wpisujemy max wartość &#8211; mi wystarczy 512, ponieważ stworzę sobie dodatkową kartę SD na inne dane (2047MB jest maksymalną, ponieważ FAT32 obsługuje pojedyncze pliki o takim rozmiarze. Większych nie rozpozna.)</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162505.png"><img class="aligncenter size-medium wp-image-450" title="2011-12-06_162505" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162505-300x166.png" alt="" width="300" height="166" /></a>Jak napisałem wcześniej tworzę sobie dodatkowe miejsce pod postacią karty SD &#8211; <strong>Create a fake SD card</strong> .<a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162530.png"><img class="aligncenter size-medium wp-image-451" title="2011-12-06_162530" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162530-300x166.png" alt="" width="300" height="166" /></a>Dla niej wpisuje rozmiar 2047 MB. Na koniec pozostaje nam tylko <strong>Reboot</strong> i odmonotwanie płytki z Androidem.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_164233.png"><img class="aligncenter size-medium wp-image-452" title="2011-12-06_162556" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_162556-300x166.png" alt="" width="300" height="166" /><img class="aligncenter size-medium wp-image-453" title="2011-12-06_164233" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_164233-300x166.png" alt="" width="300" height="166" /></a><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_164308.png"><img class="aligncenter size-medium wp-image-454" title="2011-12-06_164308" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_164308-300x166.png" alt="" width="300" height="166" /></a>Po restarcie ujrzymy niebieski ekran GRUB&#8217;a z wyborem systemów. Domyślnie po 10 sekundach będzie uruchamiany Android. Wolałbym jednak, aby domyślnym systemem był Windows. Tak więc wybieramy Windows i naciskamy enter.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_164859.png"><img class="aligncenter size-medium wp-image-455" title="2011-12-06_164859" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_164859-300x225.png" alt="" width="300" height="225" /></a>Wchodzimy na partycję Androida i otwieramy plik <strong>menu.lst</strong> z folderu grub. Jak widać są tutaj wypisane systemy, czas na wybór i ścieżki, gdzie je ma uruchamiać. My zmienimy tylko 2 rzeczy: domyślnie uruchamiany system i czas, po jakim zostanie on wybrany. Ustawiamy <strong>default=0</strong> na <strong>default=2</strong> oraz <strong>timeout=6</strong> na <strong>timeout=5</strong> .</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_165056.png"><img class="aligncenter size-medium wp-image-456" title="2011-12-06_165056" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_165056-300x225.png" alt="" width="300" height="225" /></a>Jeśli chcemy zmienić wyświetlaną nazwę to edytujemy linijkę <strong>title</strong>. Zapisujemy plik i uruchamiamy komputer ponownie. Widać już zmienione nazwy. Czas na uruchomienie naszego Androida <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_165405.png"><img class="aligncenter size-medium wp-image-457" title="2011-12-06_165405" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_165405-300x225.png" alt="" width="300" height="225" /></a>Po kilku chwilach możemy rozkoszować się naszym Androidem w wersji 3.2 na naszym komputerze. Niestety na wirtualnej maszynie nie działa internet (na ten moment nie ma wsparcia przez kabel Ethernet), ale na Netbooku już tak <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_165432.png"><img class="aligncenter size-medium wp-image-458" title="2011-12-06_165432" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_165432-300x225.png" alt="" width="300" height="225" /></a><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_165442.png"><img class="aligncenter size-medium wp-image-459" title="2011-12-06_165442" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_165442-300x225.png" alt="" width="300" height="225" /></a>Kilka informacji na koniec. Moim zestawem testowym była wirtualna maszyna z 3 partycjami (1 &#8211; systemowa dla Windows (sam tworzy podczas instalacji), 2 &#8211; z systemem Windows, 3 &#8211; pod Androida) i Netbook z 4 (takie same jak na wirtualnej maszynie z tym, że pod Androida ma nr 4, a z danymi ma nr 3).</p>
<blockquote><p>Znaleziony bug przeze mnie: gdy chcemy zablokować ekran na hasło, to po wpisaniu dwukrotnie hasła, nie możemy potem wejść w opcje Lokalizacje i zabezpieczenia. Proces zostaje zamknięty, a my nie możemy zmienić ani usunąć hasła, a także korzystać z poświadczeń. Jak to rozwiązać? Tylko reinstall <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
<p>==========================================================</p>
<p>Jeszcze ostatnia porada, jak odzyskać bootwanie Windowsa po nie udanej instalacji Androida.</p>
<p>Potrzebujemy do tego płytki z systemem Windows 7. Wkładamy ją do napędu i ustalmy priorytet bootwania na CD (aby ona jako pierwsza została wczytana).</p>
<p>Następnie wybieramy język polski</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155311.png"><img class="aligncenter size-medium wp-image-434" title="2011-12-06_155311" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155311-300x250.png" alt="" width="300" height="250" /></a>i<strong> Napraw komputer</strong></p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155326.png"><img class="aligncenter size-medium wp-image-435" title="2011-12-06_155326" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155326-300x250.png" alt="" width="300" height="250" /></a>Teraz zaznaczamy nasz system i klikamy <strong>Dalej</strong> <a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155343.png"><img class="aligncenter size-medium wp-image-436" title="2011-12-06_155343" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155343-300x250.png" alt="" width="300" height="250" /></a>Wybieramy wiersz polecenia i wpisujemy 3 komendy, każdą zatwierdzając enterem:</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155452.png"><img class="aligncenter size-medium wp-image-437" title="2011-12-06_155357" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155357-300x250.png" alt="" width="300" height="250" /><img class="aligncenter size-medium wp-image-438" title="2011-12-06_155452" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155452-300x250.png" alt="" width="300" height="250" /></a><strong>bootrec /fixmbr</strong></p>
<p><strong>bootrec /fixboot</strong></p>
<p><strong>exit</strong></p>
<p>Teraz możemy uruchomić ponownie komputer i uruchamiamy system Windows normalnie.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155510.png"><img class="aligncenter size-medium wp-image-439" title="2011-12-06_155510" src="http://dszymczuk.pl/wp-content/uploads/2011/12/2011-12-06_155510-300x225.png" alt="" width="300" height="225" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2011/android-na-komputerze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dump bazy MySQL z kluczami obcymi</title>
		<link>http://dszymczuk.pl/2011/dump-bazy-mysql-z-kluczami-obcymi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dump-bazy-mysql-z-kluczami-obcymi</link>
		<comments>http://dszymczuk.pl/2011/dump-bazy-mysql-z-kluczami-obcymi/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 13:51:36 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=399</guid>
		<description><![CDATA[Dawno nie udzielałem się na blogu ze względu na brak czasu Ostatnio miałem problem ze znalezieniem gotowego skryptu odpowiadającego za zrzucanie bazy danych do pliku. Pewno większość z Was stwierdzi, że można użyć do tego specjalnego oprogramowania typu Navicat Lite, &#8230; <a href="http://dszymczuk.pl/2011/dump-bazy-mysql-z-kluczami-obcymi/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dawno nie udzielałem się na blogu ze względu na brak czasu <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ostatnio miałem problem ze znalezieniem gotowego skryptu odpowiadającego za zrzucanie bazy danych do pliku. Pewno większość z Was stwierdzi, że można użyć do tego specjalnego oprogramowania typu Navicat Lite, phpMyAdmin czy nawet zwykłego polecenia z konsoli. Problem pojawia się wtedy, gdy nie możemy użyć takich rozwiązań, z różnych względów np. brak wystarczających uprawnień, umiejętności itd. Z tego powodu napisałem klasę do wykonywania takiej kopii.</p>
<p><span id="more-399"></span>Klasa ta oparta jest na gotowym rozwiązaniu napisanym przez <a href="http://www.phpclasses.org/package/3498-PHP-Dump-a-MySQL-database-in-a-backup-file.html" target="_blank">Daniele z phpclasses.org</a> . Klasa spisywała się całkiem nie źle dopóki w moim projekcie nie zastosowałem tabel typu InnoDB z kluczami obcymi. Powyższa klasa nie oferowała tego. Szukałem innego rozwiązania no ale niestety nie udało się. Stwierdziłem, że skoro już mam tyle napisane, to dopiszę tylko swoją część dodającą do pliku klucze obce.</p>
<p>Tak też zrobiłem. Dopisałem kilka metod rozszerzających klasę bazową i zacząłem testować na swojej przykładowej bazie. Przyznam, że działało tak jak chciałem i działa to dobrze.</p>
<p>Klasa z przykładem znajduje się na <a href="https://github.com/damiansz/MySQL-Dump-with-Foreign-keys" target="_blank">Github.com</a></p>
<p>Pewna rada co do zrzucania danych z bazy do pliku. Jeśli baza jest dość duża należy wyłączyć ograniczenie czasowe do wykonywania skryptu PHP dopisując przed wywołaniem metody doDump kod:</p>
<pre class="brush: php;">set_time_limit(30);</pre>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2011/dump-bazy-mysql-z-kluczami-obcymi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sposoby wybierania numerów telefonów</title>
		<link>http://dszymczuk.pl/2011/sposoby-wybierania-numerow-telefonow/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sposoby-wybierania-numerow-telefonow</link>
		<comments>http://dszymczuk.pl/2011/sposoby-wybierania-numerow-telefonow/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 16:35:22 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=469</guid>
		<description><![CDATA[Ostatnio bawiąc się trochę telefonem natknąłem się na ciekawy sposób wybierania kontaktów z książki telefonicznej &#8211; za pomocą nazwy konta. Pytanie co w tym ciekawego? Już piszę Standardowo, aby szukać kontaktu, wchodzimy w kontakty i w szukajce wpisujemy frazę. Mój &#8230; <a href="http://dszymczuk.pl/2011/sposoby-wybierania-numerow-telefonow/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ostatnio bawiąc się trochę telefonem natknąłem się na ciekawy sposób wybierania kontaktów z książki telefonicznej &#8211; za pomocą nazwy konta. Pytanie co w tym ciekawego? Już piszę <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-469"></span></p>
<p>Standardowo, aby szukać kontaktu, wchodzimy w kontakty i w szukajce wpisujemy frazę. Mój sposób jest inny. Zamiast wchodzić w kontakt, wystarczy wybrać wybieranie numeru i zacząć pisać nazwę kontaktu w formie T9.</p>
<p>Przykład 1:</p>
<p>Szukamy kontaktu o nazwie &#8222;Mama&#8221;. Wpisujemy więc mama jak w SMSie z włączonym T9 czyli: <strong>626</strong>2 . Android wyszukuje po początku nazwy.</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/device-2011-11-17-144639.png"><img class="aligncenter size-medium wp-image-470" title="device-2011-11-17-144639" src="http://dszymczuk.pl/wp-content/uploads/2011/12/device-2011-11-17-144639-200x300.png" alt="" width="200" height="300" /></a>Przykład 2:</p>
<p><a href="http://dszymczuk.pl/wp-content/uploads/2011/12/device-2011-11-17-144751.png"><img class="aligncenter size-medium wp-image-471" title="device-2011-11-17-144751" src="http://dszymczuk.pl/wp-content/uploads/2011/12/device-2011-11-17-144751-200x300.png" alt="" width="200" height="300" /></a>Szukamy kontaktu Agnieszka. W związku z tym wpisujemy <strong>2464</strong> .</p>
<p>Dzięki takiemu rozwiązaniu można na prawdę szybko znaleźć kontakt <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2011/sposoby-wybierania-numerow-telefonow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Książka – Zend Framework od podstaw &#8211; krótka recenzja</title>
		<link>http://dszymczuk.pl/2011/ksiazka-%e2%80%93-zend-framework-od-podstaw-krotka-recenzja/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ksiazka-%25e2%2580%2593-zend-framework-od-podstaw-krotka-recenzja</link>
		<comments>http://dszymczuk.pl/2011/ksiazka-%e2%80%93-zend-framework-od-podstaw-krotka-recenzja/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 13:50:57 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Książki]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=391</guid>
		<description><![CDATA[Chciałbym napisać krótką recenzję na temat tej książki. Recenzja nie będzie na temat całej &#8211; udało mi się na razie przeczytać tylko pierwszą i drugą część. Zanim zacznę, to powiem tylko tyle, że wydawnictwo Helion bardzo pozytywnie mnie zaskoczyło prędkością &#8230; <a href="http://dszymczuk.pl/2011/ksiazka-%e2%80%93-zend-framework-od-podstaw-krotka-recenzja/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Chciałbym napisać krótką recenzję na temat tej książki. Recenzja nie będzie na temat całej &#8211; udało mi się na razie przeczytać tylko pierwszą i drugą część.</p>
<p>Zanim zacznę, to powiem tylko tyle, że wydawnictwo Helion bardzo pozytywnie mnie zaskoczyło prędkością dostarczenia do mnie książki. Zamówiłem ją w przedsprzedaży a trafiła do moich rąk w dzień jej premiery, czyli 16.10.2011 r.</p>
<p>No a teraz kilka słów na temat książki <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-391"></span>Od pierwszych rozdziałów praktycznie zajmujemy się programowaniem. Nie ma tutaj opisanej teorii, dlaczego tak, a nie inaczej jest to skonstruowane. W mojej opinii jest to rozwiązanie dość dobre, ponieważ jeśli sięgamy po bardzie zaawansowane narzędzia, czy wzorce projektowe, to informacje teoretyczne możemy znaleźć na większości stron internetowych.</p>
<p>Opisywana wersja ZF w książce to 1.11.7 czyli nie jest to bardzo stara wersja. Jak napisałem wcześniej już od samego początku zajmujemy się programowaniem. Na początku tworzymy statyczne strony, aby zapoznać się ze sposobem wywoływania poszczególnych kontrolerów i ich akcji. Wszystkie opisane zadania są wykonywane w stylu prowadzenia za rączkę.</p>
<p>Aplikacje tworzone są w środowisku Netbeans z wykorzystaniem konsoli do tworzenia kontrolerów czy akcji. Dzięki temu pewne rzeczy wykonywane są automatycznie i bez zbędnych pytań: &#8222;Dlaczego tak?&#8221; .</p>
<p>Opisane są także sposoby dostępu do stron, czyli poprzez normalne wywołanie kontroler/akcja a także z użyciem routingu, co w aplikacjach jest często wykorzystywane.</p>
<p>W książce zostały także zamieszczone informacje na temat plików konfiguracyjnych, czyli jak je tworzyć oraz wykorzystywać. Ponadto bardzo ładnie opisany jest plik Bootstrap. Pokazany w nim kod umożliwia ładowanie danych z plików konfiguracyjnych a także tworzenie samemu metod inicjujących. Sam przyznam, że nie za bardzo wiedziałem o co chodzi w tym pliku, ale po przeczytaniu odpowiedniego rozdziału dużo się o nim dowiedziałem.</p>
<p>W tym miejscu skończyłem książkę. Muszę przyznać, że nauczyłem się kilku ciekawych rzeczy jeśli chodzi o ZF. Jeśli dalsza część książki jest opisana w tak przejrzysty sposób, to książka jest na prawdę godna polecenia <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>AKTUALIZACJA:</p>
<p>Skończyłem czytać książkę &#8211; końcówkę tylko przeglądnąłem. Osoby rozpoczynające zabawę z ZF na pewno będą zachwycone, dla mnie było trochę mało <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Nauczyłem się kilku ciekawych rzeczy, więc na pewno łatwiej będzie mi się pisać aplikacje, a w razie problemów zawsze będę mógł sięgnąć po książkę, jako mała biblia.</p>
<p>Na prawdę gorąco polecam.</p>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2011/ksiazka-%e2%80%93-zend-framework-od-podstaw-krotka-recenzja/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Znikające widgety z listy widgetów</title>
		<link>http://dszymczuk.pl/2011/znikajace-widgety-z-listy-widgetow/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=znikajace-widgety-z-listy-widgetow</link>
		<comments>http://dszymczuk.pl/2011/znikajace-widgety-z-listy-widgetow/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 16:33:22 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://dszymczuk.pl/?p=465</guid>
		<description><![CDATA[Tytuł trochę masłem maślanym, ale najlepiej oddaje problem. Pewno większość użytkowników Androida spotkało się z takim problemem. Ja z nim spotkałem się w przypadku programu ColorNote. Działo się to po restarcie telefonu &#8211; nagle z listy widgetów oraz z pulpitu &#8230; <a href="http://dszymczuk.pl/2011/znikajace-widgety-z-listy-widgetow/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tytuł trochę masłem maślanym, ale najlepiej oddaje problem.</p>
<p>Pewno większość użytkowników Androida spotkało się z takim problemem. Ja z nim spotkałem się w przypadku programu <a href="https://market.android.com/details?id=com.socialnmobile.dictapps.notepad.color.note" target="_blank">ColorNote</a>. Działo się to po restarcie telefonu &#8211; nagle z listy widgetów oraz z pulpitu znikały ikonki z moimi notatkami. Dlaczego? Zaraz to wyjaśnię <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-465"></span>Program sam w sobie dobrze działał. Rozwiązaniem na to było reinstalacja aplikacji. Z czasem stało się to denerwujące, gdy co restart telefonu trzeba było wykonywać tą operację. Znalazłem inny program do notatek, który nazywa się <a href="https://market.android.com/details?id=de.softxperience.android.noteeverything" target="_blank">Note Everything</a>. Jednak problem znowu pojawił się taki sam jak w przypadku ColorNote! Zdecydowałem się, że napiszę do programisty Note Everything. Nie sądziłem, że misze. Ku mojemu zaskoczeniu odpisał <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Krótki opis problemu po angielsku i taką odpowiedź otrzymałem:</p>
<blockquote><p>Widgets don&#8217;t work as long as the app is installed to the sd-card (it is an Android problem, not of my app!).</p>
<p>Move the app back to the phone memory (system settings -&gt; apps -&gt; manage apps), then restart your phone. Then the widgets should be back.</p></blockquote>
<p>Jak widać problemem jest to, że aplikacja jest na karcie SD (microSD). W związku z tym, aby widgety nie znikały z pulpitu aplikacja musi być zainstalowana w pamięci telefonu.</p>
<p>Aby przenieść aplikacje do telefonu należy:</p>
<ol>
<li>Wejść w Menu</li>
<li>=&gt; Ustawienia</li>
<li>=&gt; Aplikacje</li>
<li>=&gt; Zarządzaj aplikacjami</li>
<li>Znaleźć tą aplikacje i wybrać ją z listy</li>
<li>Kliknąć na: Przenieś do telefonu</li>
</ol>
<p>Po tej operacji robimy restart telefonu i już nam widgety nie będą znikać z pulpitu <img src='http://dszymczuk.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dszymczuk.pl/2011/znikajace-widgety-z-listy-widgetow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

