technikalia

Technika w czystej postaci, wpisy nie tylko o hackowaniu, programowaniu i elektronice...

Niespójne i mylące konstruktory w std::string

Kiedyś często problemem były niejawne konwersje między typami w C++, które szczególnie uwidaczniały się przy konstruktorach konwersji… Kto by pomyślał, że dziś nadał trywialne błędy można popełnić przez jakieś zaszłości historyczne, usilne zachowanie kompatybilności i brak spójności w definiowaniu konstruktorów, nawet tych w Standardzie ;) Problemy te co jakiś czas są na nowo “odkrywane”, ostatnio powróciły w nieco prześmiewczym kodzie na twitterze: const std::string str = "Modern C++"; std::string s1 { "Modern C++", 3 }; std::string s2 { str, 3 }; std::cout << "S1: " << s1 << "\n"; std::cout << "S2: " << s2 << "\n"; Intuicyjnie mogłoby się wydawać, że obiekty s1 i s2 będą zawierać taką samą zawartość.

Czytaj dalej

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

MalLog już statycznie!

Po dwóch tygodniach opóźnienia, wreszcie udało mi się ogarnąć większość rzeczy na tyle, aby móc wrzucić do sieci jako tako działająca wersję nowej statycznej odsłony mojego sieciowego dziennika. Niestety jest jeszcze wiele niedoróbek i o kilku tutaj napiszę w wolnej chwili ;)

MalLog już 15 lat w sieci!

15 stycznia 2021 roku… 19:59… 20:00… i 15 lat stuknęło już tej stronie! Kiedy wysyłałem w świat swojego pierwszego posta w 2006 roku, nie sądziłem, że moja przygoda z blogowaniem przetrwa tyle lat. Blogowanie to może trochę za duże słowo, jak na moje wypociny. W moim przypadku bardziej przypomina to archiwizację myśli i dokumentację projektów, eksperymentów i ciekawych wydarzeń. Taki chyba też jest cel nadrzędny tego bloga. Piszę głównie dla siebie z przyszłości :) Ale czasem muszę się czymś pochwalić, czy wrzucić jakieś info o projektach i releasach, czy skomentować lub podzielić się przemyśleniami… i strona ta wydaje się idealnym miejsce do tego celu.

Czytaj dalej

Rust okiem programisty C++

Po rozwiązaniu AoC w Ruscie, i jako takiej 25 dniowej codziennej pracy z tym językiem, mogę wreszcie powiedzieć kilka słów na jego temat i podzielić się moimi odczuciami i uwagami, widoczynmi z perspektywyw programisty piszącego głównie w C++. [Z powodu braków czasowych wynikłych z migracją nie udało mi się jeszcze skończyć tego wpisu…]

Podsumowanie Advent of Code 2020

Już po świętach. Właśnie rozwiązałem dwa ostanie zadania i zakończyłem tegoroczną edycję Advent of Code ;) Congratulations! You’ve finished every puzzle in Advent of Code 2020! I hope you had as much fun solving them as I had making them for you. I’d love to hear about your adventure; you can get in touch with me via contact info on my website or through Twitter. [Z powodu braków czasowych wynikłych z migracją nie udało mi się jeszcze skończyć tego wpisu…]

Czytaj dalej

Advent of Code 2020

Rozpoczął się grudzień, wkrótce rozpocznie się adwent, a po nim święta… A tymczasem wystartowała już tegoroczna edycja adwentowych łamigłówek programistycznych - Advent of Code. Postanowiłem znów wziąć udział w konkursie, pomimo, że po ostatniej edycji (mojej pierwszej) AoC 2019 byłem trochę sceptycznie nastawiony na ewentualny udział w kolejnych latach. Tak się jednak złożyło, że w tym roku też mam trochę luzu w grudniu, więc dobrze będzie go skonsumować na jakieś ciekawe algorytmiczne i programistyczne wyzwania.

Czytaj dalej

Ciekawe i użyteczne operatory w JS

Przy ostatniej aktualizacji mojego skryptu “Allegro Seller Info” odkryłem i wykorzystałem przydatny operator na jaki już od jakiegoś czasu natrafiałem w różnych JavaScriptowych kodach. To zmusiło mnie do przejrzenia co tam nowego pojawiło się w ostatnich kilku standardach tego języka… [Z powodu małych problemów czasowych, wpis w ciągłym przygotowaniu…]

Allegro Seller Info 0.1.17

Poranne przeglądanie listy obserwowanych/poszukiwanych elementów na Allegro ukazało standardową bolączkę mojego skryptu - przestał działać na listach aukcji. Co może świadczyć, że znów coś pozmieniano i “ulepszono” w serwisie. Na pierwszy rzut oka udało mi się zlokalizować problem w pobieraniu “propsów” z obiektów React-a. W ostatniej wersji coś tam mieszali, a teraz wygląda na to, że znów to robią. Chyba zmieniła się struktura (niekoniecznie DOM-a), bo jakby potrzebne mi obiekty są “zaszyte” poziom niżej - doszedł return w łańcuchu dostępu do obiektu item.

Czytaj dalej

Allegro Seller Info 0.1.16

Mój skrypt użytkownika na allegro dorobił się kolejnej aktualizacji. Zauważyłem dziś kilka dziwnych rzeczy występujących na listach z aukcjami. Niektóre elementy listy nie posiadają wstawek z informacjami o sprzedającym, a te niewidoczne na pierwszym planie jakby “doładowują” się w miarę ich wyświetlenia. Dotyczy to tylko pierwszej strony bazowej listy - tej widocznej po bezpośrednim załadowaniu strony, bo kolejne podstrony ładowane asynchronicznie działają już poprawnie. Cześć z tych problemów wynika z faktu, że niektóre elementy <article/> na listach aukcji nie posiadają react-owych obiektów, z których to korzysta skrypt.

Czytaj dalej