Thursday, March 17, 2011

Hipokryzja nowoczesnego niewolnictwa

W starożytności właściciele niewolników co najwyżej byli dumni, całkiem otwarcie, z posiadania niewolników, czyli ludzi, którzy musieli na nich pracować. Nic pięknego, ale przynajmniej posiadacze niewolników sprawę stawiali otwarcie.

Kiedyś państwa były własnością króli (z grubsza mówiąc). Król nie ściągał podatku dla biednych lub dla dobra powszechnego, lecz bez kłamania ściągał podatki dla siebie.

Dziś biurokratyczna hołota, zniewalająca społeczeństwo, ocieka hiprokryzją. Oni ściągają podatki jakoby nie dla dalszego, jeszcze silniejszego podporządkowania sobie społeczeństwa, o nie, skądże - oni muszą zawsze bełkotać o "wyższych i szlachetnych" celach, jak pomoc biednym, edukacja, nauka, opieka zdrowotna... Przy tym niszczą każdą z tych dziedzin, skazując na nędzę i zależność od rządu jak najwięcej oduczonych od pracowania ludzi (takich najłatwiej kontrolować, i tak głupków zwanymi "liberałami" głupków).

Biurokratyczny system tworzy fortuny z niczego, z czystego złodziejstwa finansowego, a ludzie męczą się, cierpią. Przykładem jest sforsowana przez Billa Clintona super machlojka pożyczek bankowych na domy, która była bodajże bezpośrednim, może wręcz głównym powodem obecnego kryzysu gospodarczego.

Gdyby chodziło o zabranie pieniędzy bogatym, i danie tych pieniędzy biednym, na edukację, itd, to dlaczego koniecznie trzeba te pieniądze najpierw dać rządowi ??? !!! Dlaczego jedyna metoda pomagania ludziom musi (według zasmarkanych "liberalów") zawsze prowadzić poprzez podatki na biurokrację, dlaczego? Dlaczego nie chcą się nauczyć z doświaczenia wielu dziesięcioleci? Skąd taki brak wyobraźni, takie ograniczenie i otumanienie? Odpowiedź jest prosta. Bo wcale nie są zainteresowanie w celach, które hipokrytycznie głoszą. Są zainteresowani wyłącznie w kontrolowaniu czyli zniewalaniu bliźnich. Taka jest prawda OBIEKTYWNA.

Przecież bogaci mogliby, i tak by czynili, pod presją społeczną wydawać te pieniądze bezpośrednio na jedzenie i mieszkania dla biednych, na stypendia dla studentów, na laboratoria szkolne i akademickie, ... Instytucje by to publicznie kwitowały. Z łatwością znaleźliby się zapaleńcy, którzy by te publiczne informacje z Internetu zebrali, zorganizowali w przejrzyste tabele, ... i z powrotem opublikowali w Internecie. Bez żadnej marnacji na urząd podatkowy i parlamentarzystów (:-) efekt byłby stokroć lepszy, bo nie pasłoby się raka biurokracji. Prawdopodobnie przekazaliby bogaci na zbożne cele o wiele więcej niż w sumie na podatki i na filantropię. Prześcigaliby się. Staraliny się być na czele filantropistów. Bowiem nie musieliby wydawać tyle na prawników i ksiegowych. Przede wszystkim dlatego, że zamiast bawić-chrzanić się z urzędem podatkowym, wielu ambitnie bawiłoby się właśnie w filantropię.

Przecież w Kongresie Amerykańskim Demokraci narzekają, że bogaci często na podatki wydają ... ZERO. Że płacą mniejszy procent od klasy średniej. Oczywiście że tak. To ich zabawa. Od tego maja prawników. Od tego mają też między innymi demokratycznych parlamentarzystów, żeby im się - bogatym - krzywda nie stała.




