Blog (31)
Komentarze (132)
Recenzje (0)

Spectrum dla magistra

@SiplasSpectrum dla magistra25.10.2014 02:59

Rozczuliły mnie teksty macminika opisujące historię Spectrum. Sam mam bogatą kolekcję wspomnień związanych z użytkowaniem tych zabawek. Jedna z takich historii bezpośrednio wiąże się z moim akademickim, a co za tym idzie, i zawodowym bytem.

Swoją edukację akademicką rozpocząłem już dosyć dawno temu, w 1980 roku. Był to czas historycznie trudny i ciekawy zarazem. Nie tylko z powodów politycznych. Był to czas, gdy szczytem technologicznej nowoczesności był stereofoniczny magnetofon Finezja i radziecki kalkulator Elektronika z funkcjami matematycznymi. Studiowałem wytrwale przez całe sześć lat, w tym dwa razy na pierwszym roku. I właśnie gdy po raz drugi przyswajałem sobie materiał pierwszego roku dane mi było zapoznać się z wyjątkowym na tamte czasy komputerem ZX-81.

Już wtedy byłem zafascynowany programowaniem na moim kalkulatorze HP-33C, w którym można było utworzyć sekwencję 49 poleceń, dzięki czemu można było zautomatyzować powtarzalne obliczenia np. podczas ćwiczeń w laboratorium. Spisywało się to doskonale przy rachunku liczb zespolonych i dawało mi spory handicap w stosunku do moich kolegów. Poza tym kalkulator stosował Odwrotną Notację Polską (RPN), co z kolei było powodem niekończących się pojedynków i sporów z posiadaczami kalkulatorów Texas Instruments, które oferowały możliwość programowania w 80 krokach, ale w trybie klasycznym. W praktyce okazywało się, że tam, gdzie ja mieściłem się w 49 instrukcjach, "teksasowcom" czasami brakowało jednego lub dwóch kroków do uzyskania tego samego efektu.

Gdy w moje ręce trafił ZX-81 było to jak olśnienie - niewyobrażalna ilość dostępnej pamięci, normalna klawiatura, cały ekran TV do dyspozycji. A do tego można było pograć w jakieś kretyńskie "ping-pongi". Całymi nocami wymyślałem sobie matematyczne problemy, które potem wytrwale rozwiązywałem tworząc do nich programy, w których następnie szukałem błędów i niedoróbek tylko po to, żeby mieć powód do napisania wszystkiego od nowa. Zabawa była fantastyczna, ale i irytująca - do dyspozycji był tylko wyjątkowo prymitywny BASIC.

Przez cały okres studiów starałem się być na bieżąco z każdym pojawiającym się nowym sprzętem - Spectrum 16k, 48k, 48k Plus, Commodore VIC-20, C64, C128, Amstrad, Schneider, Acorn, Atari i jeszcze całe stada mniej znanych gościły na moim biurku i doprowadzały do szału moją byłą żonę, bo nierzadko wolałem spędzić noc nad klawiaturą niż w bardziej rodzinny sposób. Moja słabość do tych urządzeń szybko stała się "tajemnicą poliszynszyla", także dla moich wykładowców.

Jeden z nich, nazwijmy go dr B., zapragnął się habilitować. Żeby to osiągnąć musiał wykazać się swoją pracą naukową, wynikami badań i analiz. W tym celu tradycyjnie wykorzystywało się wtedy pracę magistrantów, którym jako prace magisterskie zlecano tematy związane z bieżącymi potrzebami promotora lub recenzenta. Dr B. wiedząc, że całkiem sprawnie poruszam się wśród komputerów, zapragnął ubarwić swoją publikację efektownymi (wg ówczesnych kryteriów) wykresami. Sam w stopniu dobrym opanował tylko maszynę do pisania więc dużo się nie zastanawiając zaproponował mi do magisterki temat "Analiza stanów nieustalonych w przekształtniku fazowym w fazie rozruchu". Nie wnikając w meritum tematu napiszą tylko, że wynikiem było rozwiązanie układu kilku równań różniczkowych dla różnych parametrów początkowych. Tylko pozornie było to zadanie skomplikowane, wszystko sprowadzało się do zastosowania jednego z wielu algorytmów rozwiązywania tego typu problemów.

Ale tu faktycznie zaczynały się schody. Bardzo szybko okazało się, że Spectrum 48k jakim dysponował pan doktor w rozsądny sposób trawi jedynie najprostsze algorytmy iteracyjne - wybór padł na zmodyfikowaną metodę Eulera. Prosta do zaprogramowania w BASIC-u okazała się jedyną, która jako tako dała się zaimplementować. Dla danych testowych wszystko wyglądało super, na ekranie w rozsądnym czasie pojawiał się ładny wykres, który można było wydrukować na maleńkiej drukarce piezoelektrycznej. Cud, miód i orzeszki.

Niestety, metoda Eulera obciążona jest sporym błędem jeżeli krok iteracji jest zbyt duży. Wykresy testowe nijak nie przystawały do oczekiwanych wyników. Niezbędne było zmniejszanie kroku iteracji, a to skutkowało niemiłosiernym wydłużeniem czasu obliczeń. Wystarczy powiedzieć, że dla optymalnych parametrów wejściowych po 24-godzinnej pracy na ekranie pojawiał się fragment wykresu o długości 2mm w pierwszym półokresie. Żeby wynik uznać za wiarygodny niezbędne było przejście co najmniej dwóch okresów, a wykresów w cyklu badań musiałem wykonać 36! Masakra!

