Java Centered Design

30 komentarzy

Tło

Próbując zdobyć papierek inżyniera i tę odrobinę sensownej wiedzy, którą można znaleźć na studiach z informatyki (Politechnika Wrocławska) dotarłem do semestru piątego i kursu Projektowanie Oprogramowania. Jest to kurs z tych ciekawszych, bo w tym semestrze mam jeszcze np. Technologie Przetwarzania Mediów Cyfrowych (montowaliśmy reklamę radiową oraz słuchowisko, później robiliśmy retusz zdjęcia, a teraz fotomontaż - tak WTF?!), czy Informatyczne Systemy Sterowania (kurs dość zaawansowany, a więc zupełne przeciwieństwo TPMC, z tym, że wiedza przyda się może kilku(nastu) osobom).

Dwa miesiące pisania sztucznej specyfikacji i rysowania diagramików UML utwierdziło mnie jeszcze bardziej w przekonaniu, że nigdy w przyszłości nie będę chciał tego robić. Nasza specyfikacja na tym etapie obejmuje jedynie malutki wycinek systemu, a poświęciliśmy na jej przygotowanie kilka dni roboczych. I nie – nie projektujemy systemu bankowego, a uproszczoną księgarnię internetową. I tak naprawdę skupiamy się tylko na procesie składania zamówienia.

W tej chwili dotarliśmy do etapu kiedy już trzeba ogarnąć architekturę aplikacji. Co prawda większość studentów zaprojektuje zapewne jakiś tam sobie diagram komponentów, sekwencji i co tam jeszcze obejmuje ten etap kursu, kompletnie nie interesując się jak to będzie współgrało z frameworkiem/technologią którą później zastosują (narzucona z góry Java). Ja jednak tak nie potrafię. Zacząłem więc szukać Java'owego frameworka do aplikacji webowych, który później zastosujemy. I w tym momencie szczęka mi opadła.

Każda potwora...

Na początku semestru, kiedy dowiedziałem się, że będziemy projektować, a później w małej części kodować, aplikację webową poszedłem do prowadzącego spytać się czy jest z góry narzucony język. Dowiedziałem, się że prowadzący proponuje Javę, ale że nie – jeśli ktoś z nas chce coś innego, to może spróbować. Choć prowadzący nie polecał takich prób (szczególnie jak usłyszał o PHP :). Wtedy odpowiedziałem, że w trakcie semestru się zastanowię, bo dobrze znam symfony i byłoby mi łatwiej, a nie słyszałem o żadnym sensownym i otwartym rozwiązaniu w Javie. Prowadzący odpowiedział, że jest sporo dobrych i otwartych frameworków. Zrobiło mi się wtedy głupio, bo moja wypowiedź nie była poparta żadnymi głębszymi doświadczeniami. Po prostu – taki stereotyp Javy.

W trakcie semestru uświadomiłem sobie, że ten rodzaj betonowej specyfikacji nijak nie pasuje do symfony, ani Railsów, czy Django, które w większym/mniejszym stopniu znam. Że jestem zbyt słaby w UMLu, aby przenieść magię tego frameworka, do tych wszystkich diagramów, które musimy stworzyć. Postanowiłem więc się nie wyłamywać z tłumu i jak wszyscy pozostać przy Javie.

Wczoraj zacząłem research w poszukiwaniu odpowiedniego frameworka. Przejrzałem wiele stron na wiki i nieliczne porównania. Stwierdziłem, że najlepiej prezentuje się Spring 3. Został nieźle oceniony w porównaniu, a do tego w Google'ach potrafiłem znaleźć coś co przypominało stronę nowoczesnego projektu, a nie przedpotopowej, zapomnianej kobyły.

