niedziela, 11 grudnia 2011

Pierwszy lans video



Rozpoczynając jak zwykle skromnie, powyżej pierwszy oficjalny lans video w moim wykonaniu. Prezentacja odbyła się w ramach jednego ze spotkań grupy miłośników Java w regionie Łódzkim.
Prezentacja jakaś wybitna nie jest : ja cały czas uczę się wysławiać i prezentować, koledzy uczą się nagrywać tak aby cokolwiek było widać i cokolwiek było słychać. Mowę ciała mam jeszcze zjebaną ale powinno dać się to oglądać. OTO przed wami:



Problem jakości w teorii i praktyce czyli dlaczego wszyscy (poza Tobą) tworzą nieczytelny kod

Główna ideą prezentacji było uzmysłowienie wszystkim zebranym, że nie potrafią programować ;). Tak, jest to dosyć kontrowersyjne stwierdzenie ale bazując na obserwacjach, które cały czas przeprowadzam wydaje się być prawdziwe. Oczywiście ja również łapię się do zbioru "wszyscy zebrani" i jest to wbrew pozorom fantastyczna rzecz. W październikowym wydaniu "Focusa" była wzmianka o badaniach twierdzących jakoby najbardziej myliły się osoby nie mające kompletnie żadnego pojęcia o danym temacie, jak również osoby uznające, że w danej dziedzinie są spejcalistami. Jak to wszystko o czym tutaj wspominam składa się w logiczną całość prezentacji?



o co chodzi w programowaniu?



Dlaczego większość osób zajmujących się extremalnym użyciem klawiatury woli robić nowe projekty zamiast utrzymywać cudze? Niby jedno i drugie to przecież "programowanie". Utrzymanie jednak polega zazwyczaj na spędzeniu około dwóch tygodni na próbie zrozumienia jak działa dany kod a następnie na dodaniu kliku linijek. Ani programiści nie są z tego zadowoleni ani zapewne szare eminencje zajmujące górne warstwy korporacyjne. Przecież czas to pieniądz. Gdyby tak programista znał doskonale kod, z którym pracuje, to namierzenie miejsc wymagających wprowadzenia zmiany zajmowało by relatywnie odpowiednio zajebiście mniej czasu.


To o czym tutaj piszę na obrazku można zauważyć w czerwonym prostokąciku. Jest to meritum zrozumienia czytelności kodu, droga do zdobycia świętego grala wszystkich zespołów programistycznych i zapowiedź wolności emocjonalnej załóg działów utrzymania. Aby znaleźć wszystkie odpowiedzi na pytania odnośnie czytelnego kodu trzeba podróżować na granicy techniki i psychologii. Nie wiem czy kawałek prezentacji omawiający to zagadnienie będzie zrozumiały gdyż z tego co widziałem próbki kodu prezentowanego na tablicy są nieczytelne. Ale nawet jeśli to tylko zaproszenie do osobistego zgłębiania tematu. Interesujace hasła to : psychologia, percepcja, nlp, teoria pamięci i tym podobne.


No a jak już wiadomo co trzeba zrobić nadchodzi etap drugi, czyli faktyczna zmiana. Tutaj w grę wchodzą wszelakie wzorce pozwalające programiście wywrzeć duży wpływ na system stosunkowo małym kosztem



Dlaczego sama teoria nie wystarczy?





Efekt aureoli,Efekt halo ,błędy percepcyjne - ma to wiele określeń ale zawsze chodzi o to samo - "jest ładny to jest i mądry", "samochód jest czysty to się nie psuje", "towar ma ładne opakowanie i jest drogi to na pewno jest dobry", " w pracy mówią na mnie architekt to znaczy , ze dobrze programuję", "w pracy tworzę słynny portal X, który zarabia miliony to zanczy ,że dobrze programuję". nie, wcale tak nie znaczy .

  • programowanie wielowątkowe
  • programowanie obiektowe
  • programowanie bazodanowe
  • czytelne programowanie

Co mają wspólnego poszczególne pozycje na tej liście: ano obrazują one niezależne umiejętności.
Aby nabyć dana umiejętność trzeba podejść do tego wyzwania świadomie:

Weźmy takie programowanie wielowątkowe. Znam masę osób, które owego zagadnienia nie znają a kilka latek już kodują. Dlaczego nie znają? Bo byli skoncentrowani na czymś innym. Sam fakt, że tworzysz działające programy przez dłuższy czas, i że one działają wcale nie znaczy, że twoje programy są czytelne.


Dla osób zainteresowanych zdobywaniem nowych umiejętności : wpiszcie sobie w google "model TOTE"



Ostatnia część prezentacji to omówienie statycznej analizy kodu ale to temat na inny post.

niedziela, 20 listopada 2011

"A Refaktoring zrobimy później"

Co mają wspólnego rzodkiewki,czekolada i programowanie?
Zanim odpowiemy sobie na to fascynujące pytanie zróbmy krótką symulację poprawy błędu z punktu widzenia programisty.


W systemie jest błąd.


Aby go znaleźć składamy w głowie kawałki logiki niczym puzzle tak aby uzyskać pełny obraz układanki.
Znaleźliśmy.
Wygląda na to że błąd jest tylko małym objawem ogólnie zjebanego kawałka logiki systemowej. Trzeba go teraz jakoś naprawić.
Może wystarczy szybki hak?.

W zależności od poziomu motywacji (wzbogaconej o własne poczucie jakości i solidności oraz zmieszanej z rozsądkiem i przewidywaniem ryzyka) jakim nas uraczyła korporacja , możemy chcieć zastosować coś porządniejszego niż zwykła plastelinowa łatka, która za 5 minut się odklei.

Ale co jest złego w takiej łatce?
Rezultat będzie osiągnięty, manager szczęśliwy a statystyki wypicowane.
Zrobić to dobrze czy zrobić to szybko?
W zasięgu jest szybka gratyfikacja ale jednocześnie pojawia się świadomość konsekwencji takiego kroku.
Może jednak łątka i szybki rezultat?
Nie, nie można zostawić takiego zjebatorstwa.
A może jednak


Kiedyś widziałem prezentację (psychologiczną), która takie dialogi nazywała dialogami dziecko-rodzic . Dziecko chce zaspokoić swoje potrzeby natychmiast zaś rodzic zważa na wszelkie konsekwencje. Jaki to wszystko ma wpływ na programowanie. Ano ma wpływ kurewsko duży. Czas na rzodkiewki.


Wyczerpanie EGO



Eksperymentów było kilka a więcej szczegółów można znaleźć pod frazą "ego depletion" lub szukając nazwisk "Roy Baumeister" czy "Mark Muraven".

Skupmy się na jednym z nich.


Badanych podzielono na grupy. Każda z osób biorących udział w eksperymencie wpuszczana byłą do pomieszczenia gdzie czekały na nią dwa talerze : jeden z rzodkiewkami zaś drugi z czekoladą. Każdy z uczestników opuścił jeden posiłek toteż czuł pewien głód. Teraz : pierwsza grupa mogła skosztować słodkich czekoladek zaś drugą poproszono o to aby zwalczyła instynkty, opanowała chęci i zamiast czekoladek skupiła się na rzodkiewkach.

Dlaczego tak bardzo lubimy czekoladki? Ano dzięki węglowodanom prostym, które natychmiast dostarczają energię do organizmu. Miało to sens eony temu jak zwierz był szybki a kolacja niepewna. W dobie ogólnoświatowego śmietnika gastronomicznego cały ten mechanizm prowadzi do czegoś co nazywa się "plagą otyłości".

Rzodkiewki cukrów chyba nie mają. Zdrowe bo zdrowe ale energii tak szybko nie dostarczą zwłaszcza kiedy żołądek zaczyna trawić cię od środka.

Gdy badacze przestali pastwić się na badanymi nastał czas na druga część eksperymentu. Każdy z badanych dostał do rozwiązania specjalnie spreparowaną łamigłówkę. Tak spreparowana aby nie dało się jej rozwiązać. To co było istotne to jak długo każdy z badanych będzie próbował ową układankę rozwiązać zanim się podda. Teraz zgadnijcie kto wytrwał dłużej.

