piątek, sierpnia 23, 2019

DoR before DoD ;-)

W Agile często jest wielkie podniecenie DoD, czyli Definition of Done, czyli definicją tego co oznacza, że praca w ramach danego "taska" została zrobiona.
Są wielkie wojny czy coś jest Done jak zostało zamknięte przez developera, czy może (w razie jest oddzielna faza QA) gdy testerzy skończyli testy i nic nie znalazły, czy może jak PM/PO/stakeholder oznaczy coś jako Completed.

Ja zawsze jednak byłem orędownikiem tego, że zanim w ogóle zaczniemy rozmawiać o DoD, czyli tym kiedy robota jest gotowa, to najpierw powinniśmy określić DoR, czyli Definition of Ready, czyli coś co mówi kiedy kawałek pracy jest gotowy do tego by nad nim w ogóle zacząć pracować*.

Bo DoR powinno pilnować tego czy jak developer, czy developerka usiądą nad kawałkiem pracy to będą wiedzieć co i dlaczego ma być wynikiem tej pracy, że będą rozumieć problem i będą mogli stwierdzić, że zrobili to co mieli zrobić.

W DoD często są teksty w stylu:

  • kod jest w repo,
  • przechodzą testy,
  • są testy.


I jest tu takie domniemane założenie tego, że w ogóle wiadomo co trzeba zrobić ;-)
Ale jak widziałem już wiele razy (sam zresztą byłem kilka razy winny), że przez przez brak DoR i zły opis w historyjce developer rozwiąże inny problem niż miał rozwiązać.

Sam gdy kodowałem pierwszą rzecz w Motoroli te 15 lat temu to dodałem do naszej aplikacji akceleratory (czyli skróty klawiszowe) do opcji w menu, a nie skróty (czyli coś co pozwala się poruszać po menu (chcemy iść do menu File robimy ALT-F), bez jeszcze wybierania opcji (zresztą z tego co widzę w macOS już skrótów nie ma ;-)) bo cała historyjka była opisana jako "Add accelerators to menu options" ;-)
Z drugiej strony też byłem winien, zdarzyło mi się napisać historyjkę tak, że ja rozumiałem co trzeba zrobić, a ktoś kto ją wziął nie ;-)

Stąd jak już trzeba robić któreś Definition of .... to ja bym zaczął od Definition of Ready i jeszcze bym próbował męczyć zespół o to by się skarżyli na źle opisane historyki ;-)

[tak naprawdę nie miałem natchnienia o czym by napisać, stąd taki temat ;-)]

* - niby w Scrumie cały backlog refinement/grooming ma być od tego, ale bardzo często z tego co widziałem na spotkaniu jest "rozumiecie o co chodzi?" i jest "tak", "jasne" i rzadko pada pytanie "OK, to opiszcie co musi być wynikiem" ;-)


Podobne postybeta
Skróty klawiszowe
Todo - Efekt ciążenia ku dołowi listy ;-)
Jak walczyć z gigantycznym kodem w Java'ie, część 1.5 ;-) - czyli jak je się słonie ;-)
Świat The Three Body... też się nie domyka....
Macbook PRO Retina i OS X po 2* tygodniach

środa, sierpnia 21, 2019

Jak utrudnić życie złodziejom kart ;-)

Może nie będę oryginalny ;-)
Ale mam pomysł jak zabezpieczyć swoją kartę kredytową, albo bankomatową ;-)

Trzeba na niej nakleić specjalnie spreparowany PIN, powinien być napisany ręcznie by była wątpliwość czy dana liczba jest tą o której myślimy ;-)
Wtedy ewentualny złodziej mógłby się skusić na skorzystanie z karty i spróbować PIN, po 3 próbach sam zablokowałby kartę ;-)

Właściwie to powinno wystarczyć nawet naklejenie czytelnie napisanego błędnego PINu, w razie próby użycia w sklepie by nie zadziałało i odrzuciłoby transakcję...
OK, są jeszcze 2 powiecie. Ale wtedy złodziej będzie musiał udać, że mu się karta zablokowała i wyjść, a jest szansa, że obsługa go zapamięta. Jeśli będzie tak miły, że użyje innej karty to sam zostawi ślad ;-)

Inna sprawa, że przez implementację dyrektywy UE, która powinna wejść w życie jakoś w połowie września dotykowo będzie można wydać z naszej karty bez podania PINu góra 300 PLN.


Podobne postybeta
Z pamiętnika developera... Do czego służy programista?
Piesakrew!
Migracja
Bez Facebooku, programik, Galaxy Tab i parking ;-)
Jest coraz gorzej i będzie jeszcze gorzej 

wtorek, sierpnia 20, 2019

Debugowanie sprzętu jest trudne....

Przerasta mnie, nie bójmy się tego stwierdzenia ;-)

Jest tak, zbudowałem sobie kiedyś w oparciu o Raspberry Pi czujnik, który stwierdzał czy jestem przy biurku i czy stoję czy siedzę przy tym biurku.
Działał całkiem fajnie, ale później pojechałem na te prawie pół roku w USA, a jak wróciłem to już nie działał :(
Od tego czasu wymieniłem już RPi, przełączyłem wszystkie kabelki, sprawdziłem czy są zgodne z moim oryginalnym "schematem", wymieniłem czujniki.... i nic.

Tu taka dygresja, czujniki których używam działają tak, że najpierw ustawia się na nich 1 na chwilę i wtedy czujnik emituje ultradźwięki, później się wyłącza emisję i mierzy czas do otrzymania echa, jeśli nie przyjdzie to uznaje się, że ewentualna przeszkoda jest poza zasięgiem, gdy w zadanym czasie dotrze do nas echo (czyli na wyjściu z czujnika pojawi się 1) to czas między wysłaniem ultradźwięków, a momentem odbioru mnoży się razy prędkość dźwięku i dzieli przez 2 (w końcu sygnał musiał polecieć tam i z powrotem).

Wczoraj zabrałem się za to jeszcze inaczej, napisałem sobie nową wersję kodu, która z jednej strony wypisuje na konsoli czy wysyła 1 czy 0, robi to przez 4 sekundy i zmienia wartość sygnału.
Ja w tym czasie próbowałem podpiąć mój multimetr do odpowiednich kawałków czujnika... (tu jest przydatna lupa, bo nie umiem bez niej doczytać opisów wejść/wyjść ;-)).
No i niby się coś pojawiało, ale dziwne jakieś.
Niby jak było 0 to miałem -2 V, a jak było 1 to -4 V.
Nawet coś na echo było widać, ale wydawało mi się, że to 1 jakoś później się pojawia.

Tu się okazuje, że przydałby się oscyloskop ;-) ale to by było już przesada.

