#programowanie
W sumie ciekawe case study z #webdev #programowanie
Zwykle się nie zdarza w 2024. Ale musiałem zaimplementować obrazki na spritach jak 20 lat temu.
Problem
Mapka z polskimi herbami https://deykun.github.io/maps/heraldyka
Herbów było 2k, każdy na absolucie każdy był w osobnym src, jak się wchodziło (o dziwo na chromie o wiele gorzej niż na firefoxie) to była zawiecha na ileś sekund (potem jak się ogarnęło to już raczej działało), raport z lighthouse 3/4 się psuł przy odpaleniu i renderował się dobre 3 minuty+ (zawierał uwagi o przesunięciach w tych setkach elementów).
Dostałem nawet 2 razy bana na IP na githubie, bo 3 otwarte karty potrafiły pobrać 8k obrazków. Wspomniane tutaj.
Raport z lighthouse jest we wpisie.
18.8 sekund blokowania wątku!
Ale w sumie ciekawy kejs, bo chcemy mieć elementy w x i y i chcemy mieć to 2k obrazków.
Oczywiste nieoczywiste rozwiązania to:
-
przenieść mapkę do canvasa pozbędziemy się wtedy 2k nodów html
-
stworzyć sprite obrazków i kadrować
Co zrobiłem:
-
Zmieniłem obrazki na webp, dodałem srcset, co poprawiło wynik delikatnie
-
Stworzyłem canvasa (ostatecznie go nie używam na tej stronie)
-
Do canvasa stworzyłem sprite 180 herbów na obrazek ->
zamiast 2000 obrazków, pobiera ~11
-
Wykorzystałem spritery na tej stronie bez canvasa (jako background-image)
Rezultat:
Strona się ładuje normalnie, skok z 52/100 punktów wydajności przy 2.1k herbów do 81/100 z 2.6k herbów.
Issue na githubie: https://github.com/Deykun/maps/issues/16
W sumie spoko przypadek, pierwszy raz używałem spritów i canvasa dla zwykłej i koniecznej optymalizacji.


Po poprawkach:


@Deykun a myślałeś o użyciu "spritesheeta" i przycięciu do odpowiedniego herbu w HTMLu?
Rozwiązanie z canvasem wykorzystuję dla mapki Europy gdzie wszystkie kraję będę renderować (obecnie z 3 mam 4.2k herbów).
https://deykun.github.io/maps/heraldry
Ale ta strona ma jeszcze swoje własne bolączki jeszcze (niezwiązane z ładowaniem).
Zaloguj się aby komentować
Od kiedy znowu biorę pracę na poważnie, w tygodniu oraz jeszcze w sobotę jestem zbyt zmęczony psychicznie żeby robić zakupy. Po prostu nie chce mi się podejmować decyzji. Mam dość, chcę po pracy umysłowej relaksować umysł. Potrzebuję dnia odpoczynku.
W niedzielę natomiast chciałbym wyjść z domu i "ogarnąć sprawunki" takie jak kupienie nowych gaci, zamówienie w banku karty, zjedzenie obiadu żeby nie musieć się przejmować czy są rzeczy w lodówce.
Z tego wszystkiego mogę zjeść obiad. Szkoda że nie mogę kupić produktów na kolację to i tak muszę wyjść dwa razy albo przemóc się do planowania w sobotę xD
#gownowpis #zalesie #adhd #pracbaza #programowanie nawet nie wiem czy mój ból d⁎⁎y podpada jeszcze pod #polityka
@wombatDaiquiri A może zacznij pracę w niedzielę, w piątek odpoczywaj i wtedy masz całą sobotę na zakupy.
@wombatDaiquiri nie przecze że jest męczące ciągle układanie grafiku pod sobotę. Czasami jednak wolałbym w niedzielę zwłaszcza że kościół i tak ma to w d⁎⁎ie bo zabki i tak są otwarte.
@wombatDaiquiri może po prostu w niedzielę przygotowuj listę zakupów na kolejny tydzień, z dostawą do domu w piątek lub sobotę?
Zaloguj się aby komentować
LIVE niedziela 18.08.2024, 20:00
#2 - Robot jeżdżący - PlatformIO, komunikacja UDP i podstawowe komendy
Przyszło trochę gratów więc kontynuujemy amatorską, nieprofesjonalną serię w której tworzymy zdalnie sterowanego ale i autonomicznego robota jeżdżącego. Jutro na LIVE w planach:
1. Pokażę Wam parę gratów, które zakupiłem: lepszy kontroler silnika, bajery do lutowania układu, moduł WIFI, czujnik odległości, silniczki z kółkami, zawieszenie z Leroy Merlin w postaci płyty MDF
2. Przedstawię super alternatywę (którą właśnie odkryłem) dla Arduino IDE czy Atmel (Microchip) Studio - PlatformIO
3. Spróbujemy napisać obsługę podstawowych manewrów na przyszłego robota i komunikować rozkazy z serwera
Polecam oczywiście obejrzeć poprzednią część, w której rozkminiałem podstawową komunikację UDP i kontrolę silniczka DC a której jutrzejszy LIVE jest kontynuacją.
Zachęcam do supukcji kanału i śledzenia tagu #programujzpasterzem
#programowanie #arduino #programista15k #naukaprogramowania #hobby
Zaloguj się aby komentować
Ha, dostałem bana na IP na githubie.
#github #programowanie