Czekoladki wygrały. Naukowcy obwieścili istnienie formy wyczerpywalnej energii, która wydaje się zmniejszać za każdym razem gdy nasz świadomy umysł jest poddawany wysiłkowi.
Energię tę można rozumieć jako pewną abstrakcję ukrywającą cała masę procesów hormonalnych i psychologicznych dziejących się w umyśle.


Zesramy się a nie "zrefaktoryzujemy."


Zerknijmy teraz na analogie. Wprowadzenie dowolnej zmiany w kodzie składa się z wieloetpaowej układanki: naprzemienne składanie aktualnej logiki w głowie, tworzenie nowej układanki na potrzeby zmiany, a wszystko to w kontekście ciągłego dylematu czy zrobić to szybko (czekoladki) czy dobrze (rzodkiewki).


Co się teraz stanie jeśli postanowimy najpierw zrobić projekt "żeby działał" a "poprawimy później". System będzie jednym wielkim zbiorem poplątanych układanek.

Po pierwsze :

Złożenie zjebanej układanki wyczerpie ego przez co poddamy się szybciej przy układaniu następnych co zaowocuje kolejna zjebaną architekturą.

Po drugie :

Wydłuży się czas po którym zobaczymy jakikolwiek funkcjonalny efekt. Wydłuży się czas po którym nakarmimy się radosnym uczuciem zamiany potencjalnej energii kodu w energie funkcjonalności.
A jak jest się głodnym to co? to czekoladkę.


Tym skromnym postem autor chciał pewnym środowiskom zabrać pozorne poczucie kontroli nad jakością projektu wyrażane w słowach "zróbmy teraz co chce biznes a poprawimy później".
Oczywiście biorąc pod uwagę odpowiednio duże środki finansowe może to się zdarzyć tak samo jak przy odpowiednich środkach finansowych Widzew Łódź może wygrać ligę mistrzów. Trzeba tylko zbudować nową drużynę.



http://en.wikipedia.org/wiki/Ego_depletion

niedziela, 23 października 2011

Prognozy na przyszłość czyli w Łodzi nareszcie coś się dzieje!

Dlaczego drogi czytelniku miałby Cię zainteresować fakt przeprowadzenia relatywnie dużej konferencji technologicznej? Na pewno masz swoje pole specjalizacji, które w jakimś tam stopniu krzyżuje się ze światem technologicznym ale nie wydaje się to być dla ciebie czymś istotnym. Może nawet jesteś hardcorowym humanistą, który codziennie celebruje wyższość człowieczeństwa nad bezdusznymi narzędziami. Wiedz jedno. Owe narzędzia zmieniają pojęcie człowieczeństwa. Burzą mury pomiędzy dziedzinami zacierając granicę pomiędzy tym co ścisłe a nie ścisłe

Jeśli nie wierzysz to na początek wpisz w google frazę: "software studies" a dowiesz się, iż jest to nowa dziedzina, jeden z najnowszych kierunków, który wzmocniony zachętą gigantów IT pojawił się na zachodnich uczelniach. Ów kierunek- uwaga -zajmuje się badaniem wpływu wytwarzanego oprogramowania na szeroko rozumianą kulturę i społeczeństwa. Inne ciekawe kierunki to Analityka kulturowa czy Kulturomika , podchodzące do kultury jak do ogromnego zbioru danych, w którym można wyszukać konkretne trendy.




Jaki to ma wszystko związek z wydarzeniami w Łodzi? Dnia wczorajszego w tym "smutnym jak pizda mieście" miała miejsce pierwsza poważna konferencja z zakresu IT a konkretnie z zakresu przeróżnych i ciekawych technologii mobilnych. Technologii, które "jutro" będą definiować normę naszego życia. I choć z programowaniem na urządzenia przenośne mam tyle wspólnego co z samochodami drogimi to jednak podzielę się kilkoma osobistymi spostrzeżeniami


Rzeczywistość rozszerzona


Koncepcja wydaje się prosta. Wystarczy nakierować ekran urządzenia na konkretny krajobraz by otrzymać od naszej maszynki dodatkowe informacje odnośnie tego co widzimy: gdzie jest najbliższy Makdonald czy sklep z alkoholem metylowym. W zasadzie nic nie stoi na przeszkodzie aby nakierować taki ekran na człowieka, obedrzeć naszego rozmówcę z resztki tajemnicy i otrzymać szybką syntezę analityczną danej osoby otrzymaną z jego działalności w internecie. A baza ta może być wcale nie mała...



Kultura prezentacji


Niedawno w dodatku do Polityki był artykuł, w którym autor twierdził iż obecnie ludzie nie szukają u innych "głębi emocjonalnej a jedynie traktują ich jako widzów swojego spektaklu (czyt. lansu)". Na konferencji było rzuconych kilka pomysłów, które taki stan rzeczy mogą spotęgować. Już niedługo każdy będzie miał kolorową komóreczkę, która jeszcze bardziej niż teraz umożliwi swojemu użytkownikowi dzielenie się ze światem (czyt. portalami facebookowopodobnymi) tą wersją swojej prywatności, która pokazuje jakie zajebiste mamy życie.

Organizacja


Były bułki, jogurty ,szatnia i dobra pogoda. Nie dotarło kilku prelegentów ale co można na to poradzić jak wystąpienie jest za darmo. Jako że prezentacja miała charakter wojskowy to z odsieczą przybyły posiłki. Na koniec miało miejsce losowanie, w którym można było wygrać m. in. wygodna bezprzewodową klawiaturę. Początek był dobry a za rok liczę na jeszcze większe pierdolnięcie.

Kilka linków


http://en.wikipedia.org/wiki/Software_studies

http://kultura20.blog.polityka.pl/2009/05/17/analityka-kulturowa-drugie-podejscie/

http://en.wikipedia.org/wiki/Culturomics

http://www.humanistykacyfrowa.com/

http://mobiledeveloper.pl/articles/mobilization-raport-z-pola-walki

wtorek, 11 października 2011

Poznaj swoje ograniczenia - psychologiczne podstawy jakości kodu

Celem tekstu, który tutaj tworzę jest wymuszenie bardziej refleksyjnego spojrzenia na rzeczy z pozoru oczywiste


Z pośród całej masy publikacji dotykającej tematyki programowania niewiele jest pozycji, które poruszają specyficzną tematykę tworzenia kodu "ogólnie". Co więcej masa książek noszących inicjały światowej sławy inżynierów prezentuje wręcz kod śmiało nadający się do kategorii "syf" a nie "arcydzieło". Jedna z lepszych pozycji, która nie wymiotuje na czytelnika pseudo przykładami to Czysty kod napisany przez pana mieniącego się : Robert C. Martin.


Jest to jedna z lepszych (jeśli nie najlepsza) pozycji stawiających sobie za cel znalezienie właściwej drogi do tworzenia czytelnego kodu, ale jednak czegoś w niej brakuje. Weźmy taki rozdział o optymalnej ilości parametrów przekazywanych do funkcji :

  • 0 - super
  • 1 - jeszcze ok
  • 2 - zaczyna być groźne
  • 3 - pachnie zjebatorstwem
  • 4+ - niezbędny refaktoring

Niestety autor jedynie stwierdza, że za dużo argumentów funkcji jest po prostu nieczytelne i zadowala się tak płytką argumentacją.


Jest taka profesjonalna biznesowa technika wkurwiania ludzi nazywająca się "5 razy dlaczego" fachurkowo wymawiana przez ludzi piastujących stanowiska nazwane bynajmniej nie po polsku "fajw whais" (5_Whys).
Cała sztuczka polega na zadawaniu pytania "dlaczego" tyle razy aż dojdzie się do bazowej przyczyny problemu. Niestety większość argumentacji pojawiających się w wywodach odnośnie pisania czytelnego kodu byłoby rozerwanych przez tę technikę, bo jak mogłaby wygladać taka rozmowa:

- 3 argumenty funkcji to zdecydowana granica
- dlaczego ?
- bo później kod staje się nieczytelny
- dlaczego ?
- bo pojawia się za dużo kombinacji
- dlaczego fakt, że pojawia się za dużo kombinacji sprawia że trudniej czytać kod
- ...

I ch*j, tutaj już schodzimy na intuicję.W zakresie prasy IT nie znalazłem żadnej, choćby pseudonaukowej próby wytłumaczenia dlaczego 2 parametry mają być dobre a 3 lub 4 już nie.
Może Inżynierowie nie szukali odpowiedzi na to pytanie ale psychologowie znaleźli ja ponad 50 lat temu


