Świąteczne E-kartki „małych braci Ubogich”
W sierpniu zeszłego roku w ramach comiesięcznej pomocy wsparliśmy Stowarzyszenie „mali bracia Ubogich”. Stowarzyszenie należy do Międzynarodowej Federacji „les petits frères des Pauvres” i od 2002 roku działa w Polsce. Zajmuje się pomocą osobom starszym oraz przeciwdziała izolacji i samotności wśród starszych ludzi.
Stowarzyszenie poza samą pomocą organizuje m.in. spotkania mające na celu pielęgnowanie dialogu międzypokoleniowego, na których uczestnicy mają okazję do opowiedzenia historii swojego życia, wymiany doświadczeń, zaprezentowania swoich pasji i zawiązywania nowych przyjaźni. Pozwala również skorzystać z nieodpłatnych konsultacji ze specjalistami z dziedziny prawa i psychologii. Prowadzi też akcje o charakterze rozrywkowym, takie jak „Andrzejki wśród gwiazd” czy spektakl muzyczny „Bal na Gnojnej”.
Szczególne znaczenie ma działalność Stowarzyszenia w czasie Świąt Bożego Narodzenia, gdy samotność wyjątkowo dotyka starsze osoby. W tym roku organizowane będą spotkania wigilijne dla podopiecznych Stowarzyszenia w Warszawie, Poznaniu i Lublinie. Takie akcje jednocześnie mają zwrócić społeczną uwagę na problem świątecznego osamotnienia osób starszych.
W związku z tymi działaniami, „mali bracia Ubogich” zgłosili się do nas z prośbą o pomoc w stworzeniu i uruchomieniu aplikacji służącej do wysyłania e-kartek świątecznych. Nie mogliśmy odmówić i w niedługim czasie zbudowaliśmy od podstaw taką aplikację. Na początku grudnia została uruchomiona pod adresem kartki.malibracia.org.pl.
Oto przykładowa świąteczna e-kartka:
Aplikację napisaliśmy w sposób uniwersalny, wyposażając ją w system zarządzania treścią, umożliwiający wolontariuszom ze Stowarzyszenia samodzielne wprowadzanie kolejnych wzorów kartek i znaczków, zmianę okolicznościowych banerów, itp. Dzięki temu aplikacja będzie mogła być wykorzystywana w przyszłości przy okazji kolejnych akcji.
Zapraszamy do skorzystania z aplikacji oraz zachęcamy do wspierania Stowarzyszenia „mali bracia Ubogich”.
Wspieramy Fundację FreeBSD i Fundację „Panoptykon”
Dziś 15. dzień miesiąca, w którym zgodnie z tradycją pomagamy finansowo projektom open source i organizacjom prowadzącym działalność dobroczynną i społeczną. Wybór odbiorców naszej pomocy w tym miesiącu należał do Grzegorza Błacha.
Ponieważ Grzegorz aktywnie uczestniczy w projekcie FreeBSD, nie było zaskoczeniem, że jego wybór padł na organizację stojącą za tym projektem, czyli Fundację FreeBSD (którą już swego czasu wspieraliśmy, rozpoczynając naszą akcję). Używamy FreeBSD na naszych firmowych serwerach od początku działalności, czyli już przez dziewięć lat, i zamierzamy dalej korzystać z tego świetnego systemu.
Drugą wspomaganą w tym miesiącu organizacją jest Fundacja „Panoptykon”, założona w roku 2009 i prowadząca działalność na rzecz ochrony praw człowieka w dobie błyskawicznie rozwijającej się technologii. Oto co o swojej misji pisze Fundacja na stronie internetowej:
Naszym celem jest działanie na rzecz wolności i ochrony praw człowieka w społeczeństwie nadzorowanym. Diagnozujemy zagrożenia związane z praktykami nadzoru, interweniujemy w przypadkach nadużyć, wypracowujemy alternatywne rozwiązania systemowe, pobudzamy do krytycznej refleksji i działania na rzecz zmiany.
Dziękujemy obu Fundacjom za ich wysiłki i życzymy powodzenia w dalszej działalności.
Wspomagamy projekt Modernizr i Fundację Dzielna Matka
Dotrwaliśmy do połowy kolejnego miesiąca, a wraz z tym do następnej tury pomocy projektom open source i organizacjom dobroczynnym.
W tym miesiącu wspomagamy Modernizr, małą bibliotekę napisaną w JavaScripcie, wspomagającą wykrywanie natywnych implementacji funkcjonalności ze standardów HTML5 i CSS3 w przeglądarkach. Dzięki niej w naszych projektach korzystamy z nowinek technologicznych i jednocześnie jesteśmy w stanie obsługiwać starsze przeglądarki, stosując dla nich dodatkowe biblioteki i skrypty symulujące nowe funkcje.
Drugą organizacją, której pomagamy w tym miesiącu, jest Fundacja Dzielna Matka. Zajmuje się ona wspieraniem matek dzieci z niepełnosprawnościami i od trzech lat działa na terenie Jabłonny. Czterem założycielkom życzymy dalszych sukcesów we własnych walkach z losem jak i w organizowaniu pomocy dla innych potrzebujących!
Wspieramy GnuPG i Schronisko dla zwierząt w Łodzi
Za nami połowa października, a połowa naszego zespołu choruje, jednak duch w nas nie słabnie i zgodnie z comiesięcznym zwyczajem przekazujemy dziś wsparcie finansowe na rzecz wybranego projektu open source i organizacji dobroczynnej. Wyboru odbiorców dokonał tym razem Karol Pasternak.
Wspomagamy dziś projekt GnuPG, będący darmową i otwartą implementacją standardu OpenPGP, dzięki któremy można relatywnie łatwo szyfrować komunikację e-mailową (szczególnie z pomocą dodatków do programów pocztowych takich jak Enigmail). W naszym zespole często korzystamy z GnuPG w komunikacji z klientami dbającymi o wysoki poziom bezpieczeństwa, oraz w przypadkach, gdy konieczne jest przesyłanie e-mailem wrażliwych danych. Dziękujemy twórcom programu, Wernerowi Kochowi i zespołowi g10code!
Przesyłamy ponadto wsparcie dla Schroniska dla zwierząt w Łodzi. Schronisko otrzymało już od nas pomoc w ubiegłym roku, jednak wiemy, że jego pracownicy i wolontariusze wykonują kawał dobrej roboty pomagając zwierzętom, więc zasługują na znacznie więcej, niż tylko jednorazowe wsparcie. Dziękujemy i przesyłamy im (i ich podopiecznym) życzenia wszystkiego dobrego!
JoomlaDay Poland 2013
W poprzednią sobotę, 5. października, miałem przyjemność wybrać się na konferencję JoomlaDay Poland 2013, zorganizowaną w Centrum Szkoleniowo-Konferencyjnym Uniwersytetu Łódzkiego. Konferencja podzielona była na dwa dni – Dzień Biznesu (sobota) i Dzień Społeczności (niedziela), ja uczestniczyłem tylko w tym pierwszym. Oto moja krótka relacja z Dnia Biznesu.
Po przejściu przez procedurę rejestracji i otrzymaniu torby zawierającej identyfikator uczestnika, program konferencji, reklamówki produktów i kilka gadżetów z logo JoomlaDay (takich jak kubek, czy długopis), wybrałem się do auli CSK na oficjalne powitanie. Tegoroczny JoomlaDay otworzył pan Stefan Wajda, lider Polskiego Centrum Joomla i zarazem prezes Fundacji PCJ Otwarte Źródła.
Jako pierwszy z prelegentów wystąpił pan Ofer Cohen, członek zarządu Open Source Matters (organizacji zajmującej się rozwojem Joomli), z wykładem zatytułowanym „Joomla and Open Source: How it works and how can you make it better?”. Przedstawił w nim ogólne założenia Joomli, powiedział gdzie w Internecie szukać pomocy społeczności, oraz w jaki sposób można przyczynić się do dalszego rozwijania Joomli. W wykładzie pana Cohena nie zabrakło elementów artystycznych, takich jak zdejmowanie z siebie pięciu kolejnych koszulek z nadrukami Joomli i rzucanie nimi w publiczność, czy małe quizy nagradzane naklejkami z logiem Joomli (również rzucanymi).
Po tej prezentacji wybrałem się na wykład pt. „Własne kategorie w 15 minut”, prowadzony przez Pawła Nowakowskiego z firmy Safi Studio. Bez zbędnych wstępów, prowadzący skupił się na temacie prelekcji, krótko i zwięźle przedstawiając, jak za pomocą napisanego przez siebie komponentu zrobić na stronie porządek w treściach i rozbudować ją o podział na kategorie. Nie wiem, czy wszyscy obecni zapamiętali, co gdzie należy kliknąć i wpisać, ale dla mnie był to dobry przykład, jak szybko można w Joomli zrobić rzeczy z pozoru trudne. Zachęciło mnie to również do bliższego zapoznania się z tworzeniem komponentów w Joomli. Ta prezentacja – jak się później okazało – była najbardziej „programistyczna” ze wszystkich tego dnia.
Następny wykład, na którym byłem, poprowadził pan Darek Śnieg, a jego tematem był problem „White Screen of Death” – czyli co zrobić, gdy po zmianach na stronie zamiast oczekiwanego efektu widzymy tylko pusty, biały ekran. Prowadzący nie zagłębiał się w zbytnio w szczegóły techniczne rozwiązywania problemu, zamiast tego przedstawił pokrótce sposób, jak szybko znaleźć i usunąć niedziałający moduł lub komponent.
„Jak zbudować portal miejski w 45 minut” to temat kolejnej prezentacji, poprowadzonej przez panów z firmy Joomla-Monster, którzy wykorzystując napisane przez siebie komercyjne dodatki do Joomli tworzyli „na żywo” ów portal, pokazując w ten sposób możliwości swojego oprogramowania. Większość publiczności najwyraźniej znała te dodatki i interesowała się ich zastosowaniem, co wywnioskowałem na podstawie pytań o różnice pomiędzy wersjami i o możliwości kolejnych wydań.
Po przerwie obiadowej okazało się, że jeden z prowadzących nie dojechał, i zamiast na planowany wykład o rozwiązaniach dedykowanych, poszedłem w zastępstwie na prezentację o dość intrygująco brzmiącym temacie „Wykorzystanie Joomla! i K2 w systemie eksperckim”. Prowadzący wykład pan Krzysztof Strymiński zajmuje się wdrażaniem mechanizmów sztucznej inteligencji i na przykładzie strony Aktywne Łącza pokazał możliwość zastosowania Joomli jako łącznika pomiędzy elementami składowymi dużego systemu, zamiast dedykowanego oprogramowania. Przy okazji zaprezentowane zostały dodatki do Joomli takie jak K2 (jako repozytorium plików i etykiet), czy Joomdle (moduł obsługujący platformę e-learningową Moodle).
Sam temat sztucznej inteligencji był na tyle interesujący dla obecnych, że zajął większość czasu wykładu, mimo to panu Krzysztofowi udało się omówić budowanie złożonego systemu z różnych części i połączenie ich w całość z wykorzystaniem Joomli. Dla mnie był to ciekawy dowód na wszechstronność zastosowań Joomli.
Kolejna prezentacja, na którą się wybrałem, była zatytułowana „Rozszerzenia do Joomla! – biznes, prawo, podatki” i dotyczyła kwestii prawnych związanych z tworzeniem dodatków do Joomli (i nie tylko). W pierwszej części wykładu prowadzący, pan Aleksander Kuczek, zwrócił uwagę na to, że pomysł na dobre rozszerzenie niekoniecznie jest zarazem pomysłem na dobry biznes. Opowiedział następnie o sposobach promocji i reklamy tworzonych dodatków, modelach biznesowych, oraz możliwościach obsługi płatności i reklamacji. Druga część dotyczyła licencjonowania i rozliczania się ze sprzedaży oprogramowania, także pod kątem problemów z prawem w krajach spoza Unii Europejskiej. Nie był to wykład związany bezpośrednio z tajnikami programowania czy samą Joomlą, ale sądzę, że każdemu, kto tworzy komercyjne oprogramowanie, wiedza ta prędzej czy później się przyda.
Ostatnia z prezentacji tego dnia miała obiecujący tutuł „Joomla w branży e-commerce – sklep, który sprzedaje”. Pan Mateusz Grabowski na przykładzie dodatku VirtueMart pokazywał, jak zoptymalizować proces dokonywania zakupu i przedstawił najczęstsze błędy popełniane przy projektowaniu sklepu internetowego. Dodatkowo przedstawił plusy monitorowania sklepu i śledzenia poczynań użytkowników przy pomocy Google Analytics i podobnych rozwiązań, oraz zalety budowania responsywnych stron. Na koniec zaprezentował kilka trików do wykorzystania przy tworzeniu wyglądu sklepu.
Po zakończeniu wykładów odbyło się podsumowanie całego dnia i losowanie nagród (niestety szczęście mi nie dopisało), a potem wszyscy uczestnicy JoomlaDay Poland 2013 zostali uwiecznieni na wspólnym zdjęciu.
Wujek Bob kontra Pan Spock – czyli prezentacja o Test-Driven Development
Nie minęło wiele czasu od ostatniego wpisu, w którym relacjonowaliśmy nasze uczestnictwo w prezentacji Wujka Boba (Roberta Martina) o czystym kodzie, a już mieliśmy przyjemność wybrać się na kolejne spotkanie z serii. Tym razem tematem była technika Test-Driven Development (TDD), czyli tworzenie oprogramowania w oparciu o testy.
Przyzwyczajony do ekscentrycznych zachowań Wujka z pierwszej prezentacji, tym razem już nie odczuwałem, by jego rekwizyty czy zmieniająca się scenografia działały rozpraszająco – wręcz przeciwnie, odbierałem je jako ciekawe urozmaicenie. Całość prezentacji miała formę rozmowy Wujka Boba z Panem Spockiem, znanym z patrzenia na świat tylko przez pryzmat logicznego myślenia.
Wujek Bob starał się przekazać słuchaczom, w jaki sposób technika TDD prowadzi do poprawy jakości kodu źródłowego, szczególnie w większych projektach. Wskazał problem, jaki często dotyka programistów pracujących przy złożonych systemach, którzy obawiają się wprowadzania zmian w istniejącym (i działającym) kodzie, ponieważ zmiany mogą spowodować problemy. Gdy strach bierze górę, w projekcie pozostawiany jest kod gorszej jakości.
Zastosowanie rygorystycznych testów pozwala na wyeliminowanie tych obaw, ponieważ programista wprowadzający zmiany może je natychmiast przetestować i dzięki temu przekonać się, czy nie pojawiły się problemy. Warunek? Programista musi mieć pewność, że może zaufać swoim testom. By to osiągnąć, należy trzymać się trzech zasad:
- Przed napisaniem jakiegokolwiek kodu produkcyjnego, musi istnieć nieprzechodzący test, który zostanie przez ten kod naprawiony.
- Każdy test musi wykazywać określony brak lub błąd w systemie, i musi sprawdzać jedynie minimalny zestaw warunków, wystarczający do niepowodzenia.
- Zabronione jest pisanie większej ilości kodu produkcyjnego, niż wystarczająca do naprawienia jednego nieprzechodzącego testu.
Zalety płynące ze stosowania tej techniki są niezaprzeczalne – w dużych projektach TDD pozwala na bardziej efektywną pracę programistów, ułatwia kontrolę jakości, oraz (co już zostało powiedziane) zapewnia bezpieczne wprowadzanie zmian i poprawek w „starym” kodzie.
Nie będę zdradzać zakończenia prezentacji i tego, czy Wujkowi udało się przekonać Pan Spocka do swoich racji. Osobiście nabrałem chęci do wypróbowania TDD w formalny sposób i liczę na to, że w którymś z realizowanych w najbliższej przyszłości projektów będę mieć taką możliwość.
Legend Highlighter – plugin do biblioteki Highcharts
Na naszym profilu na GitHubie pojawił się kilka dni temu nowy projekt – plugin Legend Highlighter dla biblioteki Highcharts, dodający możliwość podświetlania części wykresu stworzonego przy pomocy tej biblioteki.
Plugin powstał przy okazji pracy nad projektem korzystającym z Highcharts, i początkowo miał służyć jedynie do zrealizowania prostego efektu wysuwania fragmentu wykresu kołowego (pie chart). Rozbudowaliśmy go jednak o obsługę innych rodzajów wykresów, aby stworzyć bardziej uniwersalne rozwiązanie. Przygotowaliśmy stronę z kilkoma przykładami zastosowania pluginu (opartymi na przykładach udostępnianych przez Highcharts) dla różnych wykresów – zachęcamy do ich obejrzenia.
Kod pluginu udostępniliśmy na licencji MIT – zapraszamy do jego używania, mile widziane są też wszelkie komentarze i oczywiście forki.
Wspieramy Nginx i Fundację KOTYlion
Dziś 15. dzień miesiąca, niedziela, niby dzień wolny, ale tradycja zobowiązuje – przystępujemy zatem do kolejnej odsłony naszej akcji wspierania projektów open source i organizacji dobroczynnych. W tym miesiącu odbiorców naszej pomocy wybrał Krzysiek Skarbek.
Projekt open source, któremu przekazujemy wsparcie, to Nginx – rozpowszechniany na licencji BSD serwer HTTP, znany ze swojej skalowalności i wydajności. Ze względu na te zalety, często korzystamy z Nginxa w pracy z projektami webowymi – kilka aplikacji, jakie tworzyliśmy dla naszych klientów, zostało wdrożonych przy użyciu tego właśnie serwera. Dziękujemy twórcom Nginxa, w szczególności autorowi jego pierwszej wersji, Igorowi Sysojewowi, i gratulujemy dobrej roboty!
Przekazujemy również pomoc finansową na rzecz Fundacji KOTYlion z Łodzi, zajmującej się pomocą porzuconym i niechcianym kotom. Pozdrawiamy ekipę i wolontariuszy Fundacji, oraz oczywiście wszystkich jej kocich podopiecznych!
Komentarze kłamią! – czyli prezentacja Wujka Boba o czystym kodzie
W myśl idei poszerzania wiedzy o zarówno tych podstawowych, jak i zaawansowanych prawach rządzących światem programistycznym, kilka dni temu wybraliśmy się większością zespołu łódzkiego na wideo-prezentację dotyczącą pisania czystego kodu źródłowego, dostarczoną prosto od Wujka Boba. Spotkanie, zorganizowane przez Stowarzyszenie JUG Łódź, odbyło się w budynku Politechniki Łódzkiej, w Katedrze Mikroelektroniki i Technik Informatycznych. Sponsorem tego odcinka była firma Rule Financial, która opłaciła koszty licencji.
Robert Martin zwany popularnie Wujkiem Bobem – to znany amerykański konsultant i autor książek. Jego książka „Clean Code” to swego rodzaju biblia dla programistów, pozycja obowiązkowa dla każdego kto pisze i utrzymuje kod źródłowy. Wujek Bob jest założycielem firmy The Clean Coders, która prowadzi szkolenia w formie code castów, czyli szkoleń wideo. The Clean Coders udostępnia na licencji „community” prezentacje, które można wyświetlić dla 50 osób poza godzinami pracy i tylko jednokrotnie.
Nie żałujemy uczestnictwa. Dobrze jest od czasu do czasu usłyszeć od starszego człowieka wymachującego mieczem samurajskim rozkaz trzymania się odpowiednich standardów!
Usłyszeliśmy, że każdy komentarz w kodzie jest naszą osobistą porażką, ponieważ jest on dowodem na to, że nie potrafimy jasno wyrazić przeznaczenia jakiegoś kawałka kodu poprzez język programowania, w którym w danej chwili pracujemy.
Wujek Bob podkreślał, jak istotne jest trzymanie w projekcie małych plików, zawierających od 60 do 200 linii kodu. Zostało to udokumentowane odpowiednimi statystykami z różnych, dojrzałych projektów.
Pokazana została również różnica między klasą a strukturą danych, do którego z tych obiektów stosujemy domyślną politykę prywatności czy też publiczności danych, a także jak je wykorzystywać do prawidłowego, solidnego projektowania systemów informatycznych.
Mój ulubiony fragment to wyśmianie przez Wujka używanych przez programistów tzw. setterów i getterów. Zawsze mnie to co najmniej niepokoiło, w szczególności wtedy kiedy było to forsowane przez nauczycieli akademickich. Jak dla mnie, i najwyraźniej również dla Wujka Boba, ustawianie zmiennych prywatnymi, a następnie przygotowywanie dla nich funkcji najczęściej nazwanymi „getNazwaZmiennej” jest dowodem na niezrozumienie programowania obiektowego.
Pouczające było również uświadomienie tego, że baza danych nie zawiera rzeczywistych obiektów pochodzących prosto z biznesowego świata. Zawiera ich reprezentację w postaci odpowiedniej struktury danych (gdzie kolumny to publiczne pola takiej struktury).
Całość prowadzona była w dobrej atmosferze i z humorem, jednak rekwizyty Wujka Boba w pewnym momencie zaczęły wytrącać mnie ze słuchania (dla przykładu, jednym z przedmiotów była magiczna różdżka). Ogólnie jednak oceniam prezentację pozytywnie.
Jako że spodobała nam się ta forma, a następne prezentacje z cyklu potrzebują sponsorów, to jest wysoce prawdopodobne, że nasza firma zasponsoruje jedną z nich (o czym na pewno poinformujemy na blogu).