To drugi pomysł był taki by sprawdzić czy te czujniki w ogóle generują jakiś dźwięk...
Ale jedyne na co wpadłem, choć nie zrealizowałem to postawienie na przeciwko siebie 2 czujników, podpiętych do różnych RPi, i zrobienie tak by jeden wysyłał sygnał, drugi odbierał i patrzeć czy odbiera jak ten pierwszy wysyła... ale to by mogło działać, ale nie musiałby, w końcu kto wie czy np. każdy z tych czujników nie wysyła tych dźwięków z ciut inną modulacją by się wzajemnie nie zakłócały?

To jest wredne właśnie. Brakuje mi wiedzy i narzędzi jak takie coś zdebugować ;-)
W programowaniu jest czasem tak, że tego wszystkiego jest po prostu za dużo i człowiek nie może ogarnąć 20 rzeczy, które się dzieją naraz (z 2 jest już problem ;-)), tutaj jest inna klasa problemów. Bo problem jest ogólnie prostszy, gdzieś najpewniej jest złe napięcie... ale jak stwierdzić które jest złe? Szczególnie jak czasy to czasy grubo ponad 1 sekundy ;-) tak bliżej 2 tysięcznych sekundy ;-)


Podobne postybeta
Czy się stoi czy się siedzi... Rasbperry Pi z czujnikami ultradźwiękowymi to stwierdzi ;-)
Budujemy czujnik sit/stand do biurka :-)
"Fizyczny" projekt, jak zacząć?
Roboty i Android...
Trudno hackować sprzęt....

niedziela, sierpnia 18, 2019

Seks w ujęciu informatycznym ;-) - rozmnażanie ;-)

OK, dziś będzie o seksie ;-) ale w ujęciu informatycznym....

Dojdziemy do podstaw ;-)

Bo jakby na to nie patrzeć, w seksie, czy nam się to podoba czy nie, głównie chodzi o robienie dzieci.
Nawet może bardziej podstawowo, nie o robienie dzieci, a o kopiowanie genów.

To jest opowieść o tym jak to wygląda od strony kodu ;-)

Najpierw potrzebujemy gamet.

Gameta to taka dziwna komórka, która w odróżnieniu do zwyczajnych komórek w ciałach zwierząt czy roślin* ma w sobie tylko 1 kopię chromosomów.

Robienie gamety wygląda mniej więcej tak jak w programie poniżej ;-)

import random

"Probability of mutation is very low... it is not a constant, it depends from many factors, but for our purposes it will be consant ;-)"
PROBABILITY_OF_MUTATION=1E-9
class Chromosome:
"Here we keep our genes ;-)"
    def __init__(self, id, aminoacids):
self.id = id
self.aminoacids = aminoacids

class Pair:
"In normal diploidal cell we need 2 copies of each chromosome"
    def __init__(self, copy1, copy2):
self.copy1 = copy1
self.copy2 = copy2

class Genome:
"In our case Genome is set of pairs of chromosomes"
    def __init__(self, pairs):
self.pairs = pairs

class Gamet:
"Gamed is 1n cell which have only one copy for each chromosome... in most cases, in rare cases it may have more and it may make for humans/animals big problems, for plants it is usually completly OK"
    def __init__(self, chromosomes):
self.chromosomes = chromosomes

class Cell:
"Diploidal cell contains pairs of chromosomes in genome"
    def __init__(self, genome):
self.genome = genome
def buildGamet(self):
"Building a gamet is quiet easy when coded ;-), we simply need to iterate over all pairs, and build new chromosome from those which cell got from parents (not parent cell, but parents for whole organism)"
        chromosomes = []
for i in range(len(genome.pairs)):
pair = genome.pairs[i]
"And here is interesting part"
            chromosome = self.crossingOver(pair.copy1, pair.copy2)
chromosomes.append(chromosome)
return Gamet(chromosomes)
def crossingOver(self, copy1, copy2):
"Builds new chromosome from 2 parent chromosomes by cutting both in the same place and exchanging"
        # if Y we do not cross over, but only choose which one to return (works only for some mammals)
        if copy1.id=="Y" or copy2.id=="Y":
if random.random()>0.5:
return Chromsome(copy1.id, self.deleteMethylation(copy1.aminoacids))
else:
return Chromsome(copy2.id, self.deleteMethylation(copy2.aminoacids))
aminoacids1 = copy1.aminoacids
aminoacids2 = copy2.aminoacids
cutPoint = int(random.random()*len(aminoacids1))
newStrand = self.mutate(aminoacids1[:cutPoint])+self.mutate(aminoacids2[cutPoint:])
return Chromosome(copy1.id, self.deleteMethylation(newStrand))
def mutate(self, aminoacids):
"Copying of genes is not perfect, sometimes something goes wrong and copying makes mistakes"
        copy = ""
        for i in range(len(aminoacids)):
"To make things easier we are doing only on one type of mutation, changing letter, we omit skipping, repeating and other types"
            if random.random()<PROBABILITY_OF_MUTATION:
letters = "ACGT"
                copy=copy+letters[int(random.random()*len(letters))]
else:
copy=copy+aminoacids[i]
return copy
def deleteMethylation(self, aminoacids):
"OK, we need to cheat, lets pretend that metylation in our case means that in our aminoacids letters we have * after each letter which is 'blocked' by methylation"
        demethyled = ""
        for i in range(len(aminoacids)):
if aminoacids[i]!='*':
demethyled=demethyled+aminoacids[i]
return demethyled

Główna magia dzieje się w metodzie buildGamet() klasy Cell.
Mając komórkę (Cell), możemy zawołać na niej metodę buildGamet() i dostaniemy gametę :-)

Jak mamy gamety to tu jest ten cały skomplikowany proces jak sprawić by 2 gamety się spotkały... to jest to co zwykle nazywamy seksem, a jeszcze wcześniej zalotami, albo po prostu magią życia... na to programy są ciut bardziej skomplikowane ;-)
Może innym razem ;-)

Idźmy jednak dalej, mamy 2 gamety... co dalej?

Okazuje się, że nasz kod dla gamety nie jest dokładny... brakuje kodu, który obsługuje zapłodnienie (oraz tego, który odpowiada np. za różne zachowanie gamet męskich i żeńskich...).

Bardziej poprawny kod powinien wyglądać dla Gamet mniej więcej tak:
class Gamet:
"Gamed is 1n cell which have only one copy for each chromosome... in most cases, in rare cases it may have more and it may make for humans/animals big problems, for plants it is usually completly OK"
    def __init__(self, chromosomes):
self.chromosomes = chromosomes
def fertilization(self, otherGamet):
otherChromosomes = otherGamet.chromosomes
pairs = []
for i in range(len(chromosomes)):
"OK, again we are cheating to make things easier.... first we assume that we have exactly the same number of chromosomes... it should be true, but in case we don't have we will throw some scary exception"
            "additionally we assume that our chromosomes are in exact same order, so we don't pair chromosomes by id's assuming that those are already in proper order"
            pairs.append(Pair(chromosomes[i], otherChromosomes[i]))
return Cell(Genome(pairs))

Ta klasa ma teraz nową metodę fertilization, która dostaje jako parametr nic innego jak inną gametę :-)