Przyzwyczajony jestem do świetnej dokumentacji typu "Get started" (sf, railsy, django), którą można zlokalizować na stronie domowej projektu w minutę, a która trzyma mnie za rączkę, aż do momentu kiedy jestem w stanie korzystać ze słabej (w przypadku symfony – bardzo słabej) dokumentacji API i tutorialów związanych z bardziej zaawansowanymi rozwiązaniami.

Tego samego szukałem na stronie Springa. Po 5 minutach wiedziałem już, że tak prosto nie będzie. Autorzy frameworka stworzyli 800 stronicowy podręcznik, w którym jest pewnie opisane wszystko, o czym 100 jego twórców myślało przez ostatnie dwa lata. Stworzyli też dziesiątki stron, w których chwalą się jakie to fajne rozwiązania wprowadzili do swojego dziecka. Nie znalazłem na stronie domowej projektu jednak nic dotyczącego Springa 3 (ta wersja ma już ponad rok) co pomogłoby mi go uruchomić.

Postanowiłem jednak się nie poddawać i rozpocząłem przeszukiwanie nie tylko strony domowej, ale całego internetu. W ciągu dwóch godzin trafiłem w kilka miejsc, jednak... sami popatrzcie – tu, tu, tu, tu (nawet nieźle), tu, czy tu. Jednym słowem wielki śmietnik. Postanowiłem spróbować z innym frameworkiem.

Kolejny, któremu chciałem się przyjrzeć, to JavaServer Faces. Tutaj było jeszcze gorzej. W Google'ach nie potrafiłem znaleźć nawet czegoś co można by było nazwać "jednolitą stroną projektu". Nie wiem jaka jest geneza (i już mnie to nie interesuje) tego frameworka, ale moim zdaniem to wręcz niepoważne. Polecam obejrzeć przykładowe strony, które są w pierwszej 10tce w Google'ach.

Po drodze był też JBoss. Strona na którą trafiłem wyglądała jak strona korporacji, więc po 5 minutach dałem sobie spokój. Żal coś pisać w tym temacie.

Pod lupę wziąłem też Strutsa. Najpierw się załamałem, bo strona projektu przypomina typową Apache'ową. Trzeba jednak być twardym. Documantation -> Get started -> Tutorials -> Getting Started i jest! Coś znalazłem. Nie jest to co prawda poziom znanych mi frameworków, ale daje radę. Jednak ścieżka jaką musiałem przejść żeby trafić do interesującej mnie strony bawi mnie dalej :).

Na koniec wróciłem zrezygnowany jeszcze raz do Springa i znalazłem cykl artykułów dla początkujących oraz Spring Roo. I choć na początku Spring mnie załamał, to w tej chwili wraz ze Strutsem i jedną sensowną książką do JSF jest moim ostatnim punktem zaczepienia w tym temacie.

... znajdzie swojego adoratora

Wspomniałem na początku, że zrobiło mi się głupio kiedy, nie mając podstaw, powiedziałem, że nie znam żadnego sensownego javowego frameworka. Zasiadając do poszukiwań szczerze wierzyłem w to, że skoro są miłośnicy Javy, wśród których są przecież świetni programiści, to musi istnieć jakaś sensowny projekt związany z sensownym frameworkiem.

Teraz już wiem – ze spokojem mogę mówić, że nie znam sensownego projektu. Nie mogę za to nic powiedzieć o samych frameworkach, bo aby je ocenić należy ich użyć. Możliwe, że każdy z frameworków, któremu się przyglądałem jest świetny. Ich autorzy zapomnieli jednak, że nie na kodzie i technicznym manualu Świat się kończy.

Zawsze drażnili mnie (a może bawili) programiści twierdzący, że taki stan projektów im odpowiada. To moja wina, że nie potrafię znaleźć interesujących mnie informacji. Moja wina, że nie zamierzam przeczytać 400 stron w książce aby choć w najprostszym zakresie potrafić użyć narzędzia. Moja wina, że za szybko się zniechęcam – generalnie jestem słabym programistą i nie umiem szukać oraz czytać ze zrozumieniem.

