While saying ‘Hello!’ is entirely appropriate here, it is obviously not my first post on this blog. Not by a long shot: there are exactly 555 others that preceed this one, scattered across the timeframe of more than four years. They just happen to be written in slightly less widespread language and therefore reaching a significantly smaller audience. But even though technically I’m nowhere near a newbie when it comes to devblogging, I kinda feel like one now, after deciding to make a switch to English. Therefore it seems like a good idea to warmly greet everyone reading this.
So… hello there!
If it was truly an opening, I’d proceed to outline the purpose of this blog, explain what type of posts you can expect here and what subjects I’m planning to cover on (hopefully) regular basis. But although it is “just” a major checkpoint, it seems like a good idea to have this kind of introduction anyway. Not only for any newcomers that might have accidentally strolled around ;)
I called it a dev blog, and for good reason. Programming or coding or writing software – however you name it, that’s what I’m mostly going to cover here. More often than not, it will be related to my own experiences with diverse set of technologies, libraries, tools, frameworks and – most importantly – languages. The emphasis is intentional, because I’m quite a fan of programming languages in general: their semantics, unique features, the way they organize the structure of code written in them, and how they compare to each other. Therefore you can expect to see such topics being covered here; hopefully they won’t incite too much flames :)
Besides purely technical stuff, I will sometimes attempt to look at slightly bigger picture, going up to the “meta-level” of programming art. This includes any practice which aims to strengthen positive traits of one’s code: readability, flexibility, efficiency, etc. I might also ponder less explored (and usually more vague) topics, such as the cognitive process of turning ideas into algorithms, structures and actual code – but usually without going too far on the abstract side.
Of course I won’t entirely avoid posts that cannot be easily put into those two buckets. But even though they might be somewhat off-topic, I have a feeling they will be mostly related to IT anyway. What’s really interesting besides that, anyway? ;-)
To nie była łatwa decyzja. Dość powiedzieć, że odwlekałem ją naprawdę bardzo długo. Nie bez związku był tu fakt, że wiąże się ona z nietrywialną ilością dodatkowych rzeczy do zrobienia – a przecież powszechnie wiadomo, że pracowitości raczej nie słynę :) Jestem jednak przekonany, że to już najwyższy czas.
Niniejszym informuję zatem, że oto oficjalnie zmieniam język, w którym piszę tego bloga. Kolejne notki będą już po angielsku. Być może nie absolutnie wszystkie, ale wszelkie wyjątki będą – właśnie tak – wyjątkami. Podobnie będzie też oczywiście z całą resztą interfejsu strony, którą to mam nadzieję stopniowo dostosować w ciągu najbliższych (tygo)dni.
Jeśli w swoich przewidywaniach nie mylę się koszmarnie, to krok ten nie powinien być dla większości czytających żadnym wielkim zaskoczeniem. Mógłbym tutaj rozpisać się na temat uniwersalności języka angielskiego wśród programistów, konieczności jego praktycznej znajomości, i tak dalej. Mógłbym, ale nie widzę w tym żadnego sensu – to są po prostu oczywistości, z którymi nawet nie ma jak polemizować. Dlatego mogę pewnie zaryzykować stwierdzenie, iż “wszyscy” wiedzieli, że i w przypadku tego bloga przejście na angielski jest wyłącznie kwestią czasu.
Istnieje oczywiście jeden główny powód tej zmiany, jakim jest możliwość znacznego poszerzenia grona odbiorców – żeby nie powiedzieć brzydko ‘grupy docelowej’ ;) Z tym zaś wiąże się też szereg pozytywnych konsekwencji, jak choćby o wiele większa swoboda w doborze tematów – zwłaszcza tych najbardziej interesujących, czyli stricte technicznych. Rozumowanie jest tu proste: w przepastnym oceanie światowego Internetu każda porcja praktycznej wiedzy znajdzie swojego odbiorcę. Gdy ograniczamy się do polskiej części sieci, nie jest to już takie pewne.
Drugą ważną przyczyną jest też to, iż pisanie po polsku na tematy okołokoderskie nie jest wcale łatwym kawałkiem chleba. Wymaga to bowiem ciągłego szukania kompromisów między precyzją opisu a jego długością, czytelnością, a często i językową poprawnością. Nierzadko trzeba tu też przecierać szlaki, próbując znaleźć zgrabne (i krótkie!) tłumaczenia dla rzadziej spotykanych pojęć technicznych. Nie w każdym przypadku jest to zresztą możliwe (“shader”?…) i wtedy pozostaje jedynie potraktować daną frazę kursywą. Ostatnio zresztą przytrafiało mi się to coraz częściej.
Ufam, że ta mała rewolucja zostanie przyjęta pozytywnie, albo chociaż z powściągliwym zrozumieniem :) Jednocześnie przepraszam z góry tych, przed którymi buduję właśnie językową barierę – mam nadzieję, że uda wam się szybko ją przekroczyć.
Do zobaczenia po drugiej stronie!
W odpowiedzi na rosnące społeczne zapotrzebowanie (ta, jasne ;]) i trudny do zignorowania potencjał tzw. social medias, poczułem się w obowiązku włączenia w ten wciąż dziwny dla mnie, ale będący niewątpliwie rzeczywistością trend. Tak więc oto postanowiłem “uspołecznić” bloga, tworząc mu stronę na Facebooku i dodając wspaniałe przyciski Like! tu i ówdzie…
Cóż, trzeba iść z duchem czasu – w końcu to już dokładnie 500 postów :-)
Notka rozpoczyna się od stwierdzenia jednego lub kilku raczej oczywistych faktów, których autor w dość sztampowy sposób używa w celu rozpoczęcia tematu. Najczęściej przywołuje w tym celu swoje nieodległe w czasie doświadczenia związane z tymże tematem, które czasami prowadzą do mniejszej lub większej (częściej mniejszej) zmiany przekonań. Reszta pierwszego paragrafu zazwyczaj podporządkowana jest dobrnięciu do jego końca w sposób, który sprawi wrażenie spójnego wywodu. Jednocześnie jednak sam koniec jest celowo trochę kontrastowy, co ma na celu lekkie zaskoczenie czytelnika i przekonanie jego podświadomości, że lektura reszty może nie być wcale taką stratą czasu na jaką wygląda.
Środkowa część służy zrazu dalszemu rozwinięciu opisu zjawiska, którym to w tym przykładzie jest pewien specyficzny rodzaj humoru. Często jest to wspomagane odpowiednim formatowaniem tekstu, aplikowanym zazwyczaj do pojedynczych słów, które autor z jakiegoś dziwnego powodu uważa za ważne, zwykle zresztą błędnie. Nierzadko są to jego własne wymysły terminologiczne (jak choćby określenie wspomnianego rodzaju humoru jako metasatyry), wyróżnione formatowaniem tylko dlatego, iż bez niego nikt nie zwróciłby na nie najmniejszej uwagi. Byłoby to zresztą niezwykle pożyteczne, jako że ich adekwatność pozostawia zwykle wiele do życzenia.
Następnie przytaczane są różne argumenty lub przykłady tudzież elementy opisywanego zjawiska, wybrane zazwyczaj spośród tych, do których prowadzą linki z trzeciej strony wyników wyszukiwania w Google (albowiem powszechnie wiadomo, że wszyscy zatrzymują się na pierwszej, więc w ten sposób uzyskuje się gwarancję oryginalności źródeł). Pozycje te bardzo często uformowane są w postać listy wypunktowanej, ponieważ nadaje im ona pozory dobrze zorganizowanej struktury (co natychmiast podnosi wiarygodność) przy jednoczesnym unikaniu zbytniego formalizmu, nieodłącznej cechy listy numerowanej.
Ostatni paragraf lub dwa są aż do bólu przewidywalne, gdyż trudno spodziewać się tu czego innego niż podsumowania. Wskazuje ono na główną linię rozumowania z części środkowej lub też zbiera wspólne cechy podanych przykładów, takie jak punktowanie powtarzalnych, szablonowych form imitowanych przez metasatyrę przy jednoczesnym dokładnym trzymaniu się tychże form. Jeśli autor ma akurat dobry dzień, uda mu się celnym zdaniem wskazać sedno zagadnienia (a więc efekt komiczny spowodowany paradoksalnością wspomnianych cech tego humoru), jednakże zawsze będzie to inne zdanie niż to, które w jego zamyśle miało takim być. Definitywne zakończenie czytelnik przyjmuje z westchnieniem ulgi, aczkolwiek zupełnie bez zaskoczenia, bowiem było ono dla niego od początku całkiem oczywiste.
Niekiedy notka uzupełniona jest o komentarz małym drukiem, o treści która w jakiś pokrętny sposób odnosi się do całości notki. Na pewno aczkolwiek nie wspomina ona o nadużywaniu odrobinę zbyt wysublimowanego języka oraz występujących gromadnie, w gruncie rzeczy niepotrzebnych linkach do Wikipedii.
Tydzień temu pozwoliłem sobie na poprawienie strony pod względem formy, czyli zaaplikowałem zupełnie nowy layout. (Z opinii wynika, że nie wszyscy podzielają zdanie o jego lepszym wyglądzie, ale zakładam, że to głównie kwestia przyzwyczajenia ;]). Teraz przyszedł z kolei czas na usprawnienia funkcjonalne, by treść bloga można było przeglądać łatwiej, szybciej, przyjemniej, i w ogóle lepiej :)
W tym celu odchudziłem to wybitnie rozrośnięte drzewko kategorii, które przez bardzo długi czas zajmowało dużą część miejsca na pasku bocznym po prawej. Większość pozycji się nie ostała i teraz kategorii jest kilka razy mniej. Taki ruch był o tyle właściwy, że w założeniu kategorie powinny być tylko ogólnymi szufladkami do umieszczania w nich treści. Przy takiej ich ilości będą, jak sądzę, lepiej spełniać to zadanie.
Wycięcie wielu kategorii służących jako tematyczne etykietki (np. “Windows” czy “C/C++”) nie oznacza jednak, że nic już nie da się tutaj znaleźć. Ich funkcję (z nawiązką) przejmują bowiem tagi, i to łącznie ze sztandarowym wynalazkiem Web 2.0, czyli chmurką tagów :) Ona właśnie zajmuje “odzyskaną” przestrzeń bocznego paska.
Cała ta reorganizacja nie jest może tak zauważalna jak zmiana wyglądu, ale pozwalam sobie o niej napisać z jednego prostego powodu. Ponowne przejrzenie prawie 350 (!) notek, przydzielenie ich do odpowiednich kategorii oraz opatrzenie odpowiednimi tagami nie jest na pewno zadaniem na pięć minut. A skoro udało mi się tego dokonać, uważam za stosowne pochwalić się tym :P
…i będzie jeszcze ładniej – niż jest. No, może niezupełnie – nietrudno bowiem zauważyć, że już teraz jest zupełnie dobrze. Zniknęła przecież ta niezbyt imponująca niebiesko-szara kolorystyka, okraszona tu i ówdzie pospolitymi gradientami. Na obecny, nowy layout powinno się już patrzeć zdecydowanie przyjemniej.
A skąd on się w ogóle wziął? Bo chyba nikt nie podejrzewa, że mój wybitnie ograniczony talent artystyczny zdolny jest do takich dzieł :) Faktycznie nie jest, a niniejszy szablon otrzymałem w prezencie od znajomej, utalentowanej graficzki i webdesignerki (zainteresowani mogą tutaj obejrzeć inne jej prace).
Docelowo trzeba było go oczywiście dostosować do współpracy z WordPressem, ale koniec końców okazało się całkiem wykonalne ;) Nie jestem wprawdzie wielkim fanem PHP, lecz akurat w tym przypadku prostota API, jakie należało przy okazji wykorzystać, była na tyle duża, że dało się to zrobić bez większych problemów. Jeszcze jeden dowód na to, że podjęta ongiś decyzja o wykorzystaniu właśnie WP okazała się nadzwyczaj trafna.
A zatem, skoro kwestia formy wydaje się na jakiś długi czas załatwiona, życzę wszystkim przyjemnego oglądania i czytania.
Dawno, dawno temu… A właściwie to prawie dokładnie rok temu z bliżej niewyjaśnionych do dzisiaj przyczyn naszła mnie ochota, aby reaktywować swoją stronę domową w postaci tego oto (dev)bloga. Od tego czasu zdążyło zmienić się sporo, ale wbrew przeciwnościom losu (uosabianym głównie przez lenistwo, które to, jak wiadomo, ma wśród wszystkich zadań zawsze najwyższy priorytet :]) blog ów nadal istnieje i nie wydaje się, żeby przynajmniej w najbliższej przyszłości miało się coś w tej kwestii zmienić. Bowiem podobno rok właśnie to taka magiczna granica, której przekroczenie udaje się tylko w mniej więcej połowie przypadków. Oczywiście to tylko statystyka (a według niej ja i mój pies mamy po trzy nogi), ale daje ona chociaż powody do umiarkowanego optymizmu – a ich nigdy dosyć.
Ten rok był też czasem “ucierania się” stylu oraz tematyki tego, co w regularnych odstępach czasu staram się tutaj publikować. Po drodze życie zweryfikowało rzecz jasna zbyt ambitne założenia i z devloga zrobiło się… no właśnie, powiedzmy, że ‘blog IT’ – żeby nie powiedzieć “nie-wiadomo-co” :) W zasadzie nie było to zresztą trudne do przewidzenia: aby systematycznie zdawać relacje z koderskiej pracy w sposób chociaż śladowo interesujący, trzeba by chyba dysponować dobą o długości co najmniej 50 godzin. Nie da się też ukryć, że formuła devloga jest też dość sztywna i zapewne dla niewielu czytelników byłaby ona na swój sposób ciekawa.
Z tych (i pewnie nie tylko z tych) powodów założona forma ewoluowała w kierunku czegoś nieco odmiennego, albo raczej trochę rozszerzonego względem pierwotnych planów. Zamiast opisywać tylko to, co ostatnio udało mi się zakodować, zacząłem też włączać różnego rodzaju programistyczne ciekawostki, dziwnostki, sugestie, porównania, krótkie omówienia, wskazówki, przemyślenia i inne tego typu “kawałki informacji”, opatrzone zwykle moją subiektywną opinią lub komentarzem. Trudno powiedzieć, co tak naprawdę je łączy – naturalnie poza technikaliami w rodzaju często przewijających się języków lub platform programistycznych. Publikując je spodziewam się jednak, że ktoś może na nie przypadkiem lub celowo natrafić i stwierdzić: “O, to całkiem interesujące…” albo “Hej, tego wcześniej nie wiedziałem!”. Być może w ten sposób zainteresuje się też jakimś tematem i zapragnie rozszerzyć swoją wiedzę w danym kierunku, co rzecz jasna przyniesie pożytek nie tylko jemu (lub jej).
Wychodzi więc na to, że mamy do czynienia z wysoce subiektywnym, nieuporządkowanym, a także stronniczym, wybiórczym i w gruncie rzeczy nie do końca godnym zaufania źródłem informacji na tematy okołokoderskie i okołoinformatyczne. Cóż to więc za dziwny twór?… Zapewne z braku lepszych określeń pozostaje posługiwanie się bardzo ogólnym słowem-wytrychem: blog.
Muszę tutaj zaznaczyć, że przyznanie się do prowadzenia czegoś, co tak właśnie można nazwać, to dla mnie coś wciąż jeszcze lekko kłopotliwego. Dlaczego? Ano dlatego, że termin ‘blog’ nadal kojarzy mi się trochę ze złotą erą różowiasto-pokemoniastych wynurzeń znudzonych dwunastolatek :) Wiem, wiem – teraz to już przeszłość lub margines, a blogowanie stało się sprawą poważną, powszechną i różnorodną. Przepastna blogosfera (paskudny neologizm, swoją drogą) powinna zatem bez problemu pomieścić także i to, czym w regularnych odstępach czasu raczę wszystkich, którzy pojawiają się na tej stronie.
A zatem minął pierwszy rok istnienia tego bloga, zaś jednocześnie liczba zamieszczonych na nim notek wraz z niniejszą osiągnęła dokładnie 256 – co jest przecież porządną i bardzo okrągłą liczbą :) Zbieżności obu tych zdarzeń komentować raczej nie będę (;P), a zamiast tego pozwolę sobie wyrazić nieśmiałe życzenie – od siebie dla siebie i wszystkich czytających – abyśmy doczekali się kolejnych rocznic i jeszcze co najmniej kilku podobnych okazji. Ze swej strony mogę zapewnić, że dołożę wszelkich możliwych starań, aby tak właśnie się stało.