<?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"
	>

<channel>
	<title>Michał Przytulski blog</title>
	<atom:link href="http://blog.przytulski.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.przytulski.net</link>
	<description></description>
	<pubDate>Mon, 13 Oct 2008 18:31:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Forms nie tylko dla Oracle</title>
		<link>http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/</link>
		<comments>http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 19:43:19 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Narzędzia]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/</guid>
		<description><![CDATA[Niemal każdy spotkała się z problemem tworzenia formularzy umożliwiających edycję zawartości  bazy danych w prosty i intuicyjny sposób niewielkim nakładem pracy. Często do tego celu wykorzystywane są różnego rodzaju Framework dla aplikacji Web.
Chciałbym zwrócić uwagę na nieco inną możliwość – mianowicie generator formularzy bazujący na silniku baz danych. Koncepcja znana i zdominowana dotychczas przez [...]]]></description>
			<content:encoded><![CDATA[<p>Niemal każdy spotkała się z problemem tworzenia formularzy umożliwiających edycję zawartości  bazy danych w prosty i intuicyjny sposób niewielkim nakładem pracy. Często do tego celu wykorzystywane są różnego rodzaju Framework dla aplikacji Web.</p>
<p>Chciałbym zwrócić uwagę na nieco inną możliwość – mianowicie generator formularzy bazujący na silniku baz danych. Koncepcja znana i zdominowana dotychczas przez narzędzie Oracle Forms znalazła swoich zwolenników w świecie Open Source.</p>
<p>W efekcie czego najlepszy projekt relacyjnej bazy danych open source – PostgreSQL doczekał się narzędzia, które raczej przesadnie można nazwać odpowiednikiem Oracle Forms dla PostgreSQL. Mowa tu o projekcie Postgres Forms (<a href="http://pgfoundry.org/projects/pfm">http://pgfoundry.org/projects/pfm</a>) powstałym w 2006 roku i od tego czasu rozwijanym, a ostatnio została wypuszczona wersja 2.0.3 o której kilka słów więcej.</p>
<p>Postgres Forms raczej nie przytłacza ogromem funkcji, a interfejs użytkownika raczej nie słyszał o ergonomii, w takim razie po co to? Myślę, iż jest to dobra ciekawostka, i w takim kontekście będę to traktował, choć wydaje mi się, iż znajdzie się i praktyczne, być może i produkcyjne zastosowanie dla tego produktu.</p>
<p>Po zainstalowaniu i uruchomieniu aplikacji za wiele nie zobaczymy:</p>
<p><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/062508-1942-formsnietyl1.png" alt="" /></p>
<p>Za to zobaczymy bardzo dużo… komunikatów błędu przy próbie zaimportowania przykładowego schematu, o ile nie mamy klienta psql w ścieżce plików wykonywalnych, lub wcześniej nie skonfigurujemy aplikacji.</p>
<p>Po zaimportowaniu przykładowego schematu (mamy dwa do wyboru: bazę klientów lub książkę adresową) możemy zacząć wykorzystywać możliwości pfm. Oczywiście możemy stworzyć własny projekt, co sprowadza się do zaimportowania podstawowego schematu w który będą przechowane definicje formularzy, relacji i atrybutów.</p>
<p>Aplikacja pozwala na tworzenie formularzy powiązanych, jak również definiowanie sposobu wprowadzania wartości dla poszczególnych pól, czy to przy wykorzystaniu combobox, czy zewnętrznego formularza wyboru.</p>
<p><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/062508-1942-formsnietyl2.png" alt="" /></p>
<p>Postgres Froms pozwala również na raportowanie wykorzystywanych struktur oraz relacji między nimi:</p>
<p><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/062508-1942-formsnietyl3.png" alt="" /></p>
<p><strong>Małe uzupełnienie w formie rozluźnienia:</strong><br />
<a href="http://www.joemonster.org/art/9374/Jak-napisac-dobre-sprawozdanie-z-trudnego-projektu" target="_blank">http://www.joemonster.org/art/9374/Jak-napisac-dobre-sprawozdanie-z-trudnego-projektu</a></p>
<p>Na koniec jeszcze kilka zrzutów:</p>

<a href='http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/062508-1942-formsnietyl1png/' title='062508-1942-formsnietyl1.png'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/062508-1942-formsnietyl1-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/062508-1942-formsnietyl2png/' title='062508-1942-formsnietyl2.png'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/062508-1942-formsnietyl2-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/062508-1942-formsnietyl3png/' title='062508-1942-formsnietyl3.png'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/062508-1942-formsnietyl3-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/screen002/' title='screen002'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/screen002-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/screen003/' title='screen003'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/screen003-150x145.png" width="150" height="145" class="attachment-thumbnail" alt="" /></a>
<a href='http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/screen004/' title='screen004'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/screen004-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/screen006/' title='screen006'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/screen006-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>

]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2008/06/25/forms-nie-tylko-dla-oracle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Subversion 1.5 oraz TortoiseSVN 1.5 już są</title>
		<link>http://blog.przytulski.net/2008/06/23/subversion-1_5-oraz-tortoisesvn-1_5-juz-sa/</link>
		<comments>http://blog.przytulski.net/2008/06/23/subversion-1_5-oraz-tortoisesvn-1_5-juz-sa/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 20:20:25 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[Subversion]]></category>

		<category><![CDATA[Wiadomości]]></category>

		<category><![CDATA[tortoisesvn]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/?p=64</guid>
		<description><![CDATA[Krótko, zwięźle i na temat - opisywane jakiś czas temu wersje repozytorium kodu Subversion oraz klienta TortoiseSVN są już dostępne do pobrania w wersji stabilnej.

http://subversion.tigris.org/

http://tortoisesvn.net/
]]></description>
			<content:encoded><![CDATA[<p>Krótko, zwięźle i na temat - opisywane jakiś czas temu wersje repozytorium kodu Subversion oraz klienta TortoiseSVN są już dostępne do pobrania w wersji stabilnej.</p>
<p><a href="http://subversion.tigris.org/" target="_blank"><img class="alignnone size-medium wp-image-65" title="subversion_logo_hor-468x64" src="http://blog.przytulski.net/wp-content/uploads/2008/06/subversion_logo_hor-468x64-300x41.png" alt="" width="300" height="41" /></a></p>
<p><a href="http://subversion.tigris.org/">http://subversion.tigris.org/</a></p>
<p><a href="http://tortoisesvn.net/" target="_blank"><img class="alignnone size-medium wp-image-66" title="tortoisesvn_logo_hor468x641" src="http://blog.przytulski.net/wp-content/uploads/2008/06/tortoisesvn_logo_hor468x641-300x41.png" alt="" width="300" height="41" /></a></p>
<p><a href="http://tortoisesvn.net/" target="_blank">http://tortoisesvn.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2008/06/23/subversion-1_5-oraz-tortoisesvn-1_5-juz-sa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pechowa ulica – psikus map cyfrowych</title>
		<link>http://blog.przytulski.net/2008/06/22/pechowa-ulica-psikus-map-cyfrowych/</link>
		<comments>http://blog.przytulski.net/2008/06/22/pechowa-ulica-psikus-map-cyfrowych/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 21:09:04 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[maps]]></category>

		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2008/06/22/pechowa-ulica-%e2%80%93-psikus-map-cyfrowych/</guid>
		<description><![CDATA[Dziś chciałem koledze pokazać na mapce gdzie jest moje wspaniałe nowe mieszkanie, do którego jeszcze nie mam kluczy, niby nic, a jednak. Jak się okazuje zadanie nie takie proste jakby się mogło wydawać.
Na początek Google Maps (http://maps.google.com), wpisuje: Warszawa, Skarbka z Gór i co, troszkę się dziwie:

Dostaje śliczną wyznaczoną trasę do Warszawy z oddalonej o [...]]]></description>
			<content:encoded><![CDATA[<p>Dziś chciałem koledze pokazać na mapce gdzie jest moje wspaniałe nowe mieszkanie, do którego jeszcze nie mam kluczy, niby nic, a jednak. Jak się okazuje zadanie nie takie proste jakby się mogło wydawać.</p>
<p><span id="more-56"></span>Na początek Google Maps (<a href="http://maps.google.com">http://maps.google.com</a>), wpisuje: Warszawa, Skarbka z Gór i co, troszkę się dziwie:</p>
<p><a href="http://blog.przytulski.net/wp-content/uploads/2008/06/062208-2108-pechowaulic1.png"><img class="alignnone size-medium wp-image-55" title="062208-2108-pechowaulic1.png" src="http://blog.przytulski.net/wp-content/uploads/2008/06/062208-2108-pechowaulic1-300x205.png" alt="" width="300" height="205" /></a></p>
<p>Dostaje śliczną wyznaczoną trasę do Warszawy z oddalonej o 34 km miejscowości Góra, no cóż pomylić się wolno, po kilku próbach z cudzysłowiem, z różnymi wariantami zapytania udaję się odnaleźć właściwą ulicę – dla zainteresowanych należy pytać o ulice Skarbka. Problem wynika z mechanizmem wyszukiwania który literkę z tłumaczy na angielskie from, dzięki czemu zapytanie zostaje rozpoznane jako Skarbka from Gór co powoduje rozpoczęcie procesu wyszukiwania trasy. Wprawdzie nie sprawdzałem jak się zachowa aplikacja jeśli zostanie odnalezionych więcej pasujących miejscowości, ale prawdopodobnie spyta o którą chodzi.</p>
<p>Z ciekawości postanowiłem zapytać konkurenta o ulice Skarbka z Gór w Warszawie (<a href="http://maps.yahoo.com">http://maps.yahoo.com</a>) i tutaj wynik zdecydowanie bardziej odpowiada moim gustom, ale jako że mapy Yahoo nie przemawiają do mnie po polsku, wobec czego dostosowuję się do nich, i pytam:  Poland, Warsaw, Skarbka z Gor, na efekt nie długo czekałem:</p>
<p><a href="http://blog.przytulski.net/wp-content/uploads/2008/06/062208-2108-pechowaulic2.png"><img class="alignnone size-medium wp-image-55" title="062208-2108-pechowaulic2.png" src="http://blog.przytulski.net/wp-content/uploads/2008/06/062208-2108-pechowaulic2-300x205.png" alt="" width="300" height="205" /></a></p>
<p>I gdyby była to tylko prawda…, znów dla niewtajemniczonych, prezentowany fragment mapy znajduje się ok. 50 km od mojej rodzinnej strony w najpiękniejszej części Polski – Bieszczadach.</p>
<p>Jak się po chwili okazało błąd bym po mojej stronie, bowiem jak każdy polak nie czytam instrukcji, co można zauważyć na powyższym screenie – adres podawany jest w kolejności, odwrotnej od wprowadzonej, po zmianie kolejności na prawidłową wyniki były również prawidłowe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2008/06/22/pechowa-ulica-psikus-map-cyfrowych/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP 4.4.8, PHP5.2-dev, PHP5.3-dev, PHP6.0-dev – test</title>
		<link>http://blog.przytulski.net/2008/06/22/php-4_4_8-php5_2-dev-php5_3-dev-php6_0-dev-test/</link>
		<comments>http://blog.przytulski.net/2008/06/22/php-4_4_8-php5_2-dev-php5_3-dev-php6_0-dev-test/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 20:37:08 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Przyszłość PHP]]></category>

		<category><![CDATA[php6]]></category>

		<category><![CDATA[testy]]></category>

		<category><![CDATA[wydajność]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2008/06/22/php-448-php52-dev-php53-dev-php60-dev-%e2%80%93-test/</guid>
		<description><![CDATA[Od jakiegoś czasu zastanawiałem się jaka jest faktyczna różnica w szybkości działania poszczególnych wersji PHP. Przeglądając zasoby Internetu natrafiłem na ciekawą stronę - http://shootout.alioth.debian.org/ zawierającą porównanie wydajności różnych języków w tych samych zastosowaniach. Niestety testy zamieszczone na w/w witrynie ograniczają się tylko do jednej wersji PHP, więc nie jest to, to czego poszukiwałem. Postanowiłem jednak [...]]]></description>
			<content:encoded><![CDATA[<p>Od jakiegoś czasu zastanawiałem się jaka jest faktyczna różnica w szybkości działania poszczególnych wersji PHP. Przeglądając zasoby Internetu natrafiłem na ciekawą stronę - <a href="http://shootout.alioth.debian.org/">http://shootout.alioth.debian.org/</a> zawierającą porównanie wydajności różnych języków w tych samych zastosowaniach. Niestety testy zamieszczone na w/w witrynie ograniczają się tylko do jednej wersji PHP, więc nie jest to, to czego poszukiwałem. Postanowiłem jednak skorzystać z zgromadzonych tam skryptów i przeprowadzić własne testy porównawcze.</p>
<p><span id="more-53"></span>W tym celu wybrałem następujące pięć testów:</p>
<ul>
<li><a href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=binarytrees&amp;lang=php&amp;id=2">binary-trees</a> – operacje na drzewkach binarnych</li>
<li><a href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=nbody&amp;lang=php&amp;id=0">n-body</a> – bliżej nie określone &#8220;coś&#8221; <img src='http://blog.przytulski.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li><a href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=recursive&amp;lang=php&amp;id=2">recursive</a> – rekurencyjne liczenie wartości ciągu fibonacciego, funkcji Ackemanna oraz funkcji Tak</li>
<li><a href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=hello&amp;lang=php&amp;id=0">startup</a> – wyświetlanie hello world</li>
<li><a href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=sumcol&amp;lang=php&amp;id=0">sum-file</a> – sumowanie 10 000 liczb wpisanych na stdin</li>
</ul>
<p>Do testów wykorzystany został laptop Dell Latitude D630C z procesorem Intel Core 2 Duo 2.2GHz z 4GB RAM. Jako system operacyjny zostało wykorzystane Gentoo 2008.0_beta z LiveDVD (Linux livecd 2.6.24-gentoo-r5 #1 SMP Wed Apr 23 22:46:44 UTC 2008 x86_64 Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz GenuineIntel GNU/Linux). Do kompilacji zostało wykorzystane GCC w wersji x.x (jak sprawdzę to napiszę). Kompilacja przebiegała z domyślnym zestawem parametrów, w sposób maksymalnie prosty:</p>
<blockquote><p>./configure &#8211;without-pear &#8211;prefix=/root/phps/php-x.x<br />
make<br />
make install</p></blockquote>
<p>Kompilacji zostały poddane najnowsze wersje kodu źródłowego pobranego z <a href="http://snaps.php.net">http://snaps.php.net</a> (za wyjątkiem PHP4, którego rozwój został zaprzestany), i są to:</p>
<ul>
<li>php5.2-200806211230</li>
<li>php5.3-200806211230</li>
<li>php6.0-200806211230</li>
<li>php-4.4.8</li>
</ul>
<p>Poniżej znajdują się wyniki pomiarów czasu poszczególnych etapów dla każdej z wersji PHP (czas podany w sekundach):</p>
<p><a href="http://blog.przytulski.net/wp-content/uploads/2008/06/062208-2036-php448php51.png"><img class="alignnone size-full wp-image-51" title="062208-2036-php448php51.png" src="http://blog.przytulski.net/wp-content/uploads/2008/06/062208-2036-php448php51.png" alt="" width="499" height="311" /></a></p>
<p>W wyniku kompilacji otrzymałem:</p>
<blockquote><p>livecd bin # /root/phps/php4.4.8/bin/php -v<br />
PHP 4.4.8 (cgi) (built: Jun 21 2008 17:46:03)<br />
Copyright (c) 1997-2008 The PHP Group<br />
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies</p></blockquote>
<blockquote><p>livecd bin # livecd bin # /root/phps/php5.2-dev/bin//php –v<br />
PHP 5.2.7-dev (cli) (built: Jun 21 2008 17:56:40)<br />
Copyright (c) 1997-2008 The PHP Group<br />
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies</p></blockquote>
<blockquote><p>livecd bin # livecd bin # /root/phps/php5.3-dev/bin/php -v<br />
PHP 5.3.0-dev (cli) (built: Jun 21 2008 18:03:34)<br />
Copyright (c) 1997-2008 The PHP Group<br />
Zend Engine v2.3.0, Copyright (c) 1998-2008 Zend Technologies</p></blockquote>
<blockquote><p>livecd bin # livecd bin # /root/phps/php6.0-dev/bin/php -v<br />
PHP 6.0.0-dev (cli) (built: Jun 21 2008 20:39:02)<br />
Copyright (c) 1997-2008 The PHP Group<br />
Zend Engine v3.0.0-dev, Copyright (c) 1998-2008 Zend Technologies</p></blockquote>
<p>Test polegał na wykonaniu odpowiednio:</p>
<ul>
<li>wywołaniu skryptu binarytrees.php z parametrami o wartości od 1 do 15 oraz zmierzeniu całkowitego czasu wykonania</li>
<li>wywołaniu skryptu n-body.php 1000 razy z parametrem równym 100 oraz zmierzeniu całkowitego czasu wykonania</li>
<li>wywołaniu skryptu startup.php oraz zmierzeniu całkowitego czasu wykonania</li>
<li>wywołanie skryptu sum-file.php 1000 razy wraz z przekazaniem na stdin 10 000 liczby oraz zmierzeniu całkowitego czasu wykonania</li>
<li>wywołanie skryptu recursive.php z parametrami o wartości od 1 do 8 oraz zmierzeniu całkowitego czasu wykonania</li>
</ul>
<p>Poniżej zostały zaprezentowane wyniki poszczególnych wywołań</p>
<p><a href="http://blog.przytulski.net/wp-content/uploads/2008/06/062208-2036-php448php52.png"><img class="alignnone size-full wp-image-52" title="062208-2036-php448php52.png" src="http://blog.przytulski.net/wp-content/uploads/2008/06/062208-2036-php448php52.png" alt="" width="500" height="311" /></a></p>
<p>Wyniki testu nie zaskoczyły mnie specjalnie, PHP4 wbrew powszechnemu, często jeszcze spotykanego mitu wcale nie jest dużo szybsze od PHP5, a nawet jak się okazuje jest o wiele wolniejsze.</p>
<p>Zgodnie z oczekiwaniami wraz z rozwojem PHP znacznie wzrasta czas startu interpretera, co jednak ma znaczenie tylko i wyłącznie w przypadku wykorzystywania PHP w trybie CLI lub CGI. Na szczęście oba te przypadki można zignorować, bowiem tryb CLI nie służy do bezpośredniej obsługi tysięcy jednoczesnych zapytań, natomiast CGI ustępuje pola Fast-CGI, dla którego czas startu interpretera nie odgrywa tak istotnej roli.</p>
<p>Zdziwiło mnie natomiast zachowanie PHP6 w przypadku funkcji rekurencyjnych, w przypadku których jego wydajność była znacznie poniżej oczekiwań.</p>
<p>Oczywiście do premiery PHP6 jeszcze sporo czasu, i pozostaje mieć nadzieje, iż zostanie to poprawione.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2008/06/22/php-4_4_8-php5_2-dev-php5_3-dev-php6_0-dev-test/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mozilla „pod ostrzałem”</title>
		<link>http://blog.przytulski.net/2008/06/17/mozilla-%e2%80%9epod-ostrzalem%e2%80%9d/</link>
		<comments>http://blog.przytulski.net/2008/06/17/mozilla-%e2%80%9epod-ostrzalem%e2%80%9d/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 21:04:57 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2008/06/17/mozilla-%e2%80%9epod-ostrzalem%e2%80%9d/</guid>
		<description><![CDATA[Dziś dzień oficjalnej premiery nowej wersji przeglądarki FireFox w wersji 3.0, od kilkunastu dnia dzień ten poprzedzony jest kampanią marketingową na niespotykaną skalę w świecie Open Source – cel pobicie rekordu Guinnessa w liczbie pobrań oprogramowania w ciągu jednego dnia.
Cel nie lada, a jego osiągnięcie może wymagać radykalnych środków, wygląda na to, iż Mozilla Fundation [...]]]></description>
			<content:encoded><![CDATA[<p>Dziś dzień oficjalnej premiery nowej wersji przeglądarki FireFox w wersji 3.0, od kilkunastu dnia dzień ten poprzedzony jest kampanią marketingową na niespotykaną skalę w świecie Open Source – cel pobicie rekordu Guinnessa w liczbie pobrań oprogramowania w ciągu jednego dnia.</p>
<p><span id="more-50"></span>Cel nie lada, a jego osiągnięcie może wymagać radykalnych środków, wygląda na to, iż Mozilla Fundation postawiła wszystko na to aby zapewnić ku temu odpowiednie warunki, jednak jak można się dziś przekonać nie jest to takie proste – kilka godzin po udostępnieniu do pobrania najnowszej wersji przeglądarki strona <a href="http://firefox.com">http://firefox.com</a> odpowiada z kilkunasto sekundowym opóźnieniem, a serwisy wspierające takie jak <a href="http://addons.mozilla.org">http://addons.mozilla.org</a> praktycznie przestały odpowiadać – prawdopodobnie w wyniku przeciążenia spowodowanego sprawdzaniem i pobieraniem nowych wersji pluginów któro ma miejsce bezpośrednio po instalacji nowej przeglądarki.</p>

<a href='http://blog.przytulski.net/2008/06/17/mozilla-%e2%80%9epod-ostrzalem%e2%80%9d/061708-2104-mozillapodo1png/' title='061708-2104-mozillapodo1.png'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/061708-2104-mozillapodo1-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://blog.przytulski.net/2008/06/17/mozilla-%e2%80%9epod-ostrzalem%e2%80%9d/061708-2104-mozillapodo2png/' title='061708-2104-mozillapodo2.png'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/061708-2104-mozillapodo2-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://blog.przytulski.net/2008/06/17/mozilla-%e2%80%9epod-ostrzalem%e2%80%9d/firefox-2/' title='firefox'><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/firefox-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>

]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2008/06/17/mozilla-%e2%80%9epod-ostrzalem%e2%80%9d/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Składki na Otwarte Fundusze Emerytalne nie są prywatną własnością obywatela</title>
		<link>http://blog.przytulski.net/2008/06/04/skladki-na-otwarte-fundusze-emerytalne-nie-sa-prywatna-wlasnoscia-obywatela/</link>
		<comments>http://blog.przytulski.net/2008/06/04/skladki-na-otwarte-fundusze-emerytalne-nie-sa-prywatna-wlasnoscia-obywatela/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 20:43:45 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[Wiadomości]]></category>

		<category><![CDATA[Własne zdanie]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2008/06/04/skladki-na-otwarte-fundusze-emerytalne-nie-sa-prywatna-wlasnoscia-obywatela/</guid>
		<description><![CDATA[Dziś trochę politycznie:
Odkładanie składek na Otwarte Fundusze Emerytalne jest obowiązkowe - potwierdził w środę Sąd Najwyższy, uznając, że składki takie nie są prywatną własnością obywatela.
Ja tylko spytam - w takim razie czyją ?
Źródło: http://wiadomosci.onet.pl/1762065,10,1,1,,item.html
]]></description>
			<content:encoded><![CDATA[<p>Dziś trochę politycznie:</p>
<blockquote><p>Odkładanie składek na Otwarte Fundusze Emerytalne jest obowiązkowe - potwierdził w środę Sąd Najwyższy, uznając, że składki takie <strong>nie są prywatną własnością obywatela</strong>.</p></blockquote>
<p>Ja tylko spytam - w takim razie czyją ?</p>
<p>Źródło: <a href="http://wiadomosci.onet.pl/1762065,10,1,1,,item.html" target="_blank">http://wiadomosci.onet.pl/1762065,10,1,1,,item.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2008/06/04/skladki-na-otwarte-fundusze-emerytalne-nie-sa-prywatna-wlasnoscia-obywatela/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TortoiseSVN 1.5RC2</title>
		<link>http://blog.przytulski.net/2008/06/02/tortoisesvn-1_5/</link>
		<comments>http://blog.przytulski.net/2008/06/02/tortoisesvn-1_5/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 07:46:28 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[Subversion]]></category>

		<category><![CDATA[tortoisesvn]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2008/06/02/tortoisesvn-15/</guid>
		<description><![CDATA[W poprzednim poście wspominałem o nowych możliwościach repozytorium Subversion, jednak osobiście nie miałem czasu ani chęci na wykorzystanie tychże funkcjonalności w codziennej pracy - wszystko za sprawą braku odpowiedniego klienta (bowiem praca z svn poprzez konsolę nie należy czynności które wykonuje dla przyjemności). Niemniej jednak postanowiłem zweryfikować, czy aby napewno nie ma klienta który by [...]]]></description>
			<content:encoded><![CDATA[<p>W poprzednim poście wspominałem o nowych możliwościach repozytorium Subversion, jednak osobiście nie miałem czasu ani chęci na wykorzystanie tychże funkcjonalności w codziennej pracy - wszystko za sprawą braku odpowiedniego klienta (bowiem praca z svn poprzez konsolę nie należy czynności które wykonuje dla przyjemności). Niemniej jednak postanowiłem zweryfikować, czy aby napewno nie ma klienta który by wspierał nowe możliwości Subversion - swoje poszukiwania rozpocząłem od odpowiedniej wersji TortoiseSVN, i tak po 0,19 sekundy i jednym zapytaniu dla Google okazuje się, iż jest już dostępna wersja 1.5RC2 - ach to lenistwo.<span id="more-31"></span></p>
<p>Kilka chwil później  po upgrade klienta postanowiłem przekonać się jak wygląda praca na nowej wersji.</p>
<p>Jak się można przekonać zmiany tylko na dobre (jak na chwile obecną):</p>
<ol>
<li>Pierwsze co się rzuca w oczy to nowe ikonki - może mało funkcjonalne, ale bardzo widoczne:<a style="border: medium none " title="overlays.png" href="http://blog.przytulski.net/wp-content/uploads/2008/06/overlays.png"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/overlays.png" alt="overlays.png" /></a></li>
<li>Rzut okiem na przeglądarkę repozytorium, zmieniona niemal zupełnie - upodobniona do windowsowego eksploratora plików:<br />
<a title="repo_browser1.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/repo_browser1.PNG"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/repo_browser1.PNG" alt="repo_browser1.PNG" /></a></li>
<li>Nowy revision graph</li>
<li>Checkout - okno zostało rozbudowane o dodatkowe opcje umożliwiające między innymi określenie zakresu plików które powinny zostać pobrane z repozytorium<a title="co.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/co.PNG"><br />
<img src="http://blog.przytulski.net/wp-content/uploads/2008/06/co.PNG" alt="co.PNG" /></a></li>
<li>Nowy merge - chyba najbardziej istotna zmiana, z prostej formatki powstał kreator znacznie uproszczający cały proces - wystarczy wybrać schemat działania i wskazać odpowiednie zasoby. Reszty dokona za nas zółwik i to nie w zółwim tepie - a to dzięki opisanemu wcześniej mechanizmowi śledzenia &#8220;merge tracking&#8221;.<a title="merge1.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/merge1.PNG"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/merge1.PNG" alt="merge1.PNG" /></a><br />
<a title="merge2.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/merge2.PNG"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/merge2.PNG" alt="merge2.PNG" /></a><a title="merge3.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/merge3.PNG"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/merge3.PNG" alt="merge3.PNG" /></a>Oprócz nowego kreatora w trakcie łączenia zmian mamy dodatkowe opcje co do samego sposobu dokonania połączenia - w tym szczególnie przydatne opcje związane z obsługą białych znaków takich jak znaki tabulacji, spacji i nowej linii.<br />
Bardzo interesująo wygląda również obsługa interaktywnego rozwiązywania konflików - które można obsłużyć już w trakcie wykonywania operacji łączenia:<br />
<a title="interactive.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/interactive.PNG"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/interactive.PNG" alt="interactive.PNG" /></a></li>
<li>Widok wygenerowanego przez żółwika changelog&#8217;a:<br />
<a title="changelog.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/changelog.PNG"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/changelog.PNG" alt="changelog.PNG" /></a></li>
<li>Na koniec jeszcze widok drobnych zmian wizualnych - każde okno wykonywania opcji posiada graficzną reprezentację zadania które jest w nim przeprowadzana<br />
<a title="co1.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/co1.PNG"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/co1.PNG" alt="co1.PNG" /></a></li>
</ol>
<p>Więcej informacji pod adresem: <a href="http://tortoisesvn.tigris.org/tsvn_1.5_releasenotes.html" target="_blank">http://tortoisesvn.tigris.org/tsvn_1.5_releasenotes.html</a></p>
<p>Wprawdzie zarówno samo Subversion jak i TortoiseSVN nie są jeszcze oficjalnie opublikowane niemniej jednak sądząc po przygotowanych stronach dzień premiery zbliża się dużymi krokami.</p>
<p><strong>Update:</strong><br />
Wygląda na to, iż nie została jeszcze zaimplementowana obsługa svn:external z relatywną ścieżką do zasobów:<br />
<a title="svn_external.PNG" href="http://blog.przytulski.net/wp-content/uploads/2008/06/svn_external.PNG"><img src="http://blog.przytulski.net/wp-content/uploads/2008/06/svn_external.PNG" alt="svn_external.PNG" /></a></p>
<p><strong>Update 2:</strong></p>
<p>Wersje RC można pobrać z adresu: <a href="http://sourceforge.net/project/showfiles.php?group_id=138498" target="_blank">http://sourceforge.net/project/showfiles.php?group_id=138498</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2008/06/02/tortoisesvn-1_5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Subversion 1.5</title>
		<link>http://blog.przytulski.net/2008/05/31/subversion-1_5/</link>
		<comments>http://blog.przytulski.net/2008/05/31/subversion-1_5/#comments</comments>
		<pubDate>Sat, 31 May 2008 14:47:45 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[Prowadzenie projektów]]></category>

		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2008/05/31/subversion-15/</guid>
		<description><![CDATA[Zapewne już część z Was wie, iż w najbliższym czasie planowane jest wypuszczenie nowej wersji repozytorium kodu Subversion oznaczonej numerkiem 1.5. Zazwyczaj nie popieram publikowania na blogach informacji w stylu - &#8220;Ukazała się nowa wersja PHP&#8221; jednak w tej sytuacji postanowiłem zrobić wyjątek, a wszystko za sprawą dość istotnej zmiany funkcjonalnej kryjącej się pod nazwą [...]]]></description>
			<content:encoded><![CDATA[<p>Zapewne już część z Was wie, iż w najbliższym czasie planowane jest wypuszczenie nowej wersji repozytorium kodu Subversion oznaczonej numerkiem 1.5. Zazwyczaj nie popieram publikowania na blogach informacji w stylu - &#8220;Ukazała się nowa wersja PHP&#8221; jednak w tej sytuacji postanowiłem zrobić wyjątek, a wszystko za sprawą dość istotnej zmiany funkcjonalnej kryjącej się pod nazwą &#8220;<a href="http://subversion.tigris.org/svn_1.5_releasenotes.html#merge-tracking" target="_blank">Merge tracking</a>&#8220;.</p>
<p>O co tutaj właściwie chodzi - jak zapewne wiecie, a część z Was miała okazję się przekonać praca przy dużym projekcie programistycznym bez wykorzystania repozytorium kodu jest praktycznie niemożliwa, a dodatkowo praca w oparciu o blokowanie zasobów jest delikatnie mówiąć niewygodna. Dlatego też zalecaną metodą pracy w takiej sytuacji jest wykorzystanie gałęzi (branches) i okresowe łączenie zmian (merge).</p>
<p><span id="more-30"></span>Brzmi nieźle, ale na tym się kończy przyjemność, a zaczynają się trudności - wszystko za sprawą różnych szkół łączenia zmian i różnych określeń dla tych samych parametrów - efekt: nauczenie nowego programisty czym jest from, to i target wcale nie jest takie proste, a gdy do tego dołożymy &#8220;Suchy przebieg&#8221; zaczynamy wątpić w sensowność zadania. I tutaj znajduje zastosowanie w/w mechanizm śledzenia łączenia, którego zadaniem jest między innymi śledzenie tego co zostało już połączone i automatyczne naniesienie zmian które nie zostały jeszcze na niesione, dzięki czemu merge sprowadza się do:<code><br />
</code></p>
<pre>$ cd KOPIA_ROBOCZA$ svn merge URL_DO_TRUNK</pre>
<p>Dodatkowo dostępne są dwie nowe opcje:</p>
<ul>
<li><strong><code>--record-only</code></strong> - oznaczenie rewizji jako połączona bez wprowadzania zmian</li>
<li><strong><code>--reintegrate</code></strong> - wykorzystywane przy mergowaniu ponownym na trunk - opcja ta ma na celu wykonanie dodatkowych sprawdzeń poprawności nanoszonych zmian</li>
</ul>
<p>Dzięki tym zmianą stosowanie gałęzi rozwojowych w ramach projektu nie powinno już stanowić problemu nawet dla niedoświadczonego użytkownika repozytorium.</p>
<p>Uproszczone łączenie zmian to nie jedyna z nowości warta zauważenia w nowej wersji svn, do równie ciekawych opcji możemy zaliczyć:</p>
<ul>
<li>wsparcie w automatycznym generowaniu changelog&#8217;a</li>
<li>możliwość pobrania z repozytorium tylko interesujących fragmentów drzewa ścieżek</li>
<li>interaktywne rozwiązywanie konfliktów z powłoki systemowej z wykorzystaniem klienta svn</li>
<li>wsparcie dla relatywnych adresów URL w svn:external</li>
</ul>
<p>Dla zainteresowanych więcej informacji dostępnych jest pod adresem: <a href="http://subversion.tigris.org/svn_1.5_releasenotes.html" target="_blank">http://subversion.tigris.org/svn_1.5_releasenotes.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2008/05/31/subversion-1_5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Zmiany - głową w mur ? - Przyjdzie Pan zobaczy&#8230;</title>
		<link>http://blog.przytulski.net/2007/02/25/zmiany-glowa-w-mur-przyjdzie-pan-zobaczy/</link>
		<comments>http://blog.przytulski.net/2007/02/25/zmiany-glowa-w-mur-przyjdzie-pan-zobaczy/#comments</comments>
		<pubDate>Sun, 25 Feb 2007 10:51:52 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[Własne zdanie]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2007/02/25/zmiany-glowa-w-mur-przyjdzie-pan-zobaczy/</guid>
		<description><![CDATA[Od jakiegoś czasu zastanawiam się czy wprowadzanie zmian musi przypominać uderzanie głową w mur, czy też walkę z wiatrakami ?
Jestem bezpośrednio po lekturze artykułu z Harvard Business Review (numer Styczeń – Luty 1997) autorstwa Ronalda A. Heifetz i Donalda L. Laurie i okazuje się, iż problem ten jest powszechny i dotyczy praktycznie każdego sektora gospodarki. [...]]]></description>
			<content:encoded><![CDATA[<p>Od jakiegoś czasu zastanawiam się czy wprowadzanie zmian musi przypominać uderzanie głową w mur, czy też walkę z wiatrakami ?</p>
<p>Jestem bezpośrednio po lekturze artykułu z Harvard Business Review (numer Styczeń – Luty 1997) autorstwa Ronalda A. Heifetz i Donalda L. Laurie i okazuje się, iż problem ten jest powszechny i dotyczy praktycznie każdego sektora gospodarki. Jak można przeczytać w artykule:</p>
<blockquote><p>&#8220;Wielu pracowników ma ambiwalentny stosunek do tego wysiłku i do wyrzeczeń, jakich się od nich wymaga. Często oczekują, że wyższa kadra kierownicza zdejmie większość problemów z ich barków.&#8221;</p></blockquote>
<p><span id="more-29"></span>Jednak tutaj chciałbym poruszyć typowo polski moim zdaniem stosunek do pracy, który nie dotyczy tylko i wyłącznie kadry kierowniczej, a wręcz jest spotykany na wszystkich szczeblach kariery zawodowej, myślę iż każdy zrozumie co mam namyśli gdy przytoczę pewną sytuację jakiej byłem świadkiem:</p>
<blockquote><p>Jakiś czas temu u znajomego w biurze była &#8220;awaria okien&#8221;, a jako że jest zima naturalnym efektem tego był niekoniecznie korzystnych handel wymienny powietrzem z środowiskiem zewnętrznym. Awaria została zgłoszona do zarządcy budynku, niestety bezskutecznie, dopiero podczas mojej wizyty, po ponownym zgłoszeniu problemu pojawił się miły pan w którym pokładano nadzieję rozwiązania problemu. Nasze zdziwienie może chyba najlepiej przedstawić zdaniem, które usłyszeliśmy: &#8220;Przyjdzie Pan zobaczy&#8230;&#8221;. I kolejne oczekiwanie - tym razem na szczęście zakończone rozwiązaniem problemu.</p>
<p style="color: #898989; font-size: 9px" align="right">Opis celowo zmodyfikowany<br />
w celu uniknięcia urażenia osób,<br />
których się dotyczył.</p></blockquote>
<p>Niby, nic strasznego - jednak dobrze obrazuje pewne zaszłości spotykane wciąż m.in.:<br />
•    zgłaszanie, ponawianie próśb - oczekiwanie na swojego rodzaju nabranie mocy urzędowej przez zgłoszenie<br />
•    całą procedurę oceny zgłoszenia, najpierw majster, później fachowcy i dopiero naprawa<br />
•    przekonanie o wyższości i władzy osoby której pomoc jest potrzebna</p>
<p>A to w obecnych czasach jest co najmniej dziwne, że tak prosta sprawa jak dokręcenie śrubek czy uszczelnienie szyby wymaga pełnej procedury trwającej blisko tydzień. Aż strach pomyśleć, ile może trwać tak skomplikowana czynność jak wymiana żarówki (skąd inąd wiem, że klasuje się w ramach tej samej procedury trwającej około tygodnia).</p>
<p>Nie chodzi mi już o sam czas wymagany na wykonanie pracy - ale o stosunek do nie, który niestety w Polsce nie jest na najwyższym poziomie - wciąż aktualne wydaje się powiedzenie: &#8220;Czy się stoi, czy się leży &#8230;. się należy&#8221;. Smutne, ale prawdziwe - podejście takie jest spotykane niemal na każdym kroku - ile jeszcze trzeba będzie czekać, aż ludzie sami zrozumieją, iż podejście takie nie prowadzi do niczego jest jedynie sposobem na wegetację.</p>
<p>Czy tak trudno jest zrozumieć, iż w obecnych czasach, kondycja przedsiębiorstwa przekłada się bezpośrednio na nas samych? Przecież już teraz prowizje od dochodów firmy przeznaczane na premie pracowników nie są rzadkością.<br />
Ale to jeszcze nie wszystko - jak długo jeszcze pracownicy jednej firmy będą zachowywać się jak konkurenci, a nie gracze jednej drużyny?</p>
<p>Co ciekawe, ostatnimi czasy na polskim rynku można zaobserwować umacniające się przekonanie, iż to firma jest dla pracownika, a nie odwrotnie – niebyło by to nic złego, a nawet przejawem zmian poglądowych idących w dobrym kierunku, gdyby nie to, iż pogląd ten jest wypaczany i dostosowywany do własnych potrzeb i korzyści w efekcie czego stosunek pracodawca - pracownik sprowadza się do sytuacji, w której pracownik oczekuje wszystkiego jako jego prawa, a pracodawcy ? - co łaska. Sytuacja ta umacnia się na polskim rynku pracy wraz ze wzrostem emigracji, i kurczeniem się zasobów potencjalnych pracowników.</p>
<p>Podsumowując - jak długo przyjdzie nam czekać na zmianę mentalności ludzkiej, kiedy standardem stanie sie dostawanie tego o co się prosi, bez ponawiania swoich próśb w nieskończoność i zbędnej biurokracji. Kiedy zaczniemy wymagać czegoś od siebie samych, a nie tylko od ludzi otaczających nas?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2007/02/25/zmiany-glowa-w-mur-przyjdzie-pan-zobaczy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Obsługa Request w PHP6</title>
		<link>http://blog.przytulski.net/2007/02/24/obsluga-request-w-php6/</link>
		<comments>http://blog.przytulski.net/2007/02/24/obsluga-request-w-php6/#comments</comments>
		<pubDate>Sat, 24 Feb 2007 21:01:11 +0000</pubDate>
		<dc:creator>Michał Przytulski</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Przyszłość PHP]]></category>

		<category><![CDATA[Wiadomości]]></category>

		<category><![CDATA[php6]]></category>

		<guid isPermaLink="false">http://blog.przytulski.net/2007/02/24/obsluga-request-w-php6/</guid>
		<description><![CDATA[Znana jest już koncepcja obsługi żądań, która zostanie wprowadzona wraz z wejściem PHP6 (Unicode), informacje na ten temat opublikował Andrei Zmievski na swoim blogu.
Jednym z głównych problemów związanych z wprowadzeniem Unicode dla PHP jest poprawne rozpoznanie kodowania znaków przychodzącego żądania. Sposobów na to jest przynajmniej kilka, jednak niestety żaden nie jest w 100% pewny, i [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.przytulski.net/wp-content/uploads/2008/06/php.gif"><img class="alignleft size-medium wp-image-62" title="php" src="http://blog.przytulski.net/wp-content/uploads/2008/06/php.gif" alt="" width="120" height="67" /></a><span class="blogHeader">Znana jest już koncepcja obsługi żądań, która zostanie wprowadzona wraz z wejściem PHP6 (Unicode), informacje na ten temat opublikował </span><span class="blogHeader">Andrei Zmievski na swoim <a href="http://www.gravitonic.com/blog/archives/000360.html#360" target="_blank">blogu</a></span><span class="blogHeader">.</span></p>
<p>Jednym z głównych problemów związanych z wprowadzeniem Unicode dla PHP jest poprawne rozpoznanie kodowania znaków przychodzącego żądania. Sposobów na to jest przynajmniej kilka, jednak niestety żaden nie jest w 100% pewny, i nie można na nim polegać. Co za tym idzie twórcy PHP stanęli przed wyzwaniem stworzenia skutecznego i elastycznego rozwiązania niewpływającego znacznie na wydajność całego interpretera.</p>
<p><span id="more-28"></span>Wprowadzona wraz z PHP6 implementacja mechanizmów rozpoznawania kodowania zostanie oparta na wzorcu Lazy Load, którego głównym celem jest odroczenie wykonania do chwili, gdy nastąpi odwołanie do zasobu będącego wynikiem przetwarzania dokonywanego przez dany mechanizm. W przypadku PHP odwołaniem takim będzie próba pobrania danych z tablic $_GET, $_POST, $_REQUEST. Do tego czasu całe zapytanie będzie przechowywane wyłącznie w postaci źródłowej (RAW). Dodatkowo możliwa predefiniowanie / zmiana kodowania znaków poprzez funkcję <tt>http_input_encoding()</tt>, po wywołaniu której cała procedura konwersji źródłowego zapytania będzie wywołana od początku przy pierwszym odwołaniu od tablic danych ($_POST, $_GET, $_REQUEST).<br />
Rozwiązanie takie ma kilka zalet:</p>
<ul>
<li>całkowity koszt związany z rozpoznaniem kodowania, jak również konwersją zestawu znaków będzie ponoszony tylko i wyłącznie w przypadku, gdy dane te będą faktycznie wykorzystywane,</li>
<li>ewentualne błędy związane z konwersją zestawu znaków wystąpią w trakcie wykonania dzięki czemu będą mogły być przechwycone przez programistów,</li>
<li>istniej możliwość zmiany kodowania w trakcie wywołania,</li>
</ul>
<p>Jednak jak donosi <a href="http://toys.lerdorf.com/" target="_blank">Rasmus Lerdorf</a> rozwiązanie takie może nieść potencjalne zagrożenie, polegające na próbach zmiany zapytania w celu umieszczenia danych powodujących błędy konwersji, niemniej jednak w planach jest bezbolesne zabezpieczenie przed tego typu próbami.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.przytulski.net/2007/02/24/obsluga-request-w-php6/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