"Magiczna liczba 7"


Własnie pół wieku temu przeprowadzono badania, które określiły granice ludzkiej pamięci (krótkotrwałej) i dały odpowiedź na to : ile koncepcji,idei czy obiektów istota ludzka jest w stanie przeanalizować w danej chwili.


Link do dokładnych badań :
http://www.musanim.com/miller1956/

Streszczenie w wikipedii : http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two



Kto ma ochotę może zapoznać się szczegółowo z raportem a dla bardziej leniwych dwa wnioski podsumowania :

  1. Możemy w jednej chwili ogarnąć około 4-6 koncepcji.(liczba 7 jak się okazuje była zastosowana tylko z powodów marketingowych). Dlaczego tyle? Być może przez miliony lat ewolucji taka liczba była najwłaściwsza aby ogarnąć codzienność ówczesnego życia : Tygrys, Kobieta, Ogień , Jaskinia
  2. Pojęcie koncepcji :
    • funkcja(flaga1,flaga2,flaga 3) 
      - od razu zaznaczam, że jest to przykład maksymalnie zjebanego kodu. Funkcja przyjmuje trzy niezależne od siebie parametry, których kolejność interakcji może mieć znaczenie, więc mamy 2^3=8 możliwych interakcji co skutkuje wyjściem poza granicę buforu pamięci krótkotrwałej
    • funkcja(imie,nazwisko,ileKasy)
      - tutaj da się wyodrębnić dwie koncepcje : DaneNadawacy i KwotaPrzelewu, do tego mamy tylko jeden sposób interakcji , który docelowo można nazwać DaneDoPrzelewu

Patrząc na powyższe przykłady można zaryzykować twierdzenie, że pierwsza funkcja jest do wyjebania a drugą można poddać prostemu refaktoringowi.


Wnioski


Przykład był uproszczony to i wnioski wypływające z niego będą uproszczone : Trzy parametry w funkcji nie zawsze oznaczają totalnie zjebany kod ale ta liczba stanowi doskonały wyznacznik dla potencjalnego "smrodu" w kodzie . W firmie ustawiliśmy regułę statycznego sprawdzania kodu w Sonarze na maks 3 parametry w metodzie i jak na razie się to sprawdza. Jak dołożymy do tego masę innych praktyk, o których kiedyś wspomnę to rezultat faktyczny jest taki, że nawet dosyć rzadko pojawiają się w naszym kodzie funkcje z wspomnianymi 3 parametrami.

Ważne aby potencjalnemu czytelnikowi drzewa nie przesłoniły lasu. Parametry parametrami ale głównym zamysłem jaki chcę przekazać z tego artykułu jest zachęta do szukania głębszych wyjaśnień pewnych kwestii a nie zadowalanie się wytłumaczeniem "bo wydaje się to mieć sens"

niedziela, 25 września 2011

Motywacja szkoleń

Dzisiaj krótko i Bez zbędnego wstępu:

Więcej wyciągasz ze szkoleń jeśli masz świadomość, że sam będziesz musiał je przeprowadzić

  1. Wniosek powyższy żywo wypływa z badań prowadzonych przez --> prof. Edwarda Deci
  2. O samych badaniach można poczytać w wikipedi ---> "teoria określania siebie"
  3. Oraz w polecanej w większości źródeł nawiązujących do tych badań książce ---> Why We Do What We Do: The Dynamics of Personal Autonomy

Badania wykazały istnienie motywatorów zewnętrznych i wewnętrznych, i to właśnie te drugie tłumaczą założenie : "Więcej wyciągasz ze szkoleń jeśli masz świadomość, że sam będziesz musiał je przeprowadzić". Jest tam spisana wzmianka o potrzebie - jaką przejawia każdy w miarę zdrowy psychicznie człowiek - "bycia postrzeganym jako osoba kompetentna". I choć intuicyjnie wydaje się logiczne, że utrwalamy wiedzę przeprowadzając szkolenie, na którym byliśmy tylko odbiorcami, to wspomniane wyżej badania wskazują, iż jeśli będziemy tego faktu świadomi w momencie naszej szkoleniowej partycypacji to uzyskamy dodatkowy efekt silnej podświadomej motywacji by wyciągnąć z kursu jeszcze więcej.

poniedziałek, 15 sierpnia 2011

Psychologia szkoleń.

Jaki jest najlepszy przepis aby skutecznie przekazać porcję wiedzy pomiędzy dwoma osobami? Na początek Możemy wyobrazić sobie spotkanko, gdzie jedna osoba mądrze prawi ciekawe informacje w kierunku zebranej publiczności i po godzinie uczestnicy szkolenia radośnie wyjdą ze szkolenia pełni wiedzy z ekscytacją wyczekując okazji do wprowadzenia poznanych faktów w swoje zawodowe życie.

