<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
  <channel>
    <title>this.is.rootnode</title>
    <link>http://blog.marcinhlybin.com</link>
    <description>[deep development bleeding edge]</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#4a050ca28" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/marcinhlybin" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="marcinhlybin" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><item>
      <pubDate>Sat, 24 Jul 2010 04:41:00 -0700</pubDate>
      <title>Czy pracując w Polsce można kupić kabrioleta?</title>
      <link>http://blog.marcinhlybin.com/czy-pracujac-w-polsce-mozna-kupic-kabrioleta</link>
      <guid>http://blog.marcinhlybin.com/czy-pracujac-w-polsce-mozna-kupic-kabrioleta</guid>
      <description>
        <![CDATA[<p>
	<p>Przeglądając kabriolety w serwisie oferującym <a href="http://mobile.de">samochody używane</a> naszła mnie pewna refleksja na temat jakości życia w Polsce. W tym poście bardzo skr&oacute;towo por&oacute;wnam pracę w Polsce z pracą na zachodzie.</p>
<p></p>
<p><div class='p_embed p_image_embed'>
<a href="http://posterous.com/getfile/files.posterous.com/temp-2010-07-24/yAlFtkHhlpkvadijyAuFburjBdjjfcnvmyzEJvoeaJHhmobdGwvssFFisDxh/mazda-mx5-bigg-front.jpg.scaled1000.jpg"><img alt="Mazda-mx5-bigg-front" height="375" src="http://posterous.com/getfile/files.posterous.com/temp-2010-07-24/yAlFtkHhlpkvadijyAuFburjBdjjfcnvmyzEJvoeaJHhmobdGwvssFFisDxh/mazda-mx5-bigg-front.jpg.scaled500.jpg" width="500" /></a>
<img alt="2008-mazda-mx-5-miata-14" height="333" src="http://posterous.com/getfile/files.posterous.com/temp-2010-07-24/mCDCAvlCGjiHGcbhlBoDFzcgignycwejHxBudvDtvsxEvjekxjhhHwyGvFiu/2008-mazda-mx-5-miata-14.jpg.scaled500.jpg" width="500" />
<div class='p_see_full_gallery'><a href="http://blog.marcinhlybin.com/czy-pracujac-w-polsce-mozna-kupic-kabrioleta">See the full gallery on Posterous</a></div>
</div>
</p>
<p><span style="font-size: x-large;">Polski rynek pracy.</span></p>
<p>Wyobraź sobie przeciętnego pracownika branży IT. Informatyka, kt&oacute;ry skończył studia, wie co to jest RUP, umie przepisać Facebooka na Javę.&nbsp;Zarobki 3000zł.&nbsp;</p>
<p><span style="font-size: large;">3000zł</span></p>
<p>A więc jestem radosnym absolwentem, kt&oacute;ry co miesiąc dostaje 3000zł. Wynajmuję mieszkanie w pięknym mieście, w kt&oacute;rym pracuję za 1200zł.&nbsp;</p>
<p><span style="font-size: large;">1800zł</span></p>
<p>Codziennie w pracy wcinam obiadek za 15zł. 20 dni obiadk&oacute;w to 300zł. Do tego 11 pozostałych dni gotowania w domu plus śniadanka i przekąski daje nam 500zł na jedzenie i to nie szalejąc zbytnio.</p>
<p><span style="font-size: large;">1300zł</span></p>
<p>Idziemy na piwko, na squasha, na kręgle, na basen, zabieramy kobietę do kina - niekoniecznie w tej kolejności. 300zł znika.</p>
<p><span style="font-size: large;">1000zł</span></p>
<p>Opłacamy paliwo, telefon kom&oacute;rkowy, internet w domu i inne zobowiązania. To nam daje minus 300zł.</p>
<p><span style="font-size: large;"><strong>700zł</strong></span></p>
<p>Możemy odłożyć nasze ciężko zarobione 700zł. Na kabrioleta kosztującego 40.000zł uzbieramy za <strong>57 miesięcy</strong>, czyli prawie 5 lat!</p>
<p>&nbsp;</p>
<p><span style="font-size: x-large;">Praca na zachodzie.</span></p>
<p>Wyobraź sobie przeciętnego pracownika branży IT w Niemczech. Może być nawet zdolny informatyk, kt&oacute;ry wyjechał za granicę. Zarobki &euro;2000 netto.</p>
<p><span style="font-size: large;">&euro;2000</span></p>
<p>Jestem radosnym absolwentem wynajmującym mieszkanie w pieknym niemieckim mieście za &euro;500.&nbsp;</p>
<p><span style="font-size: large;">&euro;1500</span></p>
<p>Codziennie w pracy wcinam obiadek za &euro;5, co daje mi &euro;100 w miesiącu. Do tego r&oacute;żnego rodzaju przekąski, trochę gotowania w domu i zamykam się w &euro;200 na miesiąc nie oszczędzając na niczym.</p>
<p><span style="font-size: large;">&euro;1300</span></p>
<p>Piwko, kręgle i inne uciechy, max &euro;100.</p>
<p><span style="font-size: large;">&euro;1200</span></p>
<p>Opłacamy paliwo, telefony, internet - &euro;200.</p>
<p><span style="font-size: large;"><strong>&euro;1000</strong></span></p>
<p>Spokojnie jesteśmy w stanie odłożyć &euro;1000. Kabriolet kosztuje &euro;10.000 i kupimy go za <strong>&nbsp;10 miesięcy.&nbsp;</strong></p>
<p>&nbsp;</p>
<p><span style="font-size: x-large;">Jest pięknie?</span></p>
<p>Po dw&oacute;ch miesiącach pracy możemy sobie kupić nowego iMaca 27", rower z wyższej p&oacute;łki lub trzy dowolne najnowocześniejsze telefony z Androidem. W Polsce jeden taki telefon kupisz dopiero po 4 miesiącach.&nbsp;</p>
<p>Podsumowując za wykonanie takiej samej pracy Polak idzie do sklepu po iMaca, a Niemiec kupuje kabrioleta. <strong>Fuck!</strong></p>
<p>&nbsp;</p>
	
</p>

<p><a href="http://blog.marcinhlybin.com/czy-pracujac-w-polsce-mozna-kupic-kabrioleta">Permalink</a> 

	| <a href="http://blog.marcinhlybin.com/czy-pracujac-w-polsce-mozna-kupic-kabrioleta#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/578280/gnu.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5eHx81CM5PsR</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ahes</posterous:nickName>
        <posterous:displayName>ahes</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="1050" width="1400" url="http://getfile5.posterous.com/getfile/files.posterous.com/temp-2010-07-24/yAlFtkHhlpkvadijyAuFburjBdjjfcnvmyzEJvoeaJHhmobdGwvssFFisDxh/mazda-mx5-bigg-front.jpg">
        <media:thumbnail height="375" width="500" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-07-24/yAlFtkHhlpkvadijyAuFburjBdjjfcnvmyzEJvoeaJHhmobdGwvssFFisDxh/mazda-mx5-bigg-front.jpg.scaled500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="333" width="500" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2010-07-24/mCDCAvlCGjiHGcbhlBoDFzcgignycwejHxBudvDtvsxEvjekxjhhHwyGvFiu/2008-mazda-mx-5-miata-14.jpg">
        <media:thumbnail height="333" width="500" url="http://getfile1.posterous.com/getfile/files.posterous.com/temp-2010-07-24/mCDCAvlCGjiHGcbhlBoDFzcgignycwejHxBudvDtvsxEvjekxjhhHwyGvFiu/2008-mazda-mx-5-miata-14.jpg.scaled500.jpg" />
      </media:content>
    </item>
    <item>
      <pubDate>Sun, 18 Jul 2010 03:46:00 -0700</pubDate>
      <title>Faktury w systemie PayPal</title>
      <link>http://blog.marcinhlybin.com/faktury-w-systemie-paypal</link>
      <guid>http://blog.marcinhlybin.com/faktury-w-systemie-paypal</guid>
      <description>
        <![CDATA[<p>
	<p>Wiele osób ma problem z fakturowaniem zakupów dokonanych za pośrednictwem systemu PayPal. Niedawno stworzyłem <a href="http://files.bannersnack.net/app/swf2/EmbedPlayerV2.swf?hash_id=1ec9c0b4954b3c8f6aa7911bab416693&amp;watermark=0&amp;bgcolor=#333333&amp;clickTag=null">baner</a> w serwisie <a href="http://www.bannersnack.com/">BannerSnack</a> za który przyszło mi zapłacić $19. Nie jest to co prawda jakaś wygórowana kwota, ale w przyszłości może pojawić się podobny problem przy zakupie przez PayPal już za wyższą kwotę, dlatego też postanowiłem zbadać problem faktur. <p /> Jak wiadomo zakupując coś przez PayPal dostajemy jedynie potwierdzenie zapłaty, na której niestety nie są widoczne żadne istotne dane sprzedawcy tak jak np. adres, czy numer VAT (czyli polski NIP). Najczęściej jest jedynie adres e-mail i kwota bez podziału na kwotę netto i brutto. <br /> </p>
<p><div class='p_embed p_image_embed'>
<img alt="Paypal_logo" height="50" src="http://posterous.com/getfile/files.posterous.com/temp-2010-07-18/hnHCgxHqueAFjmolxayidxoFbHrgJlrvkFogIdzFckrkhfBBbHpfxwGmBFqg/paypal_logo.gif.scaled500.gif" width="200" />
</div>
</p>
<p>Oczywiście napisałem do firmy z prośbą o wystawienie faktury VAT, ponieważ prowadzę działalność gospodarczą i muszę się rozliczać z Urzędem Skarbowym wrzucając wszystkie zakupy w koszty. <p /> W odpowiedzi oczywiście otrzymałem informację, że nie wystawiają faktur, ponieważ transakcję obsługuje PayPal i to oni wystawiają faktury. <p /> Po przeklikaniu się przez PayPal w poszukiwaniu menu odpowiedzialnego za faktury radośnie chwyciłem za telefon dzwoniąc do Biura Obsługi Klienta PayPal. <p /> Miły pan wytłumaczył mi, że w żadnym wypadku PayPal nie wystawia faktur za przedsiębiorców, a działa jedynie na zasadzie banku. Co więcej PayPal nawet nie wystawia faktur za prowizje, które pobiera. W sumie nic dziwnego - czy kiedykolwiek otrzymałeś fakturę od banku za pobrane prowizje? Ja nie. <p /> A więc wiemy już, że:</p>
<p><span style="font-size: x-large;">PayPal = Bank</span></p>
<p>więc odbiłem piłeczkę do firmy, która twierdziła, że PayPal ma mi wystawić fakturę tłumacząc spokojnie, że PayPal działa jak bank i oni nie wystawiają żadnych dokumentów. Ponowiłem prośbę o wysłanie mejlowo normalnej faktury VAT i że mogą zadzwonić do PayPal w celu potwierdzenia tej tezy. <p /> Pani z BannerSnack, powiedziała że musi się skontaktować ze swoim współpracownikiem w celu wyjaśnienia sprawy, ale że popytała kilka innych firm rozliczających swoje transakcje przez PayPal i żadna z nich nie wystawia klientom żadnych faktur, bo scedują to na PayPal. <p /> Odpisałem im, że PayPal to jedynie forma płatności (jedna z wielu dostępnych na rynku) i jako normalna firma powinni wystawiać faktury, ponieważ tak się odbywa handel między firmami i nie trzeba do tego mieszać PayPala, który robi jedynie za bank. Napisałem też, że wystawienie faktury to naprawdę nic wielkiego i powinni to robić dla każdego klienta jeśli tylko sobie tego zażyczy. <p /> Z tego co patrzyłem w Internecie nie jestem przypadkiem odosobnionym. Sporo ludzi ma problemy z rozliczaniem 'faktur' od PayPal, bo nie ma tam ani grama informacji na temat podatku VAT. <p /> Po weekendzie, tak jak obiecali, skontaktowali się ze mną ponownie, a w załączniku widniała ładna faktura. Prawie się udało. Na amerykańskiej fakturze nie znalazłem niestety, ani numeru VAT, ani kwoty netto i brutto, więc przydatność dokumentu była identyczna jak z wydrukiem z PayPal. <p /> Pragnąc zgłębić sprawę skontaktowałem się ponownie z tą firmą w celu wytłumaczenia mi jak to u nich jest z tym VATem. Oczywiście tak jak się spodziewałem większość firm w USA prowadzących działalność w Internecie nie są płatnikami VAT i nie mają obowiązku wystawiania żadnych faktur. Dostają przelewy, oddają podatek państwu i z głowy. <p /> Taką transakcję wliczamy sobie w koszt zupełnie tak samo jakbyśmy zakupili towar od polskiego przedsiębiorcy, który nie jest płatnikiem VAT. Czyli kwotę wrzucamy w koszt, ale nie odliczamy VATu.</p>
	
</p>

<p><a href="http://blog.marcinhlybin.com/faktury-w-systemie-paypal">Permalink</a> 

	| <a href="http://blog.marcinhlybin.com/faktury-w-systemie-paypal#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/578280/gnu.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5eHx81CM5PsR</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ahes</posterous:nickName>
        <posterous:displayName>ahes</posterous:displayName>
      </posterous:author>
      <media:content type="image/gif" height="50" width="200" url="http://getfile9.posterous.com/getfile/files.posterous.com/temp-2010-07-18/hnHCgxHqueAFjmolxayidxoFbHrgJlrvkFogIdzFckrkhfBBbHpfxwGmBFqg/paypal_logo.gif">
        <media:thumbnail height="50" width="200" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2010-07-18/hnHCgxHqueAFjmolxayidxoFbHrgJlrvkFogIdzFckrkhfBBbHpfxwGmBFqg/paypal_logo.gif.scaled500.gif" />
      </media:content>
    </item>
    <item>
      <pubDate>Mon, 07 Jun 2010 16:30:00 -0700</pubDate>
      <title>O ograniczaniu SSH, chrootowalnym SFTP i problemach z szyfrowanym FTP.</title>
      <link>http://blog.marcinhlybin.com/o-ograniczaniu-ssh-chrootowalnym-sftp-i-probl</link>
      <guid>http://blog.marcinhlybin.com/o-ograniczaniu-ssh-chrootowalnym-sftp-i-probl</guid>
      <description>
        <![CDATA[<p>
	<p>SSH jest dobre. Każdy kto miał styczność z tym protokołem lub przewalał swoje pliki za pomocą SFTP wie, że nie ma nic lepszego na świecie. Po SSH można puszczać rsynca, wyświetlać zdalne okna, tunelować się przez Sri Lankę, czy też wypuścić na świat swojego domowego pożeracza prądu schowanego za dziesięcioma NATami. <p /> SSH to władza, a władzę trzeba ograniczać. Szczególnie, gdy mamy do czynienia z użytkownikami, którzy sami mogą sobie zrobić krzywdę lub im po prostu nie ufamy. A z reguły nie ufamy nikomu, kto ma quotę większą niż 4KB.</p>
<p><div class='p_embed p_image_embed'>
<img alt="Jail" height="260" src="http://posterous.com/getfile/files.posterous.com/temp-2010-06-07/wJtJurbrgdJxiuCgAdsmprfbArBHmdjFEDymlvsauuBDiGJbCJaJlFjnsHpG/jail.jpg.scaled500.jpg" width="452" />
</div>
</p>
<p><strong><span style="font-size: medium;">Co i po co ograniczać? </span></strong><p /> Wyobraźmy sobie, że mamy serwer backupowy. Większość śmiertelników łączy się do swojego serwera backupowego jednym z protokołów, którym można wysłać dane i przesyła swoje pornuchy w odosobnione miejsce, tak aby w razie fuckupu systemu nie pozostać na lodzie. Akcję powtarzamy cyklicznie tworząc, czy to backup różnicowy, czy też przyrostowy, czy jakikolwiek inny. <p /> Schemat wydaje się oczywisty i prawidłowy. Jedna radość naszego użytkownika przeminie, kiedy okaże się, że jego tajne hasło dupa.8 wycieknie gdzieś na zewnątrz i konto zostanie w brzydki sposób przejęte przez tajwańskich hakierów. Oczywiście jak na prawdziwych włamywaczy przystało oprócz zrobienia rm -rf, podglądną sobie także skrypty backupowe i przy okazji zanihilują wszystkie przyrosty, różnice i odrosty wykonane przez naszego rsynca, radośnie odpalanego z crontaba o północy. <p /> I mówiąc bardzo rasistowsko, wtedy jesteśmy w czarnej dupie. Jak to powiedział bachus niedawno: nie mam nic do murzynów, każdy powinien mieć jednego. <p /> Po wielkiej tragedii jednak nabieramy sprytu i wpadamy na pomysł, że może byłoby lepiej, gdyby to nasz serwer backupowy łączył się do naszego komputera i pobierał backupy. <p /> Oczywiście w takiej sytuacji też istnieje szansa zaliczenia fuckupu i wycieku naszych danych, bo co by się stało gdyby ktoś przejął serwer backupowy. Zakładam jednak, że maszyna backupowa jest cytadelą naszej infrastruktury (a nawet jest poza nią na wypadek pożaru), a dostęp ma jedynie administrator logujący się z jednego IP, po kluczu 4096 bitowym chronionym hasłem i odciskiem palca oraz skanem siatkówki oka. Użytkownicy natomiast mają dostęp do swoich backupów albo na żądanie, albo za pomocą zasobu NFS wyeksportowanego w trybie read-only. Zupełnie tak samo jak to ma miejsce na <a href="http://rootnode.net/wiki/index.php/Backup">Rootnode</a>. <p /> <strong><span style="font-size: medium;">Ograniczenie dostępu przy tworzeniu backupu. </span></strong><p /> Ale wracając do tematu. Naszym zadaniem jest udostępnienie dostępu do plików z poziomu serwera backupowego. Ale nie chcemy dawać pełnego dostępu SSH, ponieważ ktoś z poziomu serwera backupowego mógłby nam zrobić krzywdę. Chcemy, aby tylko rsync mógł się połączyć i ściągnąć co potrzebuje. <p /> Aby była pełna automatyzacja, czyli serwera backupowy mógł się bezproblemowo łączyć do maszyny naszego użytkownika tworzymy sobie zestaw kluczy RSA i klucz publiczny dodajemy do maszyny użytkownika (np. za pomocą fajnej komendy ssh-copy-id). <p /> Kiedy już mamy klucze sprawdzamy, czy możemy się połączyć za pomocą ssh do maszyny użytkownika. Jeśli zobaczymy prompt shella to znaczy, że wszystko jest OK. Teraz naszym zadaniem jest ograniczenie, aby użytkownik nie dostawał shella, a nadal było możliwe kopiowanie danych. Jak już wspomniałem wcześniej korzystamy z rsync, więc trzeba użytkownikowi dać możliwość uruchomienia jedynie polecenia rsync --server <p /> Przy okazji ograniczymy też kilka innych rzeczy, które możnaby zrobić z poziomu serwera backupowego. Dodajemy do pliku ~/.ssh/authorized_keys na maszynie użytkownika przed kluczem RSA taki ciąg znaków: <br /> <code> 
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,
command="/usr/local/bin/backup.sh",from="89.11.22.33" ssh-rsa
AAABB$TUTAJ_RESZTA_KLUCZA_RSA </code> Zakazujemy tworzenie ptysiów, forwardowanie X11 i inne takie. Co najważniejsze to ograniczenie skąd może przyjść połączenie korzystające z tego klucza (from=) oraz polecenie jakie może zostać uruchomione (command=). Nie możemy w command wrzucić jedynie command="rsync --server", ponieważ to po prostu nie zabangla. Możemy natomiast wrzucić informację, że przez to połączenie można uruchomić nasz skrypt shellowy /usr/local/bin/backup.sh. <p /> Naszym zadaniem jest doprowadzenie do wymiany plików za pomocą programu rsync. Jednocześnie chcemy zabezpieczyć się przed brudasami, którzy będą próbować nam w polecenie wcisnąć znaki specjalne typu ` lub &amp; próbując przepchnąć przez połączenie jakieś dodatkowe rzeczy, np. rm -rf ;). Wiemy też, że polecenie jakie zostanie wykonane przez SSH umieszczane jest w zmiennej $SSH_ORIGINAL_COMMAND. Wykorzystujemy to w naszym skrypcie backup.sh: <p />  <code>


#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in
        *\&amp;*)
                 echo "Rejected"
                 ;;
        *\(*)
                 echo "Rejected"
                 ;;
        *\{*)
                 echo "Rejected"
                 ;;
        *\;*)
                 echo "Rejected"
                 ;;
        *\&lt;*)
                 echo "Rejected"
                 ;;
        *\`*)
                 echo "Rejected"
                 ;;
        rsync\ --server*)
                 $SSH_ORIGINAL_COMMAND
                 ;;
        *)
                 echo "Rejected"
                 ;;
esac




</code> <p /> Powyższe znaczy tyle co: <br />Jeśli w poleceniu SSH znajdziesz jakiś znak specjalny to ujeb połączenie komunikatem Rejected. Jeśli natomiast spotkasz coś zaczynającego się odd 'rsync --server' to uruchom. <p /> Dzięki naszej specyficznej konfiguracji pliku ~/.ssh/authorized_keys <br />mamy pewność, że: <br />* połączenie przyjdzie z hosta, z którego powinno <br />* będzie to polecenie rsyncowe <p /> <span style="font-size: medium;"><strong>Ograniczenie dostępu dla SFTP </strong></span><p /> Wyobraźmy sobie sytuację, że chcemy udostępnić naszej księgowej jeden katalog do pobierania faktur wygenerowanych na serwerze WWW. Księgowa nie powinna dodawać własnych faktur, ani tym bardziej zmieniać istniejących, dlatego konieczny jest dostęp read-only. <p /> Pamiętam jeszcze czasy, jak kombinowaliśmy z obsługą SCPonly tworząc chrootowane środowiska dla użytkownika, który ma dostęp do danych szyfrowanym kanałem, ale nie ma dostępu do shella. Dozzie w końcu bazując na sftp-server wyklikał znakomitą binarkę sftponly, które umożliwiało dostęp bez shella, bez konieczności tworzenia całego środowiska wraz z /devem, bibliotekami i innymi niepotrzebnymi nikomu rzeczami. <p /> Na szczęście w SSH od wersji 5.1 dostępny jest mechanizm Match, który jest chwalebny, ale czasami potrafi wkurwić, ze względu na konieczność specyficznych uprawnień. Ale o tym za chwilę. <p /> Przykładowy mechanizm Match definiowany w pliku /etc/ssh/sshd_config wygląda następująco: <p /> <code> 
Match Group sftponly 
 ChrootDirectory %h 
 ForceCommand internal-sftp 
 AllowTcpForwarding no 
</code> <p /> Robi on nic innego jak:</p>
<ul>
<li>dla użytkowników z grupy pasującej do sftponly </li>
<li>chrootnij do katalogu $HOME - znacznik %h to $HOME </li>
<li>wymuś uruchomienie internal-sftp </li>
<li>nie pozwalaj na forwardowanie portów </li>
</ul>
<p>Oczywiście możemy tam dorzucić jeszcze kilka innych opcji. Bardzo ważną rzeczą jest, aby w konfigu zamienić linię: <p /> <code> 
Subsystem sftp /usr/lib/openssh/sftp-server 
</code> <p /> na linię: <p /> <code> 
Subsystem sftp internal-sftp 
</code> <p /> Ponieważ przy mechanizmie Match korzystamy z wewnętrznego sftp. Po zmianach trzeba zrestartować sshd. <p /> Teraz dodajemy naszego użytkownika do grupy sftponly i nadajemy specyficzne uprawnienia na katalog domowy:</p>
<ul>
<li>właścicielem katalogu domowego musi być użytkownik root. </li>
<li>grupa nie może mieć praw zapisu do katalogu </li>
</ul>
<p>Powyższe oznacza tyle, że katalog /home/ksiegowosc musi mięć właściciela i grupę ustawioną na root:sftponly i prawa dostępu na 750. <p /> W konsekwencji przekłada się to na to, że po zalogowaniu przez SFTP użytkownik nie może utworzyć żadnego własnego pliku i katalogu, ale za to będzie chrootowany. <p /> Aby ominąć to ograniczenie wystarczy wewnątrz katalogu domowego użytkownika utworzyć katalog public i nadać mu właściciela ksiegowosc:sftponly oraz prawa do zapisu (700 wystarczy). <p /> Użytkownikowi księgowść można zmienić shella na /bin/false. Należy pamiętać, aby shell ten był wyszczególniony w pliku /etc/shells.</p>
<p><strong><span style="font-size: medium;">Bezpieczne FTP, czy aby na pewno?</span></strong></p>
<p>Taka konfiguracja może rodzić poważne ograniczenia. Np. w sytuacji gdzie serwer www musi zapisywać tam swoje pliki i wymagane są jakieś specyficzne uprawnienia na pliki lub katalogi, które zaburzają wymagania chrootowanego katalogu. <p /> W takiej sytuacji pozostaje nam jedynie postawienie serwera ftp. Polecam vsftpd. Konfiguracja nie jest skomplikowana. W pliku konfiguracyjnym ustawiamy takie parametry jak: <p /> <code> 
anonymous_enable=NO 
local_enable=YES 
chroot_local_user=YES 
ssl_enable=YES 
rsa_cert_file=/etc/ssl/certs/vsftpd.pem 
force_anon_data_ssl=YES 
force_anon_logins_ssl=YES 
force_local_data_ssl=YES 
force_local_logins_ssl=YES 
log_ftp_protocol=YES 
ssl_tlsv1=YES 
ssl_sslv2=NO 
ssl_sslv3=YES 
max_clients=100 
max_login_fails=3 
max_per_ip=15 
</code> <p /> Powyższe opcje same się opisują. To co robimy to tworzymy chrootowane środowiska dla lokalnych użytkowników (czyli tych zapisanych w /etc/passwd) oraz uruchamiamy obsługę SSL i TLS. Jeśli nie mamy dedykowanego certyfikatu dla naszej domeny pozostaje nam utworzyć własny za pomocą polecenia: <p /> <code> 
$ openssl req -x509 -nodes -days 3650 -newkey rsa:1024 \
 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem 
</code>Ustawiamy ważność certyfikatu na 10 lat. Zostanie nam zadanych kilka pytań takich jak kod kraju, common name (tu wpisujemy nazwę domeny) i podobne. <p /> Restartujemy serwer i jeśli wszystko poszło zgodnie z planem nasi użytkownicy mają chrootowany dostęp w trybie read-only. Tutaj także możemy użytkownikowi spokojnie ustawić shella na /bin/false. <p /> Przy połączeniu wybieramy opcję Explicit SSL lub Explicit TLS i jeśli łączymy się z komputera znajdującego się za NATem musimy wybrać opcję Passive Mode - w WinSCP jest w zakładce Connection. <p /> Przy serwerze FTP pojawia się jeszcze jeden problem. Co jeśli nasz wspaniałomyślny użytkownik zapomni, że powinien łączyć się po SSL/TLS. Serwer odrzuci połączenie, ale nie to jest problemem. Wraz z inicjalizacją połączenia użytkownik wysyła w poleceniu USER i PASS swój login i hasło. Tak więc, jeśli mamy wrednego sniffera w sieci zgarnie on nasze dane dostępowe - pomimo tego, że serwer działa jedynie w trybie szyfrowanym. Sytuacja niezbyt fajna. <p /> Dzieje się tak dlatego, że vsftpd nie rozłącza się automatycznie, gdy użytkownik zaczyna do niego gadać kanałem nieszyfrowanym. <p /> Wystarczy odrobinę zmodyfikować kod vsftpd, aby serwer działał prawidłowo. Dla wersji 2.0.7 poniżej prosty patch: <p /> <code> 
diff -ur vsftpd-2.0.7/prelogin.c vsftpd.src/prelogin.c 
--- vsftpd-2.0.7/prelogin.c 2008-02-12 04:57:07.000000000 +0100 
+++ vsftpd.src/prelogin.c 2009-12-01 00:34:46.000000000 +0100 
@@ -175,8 +175,9 @@ 
 tunable_force_local_logins_ssl) 
 { 
 vsf_cmdio_write( 
- p_sess, FTP_LOGINERR, "Non-anonymous sessions must use encryption."); 
- str_empty(&amp;p_sess-&gt;user_str); 
+ p_sess, FTP_LOGINERR, "HOAX Non-anonymous sessions must use encryption."); 
+ str_empty(&amp;p_sess-&gt;user_str); 
+ vsf_sysutil_exit(0); 
 return; 
 } 
 if (tunable_ssl_enable &amp;&amp; is_anon &amp;&amp; !p_sess-&gt;control_use_ssl &amp;&amp; 
</code> <p /> Przy okazji do zwracanego komunikatu dodaliśmy słówko HOAX, aby mieć pewność (np. oglądając sesję w FileZilli), że serwer wykonuje poprawnie akcje rozłączania. <p /> Straszliwie się rozpisałem. Właściwie na dzisiaj to tyle.</p>
	
</p>

<p><a href="http://blog.marcinhlybin.com/o-ograniczaniu-ssh-chrootowalnym-sftp-i-probl">Permalink</a> 

	| <a href="http://blog.marcinhlybin.com/o-ograniczaniu-ssh-chrootowalnym-sftp-i-probl#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/578280/gnu.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5eHx81CM5PsR</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ahes</posterous:nickName>
        <posterous:displayName>ahes</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="260" width="452" url="http://getfile8.posterous.com/getfile/files.posterous.com/temp-2010-06-07/wJtJurbrgdJxiuCgAdsmprfbArBHmdjFEDymlvsauuBDiGJbCJaJlFjnsHpG/jail.jpg">
        <media:thumbnail height="260" width="452" url="http://getfile6.posterous.com/getfile/files.posterous.com/temp-2010-06-07/wJtJurbrgdJxiuCgAdsmprfbArBHmdjFEDymlvsauuBDiGJbCJaJlFjnsHpG/jail.jpg.scaled500.jpg" />
      </media:content>
    </item>
    <item>
      <pubDate>Wed, 02 Jun 2010 01:56:00 -0700</pubDate>
      <title>Nook, czytnik ebooków, który zgniecie Kindle</title>
      <link>http://blog.marcinhlybin.com/nook-czytnik-ebookow-ktory-zgniecie-kindle</link>
      <guid>http://blog.marcinhlybin.com/nook-czytnik-ebookow-ktory-zgniecie-kindle</guid>
      <description>
        <![CDATA[<p>
	<p>Przeważnie gadżety, które kupujemy są tylko gadżetami. Bezproblemowo możemy się bez nich obejść i po jakimś czasie zastanawiamy się po co w ogóle był mi potrzebny podgrzewacz do kubka na USB, mini ekspress do kawy, zegar binarny, czy też tańczący pendrive.</p>
<p>Z dzisiaj omawianym sprzętem jest zupełnie inaczej. Jest to czytnik ebooków, od którego nie mogę oderwać wzroku. Zakup planowałem już od długiego czasu. Byłem pewien, że zamiast na <a href="http://amazon.com/Kindle%20%20%20%20">Kindle</a>, ze względu na obostrzenia DRMowe, zdecyduję się na <a href="http://www.engadget.com/2010/01/08/iriver-story-e-reader-hands-on/">iRiver Story</a> (jedna z moich ulubionych firm), ale po rozmowie na IRCu, chłopaki przypomnieli mi o sprzęcie, nad którym się kiedyś śliniłem przeglądając Engadget. Tym sprzętem jest <a href="http://www.barnesandnoble.com/nook">Nook</a> od firmy Barnes &amp; Noble. Teraz już w moim posiadaniu.</p>
<p><div class='p_embed p_image_embed'>
<img alt="Nook" height="320" src="http://posterous.com/getfile/files.posterous.com/temp-2010-06-02/pgIDibwuHrbqtBigfErrydjHsrleltDpcunCveEcsiunjxuyvxakurywDbji/nook.jpg.scaled500.jpg" width="450" />
</div>
</p>
<p><span style="font-size: medium;">Do czego może mi się to przydać?</span></p>
<p>Miałem powody, aby zakupić czytnik ebooków. Jako admin <a href="http://rootnode.net">Rootnode</a> dużo czasu spędzam przed laptopem, czytam mnóstwo manuali, dokumentacji i fachowej literatury. Niestety świecący ekran notebooka nie wpływa dobrze na moje samopoczucie, a czytanie z niego jest bardzo męczące. Z Nookiem jest inaczej. Wgrywam to co potrzebuję przeczytać, biorę czytnik pod pachę i wychodzę na słoneczko do ogrodu, albo rozkładam się wygodnie na kanapie. Z Nookiem możesz jechać pociągiem, wybrać się nad wodę, iść do kibla, czy też jeśli dojeżdżasz do pracy, wykorzystać go w autobusie lub tramwaju. Możesz także wrzucić tam wszystkie książki, które wykorzystujesz na uczelni i zrezygnować z noszenia ich na plecach.</p>
<p><span style="font-size: medium;">Szczegóły dotyczące urządzenia.</span></p>
<p>Sprzęt waży 300g i posiada dwa ekrany. Jeden 6-cio calowy w technologii <a href="http://en.wikipedia.org/wiki/E_Ink">E-ink</a>, a drugi to malutki LCD z interfejsem dotykowym. Technologia E-Ink jest bardzo ciekawa i przypomina wyświetlacze na dworcach PKP, gdzie mamy schemat cyfry i wyświetlając odpowiednie białe kartki pod spodem jesteśmy w stanie wygenerować każdą dowolną cyfrę. I dokładnie tak samo jest w E-Ink. Przykładamy odpowiednie napięcie i w 16-stu odcieniach szarości generujemy stronę zapełnioną literkami. Obrazki też są generowane jak na taką skalę szarości wyglądają bardzo dobrze. Najważniejsze w tej technologii to, to że:</p>
<ul>
<li>Ekran nie świeci. Czytelność jest identyczna jak z kartką papieru. Im mocniejsz światło, tym lepsza widoczność. W pełnym słońcu ekran nadal działa idealnie.</li>
<li>Bateria jest zużywana tylko podczas przewracania strony (generowania nowego tekstu). Gdy strona została już wyświetlona to urządzenie nie zużywa prądu. No chyba, że akurat korzystamy z ekranu LCD, albo słuchamy w tle muzyki. Dzięki czemu możemy bezproblemowo korzystać z naszego ebooka przez co najmniej 10 dni wykorzystując go intensywnie.</li>
</ul>
<p>Interfejs dotykowy jest bardzo wygodny. Przypomina obsługę gejphona. Urządzenie posiada moduł <strong>WiFi</strong>, gniazdo słuchawkowe, gniazdo USB oraz slot na karty microSD. Jest także miejsce na kartę SIM, ale nie udało mi się uruchomić 3G. Może po prostu mam model bez tego modułu.</p>
<p>Warto po zakupie od razu wgrać najnowszy firmware, w którym została znacząco poprawiona obsługa dotykowego ekranu, a także szybkość przerzucania stron. Dodatkowo znajdziemy takie ficzery jak gry - szachy i sudoku - a także eksperymentalną wersję przeglądarki. <span style="text-decoration: line-through;">Przeglądarka niestety nie pozwala na wypełnianie formularzy, przez co zalogowanie się gdziekolwiek jest rzeczą niemożliwą.</span> (jednak działa :) )</p>
<p>W  środku siedzi szatański wynalazek Google o nazwie <strong>Android. </strong>Producent Nooka nie pisze jednak nic o możliwości dogrania własnych aplikacji, ani też nie udostępnia oficjalnego repozytorium. Aczkolwiek powstały już dwa projekty Trook oraz Nooklets, które są dostępne w <a href="http://code.google.com/p/nookapps">repozytorim nookapps</a>. Pierwszy z nich pozwala na ściąganie książek z katalogów Stanza i OPDS. Implementuje także czytnik RSS. Druga natomiast to zbiór aplikacji napisanych w języku HTML i JavaScript. Niestety nie miałem jeszcze okazji przetestować tych projektów, ale jak widać możliwości są i na pewno będzie się coś dziać w tym kierunku.</p>
<p>Po podłączeniu czytnika przez USB do komputera zawartość widoczna jest jako zwyczajny dysk. Nie potrzebny jest dodatkowy software, aby wgrać dokumenty i książki. Bardzo duży plus.</p>
<p>Nook ma jeszcze jeden bardzo znakomity ficzer. Ekran LCD dostosowuje swoją jasność do warunków z otoczenia. Jeśli siedzimy w ciemnym pomieszczeniu to ekran LCD jest przyciemniony, aby nie razić nas w oczy. Jeśli wychodzimy na słońce, to ekran LCD maksymalnie się rozjaśnia, aby było cokolwiek na nim widać. Świetnie pomyślane.</p>
<p><span style="font-size: medium;">Obsługiwane formaty.</span></p>
<p>Czytnik obsługuje PDFy, również te ściągane z rapidshare, czy torrentz. Nie ma też problemów z polskimi literkami. Niektóre jednak pliki są niewłaściwie przygotowane i nie mam możliwości powiększenia czcionki. Zdarzają się też problemy z załamaniem linii i połowa wiersza jest pusta, a zdanie kończy się dopiero w kolejnej linii , ale nie przeszkadza mi to jakoś specjalnie. Czasami wkurzające jest łamanie wyrazu za pomocą myślnika. Wszystko wygląda dobrze jeśli mamy stronę A4 na komputerze. W przypadku ekranu Nooka, czasami podział wyrazu następuje w połowie linii, co bywa mylące podczas czytania.</p>
<p>Przetestowałem już kilka książek, magazynów i komiksów. Czytnik nie czyta komiksowego formatu CBR. Próbowałem też wrzucić obrazki, ale nie załapał. Może coś źle robię, ponieważ teoretycznie czytnik obsługuje formaty graficzne. Po przerobieniu do PDFa niestety nie da się skalować grafiki co oznacza, że co prawda widzimy całą stronę komiksu, kolorystyka 16-sto odcieniowa pozwala na bezproblemowe zobaczenie, co jest na rysunku, ale niestety tekst w chmurkach trzeba przeglądać z lupą. Czytnik zdecydowanie nie nadaje się do komiksów, chyba że istnieją jakieś profesjonalne pdfy, w których grafika skaluje się razem z czcionką. No i brak kolorów może doskwierać, bo w komiksach forma, ma dużo większe znaczenie niż treść. No chyba, że to jest <a href="http://xkcd.com">xkcd</a> ;)</p>
<p>Książki w PDF wyglądają bardzo dobrze. Testowałem Carl Sagan - Contact i bardzo przyjemnie się to czyta. Można zmieniać rozmiar czcionki. Niestety nie można zmienić kroju czcionki (w niektórych tekstach istnieje taka możliwość).</p>
<p>Z magazynów testowałem Linux Magazine i czytnik spełnia swoje zadanie. Niektóre obrazki (szczególnie reklamy) co prawda się nie skalują, ale tekst można powiększyć i wygodnie czytać. Polskie litery oczywiście są wyświetlane poprawnie.</p>
<p><span style="font-size: medium;">Czy Nook ma jakieś wady?</span></p>
<p>Do wad należy brak segregowania dokumentów. Nawet jeśli utworzymy sobie odpowiednie foldery to i tak Nook będzie wyświetlał wszystko w jednym miejscu. Można co prawda posortować po nazwie, ale jeśli posiadamy 300 książek na naszym czytniku jest to nieefektywne. Oczywiście istnieje szansa, że taka funkcjonalność istnieje, a ja jej jeszcze nie odkryłem.</p>
<p>Drugą najpoważniejszą wadą jest to, że zakupów w Barnes &amp; Noble włącznie z Nookiem mogą dokonywać tylko rezydenci USA i Kanady. Warunkiem dokonywania zakupów jest posiadanie karty VISA z odpowiednim adresem billingowym. Napisałem w tej sprawie do księgarni i otrzymałem oto taką odpowiedź:</p>
<blockquote>Thank you for your email regarding eBooks purchases for international <br />customers.<p />Because selling eBooks to international customers involves issues <br />regarding international copyright laws, tariffs, VAT taxes, currency <br />conversions, etc., only US and Canadian residents are able to purchase <br />eBooks on the Barnes &amp; Noble website at this time. <p />Please visit us here for more information: <p /><a href="http://www.barnesandnoble.com/ebooks/help-faqs.asp?cds2Pid=29168&amp;linkid=1432180"><span class="moz-txt-link-freetext">http://www.barnesandnoble.com/ebooks/help-faqs.asp?cds2Pid=29168&amp;linkid=1432180</span></a><p />We apologize for any inconvenience.<br />
</blockquote>
<p>Tak więc trzeba sobie radzić na dwa sposoby. Albo korzystać ze studenckich wersji książek, albo kupować w Polsce PDFy, albo kupować PDFy na Amazonie, albo wykorzystać opcję Lend w Nooku i pożyczyć od kogoś książkę na 14 dni.</p>
<p>Bardzo żałuję, że nie mam dostępu, ponieważ choć raz chciałbym zobaczyć jak wygląda książka profesjonalnie przygotowana pod ten czytnik, aby przy tworzeniu własnych plików PDF wyciągnąć jakieś wnioski. Poza tym marzę, aby zobaczyć jak wygląda jakaś amerykańska gazeta lub magazyn na tym czytniku.</p>
<p>Ostatnia wada to brak pokrowca. Należy dokupić sobie na własną rekę. Dedykowane pokrowce są w cenie od 30$ do 200$. Można pooglądać na oficjalnej stronie. Oczywiście razem z Nookiem dostarczany jest zasilacz, aczkolwiek jest to gniazdo amerykańsie (wystarczy turystyczny adapter). Zasilacz osbługuje napięcia 220V. Zailacz jest po prostu interfejsem między gniazdkiem prądowym, a USB. Nooka można bezpośrednio ładować z dowolnego gniazda USB w komputerze, więc zasilacz nie jest bardzo przydatny.</p>
<p><span style="font-size: medium;">Gdzie kupić i ile to kosztuje?</span></p>
<p>Ja swojego Nooka kupiłem od warszawskiego lekarza, który był niedawno w stanach i akurat przywiózł dwa Nooki. Jeden dla siebie, a adrugi na sprzedaż. Kupiłem za 1050 zł.</p>
<p>Nooki są sprzedawane w Polsce na Allegro, jednak żadna z tych firm nie wystawia faktur VAT, a sprzęt jest wysyłany bezpośrednio z USA. Cena oscyluje między 1200 zł, a 1300zł. Oryginalnie Nook kosztuje 259$, więc myślę, że dogadując się ze sprzedawcą poza Allegro można zbić cenę o 200zl bez problemu i wszyscy będą zadowoleni.</p>
<p><span style="font-size: medium;">Nie lepiej było kupić iPada?</span></p>
<p>Nie. iPad jest dwukrotnie droższy i to kolejne urządzenie, które świeci. Świecące ekrany męczą oczy i nie potrzebuję kolejnego laptopa. Zresztą za tę cenę iPad oferuje niewiele - brak czytników kart, brak kamery, Taki niby laptop, z którym niestety nie usiądziesz przy biurku, ani nie pogadasz na Skype. Nie sądzę też, aby tak ładnie reklamowane operowanie iPadem i wirtualną klawiaturą z poziomu kanapy było wygodne. Na dodatek tylko jedną ręką, bo drugą masz zajętą na trzymanie sprzętu.</p>
<p>Wyobrażasz sobie zalogować się tym na shella i wpisać:</p>
<p><tt>$ for user in `mysql -Nse "select * from uids where block=0 and test=1"` ; do du --max-depth=1 -h $user ; done</tt></p>
<p>Bo ja nie. A jeśli już bym to robił, to z drżącymi rękami.  Po to mam gigantyczny fotel i biurko, aby wygodnie pracować.  <strong><br /></strong></p>
<p><span style="font-size: medium;">Pytania, które mnie nurtowały przed zakupem i które zadawali moi znajomi.</span></p>
<p><strong>Czy można wyłączyć ekran LCD, aby nie raził podczas czytania?</strong><br />Ekran sam się wyłącza po zadanym przez nas czasie. Można ustawić na 10s, 30s lub 60s.<strong><br /></strong></p>
<p><strong>Czy na takim małym ekranie czytanie będzie przyjemne?</strong><br />Tak, czyta się bardzo przyjemnie. Ekran jest w sam raz</p>
<p><strong>Ile będzie trwała przesyłka z USA?</strong><br />Niestety nie zamówisz tego sprzętu ze stanów, ponieważ Barnes&amp;Noble nie prowadzi na razie sprzedaży międzynarodowej. Może kiedyś to się zmieni.</p>
<p><strong>Czy będę mógł kupować książki w Barnes &amp; Noble?</strong><br />Pod warunkiem, że posiadasz karte kredytową z amerykańskim adresem bilingowym.</p>
<p><strong>Czy PDFy z torrentów będą działać?</strong><br />Tak, działają bezproblemowo, jednak niektóre z nich są źle przygotowane. Przeważnie te napisane w Microsoft Word i wyeksportowane do pliku PDF.</p>
<p><strong></strong><span style="font-size: medium;">Dalsza zajawka</span></p>
<p>O Nooku szukaj informacji na <a href="http://www.barnesandnoble.com/nook/">oficjalnej stronie</a> oraz na <a href="http://www.youtube.com/results?search_query=nook">youtube</a>, jednak w rzeczywistości sprzęt wygląda dużo ciekawiej niż na filmach.</p>
	
</p>

<p><a href="http://blog.marcinhlybin.com/nook-czytnik-ebookow-ktory-zgniecie-kindle">Permalink</a> 

	| <a href="http://blog.marcinhlybin.com/nook-czytnik-ebookow-ktory-zgniecie-kindle#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/578280/gnu.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5eHx81CM5PsR</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ahes</posterous:nickName>
        <posterous:displayName>ahes</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="320" width="450" url="http://getfile9.posterous.com/getfile/files.posterous.com/temp-2010-06-02/pgIDibwuHrbqtBigfErrydjHsrleltDpcunCveEcsiunjxuyvxakurywDbji/nook.jpg">
        <media:thumbnail height="320" width="450" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2010-06-02/pgIDibwuHrbqtBigfErrydjHsrleltDpcunCveEcsiunjxuyvxakurywDbji/nook.jpg.scaled500.jpg" />
      </media:content>
    </item>
    <item>
      <pubDate>Tue, 01 Jun 2010 06:24:00 -0700</pubDate>
      <title>Nowa platforma e-commerce: tradoro.pl</title>
      <link>http://blog.marcinhlybin.com/nowa-platforma-e-commerce-tradoropl</link>
      <guid>http://blog.marcinhlybin.com/nowa-platforma-e-commerce-tradoropl</guid>
      <description>
        <![CDATA[<p>
	<p>Dzisiaj wielki dzień. Ruszyła rozwijana od długiego czasu platforma e-commerce <a href="http://tradoro.pl">Tradoro</a>. Tym bardziej jestem podekscytowany, ponieważ współpracuje przy tworzeniu tego projektu zajmując się <em>backendem</em>, czyli wszystkim tym co stoi pod aplikacją: loadbalancery, serwery www, serwery baz danych, serwery pocztowe.</p>
<p><div class='p_embed p_image_embed'>
<img alt="Logo" height="70" src="http://posterous.com/getfile/files.posterous.com/temp-2010-06-01/CIrwzpozlFDCAzwfIBffDwoyHsicFikyycovmExxEtGviJCgEfgDpeIbreHq/logo.png.scaled500.png" width="255" />
</div>
</p>
<p><strong><span style="font-size: medium;">Dlaczego <a href="http://tradoro.pl">tradoro.pl</a> podbije rynek w krótkim czasie?</span></strong></p>
<p>Ponieważ to cholernie wygodna aplikacja posiadająca bardzo rozbudowany panel użytkownika, obsługujący wszystko to, co powinien posiadać profesjonalny sklep internetowy, a ponadto zawierający takie rodzynki, jak na przykład integracja z serwisem aukcyjnym Allegro pozwalająca na <strong>import</strong> do sklepu sprzedawanych produktów oraz najlepszy ficzer ever - automatyczne wystawianie na allegro produktów ze sklepu wraz z odpowiednimi szablonami i całą konfiguracją. Wyobraź to sobie - zaznaczasz ze swojego internetowego sklepu 10 produktów, klikasz wystaw na Allegro i gotowe. <a href="http://shopify.com">Shopify</a> może się schować. <p /> Oczywiście zobaczymy także rozbudowane statystyki zamówień, panel do zarządzania klientami, obsługę faktur, narzędzia do pozycjonowania SEO, sondy, newslettery. Mamy też dostęp do wielu gotowych szablonów wraz z zaawansowaną funkcjonalnością ich konfiguracji (widgety). <p /> To wszystko podane w sposób czysty i przejrzysty z dużym naciskiem na <em>usability</em>. Aby zaostrzyć wasz apetyt na <a href="http://tradoro.pl">stronie głównej</a> projektu można oglądnąć kilka sklepów, które już działają, są skonfigurowane i prowadzą sprzedaż.</p>
<p><strong><span style="font-size: medium;">Dlaczego warto zainwestować w Tradoro?</span></strong></p>
<p>Można oczywiście wykupić własny serwer VPS, skonfigurować serwer www, bazę danych, serwer pocztowy i postawić <a href="http://www.magentocommerce.com/">Magento</a>. Miałem okazję stawiać ten system e-commerce dla jednego klienta i więcej nie chcę. Duża, ciężka, niewygodna, nieelastyczna platforma, którą wszyscy się zachwycają pożera zasoby serwera jakby co najmniej była napisana w Javie. Dla przeciętnego posiadacza sklepu internetowego, koszt utrzymania takiego potwora jest dużo wyższy, niż miesięczna opłata w Tradoro. Ja wolałbym spać spokojnie, bez konieczności zatrudniania magika, gdy coś przestanie działać. <p /> W Tradoro zapominasz o takich problemach jak:</p>
<ul>
<li>Pad jakiejkolwiek usługi na serwerze - czy to padnie serwer www, czy proxy masz to po prostu najgłębiej gdzieś. </li>
<li>Wzrost ruchu w twoim sklepie. Jeśli nagle zacznie wchodzić na twój sklep 30 osób więcej na sekundę to serwery z Magento zazwyczaj mówią dobranoc. Tutaj masz to najmocniej gdzieś. </li>
<li>Dziura w aplikacji obsługującej sklep wiąże się z zatrudnianiem magika do przeprowadzenia reinstalacji. W nowej wersji oprogramowania często pojawiają się zmiany w bazie i nie zawsze migracja jest bezdotykowa i lekka. Jak się coś sypnie to masz problem. </li>
<li>Serwery trzeba backupować. Siedzę w branży hostingowej, mam dużo serwerów pod sobą i wiem, że czasami lubi się coś spalić (tak jak ostatnio kontroler dyskowy na <a href="http://rootnode.net">Rootnode</a>), czy lubią wylecieć z macierzy dwa dyski na raz (zdarzyło się nie raz). Po co ci dodatkowy stres i długie godziny przywracania serwera z backupu do życia, skoro wszystko możesz mieć najdalej gdzieś? </li>
</ul>
<p>Widziałem już różne konfiguracje domorosłych adminów. Wystarczy wejść na forum <a href="http://wht.pl">WHT</a>, aby zobaczyć, że niektórzy spece mają trzyliniową konfigurację MySQL i zastanawiają się czemu zapytania z indeksami mielą po dyskach. Albo odpalają 1000 procesów serwera www na jednordzeniowym procesorze. Lepiej zapłacić 1/100 twoich miesięcznych dochodów ze sprzedaży i spać spokojnie.</p>
<p><strong><span style="font-size: medium;">Na zakończenie</span></strong></p>
<p>Tradoro to nie jest projekt, który został stworzony w miesiąc lub dwa przez napalonych studentów. Kilkadziesiąt osób pracuje nad całym przedsięwzięciem od dwóch lat. Miałem okazję osobiście poznać tych ludzi, zarówno tych, którzy siedzą na samej górze, jak i programistów, którzy wylewają z siebie siódme poty, aby zrobić najsprawniejszą na świecie aplikację. Całość pod szyldem <a href="http://dltechnology.pl/">D&amp;L Technology</a>. <p /> <small><em>Nie sugeruj się informacją o zespole z powyższej strony. Tam pracuje naprawdę dużo osób.</em></small> <p /> Ciekawostką jest to, że bardzo łebski gość, Michał, który ogarnia cały ten majdan programistyczny, jest użytkownikiem <a href="http://rootnode.net">Rootnode</a>. Tam też się poznaliśmy i rozpoczęliśmy współpracę. <p /> Tak więc, po raz kolejny sprawdza się to, co zawsze powtarzam. Rootnode to zlepek programistów, adminów, sieciowców i reszty zapaleńców z branży IT. Teraz widać, że jest to cholernie hermetyczna społeczność, z której płyną duże korzyści.</p>
	
</p>

<p><a href="http://blog.marcinhlybin.com/nowa-platforma-e-commerce-tradoropl">Permalink</a> 

	| <a href="http://blog.marcinhlybin.com/nowa-platforma-e-commerce-tradoropl#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/578280/gnu.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5eHx81CM5PsR</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ahes</posterous:nickName>
        <posterous:displayName>ahes</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="70" width="255" url="http://getfile0.posterous.com/getfile/files.posterous.com/temp-2010-06-01/CIrwzpozlFDCAzwfIBffDwoyHsicFikyycovmExxEtGviJCgEfgDpeIbreHq/logo.png">
        <media:thumbnail height="70" width="255" url="http://getfile4.posterous.com/getfile/files.posterous.com/temp-2010-06-01/CIrwzpozlFDCAzwfIBffDwoyHsicFikyycovmExxEtGviJCgEfgDpeIbreHq/logo.png.scaled500.png" />
      </media:content>
    </item>
    <item>
      <pubDate>Mon, 31 May 2010 05:39:00 -0700</pubDate>
      <title>Kamera Kodak Zi8</title>
      <link>http://blog.marcinhlybin.com/kamera-kodak-zi8</link>
      <guid>http://blog.marcinhlybin.com/kamera-kodak-zi8</guid>
      <description>
        <![CDATA[<p>
	<p>Uwielbiam gadżety. Który geek ich nie lubi. Oglądając <a href="http://www.engadget.com/">engadget</a> i <a href="http://gizmodo.com">gizmodo</a>, chciałbym mieć dostęp do nich wszystkich, ale niestety życie nie jest tak różowe i poważnym ograniczeniem jest cena tych cudownych nowinek technicznych. <p /> Gdy po raz pierwszy zobaczyłem film nagrany w rozdzielczości full HD długo nie mogłem pozbierać szczęki z tenisówek. Po jakimś czasie wyciągnąłem moją archiwalną płytę z roku 1998 i obejrzałem film w formacie MPEG, którym jeszcze 12 lata temu zachwycałem się podobnie jak dzisiaj technologią full HD. Możesz sobie tylko wyobrazić grymas mojej twarzy, jaki mi towarzyszył, gdy to zobaczyłem. Mniej więcej podobny, jak po obejrzeniu porno z lat '80.</p>
<p></p>
<p><div class='p_embed p_image_embed'>
<a href="http://posterous.com/getfile/files.posterous.com/temp-2010-05-31/eJBwgesawFtbAizGIsgAtEbFzgGejBnjjxEgxeyEwlbEInklfcJoGkCpmpmq/kodak-zi8.jpg.scaled1000.jpg"><img alt="Kodak-zi8" height="504" src="http://posterous.com/getfile/files.posterous.com/temp-2010-05-31/eJBwgesawFtbAizGIsgAtEbFzgGejBnjjxEgxeyEwlbEInklfcJoGkCpmpmq/kodak-zi8.jpg.scaled500.jpg" width="500" /></a>
</div>
</p>
<p>Bohaterem dzisiejszego wpisu jest kamera Kodak zi8. Wielkością przypomina telefon komórkowy <a href="http://www.gsmarena.com/mitac_mio_a701-1261.php">Mitac Mio A701</a>, ale nie ma modułu GSM. Już się nauczyłem, że gdy coś jest do wszystkiego to jest do niczego. Dlatego między innymi wspomniany Mio służy teraz jedynie jako moduł GPS w mojej rakiecie. </p>
<p>Po co geekowi kamera skoro ma w laptopie? Jestem zdania, że dla osoby, która spędza ponad 8 godzin przed komputerem w pozycji siedzącej i 4 godziny w samochodzie, ruch jest potrzebny jak powietrze. Dlatego zimą uprawiam aktywne szaleństwo na parapecie. Do aktywności podchodzę, jak do pracy - czytam manuale, zanim się za cokolwiek zabiorę. Jest wiele książek o jeździe na snowboardzie i wszystkie wykładają teorię w sposób perfekcyjny - gdzie się ugiąć, którego palucha podnieść do góry, gdzie skręcić ciało, jak widowiskowo się wypieprzyć i przeżyć. Jednak, jednym ze sposobów doskonalenia jazdy, który coraz częściej stosują szkoły snowboardingu, jest nagrywanie jazdy i omawianie błędów na podstawie filmu. <p /> A jeśli nagrywanie jazdy, to tylko w full HD. Nie mogłem sobie odmówić. Kosztowo impreza wygląda bardzo pozytywnie. Kamerę można <a href="http://www.morele.net/kamera-cyfrowa-kodak-zi8-aqua-pocket-video-camera-252420/">kupić</a> za, uwaga uwaga, <strong>703 zł brutto</strong>. A jeśli mamy firmę i rozliczamy podatek VAT, to jeszcze taniej. <p /> Kamera znakomicie sprawdza się na świeżym powietrzu. Kolory są wyraziste, a jakość urywa dupę tuż przy kostkach. Jednak w pomieszczeniach już nie poszalejemy, a na imprezę w klubie kamera nie nadaje się wcale. Obraz, o ile będzie cokolwiek widać, jest wtedy kiepski i ziarnisty, a wszystko przez mikroskopijny obiektyw F2.8/f=6.34mm, przez co lepiej nie kusić losu i nie próbować robić zdjęć, bo czeka nas rozczarowanie. Zresztą nikt chyba nie spodziewa się, że kamera za 700 zł, która z założenia jest kompaktowa, będzie miała z przodu lunetę i dorównywała jakością profesjonalnym zabawkom. <p /> Na stoku niestety mam mentalność dresa w BMW i czasami spektakularnie się wypierdole, ale takie akcje sprzęt przeżywa. Z kamerą zjeżdżałem z lodowca, z wysokości 3080m przy temperaturze - 30<span style="font-size: small; line-height: 16px;">°<span style="line-height: normal; font-size: 13px;">C i udało mi się nagrać 10-cio minutowy film zjazdowy. Bateria nie narzekała na warunki, i była gotowa do dalszych wojaży.</span></span></p>
<p>Z ręką na sercu mogę powiedzieć, że sprzęt w terenie, na snowboardzie sprawdza się świetnie i z jej użyciem można doskonalić technikę jazdy. Szczególnie jeśli ktoś uprawia <a href="http://www.youtube.com/watch?v=WT5HunSDjso">jibbing</a>.</p>
<p>Kamera obsługuje karty SDHC. Posiadam 16GB i w zupełnośći wystarcza. Nie zdarzyło mi się, aby ją po brzegi zapełnić filmami w ciągu jednego wyjazdu. Ciekawą opcją jest zewnętrzne wejście mikrofonowe. Jest to jedyna kamera kompaktowa, które takie wejście posiada i dzięki niemu będziemy mogli nagrać profesjonalny showcast, w którym będzie słychać co mówi facet na ekranie. Dodatkowo kamera ma standardowy gwint do przymocowania statywu oraz wyjście HDMI, dzięki czemu kamerę można podłączyć bezpośrednio do telewizora bez większych kombinacji. Bardzo przydatna opcja.</p>
<p>Jest jeszcze jedna rzecz, która mnie zaskoczyła. Oprócz slotu na kartę SD, Kodak Zi8 posiada także ukryty dongiel USB, który umożliwia podłączenie (i ładowanie) kamery do laptopa, który nie posiada czytnika SD. Do kamery dołączony jest zasilacz. </p>
<p>Kodak posiada kilka trybów działania:</p>
<ul>
<li>1080p, 30 klatek na sekundę, </li>
<li>720p, 60 klatek (tzw. tryb sportowy do szybko przemieszczających się obiektów), </li>
<li>720p, 30 klatek </li>
<li>WVGA, </li>
<li>oraz tryb aparatu fotograficznego. </li>
</ul>
<p>Dodatkowo mamy przełącznik trybu landscape i macro, do filmowania robaczków na drzewie. </p>
<p>Na zakończenie prezentacja działania. Zobacz jaki kamera daje obraz <a href="http://vimeo.com/7441181">w dzień na świeżym powietrzu</a>. Warto także rzucić okiem na <a href="http://vimeo.com/videos/search:kodak%20zi8">inne filmy nagrane tą kamerą</a>.</p>
	
</p>

<p><a href="http://blog.marcinhlybin.com/kamera-kodak-zi8">Permalink</a> 

	| <a href="http://blog.marcinhlybin.com/kamera-kodak-zi8#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/578280/gnu.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5eHx81CM5PsR</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ahes</posterous:nickName>
        <posterous:displayName>ahes</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="575" width="570" url="http://getfile3.posterous.com/getfile/files.posterous.com/temp-2010-05-31/eJBwgesawFtbAizGIsgAtEbFzgGejBnjjxEgxeyEwlbEInklfcJoGkCpmpmq/kodak-zi8.jpg">
        <media:thumbnail height="504" width="500" url="http://getfile5.posterous.com/getfile/files.posterous.com/temp-2010-05-31/eJBwgesawFtbAizGIsgAtEbFzgGejBnjjxEgxeyEwlbEInklfcJoGkCpmpmq/kodak-zi8.jpg.scaled500.jpg" />
      </media:content>
    </item>
    <item>
      <pubDate>Sun, 30 May 2010 15:41:00 -0700</pubDate>
      <title>Jajecznica administratora systemów</title>
      <link>http://blog.marcinhlybin.com/jajecznica-administratora-systemow</link>
      <guid>http://blog.marcinhlybin.com/jajecznica-administratora-systemow</guid>
      <description>
        <![CDATA[<p>
	<p>Współpracowałem w swoim życiu z wieloma ludźmi i muszę przyznać, że najtrudniej współpracuje mi się z administratorami. Pomijając już oczywiste kwestie, że każdy z nich ma swoje przyzwyczajenia, swoje teorie na każdy temat i używa różnych technologi do wykonania tego samego zadania, to z reguły są to ciężkie charaktery, które rzadko przyjmują do wiadomości, <em>nie idące po ich myśli</em>, argumenty, propozycje, poprawki i zmiany.</p>
<p><div class='p_embed p_image_embed'>
<img alt="Jajecznica" height="348" src="http://posterous.com/getfile/files.posterous.com/temp-2010-05-30/FxdufgJtcevjgsBzxasCpdfkhyakBjAFjzourCbBkmnJhrIaxCIwCCyDgzwj/jajecznica.jpg.scaled500.jpg" width="322" />
</div>
 <br />Stojąc nad patelnią porannej jajecznicy naszła mnie refleksja, że postępowanie w pracy z serwerami można w ciekawy sposób porównać do techniki przyrządzania tej zacnej potrawy. Ja robię jajecznicę tak: <p /> 1. Rozbijam jajka do osobnego półmiska. Przed wylaniem zawartości jajka do pojemnika przykładam do nosa sprawdzając, czy jajko nie jest zepsute. Szkoda by było przecież zmarnować to co już wbiłem. <strong>Analiza</strong>. <p /> 2. Jeśli zdarzy mi się zepsute jajko i przez przypadek wpadnie do półmiska to i tak tracę jedynie jajka, a nie wszystko, co wcześniej przygotowałem sobie na patelni w postaci podsmażonej kiełbasy, cebuli lub pieczarek. Jeśli podczas rozbijania do półmiska wpadnie mi kawałek skorupki to bezstresowo i bezproblemowo wyciągam ją. <strong>Debugging</strong>. <p /> 3. Zawartość półmiska mymłam widelcem, aby zrobić jednolitą ciecz. Wtedy jajecznica wygląda lepiej. <strong>Usability</strong>. <p /> Taka jajecznicę robi się w umiarkowanej ilości czasu i mamy pewność, że będzie nieprzypalona, bez skorupek i bez marnowania tego co do tej pory przyrządziliśmy w przypadku zepsutego jajka. <p /> Nie wiem w jaki sposób inni administratorzy w rzeczywistości robią jajecznicę, ale patrząc na sposób ich pracy mogę w prosty sposób przedstawić jajecznicowy model. <p /> <strong>Vladimir</strong> robi jajecznicę w inny sposób. Robi szybką jajecznicę. Wkłada rzeczy na patelnię w postaci boczku i innych produktów, które zazwyczaj wkłada się na patelnię przed rozbiciem jajek. Nie traci on czasu na sprawdzenie jajek i memłanie ich w osobnym pojemniku w celu uzyskania spójnej konsystencji, tylko rozwala ja bezpośrednio na patelnię. <p /> Efekt końcowy, jak się można domyślić jest identyczny i wszyscy są zadowoleni. Jajecznica jednak jest <strong>niedopracowana</strong>, ponieważ jajka, nie zostały porządnie rozmemłane. Poza tym nie wygląda tak dobrze, jak w powyższym przykładzie, ponieważ można dostrzec białe gluty ściętego białka. Jajecznica natomiast smakuje tak samo. Ale... <p /> Czasami podczas rozbijania jajka wpada do środka skorupka. To rodzi spory problem, ponieważ nie chcemy jajecznicy z trzeszczącą skorupką pod zębami i trzeba ją usunąć z rozgrzanej patelni. Podczas długotrwałej szermierki widelcem część jajecznicy może się przypalić. Za to skorupka zostanie wyciągnięta. <p /> Najgorsza sytuacja zdarza się jednak wtedy, kiedy trafiasz na stare jajko. Wtedy cała jajecznica wraz z wcześniej przygotowanymi rzeczami nadaje się do śmietnika i należy zrobić jajecznicą <strong>od nowa</strong>. <p /> Nasz kolejny bohater <strong>Dozzie</strong> podchodzi do jajecznicy bardziej profesjonalnie. Nie bawi się w mieszanie jajek w misce, bo wie, że na dłuższą metę jest to sposób nieoptymalny, tylko <strong>buduje</strong> blender. Jajecznica wymieszana w blenderze będzie dużo lepsza niż jajecznica poprzedników, ale czas na zbudowanie blendera jest niewspółmiernie wysoki. Aczkolwiek... <p /> W przypadku tworzenia więcej niż jednej jajecznicy lub powtarzania procesu robienia jajecznicy, zrobi to dużo szybciej. Dodatkowo blender może zostać użyty także do innych czynności, np. pieczenia ciasta. Z drugiej jednak strony istnieje prawdopodobieństwo, że własnoręcznie zbudowany blender nie będzie działał poprawnie, nie wyjdzie lub koszt jego budowy będzie za wysoki do zrealizowania projektu jajecznica. <p /> Mamy jeszcze wiele innych osób i całkowicie odmienne modele. W skrócie wygląda to następująco: <p /> <strong>Slane</strong> idzie do sklepu i kupuje jajecznicę w kartonie. Wlewa na patelnie, smaży i mówi, że zrobił sam. <p /> <strong>Kosma</strong> nie będzie budował blendera, ale dokładnie przemyśli, czy palnik nie rozgrzeje patelni za mocno i jajecznica się nie spali, zanim zostanie zrobiona. <p /> Dla <strong>Xila</strong> patelnia jest za mała, ponieważ on zawsze robi jajecznicę ze strusich jaj. <p /> Chciałoby się rzec: "pokaż mi jak robisz jajecznicę, a powiem ci jakim administratorem jesteś". <p /> Aby mieć czyste sumienie muszę dodać, że jajecznica tworzona przeze mnie nie jest idealna. Planowana na jutrzejszy poranek, przeważnie jest wykonywana w poranek miesiąc później. Do tego dochodzi długi czas potrzebny na analizę jak przyrządzić najlepszą jajecznicę, jakego typu patelni użyć, jakiego typu, wielkości i klasy jajek oraz jakich produktów. <p /> Często też jest tak, że nie zabierzesz się za jajecznicę sam, a zlecisz to zadanie innemu administratorowi. Kompletna klęska projektowa następuje wtedy, gdy wszyscy administratorzy zabiorą się do tego zadania wspólnie, ponieważ przy tak różnych modelach, nawiązanie jakiejkolwiek formy współpracy i kompromisu nie jest możliwe. W końcu wychodzi na to, że najlepszą jajecznicę zrobisz sobie sam.</p>
	
</p>

<p><a href="http://blog.marcinhlybin.com/jajecznica-administratora-systemow">Permalink</a> 

	| <a href="http://blog.marcinhlybin.com/jajecznica-administratora-systemow#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/578280/gnu.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5eHx81CM5PsR</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ahes</posterous:nickName>
        <posterous:displayName>ahes</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="348" width="322" url="http://getfile3.posterous.com/getfile/files.posterous.com/temp-2010-05-30/FxdufgJtcevjgsBzxasCpdfkhyakBjAFjzourCbBkmnJhrIaxCIwCCyDgzwj/jajecznica.jpg">
        <media:thumbnail height="348" width="322" url="http://getfile9.posterous.com/getfile/files.posterous.com/temp-2010-05-30/FxdufgJtcevjgsBzxasCpdfkhyakBjAFjzourCbBkmnJhrIaxCIwCCyDgzwj/jajecznica.jpg.scaled500.jpg" />
      </media:content>
    </item>
  </channel>
</rss>