Dlatego tak bardzo zainteresowała mnie idea UCD – projektowania zorientowanego na użytkownika. Choć swoją popularność zdobyła głównie w związku z projektowaniem interfejsów, bądź ogólniej – interakcji człowieka z komputerem, to lubię ją aplikować do każdej sytuacji kiedy istnieje jakiś produkt i jego odbiorcy. Do nikomu niepotrzebnych usług, które według ich twórców są rewolucją, przedmiotów codziennego użytku, które przyprawiają nas o ataki szału, czy... no właśnie – nie przychodzi mi żaden produkt, przy opracowywaniu którego programiści nie mieliby swojego destruktywnego udziału.

Programiści i innego rodzaju osobniki, które pojęły sposób działania komputera (sieciowcy, administratorzy) to najbardziej zakute łby na naszej planecie. Wyłączam tutaj polityków, których ciężko ocenić, bo nigdy nie wiadomo kiedy kłamią. To natura informatyki, ze wszystkich dziedzin, najdalej odbiegła od natury człowieka. Dlatego osoby trudniące się pojmowaniem tej nauki są najbardziej aspołeczne. Nie mam tu na myśli sposobu ubierania się (bądź nie), zachowywania, czy poruszanych tematów rozmów. Mam na myśli sposób myślenia i wnioskowania.

Java Centered Design

Wracając do Javy od której to zacząłem. Jest to najbardziej odczłowieczony język jaki dany mi było poznać. Jego społeczność nie wywołuje we mnie żadnych uczuć. Nawet nie wiem czy istnieje. Nie znam żadnego programisty Javy, który by ten język lubił. Odnoszę wrażenie, że w ogóle wszyscy z niego korzystający zamknęli się w swoich bankowych, księgowych i ubezpieczeniowych gettach. Zaraz, zaraz. Przecież to właśnie te najbardziej nieprzyjazne człowiekowi systemy...

Oczywiście Java wpłynęła też na frameworki, które w niej powstały. Tak jak pisałem, znalazłem wiele artykułów napisanych przez autorów Springa ukazujących jakie wspaniałe wzorce projektowe zastosowali, jakimi dobrymi są programistami, jaki wspaniały techniczny podręcznik napisali. Zapomnieli jednak co jest wyznacznikiem jakości ich pracy.

Jest takie powiedzenie w piłce nożnej, że za podanie odpowiada podający, a nie jego odbiorca. Tak samo jest w w przypadku dokumentacji frameworków. To nie ja jestem głupi jeśli nie potrafię znaleźć interesujących mnie informacji i nie rozumiem tego co napisaliście. To Wasza wina. Ja oczywiście mogę szybciej pobiec do piłki i może jakimś cudem zdążę, ale tak naprawdę to wyście skopali swoją robotę tak beznadziejnie podając.

Dzisiejsza walka jeszcze głębiej utwierdziła mnie w przekonaniu, że Java jest smutna, zakuta i nieprzyjazna użytkownikowi końcowemu. Będę się dalej trzymał jak najbliżej frontendowych technologii webowych, aby mieć jak najbliżej do użytkownika końcowego. Dzięki temu mam nadzieję, że nigdy nie zapomnę dla kogo tak naprawdę co jest wyznacznikiem jakości mojej pracy. Zadowolenie użytkownika końcowego.

Google mnie zbanowało?

23 komentarze

Kilka tygodniu temu zauważyłem, że drastycznie spadła mi liczba odwiedzin na blogu. Jako że nic nie pisałem przez ostatnie pół roku, przez długi czas utrzymywała mi się w miarę stała średnia liczba odwiedzających miesięcznie i były to w znacznej mierze wejścia z wyszukiwarek. W październiku zanotowałem spadek do 200 wejść w ciągu miesiąca. Zmartwiony tym faktem zacząłem się przyglądać o co chodzi. I trafiłem na taki wykres:

