niedziela, 17 maja 2015

Myśl jak inżynier + slajdy z geecona

Myśl przewodnia - myśl inżyniera

Aby nie relacjonować sucho slajdów z geecona stworzymy sobie jakąś myśl przewodnią artukułu, a skoro myśl na myśl to będzie o tym jak powinien myśleć inżynier.

Wiele osób w trakcie codziennych lektur przebiega tylko pobieżnie wzrokiem po nagłówkach budując w sobie jedynie symboliczną wiedzę odnośnie technologii i narzędzi. Myślenie symboliczne znacznie różni od inżynieryjskiego ale zanim do tego przejdziemy momęcik uwagi dla trolli ortograficznych. Nie wiem czy poprawnie piszę się "myśl inżynieryjska" czy "myśl inżynieryjna" czy "myśl inżynierska" ale google zwraca najwięcej dla "myśl inżynieryjska"

  1. "myśl inżynieryjska"
  2. "myśl inżynieryjna"
  3. "myśl inżynierska"
1
2
3

Czyli co dokładnie

Myślenie symboliczne na którym funkcjonuje większość ludzi to np :

  • wezmę noSQL i nie mam problemów ze skalowalnością
  • wezmę język funkcyjny i nie mam problemów z wielowątkowością
  • wezmę ORM i nie mam problemów z bazą danych

A jeśli tych przykładów jest mało to weźmy coś z życia. Np jedzenie :

  • sportowcy działają na poziomie makro składników /ilość kalorii/ilość białka/ilość tłuszczy/ ilość witamin/ilość minerałów. Wiedzą jak w danym momencie dnia ich organizm zareaguje na jakie składniki odżywcze i rozumieją jak inaczej działa ich metabolizm w kontekście danego cyklu treningowego.
  • Stefan Kowalski działa na poziomie kotleta schabowego a konkretnie posiłków /śniadanie/obiad/kolacja (a obiad z dwóch dań... bo ... obiad je się z dwóch dań bo tak!)
  • Czasem ludzie w symbolice bycia FIT jedzą 5 posiłków dziennie.. bo tak. Mistrzostwem było jak raz w tesco usłyszałem reklamę aby jeść 5 razy dziennie actimelki bo tak 5 posiłków jest na zdrowie

Zostańmy przy śmiesznych produktach FIT. Kto dokładnie patrzy na skład a kto tylko an symbol na opakowaniu klasyfikujący coś jako FIT? Takie coś widziałem w życiu. Kolega o dosyć pokaźnej tuszy pije sobie kolorowy napój, który ma w nazwie coś tam SLIM. Już sam fakt, ze kolor napoju nie wysptęuje samoczynnie w naturze powinien dać coś do myślenia ale idźmy dalej.

W składzie była mikroskopijna dawka LKarnityny, która niby pomaga w transporcie tłuszczu do mitochondriów. W praktyce raz, ze jest to dyskusyjne a dwa to podobne i tak łykanie teog w postaci suplementu nie ma sensu bo zanim ona trafi do krwi to w większości zostanie zneutralizowana w procesie trawienia. ale nie to jest najlepsze, napój był "o smaku" co oznacza, ze zawierał cukry. Tych cukrów w postaci etykiety "węglowodany" było tam sporo (nie licząc całej kolekcji E123). Cukry proste nazywane są prostymi dlatego, ze są szybko trawione i powodują wyrzut insuliny, który zamyka tłuszcz w komórkach. Także jedyne FIT w tej sytuacji to kondycja finansowa producenta napoju.

A teraz będzie prawdziwe mistrzostwo słyszałem na siłce historie jak to laski wynajmują sobie trenerów, wpadają 40 minut na bieżnie stąpając krokiem wczasowym (czasem towarzyszy temu relacja z ostatniego m jak miłość). Gdy padnie jakaś wzmianka o diecie mówią zdziwione, że przecież były na siłowni, dbają o siebie to mogą teraz w nagrodę walnąć pizzę z 4 browarami. Trudno mi wytłumaczyć skąd to się bierze bo nie mam dostępu do tych rejonów mózgu.

