#programowanie

254
2369

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:


  1. Zmieniłem obrazki na webp, dodałem srcset, co poprawiło wynik delikatnie

  2. Stworzyłem canvasa (ostatecznie go nie używam na tej stronie)

  3. Do canvasa stworzyłem sprite 180 herbów na obrazek -> zamiast 2000 obrazków, pobiera ~11

  4. 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.

e9181fbd-d0e0-4741-b735-eda425da0eb9
24dc7a57-1f36-45ae-8b5f-7b7bc126a79d

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 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.

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


https://www.youtube.com/watch?v=KAXNM6-K38c

Zaloguj się aby komentować

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

@Marchew - aha, czyli on jest odpowiedzialny za to jak ukraść z Unixa i zrobić tak żeby na pierwszy rzut oka (dla laika i sądów) wygadało na niekradzione

Zaloguj się aby komentować

Zaloguj się aby komentować

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

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.


Tekst projektu: https://www.gov.pl/web/premier/projekt-ustawy-o-zmianie-ustawy-o-podatku-dochodowym-od-osob-fizycznych-ustawy-o-podatku-dochodowym-od-osob-prawnych-oraz-niektorych-innych-ustaw6


#programowanie #programista15k #software #technologia #javascript #java c#

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ć

@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

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ć

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 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:

https://videocardz.com/newz/intel-to-launch-bartlett-s-die-with-12-p-cores-for-lga1700-platform-in-january-2025


#komputery #informatyka #programowanie #pcmasterrace #intel #procesory

d6c94980-8478-480a-a16d-594cf77784fa

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)


https://streamable.com/s0stha


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ś.

72f56121-3c19-43ee-a462-a4a9b1222d31

Zaloguj się aby komentować

Zaloguj się aby komentować

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.

@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.

  1. 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ć

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

251b14aa-5e9b-433c-8ec2-8f11d66b0028

@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.

Zaloguj się aby komentować