#hacks

wszystkie notatki oznaczone etykietą "hacks"

Lokalne klasy w roli funktorów i funkcji lambda w C++03

Natrafiłem na jakiś stary, sprzed ponad 5 lat, kod mojego autorstwa, gdzie w projekcie z różnych powodów używaliśmy starego środowiska, kompilatora lub języka w standardzie C++03. Były to już czasy grubo po premierze C++11 no i jak to bywa, człowiek zachłyśnięty nowymi elementami języka, strasznie usprawniającymi pracę, musiał sobie jakoś radzić w szarej rzeczywistości. Dla mnie takim największym problemem był brak anonimowych funkcji i wpadłem wtedy na genialną pseudo-protezę funkcji lambda, aby tylko nie trzeba było definiować zewnętrznych funktorów ;)

Czytaj dalej

Automatyczne linki do dokumentacji w Hugo

W ostatnich moich wpisach o C++ odwoływałem się często do opublikowanego w sieci, w postaci strony HTML, standardu tego języka. Pomyślałem sobie, że zamiast w treści surowego wpisu dodawać bezpośrednie odnośniki do linkowanych fragmentów, dobrym pomysłem będzie używanie identyfikatorów (tych ze standardu) i przerzucenie całej roboty na generator strony. Nie ograniczając się tylko do cpp mógłbym obsłużyć też inne często linkowane dokumentacje. Taki mechanizm ma też inną zaletę – czystsza treść i prostsza forma wpisu bez linków do dokumentacji, a tym samym bezproblemowa zmiana miejsca docelowego wskazujących odnośników.

Czytaj dalej

Generowanie plików z pomocą Hugo Pipes

W ostatniej mojej notce przedstawiłem prosty sposób na tworzenie w Hugo dodatkowych plików za pomocą niestandardowych formatów wyjściowych, a dzisiaj chciałbym spróbować do tego celu wykorzystać “pipki” (Hugo Pipes). Tematyka nadal będzie poruszać się wokół mapy przekierowań ;)

Generowanie mapy przekierowań z Aliasów w Hugo

Hugo posiada możliwość udostępniania stron pod różnymi adresami za pomocą aliasów, które “przekierowują” do głównej treści. Może to być bardzo przydatne przy zmianach adresu danej podstrony. Ja nie korzystam z tego mechanizmu, ale chciałem sprawdzić czy można zmusić Hugo do wygenerowania pliku z mapą przekierowań (redirects.txt), bazując na zdefiniowanych w treści aliasach. To pozwoliłoby przekształcić je w pełnoprawne przekierowania 301. Aliasy w Hugo Dokumentacja dotycząca aliasów jest dość krótka i w prosty sposób opisuje działanie tego mechanizmu.

Czytaj dalej

Przyspieszanie strony - zapytania/cache/kompresja w HTTP

Moje eksperymenty z przyspieszeniem bloga, czyli minimalizacja zapytań, cache i kompresja w HTTP. Minimalizacja zapytań Cache Kompresja

Kanały RSS/Atom w Hugo

Mój statyczny blog już działa, choć wymaga jeszcze trochę poprawek. Jednym z ważniejszych elementów wymagających dopracowania są kanały RSS/Atom. To przecież wciąż jedyna słuszna metoda syndykacji i notyfikacji o zmianach na stronie. Hugo w standardzie wspiera i automatycznie generuje kanały RSS. Niestety domyślne ustawienia i założenia nie spełniają moich specyficznych potrzeb, więc nadeszła pora na dostosowanie… i generowanie własnego kanału ;) RSS 2.0 i domyślny szablon Hugo posiada wbudowany wewnętrznie szablon dla kanałów RSS 2.

Czytaj dalej

Thunderbird w zasobniku systemowym - The hard way!

Początkowo planowałem zaprosić wszystkich na serię kilku odcinków o hakowaniu i programowaniu pod Windowsem. Miały to być zapiski z mojej próby rozszerzenia funkcjonalności programu, ale bez modyfikacji jego źródeł i binarek, tylko na “żywca” w czasie jego działania. Zapowiadał się ciekawy po-wakacyjny projekt, ale tym razem coś nie wyszło ;) Minimize To Tray Odkąd przesiadłem się na Mozillowego Thunderbirda brakowało mi w nim tego co bardzo ceniłem w poprzednio używanych klientach pocztowych.

Czytaj dalej

Hack-A-Sat: Polacy zhackowali satelitę...

Polskie satelity już od dawna zdobywały kosmos… ostatnim był PW-Sat2 z Warszawskiej Polibudy… a teraz przyszedł czas na hackowanie satelity! W ramach konkursu Hack-A-Sat polska ekipa “Poland Can Into Space”, składająca się z połączonych sił najlepszych ctf-owych drużyn p4 i Dragon Sector, zdobyła 2 miejsce. Gratulacje! Congratulations to our top 3 Teams! 🎉 1⃣ PFS @pfs_ctf 2⃣ Poland Can Into Space @p4_team & @DragonSectorCTF 3⃣ FluxRepeatRocket @fluxfingers & Solar Wine @solarwine_ctf for being the top scorer!

Czytaj dalej

Proste wewnętrzne ref-linki w Hugo

Gdy w jednej notatce potrzeba się odwołać do innego wpisu wystarczy użyć zwykłego odnośnika. W takim WordPress-ie nie było żadnego mechanizmu i dodawało się po prostu zwykły link do podstrony z wpisem (bezwzględny w domyśle). Podobnie mógłbym robić na stronie generowanej w Hugo, ale to mi się nie podoba… Nie chcę w plikach z treściami bezwzględnych linków do wewnętrznych elementów strony - preferuję relatywne względem roota strony. Nie chcę też sztywnych adresów, bo jak zmienię nazwę, sluga bądź format generowanych adresów to wszystko się rozjedzie.

Czytaj dalej

Polska odmiana rzeczowników w Hugo

Po ogarnięciu polskich nazw miesięcy w Hugo przyszła pora na odmiany rzeczowników przy liczebnikach i odpowiednią formę liczby mnogiej. Poza wsparciem tego w tłumaczeniach, Hugo nie posiada żadnych innych pomocnych mechanizmów. Żeby ogarnąć poprawną formę i odmianę dla naszego rodzimego języku to trzeba trochę pokombinować… Na początku miałem problem z przypomnieniem sobie fachowej nazwę tej reguły, aby o to zapytać wyszukiwarkę. Wiedziałem tylko, że kiedyś coś takiego widziałem przy tłumaczeniach z wykorzystaniem gettetxt-a i plików PO.

Czytaj dalej