Zaloguj się aby komentować
Ciekawostki o tworzeniu windowsów, niecałe 9 minut, jednak dość treściwie.
Opowiada jeden z bardziej cenionych pracowników microsoft Dave Cutler.
Cutler otrzymał prestiżowy status Senior Technical Fellow w Microsoft.
Jak powstał współczesny Windows - opowiada Dave Cutler, twórca Windowsa [PL]
https://www.youtube.com/watch?v=JNV6EQONEqs
#informatyka #komputery #windows #ciekawostki #programowanie
Zaloguj się aby komentować
Zaloguj się aby komentować

Adapter na poziomie systemu - studium przypadku - devszczepaniak.pl
Adapter jest jednym ze wzorców, który można stosować nie tylko na poziomie kodu, ale też systemu.
W podlinkowanym artykule przestawiam studium przypadku, gdzie takie wykorzystanie Adaptera ma sens. W artykule zestawiłem moją propozycję rozwiązania ze wzorcem Anti-corruption Layer opisanym w...
Czy ktoś jest w stanie wyjaśnić dlaczego hejto nie ładuje mi się gdy używam danych komórkowych (zarówno w przeglądarce jak i aplikacji), natomiast w domu przez WiFi hula aż miło bez żadnych problemów? Sytuacja ma miejsce od niedawna, wcześniej było wszystko normalnie.
#hejto #pytanie #programowanie
#heheszki
U mnie to samo. Problemy od wczoraj. Wifi śmiga. Dane komórkowe problem.
@strzepan trzeba było kupić dostęp Hejto Premium zamiast żydzić ( ͡° ͜ʖ ͡°)
@strzepan
Sprawdz ładowanie https://www.onet.pl
Strona działa praktycznie zawsze.
Możliwości jest dużo. Na chwilę obecną podejrzewam albo wyczerpanie limitu danych na mobile, wyłączone Mobile Data lub źle skonfigurowane Mobile Data.
Zaloguj się aby komentować
Koniec IP Box dla programistów, kancelaria premiera opublikowała projekt zmiany ustawy o podatku dochodowym gdzie znalazł się podpunkt 2.b):
zmiany w preferencji IP Box – wprowadzenie wymogu zatrudnienia,
Prawdopodobnie ma to na celu wyłączenie samozatrudnionych programistów z możliwości rozliczania się preferencyjną stawką podatkową 5%, która to została wprowadzona w 2019 roku.
#programowanie #programista15k #software #technologia #javascript #java c#
Koniec IP Box dla programistów,
@kaszalot nie, koniec IP Box na B2B
Teraz każdy na IP BOX się wzajemnie pozatrudnia na 1/16 etatu i warunek spełniony XD
Powrót na UoP to była jedna z lepszych decyzji przy zmianie pracy. Żadnego pierdolenia się ze zmianami w podatkach, uszczelnianiem, rozliczaniem, jakimiś kontami bankowymi, żadnych umów gentlemańskich o "liczbę dni płatnych kiedy zleceniobiorca powstrzymuje się od wykonywania pracy". A idź pan w pizdu.
Zaloguj się aby komentować
#pracbaza #programowanie
ktoś miał do czynienia z work hunterami na linkedinie?
Warto w to wchodzić, czy omijać szerokim łukiem?