Niestety :( . wystarczy w pisać w google "ile zapamiętujemy z tego co usłyszymy" by natrafić na wszelkiego rodzaju wyniki badań mówiących o tym, że "Ile zapamiętujemy? 10% z tego, co słyszymy; 20% z tego, co widzimy; 40% z tego, o czym rozmawiamy; 90% z tego, co robimy" . Ostatnia wartość daje pewną wskazówkę co do skutecznej techniki zapamiętywania : "90% z tego, co robimy". Warto by więc owo szkolenie przeprowadzić w formie ćwiczeń gdzie każdy uczestnik wykonałby to o czym się uczy. Także prowadzący lub kilku prowadzących nadzorowałoby przebieg ćwiczeń a uczestnicy w sile kilku - kilkunastu osób wykonywaliby przygotowane ćwiczenia. W zasadzie tak wygląda większość szkoleń. Opisana propozycja ma jedną małą ukrytą wadę : jest totalnie zjebana. Nie uwzględnia dynamiki grupy. Zanim dokładnie wytłumaczę o co dokładnie chodzi, czas na metaforę okraszoną odrobiną lansu


"kurwa mać" na zatoce czyli problemy szkoleń grupowych.


Cel : nauka pływania na desce z żaglem. 
Miejsce : Półwysep Helski. 



Zwiedzanie szkółek nad zatoką rozpoczęliśmy w niedzielne popołudnie czując jeszcze we krwi oranżadę skonsumowaną w trakcie wieczorka zapoznawczego. Opcje nauki znaleźliśmy dwie: 10 godzin lekcji indywidualnych z rzygnięciem ponad tysiąca złotych lub dołączenie do obozu dającego ponad 20 godzin pływania, wykłady i darmową kiełbaskę z grilla. Po zapuszczeniu wyszukanych logarytmów finansowych uwzględniających współczynniki POWER i ECONO zdecydowaliśmy się na opcję numer dwa zaś szczęśliwcem okazała się szkoła boards.pl.


Odpadnij na początku



Ledwie zdążyliśmy złożyć podpis a już byliśmy jedne zajęcia w plecy, które odbyły się rano a omawiały tak przyziemne rzeczy jak sposób wejścia na deskę aby się nie zjebać czy też fakt, że na "wodzie" nie skręca się w lewo czy prawo ale odpada czy wyostrza. Brak tej wiedzy miał się okazać krytyczny w trakcie pierwszych dni. Oczywiście szefu zrobił nam 5 minutowy pokaz z masowanym ostrzałem fachowego słownictwa, które nic nam nie mówiło. Po krótkiej prezentacji na pytanie czy wszystko zrozumieliśmy odpowiedzieliśmy radośnie, że nie. Nie było już czasu. Na ten moment osiągnięciem wydawało się podniesienie żagla z ziemi tak aby nie zaryć facjatą w glebę.



Postęp geometryczny



Pierwsza godzina przebiegła pod znakiem podnoszenia żagla z wody co miało zaowocować doskonałym ćwiczeniem odcinka lędźwiowego oraz zjechaną do krwi skórą. Jednocześnie zaobserwowałem pewną oczywistą prawidłowość, pomimo tego iż kilka pierwszych minut instruktor poświęcił na to aby upewnić się, że załapaliśmy to co było na początkowych zajęciach to jednak braki w nauce pierwszych czynności uniemożliwiły efektywne uczestnictwo w kolejnych ćwiczeniach. Wydaje się to być dosyć intuicyjne.

Załóżmy że mamy do nauki zależne od siebie trzy czynności A<---B<---C.

A - stawianie żagla (jakkolwiek to brzmi)
B - proste manewrowanie deską
C - bardziej złożone manewrowanie deską
teraz jeśli ktoś zacznie odstawać od grupy w momencie A. Nie będzie w pełni uczestniczył w nauce B co jeszcze bardziej unaoczni się w momencie nauki C. Dystans w wiedzy pomiędzy uczestnikami potencjalnie może mieć charakter wykładniczy (notka dla humanistów : rośnie bardzo szybko) Jeśli dołożymy do tego frustrację i zdenerwowanie to rozpatrywana osoba jest w stanie się szybko zniechęcić do danej dyscypliny.

Prawy mózg

Ponieważ dumnie przyznałem przed sobą, że na byle kogo problem nie trafił toteż zacząłem sukcesywnie wdrażać odkrycia z pola pragmatycznej nauki szybko odpalając sobie stan zabawy i karmiąc prawą półkulę wszelkiego rodzaju nieskoordynowanymi eksperymentami na wodzie czekając na ten magiczny moment kiedy to mój umysł oznajmi uroczyście, że reguły pływania zostały zrozumiane podświadomie i możemy przejść do nauki fikołków i skoków przez molo. Faktycznie, dosyć szybko ciało zaczęło podświadomie łapać równowagę ale nadal nichuj nie wiedziałem jak tym czymś się kieruje. Innym zaczęło wychodzić. Zaobserwowałem wtedy dosyć destrukcyjne uczucie połączenia złości i swoistej zazdrości pojawiające się gdy widzisz radość na twarzy innego uczestnika kursu. Rozumiem to w ten sposób, iż jeśli cała grupa ma problem łatwo sobie racjonalizować sytuację poprzez tłumaczenie, że czynność jest trudna. W przypadku gdy tylko tobie coś nie wychodzi już nie tak łatwo coś sobie wkręcić błędami poznawczymi i organizm odpowiada wzmożoną złością, która utrudnia naukę jeszcze bardziej. Tak czy inaczej po odpaleniu stanu zabawy trzeba było przyjąć nową taktykę...

Windusrfing Kata

Kata - uczniowie powtarzają sekwencje ruchów nauczyciela. Następnego dnia postanowiłem naśladować ruchy instruktora bez zbędnego wnikania dlaczego tak a nie inaczej. Wcześniej jednak postanowiłem nakarmić trochę olany "mózg lewy " zadając serię pozornie głupich i podstawowych pytań. Z bagażem teorii , pełny nowych nadziej zacząłem wdrażać plan w życie. Popłynęliśmy , zawróciliśmy, popłynęliśmy, zawróciliśmy . Byłem w stanie przyśpieszać choć jeszcze nie wiedziałem dlaczego. Byłem w stanie sterować deską choć nadal nie rozumiałem na jakich regułach. Od czasu do czasu stawaliśmy aby poczekać na innych i wtedy nadążała się okazja do pytań : dlaczego tak a nie inaczej. Po kilku takich kursach zauważyłem, że tym razem odstaję od reszty pozytywnie co dało mi czas na pewne eksperymenty aby zrozumieć dlaczego czasami płynę szybciej, czasem wolniej a czasem w ogóle. Oświecenie, że pod wiatr nie da się płynąć miało przyjść następnego dnia...

Epilog

Całe szczęście w noclegowni był internet i mając bazę praktyczną można było zbudować uporządkowaną część teoretyczną. Mając punkt odniesienia w praktycznych wspomnieniach było mi łatwiej znaleźć motywację do zapamiętania co jest po co i jaka role w tym wszystkim odgrywa wiatr. Mówiąc ściślej: mózg miał do czego asocjować nową wiedzę. Pojawiła się także jeszcze inna wiedza, wiedza odnośnie wad szkoleń grupowych.

ONEonONE Coding Kata - czyli wypierdalać mi ze szkoleniami grupowymi

Wracając na znajome podwórko IT. Coding Kata - Jedna osoba tworzy kod, który jest wyświetlany na tablicy, zas pozostały osoby kopiują te kroki. Oczywiście w teorii. W praktyce mogą pojawić się te same zjawiska psychologiczne co w trakcie nauki windsurfingu. Jedni będą przyswajać szybciej i będą się nudzić a inni odstając coraz bardziej do grupy będą tonąć we frustracji. Koniec końców zamiast utrwalić sobie nowy efektywny nawyk ludzie będą stosować swoje mini optymalizacje (podobnie jak ja gdy na początku zamiast przyswoić sobie poprawne zwroty na desce robiłem zwroty poprzez ręczne przerzucenie dechy na drugą stronę).

Na dzień dzisiejszy dobrym pomysłem wydaje się robienie szkoleń wewnętrznych 1 na 1. W tym przypadku osoba, która uczestniczyła w danym szkoleniu może sobie utrwalić wiedzę szkoląc kolejną osobę i tak dalej przez co uzyskamy wykładniczy przyrost wiedzy w grupie (humaniści powinni już wiedzieć co to znaczy). Za kilka tygodni/miesięcy sprawdzimy jaki będzie wynik tego podejścia.

Tutaj operator Grześ zakradł się i uchwycił dyskusję szkoleniową w jakże kurwa naturalnych pozach

niedziela, 17 lipca 2011

Umysłowa suplementacja : cześć pierwsza

Kontekst tego posta jest niecodzienny ponieważ jest to pierwszy raz od kiedy prowadzę tego bloga gdy ktoś konkretnie dopytywał się o datę pojawienia nowego wpisu. Do tego miło się robi na duszy gdy niespodziewanie ujawnia się coraz więcej osób czytających tę twórczość. Mam nadzieję, że idzie za tym głębsza potrzeba merytorycznej uczty aniżeli chwilowa ciekawość.

Temat suplementacji chce potraktować poważnie gdyż nawet najlepszy soft może zamulać na słabym sprzęcie. Co z tego, iż przed oczyma będą wyjaśnione systemy, podejścia czy filozofie jeśli wewnątrz tego mechanizmu pomiędzy uszami coś nie zatrybi. Zapraszam do lektury. Poniżej podzielę się zestawem środków, które sam stosuję.


Różeniec górski





Za produktami tworzonymi na bazie tego ziela stoi (podobno) kilka tysięcy lat tradycji. Obecnie znajduje się w wachlarzu suplementacyjnym sportowców, żołnierzy, astronautów czy kogokolwiek, kogo efektywność ma znaczenie dla sukcesu dowolnego przedsięwzięcia. W sieci można napotkać pewne wzmianki odnośnie problemów z zasypianiem związanym z zażywaniem produktów opartych na różańcu górskim jednakże osobiście nic takiego mnie nie spotkało.


Poniżej parę wzmianek odnośnie badań prowadzonych z udziałem wspomnianej rośliny :


CALINews nr 6, listopad 2004 oraz
CALINews nr 1, styczeń 2004

  • Przeprowadzono eksperyment na grupie młodych, zdrowych lekarzy i lekarek, pracujących podczas trudnego, nocnego dyżuru. Przebadano kilka funkcji umysłowych (np. pamięć, zdolność koncentracji, spostrzegawczość), w zależności od przepracowanego czasu. Uczestnicy badania nie wiedzieli, kto otrzymuje składnik aktywny w postaci wyciągu z Rhodiola rosea w ilości 170 mg. Wyniki badań wykazały, że lekarze z grupy kontrolnej, którzy otrzymywali placebo, znacznie gorzej znosili pracę w nocnych warunkach, niż ich koledzy przyjmujący preparat z Różeńca górskiego.
  • Podczas innego badania, obserwowano wpływ wyciągu z Rhodiola rosea na kondycję 17-19-letnich studentów podczas sesji egzaminacyjnej. Zażywanie go spowodowało spektakularne różnice w wydolności fizycznej i intelektualnej oraz w ogólnym samopoczuciu, w porównaniu z grupą kontrolną przyjmującą placebo.

Więcej informacji w necie:



"Dobra koncentracja"





To produkt firmy Sensilab. Również zawiera sporo wszelkiego rodzaju zielstwa i innych domieszek:

  • Bacopa - roślinka z Indii
  • Lecytyna - buduje neurony i wspiera efektywność pamięci
  • Żeń-szeń - kiedyś droższy od złota
  • http://pl.wikipedia.org/wiki/Teanina
  • żelazo - dostarcza tlen do komórek mózgowych
  • witamina B6 i B12 - o tym zaraz


Witaminy



  • B12 - tworzy powłoki ochronne komórek nerwowych. Brak to: anemia i zaburzenia neurologiczne.Występuje w: chude mieso, ryby, skorupiaki, selery,jaja.
  • B6 - Jej niedobór w organizmie prowadzi do uszkodzeń neuronów co moze zapoczątkować depresję psychiczną , a także do nieprawidłowego wytwarzania neurotransmiterów i niedokrwistości. Występuje w :kiełki pszenicy, ciemny ryż, soja, orzechy
  • B1 - Też tam ma jakiś wpływ na pamięć : występuje w takich produktach jak :tręby, pieczywo razowe, płatki owsiane czy kasza gryczana, orzechy, suche nasiona roślin strączkowych

Oczywiście pisząc "ryby" czy "jaja" mam na myśli ryby, które spokojnie pływają sobie w czystych wodach lub jaja znoszone przez kurki wesoło biegające sobie po wsi. Z tego co wiem ani naszprycowana antybiotykami panga ani notorycznie maltretowane na fermach kury nie dostarczają nijak tych witamin.

Pamiętajcie także, że witaminy z gruby B są chętnie wypłukiwane przez alkohol także jak już trza pić to jakiego supla można w międzyczasie zarzucić. Dobre też mogą być takie małe "szociki" witaminowe z tesco ale nie wiem jak z przyswajalnością tego czegoś.

Omega 3



O tym (dobrym) tłuszczu ostatnio trąbi wiele źródeł. Generalnie pomaga on na wszystko i znajduje się głównie w rybach. Biorąc pod uwagę, że kiedyś nasz gatunek wyszedł z wody a miliony lat później rozwijał się w okolicach rzek i mórz to można logicznie wywnioskować, że nasz organizm jest zoptymalizowany w kierunku diety opartej na rybce.

Istnieją jeszcze kwasy tłuszczowe omega 6 i omega 9. Mądrzy naukowcy sprawdzili, że jak tych z numerkiem 6 jest zbyt dużo w porównaniu do tych z numerkiem 3 to nasz organizm jest na wiele sposobów wewnętrznie niszczony. Jeśli do tego zauważymy, że omega 6 znajduje się w olejach roślinnych to mamy pełen obraz dramatu.

Ryb za dużo podobno jeść też nie można bo każda sztuka ma w sobie trochę rtęci. Dlatego też dietę należy uzupełnić suplem. Osobiście polecam ten z obrazka gdyż doszedłem do wniosku, że z pośród bogatej oferty rynkowej najpewniejsza będzie ta, która jest skierowana do bardzo wymagającej grupy odbiorców doglądającej przed lustrem każdego mięśnia. Ramię w ramię z kulturystami możemy walczyć także z innym wspólnym wrogiem. Masakrującym pamięć oraz mięśnie a także odkładającym tkankę tłuszczową kortyzolem. Ale o tym w następnym odcinku.



Linki odnośnie omega 3

niedziela, 3 lipca 2011

Flow

Czym jest "flow". Używając słownictwa dzieci z demotywatorów flow - "to uczucie gdy nie zauważasz zewnętrznego swiata i całą energię oddajesz wykonywanemu zajęciu". Do poruszenia tego tematu skłoniła mnie ankieta psychologiczna przeprowadzona ostatnio w firmie, która po raz kolejny potwierdziła moje obserwacje fachu informatycznego - wiele ale to naprawdę wiele osób znalazło sobie sposób na mękę za dobre pieniądze. Paradoksalnie gdy przestaniemy się męczyć i znajdziemy fascynację tym zawodem pieniądze mogą być jeszcze większe.



Istnieje bardzo ciekawa książka o trudnym do przetłumaczenia tytule : "Finding flow : The Psychology of Engagement with Everyday Life" - Psychologia zaangażowania w codziennym życiu.
Dokładnie. Psychologia zaangażowania, jak znaleźć siłę, energię, pasję i moc aby "zachowywać się tak jakby od naszych czynów zależał los wszechświata jednocześnie śmiejąc się z małego wpływu jaki na niego mamy". Samo słowo flow można przetłumaczyć jako "przepływ" co brzmi debilnie dlatego pozostanę przy brzmieniu oryginalnym.


Oczywiście zanim skupimy się na tym jak coś znaleźć musimy wiedzieć czego szukamy. Dlatego sam początek bardzo abstrakcyjnie omawia pojęcia życia i doświadczenia. Dowiemy się tutaj, że ludzie działają jak trybiki i większość swojego wolnego czasu marnują na bezcelowe przyjemności jak oglądanie filmów czy gry komputerowe (książka powstała jeszcze przed "zsocjalizowaniem" się na dobre internetu). Pawiany żyjące w Afryce przesypiają jedną trzecia życia. Gdy budzą się po 8 godzinnym śnie szukają jedzenia aby zaspokoić głód a gdy już to zrobią relaksują się wydłubując sobie nawzajem pchełki. Brzmi nudnie? ogólny schemat dnia przypomina to co robi większość ludzi pracujących na etacie (podobno w 13 wieku w zaawansowanej jak na ówczesne czasy Francji głównym zajęciem chłopów i chłopinek w czasie wolnym było wyłuskiwanie sobie pchełek z głów, dzisiaj mamy telewizję).

Jak uwolnić się z monotonii?


Flow znajduje się pomiędzy kontrolą a pobudzeniem, trochę czerpie z relaksacji i niepewności a odcina się od znudzenia, niepokoju i apatii. W książce jest to wszystko bardzo ładnie opisane a ogólnie chodzi o specjalny stan umysłu i nastawienia do wykonywanych zajęć. To jest ten magiczny moment kiedy wiedza z różnych poziomów abstrakcji umysłowej pozwala dokładnie zrozumieć co się dzieje. Z jednej strony mamy filozoficzne rozważania o znalezieniu sensu życia a z drugiej ładnie opisujący się stan transu kiedy to kreatywny stan umysłu pełnej współpracy zasobów prawej i lewej półkuli pozwala w pewnym rodzaju transu dosłownie przeżywać świat.



O mózgu i transach będzie innym razem, teraz skupmy się na filozofii. Książeczka z obrazka obok nosi tytuł "Teoria klasy próżniaczej" i doskonale tłumaczy dlaczego praca jako taka od zarania czasów nie była postrzegana jako coś "KOOL,TRENDY,JAZZY". Do tego dodajmy, że kiedyś pracownicy fabryki w nieludzkich warunkach spędzali w ogromnych halach większość swojego życia dopóki związki zawodowe nie wywalczyły abstrakcyjnego tworu zwanego "czasem wolnym od pracy". Nic dziwnego, że obecnie pojęcie przeciwne do "praca" wydaje się być czymś pozytywnym. Okazuje się jednak, że przysłowiowe "opierdalanie się" niesie ze sobą wiele niebezpieczeństw. Umysł ludzki nie jest przystosowany do egzystowania w próżni, w stanie braku zagrożeń, na pustyni doświadczeń. Gdy nic nie robimy, nie mam żadnego celu popadamy w apatię. Aby coś generowało energię w nas najpierw musimy zainwestować energię w to coś a przecież dookoła jest tyle łatwych nagród w postaci programów telewizyjnych czy innych debilnych czytanek. (Sam miałem taki moment gdy uciekałem w stronę gier komputerowych i generalnie im mniej trzeba było się w grę wgłębiać tym wydawała się na daną chwilę atrakcyjniejsza.)


No dobrze ale co jeśli już dopuszczamy myśl, że praca może być ciekawa ale nie TA praca? Tutaj filozofii raczej nie ma. Trzeba ją zmienić na taką, której "wektor misji" ma chociaż zwrot podobny do twojego "wektora życiowego". Jedna rada. Kiedyś zrezygnowałem z mało rozwojowej pracy i wydawało mi się to logiczne, że kończę jeden związek zanim zacznę nowy. Niestety HR tego nie mogą przełknąć. Jeśli nie pracujesz to coś musi być z tobą nie tak , albo cię wywalili albo cię wywalili:) Jak już znajdziecie odpowiednią pracę to powinno nastać wzajemne docieranie się. Czyli próbujecie zmienić to co wydaje się wam zjebane w danej instytucji jednocześnie posiadając ten stan umysłu, że cały czas nie macie pełnego obrazu sytuacji i jest wielce prawdopodobne, że możecie się mylić. Spotykam cały czas ludzi, którzy po prostu wchłaniają napotkany model rzeczywistości panujący w firmie jako jedyny słuszny i później cytują na necie jakieś suche zeń formułki.


