niedziela, czerwca 28, 2015

Architektura

Od półtora roku pracuję w "prawdziwym Agile".
Działa to całkiem nieźle (nawet w sytuacji gdy jeden z kluczowych ludzi w procesie nie robił swojej roboty to team był w stanie robić dobry produkt), ale jak na razie były to małe aplikacje, albo architektura była już wcześniej ustalona.
Dlatego zastanawiam się jak powstaje architektura w Agile?

Kiedy powinna zapadać decyzja co do tego, że będziemy stosowali microservice'y, albo monolit?
Albo jak powstaje architektura w takich produktach jak Chrome?

Na "czuja" wydaje mi się, że to jest gdzieś na początku projektu, a później team porusza się tylko w obszarze bliskiego sąsiedztwa od tej nadanej architektury.
Jeśli np. uzna się, że używamy microservice'ów to później team tylko ogranicza się do dzielenia funkcjonalności na microservice'y.
Trudno jest ewolucyjnie dojść do przejścia na monolit (chociaż z microservice'ów do monolitu chyba dużo łatwiej przejść niż w drugą stronę).
W takim Chrome'ie znów decyzja dotycząca tego, że każda tabka (albo zestaw tabek ;-)) ma swój oddzielny proces zapadła na samym początku. W Firefoksie mieli straszne problemy z przejściem na taką architekturę i w końcu odpuścili.

Czyli co? W Agile najważniejsze decyzje architektoniczne podejmuje się na początku projektu?
To się jednak kłóci z całą ideologią "emergentnej" architektury.

Trudno ewoluować architekturę, w biologii się da bo każdy organizm (bardziej złożony) przechodzi przez embriogenezę gdy jest budowany. Produkt w IT istnieje, kod istnieje, bazy istnieją, nie są tworzone przy każdej iteracji w procesie embriogenezy.

Może więc decyzja o podejściu microservice'owym to nie jest decyzja architektoniczna? Może to jest "metaarchitektura"?
Może wybór podejścia microservice'owego odbywa się na początku i jest wyborem, który pozwala bardziej agilowo podchodzić do problemu?

Ktoś ma jakieś pomysły? Albo lektury?
A najlepiej doświadczenie? ;-)


Podobne postybeta
SCRUM i ogólnie Agile to często taka zakamuflowana forma premature optimization
A może niepotrzebnie aż tyle śpimy?
Dziwna sprawa
Jak to rzeczy proste okazują się trudnymi ;-)
"os.arch", "os.name", "sun.arch.data.model" co to jest i co pokazuje na jakiej maszynie i OSie? ;-)

sobota, czerwca 27, 2015

Zarodek to nie dziecko

Posłanka Marzena Wróbel w trakcie debaty o ustawie o in vitro powiedziała:

Zarodek to nie jest rzecz! To istota ludzka, dziecko.

Podobno niektórzy też tak myślą, stąd warto spojrzeć na rzecz od strony faktów.

To jest zarodek (w 3 dniu po zapłodnieniu):


To jest ludzkie dziecko:


Istnieje kilka wyraźnych różnic.

  • Dziecko jest np. ~2500 raza większe od zarodka.
  • Ma układ nerwowy, co oznacza, że czuje.
  • Ma mózg, co oznacza że przetwarza napływające ze świata, jego ciała i samego mózgu, sygnały.
  • Reaguje zmianą swoich stanów wewnętrznych na to co się w koło niego dzieje.
  • Jest gotowe do samodzielnego życia. Trzeba o nie dbać, ale choć jego mózg będzie jeszcze rósł i będzie się uczyło całej masy rzeczy, to już ma wszystko co jest mu potrzebne do samodzielnego życia.
  • No i jest świadome, jeszcze nie do końca, ale jednak.

Zarodek w odróżnieniu do dziecka nie jest zdolny do przetwarzania informacji bardziej złożonych niż proste sygnały chemiczne, ładunek elektryczny na błonach komórkowych czy naprężenia mechaniczne.
Do tego to przetwarzanie jest dość proste i sprowadza się głównie do tego, że na skutek naprężeń albo podobnych impulsów pewne fragmenty DNA są lepiej eksponowane "na zewnątrz" przez co komórka może zacząć produkować jakieś biało lub coś podobnego.

Zarodek nie jest dzieckiem, nie jest też rzeczą. To taka biologiczna maszyna, która w sprzyjających warunkach* zbuduje** człowieka (albo inny organizm, zależy od tego jaki to zarodek).