@redve nie wiem co to jest work hunter ale hrhunterzy na LinkedIn to dobra opcja. Dostałem w ten sposób kilka wartościowych propozycji pracy
@Yes_Man nie wiem, work hunter, head hunter, hr hunter - you name it. Chodzi o gościa który szuka pracy za ciebie, i przytula od tego procent
@redve polecam, LinkedIn jest do tego dobrym miejscem
to zalezy od kraju. W Polsce raczej wali sie do firm bezposrednio, ale wiem, ze w Szwajcarii i Japonii rekruterzy znacznie ulatwiaja dostanie sie na pierwsza rozmowe. Tam to popularna droga znalezienia pracy. Popros o przeslanie ofert, jesli jakies beda ciekawe to dowiedz sie jakie warunki zatrudnienia oferuja.
W Japonii najczesniej podpisuje sie wtedy odnawialna umowe z firma headhuntera na 3 miesiace i pracuje sie jako kontraktor. A "jesli sie sprawdzisz, to po ok 6 miesiacach dostaniesz stala umowe od tej firmy". Troche sie z nimi bawilem, ale ostatecznie ogarnalem prace z innego zrodla, takze nie mam kompletu wiedzy o tym jak to dziala.
Musze jednak przyznac, ze moje aplikacje wyslane przez headhunterow mialy duzo lepszy odzew. Wysylajac samodzielnie CV mialem ponad 90% ghostingu lub odrzucenia. Od headhunterow ok polowa aplikacji doszla do min pierwszego etapu. Jednak to zalezy od rynku na ktory aplikujesz. W moim przypadku IT
Co do samych headhunterow to jest to hit or miss. Sa hindusi, ktorzy chyba tylko zbieraja dane dla jakis firm, wyglada to na scam i oddawanie swoich danych za darmo.
Lepsze wyniki mialem z lokalnymi rekruterami, albo tymi ulokowanymi w USA i UK. Byl jeden, ktory przed kazdym etapem robil ze mna call, gdzie omawial profil osobowy kazdej z osob, z ktorymi bede rozmawiac i dawal sporo wskazowek co do tego jak odpowiadac na pytania, mowic o swoim doswiadczeniu, itp. Solidny chuop. Szkoda, ze mi ta praca nie siadla
@redve większość roboty zmieniłem przez LinkedIn i rekruterów, którzy się tam odezwali. Ale ostrzeżenie: nie hindusi. Polscy, amerykanie, Brytyjczycy itp. Hindusi pracują jak zawsze, szkoda czasu, a i nie wiesz, gdzie twoje CV sprzedadzą.
Zaloguj się aby komentować
Kurła, synek ja ci mówię - kiedyś to były programiści. Teraz już nie ma programistuw ( ͡°( ͡°͜ʖ( ͡°͜ʖ͡°)ʖ͡°) ͡°)
https://www.youtube.com/watch?v=B5ztNcgc9Ec
#programowanie #programista15k #programista25k #pracait
Zaloguj się aby komentować
Chcę odinstalować program. Na YouTube jest pokazane żeby wejść w Ustawienia -> Aplikacje -> Odinstaluj. Tylko że to kłamstwo. Bo jak to zrobisz to i tak zostanie sterta pozostałości po aplikacji. A gdzie foldery "AppData" i temu podobne? Gdzie usuwanie pozostałości z rejestru? Gdyby nie znajomość IT to może i bym się na to nabrał. A jak coś zrobić to porządnie a nie po łebkach.
No i M$ mógłby wziąć w końcu za mordę devów żeby ujednolicić ścieżki tak jak to ma miejsce w macOS gdzie doskonale wiadomo gdzie aplikacje zapisują pliki, zawsze w tych samych miejscach...
#programowanie #pcmasterrace #informatyka #komputery
Są do tego odpowiednie rozwiazania. A szukanie jak odinstalowac program na YT nie laczy sie z kolejnym stwierdzebiem ze "znasz sie na IT". Uzyj starego programy i funkcje, albo wejdz do folderu z programem czy nie ma tam uninstalera. A jak juz tak dbasz o miejsce na kompie ( w dobie gdzie posiadanie 2-3TB na m2. To podstawa) to uzyj rozwiazania ktore @Fen podesłał.
@gawafe1241 @Fen @Karakalla od razu widać, że nie pisaliście nigdy instalatora ( ͡° ͜ʖ ͡°)
@MostlyRenegade potwierdzam, nigdy mi to do życia w szczęściu nie było potrzebne ¯\_( ͡° ͜ʖ ͡°)_/¯
@MostlyRenegade- no poopowiadaj jakieś ciekawe historie o instalatorach.
@gawafe1241 nie no uninstaller przecież usuwa też wpisy w rejestrze. Jak foldery gdzieś zostaną to pół biedy, często tak jest no ale powinny być puste, ewentualnie może jakiś plik konfiguracyjny zostanie, ale to tyle - raczej rzadko się zdarza żeby instalator zostawił jakoś dużo syfu, dzisiaj jak dla mnie pomijalna kwestia.
Zaloguj się aby komentować
Intel CPU 15gen nadciąga!
Wciąż socket LGA 1700, nie wiadomo jednak czy będzie wsparcie dla DDR4.
Wygląda na to że 15'sta generacja będzie "zdublowana".
Pierwsza kolumna: wygląda to na odświeżenie starszych procesorów.
Core i3 oraz "core" to tak naprawdę alder lake (gen 12), natomiast i5, i7 i i9 to raptor lake (gen 13 i 14).
Tak więc mamy do czynienia z odgrzewanym kotletem odgrzanego kotleta.
Druga kolumna, nowa generacja Bartlett Lake-S, wyłącznie P core, co wielu ucieszy.
źródło:
#komputery #informatyka #programowanie #pcmasterrace #intel #procesory