Przez całe życie realizujemy scenariusz napisany przez biologię i społeczeństwo, jednym sposobem aby odzyskać kontrolę to nauczyć się
jak świadomie kierować swoją psychiczną energią


PS1:
Nie należy wyciągać błędnego wniosku z powyższego tekstu, że różnego rodzaju rozrywki są absolutnie złe i naganne. Generalnie strata czasu wydaje się bezcelowe korzystanie z nich ale np. taka Europa Universalis może lepiej nauczyć historii niż nudne zajęcia w szkole.

PS2:
Również celowym korzystaniem z rozrywek jest realizowanie funkcji społeczno-towarzyskiej. Generalnie aby osiągnąć stan flow stan flow należy odnaleźć równowagę pomiędzy introwertyzmem a ekstrawertyzmem danej osoby a realizacja tego ostatniego wymaga zdrowych kontaktów z ludźmi.

PS3:
Bezcelowe korzystanie z rozrywek nosi raczej znamiona mimowolnego wprowadzania się w stan psychiczny. Temu zagadnieniu zamierzam poświecić osobny artykuł ale generalnie z racji, że nie jesteśmy robotami trudno na tym zjawiskiem od tak po prostu zapanować.

PS4:
W dobie "ludzkich zasobów" ktoś pracuje w firmie gdzie wyższy management zastanawia się jak pracownicy odczuwają pracę?

