<?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>extraweb.pl</title>
	<atom:link href="http://extraweb.pl/feed" rel="self" type="application/rss+xml" />
	<link>http://extraweb.pl</link>
	<description>Łukasz Modliński, programista Web</description>
	<lastBuildDate>Fri, 13 Apr 2012 18:38:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Jak szybko usunąć wszystkie tabele z bazy MySQL?</title>
		<link>http://extraweb.pl/2012/04/jak-szybko-usunac-wszystkie-tabele-z-bazy-mysql</link>
		<comments>http://extraweb.pl/2012/04/jak-szybko-usunac-wszystkie-tabele-z-bazy-mysql#comments</comments>
		<pubDate>Fri, 13 Apr 2012 18:29:37 +0000</pubDate>
		<dc:creator>luck</dc:creator>
				<category><![CDATA[Bez kategorii]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://extraweb.pl/?p=307</guid>
		<description><![CDATA[Ostatnio potrzebowałem ponownie zainstalować pewną aplikację opartą na MySQL i PHP, jednak przed instalacją należało usunąć istniejące w bazie tabele. Chwila szukania i trafiłem na ciekawy post, który opisuje świetny sposób: Drop all tables in a MySQL database. Jedno polecenie załatwia cały problem od ręki: mysqldump -u&#91;USERNAME&#93; -p&#91;PASSWORD&#93; --add-drop-table --no-data [DATABASE] &#124; grep ^DROP &#124; ...]]></description>
			<content:encoded><![CDATA[<p>Ostatnio potrzebowałem ponownie zainstalować pewną aplikację opartą na MySQL i PHP, jednak przed instalacją należało usunąć istniejące w bazie tabele. Chwila szukania i trafiłem na ciekawy post, który opisuje świetny sposób: <a href="http://www.thingy-ma-jig.co.uk/comment/7075">Drop all tables in a MySQL database</a>.</p>
<p><span id="more-307"></span></p>
<p>Jedno polecenie załatwia cały problem od ręki:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysqldump <span style="color: #66cc66;">-</span>u<span style="color: #66cc66;">&#91;</span>USERNAME<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">-</span>p<span style="color: #66cc66;">&#91;</span>PASSWORD<span style="color: #66cc66;">&#93;</span> <span style="color: #808080; font-style: italic;">--add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]</span></pre></div></div>

</p>
<p>Oczywistości, jak to co oznaczają pola w kwadratowych nawiasach nie trzeba tłumaczyć. Dzięki temu otrzymujemy bazę pozbawioną tabel, zachowując przy tym pozostałe ustawienia &#8211; w przeciwieństwie do użycia DROP/CREATE DATABASE.</p>
]]></content:encoded>
			<wfw:commentRss>http://extraweb.pl/2012/04/jak-szybko-usunac-wszystkie-tabele-z-bazy-mysql/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Czysty PHP vs Twig</title>
		<link>http://extraweb.pl/2011/09/czysty-php-vs-twig</link>
		<comments>http://extraweb.pl/2011/09/czysty-php-vs-twig#comments</comments>
		<pubDate>Sun, 11 Sep 2011 11:04:12 +0000</pubDate>
		<dc:creator>luck</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony2]]></category>
		<category><![CDATA[twig]]></category>

		<guid isPermaLink="false">http://extraweb.pl/?p=225</guid>
		<description><![CDATA[Ponieważ framework symfony2 już jakiś czas temu miał swoją oficjalną premierę zacząłem się poważnie zastanawiać, czy nie oprzeć na nim kolejnego projektu. Jedną z nowości w stosunku do wersji 1.4 jest Twig &#8211; system szablonów, którego autorem jest Fabien Potencier, główny developer symfony. Zastanawia mnie, czy stosowanie Twiga rzeczywiście usprawnia tworzenie projektów, czy jest tylko ...]]></description>
			<content:encoded><![CDATA[<p>Ponieważ framework symfony2 już jakiś czas temu miał swoją oficjalną premierę zacząłem się poważnie zastanawiać, czy nie oprzeć na nim kolejnego projektu. Jedną z nowości w stosunku do wersji 1.4 jest <a href="http://twig.sensiolabs.org/">Twig</a> &#8211; system szablonów, którego autorem jest Fabien Potencier, główny developer symfony. Zastanawia mnie, czy stosowanie Twiga rzeczywiście usprawnia tworzenie projektów, czy jest tylko zbędnym gadżetem?</p>
<p><span id="more-225"></span>Do tej pory w symfony szablony opisywałem w czystym PHP i nigdy nie doświadczyłem jakichś negatywnych skutków. Dlaczego zatem twórcy sf zdecydowali, że własny język używany do budowania widoków jest potrzebny? W <a href="http://fabien.potencier.org/article/34/templating-engines-in-php">jednym z artykułów</a> na swojej stronie Fabien przytacza kilka argumentów. Przede wszystkim stwierdza, że PHP przestał być dobrym systemem szablonów. Na zasadzie porównań z Django przedstawia wady stosowania PHP do opisywania widoków.</p>
<h3>Zwięzłość</h3>
<p>Nawet tak trywialny przykład jak wyświetlenie zmiennej pokazuje, że PHP wymaga dłuższego kodu:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$var</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="smarty" style="font-family:monospace;"><span style="color: #D36900;">&#123;</span><span style="color: #D36900;">&#123;</span> var <span style="color: #D36900;">&#125;</span>}</pre></div></div>

<p>Gdyby jednak w PHP nie zrezygnowano ze skrótu wyświetlania, to wystarczyłoby napisać:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?=</span> <span style="color: #000088;">$var</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Wtedy przewaga systemu szablonów byłaby moim zdaniem żadna.<br />
Następne na tapecie jest filtrowanie wyjścia:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">ENT_QUOTES</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'UTF-8'</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="smarty" style="font-family:monospace;"><span style="color: #D36900;">&#123;</span><span style="color: #D36900;">&#123;</span> var|escape <span style="color: #D36900;">&#125;</span>}</pre></div></div>

<p>Jest krócej, to fakt. Ale coś tu jest chyba nie tak? Myślałem, że szablon ma odseparować logikę od widoku, a ew. czyszczenie i przetworzenie zmiennych należy przeprowadzić choćby w kontrolerze. A skoro tak, to po co mi do tego system szablonów?</p>
<h3>Składnia zorientowana na szablony</h3>
<p>Następny przykład &#8211; pętla:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$items</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
  <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$items</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$item</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
    * <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$item</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
  <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endforeach</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">else</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
    No item has been found.
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</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="smarty" style="font-family:monospace;"><span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> for <span style="color: #6A0A0A;">item</span> in items <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
  * <span style="color: #D36900;">&#123;</span><span style="color: #D36900;">&#123;</span> <span style="color: #6A0A0A;">item</span> <span style="color: #D36900;">&#125;</span>}
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> <span style="color: #0600FF;">else</span> <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
  No item has been found.
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> endfor <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span></pre></div></div>

<p>Ok, format Django jest krótszy, ale dla mnie jako programisty konstrukcja &#8222;for&#8230;else&#8221; jest conajmniej dziwna i mniej czytelna niż wersja PHP. Ciekawe też, czy w Django (a więc pewnie i Twigu) jest więcej takich &#8222;ficzerów&#8221;, czy to tylko jednorazowa funkcjonalność &#8211; tak na pokaz.</p>
<h3>Ponowne wykorzystanie kodu</h3>
<p>Fabien wspomina również o funkcji dziedziczenia szablonów.</p>

<div class="wp_syntax"><div class="code"><pre class="smarty" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">&lt;!-- base.html --&gt;</span>
<span style="color: #009000;">&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;</span>
  <span style="color: #009000;">&lt;head&gt;</span>
    <span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> block head <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
      <span style="color: #009000;">&lt;link rel=&quot;stylesheet&quot; href=&quot;main.css&quot; /&gt;</span>
    <span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> endblock <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
  <span style="color: #009000;">&lt;/head&gt;</span>
  <span style="color: #009000;">&lt;body&gt;</span>
    <span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> block content <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span><span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> endblock <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
  <span style="color: #009000;">&lt;/body&gt;</span>
<span style="color: #009000;">&lt;/html&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!-- index.html --&gt;</span>
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> extends <span style="color: #ff0000;">&quot;base.html&quot;</span> <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
&nbsp;
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> block head <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
  <span style="color: #D36900;">&#123;</span><span style="color: #D36900;">&#123;</span> block.<span style="color: #006600;">super</span> <span style="color: #D36900;">&#125;</span>}
  <span style="color: #009000;">&lt;link rel=&quot;stylesheet&quot; href=&quot;main.css&quot; /&gt;</span>
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> endblock <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
&nbsp;
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> block content <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
  Index content
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> endblock <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span></pre></div></div>

<p>Zgadzam się, że to jest ciekawa funkcjonalność i dopóki samo PHP nie umożliwi innego sposobu wstawiania zawartości jak &#8222;include/require&#8221;, to osobiście uważam ją za przydatną. Co prawda system szablonów suma-sumarum i tak zamieni te wszystkie instrukcje na PHPowe &#8222;include&#8221;, ale łatwość definiowania wartości domyślnych akurat mi się podoba. Tutaj daję plus.</p>
<h3>Bezpieczeństwo i sandbox</h3>
<p>Tym razem autor porusza kwestię bezpieczeństwa i jako zaletę przytacza fakt, że symfony jako pierwszy framework dla web charakteryzował się automatycznym filtrowaniem, czy też &#8222;escapeowaniem&#8221; (dziwnie to wygląda) wyjścia. Co z tego, skoro po raz kolejny na warstwę widoku zrzuca się kwestie, za które moim zdaniem nie powinna ona odpowiadać. Oczywiście zależy, jaką główną funkcję naszym zdaniem ma spełniać system szablonów: jeśli ma ułatwiać i przyspieszać pracę, to może być dobre rozwiązanie. Ja natomiast system taki postrzegam jako mechanizm separowania różnych warstw aplikacji, którego zadaniem jest wyświetlanie odpowiednio przygotowanych danych, nie zaś ich obrabianie. Ma on jedynie ułatwić zadanie osobie projektującej layout. Nie rozumiejąc istoty, ani powodu umieszczenia niektórych zapisów może ona zwyczajnie usunąć pewne elementy szablonu. Zatem jaki rozsądny programista pozostawi grafikowi jedną z kluczowych kwestii bezpieczeństwa?</p>
<p>Pomijając powyższe, autor sam przyznaje, że domyślnie przyjęta polityka filtrowania wszystkiego, zamiast ułatwiać może uprzykrzać życie. W tym celu wprowadzono możliwość wyłączania omawianego mechanizmu na żądanie:</p>

<div class="wp_syntax"><div class="code"><pre class="smarty" style="font-family:monospace;"><span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> autoescape off <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
  <span style="color: #D36900;">&#123;</span><span style="color: #D36900;">&#123;</span> object.<span style="color: #006600;">as_html</span> <span style="color: #D36900;">&#125;</span>}
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> endautoescape <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span></pre></div></div>

<p>Wydaje mi się, że z domyślnym filtrowaniem może być więcej problemów niż pożytku &#8211; nie uważam tego za dobre rozwiązanie. Mam nadzieję, że w konfiguracji Twiga da się to jakoś wyłączyć. </p>
<p>Wyjątkiem może być tutaj &#8222;sandbox mode&#8221;. Jeśli nasza aplikacja z założenia musi pozwalać na osadzanie na stronie kodu wygenerowanego przez użytkownika, to tryb chroniony może się rzeczywiście przydać.</p>

<div class="wp_syntax"><div class="code"><pre class="smarty" style="font-family:monospace;"><span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> sandbox <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
    <span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> <span style="color: #0600FF;">include</span> <span style="color: #ff0000;">&quot;foo.twig&quot;</span> <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
    <span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> <span style="color: #0600FF;">include</span> <span style="color: #ff0000;">&quot;bar.twig&quot;</span> <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span>
<span style="color: #D36900;">&#123;</span><span style="color: #D36900;">%</span> endsandbox <span style="color: #D36900;">%</span><span style="color: #D36900;">&#125;</span></pre></div></div>

<h3>Porównanie z innymi systemami szablonów</h3>
<p>Jak nietrudno się domyślić, na stronie autora w porównaniu z konkurencją Twig zawsze wygrywa. Co z tego, jeśli w porównaniu autor nie umieścił najbardziej nas interesującego &#8211; czystego PHP. Mimo tego, że szablony Twiga są kompilowane do PHP, to podejrzewam, że programista musiałby być naprawdę kiepski, żeby stworzyć widok w PHP, który wydajnościowo przegrałby z takim samym generowanym przez system szablonów.</p>
<h3>Jak zwykle &#8211; wszystko zależy&#8230;</h3>
<p>Odniosłem wrażenie, że Twig jako podstawowy system opisu widoków w symfony2 jest rozwiązaniem dołożonym niejako na siłę, tylko dlatego, że taki jest obecnie trend. Jaki zatem może być sens stosowania systemu szablonów? Odpowiedź jest prosta: utrudniając pracę sobie, ułatwiamy życie grafikowi, czy projektantowi UI. Z pewnością elastycznemu programiście będzie łatwiej nauczyć się języka opisu szablonów by dostosować swoją wiedzę do potrzeb grafika, niż odwrotnie. Jeśli przyjazny wygląd aplikacji jest jednym z kluczowych wymogów stawianych przez klienta, to mając na uwadze dziedziczenie szablonów oraz ew. sandbox, warto rozważyć możliwość zastosowania mechanizmów Twiga. Przy dużych projektach, nad którymi pracuje zespół osób, gdzie można wyodrębnić grupę odpowiedzialną za UI, byłbym skłonny wykorzystać system szablonów na rzecz ułatwienia im pracy. W każdym innym wypadku raczej podziękuję i zostanę przy zwykłym, czystym PHP. Tak, czy inaczej, z czystej ciekawości na pewno wypróbuję Twiga, żeby zweryfikować wszystko, co napisałem.</p>
<p>Zaznaczam jeszcze raz, że Twiga dotąd nie używałem, a jedynie przymierzam się do jego wykorzystania. Opinię na jego temat opieram na materiałach zawartych na stronie autora projektu. Jeśli macie jakieś sugestie lub doświadczenia z używaniem systemów szablonów w PHP, ew. możecie podać inne &#8222;za&#8221; o &#8222;przeciw&#8221; &#8211; będę wdzięczny.</p>
]]></content:encoded>
			<wfw:commentRss>http://extraweb.pl/2011/09/czysty-php-vs-twig/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sposób na losowe hasło</title>
		<link>http://extraweb.pl/2011/09/sposob-na-losowe-haslo</link>
		<comments>http://extraweb.pl/2011/09/sposob-na-losowe-haslo#comments</comments>
		<pubDate>Sat, 10 Sep 2011 08:49:06 +0000</pubDate>
		<dc:creator>luck</dc:creator>
				<category><![CDATA[Porady]]></category>
		<category><![CDATA[porady linux]]></category>

		<guid isPermaLink="false">http://extraweb.pl/?p=213</guid>
		<description><![CDATA[W swojej pracy z pewnością nie raz spotkaliście zdarzyło się Wam otrzymać od klienta e-mail z prośbą o np. założenie w panelu administracyjnym WWW konta dla nowego użytkownika. Oczywiście wiąże się to zawsze z utworzeniem loginu i hasła. O ile z nazwą użytkownika raczej nie ma problemu, to już jakiś czas temu znudziło mi się ...]]></description>
			<content:encoded><![CDATA[<p>W swojej pracy z pewnością nie raz spotkaliście zdarzyło się Wam otrzymać od klienta e-mail z prośbą o np. założenie w panelu administracyjnym WWW konta dla nowego użytkownika. Oczywiście wiąże się to zawsze z utworzeniem loginu i hasła. O ile z nazwą użytkownika raczej nie ma problemu, to już jakiś czas temu znudziło mi się wymyślanie nowych haseł &#8222;na poczekaniu&#8221;, dlatego ostatnio przypomniałem sobie, że istnieje o wiele wygodniejsze wyjście, pozwalające wygenerować losowe hasło.</p>
<p><span id="more-213"></span>Chociaż z podobnymi rozwiązaniami spotykałem się już wcześniej, to opisywaną metodę zacząłem stosować po przeczytaniu książki &#8222;Asterisk: The Definitive Guide&#8221; wydawnictwa O&#8217;Reilly. W rozdziale zatytułowanym &#8222;User device configuration&#8221; podczas omawiania szczegółów dotyczących konfiguracji kont SIP dla urządzeń został podany następujący sposób na wygenerowanie losowego i dość &#8222;silnego&#8221; hasła przy użyciu linuksowej konsoli:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">dd</span> <span style="color: #007800;">if</span>=<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>random <span style="color: #007800;">count</span>=<span style="color: #000000;">1</span> <span style="color: #007800;">bs</span>=<span style="color: #000000;">8</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">|</span> base64 <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/=*$//'</span></pre></div></div>

<p>Wystarczy wklepać (lub wygodniej wkleić) to polecenie w terminalu i jako wynik otrzymamy wygenerowane np. takie hasło: <strong>Vecls7Dm5O4yTgJo</strong>. Parametr bs=8 mówi nam o długości hasła &#8211; w tym przypadku będzie ono miało 8 znaków.</p>
<p>Zakładam, że każdy programista web ma podczas pracy dostęp do konsoli linuksa, dlatego praktycznie w każdej chwili możemy w/w sposób wykorzystać. Jeśli chodzi o generowanie hasła pod Windowsem, jedyne co mi przychodzi do głowy, to jakiś generator online. Być może macie jakieś sprawdzone sposoby. Jeśli tak, to chętnie je poznam.</p>
]]></content:encoded>
			<wfw:commentRss>http://extraweb.pl/2011/09/sposob-na-losowe-haslo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Czy programista powinien prowadzić blog?</title>
		<link>http://extraweb.pl/2011/09/czy-programista-powinien-prowadzic-blog</link>
		<comments>http://extraweb.pl/2011/09/czy-programista-powinien-prowadzic-blog#comments</comments>
		<pubDate>Sun, 04 Sep 2011 12:48:00 +0000</pubDate>
		<dc:creator>luck</dc:creator>
				<category><![CDATA[Bez kategorii]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[programowanie]]></category>

		<guid isPermaLink="false">http://extraweb.pl/?p=165</guid>
		<description><![CDATA[Pracując nad nową wersją mojej strony napotkałem na pewien dylemat. Czy przy okazji wprowadzanych zmian powinienem  również założyć bloga? W dobie wszechobecnych &#8222;social mediów&#8221; i bloggerów taka forma przedstawienia swojej działalności wydaje się być konieczna. Mnie jednak w tym wypadku nie przekonał argument &#8222;wszyscy tak robią&#8221;. Od dość długiego czasu poza forami internetowymi nie uprawiałem ...]]></description>
			<content:encoded><![CDATA[<p>Pracując nad nową wersją mojej strony napotkałem na pewien dylemat. Czy przy okazji wprowadzanych zmian powinienem  również założyć bloga? W dobie wszechobecnych &#8222;social mediów&#8221; i bloggerów taka forma przedstawienia swojej działalności wydaje się być konieczna.</p>
<p><span id="more-165"></span>Mnie jednak w tym wypadku nie przekonał argument &#8222;wszyscy tak robią&#8221;. Od dość długiego czasu poza forami internetowymi nie uprawiałem innej formy komunikacji z ludźmi z branży, o ile z nimi nie współpracowałem.<br />
Spróbowałem krótko rozważyć wszystkie zalety posiadania bloga.</p>
<h3>Czerpiesz wiedzę &#8211; dziel się nią.</h3>
<p>Jestem czytelnikiem blogów dla programistów. Dla przykładu <a href="http://jlaskowski.blogspot.com/">Jacek Laskowski</a> w swoich wpisach nie raz otwierał mi oczy na wiele aspektów związanych z programowaniem Java. Czasem czyjś kilkulinijkowy post nagle rozjaśniał mi w głowie chroniąc przed wymyślaniem koła na nowo. Blogi są zatem dla programistów źródłem wiedzy, które trudno przecenić. Skoro więc sam z tej wiedzy korzystam, będzie jak najbardziej w porządku jeśli dołożę coś od siebie. Pozostaje mieć nadzieję, że korzyści będą obopólne: czytelnicy zdobędą nowe informacje, a ja będę mieć świadomość, że moja wiedza i doświadczenie mogły posłużyć nie tylko osobom, które za nie zapłaciły.</p>
<h3>Konstruktywna krytyka.</h3>
<p>Z doświadczenia wiem, że pisząc artykuły mimo najszczerszych chęci należy się liczyć z niepochlebnymi opiniami. Mogą one być zarówno niezasłużone, jak i w pełni uzasadnione. Przy zdrowym podejściu do siebie i komentujących będziemy w stanie wyłuskać spośród fali krytyki konstruktywne opinie i nauczymy się ich poprawnej interpretacji oraz wyciągania prawidłowych wniosków. Programiście pozwoli to zarówno na dostrzeżenie błędnego pojmowania niektórych mechanizmów, jak również skonfrontowanie opisywanych rozwiązań z innymi osobami &#8222;z branży&#8221;, nierzadko bardziej doświadczonymi w danym temacie.</p>
<h3>Dokładne poznanie zagadnienia.</h3>
<p>Opisywanie zagadnienia jest najlepszym sposobem na jego lepsze zrozumienie. Pisząc na dany temat, liczymy się z możliwością wystąpienia wspomnianej krytyki. Dzięki temu mamy motywację do jak najdokładniejszego poznania szczegółów poruszanego tematu i podania możliwie najbardziej rzetelnych informacji.</p>
<h3>Blog to doskonała forma promocji.</h3>
<p>Nawet najładniej opakowana w marketingowy bełkot prezentacja nie powie potencjalnemu klientowi tyle na temat programisty, co przeczytanie kilku artykułów na jego blogu. Pozwoli to ocenić komunikatywność, charakter oraz &#8211; co najważniejsze &#8211; rzeczywistą wiedzę i kompetencje. Zatem: pozwolimy się poznać przyszłemu klientowi.</p>
<p>Z wymienionych powodów do całej blogosfery dołączam również moją skromną osobę. Mnie przytoczone argumenty przekonały. Jeśli znacie jeszcze jakieś, będę wdzięczny za podzielenie się nimi.</p>
]]></content:encoded>
			<wfw:commentRss>http://extraweb.pl/2011/09/czy-programista-powinien-prowadzic-blog/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