Pan dr B. absolutnie nie przyjmował do wiadomości moich tłumaczeń. Wydawało mu się niemożliwe, żeby coś, co jest nazywane komputerem nie poradziło sobie z elementarnym problemem matematycznym. Orzekł, że na pewno mam błąd w programie i że trzeba to koniecznie sprawdzić. Tak trafiłem do ośrodka ZETO, w którym na PDP-11 przepisałem program do jakiegoś FORTH-a czy FORTRAN-a (nie było to zbyt trudne). Minikomputer poradził sobie z jednym wykresem w czasie ok. 30 minut i wypluł z drukarki wierszowej metrową wstęgę papieru zadrukowaną znakami ASCII w kształcie z grubsza przypominającym wykres.

Oczywiście w takiej postaci efekt był nie do przyjęcia, takie wykresy to mógł mieć każdy. A panu doktorowi chodziło o takie ładniutkie wykresiki, które można by wkleić do swojej pracy i pochwalić się przed kolegami. I postawił mnie przed koniecznością rozwiązania problemu.

Pominę wszystkie kolejne próby, jedynie przepisanie programu pod CPM na Commodore 128 dało zdecydowanie lepsze wyniki, ale i tak daleko im było do zachowania rozsądnych terminów - zamiast 3-4 dni jeden wykres powstawał "tylko" w ciągu ok. 30 godzin. Byłem załamany.

Temat pracy otrzymałem jeszcze na czwartym roku, rok później gdy zbliżał się czerwcowy termin obrony pracy, moje wykresy były nadal w sferze planów i poszukiwań. Teoretycznie mogłem mieć już gotowe wszystkie, ale w praktyce nie wyglądało to tak prosto. Każdy wykres musiał spełniać pewne określone warunki, więc każdy z nich powinien powstać w przynajmniej 4-5 wariantach. Byle błąd lub niedopatrzenie, awaria prądu, cokolwiek niespodziewanego wydłużało cały proces. Byłem autentycznie załamany i zniechęcony. Sytuacja zgęstniała do tego stopnia, że bardzo wyrozumiały do tej pory dziekan mojego wydziału skreślił mnie z listy studentów za niezłożenie pracy w terminie.

To była już kompletna katastrofa. Szybka wizyta w dziekanacie i po krótkiej rozmowie z dziekanem ustalony dodatkowy termin obrony. Ostateczny.

Formalnie od czerwca nie byłem już studentem, a praktycznie już od lutego musiałem chodzić tylko na seminaria. Czasu miałem więc dużo i wykorzystałem to do podjęcia pracy w jednej z pierwszych w moim mieście poważnych firm komputerowych. Właściciel z gatunku post-cinkciarskiego neofity biznesu handlował na dużą skalę sprzętem "importowanym" z Singapuru, Korei i Tajwanu. Był w tym naprawdę dobry. Zatrudniał młodych zdolnych pasjonatów i płacił im całkiem dobre pieniądze. Złapałem Pana Boga za nogi.

Bonusem, którego początkowo nie dostrzegałem była możliwość pracy na sprzęcie klasy XT i AT (286). Dopiero przyparty do muru dostrzegłem swoją szansę właśnie w DOS-ie. Skądś wykombinowałem jakiś kompilator, to był Pascal lub coś pokrewnego. W miarę szybko przepisałem program, przetestowałem i... sukces! Przychodząc o 7 rano do pracy odpalałem proces i ok. godziny 12 miałem gotowy jeden wykres. Z promotorem wynegocjowałem zmniejszenie ich liczby do 24 i w ten sposób przez dwa letnie miesiące wyprodukowałem te nieszczęsne wykresy w komplecie. Chociaż drukowane przez Print Screen wyglądały jak psu z gardła wyjęte, to dla mnie były prawdziwymi dziełami sztuki.

Dokładnie w tym samym czasie swoją pracę pisał mój przyjaciel, nawet temat miał podobny tyle, że z dziedziny telekomunikacji. Jej wynikiem też miały być wykresy, ale ładniejsze od moich - w trzech wymiarach. Ten przyjaciel jeszcze bardziej zakręcony na punkcie komputerów niż ja, był posiadaczem jednego z pierwszych w naszym kraju komputera Macintosh. Słynna "lodóweczka" technologicznie przewyższała wszystko z czym miałem styczność. Piękny graficzny interfejs użytkownika z zestawem całkiem funkcjonalnych programów, myszka i do kompletu wielka i ciężka mozaikowa drukarka Apple. Po prostu cudo na tle tajwańskiej tandety składanej w mojej firmie.

Gdy pokazał mi wyniki swojej pracy, najpierw na ekranie, a później na wydruku, poczułem się jak ubogi krewny z prowincji. To był majstersztyk. I cieszyłem się jedynie, że nie widzi tego mój promotor - byłby gotów zmusić mnie do wywalenie tych 3000$ tylko po to, żeby zaspokoić swoją "wykresową" próżność.

PS. Tak, wiem. Zastosowanie innego algorytmu mogło całą sytuację radykalnie zmienić na lepsze. Jednak błąd z wyborem popełniony na początku ciągnął się za mną przez cały czas. Ponadto moje umiejętności programistyczne nie były najwyższe, a dostępność innych języków programowania na sprzęcie klasy Spectrum była praktycznie żadna. Oczywiście z czasem sytuacja ulegała szybkiej zmianie, ale ja uparcie trwałem z tym swoim błędem pierworodnym. Niestety.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.