Kieliszek porto, baronie?

Piłem wczora z wieczora pierwszy raz, gatunek relatywnie najpodlejszy zwany Ruby [a samobójcy przed rzuceniem się pod pociąg to niby piją Ruby on Rails?…] Ale koncepcja alkoholu w zasadzie słodkiego, o kompromisowym woltażu 20%, wydaje mi się coraz sympatyczniejsza, zważywszy na mój antyalkoholizm. Na winie generalnie się nie znam, wytrawności moim chamskim podniebieniem, jak powiedziałby to pan Zagłoba, nie ogarniam, wódkę pijam z absolutnej, nazwijmy to, konieczności… Porto wydaje się spełniać moje, nazwijmy to, potrzeby, w zupełności. No i mimo swojej słodkości smakuje świetnie z kiełbasą wiejską i żółtym serem 🙂

Raport dla Pana Prezesa.

Standardowe raportowanie w Optimie jakoś mi nie wystarcza. Albo wystarcza, ale o tym nie wiem [czyt. być może są gdzieś jakieś funkcje, ale ich nie znalazłem]. Koncepcja raportu na koniec miesiąca ewoluuje razem z potrzebami, patrzę na to i się śmieję.

Iteracja pierwsza – przetwarzanie raportów z plików txt i klejenie ich do jednego arkusza. Sam się dziwię, że to kiedykolwiek działało.

Iteracja druga: skrypt w bazie danych, z całości robiona kostka OLAP, eksportowana później do wykresów i tabel przestawnych Excela [zresztą to jedyny powód, dla którego ongiś wróciłem do MS Office – a na sprawdzanie, czy [Libre|Open|Apache]Office dorobił się w tzw. międzyczasie obsługi OLAP i wykresów przestawnych, jakoś brakło czasu]. Ciepło albo nawet bardzo ciepło; szybki rzut oka na sytuację klienta możliwy od razu, czego brakowało mi od początku. Wady: brak / nieumiejętność w miarę automatycznie aktualizowanego syntetycznego obrazu danych – filtry się rozjeżdżają, za każdym razem trzeba odświeżać źródło danych. Brak możliwości / nieumiejętność podpięcia jednej kostki jako źródła danych dla wszystkich tabel / wykresów w skoroszycie. Denerwujące [acz niezawodne] ogniwo pośrednie w postaci fabryczki OLAP. No i w sytuacji, w której na ekranie laptopa chciałbym obejrzeć kilka wykresów przestawnych, potrzebny jest dodatkowy kod VB do przełączania wartości pokazywanych na jednym wykresie przestawnym, a mi się już chyba nie chce.

Iteracja trzecia: python. Na początek sam, przejmujący obowiązki generowania tabel. Od pewnego czasu stało się to koniecznością, sparametryzowane skakanie z bazy na bazę w jednym pliku skryptu… może i jest możliwe, ale po co? Tutaj sprawa była relatywnie prosta, implementacja ActiveState okazała się dysponować driverem do mssql [o ile jest się świadomym istnienia pypm… :)], wystarczyło tylko podnieść się do 2.7. A przy okazji zamyśleń noworocznych pomyślałem sobie, że funkcję arkusza excelowego równie dobrze [a nawet lepiej, bo w postaci hardcopy choćby] może w zasadzie pełnić perfekcyjnie skastomizowany PDF. matplotlib do wykresów, reportlab do PDF i teoretycznie wszystko gra. Teoretycznie, bo zaczęły się schody. A to matplotlib nie generuje JPG, a to brakuje dekodera zip [sic!], a to reportlab nie chce wygenerować pliku z obrazkiem… Rozwiązanie okazało się relatywnie przejrzyste: na 2.7 [ActiveState najwyraźniej lekce sobie waży nowe wersje, bo modułów do 3.* jak na lekarstwo] doinstalować do obsługi obrazków pillow [forka PIL], doinstalować i dopisać do %PATH% ścieżkę do ghostscripta [generowane pliki PNG/SVG najwyraźniej mnie nie lubią] i piękny, generowany automatycznie testowy PDF z grafiką w środku jest gotowy. Istotna kwestia stworzenia struktury raportu [wykresy, a w konsekwencji całość mogą zajmować sporo miejsca i nawigacja jest nie bez znaczenia] wydaje się również być wspierana, ale to może jeszcze poczekać.

Jak na kogoś zajmującego się ogólnie rozumianym IT przez jakieś 10% swojego czasu pracy – dwa dni to chyba całkiem nieźle. Pozostaje mieć nadzieję, że ta iteracja posłuży mi przez parę lat…