Béton brut

Hail Sagan

Wydłubałem z czyjejś zupy grafikę przedstawiającą twarz Carla Sagana wpisaną w pentagram z napisem Hail Sagan. #pomysłnakoszulkę Próba znalezienia oryginału zakończyła się totalną klęską więc zagoniłem do pracy Piotra i w ten sposób powstały gotowe do użycia wektory.

Jeżeli ktoś zna autora to proszę mi podrzucić informacje w komentarzu. Poza tym pliki są własnością publiczną, ale jak zrobisz jedną koszulkę więcej dla mnie to się nie obrażę.

  1. hail-sagan.pdf
  2. hail-sagan.eps

printf z pyska

Dehumanizacja. Automatyzacja. Deratyzacja. Dwie z trzech „zacji” są uznawane za pożądane właściwości w procesie testowania oprogramowania. Trzecią „zację” wstawiłem tylko dlatego, że nie mogłem wymyśleć następnej odnoszącej się do tematu tego tekstu.

Ostatnio 1 wielką popularność wśród programistów zdobyły tzw. testy jednostkowe. Całość polega na pisaniu programów, które testują programy. Genialne w swojej prostocie. Zanim wrzucisz aktualizację na serwer produkcyjnych, testy sprawdzą, czy funkcja, która musi zawsze zwrócić jeden rekord, wyrzuca po zmianach trzy, czy operacje na datach nie zepsuły się po zabawach z lokalizacją, strefami czasowymi i tym podobne.

Możesz myśleć o takim teście jak o automatycznej kontroli jakości na taśmie produkcyjnej firmy oświetleniowej. Żarówki jadą sobie taśmą, są umieszczane w zasilanym gnieździe a fotorezystor „patrzy”, czy świeci. Świecące przechodzą test (w Pythonie sprawdzilibyśmy ten binarny stan metodą assertTrue), zepsute trafiają do kosza. W przypadku kodu zostalibyśmy poinformowani, że klasa Lightbulb nie inicjalizuje się zgodnie z naszym oczekiwaniem.

Nie będę jednak pisał o testach jednostkowych. Nie znam się na tym za dobrze, a właściwie to w ogóle.

Dehumanizacja i automatyzacja są dobre. Usuwają z procesu czynnik ludzi i przyspieszają wykonywanie testu. Są jednak chwile w których żaden assert nie podpowie Ci rozwiązania. Czasem przychodzi Ci pracować z kodem, który ma wielu ojców — niepiśmiennych alkoholików. W innym znów przypadku dwa plus dwa jest cztery i wychodzi cztery, ale nie wiesz czemu wychodzi Ci cztery w programie do rysowania kiedy wybierasz paletę kolorów.

Rzeczy mają tendencje do bycia w stanie „bez sensu”. Dobra, robię tu projekcje własnego życia, ale trochę tak jest. Co zrobić kiedy program do słuchania plików muzycznych odtwarza tylko satanistyczne piosenki, do tego wstecz? Satanistyczne piosenki wstecz mówią o miłości do bliźnich, zdrowej diecie i wstrzemięźliwości w wydawaniu opinii, co jest strasznie nudne i irytujące. 2

Czas na odpluskwianie z kaczuchą!

Tak, odpluskwianie z kaczuchą. Nie ma co robić min. Ci sami ludzie 3 dali nam GIMP-a, ksh, tcsh, system operacyjny Breezy Badger, akronimy rekurencyjne i inne cuda od których marketerom strzelają oczy.

Żeby wykonać rubberduck debugging (już Wam oszczędzę mojego potworka językowego) potrzebne są dwie rzeczy: problem i słuchacz. Słuchacza osadzamy w fotelu i opisujemy lub demonstrujemy nasz problem. W tym czasie słuchacz powinien się zamknąć i potakiwać niczym pławiąca się w wannie gumowa kaczka. Celem tego eksperymentu jest werbalizacja problemu, co często powoduje nagłe olśnienie.

Ręka do góry, kto odwrócił się zrozpaczony do kolegi w biurze i wypowiedział następujące słowa:

„Nie rozumiem. Mam formularz z obiektu, dodaję tekst, ale za każdym razem, gdy edytuję wcześniejszy wpis, dostaję błąd z IDID…”

Następnie, bez słowa wyjaśnienia, obracasz się do komputera i naprawiasz problem wstydząc się, że tak długo umykała Ci oczywistość.

Podobną metodę zaproponował kiedyś Scott Adams w jednej ze swoich książek (nie, nie będę sprawdzał tytułu). Był to jeden z jego testów na sensowność pomysłu: test śmiechu. Należy znaleźć kogoś, komu nie zależy na naszym dobru, ale jest na tyle leniwy by aktywnie nie szukać naszej zguby. Jeżeli po przedstawieniu naszego pomysłu, z możliwie wieloma detalami, nie zsunie się on pod stół ze śmiechu to są duże szanse, że nie jesteśmy zupełnie w odbycie z naszym pomysłem.

Często robię za takiego gościa słuchając pomysłów na startapy. Nie śmieję się jednak maniakalnie. Przekręcam delikatnie głowę na bok i pytam — „Serio?”. Jeżeli potrzebujecie kogoś takiego to jestem dostępny pod e-mailem.

To była dygresja. Wracając na chwilę do gumowych kaczek w pianie. Cenię sobie tę metodę bardziej niż inne. Wielu z nas widzi programistów w roli samotnych kowbojów. Przybywamy do kodu źródłowego opanowanego przez bandytów, wchodzimy do saloonu, wypijamy drinka z tego drogiego ekspresu do kawy, który zwykle jest w korporacjach posiadających kod opanowany przez bandytów, potem urządzamy strzelaninę i podbijamy serce sekretarki. Nie możemy jednak z nią zostać bo pociąg odjeżdża o 17:37 w kierunku zachodzącego słońca. 4

Mit ten jednak często powoduje, że siedzimy sfrustrowani, odrzucamy pomoc i pragniemy tylko bohaterskiej śmierci lub totalnego zwycięstwa. Wypłakanie się w ramię barmana, który nie słucha nas, metodycznie przecierając ladę lub szklankę, wydaje się być ponad nami.

„Widzisz szefie. Jesteśmy otoczeni. A ja mam tylko ten pas naboi. Do tego mają bazę w tej starej fortecy. Co tam było? Skład dynamitu… dynamitu…”

