Moja komputerowa historia

Od ZX-81 do dziś

Fotografia losowych symboli na ekranie monitora

Pierwszy kontakt z komputerem przydarzył mi się około roku 1986 i polegał na obserwowaniu interpretera języka Basic i napisanej w nim gry zatytułowanej roboczo „Zbijanie muru”. Po kilku latach przepisywałem z „Bajtka” listingi programów w Basicu i języku C (kompilator firmy HiSoft) dla ZX Spectrum. Nie były to własne maszyny – należały do wujka, Jerzego Szczepańskiego, który pozwalał mi przychodzić i bawić się w ich obsługę.

8 bitów

Pierwszym własnym ośmiobitowcem był Unipolbrit 2086 (ze sprzętowym emulatorem Spectruma), którego uszkodzonego odkupiłem od kumpla ze szkoły. Pisałem w nim proste programy w języku Basic, zatwierdzając linie z użyciem mikroprzełącznika wlutowanego w miejsce, gdzie powinien był znajdować się klawisz [ENTER].

Jakiś czas potem przez kilka tygodni gościłem w domu pożyczonego ośmiobitowca Commodore 16, aby następnie znaleźć pod świąteczną choinką komputer Commodore 64. Na tym ostatnim programowałem trochę w Assemblerze, bawiąc się rejestrami rastrowymi i grafiką tzw. duszków (ang. sprites), chociaż głównie służył do gier, oglądania dem i rysowania w programie Koala Paint. Dużą frajdę sprawiało mi tłumaczenie gier na język polski z użyciem mechanizmów cartridge’a Action Replay. Po dotknięciu magicznego przycisku freeze można było w nim dokonywać inspekcji i modyfikacji przestrzeni pamięciowych wczytanego programu, a następnie zapisać zmienioną zawartość RAM-u do pliku umieszczonego na dyskietce lub kasecie magnetofonowej.

PC

W roku 1993 w moim życiu pojawił się pierwszy komputer klasy PC AT z procesorem 80206 i 1MB pamięci RAM na pokładzie. Był wyposażony w monochromatyczny monitor i kartę graficzną marki Hercules, a kompresowane oprogramowaniem Stacker dane przechowywane były na dwóch twardych dyskach o sumarycznej pojemności 60MB. Kontakt z informacjami pochodzącymi z zewnątrz zapewniała stacja dyskietek o wymiarach 5,25 cala, które z użyciem programu rezydentnego 800.com mogły pomieścić nawet 1,4MB danych.

Pod kontrolą systemu DOS zacząłem pisać proste programy w Turbo C, Turbo Pascalu, a następnie w środowisku Borland C++ (i Turbo Vision). Pierwszy użyteczny program, który stworzyłem na tym komputerze, był napisany w języku C i służył do liczenia statystyk występowania liczb w losowaniach Totolotka. Kod był bardzo imperatywny, składał się z brzydkich, pozagnieżdżanych pętli i dużych funkcji używanych w roli procedur. Jako nastolatek nie miałem wcale pojęcia o dobrych praktykach programowania, a język C znałem przede wszystkim z książek Bieleckiego. Celowo gmatwałem kod, żeby wyglądał profesjonalnie.

Programując na pierwszym pececie robiłem czasem wstawki w Assemblerze, żeby jakoś wywoływać przerwania DOS-a i BIOS-u, co pozwalało na obsługę myszki, dorysowywanie ogonków do liter w trybie graficznym bądź kontrolowanie stanu wyjść portu równoległego.

Komputer miałem zamiar upgrade’ować do poziomu, który pozwoliłby wyposażyć go w procesor Intel 80486, ale zanim skompletowałem wszystko, mogłem już kupić peceta z AMD K5.

GNU/Linux

Rok 1997 to pierwszy kontakt z systemem GNU/Linux, a wcześniej z Mini Linuksem, przyniesionym na dyskietkach przez mojego nauczyciela ze szkoły średniej – Adama Turczyna (tatarek).

Rok później byłem już zaangażowany w Projekt Tłumaczenia Manuali (podręczników ekranowych), a wkrótce dołączyłem do zespołu PLD Linux (polskiej dystrybucji systemu GNU/Linux) i zacząłem pomagać w robieniu pakietów RPM, a także programować sieciowo w języku C.

