Trzeba szukać!

anonymous person with binoculars looking through stacked books

Korzystałem z różnych systemów kontroli wersji u wielu dostawców. Oczywiście: Github, Gitlab, Bitbucket (Stash), ale też mniej popularne jak Benstalk czy Gitea. Poza podstawowymi funkcjami hostowania repozytoriów umożliwiają mniej lub bardziej wygodne narzędzia do pracy z kodem. Od zwykłej przeglądarki plików po zaawansowane edytory i narzędzia wizualizacji historii. Jednak wszystkim brakuje jednej funkcjonalności – wyszukiwarki. Zanim podniosą się głosy, że przecież Github ma wyszukiwarkę, pozwólcie, że wyjaśnię.

O lokalności LocalDateTime

Salvador Dali - Trwałość pamięci

W kłopoty wpędza cię nie to, czego nie wiesz, lecz to, co wiesz, a co nie jest prawdą. — Will Rogers Podstawy których nie znają seniorzy Wszyscy wiemy jak ważnym zagadnieniem jest dobre nazewnictwo zmiennych, funkcji, klas i wszystkiego czym operujemy. Jednym z popularniejszych technik refaktoryzacji jest zmiana nazwy. Programiści spędzają sporo czasu nad wymyślaniem […]

Ocalić od zapomnienia: Charyzjusz Chakier

Bywa tak, że mamy ulubionego malarza/pisarza/blogera/vlogera… – ogólnie twórcę, do którego dzieł wracamy wielokrotnie, a one niezmiennie dają nam tyle samo radości. Dla mnie takim twórcą jest Charyzjusz Chakier. Fikcyjny bohater, a zarazem autor bloga na bblog.pl – platformie blogowej należącej do Money.pl (w 2014 przejętej przez wp.pl). Niestety platformę po 10 latach działania zamknięto […]

“Wiele zależy od niezależności”

Porównanie liczby zależności w zależności od języka

Ostatnio w jednym z projektów, nad którym pracowałem, potrzebowaliśmy wygenerować UUID. Prosta sprawa, na pewno jest od tego biblioteka. Mocno się zdziwiłem, kiedy odkryłem, że mamy już taką w projekcie. Co więcej nie jedną, a siedem i to niektóre w dwóch lub trzech wersjach. cat go.sum | grep uuid | cut -d ” ” -f1 […]

Kto wie, jakie strony odwiedzasz?

W lipcu jeden z najpopularniejszych serwerów DNS BIND skończył 33 lata. Pierwsza wersja standardu DHCP przypada na rok 1993 (RFC1531). Od tego czasu świat poszedł naprzód i większość protokołów została zastąpiona swoimi szyfrowanymi odpowiednikami (Telnet → SSH, FTP → SFTP, HTTP → HTTPS). DNS i DHCP przetrwały praktycznie bez zmian. W tym artykule przedstawi, jakie […]

Mierz logi na zamiary

Każdy, kto podczas codziennej pracy opiekuje się jakąś aplikacją na pewno nie raz spotkał się z potrzebą przeszukiwania setek (lub setek tysięcy) wpisów w logu. Czy logi to najlepszy sposób na kontrolowanie stanu aplikacji? W dzisiejszym poście będę zachęcał do rezygnacji z nadmiarowych logów na rzecz miar. Po co w ogóle pisać logi? Logi pozwalają […]

Wzorce pracy zdalnej

W ostatnim czasie praca zdalna stała się coraz bardziej rozpowszechniona. Sam pracowałem przez rok jako satelita, a wcześniej także przez rok w pełni rozproszonym zespole w różnych strefach czasowych. Aktualnie pracuję w Allegro, gdzie przez fakt posiadania biur w kilku miastach, elementy pracy zdalnej są na porządku dziennym. Zanim przejdziemy do wzorców, określmy kontekst zespołu […]

Infoshare 2019

W tym roku ekipa detektywów po raz pierwszy odwiedziła konferencję Infoshare w Gdańsku. Nie jest to typowa konferencja z dużą ilością mięsa kodu, jednak coś nas w niej urzekło. Zachęcamy do zapoznania się z naszym subiektywnym podsumowaniem. Konferencja trwała 3 dni od 7 do 9 maja. Przy czym pierwszy dzień był w całości poświęcony na […]

Bezpieczny SVG

W jednej aplikacji nad którą pracuje odkryliśmy podatność dotyczącą plików SVG dostarczanych przez użytkowników. Szczegółowe wyjaśnienie jak można wykorzystać Scalable Vector Graphics do zrobienia Stored XSS dobrze opisał Sekurak. Vizzdoom (autor posta na Sekuraku) sugeruje zwracanie odpowiednich nagłówków (Content-Type, X-Content-Type-Options i Content-Security-Policy) – co zawsze jest dobrym pomysłem! a także zachęca do użycia narzędzia SVGPurifier. […]

Meetup idealny

Od czasu do czasu chodzę na meet-upy i konferencje, trochę rzadziej na nich występuję. Praktycznie ich nie organizuje, ale jak trzeba, to pomagam. Niestety na wielu takich spotkaniach zdarzają podobne problemy i w tym wpisie chciałbym podzielić się, jak ich uniknąć.