Gościnne odpluskwianie treści zapewniła Karolina. Obrazek ukradziony Wikipedii.

  1. relatywnie ostatnio
  2. Go! Go! Cywilizacjo Śmierci
  3. w sensie: nerdy
  4. Przynajmniej tak wygląda mój dzień pracy.

Temat postu optymalny pod kątem SEO.

Powinienem teraz siedzieć i obgryzać paznokcie. Niestety, obciąłem je. Higienę mam w kalendarzu wyznaczoną na weekend. Jutro powinienem odpalić projekt nad którym siedzę od pół roku. Lista rzeczy, które nie działają jak powinny jest dłuższa niż specyfikacja 1 dlatego też postanowiłem, że napiszę sobie notatkę.

Niestety, wszystkie rzeczy o których chcę napisać wymagają chwili pomyślunku. Postanowiłem, że zrobię to, co robią popularniejsze blogi — listę. Listę komiksów, które w jakiś sposób trafiają zwykle w moje niewyszukane gusta. Próbowałem nawet napisać coś przy każdym z kandydatów do Waszego czytnika RSS, ale postanowiłem, że dużo szybciej będzie skopiować kilka obrazków i dać linki.

Ta notka ma dokładnie jeden 1 meh. Meh jest jednostką tumiwisizmu. Obiecuję jednak, że wrócę z czymś sensownym zaraz po tym jak zarząd wyrwie mi nogi z dupy. Wyglegując się w szpitalnym łóżku będę miał czas popracować nad moim opus magnum.

StripField

Piotr Świdrek

Chatka Wuja Freda

ohmygod.

Optipess

Sticky Comics

INCIDENTAL COMICS

vontrompka

Głosy w mojej głowie

Przepraszam wszystkich autorów za użycie efektów ich ciężkiej pracy jako karmy do mojej prokrastynacji.

P.S. Marek Miller zaprosił mnie do współpracy przy swoim niezbyt tajnym projekcie. Dwumiesięcznik 2 będzie dostępny tylko w dobrych punktach muzycznych. Mam już faksymile do autografów.

  1. nie było specyfikacji, ha ha
  2. Czasemsięukazywacz? Nie mam pojęcia

Lazy Office Worker

Jestem ostatnią osobą, która pisałaby programy dla frajdy. Jestem tym wyrobnikiem, farmerem, który nie może zrozumieć innych farmerów sadzących marchewkę w wolnym czasie. Wczoraj jednak ubodło mnie, że wszyscy dookoła mają jakieś swoje zabaweczki. Klikają w nie, piszczą, pokazują sobie nawzajem zdjęcia z pierwszego core dumpa, mają ikonę jako zdjęcie profilowe na FB. Zazdrość mnie trochę za rękaw poszarpała.

Wyciągnąłem mój notatnik i wybrałem jeden z projektów, który nie wyglądał na wybitnie skomplikowany, a posiadał wyzwania, przed którymi jeszcze nie stawałem. Trzy godziny później byłem już praktycznie w domu. Trzy godziny i dwie minuty później kuchenne drzwi oberwały kilka solidnych prawych sierpowych 1. Zachciało mi się hobbistycznego kodowania, psia mać.

Wyskoczyłem po piwo. Wróciłem z piwem. Ku swojemu zdziwieniu odpaliłem znów edytor i usiadłem. Tak właśnie powstał LOW: Lazy Office Worker.

Bycie LOW-em ma swoje wady. Wiele korpo-sieci wycina ważne zasoby Internetu: nie ma YT, nie ma Kozaczka czy Pudelka. Koledzy freelancerzy, którzy byczą się na parkowych ławkach i czekają, aż ktoś im sypnie monetę do kapelusza, podsyłają linki z kotami. Totalny LOW.

Standardowy LOW składa się z: pakietu Office, klienta pocztowego Outlook i zniechęcenia. Postanowiłem polepszyć standard życia w biurowych zagrodach!

Dobra, koniec ściemniania. Co robi program? To mały daemon, który kręci się na serwerze, wysyłasz mu e-mailem linka do obrazka, artykułu czy jakiejś binarki, a on idzie, bierze to i odsyła. To wszystko. Kod jest pewnie krótszy niż wstęp do tej blognotki.

Case: Otwierasz Klienta Poczty. W To:/Do: wpisujesz url@magt.pl, w temat wpisujesz co chcesz, w treść wstawiasz lineczki. Wysyłasz. Czekasz.