Spadek wejść z wyszukiwarek

Przy czym wszystkie wejścia w ostatnim okresie, jeśli się nie mylę, pochodzą z innych nich Google wyszukiwarek, albo z wyszukiwarki obrazków Google'a.

Zacząłem więc przeszukiwać Google'a różnymi frazami, pod którymi zawsze dało się mnie znaleźć. Nie znalazłem nic pod na przykład: "javascript klasy", "conky ikony", czy "reinmar", a są to frazy z których miałem sporo wejść. Nie ma mnie nawet pod "blog koszulinski". Jednym słowem pełny ban.

Rozpocząłem więc edukację, ponieważ nigdy nie interesowałem się głębiej SEO (nie miałem nawet keywordsów ustawionych na blogu). Sprawdziłem swoją domenę narzędziami z cyklu "Google Ban Checker" i dowiedziałem się, że nie wygląda to na bana. Narzędzia te patrzą na wyniki dla frazy "site:blog.koszulinski.pl", dla której rzeczywiście coś się pokazuje. Pytanie tylko na ile można tym narzędziom ufać.

Sprawdziłem też, czy nie linkuję w jakieś kiepskie miejsca. Znalazłem do tego narzędzie Bad Neighborhood, które nie wykazało nic szczególnego. Podobne wyniki do mojego uzyskują inne strony.

Uruchomiłem Google Webmaster Tools. Dodałem sitemapę, sprawdziłem czy się indeksuję, czy są jakieś błędy, jakie słowa kluczowe mi znaleźli i kto do mnie linkuje. W sumie nie znalazłem nic szczególnego, poza tym, że mam ponad 1700 linków z domeny wroc.pl (drugi jest jogger.pl z zaledwie 700 linkami) i nie mam pojęcia skąd one mogą pochodzić. Nie wiem też jak to sprawdzić. Gdyby ktoś znał jakieś narzędzie/sposób niech da znać.

Na koniec spytałem się na forum Google'a, a tam usłyszałem od pracownika Google'a, że: odniosłem wrażenie że masz dosyć sporo cytatów na różne tematy. Nie wiem czy podpowiedziało to jakieś narzędzie (jeśli tak to kiepsko), czy to obserwacja z ręcznego przeklikania się po moim blogu. Tak, czy siak - cytatów u mnie kilka jest i jeśli za to bana dostałem, to mają tragiczny algorytm. Prewencyjnie jednak pokasuję wpisy gdzie sporo cytowałem (przy czym będą to głównie jakieś stare rzeczy).

Podsumowanie

Nie wiem do końca co mnie teraz czeka. Trochę jeszcze poczekam, ale jeśli się nic nie zmieni, to będę zmuszony się przenieść. Nie wiem tylko czy zmienić wtedy też domenę. Czy tylko serwer. Szkoda będzie odchodzić z Joggera po tylu latach. A wygląda na to, że to już mój piąty rok tutaj :).

Drogowców jajo z Ronda

7 komentarzy

Napisałem przed chwilą maila do wrocławskiej Gazety Wyborczej. Możliwe, że list opublikują (do tej pory za każdym razem kiedy pisałem tak było), jednak wyszło mi całkiem ładnie, więc zamieszczam też na blogu.

Edit: W związku z moim filtrowaniem mnie przez Google'a postanowiłem nie cytować siebie samego, a zamieścić linki. Mój list pojawił się ostatecznie na:

Dlaczego iPhone też już ssie?

31 komentarzy

Ślimak Opublikowane na licencji CC przez Roberta Thomsona.

Tytułem tym chciałem nawiązać do ubiegłotygodniowego wpisu Dlaczego frameworki CSS ssą?. Niech tradycją się stanie, że kiedy używam słowa "ssać" to chcę coś nieobiektywnie pojechać. Piszę "nieobiektywnie", żeby mnie ktoś znowu nie próbował przekonać, że wpis ten w mych oczach miał pretendować do bycia obiektywnym. Nie — to jest blog i publikuję tu moje odczucia, a nie badania naukowe (które notabene, po wpadce klimatologów, wiemy już jak są prowadzone).

