2021

wszystkie notatki z 2021 roku

Kiermusy: ostoja tradycji szlacheckiej

Na długi weekend, czyli “czerwcówkę” było kilka potencjalnych planów, ale ostatecznie skończyło się na spokojnym leniuchowaniu w domku letniskowym na podlaskiej wsi. Wypad do Białowieży się nie udał, to jednak w sobotę udało się wybrać na małą wycieczkę i tym razem podążając szlakiem atrakcji Podlasia zawitaliśmy do Kiermus. O szczegółach napiszę w wolnej chwili, a ciekawsze foto-ujęcia z wycieczki można już znaleźć w tym albumie.

Nie tylko Gorce, w okolicach Rabki-Zdrój

Przy kolejnym pobycie na rodzinnym Śląsku nie obyło się znów bez wykorzystania bliskości gór i także tym razem z Anią wybraliśmy się na kilka dni /24-28 maja/ w okolice Rabki-Zdrój, kontynuując nasze wyprawy po Beskidach i nie tylko ;) Kiedyś może uzupełnię wpis, a tymczasem tradycyjnie już, na zdjęcia zapraszam do albumu Ani ;)

Warsztatowy akumulatorek 9-12V Li-Ion z S8254A

Moje dawno odzyskane ogniwa Li-Ion (i nie tylko te) głównie leżakują w pudle. Postanowiłem cześć wykorzystać do budowy prostej baterii warsztatowej, która może mi się przydać przy zasilaniu różnych eksperymentalnych układów. Prostota jest najważniejsza, ale wykorzystanie gołych ogniw może być niebezpieczne w warunkach warsztatowych, gdzie o jakieś zwarcie i inne błędy nie trudno, dlatego potrzebny jest jakiś kontroler i zabezpieczenie… To tylko zajawka z moich ostatnich eksperymentów i zabaw, mam nadzieję, że wkrótce pojawi się tutaj cały materiał ;)

Lambda pod maską języka C++

Wprowadzone w C++11 wyrażenia i funkcje lambda umożliwiające “inlinowe” definiowanie lokalnych funkcji anonimowych były chyba jednym z najbardziej wyczekiwanych, a później docenionych, nowości dodanych w 2011 roku do języka C++. Dzisiaj raczej ciężko byłoby się bez nich obejść w codziennej pracy. Ale czy ktoś zastanawiała się jak one działają i jak zostały zaimplementowane pod maską języka i kompilatora? Sam zaciekawiony tymi elementami postanowiłem zastanowić się nad możliwymi sposobami implementacji tych konstrukcji językowych oraz zajrzeć do środka sprawdzając jak to zostało zrobione.

Czytaj dalej

Allegro Seller Info 0.1.19

Jak to zawsze bywa z UserScripatmi, niespodziewanie i nagle przestają działać. Allegro znów musiało coś pod maską pozmieniać, bo brakuje wyświetlania lokalizacji użytkownika na stronach aukcji. Po szybkim sprawdzeniu okazuje się, że nic się tym razem nie wywala, tylko ten node, który zawsze zawierał bebechy Reacta już ich nie ma i getReactInst zwraca undefined. Po testach wyszło na jaw, że po pierwszym odpaleniu zakładki (boxa) z informacjami o “Dostawie i płatności” te wewnętrzne elementy pojawiają się w obiekcie DOM-owym.

Czytaj dalej

Ciekawe zastosowania klas lokalnych w C++

Po odkopaniu mojego starego hacka na pseudo-lambdy sprzed ery C++11 z wykorzystaniem klas lokalnych, postanowiłem trochę głębiej pogrzebać wokół tego niezbyt popularnego i chyba mniej znanego elementu języka C++. Może ktoś wykorzystuje takie klasy i uda mi się znaleźć jakieś ciekawe zastosowania i użycia tej konstrukcji.

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

UserScript: wyścig szczurów przy wstrzykiwaniu styli

Przed świętami zrobiłem kilka poprawek w moich skryptach użytkownika, a teraz po świętach znów czekają mnie hurtowe poprawki, bo po wyczyszczeniu cache-u przeglądarki niektóre skrypty przestały poprawnie działać. W logach konsoli często pojawiał się komunikat o problemach z dodawaniem jakiś elementów do dokumentu, na przykład jak ten poniżej, z jednego z moich innych skryptów próbujący wstrzyknąć jakieś CSS-y do nagłówka dokumentu: Uncaught (in promise) TypeError: Cannot read property 'appendChild' of null at eval (userscript.

Czytaj dalej

Blokowanie Google Consent (GDPR/Cookie)

Do pełni szczęścia w poprawkach moich UserSripts brakuje jeszcze zabawy z YouTube Block Popups (SignIn/GDPR). Skrypt ten nie był dawno aktualizowany, ale na szczęście dobrze sobie radził do tej pory z blokowaniem wyskakujących okienek zachęcających do zalogowania i/lub cookie-zgody i wymuszonym przerywaniem odtwarzania video. W sumie jego logikę można byłoby obecnie zawrzeć w kilku linijkach filtrów do AdBlocka (znalezione na r/uBlockOrigin): ! YT consent youtube.com##+js(set, ytInitialData.topbar.desktopTopbarRenderer.interstitial.consentBumpRenderer.forceConsent, false) youtube.com##+js(json-prune, [].response.topbar.desktopTopbarRenderer.interstitial.consentBumpRenderer) youtube.com##+js(json-prune, topbar.

Czytaj dalej

YouTube Polymer UI Fix 0.1.1

Jak już dziś zacząłem się babrać w JS-ie, to może skrypt do poprawek UI na głównej YouTuba też poprawię ;) Poprawki mało znaczące, takie kosmetyczne, bo jedynie dostosowujące mój wstrzykiwany kod CSS do zmian na stronie. Dotyczących tylko “szkieletu” wyświetlanego przed załadowaniem się decylowej aplikacji, bo od jakiegoś już czasu widoczne było, ze te szare prostokąciki wyświetlane są w oryginalnej wysokości. Ciężko mi powiedzieć co tam się pozmieniało w kodzie strony, ale wystarczyła zmiana nazwy selektora klasy, plus dodatkowe styl dla rodzica, aby wszystko wróciło do normy - utrzymania spójności strony głównej z innym i podstronami listującymi video, do czego w ogóle powstał YouTube Polymer UI Fix.

Czytaj dalej