Gdy wywoła się na gamecie metodę fertilization z inną gametą to dochodzi do stworzenia nowej komórki ;-) która może być później wykorzystana (a bardziej któryś z jej potomków) do zawołania buildGamet() ;-)

I to wszystko się toczy jakoś wg tego programu:

population = STARTING_POPULATION

while True:
"Here happens magic of life, children become adults, adults pair with other adults, adults get older, adults die"
    partner1, partner2 = magicOfLife(population)
gamet1 = partner1.buildGamet()
gamet2 = partner2.buildGamet()

baby = gamet1.fertilization(gamet2)
population.append(baby)

I tak to w uproszczeniu wygląda ;-)

Uproszczeń w tym programie jest WIELE.

Spójrzmy na klasę Genome, zakłada ona, że genom składa się z par chromosomów.
Tak prosto nie jest, czasem może być tych chromosomów więcej... czasem który chromosom może pęknąć, albo jakieś 2 się połączą.
Jeśli gdzieś są 3 kopie chromosomu, albo i więcej to zwykle u zwierząt znaczy to problemy.
Żeby nie było te problemy nie oznaczają, że taki genom jest gorszy, nie, jest inny niż zwykle, a to znaczy, że mogą się dziać różne nieprzewidziane rzeczy, np. może się produkować więcej jakiegoś białka, a to może powodować, że tego białka będzie zbyt dużo w danych warunkach, albo znów może reagować inaczej na sygnały chemiczne. Taki genom działa prawidłowo, nie łamie żadnych zasad, po prostu inne kawałki genomu mogą oczekiwać czegoś innego.
Zwykle to prowadzi do problemów, czasem nie.
W końcu nasi najbliżsi żyjący kuzyni, czyli szympansy mają inną liczbę chromosomów niż my, bo gdzieś kiedyś (między 0.75 mln lat a 4.5 mln lat temu ;-)) gdzieś była najpewniej jakaś blisko spokrewniona grupa, w której występowała "wada genetyczna" polegająca na tym, że 2 chromosomy zaczęły się łączyć albo już nawet połączyły.
My jesteśmy ich potomkami ;-)
Więc czasem (a bardziej z czasem) te problemy w kopiowaniu prowadzą do specjacji i powstawania nowych gatunków.

Ale tak z grubsza to mniej więcej tak wygląda ;-)

* - rośliny są dziwne....


Podobne postybeta
Generał Jaruzelski wg. Kuklińskiego
Zrównoleglamy ;-)
SleepAdvisor - komórka pomaga w wyspaniu się ;-)
Automatyczne tłumaczenie 2 - Translatica vs. Google Translate ;-)
Tworzenie poprawnych nazw plików :-)

2.68 tryliona nanomaszyn....

2.68 tryliona, albo jak kto woli dokładniej 2 678 400 000 000 000 000.
Najmniej tyle jest w Tobie nanobotów. W niektórych komórkach potrafi być ich podobno do 10 milionów, średnio podobno 72 tysiące sztuk.
Każda z nich ma jakieś 20-30 nm (200-300 Å (czyli angstremów)) średnicy.
Wszystkie ważą niecałe 2 μg, bo przeciętnie ważą po jakieś 7*10-25 kg ;-) (424 daltony ;-)).
Każda z tych maszyn składa się z jakichś 250 tysięcy atomów (co mi się nie zgadza z masą podaną powyżej....).

Te maszyny non stop dokonują translacji w procesie produkcji białek.

Potrafią podobno kopiować, czy bardziej "przetranslatować" do 200 aminokwasów na minutę.
Co by znaczyło, że wydajność obliczeniowa ludzkiego organizmu na poziomie komórkowym to tak na oko prawie 9 peta MIPSów ;-) albo patrząc inaczej ludzki organizm ma zdolność kopiowania na poziomie komórkowym w ciągu sekundy około 2 eksabajtów danych ;-)

Dzięki nim żyjemy.

Te cudowne maszyny to rybosomy :-)


Podobne postybeta
60000 km...
Filmy "komputerowe" ;-)
Noblowisko
Zarodek to nie dziecko
Lenie ;-)

sobota, sierpnia 17, 2019

"Dajemy normalnym"

Jest jedna rzecz, za którą bardzo nie lubię PiS.
To cecha, która jest wg mnie jedną z najbardziej obrzydliwych w polityce PiS.

To ich "pomagamy normalnym" i cała otoczka w koło tego.

Jest tak, że państwo zbiera podatki i z tych podatków opłaca armię, policję, sądy, dyplomację, szkoły, dopłaca do emerytur i robi też pomoc społeczną.
Płaci za rzeczy, które są konieczne, ale nikt za nie sam nie chce płacić, albo pomaga tym, którym się noga powinęła.
Przynajmniej tak mi się zawsze wydawało.

W państwie PiS państwo nie pomaga tym, którzy mieli pecha, nie wydaje pieniędzy na to na co trzeba wydać. W państwie PiS gdy do wyboru jest pomoc niepełnosprawnym albo całkiem majętnym rodzinom z dziećmi to wybiera się tą drugą opcję. Gdy można wydać kasę na drogie procedury medyczne, a leczenie kataru to wybiera się katar.
I to by nie było jeszcze takie złe, mogę się z tym nie zgadzać, ale to nie jest jeszcze złe.
Najgorsza jest ta narracja, ten przekaz, który to uzasadnia.
Idzie to mniej więcej jak "Dajemy normalnym, a nie jakimś dziwolągom", "pomagamy w codziennych problemach, a nie jakichś wyjątkach które się nikomu nie zdarzają".

To mnie razi w PiS i ich państwie. To, że dziwolągi są w najlepszym przypadku mniej ważne, a w wielu momentach są wrogami. I nie ważne czy ktoś jest "nienormalny" przez swój wybór czy przypadek.

Niepełnosprawni są "brzydcy", mało kto wie jak się przy nich zachować i państwo PiS z tego korzysta. Daje 500+ zamiast kasy na niepełnosprawnych i dodaje do tego taką otoczkę, że "promuje normalność".

Kiedyś słyszałem od absolwenta PAT (Papieskiej Akademii Teologicznej) jak był oburzony tym, że w Krakowie miasto gdy tworzy listy przyjęć do przedszkola daje punkty samotnym matkom. Bo to przecież jest nienormalne, a tu się im pomaga.

Nie podoba mi się to. Na wielu płaszczyznach.

Wg mnie to jest pierwszy kroczek, może mały, ale "kult normalności" to wg mnie pierwszy krok w kierunku eksterminacji tych, którzy do jakiegoś modelu normalności nie pasują.
Zawsze jak mine dopadają myśli o tym mechanizmie to mam przed oczami scenę z serialu The Man in the High Castle, gdy jakoś tak na początku jeden z głównych bohaterów zatrzymuje się i zaczyna "padać" śnieg z popiołu, na co pomocny, rumiany i uśmiechnięty policjant mu tłumaczy, że to ze szpitala psychiatrycznego czy jakiegoś w tym rodzaju.


