#hacks

wszystkie notatki oznaczone etykietą "hacks"

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

Polskie daty w Hugo

Blog ten prowadzony jest w ojczystym języku, zatem dobrze jest zadbać o poprawne polskie zasady językowe, sformułowania, tłumaczenia, zwroty… Dotyczy to także dat i odmian nazw miesięcy. Kiedyś na szybko zrobiłem jakiś hack w szablonie używanym w WordPresie, a teraz muszę coś podobnego ogarnąć na stronie w Hugo. Generator Hugo mimo iż posiada jakieś wsparcie dla wielojęzycznych stron, to jednak nie dotyczy to samych dat. Póki co język Go, w jakim tworzone jest to narzędzie, nie posiada takiej możliwości.

Czytaj dalej

Makro SendMessage a nazwa funkcji

W notce Makra WinAPI i problemy z nazwami przedstawiłem proste i łatwe rozwiązanie problemu wynikającego z wykorzystania nazwy SendMessage w definiowanej funkcji pod Windowsem. Rozwiązanie to jest brzydkim hackiem i obejściem problemu, ale działa… i zawiera też kilka wad. Główną wadą jest wymóg dołączenia nagłówka windows.h do projektu, tuż przed nagłówkami biblioteki, w której chcemy zadeklarować funkcję o nazwie SendMessage(), a w skrajnych przypadkach (chyba w każdym) nawet do pliku/projektu tej biblioteki.

Czytaj dalej

Makra WinAPI i problemy z nazwami

W ramach wstępu zapraszam do lektury artykułu Marcina Kasperskiego pt. Horror nazewniczy pod windows. Miałem podobny problem z SendMessage() w xiT++, przez co początkowo została wykorzystana nazwa sendMessage() w bibliotece używanej na systemach Microsoftu. I dziś udało mi się na szybko ten problem rozwiązać obejść przy pomocy preprocesora. Wkurzała mnie taka “odmienność” nazwy jednej metody od stylu nazewnictwa reszty. Ten “magiczny” kod (pochodzący z xiT++): #ifdef WIN32 // Fixed SendMessage function name problem on Win32 #ifdef UNICODE bool SendMessageW(const Message& message); #else bool SendMessageA(const Message& message); #endif #else bool SendMessage(const Message& message); #endif Może komuś się przyda takie szybkie i proste rozwiązanie ;) Choć to jest chamski i brzydki hack!

Czytaj dalej

IEfix

Znalazłem jeszcze kilka skryptów na stronie http://osiolki.net/faq/iefix, które “poprawiają” obsługę standardu CSS w IE: png behaviour - pozwala na wyświetlanie PNG z kanałem alpha fixed.js - umożliwia obsługę position:fixed i background:fixed minmax.js - zmusza IE do respektowania min-width i max-width position.js - umożliwia nadawanie wielkości obiektom przez podanie pozycji ich krawędzi (left i right albo top i bottom) W międzyczasie powstaje jeszcze projekt IE7, który łączy ze sobą te i inne łaty, jak obsługa selectorów CSS2, wielu klas, a w planach jest obsługa generated content, <abbr/> i innych.

Czytaj dalej