![jak klikać](http://bronikowski.com/wp-content/uploads/2011/08/shot.png “jak klikać”)

Jeżeli e-mail nie wróci, to znaczy, że jedna z trzystu dwudziestu rzeczy poszła nie tak i Twój e-mail poszedł do mielenia. Jeden błąd – przemiałka. Nie wybaczamy!

Mam takie dziwne przeczucie, że Outlook będzie produkował jakiś koszmarny HTML i cały mój parser wywali się na cycki. Nie było jak przetestować — dookoła sami komputerowi hipsterzy z dżimajami i majl.ap.

Plan sytuacyjny przedstawia się następująco: 2

Ach, jest wielce prawdopodobnie, że traktuję obscesowo strony gadające ISO-8859-2. Nie chce mi się tego debugować, mogę wysłać wysłać kilka centów PayPalem na podróż do 2011.

Notka write-once-read-never. Może nie spełniać standardów. Gościnnie inforgrafikę produkował Piotr Potera.

  1. już nie boli
  2. jest wielka szansa, że całe to pisanie, cały ten projekt powstał tylko i wyłącznie po to, abym sobie narysował schemat nowym piórem. Pióro za 1.59 PLN. Globalizacja, fak tak.

Niepamięć



Punkt widzenia / punkt siedzenia

Perspektywa to ciekawa sprawa. Czasem zdroworozsądkowa obserwacja otaczającego nas świata daje zupełnie błędny obraz rzeczywistości.

Kiedy ludzie – w czasach przed Galileuszem i Kopernikiem – patrzyli na niebo i podziwiali pędzące przez sklepienie słońce, wiedzieli, że to ono się porusza względem ziemi. Ruch było widać gołym okiem, ziemia się nie poruszała. W tej obserwacji nie było nic złego; zły był punkt widzenia z którego przyszło nam doświadczać tej astronomicznej gonitwy.

Zostawmy jednak kosmos i przenieśmy się przed nasze biurko. Hurra, będzie znów o komputerach! Dokładniej: o pamięci.

Memento memory

„Memory is RAM.” – Moss, IT Crowd

W czasach komputerów ośmio- i szesnastobitowych ilość pamięci była zapisywana złotymi literami w reklamach. Co więcej – rozmiar dostępnej pamięci był często częścią nazwy komputera, że wspomnę tylko Commodore 64 (65536 bajtów) czy Atari 1024ST (1024 kiB).

W dalszych przykładach komputer-archeologii będę się posługiwał C64 – głównie dlatego, że mam jakieś tam kompetencje by mówić o jego budowie, a na dodatek jego prymitywny BASIC (wiele mogę odpuścić Microsoftowi, ale nie to) zmuszał każdego domorosłego programistę do zapoznania się z arkanami czarnej magii związanymi z zapisywaniem danych do pamięci celem wyduszenia z pudła choćby jednego pisku czy koloru.

Nie wchodząc w szczegóły możemy wyobrazić sobie pamięć Commodore jako serię 65536 pudełek, w które możemy wsadzić wartości od 0 do 255. Część tej pamięci była przeznaczona dla Ciebie, twórcy: mogłeś tam składać swoje dane, programy czy co tam akurat chciałeś. Część pamięci spełniała jednak specjalne zadanie i zapisywanie do niej informacji mogło modyfikować stan komputera oraz specjalizowanych układów scalonych. Najłatwiej będzie mi zademonstrować (tylko to pamiętam) jak działało bezpośrednie zapisywanie do pamięci odpowiedzialnej za tryb tekstowy.

Pamięć ekranu mieściła się pod adresem 1024 i zajmowała jeden kilobajt. Umieszczenie w niej wartości powodowało wyświetlenie znaku. Gdybym chciał napisać EMIL w górnym rogu ekranu i był samobójcą, musiałbym wydać cztery polecenia POKE (zapis wartości w komórce pamięci).

Koszmarne? Oczywiście. Demonstruje jednak sposób, w jaki dawaliśmy sobie radę z pamięcią: pamięć była lub jej nie było. Nie było współczesnych problemów wielozadaniowości – jeżeli pamięć się skończyła byłeś najczęściej w kanale analnym. System nie zajmował się „zarządzaniem pamięcią” tak jak ma to miejsce teraz.

Przewińmy do komputerów 16-bitowych, przy których można już mówić o „prawdziwych systemach operacyjnych”. Znaczyło to tyle, że chodzenie po pamięci i wkładanie tam swoich brudnych bajtów uznawano za faux pas – ale jak ze wszystkimi przewinieniami w etykiecie, tak i tu nie powstrzymało to nikogo przed pchaniem paluchów gdzie nie wypada.

Załóżmy jednak, że wszyscy byliśmy mądrzy i robiliśmy dobrze.

Sytuacja z przykładu o C64, gdzie pamięć pomiędzy X a Y była Twoja, nie mogła mieć już miejsca. Komputery miały różne konfiguracje, aplikacje chodzące w tle mogły już zająć kawałek pamięci. Gdybyś po prostu zapisywał dane na łapu-capu, mógłbyś trafić na jakąś witalną część i powiesić system. 1 Przyszedł czas żebrania: „Drogi komputerze kochany, potrzebuję z dwieście kilobajtów w jednym ciągu; chciałbym tam zapisywać informacje. Bardzo ładnie proszę!” System operacyjny rozważał Twoją prośbę i odpowiadał false, co oznaczało konieczność poinformowania użytkownika, że pamięci nie ma, lub dawał Ci wskaźnik do zarezerwowanej dla Ciebie pamięci, w której mogłeś sobie bezpiecznie buszować.

System teoretycznie wiedział, co się dzieje z pamięcią. Teoretycznie, gdyż nagminną sytuacją było obchodzenie żmudnego procesu przydzielania pamięci poprzez przekazywanie danych o zajętej pamięci między aplikacjami – bez informowania o tym systemu. Gdy program wyżebrał już pamięć, nie informował najczęściej systemu co z nią robi. Jeżeli inna część programu (a czasem inny program) miały mieć dostęp do tych samych danych, program po prostu podawał dalej adres pamięci, którą przydzielił mu system operacyjny.

Zilustruję to kiepską analogią: Wynajmujesz pokój hotelowy. Dostajesz klucze. Aby zaoszczędzić przekazujesz je innym znajomym i tak pakujecie się w kilka osób na krzywy ryj. Możesz spać spokojnie dopóki któryś z Twoich podchmielonych kompanów nie podpali firanek. Nie będziesz wiedział kto je podpalił, nie będziesz mógł się wyspać, a na dodatek wszystko jest na Twoje nazwisko.

Przekazywanie adresów było niezmiernie efektywne (stąd wydajność takich systemów jak AmigaOS) i tylko trochę bardziej niebezpieczne niż żonglowanie piłami spalinowymi.

Po raz pierwszy pamięć zaczyna być zasobem, z którym należy się liczyć. Czym więcej pamięci zostawało Ci po włączeniu komputera tym większy był Twój e-penis. 2 Czasem trzeba było wybierać: podkład z „Czarodziejek z Księżyca” 3 czy dodatkowy usprawniacz? Obserwowanie „belki” na której znajdował się stan pamięci stało się czymś naturalnym. Czym więcej pamięci było zajętej, tym więcej programów zostało uruchomionych. Proste.

Część w której Ziemia biegnie dookoła Słońca

Teraz dochodzę do momentu, który zrodził ten tekst: do czasów współczesnych.

Piotr zaktualizował system Wielki Śnieżny Kot na komputery z Cupertino. Zgodnie z przewidywaniami szybko zaczął marudzić w socjalsieci jak to Jobs znów go zrobił w męski narząd. Ponieważ nie znam się na współczesnych komputerach (jestem biednym posiadaczem PIII, który chodzi pod kontrolą darmowego systemu dla brudnych hipisów z łojotokiem) próbowałem podtrzymać go na duchu.

Próbowałem póki nie wyjawił mi powodu narzekania – jego system zajmuje bardzo dużo pamięci.

Powiedzmy sobie od razu: współczesne systemy operacyjne zajmują och-tak-wiele miejsca. Workbench 3.1 + dodatki + cukierki spokojnie mieścił się w 20 MiB. Teraz? DVD. Kiedyś system odpalał się na 128 kiB pamięci; teraz dranie chcą gigabajta żeby chociaż pełzał. Do tego kiedyś okna otwierały się szybciej, niż teraz.

(Trawa zieleńsza, kobiety piękniejsze i człowiek nie musiał się golić tak często.)

Mógłbym tu przytoczyć wiele argumentów tłumaczących, czemu tak się dzieje: że rozdzielczość niebotyczna, że protokoły sieciowe, że siedem tysięcy drukarek, że usługi, że komfort. To jednak rzecz na inną notkę.

„Dlaczego tyle pamięci zajęte‽”

Kiepska analogia numer dwa: Po latach ciężkiej pracy dorobiłeś się basenu. Basen ma cztery gigabajty 4, a Ty nalewasz wody tylko do kostek, żeby się górne partie nie zniszczyły.

W 2011 pamięć nieużyta jest pamięcią zmarnowaną. W przeciwieństwie do lat dziewięćdziesiątych większość komputerów ma dość pamięci, aby wczytać system operacyjny i kilka programów bez obciążania nawet połowy dostępnych zasobów. Co z resztą?

Resztą zajmuje się system operacyjny. Czasy, gdy byłeś panem swojej maszyny, skończyły się dawno temu. Przesiadłeś się z roweru do promu kosmicznego i płaczesz, że nie ma gdzie dobrze przykręcić dzwonka. Wolna pamięć jest używana jako pamięć podręczna 5, co znacząco przyspiesza działanie komputera.

Najgorsze, co można zrobić – i co zrobił Piotr – to zaufać wszelkiej maści ekspertom, którzy piszą w Internecie o pamięci! 6 Piotr zainstalował program, który „odzyskuje” pamięć od systemu operacyjnego.

Analogia numer trzy, kiepska jak poprzednie: Twoja willa ma własnego kucharza, który przygotowuje Ci obiad. Masz pięć garnków. Kucharz używa pięciu, dzięki czemu praca idzie mu wartko. Zatrudniasz więc gościa, który stoi nad kucharzem i co chwila zabiera mu dwa z nich, rzucając przez zęby „pańskie!”. Tak, masz przez większość czasu dwa puste garnki, ale kucharz nie robi dobrej roboty, a Ty płacisz jakiemuś idiocie, żeby go terroryzował.

Pomiędzy Commodore 64 i Twoim latopem z aluminium jest ogromna różnica. Pomysł, że mógłbyś ręcznie zarządzać wszystkimi aspektami systemu (w tym pamięcią) jest bzdurny. Obecnie Twój system zajmuje się nie tylko alokacją pamięci, ale także jej ochroną (program, który nie prosił o konkretny kawałek pamięci nie może do niego pisać), odpowiada za jej stronicowanie, losuje adresy tak, aby źli królewicze z Afryki nie zgadli, gdzie w pamięci uruchomi się następny program, śledzi zasoby tak, aby pamięć zajętą przez martwe programy dało się odzyskać. Tak, masz „mniej pamięci” niż kiedyś, ale nie musisz pływać w wodzie po kostki.

  1. Guru Meditation, BSoD
  2. e-penis jest aseksualny
  3. Team Amy Mizuno
  4. mówiłem, że kiepska?
  5. dlatego powinieneś „bezpiecznie usuwać” urządzenia USB przed wyjęciem: część danych może być nadal w pamięci, a nie na nośniku
  6. Busted

GNUMP3d: hasła, reverse-proxy

Aktualizacja bez głowy

Instalując wczoraj trochę nowych zabawek na domowym serwerze zauważyłem, że nowa wersja GNUMP3d nie posiada już dostępnej wcześniej autoryzacji. Wcześniejsze wersje takową posiadały, ale jak stwierdzili sami autorzy, kod osiągnął stan FUBAR i został całkowicie wycięty, jak przeżarta gangreną noga.

Podrapałem się po ryju i pomyślałem do siebie. Spodobało mi się i pomyślałem jeszcze raz. Wpisałem w Google tekst dostępny w domyślnym szablonie GNUMP3d – bam! – dostęp do tysięcy plików muzycznych, których właściciele nie zauważyli, że aktualizacja usunęła moduł autoryzacji i mają rozpięte rozporki.

To pierwsza nauka. Nie aktualizujcie oprogramowania na serwerach bez choćby szybkiego rzucenia okiem na ChangeLog.

Co zrobić, żeby się skryć za hasłem, jeśli system nie ma wbudowanego mechanizmu? Dwie rzeczy.

reverse-proxy

Proxy to ogólnie serwisy pośredniczące. Większość Zwykłych Użytkowników zna proxy jako to coś, co się wpisuje do przeglądarki, co przyśpiesza transfer, większość trolli zna proxy jako sposób na „ukrycie się”, co pozwala im być prawdziwymi wojownikami klawiatury.

Zasada działania jest prosta. W lokalnej (więc szybkiej) sieci znajduje się serwer, którego pytamy np. o Onet.pl, on znów patrzy w Internet, czy strona się mocno zmieniła od ostatniej wizyty i oddaje użytkownikowi część wiadomości bez ich pobrania.

Reverse-proxy działa na odwrotnej zasadzie, co jest najmniejszym zdziwieniem świata. Wyobraźmy sobie, że mamy na naszym serwerze dwie czy trzy usługi, które generują HTML (czyli da się je badać przeglądarką), a które znajdują się na portach, które nie są dostępne z różnych powodów. Mamy więc np. gnump3d odpalone na porcie :8888 i transmission-daemon odpalone na porcie :9091. Konfigurujemy reverse-proxy tak, aby odpowiadało na żądania z portu :80 (czyli standardowego) i serwowało nam informacje z usług, które są ukryte za firewallem. Tak więc jeśli piszemy w przeglądarce music.fuse.pl, to żądanie trafia do daemona HTTP na moim domowym serwerze, reverse-proxy przesyła je „do tyłu” do 127.0.0.1:8888, odbiera wynik i oddaje znów na :80. Tada.

Kluczowy do zrozumienia całości jest ten oto schemat: 1

BASIC AUTH

Teraz dostęp do autoryzacji. Najprostszym sposobem jest użycie metody autoryzacji po HTTP zwanej BASIC AUTH. To nic innego jak dodanie do nagłówków żądania informacji o użytkowniku i haśle. Nie jest to kryptograficzny Everest, jeżeli nie robimy reverse-proxy dla SSL, to poślemy swoje hasło w czystym tekście. Natomiast działa wszędzie i działa zawsze.

Część, w której robi się copy-paste

Ponieważ nie umiem już Apache2, wkleję konfigurację dla lighttpd.

$HTTP["host"] == "music.fuse.pl" {
  auth.backend = "plain"
  auth.backend.plain.userfile = "/SCIEŻKA/DO/PLIKU"
  auth.require = ( "/" =>
   (
    "method" => "basic",
    "realm" => "Password protected area",
    "require" => "user=XYZ"
   )
  )
proxy.balance = "round-robin"
proxy.debug = 1
  proxy.server  = ( 
        "" => ( 
                ( "host" => "127.0.0.1", "port" => "8888" )
        ) 
  )
}

W miejsce ścieżki do pliku podstawiamy własny plik w formacie

user:hasło

W require możemy zawęzić listę użytkowników, jeżeli używamy tego samego pliku z hasłami do kilku autoryzacji.

Ponowne uruchomienie serwera i już jesteście gotowi. Sprawdźcie też, czy macie załadowane odpowiednie moduły w głównej konfiguracji lighttpd (mod_proxy, mod_auth).

Kurde load-balance

Głupio byłoby nie wspomnieć. Taka konfiguracja może służyć też load-balancingowi, czyli rozkładaniu ruchu i obciążenia na kilka maszyn. Gdybym miał w domu dwa serwery z tą samą muzyką, odpalił na nich GNUMP3d i wskazał oba w sekcji proxy.server, to ruch byłby przekazywany na przemian 2 to do jednego, to do drugiego, co w teorii zmniejszyłby obciążenie.

Kawa mi się skończyła.
„Notka podczas jednej kawy™” może nastąpić ponownie bez ostrzeżenia!

  1. lubię i nie umiem rysować, so sue me
  2. lub zgodnie z wybranym algorytmem

Spinaczem w kosmos



Motorower Komar na stację dysków do C64

Pamiętacie ten stary dowcip?

Idzie miastowy przez górską wioskę i spotyka bacę. Miastowy widzi, że baca coś trzyma i zainteresowany pyta:

– A co tam sprzedajecie baco?

– Psa sprzedaję.

– Drogo?

– Milion.

– Ale kto wam kupi psa za milion – stuka się w głowę miastowy i skręca na szlak.

Kilka godzin później miastowy wraca tą samą ścieżką z gór i znów napotyka bacę, pyta więc:

– I co, baco, sprzedaliście?

– Sprzedałem.

– A za ile?

– Za milion.

– Za milion‽

– Tak, wymieniłem się z sąsiadem na dwa koty po pięćset tysięcy.

Poza światem żartów z kaset „Kabaretu Masztalskiego” większość wymian nie jest tak arytmetycznie doskonała. Dajemy to, co mamy, za to, czego potrzebujemy. W życiu codziennym nie zastanawiamy się nad ekonomią barteru; czy dwa kawałki pizzy teraz są warte soku pomarańczowego po obiedzie? Trzeba policzyć 2/8 z cenny pizzy do ceny soku – nikt tego nie robi. Jeżeli sok jest tańszy to trudno; po tabasco chce się pić.

W 2005 roku Kyle MacDonald miał czerwony spinacz i pomysł. Pomysł prosty jak spinacz w rękach zdenerwowanego pracownika biurowego: wymienić go na coś innego i zobaczyć dokąd to doprowadzi. Po półtora roku zabawy w barter MacDonald stał się posiadaczem dwupiętrowego domu. Pomiędzy spinaczem a domem wszedł w posiadanie i wymienił między innymi: wieczór z Alice Cooperem, kontrakt nagraniowy, rolę w filmie i wycieczkę. Cała droga od spinacza do domu jest opisana na stronie Wikipedii.

Inspirujące? Szalone? Fart? Niepotrzebne skreślić.

Kosmos: ostateczna granica

Sukces akcji przyniósł oczywiście naśladowców i nie ma w tym niczego niezwykłego; wizja zupy z gwoździa kusi. Wśród naśladowców natknąłem się na jeden pomysł, który trafił w moje serce: Anthony Adams chce polecieć w kosmos.

Zaczął od zabawkowego modelu statku kosmicznego, który wymienił na spację 1 z klawiatury pioniera tej zabawy, Kyle’a. Obecnie jest w posiadaniu prawa do przelotu 727, który opadając osiąga stan podobny do braku grawitacji.

Podróż w kosmos ma służyć nie tylko osiągnięciu stanu nieważkości – jest to misja edukacyjna, której ostatecznym celem jest przygotowanie materiałów dla przyszłych zdobywców kosmosu. Zdjęcia, filmy z podróży i przygotowań oraz zestawy edukacyjne dla setki szkół. 2

Zaciekawiony poprosiłem Anthony’ego o udzielenie odpowiedź na kilka pytań.

EOB: Nie mogłeś wybrać lepszego czas na ujawnienie swojego projektu. NASA właśnie zakończyła program lotów przy użyciu promów kosmicznych, co wywołało smutek wśród kochającego naukę nerdomu. Czy cięcia w programie kosmicznym dały Ci impuls do wdrożenia swojego planu?

AA: Myślałem o zrobieniu tego bez względu na działania NASA; czułem, że nie ma dużego zainteresowania w edukacji naukowej i kosmicznej. Dodatkowo, kiedy dowiedziałem się o ludziach wysyłających kamery HD w stratosferę 3, wiedziałem, że muszę coś zrobić aby załatwić podobny ekwipunek dla każdej ze szkół w USA (a może i poza Stanami). Opracowałem więc program nauczania i złożyłem stronę One Toy Spaceship jako zagrywkę PR, która wyśle mnie w kosmos i pozowli dostarczyć kamery do szkół. Jestem rozczarowany cięciami w NASA, ale jest to także szansa na zmianę kierunku w NASA, jak i szansa dla prywatnych przedsiębiorstw, które mogą podjąć prace i rozwinąć biznes związany z podróżami i eksploracją kosmosu.

EOB: Czy rozważałeś już przygotowania do lotu? Masz zamiar rozszerzyć swoja wiedzę z astronomii i dziedzin pokrewnych tak, aby wycisnąć jak najwięcej z przyszłej podróży? Czy ktoś złożył Ci ofertę pomocy w tym projekcie? (hm, w domyśle było że jednostki naukowe, ohłel)

AA: Tak, rozszerzam swoją wiedzę o kosmosie, astronomii, etc. ile się da. Nikt nie wystąpił oficjalnie z ofertą bycia moim mentorem, ale chciałbym spędzić więcej czasu z astronautami. Ale to dobre pytanie – być może spróbuję skontaktować się z kilkoma osobami, które mogłyby być moimi mentorami.

EOB: Rozumiem, że Twoim celem jest rozbudzenie zainteresowania kosmosem w dzieciach. Czy sam byłeś zainspirowany ludźmi takimi jak Gagarin czy Buzz? Czy wydaje Ci się, że możemy rozbudzić miłość do nauki i podboju kosmosu, która została zasiana w poprzednich generacjach lądowaniem na Księżycu?

AA: Jest tak wiele inspirujących osób w moim życiu. Miałem okazję spędzić trochę czas z Scottem Parazynskym, jedyną osobą, która wspięła się na Everest i była członkiem załogi IIS; jego opowieść była niesamowita. Uważam, że aby kogoś zainspirować potrzebne są dwie rzeczy, musisz im pokazać coś niesamowitego i podarować im ziarnko nadziei, że osiągnięcie tego jest możliwe – że oni też mogą zrobić coś takiego, lub nawet lepszego. Mam nadzieję, że dzięki przekazaniu szkołom tych „kosmicznych zestawów” 4 więcej uczniów zostanie zainspirowanych, a na ich ścieżce życia pojawi się też badanie kosmosu.

EOB: Gdzie możemy znaleźć Cię w Internecie i jak możemy pomóc?

AA: Możecie śledzić misję pod adresem OneToySpaceship.com, możecie pokazać tę stronę przyjaciołom, pohandlować ze mną lub skontaktować mnie z ludźmi, którzy chcieliby pohandlować. Możecie też pomóc zasponorować “kosmiczne zestawy”. 5

Z mojej strony pozostaje tylko życzyć Anthony’emu udanego lotu. :-)

  1. ang. space, przestrzeń
  2. Niestety, tylko tych w US
  3. oryginalnie near-space
  4. duh, kant brein
  5. space exploration kits, no nie mamy lepszego tłumaczenia, serio ;-) 