Podobne postybeta
Władza PiSu jebnie, to pewne. Pytanie tylko kiedy
Amoralna modlitwa
Płatnik czy beneficjent?
Czemu uważam, że 500+ jest złe
zVATowani 2

piątek, sierpnia 16, 2019

Porzucić książkę czy nie? Oto jest pytanie ;-)

Czytam "Feeling Good: The New Mood Therapy" David'a D. Burns'a i mam wrażenie, że co stronę jestem bardziej przygnębiony ;-)
Tzn. książka jest bardzo fajna i ciekawa, ale albo tematyka, albo jej długość czy styl mi przeszkadzają.
Może chodzi o to, że wcześniej czytałem "Man's Search for Meaning" Viktor'a Frankl'a (OK, między było Super Thinking: The Big Book of Mental Models Gabriela Weinberg i Lauren McCann), a tam dużo się dzieje w obozie koncentracyjnym?
Chociaż fakt, że czytam to Feeling Good już prawie miesiąc, a jestem dopiero w okolicach 1/3 też może mieć znaczenie....
Może porzucić i przerzucić się na coś innego? Bo fakt, zwykle jakoś chętniej wracam do książki, a z tą tutaj czasem nie chce mi się nawet w tramwaju czytać.
Z tym, że od 2-3 lat zwykle nie zdarza mi się porzucać książek.


Podobne postybeta
Smutno mi się zrobiło...
Nie jest dobrze z nami....
Book vs eBook
~ - czyli "tak sobie"
Konferencja

środa, sierpnia 14, 2019

Power banki są dziwne

Jak zauważyłem w moim przypadku power banki służą głównie do tego bym je woził ze sobą ;-)

Mam np. taki z ponad 20000 mA i nie użyłem go chyba ani razu... ale wożę go prawie zawsze ze sobą.
Tak samo jak taki 5000-6000.

Gdy mam gdzieś lecieć samolotem to zawsze biorę ze sobą power bank... i nigdy go nie używam ;-)

W "polu" użyłem power banku może 3 razy, raz pamiętam, że było to w National History Museum w Londynie.

Jakby na to spojrzeć power bank nie jest mi potrzebny.

A jednak prawie zawsze go noszę ze sobą.

Nie wiem, mam wrażenie, że power bank to dla mnie taka forma talizmanu przed utratą mocy w telefonie ;-)


Podobne postybeta
Dwa komputery
Przypadek Irlandii
Dinozaur na UJ ;-)
Zła TV ;-)
Chromebook jednak żyje :-)

wtorek, sierpnia 13, 2019

Kilka prostych wzorów do szacowania :-)

Kilka prostych wzorów i stałych ;-)

Twoja pensja netto z brutto?

netto=2/3*brutto

czyli pomnóż brutto razy 2 i podziel przez 3, mniej więcej tyle jest "na rękę".

Twoja przybliżona zdolność kredytowa?

twoja_zdolność_kredytowa = twój_miesięczny_dochód*100

bardziej dokładnie:

twoja_zdolność_kredytowa = (twój_miesięczny_dochód-limity_kredytów*0.1)*100

gdzie limity_kredytów to suma limitów na kartach kredytowych i dopuszczalnego debetu na koncie.
Czyli Twoja przybliżona zdolność kredytowa to 100 krotność Twoich dochodów miesięcznych pomniejszonych o 10% otwartych linii kredytowych.

Jak przeliczyć m/s na km/h?

Prosto ;-)

V_kmph = V_mps*4-V_mps*0.4

Wygląda skomplikowanie, ale pomnóż prędkość w metrach na sekundę razy 4 i odejmij od tego 10% tej wartości.

Ile jest sekund w ciągu dnia?

86400 sekund

Ile jest minut w ciągu dnia?

1440 minuty

Ile jest sekund w godzinie?

3600 sekund

Który rok jest przestępny?
  • Dzieli się przez 4,
  • Nie dzieli się przez 100, za wyjątkiem sytuacji gdy dzieli się też przez 400
Ile "zer" ma wersja dziesiętna potęgi dwójki?

liczba_zer_w_wersji_dziesiętnej=0.332*potęga_dwójki

Albo dla uproszczenia potęga_dwójki/3

(czemu? bo log102 = ~0.332, a log 2n = n*log 2)




Podobne postybeta
Karciane dylematy
Nowy coś do pisania - constants list/reference/cokolwiek ;-) albo spis stałych
IT - Jaka kasa w zależności od skilla? ;-)
Java 8 + lambdy = wolno ;-)
My = Bogacze.

poniedziałek, sierpnia 12, 2019

2 wymiarowa teoria kariery w IT ;-)

Wydaje mi się, że gdyby rozmieścić w przeciętnej organizacji IT ludzi na 2 osiach, gdzie jedną osią jest ogarnięcie przez daną osobę organizacji, a na drugiej technologii to gdyby wypisać ich stanowiska to wygląda to mniej więcej tak jak na obrazku powyżej.

Nie twierdzę, że w każdej firmie istnieją takie pozycje jak opisane. Np. w wielu firmach to co ja nazywam Managerem może być zwane Engineering Managerem, a to co ja nazywam Engineering Managerem będzie nazywane Managerem ;-)
Także wśród Managerów i Engineering Managerów nie jest tak, że wszyscy są tacy sami, ci którzy są wyżej w hierarchii firmy zwykle są też lepsi w ogarnięciu organizacji i może nie ogarniają tak mocno samej technologii, ale ogarniają jej użycie.

Ale mniej więcej tak to wygląda.

Przyznam, że mnie to zaskoczyło.

Sam kiedyś myślałem, że ludzie jak ogarniają coraz bardziej technicznie to ogarniają też organizacyjnie... okazuje się, że nie, że większość w pewnym momencie przestaje ogarniać.

Ja przyznam, że widzę się tu w grupie Super Seniorów, a chciałbym kiedyś w Staff/Principal albo w Eng Manager ;-)

Wiele firm popełnia błąd i ma taki niemiły kawałek, że jak ktoś jest Regularem czy nawet Juniorem technicznie, ale wykazuje zainteresowanie ogarnianiem od strony organizacyjnej to robią z takiego kogoś managera.... IMHO to źle. Powinni takich ludzi dłużej przetrzymać na ich stanowiskach, żeby ogarnęli organizację o wiele lepiej.
Miałem takich ;-)

Przy okazji wydaje mi się, że firmy powinny patrzeć na ten wykres i starać się parować tak ludzi do zespołów by nie dochodziło do sytuacji gdy technicznie ogarnięty pracownik miał też wyższe ogarnięcie organizacyjne od swojego managera bo wtedy jest problem.


Podobne postybeta
Kiedy zmieniać pracę i po co? (w IT)
Robimy nową galerię ;-)
Trudne problemy
Moc bezpiecznika jest wielka
"Czy uważasz, że powinien zarabiać tyle co Ty?" ;-)

