Konferencja „Cyberdoświadczenie”

Byłem wczoraj w Krakowie na organizowanej przez Koło Naukowe Performatyków UJ i Katedrę Performatyki UJ konferencji naukowej pt. „Cyberdoświadczenie”, na której mówiłem o polskich generatorach poezji. Dla wszystkich zainteresowanych zamieszczam pod poniższym linkiem prezentację, którą pokazywałem:

ThatCamp

Byłem wczoraj w Warszawie na (nie)konferencji ThatCamp. Dla zainteresowanych poniżej link do mojej prezentacji:

Do tego należałby się jeszcze komentarz na temat symulacji, którą pokazywałem (a której nie ma online). Postaram się dodać go do tego wpisu, jak tylko znajdę na to chwilę czasu.

Hiperteksty i MessageBox’y

Ostatnio (6 sierpnia) byłem w Głośnej w Poznaniu na prowadzonych przez Mariusza Pisarskiego warsztatach „Piksel i lira”, poświęconych pisaniu hipertekstów przeznaczonych do czytania zarówno na komputerach, jak i urządzeniach przenośnych. Nie wnikając głębiej w same warsztaty (fajne były:), napiszę tylko, że rozmawiałem też przy okazji z nim na temat hipertekstu, który piszę. Hipertekstowi nadałem formę windowsowego kreatora („wizarda”) używając obficie wszystkiego, co windowsowe GUI ma do zaoferowania. Nie będę pokazywał tu wszystkiego, skupię się tylko na jednej z atrakcji — MessageBox'ach.

Pamiętacie krążące w internecie jakąś dekadę temu pliki uruchamiające sekwencję komunikatów, której nie można było przerwać i trzeba było mozolnie klikać OK? O ile złośliwość takich zabaw do mnie nie trafia, to sama koncepcja budowania narracji w taki sposób spodobała mi się. Zresztą sam MessageBox pod tym względem spodobał mi się nawet wcześniej, gdy dopiero uczyłem się programować i trafiłem gdzieś na program pozwalający definiować parametry dla wywołań systemowej funkcji int MessageBox(…) — tekst, tytuł, ikonkę, przyciski — kusiło, żeby wpisywać w te komunikaty cokolwiek, żeby tylko się nimi pobawić, żeby się nacieszyć tym, że oto udało mi się wyświetlić komunikat z własnym tekstem.

Pisząc hiperfikcję zdecydowałem się powrócić do tych pierwszych fascynacji możliwością tworzenia interfejsów i między innymi bawienia się okienkami komunikatów. Powstało w ten sposób coś takiego, jak w poniższej przykładowej leksji (kliknij link „milczeniu”):


Oczywiście w praktyce te komunikaty wyglądają lepiej — są systemowymi komunikatami, tytuły mają w pasku tytułu okna, a nie w treści komunikatu, mają systemowe ikonkami i przyciski Tak/Nie zamiast OK/Anuluj — czego niestety na stronie internetowej zrobić się nie dało. Wizualnie wygląda to jak w kolejnym przykładzie (w którym notabene próbuję wpleść w narrację systemowy przycisk „Ponów próbę”):

Okienka dialogowe

Zabawa jest fajna, okazuje się jednak, że z MessageBox'ami jest pewien problem: można wybierać tylko z pewnego wąskiego zestawu przycisków i ikonek. Takie ograniczenia oczywiście pobudzają kreatywność, jak w przykładzie z „Ponów próbę”, jednak kusi, żeby w taką kaskadę wpleść również komunikaty z własnymi napisani ma przyciskach. Okazuje się jednak, że tu sprawa jest trudniejsza. Można co prawda zrobić własne okno podobne do systemowego, ale wtedy komunikat przestanie wyglądać systemowo na innych wersjach Windowsa. Trzeba więc modyfikować okna kontrolowane przez system. Tu sprawa jest trudna, ale nie tak beznadziejna jak w przypadku komunikatów w przeglądarce — aplikacje systemowe mogą bez ograniczeń korzystać z niskopoziomowych wywołań WinAPI. Ponieważ jednak pisałem w C#, w którym nie da się tego prosto zrobić, odpuściłem.

W Głośnej Mariusz Pisarski namawiał mnie on, żeby ten hipertekst opublikować nie tyle jako hipertekst, co jako narzędzie do tworzenia hipertekstów. Istotną częścią mojego hipertekstu jest własna kontrolka, która wyświetla tekst z linkami, która pozwala definiować podstawowe formatowanie, ale nie wykorzystuje w tym celu silnika przeglądarki, więc unika się problemów związanych z coraz to innym działaniem kolejnych wersji IE.

O ile upraszcza to wrzucanie na formatkę tekstu, to obsługa kliknięć w dalszym ciągu programowana jest w C#. Aby było to narzędzie dla pisarzy (a nie tylko progra­mistów), potrzebny byłby zatem wizualny edytor pozwalający definiować działanie linków (bo nie chodzi tu tylko o <a href="…">, ale również o linki warunkowe, losowe i stretch­text; o linkach wywołujących MessageBox'y nie wspominając).

Do stworzenia takiego edytora przymierzałem się już wcześniej, kiedy programowałem linki warunkowe do „Popołudnia, pewnej historii…”, jednak najsensowniejszym rozwią­zaniem byłaby edycja linków w formie grafu przejść, a w żadnym znanym mi środowisku programistycznym nie ma kontrolki wyśietlającej graf. Kilka razy przekładałem więc pomysł na niedookreślone „później” i dopiero teraz się za to zabrałem.

Moim celem było napisanie aplikacji rysującej grafy, a nie bawienie się MessageBox'ami. Jednak czytając w internecie o WinApi natrafiłem na stronę „Tuning MessageBox-a”. Pokusa, żeby to wypróbować, była oczywiście na tyle silna, że czem prędzej to zrobiłem. I osiągnąłem to, czego w C#'ie nie byłem w stanie — napisałem sobie funkcję wyświetlającą MessageBox'y ze zmienionymi napisami na przyciskach i własną ikonką:

Okienko komunikatu ze zmienioną ikonką i tekstem przycisku

post scriptum

A z samych warsztatów (poza wiedzą o tym, że np. można HTMLa wyeksportować na Kindla, oraz jak pisać leksje, aby narracja była spójna pomimo tego, że tekst jest ergodyczny) wyniosłem jeszcze jeden dość istotny wniosek: dla humanisty nawet stworzenie kilku linkujących do siebie plików HTML jest przerażające.

Zresztą, dlaczego HTML jest tak zrobiony, że tych plików musi być kilka? Wolałbym jeden. Będę miał jeden. Napiszę własny edytor i będę miał.