Zaloguj się aby komentować
Mija mi tydzień urlopu od programowania w pracy, a ja tymczasem tworzę programy na własny użytek - normalnie świetna metoda na odpoczynek(do pracy pewnie przyjdę bardziej zmęczony niż przed urlopem)
Pierwszym z nich jest imager(kiedyś o nim pisałem) - https://addons.mozilla.org/en-US/firefox/addon/imager/
Dodałem tam opcję wyciągania wszystkich linków ze strony(działa to w ~90% przypadków) tj. obrazy, filmy czy inne odnośniki.
Potrzebowałem to głównie do cda, by wyszukać w źródłach plik z rozszerzeniem mp4, wgrać potem go na pendrive i podpiąć do telewizora
Dotychczas robiłem to ręcznie co było niepotrzebnie skomplikowane i coś co robiłem zazwyczaj w 10 sekund, zautomatyzowałem tak, że teraz trwa to tylko 2 sekundy a zmarnowałem gdzieś ze 2 godziny na pisanie tego
Drugi program to minimizer - https://crates.io/crates/minimizer
Przy zgłaszaniu błędów w różnych programach tj. ruff czy oxc, moje pliki zazwyczaj są dość duże, przez co autorzy mają problem znaleźć konkretną przyczynę/wyodrębnić problem.
Zrobiłem więc minimizer by w automatyczny sposób zmniejszać rozmiar plików, tak by ciągle program reagował na te pliki(np. by ciągle się wysypywał).
Ostatnio w bibliotece lofty znalazłem plik który przy wczytaniu wysypywał cały program i przy ~3 tysiącach prób, trwających około minut, plik został zmniejszony z ~100KB do 10 bajtów zachowując swoją początkową właściwość - czyli ciągle powodował wyspywanie się programu
Jak wspominałem to narzędzia na użytek wewnętrzny, więc jak chcecie używać to używajcie, ale nie bijcie jak coś nie będzie działało
#programowanie
@qarmin Kiedyś gdy pobierałem dużo filmów z cda i innych stron to zrobiłem coś podobnego tylko zamiast rozszerzenia do przeglądarki to napisałem skrypt do Tampermonkey który dodaje przycisk pobierz pod playerem więc w sumie jeszcze prościej i szybciej.
Btw yt-dlp potrafi pobierać też filmy z cda jak coś.