poniedziałek, 13 czerwca 2011

Czym dokładnie jesteś?

Jesteśmy istotami pragmatycznymi! Oczywiście jest to nieprawda ale takimi chcemy się widzieć. Codziennie siadamy przed komputerem z gotowym - pragmatycznym planem działania, który profesjonalnie wdrażamy (zaraz po artykule na onecie/wp/javalobby/dilbercie). Chcemy się widzieć profesjonalistami. Nasz fach cechuje analityczne podejście do problemu, które jest preludium do powstania cudownego, cechującego się perfekcyjną logika rozwiązania. Dlatego tak często szalonemu układaniu ifów,klas,interfejsów i abstrakcji towarzyszy napie*dalanie pięścią w monitor, przemawianie do biednej mieszanki plastików i metali "dlaczego ten je**ny ch*j tego po prostu nie skompliuje". Oczywiście mało to to pragmatyczne




Kilka dyskusji,które miałem okazje niedawno odbyć oraz udział w paru prezentacjach poruszających tematy psychologiczno-technologiczne, pozwoliły mi zauważyć otaczający brak wiedzy odnośnie popularnych teorii naszego - ludzkiego pochodzenia, których znajomość jest niezbędna aby dążyć do ciągłego ulepszania własnego potencjału intelektualnego


Na początku był gen




W skrócie (jeśli ktoś chce pełną historyjkę niech namierzy książkę z obrazka). Jest sobie gen, którego głównym zadaniem jest przetrwać teraz i w przyszłości. Aby zmaksymalizować powodzenie swojej misji Buduje on coraz to nowsze organizmy, które go rozprzestrzeniają. Im więcej środowisk opanuje tym jego szanse rosną dlatego wykształca nowe typy "robotów", które zabierają ocean w swoich żyłach i wychodzą na ląd




Mózg gadzi


Owe istoty na lądzie posiadają pewną inteligencję. Dzisiaj zwaną przez niektórych "mózgiem gadzim" (reptile brain). Mózg ten dba o to aby wszystkie organy pracowały jak należy. Raczej nie jest zdolny do nauki czy myślenia a jego działanie opera się na podstawowym prawie "akcja-reakcja". Priorytetem są : przetrwanie, walka i dominacja. Organizm ewoluuje. Niezwykle krytyczne w tym momencie jest zrozumienie, że kolejne "typy" mózgów pojawiające się w trakcie ewolucji nie są zastępowane a bardziej składane.


Stary mózg ssaczy


Ewolucja zaczęła nagradzać tych, którzy pomimo pierwszego niepowodzenia postanawiali ponawiać próby tylko trochę inaczej. Pojawiły się relatywnie ogromne półkule mózgowe, zdolne do nauki i zdobywania doświadczenia. Owe półkule zdolne były do przetworzenia większej ilości danych ale nie można było już mówić o prostym trybie akcja-reakcja (parzy - puścić). Potrzebny był bardziej abstrakcyjny mechanizm, pojawiły się emocje (lub romantyczniej - uczucia) "Coś jest nie tak, zwiększyć adrenalinę i napie*dalać wszystkich dookoła"




Mózg naczelnych





Gdy - realizujące pierwotna misję genów - organizmy rozpierzchły się po całym globie, gdzieś w okolicach afrykańskiej sawanny panienki starającego się chodzić pionowo gatunku zaczęły preferować partnerów, którzy na tysiąc możliwych sposobów potrafili wywołać w nich najróżniejsze emocje. Temu zadaniu mogła powołać tylko nowa struktura mózgu, przetwarzająca na wysokim poziomie abstrakcji znaczenie przeróżnych symboli.A, że przy okazji nowy mózg dobrze radził sobie z planowaniem strategii długookresowych, toteż ewolucja wynagrodziła jego właścicieli.



!!!!METAFORA!!!!


Wszystkie trzy mózgi siedzą w naszej głowie ale ich współpraca idzie raczej słabo. Wyobraźcie sobie W jednym mieszkaniu Silnego koksa, gracza komputerowego i wątłego racjonalistę. Teraz wyobraźcie sobie, że przyszła zima i trzy metry śniegu zasypały wejście do domu. Przykładowy dialog:

Racjonalista - jak podzielimy prowiant i będziemy pracować systematycznie to do wieczora się odkopiemy
Koks - Pierdole , jem tera zanim ktoś mi podje
Gracz - a później partyjka w Sensible Soccer
Koks - dobra załącz Atari
Racjonalista - nie nie, nie możemy tracić czasu
Gracz - jeszcze tylko jedna partyjka, obiecuję!
Koks - Jeść mi się chce
Racjonalista - później
Koks - bo cię jebne
Racjonalista - naprawdę są teraz ważniejsze rzeczy
Koks - {jebnął mu}
Gracz - dobrze mu tak, gramy, na pewno tak jak teraz jest dobrze, mi się podoba
Racjonalista - ludzie opamiętajcie się
Koks - ty przytaknij albo ci znowu jebne
Racjonalista- no.. w .. sumie na pewno nas odkopią, tak dokładnie! możemy grać!
Koks - ide po browara
...
Koks - gdzie ten maruda
Gracz - poszedł gdzieś


A co gdyby nasz racjonalista był "silny" i potrafił pociągnąć z takiego "mentalnego karata" i zmusił cała trójkę do efektywnego działania?
Tutaj mamy pełne pole do popisu dla wszelakich technik psychologicznych (i nie tylko).

Dosłownie : Nasz mózg działa w ten sposób, iż starsze części mają przewagę nad częściami powstałymi później. I podobnie jak nasz racjonalista nie zyskał przewagi nad koksem tylko dlatego, że był świadom jego istnienia, tak samo nie uzyskamy pełnej kontroli tylko dlatego, że wiemy w jakimś tam stopniu jak nasz mózg działa. Są pewne badania twierdzące, że zanim wydamy racjonalną decyzję nasze ciało już dokonało wyboru.




Czwarty mózg


kiedy energia kundalini osiąga ten poziom ... Nie nie - to na inny odcinek


Na koniec - treść odcinka w skrócie


sobota, 4 czerwca 2011

Ogłoszenia drobne

W dzisiejszym odcinku informacja o dwóch ciekawych wydarzeniach kulturalnych.

Pisz po pijaku, przeglądaj na trzeźwo


11 czerwca na javarsovii (przemianowanej na Konfiturę) będzie miała miejsca bardzo ciekawa prezentacja przedstawiona przez ciekawego człowieka :



Pisz po pijaku, przeglądaj na trzeźwo