Nazbierasz kluczy i będziesz woźnym

Przez Internet przetoczył się jeden z tych kilkudniowych skandali, które rozpalają umysły ogniem fajerwerków. Absolwentka szkoły średniej oblała egzamin z matematyki i zrobiła to, co w dobie dostępu do Internetu robi każdy: opublikowała swoje żale. Nie na Tumblerze – na stronach portalu Gazety Wyborczej. Internet wymierzył sprawiedliwość szybko: w komentarzach pokpiliśmy sobie z durnej nastolatki, ktoś zrobił infografikę o ściślakach i humanistach, ktoś znalazł błędy w jej liście. Zawodowy bloger zebrał darmową karmę. Sam też wyciągnąłem moje podręczne widły i pochodnię, aby móc godnie dołączyć się do linczu.

Dzień później poczułem ukłucie sumienia. Bo ja, proszę państwa, też jestem niewyedukowanym głupcem.

Czy list tej młodej osoby był głupi, egoistyczny i demonstrował wszystkie przywary z których należy publicznie szydzić? Tak, tak i tak. Czy można się spodziewać czegoś innego po osiemnastolatce? Nie, w ogóle. Czy my byliśmy mniejszymi bufonami? Skądże, ale lubimy tak o sobie myśleć.

To jest szablonowy przykład strzelania do posłańca. Winimy papierek lakmusowy za pH roztworu.

