Książki, Biblionetka, BookWyrm

Od zawsze korzystam z Biblionetki, dziś przeczytałem wpis o BookWyrm. Przypomniał mi o moich skomplikowanych relacjach z Biblionetką. Serwisu używam od zawsze, ale nie raz myślałem o migracji. Dawno temu serwis co prawda żył, ale wyrosła mu międzynarodowa konkurencja w postaci Goodreads. Wyglądał na nierozwijany programistycznie, a międzynarodowa konkurencja w social media raczej nie służy serwisom lokalnym. Patrz Nasza Klasa.

Potem Biblionetka została odświeżona, ponadto nie jest to serwis krytyczny z mojego punktu widzenia, dodatkowo okazało się, że na Goodreads brakuje wielu pozycji, które były na Biblionetce. Nie zmigrowałem więc. Stwierdziłem, że poczekam.

Poczekałem nieco dłużej, niż planowałem i… okazało się, że Goodreads likwiduje API. I w tym momencie gdybym korzystał z Goodreads, to rozważałbym ucieczkę. Albo raczej szukał miejsca, do którego się przenieść. Nie żeby Biblionetka miała API. Ale da się skorzystać z jej danych, co pokazuje choćby serwis do korelacji, o którym pisałem w jaką książkę warto przeczytać. Nie ma API, ale rozwiązanie 3rd party działa po niemal dekadzie. Szacun.

Tymczasem wpis o BookWyrm wspomina o możliwości importu danych z innych serwisów. Na przykład z Goodreads. O Biblionetce nic nie ma, ale nie dziwi mnie to. Stwierdziłem, że w sumie może warto robić backup ocen. Albo mieć skrypt, który zescrapuje dane ze strony i zwróci formę łatwą do parsowania.

Nie mam złudzeń, ze względu na różnice językowe to rozwiązanie nie wystarczy do eksportu do BookWyrm. Ale na pewno taką migrację ułatwi. Autor albo nie będzie wymagał interwencji, albo co najwyżej wystarczy zmapować raz. Przypuszczam, że autor plus automatyczne tłumaczenie tytułu pozwoli w wielu przypadkach na określenie tytułu.

Tak czy inaczej powstał taki oto scrapper Biblionetki. I jeśli ktoś przypuszcza, że można w ten sposób pobrać oceny wszystkich użytkowników, to prawdopodobnie ma rację. Publikuję, bo podstawowe, założone użycie to backup własnych ocen.

Zdalna rewolucja

Zastanawiam się ostatnio nad skutkami pandemii i mam wrażenie, że długofalowo najbardziej pamiętną lub też istotną rzeczą nie będzie liczba ofiar, postęp medycyny, tylko… praca zdalna, a w zasadzie zmiana podejścia do niej. Już na początku pandemii żartowano, że dopiero teraz widać, ile spotkań mogło być zastąpionych mailem.

Praca zdalna nie była oczywiście nowością, szczególnie w IT. To co się jednak zmieniło to jej powszechność. Na skutek lockdownu wszystkie firmy dostosowały infrastrukturę i narzędzia. Jak ktoś nie miał VPN dla pracowników w firmie, oferującego dostęp do zasobów firmowych, to szybko go uruchamiał. Jak ktoś miał zdalny dostęp, ale za słaby, by obsłużyć wszystkich pracowników – rozbudowywał infrastrukturę.

Dostosowano także kulturę pracy. Ludzie szybko nauczyli się korzystać z narzędzi do pracy zdalnej, a także pewnego savoir vivre. Nie generuj szumu zbędnego szumu – jeśli masz głośno w domu, to wyciszaj mikrofon, gdy nie mówisz. Zadbaj o przyzwoite tło do rozmowy, jeśli nie masz możliwości w realu, to użyj wirtualnego tła. Miło, jeśli na spotkaniu
mamy włączone kamery, o ile warunki techniczne pozwalają, bo nie gada się do ściany. Proste. Spotkania co prawda nie zniknęły, ale zmieniły się w videokonferencje. Zresztą, już przed pandemią spotkania międzyfirmowe często tak wyglądały. Teraz po prostu jest to naturalne. Zaleta jest taka, że wszyscy mają przyzwoity sprzęt audio.