Zaloguj się aby komentować
czy ktoś się orientuje ile kosztuje OCR w cloudzie w stosunku do pisanych customowo rozwiązań opartych na popularnych bibliotekach?
ktoś może robił coś podobnego?
#programowanie
Zaloguj się aby komentować
Z punktu widzenia sztucznej inteligencji, programiści są nekromantami którzy zmuszają jej organy do pracy dla nich.
#przemyslenia #programowanie
Zaloguj się aby komentować
Crowdstrike opublikował raport na temat ostatniego whoopsie. Niestety dokument zaczyna się od "The CrowdStrike Falcon sensor delivers powerful on-sensor AI and machine learning models", więc średnio miałem ochotę to czytać. No ale się zmusiłem. Duża część tego dokumentu do bełkot.
Long story short, Crowdstrike miał swojego regexa (tak, regexa), którym coś tam sobie definiował. Na końcu regexa był wildcard, więc ostatni, dwudziesty pierwszy parametr się zawsze matchował. Problem w tym, że Crowdstrike usunął tego wildcarda i ostatni parametr przestał się matchować. No tylko, że kod nadal go oczekiwał. Programiści aż tacy głupi nie byli i dodali checka na NULL pointera. Ale ten feralny argument nie był ustawiony na NULLa, tylko na losową wartość. Więc kaboom.
Używanie regexów w kernelu moim zdaniem jest wątpliwe moralnie. Ale to nie to było bezpośrednią przyczyną problemu. Po prostu ktoś na ślepo założył, że wszystkie parametry zawsze będą się matchować. Dodatkowo, moim zdaniem pośrednio z raportu wynika, że Crowdstrike nie testował swojego softu z prawdziwymi produkcyjnymi plikami konfiguracyjnymi.
#programowanie #programista15k #pracait
@groman43 Mega słabe moim zdaniem, że nie tego nie wyłapali. Jedna rzecz mnie zastanawia, w jakim przypadku ten channel file 291 przechodził bez crasha?
Jak rozumiem, chyba nie wszystkie PCty z crowdstrikiem się wywaliły, bo jak wszystkie to oznaczało by, że oni przez przypadek nie przetestowali tego release'a w żaden sposób.
@Syster No właśnie wydaje mi się, że testowali z inną wersją tego channel file 291. Ale to tylko moje spekulacje.
@groman43 To i tak im gratuluje, testować nie to co leci na deploy
@groman43 - głupki nie mieli środowiska odpowiadającemu produkcji bo do tego musieliby mieć całe laboratorium fizycznych maszyn i wirtualek - ale jak widać najpewniej cięli koszty - i teraz się okazało, że cięli tam gdzie nie trzeba (chociaż założę się, że wewnętrznie ktoś ich ostrzegał - tylko zignorowali)
Poza tym chyba nie słyszeli o Canary Release i wypuszczali update od razu dla wszystkich (więc jak się zjebało to u dużej ilości klientów na raz).
Nie chce mi się nawet dochodzić, jak bardzo zjebane mieli procedury (chociaż te może mieli ok na papierze - tylko ich nie przestrzegali) ale takie ich wyjaśnienie tylko świadczy, że nie poczuwają się do odpowiedzialności, więc kij im w oko i niech tracą kontrakty.
@groman43
Zacznijmy od tego, że problem ma charakter wielopoziomowy i dotyczy Microsoftu, Crowdstrike i klientów.
Microsoft, bo dopuszcza third party software w kernelu. Mieli tego nie robić, ale woleli dopuścić to zamiast poprawić swoją architekturę na wzór Apple.
Crowdstrike, bo ewidentnie dali ciała z testami. Bugi się zdarzają i będą zdarzać. I dlatego właśnie testować należy na wystarczająco szerokim zakresie danych.
Klienci, bo używają takiego produktu, bo robia pełny deployment zamiast staggered release. Tak, wiem, Crowdstrike nie wspiera staggered release. Ale to wraca do kroku pierwszego - czemu kupiono produkt, który nie wspiera standardów wdrożeniowych?
@Dzemik_Skrytozerca 1) UE, z powodów nie do końca mi znanych, wymusiła na Microsoft pełny dostęp do kernela dla 3rdparties, zamiast normalnego API.
- Klienci niekoniecznie muszą wiedzieć co to w ogóle jest staggered release. Sprawdzanie czy wszyscy dookoła robią wszystko z ogólnie przyjętymi normami jest po prostu niemożliwe.
@groman43
UE wymaga, by Microsoft nie wprowadzał nieuczciwych praktyk względem konkurencji. Jeśli dobrze pamiętam, chodziło o to, że Defender mógł działać w kernelu, a konkurencja nie. Microsoft zamiast stworzyć równoprawne rozwiązanie dla wszystkich, po prostu wpuścił drivery anytivirow do kernela. Co mogło pójść nie tak, że zapytam retorycznie.
Tu masz pełne omówienie tematu:
Https://www.google.com/amp/s/www.theregister.com/AMP/2024/07/22/windows\_crowdstrike\_kernel\_eu
Jak coś, Apple stworzył coś takiego. A Linux w standardowych dystrybucjach kernela po prostu nie wspiera takiego uprzywilejowania.
Jeśli Twoje IT wpuszcza niesprawdzony soft na serwery, które są mission critical, i jeśli robi to bez możliwości łatwego wycofania, to jest to też po części ich wina. Brałem udział w wielu awariach na pierwszych liniach, i zawsze fakt posiadania planu wycofania był kluczowy.
Zaloguj się aby komentować
Potrzebuję nauczyć sie szybko google analytics 4. Czy ten poradnik będzie dobry?
https://www.youtube.com/watch?v=oJx9DpXtmAE&list=PLI5YfMzCfRtZ4bHJJDl_IJejxMwZFiBwz
Podejrzanie krótki (całość ma mniej niż 2.5h materiału)
#programowanie
Zaloguj się aby komentować
W nawiązaniu do posta @Unknow, źli ludzie chcieli mi się wbić na VPSa. Na razie wywalenie ssh na inny port niż 22 załatwiło sprawę, ale chyba naprawdę muszę zbanować konkretne kraje na iptables
#programowanie #programista15k #pracait #hosting a nawet #hacking

@groman43 fail2ban protip.
@groman43 Może wypróbuj SSH port knocking
@UncleFester Aż tak mi się nie chcę. Wymuszenie logowania kluczami jak napisał @lurker_z_internetu wystarczyło, żeby odebrzeć ten "atak". Reszta jest po to, żeby wyciąć jak najszybciej i jak najskuteczniej ruch przychodzący. Serwerownia ma własne, pewnie o wiele skuteczniejsze, zabezpieczenia przeciwko DDoS. Docelowo na tym VPS ma stać www. Może schowam wszystko za Cloudflare i to rozwiąże większość problemów.
@groman43 widzę tą czcionkę w weekend to mi się rzygac chce
Zaloguj się aby komentować