Jeśli szukać jakiejś analogii dla zarodka to jest to książka opisująca jak zbudować człowieka (czy inny organizm) i zespół głupich robotów, które literalnie odczytują instrukcje i na ich podstawie budują inne maszyny lub elementy. Nic więcej, nic mniej.
Dopiero gdy ten zarodek komplikuje swoją budowę, to zaczyna się ciekawiej. Wtedy jest zbiorem wielu (takich samych****) książek, z których każdej towarzyszą zespoły głupich robotów, które to książki i roboty budują kolejne swoje kopie, a czasem niektóre z tych kopii się wyłączają, inne zaś różnicują przez to, że na skutek czynników zewnętrznych (względem tej książki i jej robotów) w środku komórki dochodzi od ekspresji innych genów.
Z czasem z placu budowy wyłania się organizm, który w pewnym momencie możemy nazwać np. dzieckiem.
Ale od zarodka do dziecka jest bardzo długa droga i większość zarodków jej nigdy nie przebywa do końca.


* - temperatura, dostępność środków, poprawność*** zapisu genetycznego.
** - w przypadku człowieka i prawie wszystkich ssaków przy wydatnej pomocy organizmu matki.
*** - poprawność tylko w sensie tego, że z użyciem maszynerii komórkowej przy odpowiednich warunkach i zasobach, ta informacja pozwoli na budowanie białek i innych rzeczy.
**** - z dokładnością do możliwych błędów w trakcie kopiowania.


Podobne postybeta
O ziarenkach
Roboty i Android...
In vitro
Iluminacja... czyli "Oświeciło mnie"...
Cybernetyka w działaniu ;-)

środa, czerwca 24, 2015

Zamienił stryjek siekierkę na kijek ;-)

Jakiś czas temu miałem Wkurzające Wydarzenie Drogowe na którego skutek mój pojazd mechaniczny uległ niejeżdżeniu ;-)
Trafił do jakiegoś zakładu mechanicznego w Mysłowicach.
Wynik jest taki, że wygląda lepiej, niby jeździ, ale się boję nim jeździć bo trzaska, piszczy, wypada 5 bieg, a do tego strasznie wyje wiatrak chłodnicy. Ogólny rumor i brak kity (OK, kita jest).

Stąd chyba przyjdzie mi albo wynająć/sprzedać miejsce parkingowe, albo kupić nowe auto....
Jakieś rady? ;-)




Podobne postybeta
Post-samochody ja
Zalety ;-)
Zgryz laptopowy ;-)
3 najlepsi przyjaciele web developera (ale nie tyle front end developera czy UI developera, a developera który pracuje po obu stronach i po stronie klienta i serwera ;-))
Cyniczne ja ;-)

sobota, czerwca 20, 2015

Cyfrowe granice

Cyfrowe granice są dziwne.
Jestem w UK i chciałem sobie obejrzeć ostatnie odcinki Gry o tron i Doliny Krzemowej.
Mam HBO Go wykupione (nawet 2 ;-)).
Gdy wszedłem na stronę zobaczyłem:


Ktoś wchodzący przez jakieś zalukaj czy coś podobnego mógłby jednak serial nadal obejrzeć...
Czyli ktoś kto jak głupi zapłacił nie może obejrzeć, ktoś bez płacenia może ;-)

Wychodzi na to, że jedynym sposobem na obejrzenie HBO Go byłoby np. zestawienie przez całkowity przypadek połączenia VPN z komputerem znajdującym się w Polsce....
Ciekawe czy by to zadziałało...

A odcinki Gry o tron i Doliny Krzemowej były ciekawe ;-) 



Podobne postybeta
Gra o tron - jaskółka? ;-)
Pożerany przez dinozaura
Upał promuje mniejszych?
Jak się poluje na programistów ;-)
Żyje :-)

sobota, czerwca 13, 2015

Quidam - Cirque du Soleil

Byłem dziś na Quidam by Cirque du Soleil w Kraków Arena.

Ładne, chociaż jak ktoś zrobił to samo co ja, czyli kupił bilety w najbliższych sceny sektorach to mam złą wiadomość ;-) nie zobaczycie najlepiej.
Bo niestety w Kraków Arena krzesełka na płycie są niżej niż powinny, a scena jest wyższa niż linia wzroku.
Stąd rzeczy, które dzieją się w powietrzu (a to "wieszanie" się na płachcie materiału, a to latanie na kółkach czy linach, albo skoki akrobatyczne (w sensie wysoko) są świetne inne też, ale trochę brakuje, że nie widać sceny.
Ludzie ze "srebrnych" sektorów mieli chyba lepszy widok, choć mniejszy ;-)