Co jakiś czas rząd niby próbuje się zredukować. To tak jakby rak co jakiś czas robił sobie po brzegach minichemoterapię i lokalne operacje chirurgiczne. Jak pisałem na Poland-L w 1990 roku, jedyna metoda na raka biurokracji, to odciąć dopływ krwii, zamożyć, czyli pozbawić podatków. Wszystko co niby dla ludzi robi rząd, ludzie mogą sto razy lepiej robić sami. Gdy na przykład chodzi o ubezpieczenia lekarskie, to przecież i tak ludzie ludzi ubezpieczają. Więc sami powinni to robić, bez rządu i bez wielkich firm ubezpieczeniowych, bez marnowania ponad 95% swoich pieniędzy na raka biurokratycznego, bez niszczenia jakże ważnej relacji z lekarzami. Gdy chodzi o edukacje, to Obama chce wydać biliony dolarów nie na polepszenie nauczanie (o czym zielonego pojęcia nie ma), lecz na rozbudowany system oceny efektywności edukacji, by biurokratycznie i skomplikowanie bawić się w przelewanie pieniędzy pomiędzy stanami. Uczniom i rodzcom potrzebna jest edukacja, a nie ocena skuteczności edukacji przez biurokratów. Wszystko jedno biliony ich dolarów - rodziców, i innych obywateli - pojdzie na biurokrację wypełniającą formularze oceniające "efektywność", potrzebną wyłącznie biurokracji, a nie uczniom. To jest bardzo skuteczny sposób okradania społeczeństwa.

W każdej dziedzinie życia społecznego ludzie mogą i powinni organizować się sami, bez rządowego raka, który każde działanie ludzi zatruwa. Zamiast wkładać być obrotnym (wiedzieć w których stać rządowych kolejkach po to i sio i wszystko), zamiast kręcić i oszukiwać i kraść w systemie biurokratycznym, to powinni rząd odsunąć, kroczek po kroczku, i działać samodzielnie, jak dojrzali ludzie dorośli, a nie jak Homo Sovieticus.

Gdy pracodawca nie wie czego chce

Sporo mówi się o tym, że kontrakt pomiędzy pracodawcą i konsultantem pracującym na zasadzie "flat fee" (lub nawet w ogóle :-) powinien dokładnie określić co konsultant ma osiągnąć dla pracodawcy. Niezła zasada, choć widywałem okazyjnie opłakane skutki. Wielka firma i mała zaczynają jako przyjaciele, a kończą jako wrogowie, z obopólnymi pretensjami.

Tak czy inaczej, bywa, że potencjalny pracodawca wie z grubsza o co mu chodzi, ale nie na tyle, żeby spisać dokładny kontrakt, wyliczający etapy, itp. Tak na przykład jest, gdy firma potrzebuje oryginalnego hardware'u. Specjalnością firmy są powiedzmy zastosowania takiego hardware'u, ale nie samo jego tworzenie napoziomie inżynieryjnym, nawet gdy ma koncepcyjny opis nowego schematu. Co wtedy? Przecież biznes jakoś powinien iść naprzód. A tu nawet umowy nie ma jak spisać.

Właściciel firmy z Santa Bardbara (sam był chyba inżynierem lub fizykiem z wykształcenia; stroną techniczną już się wiele nie zajmował detalicznie, ale chyba znał się dobrze) miał odpowiedź: proponował pierwszy etap, niezależny. Pracodawca płacił za ten pierwszy etap, ale mógł na tym współpracę zakończyć, a owoc pierwszego etapu należał już do niego. Pierwszy etap polegał właśnie na ustaleniu dokładnego planu działania. Ponieważ pracodawca za ten plan płacił, to mógł potem firmie konsultanckiej podziękować, a plan wykorzystać we współpracy z inną firmą, która by ten plan wykonała może taniej. Wszyscy na tym zyskiwali. Projekt szedł naprzód. Nikt wiele nie ryzykował, nikt nie pracował za darmo, ani nie płacił za nic.

Rozbijanie problemu na etapy jest jedną z zasad Sztuki Uzgadniania. Niby zasada odwieczna, oczywista, trywialna, każdy wie... Ale warto o niej pamiętać w sytuacjach zdawałoby się konfliktowych lub bez wyjścia. Czasem w praktyce zasada ta nie przychodzi stronom do głowy. Warto pamiętać, że stosowanie tej i innych prostych zasad Sztuki Uzgadniania wymaga twórczego myślenia, wymaga wyobraźni, fantazji. Szkoda, że ludzie wolą przegłosować sprawę, załatwić wszystko na siłę (legalnie, czyli prawem kaduka!), ku frustracji większości i radości złodziei. Nie tyle ludzie wolą, co sobie inaczej nie wyobrażają.

Softaware, itd.

Spis rzeczy



Software


Ostatnio toczy się w buzzie wiee...eelka dyskusja o oprogramowaniu. Głos zabierają wielcy programiści i managerowie, więc mi tam trochę nawet niezręcznie się odzywać. Jakbym, jak w muzyce, rzępolił na gitarze, gdy tam zebrali się prawdziwi kompozytorzy-wykonawcy i koneserzy. Co prawda rzępoliłem czasem (zawsze! :-) tony, których wcześniej nie słyszałem, lub zdawałem sobie z nich sprawę ledwo mgliście, więc ciągle jakby improwizowałem. ... Mógłbym opowiadać bez końca, ale nie o mnie chodzi.