Nad współczesnymi problemami edukacji debatują głowy, które mają więcej zwojów niż moja, a ja – posiadając niewielkie doświadczenie w zdobywaniu wiedzy w szkole – nie będę się podejmował analiz spisywanych na kolanie, przy piwie. Chciałem tylko skrobnąć słowo do tych, którzy są teraz uczniami. 1

Tak, szkoła jest do dupy. Mówię Wam to ja, facet, który wyleciał z wielu instytucji edukacyjnych. Będziecie się uczyć w pocie czoła o wodniczkach, wydobyciu węgla na Śląsku, kto wielkim poetą był i że kąt do płaszczyzny wyciętej przez dwie proste; poza nielicznymi wyjątkami większość tej wiedzy nie przyda Wam się w „życiu codziennym”. Macie rację kompletną i jesteście w kompletnym błędzie. Może się Wam wydawać, że jedno wyklucza drugie, ale życie nauczy Was, że to tylko jeden z łatwiejszych paradoksów tak zwanej „dorosłości”.

Mając naście lat nie jesteście w stanie ocenić, co będzie Wam potrzebne. Podpowiem Wam – wszystko. I nie chcę ruszać tu nawet tego spróchniałego memu o humanistach, którzy nie potrafią policzyć raty kredytu. Życie rozpościera się dalej niż Wasze zainteresowania, i – choć te najłatwiej jest doskonalić – szybko zrozumiecie, że bycie dobrym w jednym temacie jest niemożliwe bez choćby pobieżnej znajomości innych dziedzin.