Quidam jest zdecydowanie ciemniejszy i bardziej smutny niż Kooza.

Cirque du Soleil pokazuje jakie człowieki potrafią być sprawne :-)

Podobne postybeta
Lepszy soundtrack dla rzeczywistości ;-)
Programowanie z uśmiechem?
Zróbmy spisek....
Algorytm ;-)
Eventy na żywo nie zawsze są bardziej wow niż w TV ;-)

niedziela, czerwca 07, 2015

Potęga lokalności

Im bardziej zgłębiam meandry różnych złożonych systemów tym bardziej dociera do mnie, że lepsze od wielkich i mądrych planów czy algorytmów są rozwiązania lokalne, które sprowadzają się do bardzo prostych reguł.
Popatrzcie na Internet. Złożony jest z wielu węzłów przez które przepływają pakiety, każdy z tych węzłów przerzuca gdzieś te pakiety tak by dotarły do miejsca przeznaczenia. Wydaje się, że panuje nad tym jakiś algorytm, który decyduje jak coś będzie się przemieszczać w sieci...
W rzeczywistości każdy z węzłów ma wpisaną zwykle na sztywno tablicę routingu, w której ma zapisane by pakiety do takiej podsieci wrzucać w kierunku takiego to, a takiego węzła i tyle. Bardziej zaawansowane jest użycie losowania i rzucanie pakietem w danym kierunku z jakimś prawdopodobieństwem.
Albo takie światła w mieście. Patrząc na skomplikowane układy samochodów możemy zgadywać, że jest tam jakaś ukryta logika, zwykle jednak są tylko proste reguły czasowe.
Mamy takie prawie że mądre rozwiązania, które działają zwykle na bardzo niskim poziomie, ale ich złożenie powoduje wrażenie złożoności.
W naszym mózgu mamy gazyliony neuronów, z których każdy połączony jest z wieloma innymi.
Jednak mimo swojej komplikacji na bardzo niskim poziomie neuron jest bardzo prosty i stosuje bardzo proste metody. Dopiero złożenie takich neuronów robi różnicę.
Wszędzie gdzie widzimy coś skomplikowanego zwykle u podstaw są jakieś naprawdę proste rzeczy, które złożoności nabierają przez złożenie wielu prostych fragmentów.
Skomplikowane tony dobywające się z takich układów to zwykle zdudnienia o wiele prostszych rzeczy, to nałożenie kilku prostych reguł, które wprowadzają coś nowego.

To są niby oczywistości, ale przyznam że zaskakujące.

To też pułapka. Bo często ulegamy przekonaniu, że dałoby się oszukać system i zaplanować coś na wyższym poziomie tak by zwiększyć wydajność. A często może się okazać, że się nie da.
Że wprowadzenie wyższego poziomu wprowadzi większe komplikacje i utrudni reagowanie na problemy. Może nam się wydawać, że przez spojrzenie z góry jesteśmy w stanie dostrzec lepsze rozwiązanie, ale zwykle to spojrzenie z góry jest o wiele kosztowniejsze i okazuje się, że koszt nadzoru jest dużo wyższy niż zysk.
posted from Bloggeroid



Podobne postybeta
Tak tworzy się przyszłość
Sortujemy JTable gdy się da ;-)
Wszyscy jesteśmy małpami
Kontekstowe zapominanie ;-)
O! "Ostatnie Twierdzenie" Arthura C. Clarke'a po polsku :-)

czwartek, czerwca 04, 2015

Był sobie dzik....

Żył sobie, dziczył (bo to jest chyba to co robią dziki gdy nikt nie patrzy), biegał...
I wybiegł na A4...
Pech chciał, że na jego kursie kolizyjnym był samochód...
Przyjechał patrol autostrady, przyjechała policja.
Narobili dyskoteki, co sprawiło, że jeden kierowca zahamował i zatrzymał auto, a drugi nie zdążył zahamować i wjechał w tego zatrzymanego.
Pech chciał, że tym wiechanym byłem ja ;-)
Już straciłem parę godzin na czekanie i opóźnienia. Stracę jeszcze więcej czasu i pieniądze. Najeźdźę się autem zastępczym.
Ale dzik miał gorzej.
Szkoda go.

Z pozytywów później zauważyłem, że tak w okolicy czasowej Wkurzającego Wydarzenia Drogowego dostałem SMSa i mnie to cieszy ;-)
Nie tyle koincendencja tych wydarzeń, a SMS ;-)

Ale dzika szkoda. Co on biedny komu zawinił?

posted from Bloggeroid




