Blip z linkami do rzeczy, które czytam

30 III 2008, 23:00:10

Dużo czytam, czasami zdarza mi się przeczytać coś na tyle dobrego, że chciałbym się później móc do tego łatwo odwoływać. Dłuższy czas temu marudziłem, że rozwiązaniem byłaby odpowiednia funkcjonalność przeglądarek, ale raz -- pewnie się nie doczekam zbyt szybko i dwa -- mógłbym z tego korzystać tylko ja.

Rzeczy typu delicious jakoś mi nigdy nie odpowiadały, za to ostatnio przeglądając listę top blipowiczów stwierdziłem, że sporo osób rozpoznaję na okazję ich prawie już opuszczonych blogów (*hint* *hint*). Nie porzucę joggerusia jak ci zdrajcy, szubrawcy, cykliści i komuchy, ale blipa wykorzystam do przechowywania swoich co ciekawszych linków.

Voila. Nie powinno tam się pojawiać zbyt dużo wpisów, ponieważ mimo, że czytam dużo, to czasami kilka dni z rzędu nie trafiam na coś rzeczywiście wartego uwagi. Będę też musiał tam kiedyś powrzucać linki trzymane gdzieś w zakamarkach pamięci i dysku. I żeby nie było: tylko nie tak znowu duża część linków będzie dotyczyła IT.

Jedyny mankament to limit 160-ciu znaków, który mnie strasznie wkurzył, ale w sumie teraz go doceniam. Przynajmniej nie mogę się rozpisywać. Za to niestety w skład tego limitu wchodzą także same URL-e, ale ktoś podpięty pod blipowe bugreporty mi napisał, że nad wyeliminowaniem tego problemu już pracują.

Ja chcę do top150 (*hint* *hint*).

Raczkujące dzieci muszą mieć niską samoocenę

10 III 2008, 00:51:57

Niedawno wybrałem się ze znajomymi na łyżwy. Po raz pierwszy w życiu. Prawdę powiedziawszy nigdy wcześniej nie miałem na nogach niczego, co nie kończyłoby się zwykłą podeszwą (ani łyżew, ani nart, ani snowboardu, ani rolek, ani niczego).

Było w tym coś zdecydowanie deprymującego. Pierwsza walka? Nie wiesz co się wokół ciebie dzieje, spinasz wszystkie mięśnie, ale cośtam próbujesz, masz przeciwnika przy sobie, ruszasz się, próbujesz go pokonać. Pierwszy taniec? Plączą ci się nogi, mylisz kroki, gubisz rytm, masz problemy z zachowaniem równowagi (partnerka nie pomaga), ale cośtam tańczysz.

Pierwsza jazda? Wychodzisz na lód i uczysz się stać. Sprawdzasz jak łatwo rozjeżdżają się łyżwy. Próbujesz się przemieścić. Bardzo chcesz się chociaż trochę przemieścić. Włożywszy w to dużo skupienia, wysiłku i machania rękami udaje ci się baaardzo powoli i baaaaaaardzo niezgrabnie zmienić miejsce położenia. Po czym się wywalasz. I tak przez godzinę.

Dziwne uczucie. Możliwość bezwysiłkowego przemieszczania się jest bardzo niezauważalna, póki się jej nagle nie straci.

Komputery *są* skomplikowane i nieintuicyjne

13 II 2008, 03:07:11

Od czasu kupna dziadkom laptopa i podłączenia Internetu, mam dosyć unikalną okazję rozmawiania z kimś, dla kogo komputery nie istnieją "od zawsze" i to wszystko jest nowe. Dwie rzeczy stają się jasne: po pierwsze nowoczesne środowiska graficzne, zwłaszcza do kupy z Internetem, skomplikowane i po drugie -- terminologia z nimi związana też jest bardzo skomplikowana, wcale nie taka intuicyjna i ma dużo niejasno zdefiniowanych przypadków specjalnych.

Przykład pierwszy: pendrive'y vs. płyty.

Wkładasz pendrive'a, pokazuje się okienko, kopiujesz pliki, wyciągasz pendrive'a, działa (chyba, że nie działa, bo najpierw trzeba "odmontować wolumin"; dziwny gnome, jutro będę z tym walczył). Wkładasz płytę, odpalasz jakiś program (nawet bardzo prosty, jak gnomowy asystent nagrywania), "kopiujesz" do niego pliki (ale one wcale się nie skopiowały), wciskasz "nagrywaj", czekasz i dopiero teraz się skopiowały. Dlaczego tak jest? No bo pendrive'y są na flashu, który działa jak zwykły dysk komputerowy i jest bardzo szybki, można łatwo kasować i nadpisywać i w ogóle, natomiast płyty optyczne tradycyjnie są nagrywalne tylko raz (i to powoli), więc najpierw trzeba się zdecydować co chce się nagrać, a dopiero później się nagrywa. Proste! Acz prostsze będzie "bo tak".

Przykład drugi: tacka systemowa.

Gadu-gadu (a konkretnie gaim; coś gnomowe w każdym razie) odpala się razem z komputerem i jak się chce, żeby się okienko z listą kontaktów pojawiało, to trza kliknąć w ikonkę na górze. Analogicznie ze skypem. Co się dzieje, jeśli przez przypadek usuniesz tackę systemową z tego paska na górze (sam nie wiem jak to się cholera nazywa)? Nie ma ikonki gg. Więc trzeba ją przywrócić! No bierze się z menu "Aplikacje", przeciąga na pasek i jest mała ikonka, dokładnie w tym samym miejscu. I jak na nią klikniesz, to pojawia się okienko z listą kontaktów, tylko takie kompletnie niedziałające. I jak się na nią kliknie jeszcze raz, to się drugie niedziałające pojawia. Etc, etc.

Co jest nie tak? No więc jak klikasz na ikonkę na tacce systemowej (?), to ona tylko przywraca (?) zminimalizowany (?) nie do paska zadań (?) program (?), natomiast dokładnie taka sama ikonka osadzona bezpośrednio na tym górnym pasku (?) uruchamia program (?), a nie przywraca już uruchomiony. Znakami zapytania zaznaczone różne dziwne terminy, które trzeba znać, żeby zrozumieć tę wypowiedź.

Przykład trzeci: co to w ogóle jest ten program?

Ano właśnie. Program to takie instrukcje, które można uruchomić, że z dysku do pamięci... eee. Jest dysk i jest pamięć i jest procesor. I przy uruchamianiu program jest wgrywany z dysku do pamięci i on wtedy w tej pamięci siedzi i działa... Eeee. Ale jak on już jest odpalony, znaczy uruchomiony ten mityczny program, to on później może wczytywać różne dokumenty, czyli jak jest oowriter, znaczy ten program do pisania dokumentów, to to białe z tekstem to jest dokument, a wszystko dookoła to jest program.

I dlatego jeśli kopiujesz plik oowriterowy na pendrive'a i później go otwierasz, to on wcale nie siedzi na tym pendrivie razem z tymi ikonkami dookoła (toolbar oowritera), bo te ikonki to jest część programu, a nie dokumentu. I wyeksportowanie dokumentu do pdf-a i wgranie na pendrive'a to wcale nie jest "przegranie samego dokumentu bez programu", bo on zawsze jest "bez programu", tylko po prostu gpdf (czy jak to się tam w gnomie nazywa) ma mniejszy toolbar od oowritera no i jest read-only.

Wszystko jasne? Nie? No trudno, żeby było, jak dalej nie udało mi się wytłumaczyć co to jest ten program i jak wygląda jego cykl życia w komputerze.

Przykład czwarty: terminologia ciąg dalszy.

Dlaczego okno się nazywa oknem? Prawdę powiedziawszy sam nie wiem. A jakby się dobrze zastanowić, to co okienko w komputerze ma wspólnego z takim prawdziwym oknem? Że jest prostokątne? Drzwi też. Microsoft Doors Vista. X-Door.

Dziadek na okna mówi tabele i niezbyt często pamięta, żeby mówić "okna". Ma sens. Prostokątne, ma wiersze i czasami się kolumna trafi. Ja się dalej w sumie nie przyzwyczaiłem i za każdym razem, jak mówi "tabela", to się staram wyciągnąć dalsze informacje, czy to rzeczywiście chodzi o to, co ja myślę, że chodzi.

Okno, przycisk zamykania/maksymalizacji/minimalizacji, belka tytułowa, pasek menu (czy jakoś tak), pasek narzędzi (? że to z ikonkami znaczy się), menu kontekstowe, menu. Właśnie, menu. Menu "Aplikacje" w gnomie to menu. Menu kontekstowe pod prawym przyciskiem myszy to menu. Menu w gaimie na którym widać listę kontaktów, to nie jest menu, tylko lista kontaktów. Dlaczego? Eeee. No bo... Eeee. W sumie nie wiem. Jestem pewien, że ma to odzwierciedlenia w nazwach elementów API Gtk, ale to nie jest wytłumaczenie. Jakbym miał się zastanowić, to "menu" zazwyczaj mają czasowniki, natomiast "listy" rzeczowniki. No i inaczej wyglądają. Czy jakoś tak. Nie wiem :(

No i mógłbym tak w nieskończoność.

Podsumowując -- przy obecnym poziomie skomplikowania tak architektury działania współczesnych systemów operacyjnych, jak i używanych przez nich środowisk graficznych, ja większości typowych problemów nie jestem w stanie wytłumaczyć z sensem bez jakiegoś wcześniejszego kursu z podstaw systemów operacyjnych i obsługi środowisk graficznych. Po prostu się nie da.

Archetypiczna sekretarka ucząca się "piąte menu od prawej" w Excelu jest całkiem zabawna, póki człowiek sobie nie zda sprawy z tego, że żeby to rzeczywiście zrozumieć trzeba przyswoić naprawdę sporą ilość wiedzy. Ludzie wychowani z komputerami mają o tyle dobrze, że ich mózg się nauczył rozróżniać to wszystko i oni intuicyjnie wiedzą jak z tego korzystać, nawet jeśli świadomie nie wiedzą dlaczego coś działa tak, a nie inaczej. Osoby później mające styczność z komputerami mają po prostu dużego pecha.

<@mmazur> Jak się nazywa ta belka na której wszystko jest na dole ekranu?
<@mmazur> Tam gdzie jest menu start, pasek zadań, tacka systemowa, etc?
<@fixxxer> taskbar?
<@mmazur> A po polsku?
<@fixxxer> aka pasek zadań?
<@mmazur> Hmmmm.
<@mmazur> Pasek zadań to jest u mnie tylko aplet tego czegoś na którym jest lista zadań.
<@mmazur> KDE to po prostu 'panel' nazywa.
<@mmazur> Chyba.
<@fixxxer> a, ty pytasz o linuksa :)
<@fixxxer> no to nie wiem jak w kde, ale w gnome to jest właśnie panel
<@fixxxer> (przy czym w gnome są dwa)
<@mmazur> Górny i dolny?
<@fixxxer> (domyślnie)
<@fixxxer> mhm