Piotr Przybylak

Jakie jest najważniejsze narzędzie programisty?

Twój mózg.

  • Czy umiesz się nim efektywnie posługiwać ?
  • Czy wiesz jakie kryje "bugi" ?
  • Czy działa racjonalnie?

Ani w szkole ani na studiach nikt nie uczy nas jak posługiwać się najważniejszym narzędziem w naszej pracy - nie uczymy się jak się uczyć. Warto to zmienić, wiec postaram się przedstawić skróconą instrukcje obsługi Twojego mózgu.

Opowiem:

  • O tym jak ludzki mózg przetwarza problemy i tworzy ich rozwiązania.
  • Jak efektywnie połączyć w swojej pracy wykorzystanie przetwarzania świadomego i nieświadomego, racjonalnego i nieracjonalnego.
  • Jak kierować swoim rozwojem. Czyli co bracia Dreyfus odkryli badając ograniczenia sztucznej inteligencji, a co japońscy mistrzowie sztuk walki wiedzą od wieków.
  • Jak ujawniają się zaszyte w nim bugi: "Legacy brain".



Więcej info na : Javarsovia

Potęga Umysłu


Drugim ciekawym wydarzeniem jest darmowy kurs Michała Jankowiaka - "Potęga umysłu" . Ten kurs pomoże wam lepiej kontrolować swój umysł poprzez wchodzenie w stan miłej i przyjemnej relaksacji co poza profitami mentalnymi przyniesie także zyski zdrowotne.


Na kurs zapiszecie się pod linkiem :

Potęga umysłu.



Kolejne lekcje wysyłane są na maila.


Polecam!

niedziela, 15 maja 2011

Dlaczego się nie uczymy?

"Dlaczego się nie uczymy?" - To tytuł prezentacji, która pojawiła się nie tak dawno an portalu infoq : Why Dont We Learn. Prezenter opisuje mechanizmy jakie towarzyszą zdobywaniu nowych umiejętności a całość zespolona jest w prawdziwą(lub nie) historię z jego życia. Kto chce może obejrzeć prezentacje, natomiast poniżej opiszę 4 etapy zdobywania wiedzy według modelu NLP. Weźmy za przykład naukę umiejętności pisania czystego kodu.


Niekompetencja nieświadoma - nie wiem, że nie wiem


Wyobraź to sobie. Zainteresowałeś się programowaniem jeszcze w szkole średniej gdzie na zajęciach informatyki tworzyłeś pierwsze programy wypisujące po sto razy z rzędu słowo DUPA na ekran monitora. Zauważyłeś, że proces kreacji programu komputerowego generuje pozytywne uczucia, więc poświęcałeś mu coraz więcej i więcej czasu zostawiając w tyle niedzielnych informatyków. Być może zacząłeś pisać programy komercyjnie (cz nielegalnie), poszedłeś na studia gdzie tylko utwierdziłeś się w przekonaniu, że jesteś jednak kimś wybitnym a świadectwem tego były wytworzone serwisy PHP ,które przeplatały linie HTMLa i SQLa ale przecież tak doskonale działały i wyglądały. Innym dziełem był program wisielec napisany w jednej linijce instrukcji "for".


Pewnego dnia, na jeden z tysiąca możliwych sposobów docierają do ciebie informacje burzące twoja homeostazę informatyczną - twój kod jest chu**wy. Takie zdarzenie może przybrać wiele form :

  • wkleiłeś kod na forum i zostałeś zjechany
  • pochwaliłeś się kodem na rozmowie rekrutacyjnej i zostałeś zjechany
  • ktoś odziedziczył twój kod i akcie wybuchu frustracji zjechał cię

Jest to moment krytyczny ponieważ powyższe zdarzenie powoduje aktywację naturalnych mechanizmów obronnych jak "confirmation bias" (nie wiem jakie jest polskie tłumaczenie) czy cały wachlarz samo-oszukiwań zawierający się na "dysonans poznawczy". Opiszę kiedyś bliżej te mechanizmy jakkolwiek w skrócie będzie to wyglądać tak, że twój umysł podświadomy będzie szukał potwierdzenia, że ludzie na forum to debile, osoba rekrutująca na pewno nie zna się na rzeczy bo nie umiała dobrać krawata do swetra zaś osoby które odziedziczyły twój kod to w zasadzie tez debile bo tylko debile nie potrafią operować jednoliterowymi nazwami zmiennych
Gdy Jednak uda ci się opanować chochliki umysłowe dalej jest już z górki.


Niekompetencja świadoma - już wiem, że nie wiem


Wiesz, że twój kod jest niedoskonały ale nie wiesz jaki powinien być. Co robić? Trzeba odnaleźć informację i na ich bazie zdobyć nową wiedzę - nic prostszego. W tym przypadku wpisujesz w google frazę "czysty kod" i chłoniesz wiedzę. Wiedzę można chłonąć w sposób poprawny i niepoprawny (drugi model celebrowany w większości polskich szkół). Problem "Jak się uczyć" to temat rzeka i warto samemu się nim zainteresować traktując jako swoistą meta-wiedzę o dobywaniu nowych umiejętności. Poniżej jeden z masy ciekawych linków :
Dreyfus model of skill acquisition


Kompetencja świadoma - już wiem, że wiem


Trudno stwierdzić, kiedy następuje przejście do tego etapu w przypadku tematu czystego kodu.
Zdobywasz nową wiedzę, uczestniczysz w dyskusjach. Pojawiają się kolejne problemy ale masz wystarczającą bazę wiedzy by znaleźć odpowiedź na większość z nich. Zaczynasz sam optymalizować swoja pracę i zdobytą wiedzę przekazywać innym. W pewnym momencie zauważasz, że kiedy myślałeś o tym czy zamknąłeś drzwi w samochodzie powstał całkiem zgrabny kawałek kodu. Własnie przeszedłeś do ostatniego etapu :


Kompetencja nieświadoma - nie myślę o tym, że wiem

Ten stan łatwiej wytłumaczyć na przykładzie jazdy rowerem czy samochodem. To stan kiedy już nie myślisz w którą stronę idzie dźwignia skrzyni biegów gdy wrzucasz piaty bieg bo całą swoją uwagę skupiasz na bluzganiu kierowcy przed tobą. W tym stanie obydwie te czynności wychodzą ci perfekcyjnie.


Będąc na tym etapie tworzysz dobry kod głównie skupiając się na ogólnej architekturze, ryzykach i problemach które czekają dwa lub trzy kroki przed tobą. I kiedy czujesz w palcach swoje doświadczenie i pływasz w poczuciu mistrzostwa kodu jakiś debil na forum mówi ci, że coś można jeszcze zrobić lepiej....

niedziela, 3 kwietnia 2011

Czy stres może być pomocny?

W literaturze z zakresu psychologii i neurologii można znaleźć opinie, iż krótkotrwały stres jest zjawiskiem pozytywnym. Dopiero gdy towarzyszy nam przez dłuższy czas możemy mówić o jego negatywnych skutkach.


Prawidłowość ta raczej nie sprawdza się w pracy programisty. W trakcie pisania programu musimy zbudować w umyśle dosyć złożone odwzorowanie rozpatrywanej części aplikacji. Z tego co wiem kluczową rolę pełni tutaj hipokamp.