Szlak mnie trafia jak emocje sprzedają się lepiej od rozumu.

Kontrowersyjnie będzie.

Może to wszystko przez to, że od nowa oglądam The Newsroom?

Zacznijmy od globalnego ocieplenia, czy zmian klimatu.
Od najmniej 2000 roku czy jakoś tak uważam, że globalne ocieplenie jest faktem.
Wiem, że na Ziemi panuje efekt cieplarniany i temperatura Ziemi powinna być na poziomie jakichś -26 stopni Celsiusza (średnio) jeśli się liczy temperaturę jaka powinna wynikać tylko z promieniowania Słońca.
Zdarzało mi się prowadzić dość ostre debaty na ten temat.
Ale szlak mnie trafia jak czytam teksty w których jakiś "dziennikarz" pisze, że "ludzkość wyginie", albo że za 50 lat czeka nas zagłada bo zabije nas globalne ocieplenie.

Nie zabije. Globalne ocieplenie jest niebezpieczne bo klimat się zmieni, będzie inaczej niż teraz.
Wiele gatunków zwierzą i roślin nie będzie w stanie nadążyć za tymi zmianami i wyginie. To pociągnie za sobą wyginięcie innych gatunków.
Ale niektóre gatunki dadzą sobie radę.
Klimat osiągnie znów jakiś nowy stan równowagi. W ciągu paru milionów lat gatunki, które wymrą zostaną zastąpione przez nowe.
Ale ludzie nie wymrą. Miliony, dziesiątki milionów, albo i setki milionów ludzi będą migrowały, mieliśmy już próbkę z Syrią.
Ale nadal ludzkość nie wymrze.

Po prostu za skuteczni jesteśmy w przetrwaniu.
Nie zabiła nas zima trwająca kilka tysięcy lat, gdy naszą jedyną technologią była umiejętność obrabiania krzemienia, szycie i krzesanie ognia.

To samo w podobnej sprawie.
Bomba populacyjna......
Miała być już wiele razy. Miała doprowadzić do tragedii.
Na razie w Azji doprowadziła do tego, że jest to najbardziej ludny kontynent, który staje się powoli coraz bardziej znaczącą siłą na świecie.

Dlatego szlak mnie trafia jak słyszę wezwania w stylu "nie miejcie dzieci, bo tak ochronicie planetę".
Dupa. Nie ochronicie. Miliony staruszków w Europie i USA nadal będą konsumować masę rzeczy i nadal będą zużywać planetę. Ale ponieważ nie będzie zbyt wielu młodych ludzi by im pomóc to po jakimś czasie zaczną padać jak muchy.
A i nie chodzi o dzisiejszych staruszków, a o pokolenie dzisiejszych 20-40 latków.
Nie chcesz mieć dzieci? Super, Twoje prawo. Ale nie twierdź, że to robisz dla dobra ludzkości.

Islam....
OK, islam ma wiele głupich pomysłów.
Jedyne kraje gdzie można zostać skazanym za ateizm, konwersję na inną religię czy homoseksualizm to bardzo konserwatywne państwa z przytłaczającą większością muzułmanów.
Tak muzułmanie miewają głupie pomysły, tak wielu terrorystów, może nawet większość to muzułmanie.

Ale i to jest ważne. To, że jak ktoś jest terrorystą to ma duże szanse być muzułmaninem, nie znaczy, że jak ktoś jest muzułmaninem to jest terrorystą.

Przytłaczająca większość gwałcicieli to faceci. Czy to znaczy, że każdy facet to gwałciciel? Nie!

Jak ktoś ucieka z Syrii, Iraku czy Algierii to nie po to by przywieźć do Europy szariat (zresztą w żadnym z tych państw nie panuje szariat), a szuka lepszego miejsca do życia.
Nie różni się niczym od Polaków, którzy pojechali do UK za chlebem, czy od tych, którzy uciekali z PRLu na zachód.

Tak, część tych ludzi może przywieźć złe pomysły. Ale to są poszczególni ludzie.
Nie wolno wrzucać wszystkich muzułmanów do tego samego worka, w którym są np. zamachowcy z 11 września.

Osobiście razi mnie gdy widzę kobiety w chustach, a jeszcze bardziej z tą zasłoną na twarz (a widuję takie w Krakowie w ciągu ostatnich kilku miesięcy). Uważam, że całkiem OK jest gdy europejskie kraje zakazują zakrywania twarzy, albo noszenia symboli religijnych (takich jak chusta) w szkole. Ale nie dlatego, że to dobrze, że "dowalają muzułmanom", o nie.
Po prostu uważam, że mamy tu 2 wartości, z jednej strony mamy wartość wolności religijnej, z drugiej wiemy, że niektóre kobiety wychowane w rodzinach gdzie wyznaje się islam są zmuszane do noszenia chust. Czyli ogranicza się ich wolność osobistą i zmusza do czegoś wbrew ich woli.
Czyli ogranicza się ich wolność osobistą, czy wolność do samostanowienia.
Całkowicie subiektywnie uważam, że ta druga wolność jest ważniejsza, szczególnie w krajach "cywilizacji zachodniej" czyli w krajach które wybrały demokrację liberalną.
Stąd uważam, że w celu ochrony tej ważniejsze, wg mnie wolności, państwo może ograniczać w pewnych aspektach wolność wyznania, ale wolno mu to robić tylko tak długo jak służy to ochronie tej ważniejsze (znów, podkreślę wg mnie ważniejszej) wolności.

Podsumowując.
Szlak mnie trafia gdy całkiem rozsądne postawy, czyli np. przekonanie o tym, że człowiek przyczynia się do globalnego ocieplenia, albo to że używamy zbyt wiele zasobów planety, czy to, że istnieją pewne odłamy Islamu które lepiej by się czuły w średniowieczu niż teraz, stają się podstawą jakiegoś wielkiego moralnego wzburzenia.
Jak gdzieś włączają się emocje to wyłącza się rozum.
A rozum jest jedyną rzeczą, która różni nas od zwierząt.
To gdzie jesteśmy wynika tylko z tego, że staraliśmy się używać coraz więcej rozumu i coraz mniej emocji.
Szlak mnie więc trafia gdy do promowania pewnych "rozumowych" postaw używa się emocji.
To jest złe.


Podobne postybeta
Wojny religijne i jak ich uniknąć
A mnie tam jednak prosty model klimatyczny przekonuje do twierdzenia, że mamy wpływ na zmiany klimatyczne i że globalne ocieplenie może być faktem
A jednak jest nadzieja :-)
A takie tam absurdy
Komputery w ubraniu....

niedziela, sierpnia 11, 2019

Pilotka ;-)

Dziś pierwszy raz w życiu leciałem samolotem, który pilotowała Pani kapitan :-)
Co ciekawe był to samolot LOTu.

Musiałem czekać 64 loty by przy 65 moim locie w życiu móc lecieć z kobietą jako pilotem :-)