Duża w tym zasługa rozwoju aplikacji. Usprawnienia, optymalizacje i zabezpieczenia pojawiały się jak grzyby po deszczu. W każdym razie nawet jeśli aplikacje początkowo miały jakieś zgrzyty, to najdalej po paru miesiącach zostały one poprawione. Mam też wrażenie, że w przypadku spotkań miedzyfirmowych łatwiej o wybór sensownej platformy. Większość z nich ma teraz wersje webowe.

Efekt jest taki, że obecnie praktycznie wszyscy w szeroko pojętym IT są gotowi do pracy zdalnej. Zresztą nie tylko w IT. Jest infrastruktura, są procedury, jest kultura pracy, są przygotowani pracownicy. Część firm już się określiła jak będzie wyglądać praca w przyszłości. Część, jak Google, dostosowuje się do nowych warunków, zmieniając zasady wynagrodzeń. Inni zauważają pewne niekorzystne zjawiska przypisywane pracy zdalnej. Osobiście uważam, że raczej wynikają one z ogólnej izolacji, a nie tylko izolacji między pracownikami.

Z pozytywów – praca zdalna spowodowała, że zniknęła masa większych i mniejszych problemów. Zniknęły ryzyka ze zdarzeniami losowymi w trakcie dojazdu, które mogły powodować spóźnienia. Nie ma problemu, że w danym pomieszczeniu jeden pracownik marznie, a drugi w tym samym czasie się poci. Problem ze skupieniem lub przerywaniem pracy można łatwo wyeliminować, w przeciwieństwie do pracy na miejscu w biurze. Jak nigdy widać, że praca to czynność, nie miejsce[1].

W każdym razie z punktu widzenia pracowników nagle okazało się, że można mieszkać na łonie natury, a zarabiać jak w Warszawie. O ile ograniczymy się do Polski, co wcale nie jest oczywiste. W dodatku pracując efektywniej lub bardziej komfortowo. Zresztą nawet ci, którzy mieszkają w miastach odkryli, że zamiast tłuc się dwa razy dziennie godzinę komunikacją miejską w tłoku albo stać w korkach, można ten czas spędzić przyjemniej. Wykonując dokładnie tę samą pracę, za dokładnie te same pieniądze. Czyli z 8h płatnej pracy plus 2h niepłatnego dojazdu zostało 8h płatnej pracy. Taka podwyżka 20%, patrząc na efektywną stawkę godzinową[2].

Z punktu widzenia pracodawcy okazuje się, że dostępni są pracownicy z całego kraju. Albo i świata, jeśli w firmie „urzędowy” jest angielski. Nie trzeba ograniczać się do miasta, w którym jest siedziba firmy. Okazuje się też, że niektóre firmy, wbrew oczekiwaniom pracowników, nie chcą korzystać z zalet pracy zdalnej i zapowiadają powrót do biur, co może stwarzać na rynku okazję do łatwiejszego pozyskania pracowników. Tym bardziej, że część pracowników może już de facto mieszkać gdzie indziej, niż na początku pandemii.

Zastanawiam się, jak i kiedy się to wszystko skończy. Pytania to, czy przy zdalnej pracy stawki powinny być w danej firmie zależne czy też niezależne od miejsca (kraju!) zamieszkania są otwarte. Jest potencjał na wprowadzenie pojęcia dyskryminacji płacowej ze względu na miejsce zamieszkania. Bo dlaczego niby pracownik mieszkający gdzieś na wiosce miałby za tę samą pracę otrzymywać niższe wynagrodzenie, niż ten, który mieszka w centrum dużego miasta? Z drugiej strony, czemu np. mieszkania w dużych miastach miałyby być droższe? Albo – patrząc w drugą stronę – poza dużymi miastami tańsze? Oczywiście nie wszyscy mogą pracować zdalnie, ale nadal w niektórych rejonach udział tych, którzy mogą, jest znaczny.

Tak czy inaczej, zmiany są nieuniknione, a walka z nimi przypomina zawracanie kijem Wisły. Portale pośrednictwa pracy zaczęły oferować lokalizację „zdalna”.