Się człowiek całe życie uczy :(

Zostanę zawodowym ekspertem!

05 I 2008, 03:23:12

Parę dni temu dostałem mailem propozycję wystąpienia na jakiejś większej konferencji. Fajny bajer -- można sobie pooglądać nowe miasto, spędzić miło czas, przespać się wygodnie w wynajętym hotelu, wieczorami pogadać z ciekawymi ludźmi, a w trakcie samej prelekcji zrobić z siebie idiotę przed zgromadzoną publicznością.

Odpisałem, że nie mam żadnego tematu o którym mógłbym mówić.

Podobnie z pingwinariami. Honej mnie kopał, żebym zgłosił jakąś propozycję, ale nawet mimo faktu, że pingwinaria są bardziej imprezą towarzyską, jak merytoryczną, tej akurat publiczności nie byłbym w stanie powiedzieć niczego ciekawego.

Kwestia dostosowywania tematu do publiczności. Jeśli gadam do swoich lokalnych współstudentów, to staram się gadać o rzeczach podstawowych (a tych trochę znam), bo tego im właśnie potrzeba. Jeśli gadam do pldziarzy, to mogę pogadać o PLD, bo ich to pewnie choćby trochę zainteresuje (ale tylko ich). Jeśli gadam do "obcych", to dobrze by było, gdybym gadał o czymś, na czym się znam i co ich może zainteresować. Jakieś trzy-cztery lata temu wystąpiłem na konferencji o bezpieczeństwie komputerowym i nie mam zamiaru znowu z siebie robić publicznie idioty w ten sposób. (Gwoli wyjaśnienia: taki ze mnie spec od bezpieczeństwa, jak z koziej dupy klarnet; oczywiście podstawy znam...)

Prawda jest taka, że ja się na niczym nie znam poza poziom powiedzmy średniozaawansowany, a co za tym idzie tym co wiem nie jestem w stanie zainteresować nikogo poza "początkującymi". Nie jest to jakoś przeraźliwie dziwne, mam 22 lata, więc trudno, żebym miał rozległą wiedzę i doświadczenie w jakimkolwiek temacie... acz miło by było :) Może kiedyś.

Od dawna zastanawiałem się, czy nie udałoby mi się jakoś przekwalifikować zawodowo, bo perspektywa spędzenia reszty życia na przerzucaniu bajtów przestała mnie podniecać dłuższy czas temu, ale realistycznie patrząc -- nie, nie ma najmniejszych szans, żeby IT nie było integralną (i sporą) częścią tego, czym się będę w przyszłości zajmował, jeśli zależy mi na zarabianiu jakiś sensownych pieniędzy (a zależy; treningi tanie nie są, wino choya też nie, a benzyna nie rośnie na drzewach).

No cóż. Shit happens. Wniosek -- muszę po prostu na nowo znaleźć coś, co by mnie w tych pieprzonych komputerach zainteresowało i wykombinować jak to robić zawodowo. Ta pierwsza część mi się udała, jak byłem nastolatkiem, więc trzeba to po prostu jakoś powtórzyć. Przekichane, jak zawsze, będzie z tą drugą.

Poprelekcyjnie (nagranie)