Z mojego punktu widzenia, pasażera w klasie ekonomicznej Pani pilot nie różni się niczym od Pana pilota. Po prostu wyższy głos wita na pokładzie i mówi (jak mówi) jaka będzie temperatura i pogoda, oraz czas w miejscu przylotu.


Podobne postybeta
Co się dzieje gdy mój pierwszy samolot się spóźnia i mam mało czasu na przesiadkę?
Moto 360 i Android Wear po 3 dniach - zaczynam dostrzegać zalety ;-)
Chrome OS i Java - ostateczna odpowiedź
Amerykański zegarek jest trudny ;-)
Power banki są dziwne

czwartek, sierpnia 08, 2019

Mój pierwszy polski Subway ;-)

Jeśli chodzi o jedzenie jestem dość monotonny ;-) najchętniej przyjmowałbym jedzenie w pigułkach ;-)
Stąd na wyjazdach zwykle wybieram "znane" jedzenie, którym często jest Veggie Patty w Subway'u.
Sęk w tym, że zawsze z Subwaya korzystałem w UK albo USA ;-)
Stąd mój standardowy "program" jest:
- feet long, 9 grains
- veggie patty
- składniki

No i dziś w Gdańsku miałem problem, bo feet long nie podziałało, a w opisach nie było w ogóle 9 grains ;-)
Musiałem więc poprosić o 30 cm.

W ogóle panowie sprzedawcy jacyś tacy strasznie wolni byli. W UK zwykle obsługiwali mnie jacyś imigranci, którzy co prawda znudzeni, ale bardzo szybko wszystko robili, a że mój angielski i ich angielski nie były tym samym angielskim to często komunikacja była przez pokazywanie.
Tutaj ten sam język, a jednak obsługa jakby jakaś taka dużo bardziej zagubiona ;-)


Podobne postybeta
Jak oni to dowiozą? ;-)
Ja to mam jednak utylitarne podejście do jedzenia ;-)
Czciciele słońca?
Rozluźniać, czy nie rozluźniać?
A może zamiast o uchodźcach mówić o ofiarach wojny?

środa, sierpnia 07, 2019

Proste jest lepsze

W komputerach mamy tak, że lubimy komplikować.

Przypowieść głosi, że gdy Robert Metcalfe przyniósł swoim szefom projekt sieci, którą zwiemy teraz Ethernetem to uważali ją za tak mało obiecującą, że nie chcieli nawet opatentować pomysłu.
Opatentowali.
Ale ich opór miał wynikać z tego, że Ethernet z banalnie prostym "protokołem", opartym o ALOHAnet miał być zbyt prymitywny by wygrać z Token Ring.
Token Ring obiecywał przewidywalność, brak kolizji, a Ethernet jako jedyne zabezpieczenie przed kolizjami stosował mierzenie natężenia prądu i gdy prąd był za wysoki to każda z kart, które próbowały nadawać miała sobie wylosować jakiś czas i czekać tyle na retransmisję (jeśli kanał będzie wolny).
W Token Ring wprowadzono cały mechanizm tokenów w celu eliminacji konfliktów, w Ethernet użyto prostego mechanizmu znanego z ALOHAnet.
Zamiast tworzyć mechanizm do unikania kolizji, stworzono mechanizm wykrywania kolizji i probablistyczny sposób na zmniejszenie prawdopodobieństwa kolejnej kolizji. Uznano, że kolizje się będą zdarzały i zamiast budować mechanizm, który będzie im przeciwdziałał prościej "nauczyć" karty odpowiedniego zachowania w razie kolizji.
W ALOHAnet działało to mniej więcej tak, że na każdej wyspie Hawajów była antena satelitarna, która mogła wysłać sygnał do satelity, satelita retransmitował to co dostał z powrotem w kierunku wysp.
Teraz gdy komputer chciał coś wysłać sprawdzał najpierw czy coś może jest w danym momencie nadawane, gdy nie było zaczynał nadawać i słuchał sygnału zwrotnego, jeśli dostawał to samo co wysłał to wiedział, że transmisja się udał, gdy sygnał był inny wiedział, że ma do czynienia z kolizją. Wtedy każdy z komputerów próbujących nadawać losował sobie czas oczekiwania.
W Ethernecie nawet ten prosty mechanizm uproszczono, zamiast obserwować co "lata" po sieci (bo to jednak były lata 70 i to było trudne) karta patrzy tylko na natężenie prądu, jeśli prąd jest większy niż pewien poziom to wie, że nie wolno nadawać, jeśli w trakcie jej nadawania prąd podskoczy powyżej wartości jaką powinien mieć dla 1 nadajnika to karta wie, że jest kolizja*.
Teraz gdy karta wie, że wystąpiła kolizja to próbuje jej uniknąć i losuje sobie czas ile ma czekać do ponownej próby nadawania. Prawdopodobieństwo, że dwie karty wylosują tą samą wartość jest dość niskie, a jak się nawet zdarzy takie nieszczęście to będzie kolejne losowanie.
Protokół nie próbuje walczyć z kolizjami przez uniemożliwienie ich wystąpienia, a raczej próbuje pogodzić się z ich występowaniem.
Okazało się, że to podejście działa lepiej niż Token Ring.

Ale zwykle w komputerach nie lubimy takich rozwiązań.
W jednej z firm mieliśmy już kontroler, który pilnował czegoś, nad nim superkontroler który pilnował większego kawałka i pojawiały się pomysły super superkontrolera ;-)
Zamiast próbować użyć jakiegoś prostego algorytmu, jak np. gorący kartofel (kto go ma, próbuje się go pozbyć za wszelką cenę i każdy ruch jest legalny, nie patrzymy czy to przeszkodzi temu komu damy kartofel). Ale nie, to nie wchodziło w rachubę bo nie byłoby optymalnym rozwiązaniem.
Lepiej było komplikować software i udawać, że znajdziemy optymalne rozwiązanie.

Mieliśmy kiedyś Mavena, a teraz jest Gradle**




* - przy okazji, na studiach (co prawda podyplomowych ;-), ale jednak) opowiadano jak to w kartach Ethernet jest fototranzystor, który służy do separacji galwanicznej od sieci... później się dowiedziałem, że od lat się tego nie stosuje, taniej było zastosować filtry, a teraz pewnie nawet jakiś odpowiednich "softwareowego radia" ;-)

** - nie może być tak, że jest wpis o komputerach i nie ma narzekania na Gradle'a ;-)


Podobne postybeta
Trudno hackować sprzęt....
Rant po toolach w stylu Mavane, Gradle, Bowera i całej tej hałastry
Prawdziwie przenośny komputer ;-)
Losowanie dobre
Zegar w Raspberry Pi nie jest zawsze godzien zaufania

wtorek, sierpnia 06, 2019

Rok temu....

To jak mi wychodzi równo rok temu zaczęła się moja kilku miesięczna przygoda z mieszkaniem w USA ;-)
Fajnie było, chętnie bym powtórzył, może nawet na dłużej.

