Witam w Dziennikach Zyxowych będących jednocześnie mym blogiem i stroną domową. Mam nadzieję, że znajdziesz tutaj ciekawe tematy dla siebie lub pomoc, której poszukujesz. Życzę przyjemnej lektury. Tomasz "Zyx" Jędrzejewski.
Witam w Dziennikach Zyxowych będących jednocześnie mym blogiem i stroną domową. Mam nadzieję, że znajdziesz tutaj ciekawe tematy dla siebie lub pomoc, której poszukujesz. Życzę przyjemnej lektury. Tomasz "Zyx" Jędrzejewski.
Protokół HTTP, który stał się podstawą wielu działających obecnie usług sieciowych, jest relatywnie młody - wersja 1.0 ukazała się zaledwie dwanaście lat temu. Popularność zawdzięcza jednak nie swoim możliwościom, a prozaicznemu nienadążaniu postępu technicznego za rozwojem i pomysłowością właścicieli stron WWW. Początkowo był to prosty mechanizm do udostępniania hipertekstowych dokumentów na żądanie klienta, nigdy nieprzewidziany do pracy w internetowych systemach czasu rzeczywistego (wszystko, co wymaga stałego kontaktu z serwerem i niemal ciągłej wymiany danych). Pociąga to za sobą szereg nieprzyjemnych dla programistów konsekwencji.
W poprzednim wpisie pisałem o konieczności wspólnego rozwoju oprogramowania. Wpis ten w zasadzie mógł się pojawić już wiele dni temu, ponieważ już od pewnego czasu prowadziłem prace przygotowawcze do uruchomienia zespołu programistycznego. Ze znalezieniem niedużej grupy zaufanych ludzi, z którymi mam dobry kontakt, nie było specjalnych trudności. Niestety było to tuż przed początkiem sesji i dlatego nie było specjalnie kiedy się za to wziąć. Jednak sesja powoli mija i dnia dzisiejszego ruszyły pierwsze sekcje strony internetowej grupy Invenzzia.
Typowa aplikacja składa się z wielu współpracujących ze sobą segmentów. Możemy wyróżnić w niej wewnętrzny silnik stanowiący szkielet całości. Do jego zadań należy zapewnienie spójności całemu projektowi oraz udostępnienie szeregu podstawowych usług. Silnikowi towarzyszy często zestaw bibliotek dodatkowych, które wspomagają pewne specyficzne operacje Znajdziemy tam także systemy przetwarzania i obróbki danych, do których aplikacja została stworzona. Ostatnia część odpowiada za prezentację i pobieranie danych bezpośrednio od użytkownika. W jej skład wchodzi interfejs, nawigacja, a także cała strona wizualna, dzięki której z programu bądź witryny internetowej korzysta się z przyjemnością. Komunikacja między segmentami odbywa się za pomocą rozmaitych API oraz innych kanałów, które sobie programiści wymyślili i postanowili zastosować. Jednak ostatecznie unika się sytuacji, aby plik A zajmował się rzeczami, do których teoretycznie mamy plik B.
Siadłem do tego wpisu i nie mam zielonego pojęcia, na czym się skupić, by wyrazić kolejny absurd, jakim uraczył nas prezydent. Za próby zbijania politycznego kapitału na każdej możliwej tragedii ludzkiej, za robienie z tych tragedii swoimi decyzjami coraz większych szopek i medialnych spektakli, ten człowiek jest już dla mnie całkowicie skreślony.
Świat studencki rządzi się własnymi prawami. Wielu przedstawicieli tej grupy społecznej wynajmuje rozmaite mieszkania, o których stan muszą dbać we własnym zakresie. Jeśli dodamy, że student niekoniecznie musi być wybitnym specjalistą w zakresie prac oraz podstawowych napraw domowych, a także nie zawsze ma czas na poświęcenie połowy swego dnia tego typu zajęciom, z mieszanki tej rodzą się pomysły na kłopoty, o których normalnemu człowiekowi raczej by się nie śniło. Oto nieduży (na razie) poradnik kilku podstawowych czynności domowych a'la student opracowany na bazie własnych doświadczeń.
Choć sesja w pełni, OPT nie jest do końca martwy. W tramwaju czy w autobusie jest nieco wolnego czasu akurat by pomyśleć nad kształtem projektu. Ostatnio rozmawiałem z bratem na temat dwóch nowych rzeczy; jedną zaproponował on i niezbyt mi się spodobała, drugą zaproponowałem ja i nie spodobała się jemu. Postanowiłem więc poddać obie rzeczy pod publiczną dyskusję.
Jedyne, co mam, to złudzenie, że mogę mieć zaliczenie - tak śpiewają bliżej nieznani mi ludzie w studenckim remake'u piosenki sprzed lat, który jest do znalezienia na różnych serwisach typu Wrzuta. Zbliża się nieuchronnie koniec semestru, a wraz z nim egzaminy i ostatnie zaliczenia rozmaitych ćwiczeń. Wiedza domaga się poświęcenia jej w końcu więcej czasu i tak też się dzieje; w wolnych chwilach z kolei już się nie chce nic robić poza włączeniem jakiegoś filmu (czyt. ostatnich odcinków dziesiątego sezonu Stargate SG-1 :)) i odpoczęciem od tego wszystkiego.
Kolejna karta z historii informatyki. Karta wybitnie polska, która dla każdego krajowego informatyka oraz elektronika powinna być powodem do dumy i która miała bardzo smutny koniec. Powszechnie przypuszcza się, że to Amerykanie pchali informatykę stale naprzód, tymczasem nie jest to do końca prawda. Swego czasu pisałem tu o Konradzie Zuse, zaś dzisiejszy wpis poświęcę minikomputerowi K-202 stworzonemu przez Jacka Karpińskiego. Projekt pochodził z początku lat siedemdziesiątych i wyprzedzał swą epokę o dekady, mając lepsze parametry niż debiutujące dziesięć lat później pecety!
Tematem dzisiejszego wpisu będzie interpretowany język programowania AWK. Został opracowany w 1977 roku przez autora kilku podręczników informatyki teoretycznej, Alfreda V. Aho, Petera Weinbergera oraz Briana Kerrighana. Jego głównym przeznaczeniem jest wyszukiwanie i przetwarzanie wzorców. Dostępny jest w niemal każdym systemie uniksowym jako część standardu POSIX i znacząco upraszcza wiele operacji wykonywanych w konsoli. Jego składnia jest bardzo podobna do języka C. Jeżeli znasz ten drugi, Awka powinieneś opanować bardzo szybko.
Przygotowałem właśnie pierwszą paczkę z wersją rozwojową OPT 2.0.0. Nie jest ona przeznaczona do użytku produkcyjnego, gdyż nie jest zaimplementowane jeszcze całe mnóstwo opcji i funkcjonalności, ale mniej więcej pokazuje już, jak to wszystko będzie wyglądać po zmontowaniu. Do paczki, oprócz biblioteki, dołączyłem też dwa gotowe unitTesty (wyrażenia oraz API), ukończoną część polskiej dokumentacji i kilka skryptów developerskich do testowania różnych elementów. W tym wypadku mowa tu o sekcjach, instrukcjach warunkowych, kompilacji prologu oraz obsłudze błędów.