W trakcie reakcji stresowej w naszym ciele wydziela się hormon zwany "kortyzolem" (O tym jak do tego dochodzi można poczytać sobie tutaj --> http://pl.wikipedia.org/wiki/Stres) .Internet mówi , że w roku 2008 zespół prowadzony pod kierownictwem niejakiej Dr Baram
miał dowieść, iż ów kortyzol i inne hormony wydzielane w trakcie stresu upośledzają komunikację neuronów w hipokampie, a przez to zmniejszają efektywność zapamiętywania.


Poziom kortyzolu i inne efekty reakcji na stress powinny być łatwe do zmniejszenia przy pomocy technik relaksacyjnych (chociażby zwolnienie oddechu i odprężenie mięśni). Poniżej jeszcze krótki filmik ilustrujący problem.






Jeśli nie stres to co ma nas motywować do pracy? Być może odpowiedź znajdzie się na wyższym poziomie abstrakcji w szeroko pojętej dziedzinie AUTOMOTYWACJI.Może trzeba poszukać wyższej inspiracji i sensu w tym co tworzymy? A może trzeba przyjrzeć się bliżej co dzieje się w umyśle gracza gdy o 4 nad ranem mówi sobie "jeszcze... tylko... jedna... tura".

niedziela, 20 lutego 2011

Poziomy abstrakcji

Robert C. Martin w swej książce "Czysty kod" wspomina, iż prawidłowo skomponowane funkcje powinny być:
  • małe
  • wykonywać jedną czynność
  • zachowywać jeden poziom abstrakcji


O ile pierwsze dwa punkty łatwo sobie wyobrazić i zaimplementować, o tyle zauważyłem, że ostatni punkt jest nie do końca zrozumiały wśród niektórych programistów.

Aby unaocznić gdzie popełniany jest często błąd użyjmy prostej i każdemu znanej życiowej czynności:

Przepis na jajecznicę

  • Rozpuścić masło na małej patelni
  • Wrzucić na stopione masełko szynkę pokrojoną w małe kwadraciki oraz drobno posiekany szczypiorek
  • rozbić ostrym nożem skorupki jajek i zawartość wylewać na patelnię
  • Dodać trochę soli oraz pieprzu i mieszać, aż do momentu ścięcia się jajek

Przepis jest intuicyjny i raczej nikt nie powinien mieć problemu z jego zrozumieniem. Na tym poziomie abstrakcji wystarczy użyć kilku składników w prosty sposób i już mamy nasza potrawę gotową.

Jednakże "pod spodem" mają miejsce skomplikowane i (ze względu na nasz kulinarny model domenowy ) nieistotne zjawiska. Jak mógłby powyższy przepis wyglądać gdyby był częścią programu tworzonego przez nierozgarniętego programistę?


dodaj(maslo)

while(maslo.nieJestStopione){
  for( atom in atomyWProbceMasla){
   atom.dostarczEnergii
  }
}
dodaj(pokrojona Szynka)

while(szczypiorek.jestCaly){
  oddziaływuj nożem na sieć krystaliczną szczypiorku
}

dodaj(szczypiorek)

noż.dodajEnerigiiPotencjalnej
noz.zamieńEnergięPotencjalnąNaKinetyczną
noż.uderzW(jajko)

dodaj(zawartośćJajka)

dodaj(sól) 

for(ziarnkoPieprzu in szczyptaPipeprzu){
 dodaj(ziarnkoPieprzu)
}

i mieszać, aż do momentu ścięcia się jajek


(poprawność kwestii fizycznych może być niedokładna ale nie to jest meritum przykładu)


Tak zmieniony przepis o wiele trudniej zrozumieć i co gorsza domena kulinarna została zmieszana z domena fizyczną przez co potencjalny odbiorca przepisu musi zmierzyć się ze znacznie większą płaszczyzną problemu.

Aby zachować jeden poziom abstrakcji wracamy do korzeni:


patelnia.dodaj(maslo)
patelnia.podgrzejDoRostopieniaMasla()
patelnia.dodaj(pokroj(szynka))
patelnia.dodaj(pokroj(szczypiorek))
patelnia.dodaj(rozbij(jajko))
patelnia.dodaj(sól)
patelnia.dodaj(pieprz)
mieszajDoMomentuScieciaSieJajek(patelnia)


Poprawione źródło przepisu jest czytelniejsze i nie wymaga znajomości zagadnień wykraczających poza domenę kulinarną. Widzimy także ciekawy efekt wizualny, który może być użyty jako swoisty test czy nie wykraczamy poza dany obszar abstrakcji : mianowicie wersja poprawiona nie ma wcięć.

Jak przedstawione zjawisko mogłoby wyglądać na przykładzie bardziej zbliżonym do IT?


funkcja(obiekt){
operacjaDomenowa();
bebechy=obiekt.wyciągnijBebechy
...
kilka zagnieżdzonych pętli i try-catch
...
operacja domenowa()
znowuGrzebanieWBEbechach()
}


przykład konkretny : obsługujemy request od przeglądarki, który może zawierać obrazki i załączniki tekstowe. Każdy typ załącznika musimy zapisać do osobnego katalogu.


przetworzRequest(request){
   zapiszPlikiTekstowe(request)
   zapiszObrazki(request)
}



A można i tak :


przetworzRequest(request){
 zapiszPlikiTekstowe(request)

 strumien=OtworzStrumien
 for(bit in obrazek){
   strumien.pisz(bit)
 }
 strumien.zamknij
}



Chyba jest jasne,która wersja będzie czytelniejsza,przyjemniejsza,wygodniejsza i łatwiejsza w utrzymaniu osobie, która ujrzy ów fragment po raz pierwszy w życiu.

niedziela, 30 stycznia 2011

Bardzo uproszczone modele naszego umysłu

Poniżej przedstawię praktyczną aplikację pomagającą osiągać stan umysłu gwarantujący lepsze skupienie w trakcie tworzenia kodu jakkolwiek na początku pojawi się niezwykle uproszczony koncepcyjny model ludzkiego umysłu. Ta odrobina teorii pomoże zrozumieć filozofię i ideę działania programu Brain Wave Generator.

Bardzo uproszczony model psychologiczny



Poniższy rysunek psychologicznego modelu umysłu.



W dużym skrócie: odbierane przez zmysły naszej percepcji informacje trafiają do nieświadomej części umysłu - prawdziwie potężnego komputera biologicznego, który to odpowiednio filtruje i zniekształca otrzymane w ten sposób dane, zaś następnie w tak zmienionej formie przekazuje je do części świadomej.


Umysł świadomy zdolny jest do abstrakcyjnego i krytycznego operowania na danych jednakże w jednej chwili jest w stanie zapanować nad małą liczbą niezależnych pojęć (w zależności od badań ten zakres kształtuje się w granicach 4-9). Umysł nieświadomy jest w stanie przetwarzać niesamowite ilości informacji jednakże dane ze otaczającego nas świata odbiera on w sposób bezkrytyczny.


Prosty przykład

Umysł nieświadomy kontroluje wszystkie życiowe funkcje twojego organizmu łącznie z oddychaniem. Jednakże gdy przeczytałeś ostatnie zdanie być może zwróciłeś uwagę na swój proces oddychania. Możesz teraz kontrolować każdy wdech i wydech jednakże zużywając świadomy zasób umysłu będzie ci teraz trudniej koncentrować się na bardziej skomplikowanych czynnościach. Za kilka minut zapomnisz o tym tekście i ponownie oddychanie stanie się domeną umysłu nieświadomego.

Model mechaniczny


Spójrzmy teraz na umysł/mózg od strony "mechanicznej". Chyba dla nikogo nie jest czymś zaskakującym, iż posiadamy dwie półkule mózgowe jakkolwiek nie każdy zdaje sobie sprawę co należy do obowiązków danej półkuli. W dużym (znowu) uproszczeniu lewa półkula zajmuje się analizą zaś prawa posiada duszę artysty. Optymalnym stanem pracy jest synchronizacja pomiędzy obydwiema połówkami mózgu i w tym momencie na scenie pojawia się pojęcie częstotliwości pracy naszych neuronów.


Naszym naturalnym trybem jest tryb czuwania charakteryzujący się częstotliwością kilkunastu- kilkudziesięciu Hz. W tym stanie jesteśmy nastawieni na odbieranie bodźców ze świata zewnętrznego i jest on przydatny raczej w wypadku ucieczki przed lwem aniżeli skupieniem się nad pisaniem kodu. Bardziej wydajny tryb pracy uzyskamy schodząc do częstotliwości 8-12 Hz , czyli tzw. częstotliwości alfa. Gdy neurony pracują ze wspomnianą częstotliwością osiągamy stan kontemplacji i skupienia pomagający w niezwykłym stopniu budować wewnątrz naszej "pamięci operacyjnej" mentalny model tworzonej abstrakcji programistycznej.


Pytanie jak osiągnąć wspomniany stan. Sposobów jest kilka. Jednym jest uspokojenie oddechu i wprowadzenie swojego ciała w stan relaksacji. Możemy również użyć aplikacji wspomnianej na początku artykułu. Program pozwala wybrać częstotliwość dźwięków za która będzie podążał nasz umysł.




Użytkownicy linuxa muszą używać BrainWave generatora poprzez Wine.


Wkrótce kolejne artykuły.