Jadąc na wyjazd na określony czas z mniej lub bardziej określonym zadaniem człowiek ma olbrzymi luz. Działa w pewnym ograniczonym zakresie możliwości i to zdejmuje masę problemów z głowy.
Na każdego maila z propozycją rekrutacji, może odpowiedzieć wprost "jestem obecnie na kilkumiesięcznym wyjeździe w USA i z tego powodu nie jestem w chwili obecnej zainteresowany przystępowaniem do procesu".
Nie trzeba się zastanawiać co by tu kupić do mieszkania.
Człowiek jest raczej w trybie wakacyjnym i rozgląda się za jeszcze dodatkowymi sposobami na rozrywkę ;-)
W biurze się przychodzi i tak z jednej strony można się przejmować tym co ważne, ale można totalnie ignorować wszelkie problemy. Ba, ponieważ się jest outsiderem lepiej widać pewne problemy i można je nawet próbować pomóc naprawić, bez mimo wszystko pretensji, że przyszedł ktoś z zewnątrz i się rządzi.

W domu czuję więcej stresu, który zresztą sobie sam daję ;-) niż na wyjeździe.

Szkoda, że się już skończyło. Jeszcze bym powtórzył ;-)


Podobne postybeta
Warto dla 57 złotych?
Myślenie = Szybka jazda
Granica
Selfhacking ;-)
Sen daje dobry humor ;-)

Podróże w czasie ;-)

Skończyłem oglądać Dark i to jest film/serial/opowieść o podróży w czasie model 3.
Model 1 to opowieści "proste" jak Wehikuł Czasu Wells'a, mamy mniej więcej jedną "ścieżkę czasu", bohaterowie coś zmieniają i się wszystko prostuje.
Model 2 to opowieści ciut bardziej skomplikowane, taki Powrót do Przyszłości. Część 1 to model 1, Marty cofa się do lat 50, niechcący rozdziela rodziców więc może zniknąć (to znikanie jest nietypowe), łączy ich znów, wraca i świat jest inny, ale taki sam (a przecież Lorraine związana teraz z pewnym siebie George'iem mogła pójść na studia, albo znaleźć pracę, więc Marty mógłby się w ogóle nie urodzić*), w III części się robi ciekawiej, bo jak w II części Doc trafił do XIX wieku to ratując Clare zmienił masę rzeczy, których świadkiem jest Marty.. chociaż nie jest, bo jest w innej nogawce czasu...
Model 3 to Dark, trochę Terminator. Czyli motanie czasu jest tak powalone, że już nikt nie wie czy w danym momencie jest teraz, czy wtedy. Chociaż w Dark wydaje się, że Adam, Klaudia i starszy Jonas, a czasem młodszy Jonas mają jakąś magiczną moc wiedzy gdzie się pojawić i kiedy (a niby są ograniczeni do skoku o 33 lata...).

Ogólnie model 3 mnie wkurza tym, że zwykle jest tak, że bohaterowie dążąc do uniknięcia zdarzenia X sami się do niego przyczyniają. Jak scenarzyści są ogólnie pokręceni to jeszcze nawet ci bohaterowie walczą z samymi sobą bo obie strony uważają, że ta druga strona chce zrobić coś złego.

Btw. gdyby podróże w czasie były możliwe (albo chociaż "reset" byłby możliwy) i procesy losowe nadal by były losowe to można by tak było osiągnąć nieśmiertelność ;-)
Wystarczyłoby ustawić "reset" świata na jakąś godzinę (np. 11 żeby za wcześniej nie wstawać)  każdego dnia i jeśli byśmy nie przestawili tego "budzika" przed tą godziną to robiłoby restart do dnia poprzedniego do powiedzmy godziny 3.
Dzięki temu z wiekiem gdy zaczynamy być już bardziej krusi to w razie pechowego dnia, który skończyłby się śmiercią wrócilibyśmy o dzień wcześniej i zawsze istnieje szansa, że którąś wersję dnia dałoby się przeżyć ;-) nawet jakby prawdopodobieństwo malało dzień w dzień to nigdy nie dotarłoby do zera ;-)


* - to jest w ogóle ciekawe, w końcu stworzenie gamet jest procesem losowym, każda jest inna, później może dojrzewanie jajeczka jest "ustalone", ale już ruch plemników nie, więc wydaje się, że drobna zmiana powinna pociągać za sobą wiele zmian, między innymi w tym jak się ułożą geny plemnika, które jajeczko dojrzeje i który plemnik dotrze do celu...
Bo pytanie jest czy w razie podróży w czasie rzut monetą da zawsze ten sam wynik? Skoro raz nie było dodatkowego obserwatora, a później był i samą swoją obecnością zmienił warunki, więc "prawdziwie" losowy proces powinien mieć inny output, przynajmniej przy odpowiednio dużej liczbie prób statystycznie inny.


Podobne postybeta
Zaczął się nowy rok
Terminator Genisys
In vitro
Foldery
Co bym zmienił w produktach Google.. Part 1

niedziela, sierpnia 04, 2019

Mody w rekrutacji IT ;-)

Rekrutacja w IT ma swoje mody.
Do niedawna były to toole w stylu Codility czy HackerRank, które miały odsiewać część kandydatów.
Kiedyś było to kodowanie na tablicy.
Teraz najnowsza moda to "przynieś swojego laptopa".
Chociaż z drugiej strony to miałem jakieś 6 lat temu w jakimś startupie ;-)

Zbliżamy się pewnie do momentu "używaj internetu" i "przynieś swoje chapcie" ;-)


Podobne postybeta
Java 8 + lambdy = wolno ;-)
Android Beam rządzi :-)
[*] najbardziej pusty imotek
"Zestaw inspektora" się tworzy ;-)
Nie jestem pewien czy zadania koderskie/algorytmiczne są dobrym elementem rekrutacji

Komputery są naprawdę stare ;-)

HTTP jest z nami już 30 lat.
FTP 48 lat.
Java 24 lata.
JavaScript 23 lata.
C 47 lat.
Linux 27 lat.

Nasze komputery, nieważne czy z Windows, Linuksem czy macOS startują niemal tak samo od 37 lat, zawsze w trybie 16 bitowym, w tym co teraz nazywamy Real Mode, a pochodzi sprzed 40 lat gdy powstał 8086, który wyrósł z 8 bitowego 8080, a ten z 4 bitowego 4004 ;-)

