Lata 50. XX wieku. Tytułowy młody przyrodnik przypadkiem trafia do BBC, żeby popularyzować zwierzęta. Początkowo pomaga tylko przy organizacji programów, w których na żywo w studiu prezenter pokazuje zwierzę i o nim opowiada, ale kiedy prezenter ciężko choruje, zastępuje go, co rozpoczyna jego wielką telewizyjną karierę. Wtem telewizja sypie kasą i zatrudnia Attenborough i innych do wypraw w celu pozyskania zwierząt z ich naturalnych miejsc przebywania. Przypominam, lata 50 - Europa świeżo po wojnie, reszta świata jeszcze kolonialna i w taki klimat wjeżdża trzech gostków, którzy nie znają języka, ale mają trochę znajomości i dużo towarów na wymianę (są wspomniane paciorki!) i zaczynają rozpytywać o dzikie zwierzęta. Podróżują do Gujany (jeszcze Brytyjskiej) po mrówkojady, potem do Indonezji po warana z Komodo, wreszcie po pancerniki z Paragwaju. I jakkolwiek trudne jest pozyskanie żywego i zdrowego zwierzęcia, tak znacznie trudniejsze jest utrzymanie go przy życiu i skomplikowania logistyka transportu. Jak wiadomo skądinąd z książek Geralda Durrella, bardzo pomocna jest wykafelkowana łazienka.
Książka jest urocza, staromodna, trochę trzeba przymknąć oko na białych w dziczy, załatwiających wszystko przez kolonialne znajomości, spierających się z lokalnymi urzędnikami, którzy bynajmniej nie są nastawieni frontem do klienta; nie ma Internetu i komórek, a co gorsza, nawet w zasadzie nie ma telefonów, zdarza się, że jest tylko radio. Cały ekwipunek, w tym wyżywienie, trzeba wlec ze sobą i mieć nadzieję, że umówiony kilka tygodni wcześniej kapitan z łodzią pojawi się tam, gdzie ma się pojawić, a łódź nie będzie przeciekać. Gorzej, trzeba znać zwierzęta, ich potrzeby i wymagania oraz zapewnić je do czasu odtransportowania do jednego z brytyjskich ogrodów zoologicznych. I jak w przypadku karmienia warchlaka pekari mlekiem co trzy godziny trzeba mieć mleko, butelkę i dwie sprawne ręce, tak żeby dowieźć warana czy manata, trzeba trochę więcej wysiłku. Bardzo przyjemna lektura, nie wiem, czemu skończyłam dopiero za drugim podejściem.
#25
[26.02.2026]
... a kolacja będzie w Czechach, ale o tym później[1]. Zwykle najpierw załatwiałam główną atrakcję wyjazdu, w tym przypadku będzie to - wiem, znowu - Liberec, ale ponieważ skończyły mi się niemieckie kapsułki do prania, a mieliśmy wracać w niehandlową niedzielę, to tym razem zaczęłam od Niemiec. Jak się pewnie nietrudno domyślić, mam słabość do miast przedzielonych, piękny wiosenny dzień, po obiedzie tuż przed zachodem słońca namówiłam rodzinę na krótki spacer nad rzekę, gdzie po jednej stronie Polska, a po drugiej Niemcy. Kontrast niestety widać, drugą widoczną rzeczą po muralu na baszcie jest wielki napis ZIGARETTEN, tyle spojrzeń. Było trochę narzekania, bo ciągle pod górę, a przecież nawet nie zaproponowałam wejścia na którąś z wież (a są!), ale przez dobry obiad i zakupy - tym razem przemycałam z Niemiec dla kolegi Hubbę Bubbę, która u nas jest raczej niedostępna - nikt się nie obraził. Aż tak. Kuszą mnie jeszcze dwa wyglądające ciekawie muzea i chciałabym okazję, żeby pokrążyć trochę więcej po uliczkach starówki, bo bardzo urokliwe; to nie jest moje ostatnie słowo w kwestii Goerlitz.
Zapiekanka z ziemniaków, boczku, kapusty kiszonej i co ino. Z serem.[1] Dobra, figura retoryczna, nie było kolacji, bo był późny obiad (i dużo!), ale mieliśmy kupione w niemieckim REWE przekąski i napoje.
GALERIA ZDJĘĆ i wcześniej: 2025 i 2024.
A decade ago, I had the pleasure of organise DressCode — an online competition designed spark teenage students’ interest in computer science. Its participants completed a series of programming challenges one of which was to implement a few sorting algorithms. To make it more engaging, I’ve created a JavaScript harness which visualised the algorithm by animating a clowder of longcats. Feedback was positive, I was told, with students appreciating the visual element.
I’ve finally dusted off and updated the code hoping it will be useful to, for example, computer science teachers. After all, learning sorting algorithms through an interactive animation is more engaging than working with static lists of numbers. Following video shows that animation which can also be seen live. &&
The code is available in the dresscode-sorting repository. It includes en_GB and pl_PL directories, each containing HTML file (to display the visualisation in a web browser) and a JavaScript file with placeholder algorithms and usage documentation. All fully localised in English and Polish respectively.
The harness is in the js alongside a solutions.js file that implements a handful of algorithms: Insertion sort, Selection sort, Bubble sort, Quick sort and Heap sort.
The repository can be used either to demonstrate the algorithms or as a task for participants to complete:
<script src="algorithms.js"></script> line from the HTML file to avoid polluting the interface with placeholder entries.js/solutions.js file and the <script src="../js/solutions.js"></script> line from the HTML file.Mamy trzy główne topologie czy też modele działania usług w sieci: scentralizowany, sfederowany[1] i rozproszony. Każdy z nich ma swoje wady, zalety i… problemy. W tym wpisie będzie o tym, czemu federacja nie zawsze jest dobrym pomysłem, jaki problem wprowadził z powodu wyboru sfederowanego modelu Mastodon. I co można z tym zrobić. Wstęp Na początek dla …
Czytaj dalej „Sfederowany problem”
Artykuł Sfederowany problem pochodzi z serwisu Pomiędzy bitami.
Tym razem nie pisałam, bo czytałam wciągającą grubą książkę oraz po dwóch miesiącach unikania tematu wróciłam na zajęcia jogi.
Trzy przyjaciółki z Belfastu - Robyn, Saoirse i Dara - dowiadują się o śmierci czwartej, Grety i, mimo braku kontaktu przez lata od zakończenia szkoły, przyjeżdżają do Donegal na pogrzeb. Problem w tym, że sprawa jest co najmniej dziwna, a zwłoki w trumnie nie do końca przypominają Gretę. Panie stwierdzają więc, że wyśledzą, co tak naprawdę się stało i wpadają w sam środek afery, która ciągnęła się od czasów ich dzieciństwa. Zainteresowałam się, bo to serial ze stajni twórców doskonałych “Derry Girls”, a do tego kryminał. Niestety, jakkolwiek doceniam slapstickowy humor i niespodziewane zwroty akcji, tak niespecjalnie udało się to pożenić z całkiem poważną historią sprzed lat oraz klimatem prawie że z horroru. Zabawne, ale niekoniecznie.
Za to zachwycił mnie film “The Life of Chuck”, o którym nie wiedziałam nic poza tym, że na podstawie opowiadania Stephena Kinga. Trzy achronologiczne epizody, w których - w estetyce przypominającej scenografię Wesa Andersona - pokazana jest historia Chucka, pechowego, choć utalentowanego chłopca. Na końcu przewrotna pointa. Dla fanów Toma Hiddlestona i musicalu - świetna scena z tańcem, jak nie jestem fanką tego typu rozwiązań fabularnych, to naprawdę ładnie zagrany kawałek. I Mark Hamill w jednej z ról.
Wymieniałem ostatnio jeden ze smart–włączników, po kilku latach przestał nadawać wifi. Niestety zdarza się tak. Nawet Shelly mają problemy z kondensatorami, niefortunnie objawiające się lata po gwarancji. Nie podejrzewam producenta o złą wolę, po prostu nie da się przetestować produktu przez tak długi czas.
Moja instalacja w całości działa na wydzielonej sieci WiFi. Dlatego, że tak: a) łatwiej, nie potrzebuję kolejnego interfejsu sieciowego; b) większość sprzętu działa tylko na 2.4GHz albo nie szybciej niż 802.11n (Wi-Fi 4); c) ‘S’ in IoT stands for ‘Security’. Niemniej niedługo może będę musiał wprowadzić nową warstwę (ZigBee? Matter?), żeby bardziej kontrolować głowice na kaloryferach – Danfoss Eco (wersja niesieciowa/nie BT) dostaje ode mnie złotą 💩 za trudność obsługi interfejsu.
Mój główny sprzęt do zarządzania zasilaniem to:
Sonoffy: Basic, Dual, Touch, oraz klony Wemos D1 Mini; wgrany firmware ESPEasy
Sonoff jest wygodny, bo ma wbudowany zasilacz. Dosyć przyjemny w lutowaniu, zazwyczaj też dostępny jest GPIO. Umożliwia to np. dodanie czujnika wilgotności.
D1 mini mają postać miniaturowej płytki. Dostępne dużo więcej GPIO i można upchać w ciasnych miejscach, jak odświeżacz. Minusem jest potrzeba zewnętrznego zasilania; można dostarczyć przez USB albo wlutować mały przetwornik 230V na 3.3V lub 5V.
Konfiguruję je do komunikacji przez MQTT. Ewentualnie stan GPIO można też zmieniać przez HTTP, jeśli zachodzi potrzeba zrobienia czegoś na szybciocha.
Shelly różne odmiany mini oraz jedno z samym pomiarem zużycia schowane w listwie zasilającej
Jak już pisałem, są cute. Oryginalne oprogramowanie jest dla mnie bardziej niż odpowiadające. W zasadzie bezproblemowe. Jedno mi padło prawdopodobnie z uwagi na wspomniane kondensatory.
Dziwnie się zachowują przy aktywowaniu oszczędzania energii – tracą łączność, przez co reagują na polecenia z kilkuminutowym lagiem. No to nie oszczędzamy. Poza tym spoko i bez problemu z MQTT – kontrola jak i przesyłanie stanu.
Tuya smart wtyczki
Pierwsze sprzęty z raportowaniem zużycia mocy – dlatego kupione. Obsługa jest partyzancka. Trzeba podłączyć je do chińskiej chmury, skąd za pomocą tinytuya wyciąga się klucz urządzenia i potem można je sterować lokalnie. W tym celu napisałem kilka linijek w Pythonie jako glue code. Z tego co mi mignęło, to w nowszych niż moja wersjach OpenHAB jest już zintegrowana obsługa.
Jedyną zaletą jest cena. Ostatnio za dopuszkowy włącznik z obsługą przycisku zapłaciłem 17 PLN. No i może dostępność niedużych zintegrowanych wtyczko–gniazdek.
Ciekawostka oryginalnego firmware: moja Aleksa wykrywa niektóre z urządzeń i pozwala nimi bezpośrednio sterować. Nie korzystam z tego. Aleksiejowi daję dostęp poprzez ha-bridge. Centrum mojej sprytnej chałupki jest OpenHAB i to on jest źródłem prawdy o stanie domu.
038/100 of #100DaysToOffload
John Delano jest wykładowcą uniwersyteckim, wykłada dość nieortodoksyjne kursy z czasów Zimnej Wojny; nieortodoksyjne, bo nie opowiada się po żadnej ze stron, tylko pokazuje wzajemne oddziaływania na siebie obu frakcji. Ale aktualnie w ogóle nie wykłada, bo wziął urlop, żeby napisać bestseller o osobistych obserwacjach z ulubionego okresu historii USA, z czasów, kiedy dorastał. Zupełnie mu nie idzie, po części dlatego, że właśnie umarł jego ojciec, przedostatnia nić łącząca do z przeszłością. Ostatnią ostoją wspomnień jest jego brat, z którym jednak nie kontaktował się od lat, od czasu, kiedy odmówił mu wsparcia. Snuje więc luźne refleksje o tym, co było i wtem wpada na pomysł, że napisze inną książkę - o tym, jak bracia się ze sobą godzą i jaki na ich losy miały wpływ lata 50. i 60.
Autor opowiada o bardzo wąskiej perspektywie osoby dorastającej na jednym z amerykańskich przedmieść, a dygresje przeplata dość błahą historią pisarskiej blokady i zapaści kariery starzejącego się Delano. Niekoniecznie wciąga kilkadziesiąt lat po opisywanych czasach, nawet współczesny wątek próby rozwiązania konfliktu między zupełnie sobie obcymi braćmi nie jest specjalnie ciekawy.
#24
Nie pisałam, bo byłam trochę na feriach, o czym niebawem.
Wspominałam, że czekam na ekranizację “Grown Ups”? Ale nie wspominałam, że już jest[1] serial oparty na dwóch książkach Keyes - “Wakacje Rachel” i “Jest tam kto?”. Zacznę od zalet, bo serial (pierwszy sezon na razie, ale czy będzie więcej?) niestety ma też wady. Wszystkie 5 sióstr Walsh jest obsadzonych i zagranych świetnie, a dynamika między nimi jest fantastyczna. Doskonały jest też Papa Walsh, ciepły i zawsze dostępny dla swojego głośnego i kapryśnego przychówku. W tle Blackrock, gdzie mieści się jedno z biur firmy, w której pracuję; idę następnym razem szukać domu Walshów (wiem, nie ma gwarancji, że rzeczywiście jest w Blackrock). Na tym się kończą zalety.
A wady… Czemu połączone są dwa niezależne, bogate wątki dwóch sióstr, i to w taki sposób, że nie da się przywrócić czystej miłości między Anną i Rachel?! Wprawdzie losy Anny kończą się pewną klamrą, ale historia rehabu Rachel urywa się w niesatysfakcjonującej połowie, pozostali pensjonariusze Cloisters potraktowani są dość szkicowo, a szkoda (co z historią Jacquie?), może kolejny sezon pociągnie ten wątek. Czemu zaczęto od środka cyklu, pomijając ciążę Claire (rzecz się dzieje 6 lat później, i już wiadomo, jak się skończył związek Claire)? Ale najgorszą rzeczą, jaka się temu serialowi przydarzyła, jest postać Mamy Walsh, w książkach nieco narcystycznej i zaabsorbowanej sobą starszej pani (wiem, jest ledwo pod sześćdziesiątkę), ale kochającej i wiążącą ze sobą całą rodzinę. Tu Mama Walsh jest kostyczną zołzą, na każdym kroku kąśliwie i zwyczajnie przykro komentującą każdego, a zwłaszcza Rachel, u której zupełnie nie dziwi zanurkowanie w używki, bo kto by wytrzymał cotygodniowe spotkania z osobą skrajnie nieprzyjemną i toksyczną. Zniknęła cała warstwa ciepła i humoru z książek, została sama drama, czasem aż za dużo dramy.
Oczywiście, że obejrzę kolejne sezony, jeśli będą, ale jest mi przykro, bo był potencjał, ale nie wyszło tak, jak powinno.
[1] Jest, aczkolwiek trudno dostępny poza RTE.
Ten tydzień był wyjątkowy, dodatnie temperatury nadrobiły to, co miasto położyło. Bo Miasto Gdańsk w sezonie 2025/2026 totalnie zawaliło odśnieżanie chodników i ścieżek rowerowych. Od opadów śniegu w styczniu było coraz gorzej, po drodze marznący deszcz zamienił trakty w lodowe odcinki specjalne. Wystarczy dodać, że pojawiły się nieironiczne rady zakupu raczków, aby umożliwić poruszanie się.
Przez powyższe drogę do biura pokonywałem samochodem. I mnie to męczyło. Korki, nieprzewidywalne czasy przejazdu i dyskomfort wynikający z konieczności poruszania się najgorszym rodzajem pojazdu do miasta.
Za to w piątek, jak Słońce osuszyło DDRy i roztopiło część zasp… mordka pod kominem cieszyła mi się w obie strony, gdyż jechałem w końcu hulajnogą. Prognoza pogody mówi, że tak będzie cały przyszły tydzień.
Wczoraj nawet małżonka zabrała się ze mną na rower, chociaż zaplanowana trasa była kiepska (za to odwiedzająca brakujące squadraty). Fajnie było w końcu pokręcić po blisko dwumiesięcznej przerwie. Tęsknotę realizowałem planując przyszłe trasy w Komoocie. To będzie niezły 🚴🏻 rok.
037/100 of #100DaysToOffload
CDATAI’ve previously written about escaping special characters in HTML using character entities. This article discusses another method of achieving a similar result: CDATA sections. It explains what CDATA is, how it’s used in XML, SVG, MathML etc., when it can be included in HTML5 file and how it impacts XHTML.
A CDATA section in an XML document instructs the parser to interpret the enclosed text literally, as pure character data, not as markup. It starts with the <![CDATA[ sequence and ends with the ]]> sequence. Within a CDATA section, characters which normally have special meaning — namely less-than sign and ampersand — are processed verbatim without the need to escape them. It provides a convenient way to embed1 styles and scripts without having to worry about special characters as seen in Fig. 1:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg">
<title>Is it Xmas?</title>
<rect width="64" height="64"/>
<script><![CDATA[
let day = new Date().getDate();
let fill = 18 <= day && day <= 25 &&
new Date().getMonth() == 11 ?
day == 25 ? '283' : 'cb4' : 'e67';
document.querySelector('rect')
.setAttribute('fill', '#' + fill);
]]></script>
</svg>
Fig. 1 An SVG image which uses CDATA section to embed a script.
Typically, HTML doesn’t recognise CDATA sections. Using them to escape scripts or styles (analogous to the SVG example in Fig. 1) is invalid. On the other hand, script and style HTML elements are raw text elements whose ‘text […] must not contain any occurrences of the string ‘</’ followed by characters that case-insensitively match the tag name of the element followed by one of tab, line feed, form feed, carriage return, space, greater-than sign or solidus [i.e. forward slash].’citation In plain English, anything other than closing tag is valid inside of a raw text element. Fig. 2 shows how the rule works in practice:
<!DOCTYPE html>
<title>Raw text element test</title>
<script>alert('</scrip');</script> ✔ valid
<script>alert('</script');</script> ✔ valid
<script>alert('</script ');</script> ✘ invalid
<script>alert('</script>');</script> ✘ invalid
<script>alert('</scriptus');</script> ✔ valid
<script>alert('<\/script>');</script> ✔ valid
Fig. 2 Demonstration of valid and invalid markup for embedding scripts in an HTML document.
Most JavaScript and CSS code will naturally follow this restriction. If it doesn’t, a convenient solution is to escape forward slash, i.e. write '<\/script>' or '<\/style>'. For simplicity’s sake and peace of mind it’s prudent to always escape ‘<\/’.
HTML accepts CDATA sections inside foreign elements, i.e. elements from the MathML and the SVG namespaces. For example, the image from Fig. 1 can be included in an HTML file as shown in Fig. 3. Since the script element inside of the embedded SVG is foreign, so the HTML rules described above do not apply. Instead, CDATA section can be used to escape the contents of the script.
<!DOCTYPE html>
<title>Is it Xmas?</title>
<svg>
<rect width=64 height=64 />
<script><![CDATA[
let day = new Date().getDate();
let fill = 18 <= day && day <= 25 &&
new Date().getMonth() == 11 ?
day == 25 ? '283' : 'cb4' : 'e67';
document.querySelector('rect')
.setAttribute('fill', '#' + fill);
]]></script>
</svg>
Fig. 3 An HTML document with embedded SVG image containing an embedded script.
This creates a curious duality where some XML syntax rules seem to apply but others do not. CDATA sections are recognised and there are no special parsing rules for script and style elements. At the same time, attribute arguments do not need to be quoted. This is of course because ultimately HTML5 standard governs how such file is handled.
Another interesting observation is that embedded SVG images and MathML formulæ in HTML become part of the containing Document Object Model (DOM). As a result, scripts and styles can often be moved outside of the foreign element.2 For example, document from Fig. 3 can be rewritten with script as sibling of svg as shown in Fig. 4. Since the element is no longer inside of svg it’s parsed according to typical HTML rules.
<!DOCTYPE html>
<title>Is it Xmas?</title>
<svg><rect width=64 height=64 /></svg>
<script>
let day = new Date().getDate();
let fill = 18 <= day && day <= 25 &&
new Date().getMonth() == 11 ?
day == 25 ? '283' : 'cb4' : 'e67';
document.querySelector('rect')
.setAttribute('fill', '#' + fill);
</script>
Fig. 4 An HTML document with embedded SVG image whose script was moved outside of the SVG foreign element.
I first looked at XHTML handling of script element nearly two decades ago. XHTML follows XML syntax rules where a convenient way to escape embedded scripts and styles is to use CDATA section in exactly the same way it was used in Fig. 1. However, a problem may arise if user agent interprets the file as HTML. This can happen if it’s saved with .html file extension or sent with incorrect content type. Compare the following:
script-test.xhtml sent with Content-Type: application/xhtml+xml; charset=utf-8 andscript-test.html sent with Content-Type: text/html; charset=utf-8.The files are identical, but embedded script executes only in the former. In the latter, web browser doesn’t recognise the CDATA section and treats <![CDATA[ and ]]> as part of the JavaScript code resulting in syntax error. To avoid such issues, a ‘standard-agnostic’ syntax can be used where CDATA markers are wrapped in a comment as demonstrated in Fig. 5. Block comments shown because they will work in JavaScript and CSS.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>XHTML scripting</title></head>
<body><script>/* <![CDATA[ */
alert('64 < g₆₄')
/* ]]> */</script></body>
</html>
Fig. 5 An XHTML document with embedded JavaScript code that’s going to work even if the file is parsed as HTML.
MarkupContent when parsed asXHTMLHTML
<script><![CDATA[
alert('64 < g₆₄')
]]></script>
alert('64 < g₆₄')
<![CDATA[
alert('64 < g₆₄')
]]>JavaScript syntax error
<script>
alert('64 < g₆₄')
</script>XML syntax error
alert('64 < g₆₄')
<script>/* <![CDATA[ */
alert('64 < g₆₄')
/* ]]> */</script>
alert('64 < g₆₄')
/* <![CDATA[ */
alert('64 < g₆₄')
/* ]]> */
Fig. 6 Results of parsing different script element depending on whether file is recognised as XHTML or HTML.
N.B., even though CDATA sections eliminate many instances where escaping is necessary, they are not a substitute for validating user input. For example, name = request.GET.get('name', 'world'); print('<text>Hello, <![CDATA[', name, ']]>.</text>') is not correct: adversary can execute Cross-Site Scripting (XSS) attack with ‘]]>evil payload here<![CDATA[’. Text inside of a CDATA section requires instances of ‘]]>’ to be replaced by ‘]]>]]><![CDATA[’.
<![CDATA[ sequence and ends with ]]>. Any text inside of it is parsed literally and not treated as markup.</’ sequence needs escaping in script and style elements; ‘<\/’ can be substituted in its place./* <![CDATA[ */ … code goes here … /* ]]> */) avoids syntax errors if file is mistakenly parsed as HTML.1 Within this article, embedding means putting source of one file inside of the source of the other. For example, copying SVG source and pasting it directly into an HTML file, as opposed to referencing the image with img element. In context of SVG images such image is often called an inline SVG. However, to avoid confusion with an inline style — which is a similar but distinct feature from embedding styles — this article doesn’t use that nomenclature. ↩
2 In CSS, one exception is @scope. Without scope root specified, it’s scoped to style’s parent element. In JavaScript, moving the script affects which part of Document Object Model (DOM) tree is available when the code executes. For completeness, I feel compelled to also mention document.write, but that method should never be used. ↩
Dawno nie włączałem radia. RNŚ w tym wypadku. I właśnie wczoraj rano w radio RNŚ posłuchałem audycji. Trafiłem nieco w środek wątku o tym, czy bieżący rok jest przestępny, czy nie jest. No i słyszę z ust prowadzącego, że rok nie jest przestępny, bo dwadzieścia sześć nie dzieli się przez cztery. Ale gdyby się dzieliło, to by był przestępny. …
Artykuł Rok przestępny pochodzi z serwisu Pomiędzy bitami.
Mam takie słuchawki przewodowe Sony. Nauszne, składane. Prawdopodobnie MDR-ZX110. Kupione wieki temu, na pewno mają ładnych kilka lat. Używam ich czasem przy komputerze, częściej do filmów oglądanych na telefonie i do grania na basie. Były niedrogie[1], wyglądały porządnie. Z perspektywy: zdecydowanie się sprawdziły i były warte wydanych pieniędzy. Jak to zwykle bywa, w słuchawkach tego typu pierwsze …
Artykuł Cena dostawy pochodzi z serwisu Pomiędzy bitami.
Genly AI, przedstawiciel Ekumeny - o której pewnie można przeczytać we wcześniejszych tomach cyklu, mogłam i ja, ale do momentu pojawienia się nazwy “Hain” nie byłam świadoma, że to kawałek większej całości, a nie samodzielny utwór - od jakiegoś czasu przebywa na Gethen, planecie w trakcie epoki lodowcowej i próbuje delikatnie, nie naruszając samostanowienia władców planety, przekonać ich do zjednoczenia i dołączenia do wspólnoty światów. Tu trochę przypomnieli mi się Strugaccy i “Trudno być bogiem”, ale podejście Genly’ego jest mniej protekcjonalne, chociaż zasady świata, do którego przybył, są mu obce. Getheńczycy wyznają zasadę minimalnej ingerencji, nie starając się za wszelką cenę zmienić nieprzyjaznej planety, ale dostosowując się do jej klimatu i ograniczeń. Do tego są hermafrodytami, podział na płci uaktywnia się naturalnie tylko w okresie kemmeru (analogu rui), ale nie jest przypisany do osoby na zawsze. To rozdziela kulturę od rozmnażania, a władzę od seksu, dodatkowo osłabia potrzebę przemocy i wojen (chociaż oczywiście ich nie wyklucza, tak jak animozji między krajami, oddzielonymi od siebie arbitralną linią na mapie). Nagle to, co uważamy za normę u ludzi, staje się wynaturzeniem, Getheńczycy obserwują wysłannika z zaskoczeniem, a czasem nawet z odrazą. Autorka przeprowadza Genly’ego przez sporo politycznych trudności, dzięki czemu zaprzyjaźnia się z wygnanym przez króla Karhidu Estravenem i razem z nim, prawie jak zdobywcy bieguna, każe im wędrować przez skrajnie nieprzyjazny świat na krawędzi śmierci. Rodzi się z tego głęboka przyjaźń mimo różnic między nimi. Tak głęboka, że kiedy na Gethen przybywają oczekujący na wyniki rokowań Genly’ego inni przedstawiciele ludzkości, ten jest negatywnie zaskoczony ich obcością.
No nie podeszła mi ta książka. Z otchłani FB wyciągnęłam, że zaczęłam ją czytać w 2018, potem podjęłam kolejną próbę, a skończyłam dopiero za trzecim podejściem. I nie jest to wina autorki, raczej tego, że z wiekiem zmienia mi się gust czytelniczy i nadmierne filozofowanie nawet przy arcyciekawej konstrukcji świata mnie nie wciąga. Rozumiem wymowę historii, rozumiem eksperyment myślowy, w którym to, co dla nas “normalne”, zostaje odwrócone, ale nie czuję tego.
Inne tej autorki.
#23