Podobne postybeta
GMAIL mi umarł...
"Demon" prędkości
Windows Mobile 6 w Asus A636N
TVP HD - najsmutniejszy program TV
Post-samochody ja

środa, czerwca 03, 2015

Czy Brillo czeka los tagów NFC?

Spojrzałem dziś na swoje tagi NFC i przypomniało mi się ile miałem planów co do ich użycia przed ich przyjazdem.
Później plany dopadła realność i jakoś nigdy nie zacząłem używać tagów NFC "na poważnie".

Miałem jeden w kluczyku do samochodu by włączać muzykę, ale jakoś tak się porobiło, że teraz łatwiej mi włączyć Spotify palcem niż tagiem NFC.
Zastanawiam się czy to samo dopadnie czy nie dopadnie Brillo, czyli najnowszą inkarnacje Android@Home.
Potencjał Brillo i Weave (protokołu nad Brillo, którego używać mogą też urządzania które nie będą działać na Brillo) wydaje się przeogromny.
Można będzie sterować wszystkim w domu przy pomocy komputera czy komórki, wszystko będzie ze wszystkim mogło gadać, wszystko będzie mogło reagować na wszystko...
Tylko czy aplikacje tej technologii za tym podążą?
NFC okazało się być zbyt trudne w użyciu.
Bo trzeba najpierw nagrać na tagu akcje, później trzeba odblokować telefon i nim przesunąć nad tagiem. To trudne. A zyski są wątpliwe.
Pytanie czy dotarcie do interesującej nas żarówki w domu będzie łatwiejsze niż wyłączenie jej ręką? Albo zignorowanie?
A instalacja? Na Chromecast by się pojawił musiałem czekać parę minut, jak to będzie z żarówką? A jak wkręcę kilka to jak rozróżnienie która się podpięła?
Czy po prostu nie okaże się, że mimo potencjału IoT (czyli Intentnet of Things) będzie to wszystko zbyt mało wygodne?

Mam nadzieje, że nie ;-)

posted from Bloggeroid




Podobne postybeta
Google I/O 2015
Google I/O 2015 spojrzenie drugie
Ktoś ma pomysły na użycie tagów NFC?
Android Beam rządzi :-)
W Androidzie przydałyby się nagrywalne intenty :-)

Me hacker - debuger dobry

Google wzięło i zabiło stary dobry sposób logowania zwany ClientLogin.
Nie ma się co dziwić, był nie do końca bezpieczny i od dwóch albo i trzech lat mówili, że go zabiją.
Jednak było to zaskoczenie, bo mi aplikacja przestała działać ;-)
Niby żaden problem, bo wystarczy przejść na logowanie OAuth2 i wszystko będzie śmigać.

Sęk w tym, że biblioteki, których używa ta aplikacja nie wspierają OAuth2. Powstały gdy go jeszcze nie było ;-)

I co robić?

Hackować ;-)

Dobrze wycelowany kawałek debugera, do tego cudowna zdolność IntelliJ do dekompilacji kodu i okazuje się, że po tym jak się samemu już zdobędzie access_token dla usługi to trzeba go tylko jakoś wcisnąć bibliotekom.
Jeszcze chwila i już wiem, że wystarczy zrobić:
myService.setPrivateHeader("Authorization", "Bearer "+accessToken);

Dzięki temu znów mam pod postami na blogu listę podobnych postów ;-)
Chociaż jeszcze nie działa wszystko tak jak powinno, czyli bezobsługowo.


Podobne postybeta
Jak walczyć z gigantycznym kodem w Java'ie, część 1.6 - podłe metody prywatne ;-)
Testowanie boli...
Papa dla ClientLogin
"We skrócie"
Programowanie trudne ;-)

Chromecast

No i w końcu kupiłem ;-)


Przez to w moim TV nie ma już żadnego wolnego portu HDMI (były 3 ;-)).
Dużym plusem jest to, że YT przez Chromecasta potrafi odtwarzać streamy "na żywo".
Mój TV tego nie potrafi.
Także podłączanie urządzenia z Androidem by rzucało swój obraz i dźwięk jest szybsze z Chromecastem niż z Miracast. Chociaż oba mają opóźnienia i do grania lepiej ich jednak nie używać ;-)


Podobne postybeta
Nie, to brak HDCP 2.2, a nie backdrop nie służy Chromecastowi Ultra ;-)
Był sobie dzik....
Stranger Things 2 - super :-)
Instalowanie SkyShowtime na Androidzie i Chromecast with Google TV to mordęga
Nexus 7 i Chromecast... nie wiem czy kupię, ale mi się podobają :-)