Możecie myśleć, że szkoła to skostniałe miejsce w którym każą się Wam uczyć na pamięć rzeczy zbytecznych, że nie rozwija, że nauczyciele dziady. Znów, kompletna racja i sam chciałbym zobaczyć tę szkołę marzeń z tymi nauczycielami wyciętymi wprost ze „Stowarzyszenia umarłych poetów”. Nie rozumiecie jednak pewnej rzeczy – szkoła, jak inne instytucje, odbija się w lustrze społeczeństwa. Szkoła jest taka, bo taki jest świat. To nie jest optymistyczna wizja. Szkoła, nawet słaba, powinna dać Wam kilka rzeczy: wymusić na Was robienie rzeczy na czas, których normalnie byście nie zrobili. Ja muszę chodzić na spotkania. Płyniemy tą samą łódką. Dać Wam narzędzia niezbędne do poradzenia sobie w świecie. Nauczyć Was, że większość ludzi to buce i jak nawigować w świecie społecznych interakcji.

Jak wspominałem wcześniej – byłem nieukiem. Wzorcem nieuka i bumelanta, przysparzającym wstyd rodzinie, wywołującym załamywanie rąk nauczycieli. W czwartej klasie nie byłem na żadnej lekcji historii. W piątej klasie… nie pamiętam nawet piątej klasy. Szkoła była nudna i posępna, a na dworze boisko, a w domu komputer. Wychodzisz na ósmą do szkoły, witasz się w szatni z kolegami, wracasz do pustego domu na dziewiątą i masz cały dzień dla siebie. Marzenie każdego dzieciaka, prawda?