Wpis ten zacząłem pisać wczoraj wieczorem, jeszcze zanim miałem okazję przeżyć dzisiejsze przygody (które wymieniam na liście). Tak więc czara goryczy przelała się już wcześniej, a to co stało się dzisiaj tylko mnie przekonało, że bardzo chcę opublikować ten tekst.

Żeby było jasne — iPhone (wersja 3G) jest oryginalny, zakupiony w Erze półtora roku temu, nigdy nie jailbrake'owany, nigdy nie przytrafiło mu się też nic strasznego. Windows do którego go podłączam włączany jest tylko w celu synchronizacji telefonu z iTunesem, bądź odpalenia kilku gier (kupionych w sklepie, nie ściąganych). Można więc przyjąć, że jest w miarę czysty.

Co przydarzyło mi się dzisiaj:

  • dwukrotnie miałem już następującą sytuację — iPhone staje się trochę niestabilny (coś tam pada, coś tam laguje), postanawiam więc go wyłączyć i włączyć — wiadomo, że czasami dobrze jest odśmiecić pamięć. Wyłączam iPhone'a, włączam... nie — nie włączam — słodki ekran z jabłuszkiem zawisa na czas nieskończony (ostatnio jak zawisł mi przed seansem w kinie, to po seansie nadal się włączał). Wtedy trzeba pokombinować jakoś żeby go na twardo zresetować, ale stop — nie da się do cholery wyciągnąć baterii. Wciskam więc wszystkie jego dwa klawisze i za którymś razem (żeby nie było zbyt prosto — kilka razy mogę dusić te przyciski po kilka minut i nie ma reakcji) udaje mi się go wyłączyć. Ponowna próba włączenia kończy się sukcesem, o ile sukcesem można nazwać stan, w którym przestają działać wszystkie doinstalowane aplikacje i wymagana jest synchronizacja z iTunesem,
  • tak jak pisałem — sytuacja ta przytrafiła mi się dwukrotnie. Za pierwszym razem udało mi się przy pomocy iTunesa przywrócić słuchawkę do normalnego stanu. Dzisiaj jednak czterokrotnie już zawiesił mi się iTunes, wgrywanie nowego softu na telefon zostało przerwane, później synchronizacja, później nie udało mi się w 100% przywrócić iPhone'a z kopii zapasowej (to po kiego grzyba ta urocza, trwająca wieki synchronizacja przy każdym podłączeniu do komputera?). W skrócie — telefon po kilku godzinach działa, ale nie mogę wgrać na niego muzyki, bo po 3 minutach od podłączenia i rozpoczęcia synchronizacji iTunes nagle stwierdza, że jednak dzisiaj nie ma na nią siły i bez jakiegokolwiek komunikatu kończy (nie powiadamiając o tym iPhone'a) synchronizację,