To jest w ogóle zabawne. Nasze dzisiejsze CPU to zwykle w środku procesory RISC (54 lata, niemal wprost wyprowadzone z pomysłów Alana Turinga sprzed 73 lat), które na zewnątrz udają CISC, nasze programy są zapisane w kodzie maszynowym, który jest niemal taki sam od 40 lat (bo na PC wszędzie używamy x86).
I taki udawany CISC, ładuje przy starcie kod, który uruchamia funkcje BIOS... który to BIOS zaczął się tak koło 1975 roku (44 lata temu) jeszcze na CP/M (i Intelu 8080 ;-)), a później sama idea została przeniesiona do IBM PC, ale te nasze dzisiejsze BIOSy udają BIOS na 2 sposoby, po pierwsze większość z nich, jeśli nie wszystkie, są wynikiem reverse engineeringu oryginalnego BIOSu od IBMa, po drugie w nowszych komputerach ten kawałek BIOSowy jest tylko dla kompatybilności i coś innego później startuje.
I co robi niemal natychmiast nasz komputer, który się właśnie uruchomił?
Przełącza się w Protected Mode i udaje 80386 ;-) (34 lata), wtedy nagle rejestry mu się poszerzają z 16 bitowych na 32 bitowe (i tak AX, staje się EAX), a później wchodzi w x86-64... co ciekawe, to akurat nie jest pomysł Intela, a AMD (AMD64 ma już 19 lat) i dopiero wtedy pojawiają mu się 64 bitowe rejestry...
W rzeczywistości sam RISC w środku nie musi wcale mieć żadnych 64 bitowych rejestrów, a już na pewno nie ma ich tylko 16 ;-)
Jak tam gdzieś później u góry jest Java to jest jeszcze zabawniej, bo tam procesor RISC, który używa masy prostych komend operujących na dużej ilości rejestrów udaje CISC z mniejszą ilością rejestrów, na którym to działa aplikacja, która udaje w środku "procesor" bez rejestrów, za to tylko ze stosem....
Po drodze jest jeszcze kilka poziomów cache.

Ale jest jeszcze lepiej, cały ten ambaras jest w pełni zgodny z wymyśloną przez Turinga 83 lata maszyną Turinga.
Może być gorzej ;-) większość komputerów programujemy używając klawiatury QWERTY, która ma jakieś 141 lat ;-)
Same programy zaś to realizacja pomysłu Josepha Marie Jacquarda sprzed 215 lat ;-)

Stąd, nie, komputery to nie jest młoda dziedzina ;-)

Nawet modne teraz programowanie funkcyjne jest "tylko" rozszerzeniem idei sprzed 80-90 lat ;-)

Dlatego nie rozumiem, czemu Gradle ciągle musi zmieniać swoje API ;-)


Podobne postybeta
Celeron M353 900MHz vs. Intel Atom 1.6GHz, czyli o tym czemu jest remis? ;-)
Goto Go ;-)
Przesyłanie "obcych" na odległość, albo uniwersalny format danych ;-)
Amd64, Intel64, EMT64, WTF64? ;-)
Laptop

sobota, sierpnia 03, 2019

Sen daje dobry humor ;-)

Taka obserwacja z dziś, sen działa cuda ;-)
W czwartek miałem podły humor.
A w piątek wspaniały.
Czemu? Bo obudziłem się dopiero po 8 godzinach 15 minutach snu ;-)

Ja świetnie sobie daję radę śpiąc po 6 i mniej godzin dziennie, ale raz na jakiś czas przychodzi moment gdy albo mam emergency shutdown i po prostu zasypiam i śpię dłużej, albo taki dzień gdy jestem w tak podłym nastroju, że nadlatująca asteroida wydaje mi się być wspaniałą perspektywą (chociaż nie, nawet wtedy nie jest wspaniałą perspektywą).

Do tego widziałem dziś jaką mamy atmosferę w biurze ;-)
Jeden z naszych managerów wraca po roku do USA i tak na koniec były jeszcze pierogi (impreza była w czwartek) i się spóźniały, i całe to przeżywanie tego spóźniania się, później radość z tych pierogów i to jak wszyscy to przeżywali pokazało, że my się chyba naprawdę lubimy ;-)


Podobne postybeta
Praca na stojąco - wersja pro ;-)
Kuchenka mikrofalowa
Rok temu....
Matrix to niezawodny sposób na sen ;-)
Linia poleceń rządzi!

czwartek, sierpnia 01, 2019

Jak nic nie robiąc robię się mniej Polakiem ;-)

Patrząc na zmieniające się dane o moim pochodzeniu w 23andMe zastanawiam się jak to jest, że ciągle będąc tym samym mną, zmienia się mój skład etniczny ;-)

W tamtym roku, we wrześniu 65.9% moich genów zostało uznanych za pochodzące z Europy Wschodniej, głównie Polski, 12.5% z Niemiec lub Francji (ale uznali, że z Niemiec), 3.9% Szwecji, 2.5% z Bałkanów, 0.6% z Włoch i 0.1% z półwyspu iberyjskiego.
Później gdy 23andMe poznało też geny mojej własnej prywatnej matki, uznało, że jednak nie, że mój nowy skład to:
59.1% Europa Wschodnia (Polska i trochę Rosja),
23.0% Europa Północno-Zachodnia, w tym
   9.2% Niemcy
   1.8% Skandynawia,
   0.2% Wyspy Brytyjskie
   11.9% ogólnie północno-zachodnio europejskie
8.6% Europa Południowa
   5.2% Grek lub mieszkaniec Bałkanów,
   1.0% mieszkaniec półwyspu iberyjskiego,
   2.4% ogólnie Europa południowa
9.2% ogólnie europejskie
0.1% nieopisane

A teraz w wynikach bata jestem:
55.4% Europa Wschodnia (głównie Polska, może trochę Rosji)
23.7% Europa Północno-Zachodnia, w tym
   11.9% Niemcy,
   1.5% Skandynawia,
   0.3% Wyspy Brytyjskie,
   10% ogólnie Europa północno-zachodnia
9.9% Europa południowa,
   6.8% Grek lub mieszkaniec Bałkanów,
   1.0% mieszkaniec półwyspu iberyjskiego,
   2.2% ogólnie mieszkanie Europy południowej
10.9% ogólnie europejski

Jakby to próbować narysować to przesuwa mnie coraz bardziej na zachód i na południe.

Czemu wyniki się zmieniają? Bo zmieniają się bazy danych które ma 23andMe, więcej ludzi robi test, więc więcej mają próbek i mogą lepiej budować model.
Chociaż wydaje mi się też, że ten model jest budowany głównie dla USA i ogólnie krajów zachodnich ;-)
Stąd najpewniej to nie jest tak, że ja mam w sobie "w 0.3% krew" mieszkańca wysp brytyjskich, a raczej ja i pewna grupa ludzi zamieszkujących wyspy brytyjskie mieliśmy wspólnego przodka, który pewnie mieszkał gdzieś na terenach dzisiejszej Polski i jedno z jego/jej dzieci zawlekło swoje geny tam, albo i kilka razy.


Podobne postybeta
Wydało się jakim jestem Polakiem ;-)
Czemu Google Play nie sprzedaje u nas urządzeń, filmów, książek i reszty?
Tak czy nie? - wyniki ;-)
Pogoda emigracyjna ;-)
Przewidujemy wyniki wyborów ;-) - wyniki