Kiedy się ocknąłem z tej przygody miałem 19 lat, moja wiedza o komputerach zamykała się w świecie (martwej już) Amigi. Przestałem grać w piłkę i miłość do kopanej przeniosłem na kibolską chuligankę (co musiało wyglądać przecudnie – pięćdziesiąt kilo masy we fleku odwróconym na lewą stronę). Byłem tutaj dlatego, że postanowiłem ustalać zasady gry bez wiedzy o grze, którą prowadzę.

Jeżeli myślisz, że to nic strasznego, bo chyba cała ta gra skończyła się dla mnie dobrze, to znów masz rację – i jesteś totalnym głupcem.

Miałem po prostu szczęście trafić do grona, które składało się z ludzi inspirujących, zabawnych, ludzi, którzy wiedzieli co to wodniczka i opowiadali mi o generale Pattonie przy wódce. Wstyd mi było być takim głupcem. Kolejne lata spędziłem ucząc się pisać, liczyć i mówić. Do dziś dnia muszę wracać do wiedzy na poziomie licealnym w tym czy innym temacie. I nie czuję się z tym źle, czuję się z tym wspaniale.

Jeżeli ktoś dziś, za darmo, poświęca Ci czas i chce Cię przekazać wiedzę – to bierz ją. Całą: tę dobrą, tę złą, wszystko. Przyszłość dopiero przyłoży filtr wyciskając z ciebie człowieka. Nie daj się zwabić syreniemu śpiewowi opisujących cię jako „zdolnego, ale leniwego”. To nie jest komplement. To znaczy, że jesteś leniwy. Kropka.

Argument, że humaniście nauki ścisłe – lub ściślakowi humanistyczne – nie są potrzebne w ogóle jest jak argument, że piłkarzowi z pola nie są potrzebne ręce i starczą mu nogi. To nie muszą być bardzo silne ręce; wystarczy, że pozwalają biec i utrzymać balans.

To jedyny czas, kiedy możesz się uczyć bezkarnie. Później będziesz się uczył dwa razy ciężej, a do tego czynsz, kredyt, bezsenne noce. Zrób to dla mnie: idź, naucz się. Nie mogę znieść myśli, że świat ma więcej takich durniów jak ja.

PS. możesz teraz śledzić moje brednie na Google Plus! Chwilowo wstrzymuję karmienie innych sołszalłebów swoim bełkotem. Można poprosić o zapkę via e-mail w kontakcie.

  1. zakładam, że to promil czytelników tego blożka; może podeślecie rodzeństwu linka?

Personal Janice

Gotyckie domówki obsysają, perkele. – Znany Blogger, Nowa Platforma Społecznościowa

Dziś będzie historia o tym, że ludzie w swoim circkle-jekru czują się najlepiej.

Obiecałem sobie pisać jeden na wpół poważny tekst tygodniowo, ale jak zwykle skłamałem. Nasiąknięty alkoholem opiszę tu jedną sytuację. Anegdotę przytoczę. O przepaści między Romeo i Julią, o truciznach.

Przyjaciel miał plan. Plan był prosty: zaprosić na imprezę ludzi z „innego
towarzystwa” żebyśmy zobaczyli, że zranieni krwawimy tak samo. Tylko bez elementów S&M,
metaforycznie. Przybył gentlemen, fan rowerów i m’lady, gotka.

Zgodnie z naturą takich eksperymentów powstała mieszanina niejednorodna, która wytrąciła parę na fotele w końcu pokoju podczas gdy my – główni animatorzy – rozprawialiśmy o częściach, algorytmach i rzyganiu. Rzeczach traktowanych priorytetowo przed dwudziestoparolatków.

Kiedy tak dryfowaliśmy coraz dalej od siebie, organizator postanowił wykazać się przysłowiową wręcz polską gościnnością. Przycupnął przy gotce i jął rozprawiać o nowej płycie Depeche Mode, choć wiemy, że lubi tylko toruński black metal i japońskie porno.

Siedziałem w głębokim fotelu na środku pokoju, co pozwalało mi obserwować sytuację na obu
frontach. Niestety, otumaniony używkami, byłem niemy. W moim własnym kosmosie nikt nie mógł usłyszeć mojego krzyku.

Po lewo przyjaciel skłonił gotkę do przesłuchania najciekawszego utworu z najnowszej płyty Depeche Mode. Po prawo osoba bardziej świadoma trójwymiarowości otaczającego nas świata poruszała myszką pod batutę siedzącego za nią administratora. A mówił on:

– Do góry, do góry, tu, PgDwn, PgDwn, tu. Pod „em”

Zerkałem na lewo, gospodarz podnosi się celem puszczenia utworu.

Zerkam na prawo, lock&load! Administrator zawołał – „Jest!” – odwrócił się do reszty ludzi i powtórzył – „Jest. Czołówka z The Muppet Show”. Na pierwsze dźwięki muzyki wszyscy poderwali się na równe nogi i zaśpiewali:

„It’s time to play the music / it’s time to light the lights / it’s time to meet The Muppets on the Muppet Show tonight”.

Nigdy więcej nie widziałem naszych gości.


Przyszłość

Dzieci są naszą przyszłością, o ile ich nie powstrzymamy

Ludzie często chwalą mnie za zdolność tłumaczenia skomplikowanych zagadnień informatycznych w przystępny sposób. Jest to dla mnie jeden z najmilszych komplementów, który potwierdza słowa Eisteina – „jeśli nie możesz czegoś wytłumaczyć prostymi słowami, to znaczy, że się na tym nie znasz tak dobrze, jak myślałeś”. Moje zdolności wyszukiwania analogii między światem bramek logicznych, a światem nielogicznych homowyprostowanych są jak pancerny kot na wrotkach, karmiony majonezem. Tylko lepsze.