Myślę, że szanowne, doborowe towarzystwo mogłoby skolekcjonować listę wybitnych software'owych artystów.

Z pewnością rej w niej będą wodzić między innymi lub głównie autorzy języków komputerowych. Jednak samo stworzenie języka nie powinno wystarczyć, to inna kategoria. Powinni także wykazać się eleganckimi próbkami kodu. Z pewnością tak będzie prawie za każdym razem. Jednak nic mi nie wiadomo o takich próbkach w przypadku twórcy pięknego języka Forth - Charles H. Moore'a. Nie zrobił na mnie miłego wrażenia, gdy go spotkałem osobiście, słuchałem jego odczytu. Co prawda nie jestem pewny, czy czasem o wiele więcej uznania nie należy się Elizabeth D. Rather, która z Forth uczyniła dojrzały język, zamiast kupy macros. Czy ktoś z Was orientuje się dokładniej? (Przyjaźniłem się z entuzjastą i super-ekspertem Fortha, Dr Ting. Warto popatrzeć, co on pisze; co prawda był wpatrzony w Moore'a jak w obraz).

Z drugiej strony nie znam próbek Larry Walla, twórcy Perla, ale widzę aż nadto, że jest artystą.

Jak nie zarobiłem


Historii pod takim tytułem mógłbym podać więcej. W danym wypadku z pewnym kolegą-managerem pracowałem wcześniej przez około rok, jako konsultant, ale na więcej niż pełny wymiar godzin (jednak nigdy nie więcej niż 12h na dobę, z reguły 12h, i 7 dni w tygodniu :-); tak było przez jakieś 9 miesięcy, po czym pewien projekt wykonałem na zasadzie "flat rate"). Teraz chciał mnie zatrudnić znowu. Ponieważ trochę się go obawiałem, to zażyczyłem sobie, żeby kontrakt dokładnie opiewał co mam zrobić. Tymczasem on uparł się, żeby wstawić frazę o "best effort". Czyli, że będę pracował ze wszystkich sił, najlepiej jak tylko potrafię. Nawet pewien miły człowiek pomagał nam jako pośrednik, bardzo cierpliwie i rozsądnie. Firma tego człowieka dostałaby część projektu. Pracowałem z tym właścicielem firmy harmonijnie w przeszłości, nawet kilka dni u niego mieszkałem, w Santa Barbara (pięknie tam, i mimo południowego położenia - ciut chłodno, chłodniej niż w Silicon Valley). Nic z umowy z moim kolegą nie wyszło. Obaj, manager i ja, zaparliśmy się. Koniec.

Po czasie myślę, że mogłem wtedy podjąć jedną więcej próbę dogadania się. Należało projekt, nie taki znowu mały, rozbić na części, i ustalić harmonogram płacenia. Po każdej części musiałby mi zapłacić, i dopiero potem przystąpiłbym do następnej. (Poniewać wszystko długo trwało w ogromnej firmie managera, to prawdopodobnie wypłaciłby mi z góry więcej :-). Wtedy nie bałbym się frazy "best effort". Rozumiałoby się, że każda strona mogłaby zakończyć współpracę po dowolnym etapie, gdyby po którymś etapie była z drugiej strony niezadowolona.

Dlaczego mój kolega tak się uparł? Przecież znał mnie, wiedział, że pracuję intensywnie. Czasem w nocy robiliśmy sobie przerwę na drinka, udawaliśmy się do baru lub restauracji. Po czym on się rozkładał, jechał do domu, a ja wracałem do pracy. Nie miałoby sensu dla mnie zepsuć sobie dobrą opinię. Myślę, że zależało mu na słodkim uczuciu kontrolowaniu drugiego. Gdy poznaliśmy się, on był na samym dole drabiny managerskiej w swojej firmie. W czasie wspólpracy piął się w górę. Im wyżej był, tym trudniej było wspólpracować. Na początku co powiedziałem technicznie, tak było. Z czasem zaczął się "konsultować" z innymi, a w przypadku pewnego mojego większego pomysłu ponadto chciał nawet zwołać większe zebranie, żeby niby wszyscy razem by zdecydowali - bez sensu!

