Bardzo dawno temu w Polsce była epoka przedkomputerowa. Tak mogłaby zaczynać się bajka albo popularno-naukowa pogadanka dla maluchów. W 1989 roku na Dzień Dziecka namówiłem kilku znajomych właścicieli rozmaitych Atari i ZX Spectrum na przygotowanie atrakcji dla dzieciaków w szkole. Potem poszedłem za ciosem i zorganizowałem wśród rodziców zbiórkę na zakup pierwszego Atari do szkoły. Tak się złożyło, ze pierwszy rok wolności w naszym kraju był jednocześnie początkiem komputerów w szkole w Tuchomiu. Była to zapewne jedna z pierwszych szkół w kraju, a na pewno pierwsza wiejska szkoła na Pomorzu.
Zaczęliśmy w formie kółka prowadzić zajęcia dla uczniów i wtedy też spróbowałem pisać własne wprawki w języku basic. Był to prosty język skryptowy oparty na prostych poleceniach w języku angielskim takich, jak if, goto, print. Szczytowym moim osiągnięciem był program sprawdzający umiejętności ortograficzne. Wymagał wpisywania wyrazów i stawiał oceny. Uruchamiał się z taśmy magnetofonowej przez piętnaście minut i w 25% przypadków zaliczał błąd podczas wgrywania. Katowałem nim uczniów tak długo, aż w końcu z powodu błędów taśmy nie dał się już uruchomić.
Potem był już PC i – wspominany z nostalgią przez niektórych – DOS. Tam również można było tworzyć skrypty. Był Windows 3.11 i nakładka dająca funkcjonalność podobną jak w w linuksowych managerach okien (o tym się dowiedziałem później), czyli uruchomienie prawego przycisku myszy z menu kontekstowym i menu aplikacji podobne jak w późniejszym Windows 95. Te doświadczenia to był mniej więcej rok 1994. Nakładka windowsowa dawała się konfigurować za pomocą dość rozbudowanego, ale prostego skryptu.
Później przez kilka lat używałem komputera dla zabawy i do poważnych zastosowań. W 1998 roku możliwy stał się dostęp do internetu i powróciło moje zainteresowanie skryptami. Tym razem był to język html. Zacząłem projektować strony i szybko okazało się, że żaden edytor nie daje takich możliwości, jak zwykłe grzebanie w kodzie. W XXI wiek wkroczyłem już pod rękę z PHP. Pod koniec 2001 roku opracowałem nawet swój mały system zarządzania treścią z panelem administracyjnym i danymi w plikach tekstowych. Nazwałem go miniwebportal. Dziełko to powstało głównie dlatego, że hosting z dostępem do MySQL był drogi, a ja robiłem strony dla takich małych „żuczków”, dla których wydatek na hosting był istotny. Moje zabawy z PHP zakończyłem w zasadzie na następcy miniwebportalu, który otrzymał nazwę mikrus. Tym razem pomysł był mój, ale większość pracy wykonał ktoś inny. Mikrus jest naprawdę lekki, ale nowoczesny i chyba raczej bezpieczny. Nie mam już takiego zapału, ale wprowadziłem trochę zmian i lada moment opublikuje drugą wersję.
Kończę jednak te dygresje, bo w 2002 roku zrozumiałem, że tak naprawdę dopiero sieć to jest komputer. Moje zainteresowania skupiły się na sieciach i naturalnie na Linuksie, który jak się okazało potrafi wszystko i na dodatek można to „wszystko” zrobić za pomocą skryptów. Programowanie jako takie mnie nie zainteresowało, więc języki takie jak perl lub python znam na tyle, by wiedzieć, co robi skrypt, ale nie na tyle, by samemu coś napisać.
Jako administrator zwykle ułatwiam sobie życie pisząc rozmaite drobiazgi w bashu, czasem jednak staję przed poważniejszymi zadaniami. Przygotowując monitorowanie pewnego serwera chciałem dodać przydatny skrypt sprawdzający pogodę. Skrypt pobierał dane z pliku tekstowego, z którego wyciągał temperaturę, punkt rosy i dodatkowo tak zwaną temperaturę odczuwalną. Wkrótce się okazało, że plik źródłowy czasami tę temparaturę odczuwalną zawiera, a czasem nie (zapewne dla lotniska nie jest ona najważniejsza).
Gdy brakowało ostatniego parametru, system przestawał rysować cokolwiek. Wymyśliłem zatem, że na czas gdy zabraknie tego parametru wykres będzie rysował taką samą linię, jak wartość punktu rosy, aż do powrotu pełnych danych. Temperatura odczuwalna może być czasem dużo niższa niż punkt rosy, jeśli wieje wiatr, więc warto by w miarę możliwości mieć ten wykres.
Logiczne, ze w skrypcie należało wstawić warunek i ostatecznie są to cztery linijki.
if not WindC_res:
WindC = DewC
else:
WindC = WindC_res[0]
Proste, jeśli dokładnie zna się składnię pythona.
Było o skryptach, teraz o ludziach. Z pytaniem o ten skrypt zwróciłem się w pierwszym rzędzie do znajomych programistów. Jeden obiecał: „za parę dni zajrzę”, drugi coś tam mruknął na gadu gadu, trzecie nie odpowiedział nawet na maila. Na koniec przypomniałem sobie o liście mailingowej znajomych z Polskiej Grupy Freesco. Jeden z nich znał pythona i na drugi dzień rano rozwiązanie czekało już na mnie w skrzynce mailowej. No i chwała mu za to.
Chce się jednak skupić na pewnej prawidłowości. Z racji swoich zainteresowań mam do czynienia często z ludźmi młodymi. Zresztą informatyka to jednak w przeważającej mierze domena ludzi młodych. Takich dinozaurów (jak ja) jest stosunkowo niewielu. Bardzo często są to fachowcy uważający, że zasługują na najwyższe pobory i lekceważący jednocześnie pracę innych, a potem okazuje się, że mają problemy z zestawieniem zwykłego połączenia VPN. Nie zmyślam – znam taki przypadek i dotyczył całkiem sporej i znanej firmy. Zdaje się, że młodym ludziom brakuje też asertywności (modne słówko). Nie potrafią uczciwie powiedzieć, ze czegoś nie potrafią lub że potrafią, ale oczekują określonej gratyfikacji i zwykle w takich przypadkach, gdy szukam wsparcia (a chodzi zwykle o realizację jakichś zadań opensource’owych) to słyszę wykręty, odkładanie zdecydowanej odpowiedzi na „święty nigdy” lub tez odpowiedzi mające świadczyć, jaki to ktoś zajęty: „przypomnij mi jutro”.
Coraz częściej rozwiązania rozmaitych problemów znajduję na zagranicznych newsach lub forach, gdzie jak widać ludzie, którzy zawdzięczają dużo społeczności Open Source, czują się w obowiązku oddać innym to co sami kiedyś dostali. W Polsce zaczyna dominować zupełnie inna postawa i to zdecydowanie mi się nie podoba, bo polskie projekty opensource’owe upadają lub podupadają. Niedługo poza wyjątkami przestaniemy się liczyć w międzynarodowej społeczności.
No to belfer sobie ponarzekał. A co! Też mam prawo. 😉
2 komentarze “Skrypty i ludzie”
Muszę przyznać, że wywołałeś moje wspomnienia z prapoczątków mojej przygody z komputerami. Mój pierwszy Atari kupiłem jeszcze w RFN (było takie państwo) czyli jeszcze przed upadkiem muru berlińskiego. Kosztował mnie (pamiętam dokładnie) 125 DM (marek zachodnioniemieckich).
Wcześniej, aby te marki zdobyć, we Włoszech na campingu sprzedałem aparat marki Zenith za 60 dolców i parę kartonów Mallboro. W Pewexie były po 40 centów, a we Włoszech sprzedawało się po 1,50 USD.
Tak zarobiłem na to Atari, które dało prapoczątek moim zainteresowaniom informatyką. Były takie różne pisma, Bajtki, Komputer itp. Przepisywałem programy w Basicu. I tak wyrabiałem w sobie umiejętność programowania. Dzięki sporej już wiedzy wylądowałem w dużej, bogatej firmie, która posiadała własny ośrodek obliczeniowy.
Zakupiono pierwsze dwa komputery IBM PC. No, ale ja zaczynałem od programowania komputera ODRA 1300. To była duża klimatyzowana sala z kilkoma przewijakami (takie szafy odczytujące taśmy magnetyczne). Pośrodku stała klawiatura. Monitora nie było. To co się wpisywało wychodziło na drukarce.
Programowało się w języku nazywanym PLAN podobnym do assemblera. Ciekawostką było to,że ODRA posiadała 64kb pamięci operacyjnej. Tyle samo co Atari. Te pierwsze IMB-y miały już 540kb. Zaczęto dokupywać coraz więcej komputerów, pierwsza sieć zwana OA-LINK. Pobawiliśmy się tąsiecią, ale nie dało się na niej pracować. I tak od robienia interfejsów między ODRĄ a PC przeszedłem do konkretnego tworzenia programów księgowych, płacowych, sprzedaży itp.
Tu Belfer pisze o jakimś prostym skrypcie. Ile ja musiałem się umordować, aby znaleźć jakieś błędy. Szukać rozwiązań. Prawda jest taka, aby być dobrym programistą trzeba to lubić, samemu szukać rozwiązań. Tego nauczyć na pamięć się nie da. To tak jakby gitarzysta nauczył się perfekt grać, opanował wszystkie chwyty ale nigdy nie skomponuje „Little Wing”.
Nasza młodzież panie Belfer jest niestety: „do bani”.
Oto młodzi wykształceni z dużych miast:
http://www.youtube.com/watch?v=VjKN4dy3kGY&feature=player_embedded
I ty na takich chciałbyś liczyć?
Nawet wybrać prezydenta nie potrafią.
PS
Znowu było trochę polityki. Wybacz, ale nie mogłem się powstrzymać.
Akurat prezydenta to Polacy potrafili wybrać, ale nie wybierali go tylko młodzi.
Zjawisko pokazane na filmie świadczy nie tylko o braku wiedzy, ale też jest dowodem „fałszywego autorytetu” telewizji. Takich doświadczeń robiono już wiele. Zadawano pytania na rozmaite tematy i nawet mądrzy ludzie gubili się, słysząc pytanie z bezsensowną tezą i odpowiadali, jak by nie mieli podstawowej wiedzy. Stare, znane i w ogóle suchar.
Skrypt o którym piszę nie jest wcale szczególnie prosty, to tylko instrukcja warunkowa była prosta, ale dla kogoś, kto zna składnię pythona. Cały wspomniany przeze mnie program ortograficzny w basicu był składniowo mniej skomplikowany niż standardowy firewall w jakimś urządzeniu „embeded” – to efekt rozwoju. Dawne programy, a dzisiejsze to przepaść całej epoki, także dlatego, ze wymagania są inne.