Miałem wielki plan napisania serii tekstów o programowaniu przeznaczonych dla ludzi, którzy nie są głupi, ale nie posiadają prawa jazdy na prowadzenie komputerów po infostradzie. Plan rozpadł się na kawałki kiedy wreszcie usiadłem z kartką żeby wypisać zagadnienia. Okazało się, że próba wytłumaczenia jednej rzeczy przywołuje dwie następne, a te znów kolejne. Sam talent do opowiadania o technice nie przekłada się na zdolność do kompleksowego opisania problemu tak, aby nowo nabyte zdolności wynikały ze zrozumienia tematu, a nie zapamiętania że X robi X, bo.

Zacząłem przekonywać sam siebie, że dogłębna wiedza nie jest potrzebna. Ludzie traktują komputery jak narzędzia. Tu się wkłada, tam naciska, tu wychodzi śłitaśna focia. Próba tłumaczenia stdio i stderr to nic innego jak godzinny wykład o tym dlaczego dichlorodifluorometan występuje pod postacią cieczy w instalacjach chłodniczych komuś, kto sięga po piwo do lodówki.

Tylko, czy ja nie chcę uczyć budowania lodówek? I komu potrzebna taka wiedza?

Zadałem sobie pytanie jak ja – nieuk i dyletant – wszedłem w posiadanie takiej wiedzy? Odpowiedź nie przyniosła mi ulgi. Urodziłem się w idealnym czasie, aby stać się komputerowym wyjadaczem. I nie wiem, czy dziś można posadzić ośmiolatka i zaczarować go kursorem migającym pod napisem READY■.

Komputer domowy, który stał w wielu pokojach obecnych trzydziestolatków był urządzeniem nieskomplikowanym, kiedy porównamy go do czegokolwiek, co uznajemy teraz za komputer. To jedna rzecz. Drugą rzeczą, która z perspektywy czasu wydaje się nie do przecenienia – każdy ośmiobitowiec po włączeniu mówił: „Programuj mnie, jestem gotowy”. Człowiek mógł zostać programistą niemal przez przypadek. W Bajtku publikowano kody źródłowe prostych gier. Nie lubiłeś Kaśki? Wszystkie wystąpienia wyrazu „smok” w przepisywanej właśnie grze tekstowej zamieniałeś na „Kaśka” i czułeś się jak najsprytniejszy dzieciak po tej stronie ulicy.

[![C64 love](http://bronikowski.com/wp-content/uploads/2011/06/love.png “love”)](http://bronikowski.com/wp-content/uploads/2011/06/love.png)

Jak uczyć młodych ludzi komputerologii na rozum, a nie na pamięć?

Nadal mogę myśleć tylko o językach logopodobnych. [LOGO](http://en.wikipedia.org/wiki/Logo_(programming_language było (jest?) świetnym językiem dydaktycznym, zawierało wszystkie ważne elementy dorosłych języków takie jak pętle, warunki i zmienne jednocześnie nagradzając dziecko tańczącym na ekranie żółwiem rysującym proste figury geometryczne.
REPEAT 4 [FD 10 LEFT 90]

Kiedy już nasz młody padawan patrząc na tę linię zobaczy definicję pętli, blok, dwie funkcje i parametry to zrozumie, że możemy opisać kwadrat jako „cztery proste o równej długości spotykające się pod kątem 90 stopni” i będzie na prostej drodze do niebkła 1.

Mimo mojej fascynacji zdaję sobie sprawę, że trzeba iść z duchem czasu i poszukać czegoś równie dobrego jak LOGO, ale ze współczesnym skrętem. Po dniu szukania i instalowaniu różnych języków programowania „dla dzieci” stwierdzam, że jedynym godnym następcą 2 jest toolkit Shoes.

Shoes jest biblioteką dostępną dla języka Ruby, która pozwala na łatwe budowanie UI. Zobaczcie przykład „zegarka”, a zrozumiecie.

Shoes.app do
   @time = title "0:00"
   every 1 do
     @time.replace(Time.now.strftime("%I:%M %p" # 12-hour time
     #@time.replace(Time.now.strftime("%H:%M" # 24-hour time
   end
end

Patrząc na The Shoebox (strona z przykładami użycia Shoes) nie mogę się oprzeć wrażeniu, że znalazłem idealną kombinację edukacyjną. Pod spodem Ruby, obok Gemsy, na górze Shoes. Może już nie będziemy pisać gry tekstowej o przygodach smoka 3, ale reszta pozostaje bez zmian. Z tą różnicą, że teraz możesz wysłać e-maila z gratulacjami ukończenia gry, albo opublikować rekordy na własnej stronie portalu społecznościowego. Piękno tego całego rozwiązania jest w tym, że jako wprowadzający w świat komputerów możesz sam wybrać tempo nauki i nie jesteś sztucznie ograniczony przez „język edukacyjny”. LOGO nie używa zdobyczy ostatnich dwudziestu lat.

Dlaczego w ogóle o tym piszę? Nie pamiętam, czy wspominałem, ale znudziło mnie marudzenie na obecny świat i przeganianie dzieci z mojego trawnika. Zamiast biadolić, że nie będzie następnego pokolenia komputerogłupoli, bo teraz wszyscy mają telefony, gdzie za przyjemność programowania płaci się \$99, a na Kaśkę wrzucać nie można, bo moralne wytyczne sklepu zabraniają 4. Chcę coś zrobić. Będę głównie zagrzewał Was do boju, bo dzieci nie posiadam. Może kiedyś rzucę się na ten projekt serii artykułów.

Praca u podstaw, koleżanki i koledzy. Tylko to spowoduje, że za dwadzieścia lat będzie dla nas wycinek świata, gdzie komputery będą miały otwieraną obudowę, a grę o Smoku 5 będzie można przepisać bez obawy o naruszenie patentu i praw autorskich.

  1. programista jest stale w niebkle, jedną nogą w niebie, drugą w piekle
  2. biorąc oczywiście pod uwagę moje wymogi, tj. brak wizualnych edytorów, „prawdziwość” języka i haczyk, który pozwoli wciągnąć młodego programistę do niebkła
  3. Kaśki
  4. Tak, wiem, że Android i tak dalej, to tylko ilustracja ogólnej sytuacji. I wiem, że można bez płacenia programować. Sio.
  5. Na serio to o Kaśce