Potem miałem niepotrzebną mi, gorzką satysfakcję. Mój kolega do pracy, którą miałem wykonać, wynajął niewielką, ale całą zawodową firmę software'ową. Przez pewien czas był z nich zadowolony. Prawdziwi unixowcy, znają narzędzia, napisali śliczny kod, profesjonalnie, piękne indentacje, przyjemnie patrzeć. Tyle że kod dreptał w miejscu, nigdy niczego nie byl w stanie wyliczyć, bo zajmowało mu wieki i milenia. Projekt upadł.Nawet domyślałem się dlaczego ich oprogramnowanie ślamarzyło się, gdy moje kody fruwały. Prawdopodobnie używali unixowe narzędzia do tworzenia języków. Taki trade-off, bo łatwo się pisze, szybko, rekursyjnie, niewiele się samemu myśli, niewiele się samemu rozumie, bo OGÓLNY kod SAM wszystko wie za człowieka. Tylko, że kiedy kod wie wszystko, to nic nie wie o szybkości, zero. A w ambitnych, złożonych sytuacjach bez szybkości nie ma się niczego, nie ma o czym mówić, bo na wyniki programu trzeba czekać w grób-mogile po wieki. U mnie nazwa funkcji od razu funkcję wykonuje. U tych korzystaczy z narzędzi, gdy w programie występuje nazwa funkcji z zastosowania, to ich kompiler musi najpier tę funkcję rozpoznać, musi dokonać parsingu. U mnie użytkownik, wcale sobie z tego nie zdając sprawy :-), sam parsował machinalnie, a kompiler języka i komputer tylko program egzekwował. Przy symulacjach zawsze stosowałem ten bezpośredni styl. (Myślę, że wtedy programy użytkownika jest też bez porównania łatwiej użytkownikowi debuggować).


Kiedyś (nieco później), kiedy patrzyłem na budynek pewnej firmy biologicznej z okna mojego mieszkania - akurat miałem taki widok w niedalekiej oddali) to się uśmiechałem. Bowiem dla siebie, prywatnie, napisałem kod dla aminokwasów, i przyjemnie było patrzeć jak lata. A oni kod, robiący to samo, reklamowali, a nawet udostępniali publice. Zabawy z ich kodem było niewiele, bo ich marnując wiele czasu byl w stanie czasem rozwiązywać łancuchy długości do 5, może 7 symboli (chyyba nie :-). Myślę, że zgadłem powód, dla którego ich kod nie działał. Chodziło o optymizację. Wprowadza się w niej pewne wagi. Głowę dam, że oni "genialnie" (:-) rozpatrywali także wagi ujemne, nie rozumiejąc, że wtedy powstają nieskończone pętle. Zamiast czynić pewne wagi ujemnymi, należało zwiększyć pozostałe. Wtedy algorytm (programowanie dynamiczne) działałby jak ta lala.

Podejście do programnowania


Kolejne dzieci uczyłem jak programować gry w BASICu dla młodszych dzieci. Nie pamiętam, czy nauczyłem także najmłodszą, bo ona już nie miała komu programować. A przede wszystkim, mówiąc serio, sytuacja życiowa się zmieniała. W każdym razie jej brat, sam szkrab, programował dla niej od ręki, kiedy się nudziła. Program pytal ją jak ma na imię, potem zwracał się do niej po imieniu. Ona miała pomyśleć sobie liczbę, a program liczbę zgadywał, dzieląc przedział na pół, pytając ją czy już, czy też ma iść w górę lub w dół. Dziecku było przyjemnie grać.

Podobny porogram napisał mój kolega w pracy, inżynier-manager, dla swojej córki. Program robił na ekranie wrażenie niesprzątneitej hali fabrycznej w porwnaniu ze schludnym, wygodnym mieszkanie. Nic koledze nie powiedziałem, nie miałem serca, gdy przecież tak się dla swojego dziecka postarał (w pracy byłem dla niego znacznie ostrzejszy, mimo że był formalnie moim bosem). Oczywiście poprawiłbym mu programik, ale przecież nie mogłem ingerować w życie rodzinne kolegi, itd.

To jest moja odpowiedź - przynajmniej metafora - na pytanie o znaczenie zwrotu "życia programowaniem". Bo nie chodzi akurat o "user interface", tylko o podejście w każdym wymiarze. (W środku kod mojego szkraba-syna też ładniej wyglądał, niż kolegi. Dlatego może po latach syn, prawie bez formalnego wykształcenia, dawał odczyty na konferencjach, i bardzo ładnie zarabiał, ucząc w firmach programowania).