[1] Zastanawiałem się, gdzie to usłyszałem. Co prawda nie udało mi się ustalić, ale pozwolę sobie podlinkować pierwszy wynik wyszukania po tej frazie, bo ładnie opisuje zalety pracy zdalnej i warto przeczytać ten krótki wpis.
[2] Zakładając, że wszystkie godziny pracy są równej wartości, rodzaj wykonywanej pracy nie ma znaczenia i biorąc pod uwagę tylko czas. W praktyce, ze względu na koszt krańcowy czasu pracy, monotonię/nudę przejazdu i dodatkowe koszty zysk pracownika jest w praktyce większy.

Zmiany we free tier w Google Cloud Platform

Tytułem wstępu: Google ma swoją chmurę, czyli Google Cloud Platform, a w ramach niej coś takiego jak free tier, czyli zasoby dostępne bez opłat[1]. Zasoby są niewielkie, dodatkowo podlegające pewnym ograniczeniom, raczej do zabawy. Ale do testów, nauki czy właśnie zabawy – idealne. Między innymi można mieć uruchomioną w ramach compute engine najsłabszą VMkę, czyli f1-micro.

Mail

Jeśli ktoś korzysta z GCP, to zapewne dostał już maila. Dla tych, co maila przeoczyli, krótkie podsumowanie. Od pierwszego sierpnia 2021 instancje e2-micro są bezpłatne (w określonej ilości czasu), natomiast od pierwszego września instancje f1-micro będą płatne. Regiony pozostają bez zmian. Instrukcja zmiany linkowana w mailu dostępna jest tu.

To różne platformy, więc ciężko porównać dokładnie, ale:
f1-micro to 0.2 VCPU i 0.6 GB RAM w cenie $0.0076 (us-central1)
e2-micro to 0.25 VCPU i 1 GB RAM w cenie $0.008376 (us-central1)
Dodatkowo w przypadku e2-micro możliwy jest burst do 2 VCPU.

Google pisze[2]:

As we improve the experience of the Free Tier, we will be introducing the E2-micro VM, which is a part of a second generation VM family.

Wydajność

W przypadku RAM zysk jest oczywisty, natomiast w przypadku CPU – niekoniecznie. Wiele zależy od tego, na jakiej platformie CPU znajduje się obecnie VMka, i na jakiej wyląduje po przeniesieniu. Tabela platform CPU dla serii N1 i E2 jest dość skomplikowana. Jednak patrząc na base frequency, przeciętnie powinno być szybciej.

I jeszcze wynik cat /proc/cpuinfo z mojej instancji f1-micro:

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU @ 2.30GHz
stepping : 0
microcode : 0x1
cpu MHz : 2299.998
cache size : 46080 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology n$
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs
bogomips : 4599.99
clflush size : 64

Jak się zmigruję to uzupełnię wpis, co dostałem po migracji i jak wrażenia.

Migracja

Wczoraj zmigrowałem maszynę na e2-micro. Migracja błyskawiczna i bezproblemowa. Zgodnie z instrukcją zatrzymać instancję, wyedytować typ, zapisać zmianę, uruchomić maszynę.

Po migracji dostałem dokładnie ten sam procesor. Tyle, że teraz cat /proc/cpuinfo pokazuje dwa. Jeśli chodzi o osiągi i wydajność w praktyce, to najlepiej widać to na obrazku.

Wykorzystanie CPU na f1-micro i po migracji na e2-micro w GCP free tier
Wykorzystanie CPU na f1-micro vs e2-micro

Migracja chwilę przed 12:00, później wzrost obciążenia spowodowany porządkami, chwilę po 18:00 koniec ostatnich ręcznych prac. Jak widać, główny zysk wynika ze wzrostu mnożnika z 0.2 do 0.25 VCPU. Ponieważ przydział jest dynamiczny, procesy jednowątkowe także skorzystają na zmianie parametrów.

Podsumowując, warto migrować, bo e2-micro w stosunku do f1-micro oferuje 66% więcej RAM i 25% więcej CPU.

[1] Wymagane jest podpięcie karty debetowej, a po przekroczeniu puli darmowych zasobów jest automatycznie naliczana opłata za przekroczoną część.
[2] Nawiasem, wysłaniem tego maila Google Cloud Platform zdobyło u mnie sporo punktów sympatii. Mogli przecież np. zamieścić info o zmianie cenników free tier na blogu i billować nieuważnych, albo wysłać suchego maila o zmianach w cenniku. Wiele firm tak właśnie by postąpiło. A tu osobne, czytelne powiadomienie, z instrukcją migracji. Miło.