Dziś do końca dnia trzeba było zadeklarować przepracowane godziny za cały czerwiec.
Tak, do końca miesiąca jeszcze tydzień, ale życie korporacji ma swoją specyfikę: przepchnięcie wszystkich papierków, żeby przeliczyć, zatwierdzić i zadekretować wypłaty, wymaga kilku dni. No więc musimy dzisiaj wiedzieć, ile czasu przepracujemy każdego kolejnego dnia – aż do końca miesiąca.
Różne firmy różnie rozliczają czas pracy – bywałam w takich, gdzie każde pięć minut musiało wpaść w odpowiedni projekt, a pracowaliśmy przy kilku czy kilkunastu projektach równocześnie.
Tu jednak wrzucam wszystkie moje godziny w jeden ogólny projekt, więc do każdego dnia dodaję komentarz, co robiłam.
Teoretycznie codziennie wpisuję sobie czas pracy w papierowy kajecik oraz dodatkowo do zeszytu w OneNote, gdzie zaplanowałam sobie zapisywać, co danego dnia robiłam, na co ciekawego trafiłam, różne sztuczki konfiguracyjne i pomysły na później.
W praktyce jednak to nie zawsze działa – czasem jest taki zapiernicz, że nie ma czasu taczek naładować.
Ale mam git logi. 🙂
Za każdym razem, jak wrzucam jakąś zmianę czy nowy kawałek kodu do repozytorium, muszę jakoś opisać, co to i po co. Repozytoriów mam kilka, w każdym kod ma ileś gałęzi, w których pracuję nad różnymi rzeczami, dziennie zdarza się nawet kilkanaście wpisów, które można potem podejrzeć jednym poleceniem.
Jednym poleceniem – ale dla danej gałęzi kodu i w danym repozytorium. Jak tego jest kilka razy kilka(naście), to robi się trochę dużo.
Ale w końcu programuję zawodowo, a nie takie rzeczy robiliśmy ze szwagrem! (Jak ktoś nie zna historii o wierceniu dziur w stalowych rurach, to niech się kiedyś upomni. No ale do brzegu…)
Logi gita to duuużo ustrukturyzowanego tekstu. Można je automatycznie wygenerować, przefiltrować, przerobić na coś łatwiejszego do przeglądania i posortować.
No więc siadłam i napisałam sobie przez trzy i poł godziny całkiem zmyślny skrypt, który automatycznie wyciąga opisy zmian z logów każdej gałęzi kodu w repozytoriach, w których wprowadzałam w danym miesiącu jakieś zmiany, a następnie sortuje je po datach – i w ten sposób mam prawie gotową informację do wpisania w komentarze do każdego dnia.
Tyle że komentarz może mieć ze 250 znaków, a na jeden dzień przypada czasem kilkanaście wpisów, więc musiałam to jakoś poskracać i napisać syntetycznie.
Jednakowoż przy tej okazji nauczyłam się paru sztuczek w awku.
Otóż awk to taki bardzo niszowy język programowania z bardzo pokręconą składnią, którego jedynym zastosowaniem jest manipulacja plikami tekstowymi typu CSV – można przy jego użyciu zmieniać kolejność kolumn, sumować czy w inny sposób przetwarzać poszczególne kolumny w wierszach i robić dużo pokręconych rzeczy.
Ogólnie awk to taki Excel z czasów, kiedy o Excelu nikt jeszcze nie marzył. A obecnie starzy, brodaci i brzuchaci programiści używają go czasem do robienia różnych rzeczy i denerwowania młodych, chudych i pryszczatych programistów, którzy poznają tylko nowsze języki – i dla których Java, Python czy Javascript to starocie. xD
Mam podejrzenie graniczące z pewnością, że to właśnie na bazie awka (i seda oraz różnych uniksowych shelli) powstał Perl – i odziedziczył po nich pewne zawiłości składni, które powodują, że większość programistów ucieka od niego jak najdalej. Mnie to nawet do pewnego stopnia pasuje, bo powoduje, że moje kwalifikacje są unikatowe i wysoko wyceniane. 😉
Jak dotąd niespecjalnie awka potrzebowałam – ale dziś tak mi przyszło do głowy, że w sumie czemu by nie spróbować. I okazało się, że on nawet działa. A w przyszłym miesiącu wystarczy tylko odpalić skrypt i wszystko będzie jasne. 😀
Ale żeby nie było: nie jestem jeszcze aż tak zwariowana, żeby cały ten kod napisać w awku (choć pewnie by się dało – skoro można napisać serwer internetowy w języku do sterowania drukarkami…) Większość skryptu to bash. Pewnie, mogłam go napisać od początku do końca w Perlu, ale czasem warto nauczyć się czegoś nowe… no dobra, czegoś innego. 🙂
_______________
A dlaczego rozrzutnik obornika? – zapytasz.
Dawno temu – z piętnaście lat? – pisałam jakiś większy kawałek kodu, który robił coś, co nie miało sensu, utrudniał mi tylko życie, ale z jakichś przyczyn musiał zostać napisany.
Niewiele wcześniej mieliśmy niezłą aferę, bo ktoś – możliwe że klient, ale chyba raczej nawiedzony sprzedażowiec – odkrył, że w komentarzach w kodzie jednego z projektów są wyrazy powszechnie uznawane za obelżywe, i że ojejku, laboga, co będzie, jak ktoś z klientów to zobaczy?!
No więc nazwałam tamten kod rozrzutnikiem obornika – bo bardziej dosadnie nie wypadało.
Ten tu robi coś w sumie równie niepotrzebnego (bo nikt mi nie kazał tych komentarzy wypełniać). Ale tak naprawdę po dwóch godzinach od napisania już nie pamiętam, jak go nazwałam, a nie chce mi się sprawdzać. 😛
A przy okazji, droga osobo czytająca, masz dwie opowieści zamiast jednej.
I potencjalnie trzecią, wspomnianą wcześniej – w bonusie dla odważnych. 😀
Dodaj komentarz