Zresztą na symbolice działa cały przemysł reklamowy, jak opie*dolić za 4 zł pół pokrojonego ziemniora? Trzaśnij scenkę dla samotnych ludzi, jak to znajdą sobie od razu przyjaciół gdy tylko otworzą paczkę czipsów. Albo reklama samochodu gdzie tam koleś z trzydniowym zarostem popitala samochodem po placu, niebo jest niebieskie a wszyscy patrzą z zazdrością - w praktyce to jest tak , że jak kupimy sobie np nowoczesne kombi to mamy do ogarnięcia większą powierzchnię na jaką padają gówna gołębie
Według wzoru : Ts=Pd*Is (Ts- czas sprzątania, Pd - powierzchnia dachu,Is - ilość starych sąsiadek, które dokarmiają gołębie starym chlebem)

Inny przykład myślenia magicznego, który jest trochę naiwnym i niebezpiecznym narzutem swiata korporacyjnego to wszędobylski efekt aureoli - jak np. koszule na rozmowie kwalifikacyjnej. "Jak kandydat ma plamę to znaczy, że..." to ch** znaczy - może mieć plamę i zajebiście programować.A jak zapnie się pod szyją i ściśnie krawatem to mu nawet tlen może do mózgu nie dochodzić .Pamiętam 50 stronnicowe dyskusje na goldenline w grupie Tom Managier o tym czy dawać stopień naukowy na wizytówce i o tym jakie mankiety do jakiej koszuli.

Na razie widziałem tylko jedną firmę IT, w której patrzą na ciebie dziwnie jak przychodzisz w garniaczku - i to jest bardzo dobra developerska firma. Bo jak np. zamawiamy hydraulika i on wpadnie w garniaku to coś jest nie tak - całe życie prowadził szkolenia, ze rąk sobie nie pobrudził?

A i na koniec dosyć ciekawy przykład - generalnie bieganie niekoniecznie musi być zdrowe a już na pewno może paradoksalnie prowadzić do większego zatłuszczenia. Ale to już kto chce sobie poszuka.

No i Scala. To też jest przykład myślenia magicznego zarówno ludzi, którzy chcą jej używać i nie wiedzą dlaczego jak i ludzie, którzy nie chcą jej używać i też nie wiedzą dlaczego. Generalnie lepiej by dzieciaki się za to nie brały bo tylko wygenerują więcej przypadków jak to "scalowe projekty się nie udają" z czego będą czerpać garściami przeróżni hejterzy.

Ogólnie FP to teraz taka magiczna pigułka. Nie wiem jak będzie to wyglądać z FP ale podobno wychodzimy z epoki dominacji OOP a ja chyba w życiu widziałem zaledwie kilka osób, które OOP używały poprawnie. Generalnie problemem jest bardziej analfabetyzm programistyczny aniżeli to jakiego paradygmatu się używa (wzorzec Manager+Helper żondzi).

No i wracając do geecona. Generalnie szacun dla organizatorów bo wiem ile pracy jest przy jednodniowej mobilizacji i ile rzeczy może się nie udać a tutaj jest 3 dniowa konferencja + warsztaty i 10000 rzeczy do ogarnięcia.

I tutaj też pojawia się przykład myślenia magicznego samych uczestników konferencji. Siedzimy sobie z takim jednym grubym w bistro pod multikinem i jest rozmowa o tym jak ciężko taką konferencję zrobić i jak ludzie, którzy tylko "konsumują"takie wydarzenia tego nie doceniają. Ale mija 10 minut i już w samochodzie gruby spaślak narzeka, ze ktoś tam nie przyjechał i on musiał siedzieć 5 minut na wykładzie. No biedny gruby biedny.

Ale tu gadu gadu a czas na kilka slajdów

Trochę slajdów

Matematyka i Cassandra

Było o algorytmie HyperLogLog - fajnie się nazywa i ciekawie działa. Oblicza jedynie przybliżenie liczebności zbiorów. To nie robi się magicznie tylko matematycznie.