Przy okazji zbliżenia się do kultury Free Software złapałem kontakt z administratorami i programistami systemowymi, od których sporo się nauczyłem. W zrozumieniu środowiska wolnego oprogramowania, Uniksów i sieci IP pomogli mi przede wszystkim Richard M. Stallman (rms), Tomek Kłoczko (kloczek), Artur Frysiak (wiget), Michał Zalewski (lcamtuf), Sam Varshavchik (mrsam), Przemek Borys (pborys), Sergiusz Pawłowicz (ser), Wojtek Ślusarczyk i wielu innych kolegów, których poznałem korzystając m.in. z systemów dione.ids.pl, ep09.kernel.pl, rudy.mif.pg.gda.pl, fencepost.gnu.org czy serek.arch.pwr.wroc.pl.

Profesja

W roku 2000 stałem się orędownikiem projektu GNU, podjąłem też pierwszą pracę, jako specjalista ds bezpieczeństwa sieci w portalu Poland.com. Czułem, że chcę robić coś praktycznego, czego można użyć. Poznałem tam m.in. Michała Rolskiego (haron) i Jacka Surażskiego (sigma), którzy pracowali nad wyszukiwarką Netoskop. W ramach jednopokojowej, koleżeńskiej współpracy zrobiłem system podpowiedzi kontekstowych dla Netoskopa, którego wulgarną nazwę projektową znają tylko wtajemniczeni.

Z upadającego portalu trafiłem do serwisu Bankier.pl, gdzie po doprowadzeniu do użyteczności serwera poczty elektronicznej i wprowadzeniu współdzielenia zasobów między maszynami pracowałem przez około 2 lata jako administrator.

Następnie przez prawie rok w firmie Supermedia pełniłem funkcję specjalisty ds. bezpieczeństwa sieci, a potem pracowałem w Credit Agricole jako administrator i lider zespołu IT Integracja RB. W banku poznałem systemy SolarisHP-UX, dowiedziałem się też nieco na temat sposobów pracy nad projektami w większych grupach (ITIL, testy, podziały środowiskowe, zarządzanie zmianami).

Po kilku latach dostałem propozycję współtworzenia polskiego wydania serwisu internetowego heise online. Wspólnie z kilkoma byłymi redaktorami magazynu komputerowego „CHIP” i korektorką, która również miała okazję współpracować z wydawcą tego czasopisma, budowaliśmy odpowiednik niemieckiego serwisu tematycznego poświęconego komputerom i sieciom. Przypadła mi rola redaktora kanału Security.

Dzięki Ani Wawryszuk i kolegom z redakcji (Adamowi Chabińskiemu, Krzyśkowi SokołowskiemuAdamowi Rudzińskiemu) podszkoliłem się trochę w pisaniu w języku naturalnym – przynajmniej na tyle, żeby nie popełniać tylu błędów (nad stylem wciąż pracuję).

Po zakończeniu przygody z heise online postanowiłem nie podejmować stałej pracy najemnej, zaangażowałem się za to w tworzenie poświęconego bezpieczeństwu serwisu BAD[SECTOR].PL i inne projekty, związane m.in. z programowaniem, testami bezpieczeństwa czy informatyką śledczą. Wsparciem i dobrą radą służyli mi m.in. Maurycy Prodeus (z33d), Janusz Niewiadomski (ph_nk), Piotr Szeptyński (cepter), Borys Łącki (kanedaa), Marek Piotr Stolarski (xargs) i Marcin Miśta (snoop).

Po kilku latach, podczas których uczyłem się programować w Clojure, podjąłem kolejną stałą pracę, w sekcji Forensic firmy doradczej Deloitte. Moją rolą była opieka nad warszawskim laboratorium informatyki śledczej i zamiana danych w informacje, których mogą użyć prawnicy. Wspaniały klimat w zespole prowadzonym przez Rafała Turczyna sprawił, że ciężko było mi pożegnać się z firmą.

Obecnie zajmuję się eDiscovery w zespole eDTS szwajcarskiego banku inwestycyjnego UBS, gdzie staram się łączyć umiejętność programowania ze znajomością informatyki śledczej.

Jesteś w sekcji