09 XI 2007, 04:40:22
  1. Nagranie jest mocno przeedytowane pod kątem przydatności do słuchania. Jeśli ktoś pamięta, że coś się wydarzyło inaczej, niż jest nagrane, to wysoce prawdopodobne, że dobrze pamięta.
  2. Wyciąłem co najmniej kilka minut swoich mlasknięć (co mikrofon bardzo ładnie ponagrywał), chrząknięć, eeeeeyyyyeeeeeania, za długich pauz, przerw technicznych oraz najzwyklejszych wpadek. Więc nie, wcale tak płynnie nie mówię.
  3. W środę miałem depresję, że poszło tragicznie. Po przesłuchaniu stwierdzam, że aż tak strasznie tragicznie wcale nie poszło. Nic czego nie może naprawić kreatywna sesja z edytorem dźwięku.
  4. Acz kilka rzeczy jest oczywistych -- po pierwsze, wcale nie mówię tak płynnie i poprawnie technicznie, jak mi się wydawało, że mówię :(
  5. Po drugie -- miałem nadzieję zrobić super zajebistą prezentację. Poświęciłem na nią z dwa-trzy razy więcej czasu, niż zwykle poświęcam na takie rzeczy. Wyszło niewiele lepiej, jeśli w ogóle. Jedno staje się dla mnie jasne -- jedyny sposób na idealnie płynną prezentację, to po prostu usiąść, napisać całość słowo w słowo i później albo czytać, albo wyryć całość na blaszkę. Nie ma siły, żebym z kartką opisującą tylko schemat wystąpienia był w stanie przeprowadzić je płynnie -- bez zacięć, bez pauz, bez niepotrzebnego powtarzania się. Po prostu się nie da. Może są jacyś geniusze, którzy potrafią, ale generalnie wątpię, żeby to było w zasięgu normalnego człowieka. Mowa ludzka tak nie działa. Zapomina się słów, robi pauzy, gubi wątki, różne rzeczy rozpraszają.
  6. Po trzecie -- jeśli chcę zrobić płynną integrację tego co mówię, z tym co jest na rzutniku, to powinienem mieć w zasięgu wzroku swój laptop, żebym nie musiał się odwracać w celu upewnienia się co właściwie w danym momencie jest na rzutniku (mam ten bezprzewodowy dynks do obsługi prezentacji, więc mogę zmieniać slajdy patrząc się na publiczność). Takie odwracanie psuje płynność, a i mnie dekoncentruje.
  7. Po czwarte -- różne techniczne drobiazgi o zwracaniu uwagi na które człowiek się uczy z wykładu na wykład.

Link do ogga. Jutro jeszcze powinien być nius na stronie oplugowej wraz z jakimiś fotkami.

A, disclaimer: mówiąc zrobiłem sporo uproszczeń, a i wykład był dosyć konkretnie stargetowany (na studentów, którzy nie wiedzą jak takie rzeczy ugryźć). Dodatkowo co najmniej kilka razy powtarzałem, że coś jest moim poglądem na sprawę i na pewno są miejsca, gdzie to działa (z powodzeniem) kompletnie inaczej. Także wiem, że nie opisałem wszystkiego, co było do opisania. Był to świadomy wybór.

Głupie błędy w zarządzaniu, część pierwsza

30 X 2007, 01:04:36

Niedoszacowałem czasochłonności projektu. Ale tym nie jestem zdziwiony, jeszcze wiele wody w rzece upłynie, zanim będę w stanie w miarę dokładnie terminy przewidywać. Popełniłem inny błąd -- nie zadbałem, by możliwie wcześnie skonsultować odpowiednie fragmenty dokumentacji z osobą, która byłaby kompetentna nam wykazać rozjazdy z rzeczywistym modelem biznesowym. Szczyt kretynizmu jak teraz na to patrzę. Grrr.

Skutek? Kilka mniejszych i niestety kilka większych dziur wymagających poprawek w kodzie. Przy czym ja, jako szef, za swoje błędy płacił nie będę. Nadmiarową robotę będzie miał programista.

Niskoopłacany niedoświadczony programista, który chyba dopiero na tym projekcie zaczyna rozumieć, że "naiwna ocena czasochłonności", typowa dla początkujących koderów ("Ten projekt? Tydzień, maks dwa.") nijak się ma do rzeczywistego mozolnego kodowania. Programista, który zaczyna się wypalać na moich oczach. Programista, którego potrzebuję na zaraz do następnego projektu.

Szlag by to. Przydałoby się zrobić coś konkretnego, tylko co. Na początek niech będzie zapewnienie, że terminy są bardzo fajne, gdy wydają pocieszne dźwięki przelatując nad naszymi głowami. I że nie ma się nimi za bardzo po co przejmować.

How to Get a Job Like Mine

20 X 2007, 02:49:25

Czasami udaje mi się natrafić na takie źródło wiedzy, że większość z tego, co czytam, wydaje się czystą stratą czasu w porównaniu. Ale właśnie takie znaleziska utwierdzają mnie w przekonaniu, że warto cały czas szukać. Bo nie da się znaleźć, nie szukając.

Najnowsze znalezisko. (Polecam na początek przeczytać wszystkie widoczne wpisy, a jeśli komuś się spodoba, to przejść do pierwszej strony i dalej czytać chronologicznie. Tak, blogi na Amazonie są wybitnie prymitywne.)

Autor tego bloga znalazł swój sposób na zmienianie świata. I płacą mu za to! Einsteinowi obecnie nic po tym, że wpłynął na bieg historii, bo zmarł dawno temu, ale to, czym się zajmował za życia, było dla niego samego fascynujące i po prostu ciekawe. Ja też chcę tak spędzić życie. Robiąc rzeczy nowe, mające znaczenie w szerokim kontekście (nawet jeżeli niewielu będzie sobie z tego zdawało sprawę).

Na pewno mi się to nie uda, jeśli zawodowo będę pracował nad jakimiś głupotami, bo trudno zmieniać świat po godzinach. Ostatnio miałem bliskie spotkania z realiami polskich uczelni, więc karierę naukową mogę sobie wybić z głowy -- nie mam zamiaru sobie marnować życia na mrzonki, że jeśli mam pomysł i energię, to System to doceni i zapewni mi odpowiednie środki, jak temu amerykaninowi.

Więc co mi pozostaje? Zostać jak najszybciej milionerem, żeby móc później poświęcić cały swój czas na fajne rzeczy. Ten pan tak zrobił. Jest rok ode mnie młodszy, rok temu został milionerem i teraz robi co chce.

Jest też amerykaninem, a ja nie. Eh.

Nie wiem, może narkotyki? Albo zostać urzędnikiem? Podobno da się szybko dorobić...

P.S. Tytuł pochodzi z tego wystąpienia. Zwracam uwagę zwłaszcza na drugi akapit.

P.S.2 W kontekście podlinkowanego bloga -- gdyby ludzie zdawali sobie sprawę, jak prymitywna jest ich edukacja w porównaniu do tego, jak powinna wyglądać, to polałaby się krew.

Z pamiętnika młodego przedsiębiorcy

11 X 2007, 22:20:43

Jak to w życiu -- wszystko ma swoje zady i walety.

Było tak: pracowałem nad systemem korzystającym z dziesiątek procesorów, gigabajtów RAM-u i gigabitów łącza. Naszym klientem były korporacje od których, jako programiści, byliśmy dodatkowo oddzieleni mało przepuszczalną warstwą szefostwa.

Jest tak: nowa firemka oficjalnie działa od półtora miesiąca. Jestem szefem działu IT. W praktyce oznacza to, że zajmuję się naszą "wirtualną" infrastrukturą oraz odpowiadam za większość rzeczy mających coś wspólnego z programowaniem.

Różnice? Sporo. Pierwsza -- poprzednio "klient" był dla nas bytem czysto wirtualnym. Terminy przychodziły i odchodziły. Nie odczuwaliśmy praktycznie żadnych konsekwencji naszej pracy (tak pozytywnych, jak negatywnych). Szefowie wiedzieli co i jak, a myśmy byli za firewallem. Teraz natomiast jeśli zawalę termin, to będę mógł się pójść osobiście potłumaczyć facetowi, który za zlecenie zapłacił. Oraz jego pracownikom, którzy z systemu mieli korzystać. Poziom odczuwalnej odpowiedzialności jest zdecydowanie inny.

Druga różnica -- pieniądze. Zaczynam podejrzewać, że w takim lowendowym plumkaniu, jakim się obecnie zajmuję, po prostu nie ma sensownych pieniędzy, a co za tym idzie, jest ono praktycznie skazane na marną jakość. Jeśli masz doświadczenie, interesujesz się tym, co robisz, jesteś na bieżąco z nowymi technologiami, to będziesz się zajmował nadzorowaniem jakiegoś mikroprojekciku w PHP za grosze? Czy może jednak pójdziesz pracować w sensownej firmie za sensowne pieniądze, albo założysz zaawansowanego technologicznie startupa z zamiarem zbicia na nim kokosów? No właśnie.

Case in point -- mam ponad półtora roku doświadczenia z całkiem sporych rozmiarów systemem rozproszonym. A zajmuję się administracją niewielkiego serwerka linuksianego oraz nadzorowaniem jednego PHP-owego kodera, gdzie wspomniane doświadczenie jest mi tak niesamowicie przydatne...

Oczywiście są i zalety. Po raz pierwszy od lat moja lista TODO nie jest nieskończona. Ba, kurczy się! Mam na niej zaledwie kilka pozycji i wiem, że jeśli przysiądę, to pod koniec tygodnia mogą zostać może dwie. Zacząłem znowu czytać książki! Na razie powoli, ale się rozkręcam.

Dodatkowo fajnie się patrzy na tego mojego PHP-kodera, jak się uczy. Czystszy kod, lepsza struktura, lepsze narzędzia, separacja kodu i HTML-a, smarty, porządnie zaprojektowana baza danych. Jeszcze z dwa takie projekty i będzie na tyle samobieżny, że w ogóle nie będę musiał patrzyć na to co on robi. A jak zechce później znaleźć sensowniejszą pracę, to nie powinien mieć problemów.

I, ponad wszystko, nie ma to jak możliwość ustalania własnych priorytetów. Znacznie przyjemniej się pracuje.

O zlotach wedle Mortona

26 VIII 2007, 18:14:49

Cytat z maila Andrew Mortona:

My overall take on kernel summit: we spend far too much time talking about technical stuff.

There is little benefit in doing this: we conduct technical discussions over email and we do it well, and there are many very good reasons for doing it that way. In fact when the KS discussion gets too techy I just start ignoring it (...)

Plus the minisummits are better suited for the technical material.

Polecam przeczytanie całego maila. Generalnie chodzi o to, że najwyraźniej nie tylko ja jestem zdania, że przeznaczanie fizycznych spotkań większą grupą na omawianie technicznych zagadnień, które z definicji interesują tylko pewien podzbiór ludzi, jest stratą czasu. Jeśli chcesz sobie o technikaliach porozmawiać sensownie, to skrzyknij tylko te osoby, które mają w tym jakiś interes, usiądźcie sobie przy jakimś stole i gadajcie, bądź też użyjcie maila/irca, jak zwykle. Natomiast jeśli chcesz robić ogólną publiczną prezentację, to najpierw się upewnij, że rzeczywiście jest ona interesująca dla większości twoich słuchaczy. Jeśli nie jest, to najlepiej jeśli oszczędzisz tak czas swój, jak i innych.

Tyle jeśli idzie o spotkania dla osób technicznych. Zastanawia mnie jak by to wyglądało w przypadku początkujących (LUG-i i takie tam). Pewnie jakoś podobnie, ale ani mi się nie chce zastanawiać, ani w sumie nie mam podstaw, żeby oceniać.

Urok marginesów

22 VIII 2007, 02:53:32

Jakiś czas temu stwierdziłem, że musi być jakiś sens posiadania papierowych książek niebeletrystycznych. Myślałem, myślałem, aż wymyśliłem. Od teraz czytam książki z ołówkiem, żeby móc sobie po nich pobazgrać, jak tylko mam jakieś przemyślenia związane z tym, co czytam.

Przyda mi się to do czegoś? Nie zakładałbym się. Ale przynajmniej mam zabawę, a za jakiś czas będę mógł się snobować, że mam niezgorszą biblioteczkę fachową i to jeszcze z "wartością dodaną" w postaci moich błyskotliwych komentarzy, tak, jak to bywało w czasach Leonarda! Idę sobie kupić binokle.

(Różnej maści twórcy i naukowcy czasów sprzed obecnej rewolucji komunikacyjnej, to jest w ogóle ciekawy temat, tylko musiałbym mieć czas na pisanie :(

Znowu o zarządzaniu open source'ami i nie tylko

13 VIII 2007, 03:36:25
Linux kernel management style. Ten tekst jest tak treściwy i na temat, że mógłbym na jego temat popełnić co najmniej kilka wpisów, w każdym cytując po kilka akapitów. Jak mi się będzie kiedyś nudzić, to go przetłumaczę i będę każdemu podsyłał do przeczytania co najmniej po kilka razy.

Wiecie na przykład dlaczego większość PLDowych cudzych pomysłów z miejsca kwalifikuję jako nieaplikowalne i niepraktyczne? Bo jestem egoistycznym chujem? No tak, to też, ale chodzi mi o to, że pomysłodawca (a) zazwyczaj tak naprawdę nie rozumie implikacji swoich pomysłów, zwłaszcza w stosunku do użytkowników/deweloperów (czyli ogólnie ludzi) oraz (b) jeśli rzeczywiście byłby przekonany do swojego pomysłu, to na krytykę zwracałby uwagę tylko pod kątem wyciągania z niej jakiś przydatnych spostrzeżeń, a energię poświęcał jego realizacji. Innymi słowy za każdym razem, gdy czyjś pomysł rozbija się o to, że jestem brzydki i mam wszy na pępku, to tylko utwierdza mnie to w przekonaniu, że i tak szanse realizacji miałby marne (mówiłem, że jestem chujem :).

Moja rada? Dużo czytajcie na tematy związane z tym, co chcecie robić. Im lepiej będziecie rozumieli ludzi, których to, co chcecie robić, dotyczy, tym bardziej będziecie czuli jeśli któryś wasz pomysł rzeczywiście będzie miał potencjał. Co za tym idzie większy będzie wasz zapał i mniejsza szansa, że jakiś brzydal was od pomysłu odwiedzie. Tak jak mówiłem na zlocie pldziarzy -- jeśli ja coś chcę zrobić, to po prostu robię. I nie dlatego, że mam jakieś magiczne moce, ale dlatego, że jeśli się już za coś biorę, to zazwyczaj jestem mocno przekonany, że ma to sens.

Nawiasem mówiąc parę miesięcy temu zostałem szefem swojouczelnianego radia internetowego (że Koło Naukowe Radio Emiter). I mam nawet pomysł co zrobić, żeby to radio było relewantne i produkowało pewne ilości kontentu, który znalazłby swoją niszę. Ale i tak nie znajdę na to czasu. W najlepszym wypadku uda mi się to w jakiś sposób spójnie opisać i przedstawić reszcie radiowców w nadziei, że podchwycą. Nadziei płonnej, bo prawda jest taka, że z zapałem realizuje się własne pomysły, a nie cudze.

Eh. Świat jest pełen ciekawych rzeczy, o których można poczytać, które można zrobić. Niestety większość z tego, co czytam, zaraz zapominam (nie mogę tego przeboleć prawdę mówiąc), a na rzeczy, które chciałbym robić, nie mam czasu (w tym na czytanie). Jedyne rozwiązanie, jakie mi przychodzi do głowy, to jak najszybciej się dorobić i później żyć w pewien określony sposób. O czym chętnie bym napisał coś więcej... tylko kiedy?

Klątwa Dijkstry

05 VIII 2007, 14:12:59

Od wielu wielu lat uparcie twierdzę, że nie lubię programować. Ostatnio usłyszałem ciekawe stwierdzenie -- pisanie programów jest dlatego wciągające, że programista ma cały czas wrażenie, że już zaraz za chwilę wszystko mu zacznie działać. I chyba coś w tym jest. Jeśli już się zmuszę do zabrania się, to czas upływa dosyć szybko i się nie nudzę. Rzecz w tym, że ja już bardzo dawno temu sobie w jakimś stopniu uzmysłowiłem, że "już zaraz za chwilę" to tylko złudzenie. Mam już pewne doświadczenia w tej kwestii, ale i tak nadal konsekwentnie udaje mi się niedoszacowywać czasochłonność kolejnych projektów. I tego właśnie nie lubię. Ten jednozdaniowy punkt na liście TODO może mi zająć równie dobrze 4 godziny, jak i najbliższe dwa tygodnie. Tym bardziej do szewskiej pasji doprowadza mnie fakt, że poniekąd pracuję w dziale R&D.

A, tak, radości płynące z pracowania nad rzeczami, których nikt wcześniej nie robił i których działania tak do końca nie jestem w stanie zrozumieć. Jest problem? No to trzymam kciuki, żeby wyrobiona na poprzednich błędach intuicja naprowadziła mnie na prawidłowe rozwiązanie. A jeśli nie naprowadziła? To za kilka tygodni, gdy będę miał już tego po dziurki w nosie i będzie mi się chciało płakać, kompletnie przez przypadek znajdę jakąś drobną rzecz, która wszystko naprawi. Przeżyłem to już kilkukrotnie, w tym kilka dni temu.

Przy czym różnica pomiędzy teraz i kiedyś polega na tym, że kiedyś na zakończenie takiego maratonu wysmarowałbym obszerny mail do przełożonego z "wytłumaczeniem" dlaczego nie działało i dlaczego moje zmiany wszystko naprawiły.

Teraz nie mam już takich złudzeń. Nie wiem co konkretnie powodowało, że system nie działał, nie wiem które z moich działań tak naprawdę poprawiły jego działanie, a tym bardziej nie wiem dlaczego.

I tylko jak sobie przypominam kazania Dijkstry o tym, jak to programy powinny być formalnie weryfikowalne, a nie pisane "na czuja", to mnie pusty śmiech ogarnia. Szkoda, że nie jestem satanistą, bo bym mu zbezcześcił grób, albo coś.

Od zera do menedżera, lekcja 375

31 VII 2007, 23:47:52

Jestem zwolennikiem zarzucania ludzi możliwościami robienia tego, na co mają ochotę (w przypadku projektów open source czytaj: dawania im odpowiednich uprawnień). Robienie jest ciekawsze, gdy co chwilę można robić coś nowego. A gdy robienie jest ciekawsze, robiący robi więcej i bardziej się przykłada.

Ostatnio się jednak na tym przejechałem. Dosyć oczywisty (po czasie) wniosek z owego przejechania się -- zawsze należy najpierw stwierdzić, czy istnieje więcej jak jedno podejście do poprawnego wykonania zadania. W 99% przypadków na dziesięć istnieje. Wtedy żaden problem przydzielić zadanie komukolwiek, niech się bawi. Jak zrobi źle, to albo da się komuś innemu, albo niech autor sam poprawia. Natomiast w pozostałych 1% przypadków nie warto ryzykować i należy postawić na sprawdzonych ludzi. Żeby potem nie żałować.

I małe post scriptum. Takie uwagi są zdecydowanie ciekawsze, gdy się je omawia na konkretnych przypadkach. Niestety publiczne opisywanie konkretnych sytuacji i konkretnych ludzi stoi w konflikcie z chęcią robienia czegoś z rzeczonymi ludźmi. Przeanalizowanie czyjejś pracy w gronie zainteresowanych członków projektu to jedno. Robienie tego samego publicznie, nawet jeśli jest to tylko tłem do analizy własnych poczynań, to już zupełnie coś innego. Albo rybka albo rower... Albo to z jakimiś grabkami i łopatką było.

Drażni mnie to. Muszę się sam cenzurować, inaczej zacznę kopać pod sobą dołki. Coraz bardziej romantyzuję czasy, gdy flejmowałem do woli kogo chciałem, bez brania pod uwagę jakichkolwiek konsekwencji. Stare dobre czasy...

Co ja myślę o bogu (i jego fanklubie)

23 VI 2007, 16:00:59

Że go nie ma. Tak bym to ujął w skrócie. Przy czym świat nie jest czarno-biały, więc pełna odpowiedź będzie dłuższa (i dwuczęściowa).

Część pierwsza -- na temat istnienia boga myślę to samo, co "nauka". Czyli po pierwsze -- jest nieskończona ilość jego "wersji" i są one ze sobą fundamentalnie niekompatybilne, więc wybierając jedną musiałbym uznać inne za nieważne. Nie wiem na jakiej podstawie miałbym to zrobić. Dodatkowo -- spora ich część (jeśli nie większość) ma w swoim "kanonie" dużą ilość różnych bajek, przypowiastek i tym podobnych (rozstępujące się morza, reinkarnacje, ciężarne dziewice, dziewice po śmierci, co kto lubi), w które miałbym uwierzyć wbrew własnemu zdrowemu rozsądkowi i wiedzy (która podpowiada mi raczej wytłumaczenia związane z bujnością ludzkiej wyobraźni, niźli z boskim natchnieniem). Tego nie jestem w stanie zrobić.

Podsumowując -- nie wiedziałbym jak wybrać religię i nie byłbym w stanie zaakceptować związanej z nią mitologii.

Pozostaje więc kwestia istnienia bądź nie istnienia boga jako takiego, w oderwaniu od jakiejkolwiek ziemskiej religii. Tutaj odpowiedź nauki jest następująca -- istnienie boga jest bardzo mało prawdopodobne (w nauce nie można rozmawiać o absolutach, bo coś jest prawdziwe/fałszywe tylko tak długo, aż ktoś nie znajdzie nowych dowodów). I tak jak ze wszystkimi innymi bardzo mało prawdopodobnymi rzeczami (na przykład że jutro zginę w trzęsieniu ziemi) i w kontekście poprzednich dwóch akapitów o niemożności wybrania jakiejś religii "na wszelki wypadek", pozostaje mi po prostu żyć tak, jakby boga nie było. A jeśli się (nie daj boże :) okaże, że jednak jest i się trudni jakimiś pośmiertnymi sądami dusz, czy czymś podobnym, to będzie mu musiało wystarczyć, że starałem się być Dobrym Człowiekiem (tm).

No i część druga odpowiedzi -- jak się odnosić do ludzi religijnych.

Rzecz w sumie najważniejsza -- traktowanie ludzi religijnych jakby byli nieuleczalnie głupi tylko dlatego, że w coś wierzą, jest bezpodstawne. Co ci mówi fakt, że na uniwersytetach są kursy z logiki formalnej, czy też metody naukowej? Ano to, że choć twój umysł jest w stanie pracować w ten sposób (do pewnego stopnia), to bynajmniej nie jest to dla niego domyślny tryb. To jest tylko jeden sposób myślenia, którego może w pewnych momentach używać, jak się go najpierw nauczy. A jeśli sam uważasz, że jesteś oazą chłodnej logiki, to znaczy, że jesteś w błędzie. Żaden człowiek nie jest, wynika to z naszej budowy. I tak, to jest opinia naukowa.

Tym samym próby traktowania innych ludzi bez zrozumienia natury ludzkiej są błędne. To, co uważamy za swoje Ja mieści się w części mózgu, która ewolucyjnie jest najmłodsza, natomiast resztę mózgu dzielimy z gadami i ssakami (że ewolucja). I ta prymitywna część nadal jest aktywna, nadal bardzo ważna i wpływa na tę naszą najmłodszą część mózgu na niezliczoną ilość sposobów, których w większości nie rozumiemy. Przykład -- wiem, że powinienem posprzątać mieszkanie. Mogę podać niezliczoną ilość logicznie brzmiących powodów, dla których powinienem posprzątać mieszkanie. Ale jakoś nie sprzątam mieszkania. Nawet tak podstawowa w życiu rzecz, jak motywacja, nie jest bezpośrednio sterowana przez nasze "logiczne" ośrodki myślenia. Takich przykładów można mnożyć.

Sprowadza się powyższe do tego, że to ta "emocjonalna" część mózgu jest w człowieku najsilniejsza i jeśli ty jesteś w stanie częściej posługiwać się myśleniem logicznym i je uważać za główny składnik swojej osobowości, to dlatego, że ona ci na to pozwala (a właściwie -- że ci nie przeszkadza zbyt często). U człowieka religijnego jest inaczej -- nawet jeśli boga rzeczywiście nie ma, to mózg ludzki jest zbudowany w taki sposób, że potrafi stwarzać bardzo silne wrażenie, jakby on jednak był. Ewidentnie wystarczająco silne, by wokół tego zbudować znaczną część swojej osobowości, ewidentnie kosztem krytycznego myślenia.

W związku z powyższym, najsensowniejsze podejście, jakie udało mi się wymyślić względem innych ludzi, jest, że tak powiem, utylitarne. Tzn. oceniam innych ludzi nie po tym dlaczego coś robią (co sobie myślą na temat tego, co robią), tylko co robią i jak im to wychodzi w praktyce.

Na przykład -- jeśli pomogę bezdomnemu, to mogę sobie wytłumaczyć własne działanie psychologią ewolucyjną. Osoba religijna zrobi to samo, ale mając w głowie nauczania na przykład Chrystusa. Ważne, że skutek jest taki sam.

Z drugiej strony -- jeśli ktoś będzie, nie wiem, przeciwstawiał się edukacji seksualnej dla młodzieży, bo "nie lubię, jak dzieciom się opowiada takie świństwa", albo "bo Jezus by się wkurzył", to mam zamiar z takiej "argumentacji" po prostu drwić jako głupiej i dziecinnej, nie popartej niczym sensownym. Formułka, że "poglądy religijne zasługują na szacunek" to przeżytek. Same z siebie nie zasługują. Mogę tylko oceniać pojedyncze działania jako pozytywne lub nie.

Ale ważna w tym wszystkim jest też moja osoba. Tzn. jeśli mówimy o debacie publicznej, to w moim interesie jest się wypowiedzieć. Jeśli natomiast rozmawiam z kimś prywatnie (zwłaszcza z kimś z własnej rodziny) to w moim interesie leży nie generowanie niepotrzebnych konfliktów, co w praktyce oznacza nie poruszanie tego typu tematów i ostrzeganie, że moje poglądy najprawdopodobniej będą obraźliwe, jeśli ktoś inny spróbuje mnie wciągnąć do takiej rozmowy. Podobnie ze świętami -- traktuję je po prostu jako tradycje, skutkiem czego nie mam zamiaru robić scen. Oczywiście w granicach zdrowego rozsądku, czyli propozycję pójścia na mszę i przyjęcia komunii/wyspowiadania się bym, że tak powiem, odrzucił.

A, i mała uwaga na boku. Nie ma sensu tak bardzo demonizować religii. USA jest jednym z najbardziej religijnych państw, a jednocześnie potęgą technologiczną. Europa też przez wiele wieków była bardzo religijna i jakoś nie cofnęło nas to do epoki kamienia łupanego. Też uważam, że bez religii byłoby lepiej, ale nie sądzę też, żeby groziło nam cofanie się w rozwoju.

Garść porad

08 VI 2007, 23:51:42

Naszło mnie na spisanie w formie jedno-dwuzdaniowej wszystkich rzeczy, które chciałbym przekazać innemu młodemu facetowi. [1] Tyle, że iluśtam lat życia nie da się streścić w paru punktach -- pisałem, pisałem, pisałem; strasznie tego dużo, musiałbym jeszcze z kilka godzin poświęcić, a spać mi się chce. Najchętniej bym to wrzucił na jakieś wiki i później dodawał tylko linki odnośnie każdego punktu (z szerszymi wytłumaczeniami). Może kiedyś.

[1] A naszło mnie po przeczytaniu któregośtam wpisu d4rkiego, którego generalnie nie czytam z zasady, bo ma mało do powiedzenia i jest wybitnie irytujący. Czyli -- standardowy nastolatek z punktu widzenia osoby dorosłej. Tyle jeszcze ma do nauczenia się...

Stwierdziłem jednak, że nie mogę tego tak całkowicie zostawić i postanowiłem wyciągnąć te kilka najważniejszych punktów. A więc:

  1. Każdy człowiek jest inny, a typów ludzi jest też bardzo dużo, do tego każdy żyje w innym środowisku, więc nie oceniaj wszystkich według siebie. Takie oceny będą błędne, a działania, jakie na ich podstawie podejmiesz będą nieoptymalne (czy wręcz szkodliwe). Jeśli nie rozumiesz działania innych, powstrzymaj się z oceną, dopóki nie poznasz sposobu ich myślenia. Czasami może ci się to nigdy nie udać.
  2. Podstawą naszego działania są emocje. Nigdy o tym nie zapominaj. Możesz zrobić wszystko, jeśli tylko masz odpowiednią motywację. Jeśli chcesz coś zrobić, ale nie jesteś w stanie, pomyśl jak poszukać motywacji. Pamiętaj też, że samo życie może ci jej dostarczyć.
  3. Twój umysł jest bardzo plastyczny. Możesz go rozwijać w dowolnym kierunku. Koordynacja psycho-ruchowa (znacznie podnosi komfort życia), zdolność logicznego i abstrakcyjnego myślenia (m.in. ułatwia życie zawodowe), życie emocjonalne (pomaga w życiu prywatnym, zwłaszcza w rozumieniu kobiet) -- jedne rzeczy będą łatwiejsze, inne trudniejsze, ale wszystkie jesteś w stanie rozwinąć. Jeśli ci się chce i wykombinujesz jak, możesz zostać całkowitym przeciwieństwem osoby, którą jesteś teraz.
  4. Pamiętaj jednak, że takie zmiany trwają i muszą następować stopniowo. Nie zostaniesz jutro pudzianem, czy Einsteinem, ani nie będziesz w stanie wzruszyć się wierszami Kochanowskiego. Ale jeśli spróbujesz małymi krokami, to kto wie do czego dojdziesz za pięć, dziesięć lat. Wydaje się to dużo, ale dorosłe życie jest znacznie znacznie dłuższe. Spróbuj sobie to uświadomić. Warto robić te malutkie kroczki w wybranym kierunku. Kilometr to tysiąc metrów.
  5. "Zmiana perspektywy myślenia jest warta 30 punktów IQ." Dużo czytaj. Nikt ci nie jest w stanie powiedzieć jakie informacje będą przydatne akurat tobie, musisz być w stanie znajdować je sam.
  6. Tak, chęć i umiejętność czytania to też kolejna cecha/umiejętność, którą można stopniowo wyrobić. Najpierw znajdź coś, co lubisz czytać, nawet, jeśli jest to pudelek. Po jakimś czasie zapewne cię to znudzi, wtedy znajdź coś innego (literatura popularnonaukowa? science-fiction? jakieś romansidło? próbuj). Niewykluczone, że za kilka lat będziesz z zainteresowaniem przegryzał się przez wielotomowe traktaty historyczne.
  7. Nigdy nie pozwól sobie uważać, że kobiety są głupie. Utrzymuj znajomości z kobietami, miej przynajmniej jedną bliską przyjaciółkę. Jeśli uważasz, że przyjaźń z nią niczego cię nie uczy, to znaczy, że zbyt słabo się rozglądasz.

Hm. Ciekawym jak teraz wyglądają "poradniki" dla młodzieży (starszej). Widział ktoś kiedyś coś takiego w ogóle?

Poza tym coraz bardziej mnie ciągnie, żeby założyć gdzieś anonimowego bloga. Ciekawym czemu.

Dlaczego wywiady ssom

05 VI 2007, 15:55:24

Po wygraniu tej olimpiady z angielskiego zainteresowały się mną różne gazety. NTO (Nowa Trybuna Opolska) oraz osoba, która wrzuca niusy na główną stronę mojej uczelni potraktowały sprawę adekwatnie do stopnia jej ważności i po prostu wrzuciły kilka zdań stwierdzających że ja wygrałem, a współstudent zajął drugie miejsce na olimpiadzie z niemieckiego. I tyle.

Reporterka lokalnej wyborczej natomiast postanowiła najpierw pogadać ze mną przez telefon, żeby mieć trochę więcej informacji. Po rozmowie coś mi strasznie nie pasowało -- tego nie powiedziałem, to powiedziałem w nie ten sposób, w jaki wolałbym, tamtego w ogóle pewnie lepiej by było nie mówić (zwłaszcza biorąc pod uwagę moje podejście do studiowania na tej uczelni; z którym nigdy się przed nikim, z prowadzącymi zajęcia włącznie, nie kryłem, ale i tak nie jestem do końca przekonany, że powinny się te informacje znaleźć w lokalnej gazecie; acz zakładam, że dziennikarze są przyzwyczajeni do ludzi, którzy gadają trochę za dużo jak dla własnego dobra i wygładzają co ostrzejsze kawałki :), etc, etc.

Przed chwilą odbyłem podobną rozmowę z osobą redagującą Wiadomości Uczelniane. Poszło minimalnie lepiej, ale przynajmniej w końcu uświadomiłem sobie co mi nie pasuje w tego typu wywiadach -- ja jestem przyzwyczajony, że jeśli chcę coś publicznie powiedzieć, to mogę sobie spokojnie usiąść, pomyśleć, napisać, przeczytać to co napisałem, poprawić fragmenty, które nie brzmią najlepiej, i tak dalej, i tak dalej. Jeśli nawet później stwierdzę, że to był błąd, to przynajmniej mogę sobie zaserwować standardowy komentarz -- "wtedy brzmiało to sensownie". Z wywiadem na żywo, i to jeszcze takim z założenia szybkim przez telefon, jest ten problem, że zanim ja się w ogóle mam okazję zastanowić, czy to, co powiedziałem, brzmiało sensownie, to jest już po całej zabawie. No a jeśli nie brzmiało? No to pech.

Hmm. W sumie rozwiązanie teraz wydaje się oczywiste -- powinienem był zawczasu przewidzieć jak najprawdopodobniej będą wyglądały pytania, wymyślić co tak naprawdę chciałbym powiedzieć, po czym złożyć te dwie informacje do kupy i opracować sobie system, gdzie niby odpowiadam na zadane pytanie, a w rzeczywistości mówię to co chcę powiedzieć. Politycy tak robią i teraz rozumiem dlaczego.

No cóż, Public Relations 101. Przyda mi się na raz następny. Live and learn.

Publiczne gadanie 101

25 V 2007, 12:57:08

Vide wpis o olimpiadzie. (Wytłumaczenie topica [drugi podpunkt].)

1. Dowcipy typu "jeśli wam powiem, będę was musiał zabić" są fajne. W teorii. Tak naprawdę sprzedać taki dowcip jest dosyć trudno i generalnie odradzam próby, zwłaszcza przed nieznaną widownią. Bo to jednak średnio wychodzi w praktyce. Następnym razem spróbuję jakiejś wersji "jeśli wam powiem, doświadczę bardzo złych rzeczy".

2. W ogóle lepiej się dobrze zastanowić przy każdym dowcipie. "MIT is like the Paris Hilton of technology universities. Every guy knows about it and want's to get inside." Wy zapewne rozumiecie dwuznaczność. Komsija chyba na szczęście nie załapała.

3. Z publicznym gadaniem jest jak z pisaniem typu dziennikarskiego (czy blogowego). Robi się to po to, żeby coś przekazać. Nie służy prezentowaniu swoich umiejętności oratorskich, nie służy tłumaczeniu publiczności jaki prowadzący jest fajny, nie służy też przedstawieniu wszystkiego, co autorowi się kojarzy z określonym tematem. Cały widz polega na tym, żeby opowiedzieć o najważniejszych kwestiach, takimi słowami, żeby widz zrozumiał i w taki sposób, żeby nie przestał słuchać w trakcie (np. księża katoliccy są specjalnie tak szkoleni w modulacji głosu, żeby uśpić słuchaczy; dzięki temu mają oni później wyrzuty sumienia, że przysnęli na mszy i wrzucają więcej na tacę). Oczywiście, jak wszędzie, także tutaj poziomów zaawansowania jest multum (np. jak się dużo przemawia, to niegłupim pomysłem jest sobie wyprostować i wybielić zęby), ale w 99% przypadków na dziesięć ilość wiedzy wymagana do bycia wystarczająco kompetentnym nie jest zbyt duża. Wystarczy chcieć ją przyswoić (i później trochę potrenować).

Dlaczego wolę mniej doświadczone kobiety, część druga

02 IV 2007, 15:53:02

Część pierwsza.

Poruszaj palcem wskazującym prawej ręki. No, poruszaj. Jesteś to w stanie zrobić, prawda? A potrafisz wytłumaczyć jak to się stało? No, z tym już gorzej. Wiesz jak spowodować, by się ruszał. Nie masz natomiast zielonego pojęcia jak to się właściwie dzieje, że się rusza. Twój mózg zna te wszystkie szczegóły związane z ruszaniem palcem (mięśnie, ścięgna) -- ty natomiast nie.

Mózg to jest taka wielka skomplikowana sieć neuronowa, którą można wytrenować do robienia różnych dziwnych rzeczy. Twój mózg wie jaka jest struktura języka, jakim się posługujesz, ty nie (o ile nie jesteś lingwistą). Twój mózg wie jak sterować twoim ciałem, ty nie (o ile nie jesteś... no jakimśtam atletą-naukowcem). Etc, etc.

Co najważniejsze w tym wszystkim -- twój mózg potrafi wykonywać te rzeczy znacznie sprawniej, niż ty jesteś to w stanie robić, jednocześnie pozwalając tobie na skupianie się w tym czasie na czymś innym. Dlaczego początkujący kierowca popełnia tyle błędów? Bo próbuje świadomie sterować wszystkim na raz, a świadoma część jego mózgu ma tak naprawdę bardzo ograniczone moce przerobowe i jeśli jest za dużo na raz do roboty, to się bardzo szybko zatyka. A nawet jeśli się nie zatka, to to, co robi, robi zazwyczaj bardzo topornie (mało płynna zmiana biegów na ten przykład).

Jakieś dwa lata temu znajomy po raz pierwszy pokazał mi o co chodzi w brazylijskim jiu-jitsu (coś ala zapasy/judo). Z mojej pierwszej, maksymalnie kilkudziesięciosekundowej, walki, nie zapamiętałem praktycznie nic. Wszystko działo się bardzo szybko, a na koniec przegrałem!

Obecnie, po półtora roku treningów, podobne walki wyglądają całkiem inaczej. Ponieważ mój mózg wykonuje za mnie znaczną ilość czynności, ja mogę się skupić na obserwowaniu tego, co się dzieje (a czas płynie mi dzięki temu znacznie wolniej). Mogę na przykład podczas walki rozmyślać o słabych punktach przeciwnika.

Jednak dajcie mi zawodnika wyraźnie bardziej zaawansowanego ode mnie i znowu czas znacznie przyspieszy, a ja nie będę w stanie zauważyć większości rzeczy, jakie się w czasie walki dzieją. Obronię się raz, obronię się drugi raz, aż nagle obudzę się z dźwignią na któryś staw. W momencie w którym dotrze do mnie co się dzieje, będzie już za późno.

Podobna zasada jest w tańcu, tyle że tam występuje dodatkowe utrudnienie w postaci prowadzenia. Tzn. jeśli tańczymy, to ja mam być w stanie myśleć nie tylko za siebie, ale poniekąd i za partnerkę (bo ona nie może wykonywać połowy swojego układu, o ile ja nie zainicjuję w odpowiednim momencie jej ruchów). I żeby być w stanie to robić, muszę mieć bardzo dobrze opanowaną własną technikę (głównie kroki), by móc się w stanie skupić na pilnowaniu, czy partnerce się dobrze tańczy, analizowaniu jak w praktyce wypada moje prowadzenie i eksperymentowaniu z różnymi rzeczami.

I tu pojawia się problem z zaawansowaną partnerką. Kobieta na moim poziomie głównie martwi się swoimi krokami, a czasami, jak jej przypomnę, trzymaniem odpowiedniego napięcia na rękach, więc o ile nie zrobi jakiegoś większego błędu, ja jestem w stanie spokojnie skupić się na swojej działce i przy okazji nie dać się przez nią wybić z rytmu.

A co robi bardziej zaawansowana partnerka? Wije się. Jej obrót to nie jest po prostu kilka kroków, to jest ruch całym ciałem, z różnymi wymachami rąk włącznie.

Powoduje to szereg problemów. Po pierwsze, jej figury są znacznie mniej tolerancyjne na niedobory mojego prowadzenia. Ona jest bardziej świadoma tego, czy nie spóźniam się z wprowadzeniem jej w obrót, ponieważ ona podczas takiej figury robi znacznie więcej rzeczy, więc i potrzebuje lepszego oparcia, żeby nie stracić równowagi i zatrzymać się w odpowiednim momencie.

A nawet jeśli się nie spóźniłem, to nagle się okazuje, że moja część danej figury jest nie do końca taka, jaka być powinna. Prawą rękę, którą zawsze zostawiałem gdzieśtam, nagle nie mogę zostawiać gdzieśtam, bo, wijąc się, partnerka swoimi rękami uderza o moje. I ja (świadoma część mojego mózgu) nagle w środku wykonywanej figury dostaję sygnał, że coś jest nie tak. Nawet jeśli ten sygnał zignoruję, to i tak właśnie znacznie wzrosła szansa, że, skupiwszy się przez ułamek sekundy na czymś innym, niż własne kroki i sterowanie partnerką, coś skopię.

I ostatnia rzecz -- ja jestem wszystkich powyższych rzeczy świadom. I to bynajmniej nie pomaga. Muszę się świadomie zmuszać do ignorowania faktu, że ruszam się przy niej jak kloc i że w połowie wykonywanych przez nią figur jej bardziej przeszkadzam, niż pomagam. Dodatkowo w większości wypadków nawet nie mam specjalnie punktu zaczepienia, żeby wykombinować co konkretnie powinienem poprawić (brak doświadczenia), czyli po raz n-ty czuję, że coś jest w danej figurze nie tak i nie wiem co z tym zrobić.

Skutek generalnie jest taki, że rzeczywiście popełniam więcej błędów. I niespecjalnie mam co z tym zrobić, bo ona nie jest aż tak doświadczona, by być w stanie w sensowniejszy sposób coś poradzić (zwłaszcza facetowi), a lekcje nie są prywatne, więc i trenerzy nie są na każde zawołanie.

Podsumowując -- zdecydowanie przyjemniej jest, jeśli kobieta jest mniej doświadczona od faceta.

Dlaczego wolę mniej doświadczone kobiety, część pierwsza

29 III 2007, 01:43:31

Jakkolwiek historyjka o moich zmaganiach z Panią Prezes była w założeniu humorystyczna, to jednak sporo materiału było całkiem zgodnego ze stanem faktycznym.

Zwłaszcza o tym, jak Pani Prezes mnie depra..., znaczy deprymowała.

Otóż założenie tańca towarzyskiego jest proste -- facet prowadzi. I nie chodzi tylko o to, że to bardziej facet trzyma kobietę, niż na odwrót i że ona go może czasami używać jako różnej maści podpórki przy obrotach. Zasada generalnie jest taka, że jeśli partnerka wykona nieprawidłową figurę, to można przyjąć, że to jest jego wina. Dlaczego? Ponieważ przez sporą część czasu on ją w ten, czy inny sposób trzyma, a co za tym idzie jest w stanie tak inicjować, jak i ograniczać jej ruchy (tym samym powodując, że wykonanie przez nią jakiejś figury w sposób A jest dla jej ciała bardziej naturalne, niż zrobienie tego w sposób B).

Żeby zobrazować -- jak po prostu podniosę (w trzymaniu zamkniętym; wiecie, takie do tanga i innych takich) lewą rękę i partnerkę lekko popchnę w (jej lewy) bark, to się obróci w określony sposób. Nie będzie miała wyjścia, bo (a) moja podniesiona ręka będzie jej uniemożliwiała odejście na jakieś większe odległości, więc (b) naturalnym ruchem wymuszonym owym popchnięciem będzie obrót.

Tak to wygląda na poziomie bardzo podstawowym. Na wyższych poziomach facet może kobietą sterować w sposób bardziej precyzyjny, a i ona lepiej jest w stanie odczytywać co on chce. (Tyle teorii. W praktyce to ja ciężko widzę zrobienie jakiegoś sensownego układu bez wcześniejszego przećwiczenia przez obie strony jak on ma wyglądać, nawet jeśli oboje są bardzo zaawansowani. To całe 'sterowanie' i 'wyczuwanie' jednak ma swoje granice.)

W każdym razie ja ponieważ mam ledwo te pół roku (z hakiem) treningów za pasem, więc przy tańcu tak ja, jak i partnerka głównie się martwimy o kroki. Ona zazwyczaj zna układ, a jeśli się pomyli, to, o ile jej pomyłka nie uniemożliwia mi wykonania mojego ruchu, jestem zazwyczaj spokojnie w stanie dalej wykonywać układ, dając jej czas na szybkie dostosowanie się. I tak ma być. Pomyłki obu stron, o ile nie krytyczne (tzn. nie uniemożliwiające dalszego ruchu), nie powinny przerywać tańca.

I znowu generalnie większy problem tu mają faceci. Jeśli ona się pomyli i jego wybije z rytmu (pomijając przypadki, gdy po prostu uniemożliwia mu dalszy ruch), to znaczy, że on się dał z niego wybić, a nie powinien się był dać. Natomiast jeśli on się pomyli, to partnerka ma kompletny zakaz przerywania mu tańca (żeby go opieprzyć), ma za to wykonać to, co facet jej w danym momencie każe wykonywać. Widzicie haczyk? Facet nawet jak się pomyli, to powinien się pomylić w sposób na tyle zdecydowany, konsekwentny i z odpowiednim wyprzedzeniem, by umożliwić partnerce wykonanie (nieplanowanej) figury. Jeśli partnerka nie wykona, to przyjmujemy domyślne założenie, że to jego wina (znaczy, że nawet pomylić się nie potrafił jak trzeba). Znacie te stereotypy, że prawdziwy facet powinien być pewny siebie, zdecydowany i zawsze wiedzieć co ma robić, etc, etc? No więc ma to bezpośrednie przełożenie na filozofię tańca towarzyskiego (a przynajmniej na tyle, na ile ją rozumiem w wersji prezentowanej przez mojego nawiedzonego trenera z ADHD i jego żonę).

Ma to oczywiście swoje zalety, takie mianowicie, że odpowiednio doświadczony facet jest w stanie to robić nawet z totalnie zieloną partnerką (popularnie zwaną kłodą) i (a) jej się będzie podobało, (b) będzie jej się wydawało, że ona nawet całkiem niezła w te klocki jest i (c) jak ktoś spróbuje popodglądać, to nawet nie będzie to tak tragicznie wyglądało.

Masakra natomiast jest w przypadku odwrotnym -- gdy ona jest wyraźnie bardziej doświadczona od niego. Tak było z Panią Prezes (która o ile mnie pamięć nie myli ma za sobą jakieś 4 lata treningów), tak też jest ostatnio z pewnym dziewczęciem z dwuletnim doświadczeniem, które nam zesłali za karę z grupy wyczynowej (jej przewinieniem był brak partnera).

Otóż, jak już wspominałem, jak ja tańczę z partnerką na moim poziomie, to po prostu wykonujemy odpowiednie kroki plus kiedy trzeba używamy rąk. Wspomniane dziewczę natomiast nie wykonuje "po prostu kroków", tylko się całe wije...

A ponieważ obiecałem jakiś czas temu, że będę się starał nie przekraczać granicy 4kb tekstu, więc o tym jakie problemy ma facet, gdy mu się w trakcie kobieta cała wije, opowiem razem następnym.

Od czeladnika do mistrza

11 III 2007, 23:59:03

Przeczytałem "Pragmatycznego Programistę". Większość rzeczy tam zawartych była mi w większym lub mniejszym stopniu znana, więc część podrozdziałów albo tylko przeskanowałem, albo w ogóle zignorowałem [1]. Tak czy siak książka zdecydowanie dobra i polecałbym wszystkim początkującym (i nie tylko) programistom. Zwłaszcza żałuję, że nie przeczytałem jej jakieś dwa-trzy lata temu (co najmniej; preferowalnie znacznie wcześniej), zanim zabrałem się za pisanie pldzianej automatyki ftpowej. Wtedy zacząłem po raz pierwszy bawić się na serio obiektami w pythonie i tak sobie klepiąc przyszło mi do głowy, że ok, samo tworzenie obiektów jest proste, tyle, że nie mam zielonego pojęcia w jaki sposób dzielić różne rzeczy na obiekty. Szkoda, że wtedy nie postanowiłem coś bardziej doczytać na ten temat.

[1] Jak byłem mały, to potrafiłem przeczytać od deski do deski praktycznie dowolną knigę. Teraz niestety już nie potrafię -- znacznie spadła mi tolerancja na książki techniczne -- za dużo tam słów, za mało przydatnej treści. Nawiasem mówiąc będę musiał pomyśleć w jaki sposób dałoby się napisać książkę tak, żeby zaawansowani nie mieli wrażenia, że tracą czas, a jednocześnie ci nie do końca zaawansowani byli w stanie z niej coś wynieść. Bo zdecydowanie powinno się dać.

Jedna rzecz jest w tym wszystkim mocno przerażająca -- ogrom materiału. Wszyscy znają przypowieść o archetypicznym 'informatyku', który kiedyś nauczył się jakiegoś visual basica i do tej pory wszystko robi przy jego pomocy. No i prawdę mówiąc ja się nie dziwię. Takie rozwiązanie jest bardzo kuszące.

Naczelną zasadą tej książki jest, że programista powinien wiedzieć wszystko o swoim fachu, bo tylko dzięki temu może dobierać właściwe narzędzia do zastanych problemów i używać ich w prawidłowy sposób.

Tylko ile tego wszystkiego jest! Ekosystem uniksiany (shelle, skrypty, szybkie przetwarzanie tekstu), ekosystem javowy (eclipse, javadoc, jUnit, jBoss, jAdziękuję), ekosystem .netowy, języki dynamiczne (trza by przynajmniej z dwa teraz znać, tj. pythona i ruby'ego), a to tylko same narzędzia. Do tego dochodzi jeszcze masakryczna ilość wiedzy, żeby z tego sensownie korzystać. Już te lata wymagane na zdobycie doświadczenia w tym wszystkim pominę -- poznęcam się trochę nad samą suchą wiedzą odnośnie programowania (obiektowego). Na niskim poziomie trza znać jakiś język (maluteńki język zwany javą na przykład). Do tego dochodzą te wszystkie narzędzia i frameworki. Do tego na najwyższym poziomie jakieś typowe architektury, MVC, klient-serwer, etc. A żeby nie było zbyt różowo, to taki UML (z którego olewamy 99%, bierzemy tylko podstawy) i jeszcze jakieś wymysły typu design patterns.

Brrr. W przypadku tych ostatnich zdecydowanie zgadzam się z krytykami -- jeśli przy rozwiązywaniu określonych typów problemów koduje się w sposób, który "zasługuje" na stworzenie wzorca, to znaczy, że nie powinno się robić wzorców, tylko (a) rozszerzyć język o nowe abstrakcje i (b) zrobić jakiś framework/zestaw modułów do niego. To co już jest, jest i tak cholernie skomplikowane, więc zupełnie nie podnieca mnie przedzieranie się przez formalne opisy wzorców projektowych, żeby znaleźć ten, przypominający akurat to, co mam zamiar robić. W takich przypadkach zdecydowanie powinienem mieć gotowy framework, który prowadzi mnie za rączkę krok po kroku, minimalizując przy okazji szansę, że sobie odstrzelę nogę.

Ja jestem leniem. Ja się nie lubię uczyć nowych rzeczy zbyt często. Ilość wiedzy jaka w tym wszystkim jest zawarta mnie przeraża.

(A jak ktoś już jest kompletnie pokręcony, to może spróbować się nauczyć htmla, cssa i jsa w stopniu zaawansowanym, tzn. takim, który wystarczy do stworzenia jakiejś bardziej zaawansowanej strony działającej we wszystkich popularniejszych przeglądarkach. Good luck.)

Creative Commons

25 II 2007, 18:43:04

Ja do tego całego CC zawsze miałem stosunek, erm, no w sumie nigdy nie wiedziałem na co to komu właściwie ma być. Tak, jasne, wszyscy teraz blogi piszą na potęgę, tyle contentu, więc jakby się go dało sklejać do woli, to by było fajnie i w ogóle. Ale kto by chciał sklejać i po co?

Aż mnie właśnie trafiło, jak przejrzałem artykuł o zasadach działania algorytmów kwantowych, nie używający nic, poza podstawową algebrą. Osoby mnie stale czytające już pewnie dawno zauważyły, że mam zboczenie na punkcie sposobów wtłaczania wiedzy w (zwłaszcza młodych) ludzi. Jestem zdania, że jak najwięcej profesjonalistów z wszystkich dziedzin powinno się zajmować tą kwestią i próbować coś robić w tym kierunku, bo dzięki temu raz na jakiś czas trafiają się ludzie, którzy rzeczywiście wykombinowali jak takie rzeczy powinno się pisać i dzięki nim powstają różne perełki. A to właśnie z czytania takich rzeczy powstają pasjonaci. Początkujący programista wie tylko tyle, że po przeczytaniu paru stron tekstu i wklepaniu kilku magicznych znaków w edytor, nagle pokazuje się na ekranie 'hello world'. On jeszcze wie i rozumie bardzo mało (kompilator? linker? kod maszynowy? polimorfizm? czarna magia?), ale to jest już ten najważniejszy początek, dzięki któremu ma motywację do dalszego zgłębiania tematu.

Ale wracając do tego kwantowego artykułu -- takich rzeczy jest na pewno więcej. Z niezliczonej ilości tekstów na te tematy (i na wszystkie inne), zapewne dałoby się zebrać do kupy te kilka napisanych przystępnym językiem i poruszające to, co najciekawsze.

I gdyby ludzie piszący takie rzeczy mieli w zwyczaju publikowanie ich na CC, to zwykły hobbysta, interesujący się akurat powiedzmy komputerami kwantowymi i mający zacięcie do pracy z tekstem pisanym (cholera wie, może nawet związany z tym zawodowo) mógłby po prostu zebrać odpowiednią ilość materiałów (tzn. od razu zabrać się do roboty, bez wysyłania najpierw zapytań i negocjowania czegokolwiek z autorami), poddać obróbce wedle woli (bo na przykład znacznie lepiej od oryginalnego autora wie, jak czynić tekst przystępnym dla odbiorcy) i 'wydać' takie coś poświęcając też czas na 'marketing'.

(Ilość ciekawych materiałów dostępnych w necie jest bardzo duża. To, nad czym boleję, to że wszystkie one są w formie bardzo poszatkowanej, tzn. jeśli jest się młodym człowiekiem, który sam nie wie czego chce, to trzeba mieć naprawdę duże zacięcie do klikania i czytania ton tekstu, zanim się będzie w ogóle miało jakiś pomysł na to, czym się chce zainteresować. Bardzo brakuje mi rzeczy typu "Complete guide jak zostać hakerem mroku, adresowany do młodzieży licealnej". Napisanie czegoś takiego od podstaw jest bardzo trudne i czasochłonne. Gdyby można było wziąć już istniejące teksty, i po prostu je złączyć do kupy i przerobić pod określony "target", to znacznie wzrosłaby szansa, że powstało by cokolwiek i że to cokolwiek miałoby jakąś większą wartość (choćby dlatego, że byłoby oparte o teksty, o których już wiadomo, że są wartościowe)).

Jeśli domyślną 'licencją' ogólnie pojętej wiedzy byłoby 'bierz i rób co chcesz' [1], to drastycznie wzrosłaby ilość ludzi mogących zrobić coś pożytecznego, nawet w tematach, z którymi nie są bezpośrednio związani (vide wikipedia). Powyższe "Quantum computing for dummies" jest tylko najprostszym tego przykładem.

[1] Nawiasem mówiąc tradycyjne periodyki naukowe typu Science, czy Lancet próbują bronić swojej obecnej pozycji jako jedynego źródła, z którego można otrzymywać publikacje naukowe. Okopały się na swoich pozycjach, zatrudniły nawet cholernie drogiego speca od PR-u. Ale nie pociągną długo. To jest zmiana tak oczywista dla większości ludzi, że albo się dostosują, albo zginą. Daję im może 5 lat.

Nawiasem mówiąc w końcu po ciężkich bojach udało mi się dziadków namówić na kupno komputera (z internetem). Spodoba im się (zwłaszcza dziadkowi) i na pewno będzie to ciekawsze i bardziej kreatywne od dziergania tysięcznej krzyżówki. Ale oni już nie będą całkowicie samodzielni w wyszukiwaniu nowych rzeczy. To nie to pokolenie.

Ale pomyślcie o ludziach powiedzmy do lat trzydziestu, którzy z internetu korzystali od wieku szkolnego, a więc dla nich jest to kompletnie naturalne. Spora część z tych ludzi już partycypuje w rozwój [2] różnych projektów, projekcików, społeczności małych i dużych. W wolnym czasie. A za jakieś trzydzieści-czterdzieści lat oni przejdą na emerytury. Będą mieli znacznie więcej wolnego czasu, a nie sądzę, żeby chęć robienia różnych fajnych rzeczy im przeszła.

To będą zdecydowanie ciekawe czasy.

[2] Sorry, musiałem chociaż raz tej frazy gdzieś użyć.

Młodości czar

02 II 2007, 20:58:30

Ewidentnie mam ostatnio fazę na myślenie o własnym rozwoju zawodowym (w ogóle 'fazowość' różnych rzeczy, okresy dobre do pracy, do obijania się, do spania i w ogóle, to temat na osobny wpis, będę to musiał kiedyś spróbować rozkminić). I właśnie mi coś przyszło do głowy -- czy ja już przypadkiem nie straciłem mojej szansy na wstrzelenie się w coś naprawdę fajnego? Oczywiście każdy jest kowalem własnego losu, zawsze można obrócić życie o 180 stopni, i tak dalej, i tak dalej...

Ale tak naprawdę to jest bardzo proste myślenie -- parę lat temu nie musiałem pracować. Parę lat temu liceum nie zabierało mi praktycznie żadnego czasu i nie wymagało ode mnie praktycznie żadnej aktywności. Parę lat temu własnym życiem osobistym nie interesowałem się w ogóle, a tym bardziej nie interesowało mnie poświęcanie na nie czasu (to były dobre czasy). Parę lat temu nie miałem czegoś takiego, jak 'priorytety' -- miałem pełną wolność robienia tego, na co tylko miałem ochotę.

Ale już nie. Teraz przyzwyczaiłem się do pieniędzy i traconego na ich zarabianie czasu. Przyzwyczaiłem się do, hmmm, inwestowania ich (oraz kolejnych porcji czasu) w siebie. Pogodziłem się z faktem, że jednak trzeba by skończyć studia, nawet, jeśli w większości to tylko strata życia.

Tragedia niestety nie w tym, do czego się przyzwyczaiłem, z czym się pogodziłem. Tragedią całej sytuacji jest to, że ja mam pełną świadomość, że to, co robię, jest prawidłowym wyjściem. Że studiowanie, że 'inwestowanie' czasu w siebie (i w, erm, swoje życie prywatne), to jest rozsądny wybór. To jest perspektywiczne. To powinienem robić. Dzięki temu moje życie, w perspektywie paru lat, będzie lepsze, niż gdybym tego nie robił. I to nawet pomimo faktu, że muszę się przez to hamować z niektórymi rzeczami.

Tiaa. Jednak nie ma to jak być młodym i głupim. Bez tej 'szerszej' perspektywy, która każe robić rzeczy na które nie ma się (wstępnie) ochoty, czy wręcz wbrew charakterowi.

U nas na wyrobisku

31 I 2007, 01:36:16

Chaotyczny wpis. Pisany bardzo nie po kolei. Te kawałki z bluzgami były pisane na początku, jak miałem w głowie obrazek siebie spędzającego życie jako programista java, co mnie z leksza drażniło. Te bardziej ironiczne -- na końcu, jak wykombinowałem dalszy plan działania, więc mi się humor poprawił.

Czytam książkę o umlu. Będę mniej więcej znał umla.

Po chuj?

Żeby to rzeczywiście miało jakąkolwiek wartość praktyczną (z zawodowego punktu widzenia), to musiałbym do tego jeszcze dodać jakieś wzorce projektowe (jedna, może dwie książki) i rzecz kluczową -- rzeczywistą znajomość jakiegoś obiektowego języka programowania.

Tylko którego? C#? Java? (To poniekąd to samo.) Java mnie przeraża. Nie ma czegoś takiego jak "programista java". Równie dobrze można mówić o "informatyku". Co to jest programista java? Co on robi? Serwlety, midlety, applety, pierdlety? J2EE, jboss, jini, swing... java2, java3, java4, java5... Widzieliście ostatnie wydania thinking in java? Ja mam encyklopedię tych rozmiarów. A po przeczytaniu tego i tak pewnie bym dalej nie był w stanie nic konkretnego zakodować (bo nie koduje się w javie przecież, koduje się w j2ee, jbossie, etc, etc).

Więc co? C++? C++ to już język niszowy (w porównaniu do javy i c#; nie w liczbach bezwzględnych) i z czasem będzie coraz bardziej niszowy. Jaki jest sens wtłaczania sobie do głowy tej całej obiektowej papki tylko po to, żeby kodować w C++?

W praktyce wybór kariery jest w większości przypadkowy. Jesteś programistą? A dlaczego nie administratorem? I dlaczego programistą j2ee, a nie czegoś innego? Bo na studiach akurat cię uczyli javy, a jak dostałeś staż to z j2ee i ci już tak zostało? Ano właśnie.

Na tej zasadzie ja jestem. Ja nie wiem czym ja jestem. Nie jestem adminem. Prawdziwi admini mają certyfikaty cisco, a ja nie mam certyfikatu cisco. Ja tylko całkiem nieźle znam jedno distro od środka i bardzo lubię wykorzystywać do maksa jego podstawowe narzędzie -- package managera. Tak, pozwala mi to na sprawne stawianie niezagraconych serwerów, ale ja tego po prostu nie lubię robić. Fajnie jest jak już działa, ale kogo może podniecać perspektywa grzebania w konfigach postfiksa, żeby działał z amavisem-new? Nie mnie.

A już na pewno nie mam ochoty zdobyć certyfikatu cisco.

Dla mnie naturalnym środowiskiem jest linia komend. Pliki, rury i takie tam. A jeśli koduję coś, co ma być szybkie, to wtedy używam znajomości C. epoll, dlaczego nie używa się dużej ilości wątków, blokujące sockety, minimalizowanie kopiowania danych, glib, może jakieś mempoole zamiast malloców, minimalizowanie ilości zmian kontekstów (ograniczać sysctle), etc, etc. To jest fajne. Nie wiem dlaczego. Może mam zboczenie, bo zaczynałem od assemblera, a poza tym bycie blisko kernela jest takie sexy.

A jak potrzebuję coś napisać, żeby działało, to używam pythona. Siadam, piszę, działa. Język dla hackerów.

Tutaj jestem bezpieczny. Tutaj wszystko jest proste. Mam swoje segfaulty, coredumpy, epolle, poldki i takie tam inne. Tutaj nie śnią mi się po nocach obiekty w javie. I sama java ze swoim nieskończonym stopniem złożoności.

Ten moment w życiu, kiedy to już nie ja kieruję moimi zainteresowaniami, tylko one mną...

Kurwa, jak ja tego nienawidzę.

Aaa, w dupie to mam. Nauczę się w końcu porządnie C++, przynajmniej nie będzie, że nie znam żadnego obiektowego, a w razie czego może jakieś kde zakoduję. Do tego wezmę się w końcu kiedyś za lepsze poznanie pythona, zwłaszcza tych wszystkich nowych ficzerów z ostatnich kilku wersji. Genericsy, dekoratory, stare typy obiektów, nowe typy obiektów. Co to w ogóle jest.

Jedyna nadzieja z zawodowego punktu widzenia, to jakoś się wkręcić w ten cały opensourcowy światek (jest w polsce coś takiego w ogóle; komercyjne znaczy się?). Albo przynajmniej pracować w, hmm, 'zwinnych' linuksianych firmach (a to jest?). Niech ów światek rośnie na zdrowie, im większy urośnie, tym mniejsza szansa, że wyląduję pod mostem. (A jak chcecie znać moje zdanie, to bardzo bym polecał wkręcenie się w wine'a. Mam niejasne wrażenie, że umiejętność odpalenia dowolnego windzianego programu pod linuksem jest/będzie w najbliższym czasie sporo warta. Zwłaszcza przy obecnym wejściu visty, gdzie firmy mogą stwierdzić, że lepiej im zapłacić komuś, żeby im legacy oprogramowanie odpalił na linuksie i na to zmigrować. Już nie wspominając o skillu z reversingu windzianych programów, który się przy tej okazji zdobywa, a który też ma swoją wartość.)

Obiekty, struktury, relacje, lalalalalalala

29 I 2007, 15:36:04

Dzisiaj miałem egzamin z inżynierii oprogramowania (UML do obiektówki i klasyczna analiza strukturalna jak za papy Yourdona). A ponieważ właściwie nie umiem ani jednego, ani drugiego, to nie zaliczyłem.

Próbując cośtam wymodzić w trakcie, dotarła do mnie jedna rzecz -- ja tak naprawdę nie rozumiem czym się różni model obiektowy, relacyjny i strukturalny (nie, nie chodzi mi o to, że nie wiem co to obiekt, albo jak zrobić kilka tabelek w bazie danych; chodzi mi o dogłębne zrozumienie fundamentalnych różnic w tych modelach i jak to się ma do projektowania przy ich pomocy). Też moja wina, bo mogłem to zauważyć wcześniej, gdybym się był bardziej do projektu przykładał, ale faktem jest, że nie było takiego mądrego dwa semestry wstecz, żeby nam to spróbował jakoś konkretnie wytłumaczyć.

Prawdę mówiąc ja nadal nie wiem jak powinienem się uczyć (w jaki konkretnie sposób, w jakiej kolejności, etc.) i mnie to drażni, ale spróbuję rzucić jak najlepszym przybliżeniem na to, co mi w tym momencie potrzeba.

1. Książka/tekst tłumaczące w jak najlepszy sposób te trzy (no, dwa, ale powiedzmy, że model strukturalny ze względu na tradycję) obecnie najważniejsze modele. Nie wiem jak to najlepiej zrobić, domyślam się, że poprzez krótką charakterystykę obu, która przechodzi w opis najbardziej reprezentacyjnych różnic w nich na konkretnych przykładach. Tzn. chcę zamodelować rzecz A i teraz gdzie są najważniejsze różnice dla tych trzech modeli oraz jak konkretnie moje malunki (uml, dfd, czy co tam) by się przekładały na fizyczny kod/zawartość bazy danych. To wszystko okraszone konkretnym opisaniem co, gdzie i w jaki sposób jest używane (tzn. strukturalny tu, patrzaj sql, modeluje się to tym, sialalalala).

2. Konkretne kursy użycia tych trzech modeli (kurs umla, kurs strukturalnej i zapewne kurs projektowania relacyjnych do kupy od razu z sql reference). Z konkretnymi odniesieniami do użycia i jak największym nastawieniem na hands-on, ale bez omijania co ważniejszych części teoretycznych. Jak byłem mały, to potrafiłem czytać (i czytałem) te knigi ala Knuth, które się zazwyczaj używa jako podręczniki na studiach, natomiast teraz mi wybitnie szkoda czasu, bo 99,9% treści tam zawartej i tak nie zapamiętam, a tylko stracę w cholerę czasu (kilka miesięcy temu próbowałem przeczytać analizę strukturalną Yourdona; bleee). Potrzebuję minimum konkretnie sprezentowanej wiedzy, która pozwoli mi jak najszybciej sobie w głowie stworzyć model... modelu. Żebym mógł modelować. A modelując będę sobie już sam łatał luki w wiedzy i dorabiał własne spostrzeżenia.

Najgorsze u mnie jest to, że ja myślę kodem. Mam problem z myśleniem o reprezentacji danych w formie strukturalnej, bo mam od razu w mózgu sprzeciw, że przecież nie jestem tego w stanie wstawić do mojego mysqla. Albo mam problem z modelowaniem relacji w umlu, bo ja tak naprawdę nie znam języków obiektowych (obiektowość pythona i c++ rozumiem tylko w stopniu podstawowym, czyli wiecie, obiekty, dziedziczenie i takie tam). Dlatego też bardzo ważne w tym wszystkim byłoby, żeby opisawszy jakiś związek w danym modelu, od razu było pokazane jak to wygląda zaimplementowane w jakimś konkretnym języku.

(Co do sqla, znaczy relacyjnych baz, to chyba wiem te najważniejsze rzeczy. Ale nie jestem tego pewien. I mnie to wybitnie drażni, bo o ile nie jest zbrodnią nie umieć czegoś zrobić, o tyle tragiczne jest nie wiedzieć nawet o istnieniu czegoś. Później kończy się takimi potworkami, jakie wyprodukowałem w pracy dwa lata temu, jak jeszcze nie umiałem nic poza prostym selectem. Mam jakąś niewielką książkę o bazach z WNT, będzie trza przejrzeć, mam nadzieję, że znajdę co trzeba przynajmniej z sqla.)