Dalej było o czymś co chyba nazywa się "rodziną protokołów paxos" -> http://en.wikipedia.org/wiki/Paxos_%28computer_science%29
Generalnie gościu mówił, że czytał oryginalny artykuł naukowy kilka razy zanim to ogarnął i to tam działa pod spodem. Jeśli bedziesz używał Cassandry może się na to natkniesz - może wtedy magia pryśnie.

Cassandra+Spark - znowu nie zrobi się to automagicznie. Albo będzie poprawna konfiguracja - albo przesyłanie petabajtów danych w tę i na zad.

W czym jest napisana Java?

Java jest napisana w C++. Nie ma tam magii ale dużo kodu sprawdzającego na jakiej architekturze JVM działa. Jest kilka haków i dziwnych instrukcji. Prezentacja zeszła znacznie niżej niż standardowe omówienie modelu pamięci JVM. Ile osób wie na jakiej zasadzie działają bariery pamięci? Czy może w większości przypadków "serwer magicznie działa"? Zrobimy sobie ThreadLocal a później jebudu nie ma pamięci.

Jak szybkie są Streamy?

Wielowątkowe kolekcji robi się prosto :
Ale to nie działa bo for jest szybszy
A wcale nie :
A distinct jest wolne
Chyba, że jest unordered :
Ale i tak wszystko się zmienia jak zmienimy kompa
Pomiary Inżynier - rób pomiary!

Hype na Sparka

Na to chyba hype się jeszcze nie zaczął ale warto pamiętać, że jak robimy filter przed groupBy to po kablu może i kilkaset Terrabajtów mniej polecieć.

Przyśpieszanie JVMa ze znajomością krzemu

Kto rano wstaje - ten rano wstaje. Pracując dla kraju - pracujesz dla kraju. Osiągając 100% utylizacji procka...
... osiągasz 100% utylizacji procka i poza dobrym grzejnikiem być może nic innego nie uzyskujesz.
A tam w środku są fajne rzeczy
I podobno po kilku latach pracy faktycznie da się czytać te pomiary.
Ale gimby nie znają

Programowanie funkcyjne wszystko naprawi

I znowu można pozostać w świecie magii albo ogarnąć choć trochę co tam pod spodem się dzieje.

G1 - autotuning

Autotuning - do czasu aż nie zadziała i trzeba będzie jednak zrozumieć jaka mechanika stoi za magią -ale spoko są logi

Slajd na koniec

Na koniec slajd do pokazywania wszystkim którzy twierdzą, że nie muszą się zagłębiać w programowanie wielowątkowe.

7 komentarzy:

  1. Pierwsza część artykułu pokazuje, że coś Cię bardzo wkurzyło i musiałeś sobie ulżyć :)

    Wg mnie wzór na czas sprzątania jest niepoprawny - zabrakło współczynnika proporcjonalności, choćby dla zgodności jednostek.

    OdpowiedzUsuń
  2. To jest taki nowy styl by ciekawiej się czytało :D http://pl.urbandictionary.com/define.php?term=rant

    Ale fakt faktem codziennie kropla do kropelki moja frustracja tym co dzieję się dookoła rośnie. I po każdym takim artykule faktycznie czuję ulgę.

    OdpowiedzUsuń
  3. Nie mogę doczekać się jakiś aluzji politycznych, przy "spuszczaniu" frustracji.

    OdpowiedzUsuń
    Odpowiedzi
    1. Kurcze nie wiedziałem, że aż tak to zostanie odebrane. Który fragment konkretnie dotknął Cię najbardziej?

      Usuń
    2. Zapewne ten o trollu ortograficznym :)
      Ciekawe podsumowanie, byle tak dalej.

      Usuń
    3. To chyba mój komentarz został źle zrozumiany. Dobrze mi się czytało część frustracyjną jak i merytoryczną. Generalnie poczytuję sobie od dawna bloga i styl dygresyjno-techniczny jak najbardziej do mnie trafia. Po prostu chciałem zasugerować kolejny cel, np. przy następnym wpisie?

      Usuń
  4. Jak nie będzie takich rantów za dużo, nadal z chęcią będę Cię czytał :) Fajny blog.

    OdpowiedzUsuń