To wszystko zabolało mnie jednak w głównej mierze dzisiaj. Poprzednia akcja ze zwiechą podczas włączania telefonu zakończyła się udaną synchronizacją i przywróceniem akceptowalnego stanu. Tak więc co natchnęło mnie wczoraj do rozpoczęcia pisania tego wpisu?

  • ten sprzęt jest niemożliwie, czasami aż do bólu groteskowo wolny,
  • na początek, przez pierwszy rok (to tak jak w małżeństwie ;), było naprawdę spoko — nie miałem telefonowi nic do zarzucenia. Jednak po każdym upgradzie softu system staje się wolniejszy. Najgorzej było kiedy dziadek Dżobs postanowił wypuścić iPhone'a 3GS — wtedy odczułem bardzo duży spadek wydajności. Jeśli dziadunio myśli, że nakłoni mnie tym do kupienia jego młodszego dziecka, to grubo się myli — nie cierpię takiego cwaniactwa,
  • wyciszenie iPhone'a czasami trwa ponad 4s — mam na myśli czas od zmiany ustawienia suwaka do jakiejkolwiek reakcji telefonu (wibracja, ekran),
  • odblokowanie iPhone'a (takie codzienne — z trybu uśpienia) czasami trwa ponad 10s — najpierw trzeba poczekać aż pojawi się suwak, później aż zareaguje na ruch palca, później pojawia się klawiatura, która też potrzebuje czasu żeby sobie przypomnieć, że jest klikalna, a na koniec ikonki, które muszą sobie wyskoczyć z wszystkich rogów ekranu, zamiast po ludzku się pokazać,
  • włączenie smsów, książki kontaktowej, ostatnich telefonów, czy listy alarmów... nawet nie chce mi się myśleć ile to potrafi zabrać czasu, ale i tak wielcy jabłkowi programiści "zoptymalizowali" te programy, bo było gorzej,
  • iPhone lubi sobie co jakiś czas (tak raz na miesiąc) zgubić sieć — czasem podczas rozmowy, czasem podczas stanu uśpienia,
  • czasem ten stan zgubienia sieci zamienia się w stan niemożliwości dodzwonienia się do mnie i zadzwonienia ode mnie (operator się buntuje) przez dłuższy czas,
  • paczka z iTunesem ma 90MB. Co oni tam za przeproszeniem ładują? Zestaw animowanych emotek w formacie 128px na 128px na każdą porę dnia i nocy?,
  • Synchronizacja trwa pół godziny (fakt faktem, że robię ją rzadko),
  • iTunes jest niestabilny, nieużyteczny, ekstremalnie powolny, zasobożerny (wolę słuchać muzyki z Youtube'a — mniej ciągnie z proca) i nie rozumie oggów. Na dodatek zamiast napisać, że coś mu się nie podoba, że czegoś nie może znaleźć, czy że ma zły dzień, to milczy,

Wszystko to co mnie irytuje w tym telefonie nie zmienia jednak jednego — Apple ma niesamowitych projektantów interfejsów. Kiedy wreszcie pozbędę się tego bezużytecznego narzędzia, to nie sądzę żebym w jakimkolwiek innym systemie czuł się tak dobrze. Szkoda.

Powstrzymałem się w tym tekście od użycia naprawdę wielu brzydkich wyrazów, więc na koniec tylko podsumuję całą sytuację — kurwa, nigdy więcej sprzętu, którego nazwa zaczyna się od "ip".

Ciekawy jestem czy tylko ja mam takie problemy z tym telefonem. Przeszło mi rzecz jasna przez myśl, że słuchawka może być uszkodzona. Wolę jednak wierzyć, że pozostali też mają problemy, ale boją się to przyznać, bo przecież tak kiedyś zachwalali iPhone'a ;). Szkoda tylko, że kiedyś to był naprawdę fajny sprzęt.

Wybiła 15stka

17 komentarzy

Od teraz KK pozwala mi się żenić bez zgody rodziców, wpuszczą mnie wreszcie do niektórych pubów i w ogóle :P Teraz dopiero czuję się dorosły. No i w końcu to oczko — więc to musi być szczęśliwy rok.

O tym jak wydłużyłem sobie dobę (cz. 2)

1 komentarz

Minął już zdecydowanie ponad miesiąc od kiedy "wydłużyłem sobie dobę", pora więc na jakieś podsumowanie.

Pierwsza rzecz o której wypada mi wspomnieć, to to, że udało mi się utrzymać zmianę w swoim dobowym grafiku. Poniedziałek, wtorek i czasami środa stawiam się w pracy na 7:00-7:15, co uważam za swój spory sukces. Szczególnie teraz, w tym burym okresie, daje mi to kopa, bo więcej czasu działam przy świetle dziennym. Muszę przyznać, że nie było dla mnie w święta nic gorszego, niż wstać o 14stej i do końca dnia nic nie robić, bo "przecież już wieczór, ciemno i w ogóle". No ale właśnie - przechodzimy do porażki.

Porażką jest absolutny brak zmian w pozostałych dniach tygodnia i dniach świątecznych. Ciągle wstaję pomiędzy 9tą - 12stą, ekstremalnie 14stą. Spowodowane jest to tym, że chodzę późno spać, bo godziny 0:00 - 2:00 to dla mnie wciąż najproduktywniejszy okres. Ucisza się komunikator, ucisza się dom, mam święty spokój i mogę spokojnie skończyć to co danego dnia zacząłem robić.

Plan na najbliższy miesiąc, który akurat będzie miesiącem kolokwiów, jest taki aby trochę ograniczyć czas kiedy mam włączony komunikator. Blip, mimo swoich niewątpliwych zalet, ma jednak też poważną wadę - rozprasza. Zobaczymy jak zadziała metoda nie wprost :).

PS. wziąłem się ostatnio na poważnie, za projekt, który wisiałem koledze. Oznacza to, że pisać będę raczej rzadko. Trzeba zakończyć kiedyś tę otwartą pętlę :)

O tym jak wydłużyłem sobie dobę

7 komentarzy

Tym razem będzie krótko i o życiu.

Do niedawna mój przykładowy dzień wyglądał tak:

  1. 8:30-9:00 pobudka
  2. 10:00 pojawiam się w pracy (albo zasiadam do niej w domu)
  3. 16:00-17:00 kończę robotę (tak - to nie 8h; pracuję na 1/2 etatu, a w pracy jestem 3dni/tyg.)
  4. 18:00 po godzinnym staniu w korkach jestem w domu
  5. 19:00 zjadłem, odpocząłem, mogę zabrać się do pracy i biegania
  6. 2:00 damn - pora iść spać - nie za dużo tego czasu miałem

Dało się tak żyć w lecie. Teraz niestety prawie całą moją dobę było ciemno za oknem, co zaczęło dodatkowo działać depresyjnie. Do tego stałem sobie codziennie w pięknych koreczkach tracąc dodatkowe godziny doby i denerwując się, co działa demotywująco.

Zmiana

Całkiem przez przypadek założyłem się z siostrą, że wyjdę z domu przed nią (czyli przed ok. 8:00). Budziki nastawiłem już od 6:20, bo potrzebuję minimum pięciu żeby się obudzić. Fartem - złapał mnie już pierwszy i... pierwszy raz od... uh - roku? dwóch? wyszedłem z domu o 6:50. I mój dzień wyglądał tak:

  1. 7:10 w pracy - korków jeszcze nie było
  2. 15:00 wychodzę - zrobiłem całe 8h, więc jeden z 3 dni roboczych będę miał luźny. Dodatkowo widziałem wschód słońca, skończyłem jak ciągle było jasno na dworze
  3. 15:20 w domu - koreczków nie było, wróciłem ekspresowo
  4. 16:20 kończę bieganie - wreszcie udało mi się pobiegać przy świetle dziennym
  5. 17:20 zabieram się do pracy, nauki, itd.
  6. 1:00 już zasypiam, żeby następnego dnia powtórzyć historię

I tak żyłem przez kilka dni. Efekt niesamowity. Zrobiłem rzeczy, które wcześniej zajęłyby mi kilka tygodni. Dodatkowo psychika lepiej znosi zimę, bo nie przesypiam połowy dnia. No i w jeden z 3 dni pracuję tylko 4h.

Co dalej?

Co prawda dzisiaj (co widać po godzinie) idę spać późno, ale to wypadek przy pracy. Zamierzam i tak wstać o 7:00, bo najważniejsze, to wyrobić sobie nawyk. Dobranoc i życzcie mi powodzenia :)