#programowanie

254
2369

Jak AI generuje mi kod w obszarze, którego nie znam (np. w innym języku programowania), to jest super. Ale nie wiedzieć czemu, kiedy generuje mi kod w obszarze, który znam, to jest gówniany. Co za przypadek.

Czuć trochę wyparcie w komentarzach. 20 lat temu tak samo podważano teorię o tym, że telefony zastąpią aparaty w robieniu zdjęć. Kaliber może i mniejszy, ale mobilna fotografia dojrzewała kilkanaście lat, a AI robi rzeczy, które kilka lat temu możnaby uznać za science fiction.

Pompowanie banki AI na amerykańskich rynkach finansowych. Tylko po to są te komentarze CEO.


Wszyscy wiedzą, że bańka jest przegrzana. Obiecywano złote góry, optymalizację pracy i wzrosty akcji - a mamy fejki, halucynacje i rozbieranie ludzi grokiem.


Bąbel na giełdzie pęknie, nie wiadomo tylko kiedy - oby nie przyniosło to fali kryzysu jak po upadku Lehman Brothers

Zaloguj się aby komentować

algorytmiczna botanika idzie do przodu. Na screenie "drzewka" wygenerowane za pomocą "stochastycznych L-systemów". Strona 28 z książki którą linkowałem ostatnio.

#programowanie #ciekawostki #nauka #biologia #rosliny #hobby #tworczoscwlasna

d03346e8-305a-4fee-a2b7-8f505ad0a508

@wombatDaiquiri Pamiętam jak uczyłem się programować to mega mnie bawiły podobne rzeczy i też implementowałem różne algorytmy ręcznie w Pythonie i potem je wizualizowałem. Testowałem czasy przebiegów, optymalizowałem itp. Kiedyś mnie to bawiło. Teraz po tych wszystkich godzinach spędzonych na CRUDach i debugowaniu JSa to mi się już nie chce xD.


Ale żeby nie było to nie jestem jak koledzy wyżej bo w '86 to mnie nawet w planach nie było bo rodzice się jeszcze nie znali xD.

Zaloguj się aby komentować

Dzisiaj wydałem nową wersję moich aplikacji do wyszukiwania duplikatów(i nie tylko) Krokiet/Czkawka 11.0.

Wpierw wrzuciłem to na Reddita, ale mnie poblokowali, bo w treści miałem odwołanie do strony "dev dot com", więc niech idą na drzewo a post wrzucę tutaj.

Mógłbym opisywać tak jak w innych miejscach, że ta wersja dodaje w Krokiecie łatwiejsze sortowanie, pozwala na skanowanie pojedynczych plików, usuwanie danych exif z obrazów, wyszukiwanie niepożądanych nazw plików, ręczne usuwanie przestarzałych danych cache itd. - ale na końcu i tak ktoś napisze tutaj "A po co mi to?"

Tak więc hejterska społeczność w swym hejcie na pewno doceni 2 nowe funkcjonalności w tej wersji:

- Dodanie ikony do windowsowego pliku exe - zaskakująco wiele osób chciało tą funkcjonalność, ale jak to zwykle bywa nikt do tej pory tego nie zrobił, więc jak większość rzeczy, musiałem zrobić to sam, dzięki temu exe jest teraz łatwo rozpoznawalne(zawiera nowe logo, będące jednorożcem z tarczą, proporcem a na nim narysowanym Krokietem)

- Drugą funkcjonalnością jest ucinanie czarnych pasów z wideo, lub jego statycznych części

Przy przeglądaniu rożnych plików wideo, zauważyłem, że wiele z nich ma dodane jakieś dziwne pasy, przez co czasem je sie trudniej ogląda i na pełnym ekranie, nie wypełniają go całego.

Zatem dla tych plików, mogłem albo ręcznie w ffmpeg przycinać każdy plik obliczając prostokąt z zawartością, korzystać z szemranych stronek przycinających wideo i przy okazji dodające swoje własne logo albo napisać od zera tą funkcjonalność, która działałaby jako tako i ostatecznie wybrałem ostatnią opcję.


Algorytm jest w miarę prosty, z każdej strony testowana jest linia po linii i jeśli 90%(można te wartości zmieniać) pikseli z danej linii z danej ramki, ma różnice w RGB mniejsze niż 20(suma różnic każdej ze składowych), to linia jest oznaczana do usunięcia.

Jeśli w którymkolwiek z kolejnych przebiegów, linia będzie zawierała zbyt dużo różnic względem odpowiadającej jej linii z pierwszej ramki, to jest ona wyrzucana z puli do usunięcia i nigdy później nie jest już testowana.


Na obrazku niżej widać, jak narzędzie poprawnie wykryło ten "ciekawy" obszar wideo i zaznaczyło go na podglądzie(złożonym z 9 klatek z wewnątrz aplikacji), dzięki czemu kliknięcie w optimize, stworzy nowy plik(albo nadpisze stary), bez napisu

Więcej na temat błędów i nowych narzędzi w tej wersji można przeczytać tutaj - https://medium.com/@qarmin/czkawka-krokiet-11-0-c95ee35eccc2


Repozytorium — https://github.com/qarmin/czkawka

Pliki do pobrania wraz z listą zmian — https://github.com/qarmin/czkawka/releases

Licencja — MIT/GPL w zależności od programu (czyli w skrócie za darmo)

#programowanie
#tworczoscwlasna
#rustlang

388bcd6b-0d0b-4f99-9387-2e917ff6eaba

@qarmin Co do przycinania czarnych pasów w video, to w sumie ffmpeg ma wbudowaną funkcjonalność automatycznego wykrycia obszaru do przycięcia. Wiem bo kiedyś dodawałem podobną funkcjonalność do swojego GUI do ffmpeg.
Tutaj link do dokumentacji ffmpeg gdzie ją opisują: https://ffmpeg.org/ffmpeg-filters.html#cropdetect

I jeszcze pytanie jeśli może wiesz, czy paczki w AUR "krokiet-bin" i "krokiet" różnią się czymś poza tym że jedna jest już zbudowana a druga nie? Chodzi mi o te dodatkowe backendy o których pisałeś oraz wsparcie dla dodatkowych formatów.

Zaloguj się aby komentować

Ostatnio mnie zainteresował temat symulacji rozwoju roślin i znalazłem bardzo fajna książkę na ten temat więc się z Wami podzielę: https://algorithmicbotany.org/papers/abop/abop.pdf


Jak będę miał efekty implementacji to oczywiście również wrzucę, póki co opanowałem dodawanie pionowych segmentów gałęzi, czyli bardziej walka z silnikiem niż algorytmami.


Teraz pora na symulowanie żółwia i wrzucenie kilku sekwencji z książki do odtworzenia, żeby coś ciekawego się na ekranie pojawiło. Kto w logo programował ten wie ocb #pdk


#programowanie #ciekawostki #nauka #biologia #rosliny #hobby

Zaloguj się aby komentować

@ZohanTSW zarzucał mi w weekend, że nienawidzę Linux Mint. Nie tyle nienawidzę tego systemu, tylko całej rodziny ubuntu, a mint to ubuntu ze zmienioną tapetą.

Pracowałem i prywatnie robiłem soft komercyjny działający na tym systemie. Od 2022 roku jest już całkowite przegięcie pały i rozkręcenie karuzeli spierdolenia. Pokaże Wam parę przykładów które jako zwykły użytkownik też napotykacie, bo jest w każdym systemie bazującym na ubuntu. Które są po prostu głupie i bez sensu.


  1. Pakiet linux-firmware - 642 187,0 KiB aktualnie w nadchodzącym wydaniu. Macie wszystkie sterowniki binarne do różnych sprzętów wrzucone w jeden pakiet, który wasz system mieli nawet za każdym razem jak coś podłączycie do usb. Inne dystrybucje mają podzielone na grupy lub producentów. W ubuntu była dyskusja pół roku temu skończyło się na niczym: https://lists.ubuntu.com/archives/ubuntu-devel/2025-June/043358.html

  2. Zarządzanie połączeniem sieciowym, w większości graficznych dystrybucji jest network-manager, oczywiście są też różne opcje konfiguracji konsolowego w zależności od dystrybucji. Można też używać wersji konsolowej network-managera, ale nie w ubuntu. Tam jest to nakładka na ich twór zwany netplan. Nie da się skonfigurować tak jak cała reszta świata działa.

  3. Ubuntu LTS od 10 lat używa testowej wersji kompilatora gcc. Wersje testowe wydane pomiędzy wersjami LTS mają tylko stabilne. Fuck logic. Biorąc np. świeże wydanie LTS macie wrzucone jak domyślne wersje stabilną, ale pół systemu chodzi na wersji testowej, np. używając mechanizmu dkms do kompilacji zewnętrznych sterowników używają one wersji testowej i przez mogą nie działać. Dodatkowo opiekun pakietów z kompilatorem który robi to od 30 lat zostawia opcje debugowania kompilatora, zamiast zajmować 250MB zajmuje 760MB. Jak np. używacie steama to się wam to podwaja. Teraz jest dobry przykład w nadchodzącej wersji LTS. Jest:

    root@ubuntu2604:~# apt-get install gcc-15

    Reading package lists... Done

    Building dependency tree... Done

    Reading state information... Done

    Solving dependencies... Done

    The following additional packages will be installed:

    binutils binutils-common binutils-x86-64-linux-gnu cpp-15 cpp-15-x86-64-linux-gnu gcc-15-x86-64-linux-gnu libasan8 libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-15-dev libgomp1 libgprofng0

    libhwasan0 libisl23 libitm1 libjansson4 liblsan0 libmpc3 libmpfr6 libquadmath0 libsframe3 libtsan2 libubsan1 linux-libc-dev manpages manpages-dev rpcsvc-proto

    Suggested packages:

    binutils-doc gprofng-gui binutils-gold gcc-15-locales cpp-15-doc gcc-15-multilib gcc-15-doc libc-devtools glibc-doc man-browser

    The following NEW packages will be installed:

    binutils binutils-common binutils-x86-64-linux-gnu cpp-15 cpp-15-x86-64-linux-gnu gcc-15 gcc-15-x86-64-linux-gnu libasan8 libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-15-dev libgomp1 libgprofng0

    libhwasan0 libisl23 libitm1 libjansson4 liblsan0 libmpc3 libmpfr6 libquadmath0 libsframe3 libtsan2 libubsan1 linux-libc-dev manpages manpages-dev rpcsvc-proto

    0 upgraded, 33 newly installed, 0 to remove and 0 not upgraded.

    Need to get 64.4 MB of archives.

    After this operation, 217 MB of additional disk space will be used.

    Do you want to continue? [Y/n]

    Będzie:
    root@ubuntu2604:~# apt-get install gcc-16 -t resolute-proposed

    Reading package lists... Done

    Building dependency tree... Done

    Reading state information... Done

    Solving dependencies... Done

    The following additional packages will be installed:

    binutils binutils-common binutils-x86-64-linux-gnu cpp-16 cpp-16-x86-64-linux-gnu gcc-16-base gcc-16-x86-64-linux-gnu libasan8 libatomic1 libbinutils libcc1-0 libctf-nobfd0 libctf0 libgcc-16-dev libgcc-s1 libgomp1 libgprofng0 libhwasan0

    libisl23 libitm1 libjansson4 liblsan0 libmpc3 libmpfr6 libquadmath0 libsframe3 libtsan2 libubsan1

    Suggested packages:

    binutils-doc gprofng-gui binutils-gold gcc-16-locales cpp-16-doc gcc-16-multilib gcc-16-doc

    Recommended packages:

    libc6-dev

    The following NEW packages will be installed:

    binutils binutils-common binutils-x86-64-linux-gnu cpp-16 cpp-16-x86-64-linux-gnu gcc-16 gcc-16-base gcc-16-x86-64-linux-gnu libasan8 libbinutils libcc1-0 libctf-nobfd0 libctf0 libgcc-16-dev libgomp1 libgprofng0 libhwasan0 libisl23

    libitm1 libjansson4 liblsan0 libmpc3 libmpfr6 libquadmath0 libsframe3 libtsan2 libubsan1

    The following packages will be upgraded:

    libatomic1 libgcc-s1

    2 upgraded, 27 newly installed, 0 to remove and 66 not upgraded.

    Need to get 227 MB of archives.

    After this operation, 762 MB of additional disk space will be used.

    Do you want to continue? [Y/n]

    To najbardziej wkurwia przy budowaniu kontenerów, gdzie inne dystrybucje zajmują do 1GB, ubuntu zajmuje 3GB. A jak robimy system wbudowany większość mieści się na 4GB pamięci flash, do ubuntu trzeba 16GB. Oczywiście gcc aktualizują po drodze w wersji LTS jak ma to obecnie miejsce w 22.04 i 24.04. Tylko po co to robić?

    W punkcie 1 i 3 chodzi o to, że im mniej rzeczy tym system bezpieczniejszy i stabilniejszy. Jak widać w ubuntu nie.

  4. Jeśli używanie w wersji LTS innego jądra jak domyślne, czyli tak zwane HWE to wasz system się zapycha starymi wersjami jądra. Od 12 lat nie potrafią tego naprawić, gdzie wystarczy zrobić poprawną konfigurację do apt. Tutaj mam przykład robicie system minimalny gdzie chodzi tylko jedna aplikacja, instalujecie jądro hwe włączacie automatyczne aktualizacje bo nic się nie powinno wydarzyć. Macie np. 20 czy 32 GB przestrzeni na dysku. System na start zajmuje 6GB. Jak nic nie zrobicie po 2 - 3 miesiącach miejsce na dysku się skończy. Mint ma swoją graficzną nakładkę do czyszczenia tego, ale trzeba o tym wiedzieć.

Także, moja nienawiść do tego systemu znikąd się nie wzięła. Po prostu lata używania ukazuje jak bardzo jest zjebany. Przed wydaniem 26.04 pokaże jakie znowu "cudowne" zmiany nadciągają.

#linux #ubuntu #programowanie

@30ohm

  1. Co to znaczy "mieli"? W jaki sposób on mieli? Brakuje kontekstu.

  2. No okej, jest netplan zamiast network-manager... ale co to zmienia? Dla laika to jest d⁎⁎a a nie różnica. A dla takiego petenta jest Mint czy Ubuntu kierowane.

  3. A to jest akurat karykaturalnej wielkości problem. Czyli LTS teoretycznie jest mniej stabilny bo używa testowej wersji gcc? Kto tam wpadł na taki genialny pomysł?

  4. Nieaplikowalne do 99% użytkowników, szczególnie laików.

Będąc szczerym, trochę strzeliłeś kulą w płot z tą krytyką. Sam nie lubię Ubuntu ale nie z powodu tego, że nie potrafią używać poprawnie apt albo robią inne dziwne twory jak netplan.


Po prostu GUI dostarczane przez Ubuntu jest kompletnie bezsensowne dla użytkownika końcowego. Błąd? Jakiś tam błąd. Domyśl się, logi przeszukaj. A o instalacji sterowników Nvidii to szkoda gadać. 50% szans że uwali instalację. A skąd to wiem? Bo ostatnio instalowałem Ubuntu i sterowniki Nvidii po prostu się nie zainstalowały prawidłowo.

Problem naprawiła... aktualizacja systemu. Bo akurat aktualizacja sterownika była, bodajże. ¯\_(ツ)_/¯

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Każdego dnia oddalamy się od programistycznego boga.


Dostałem niedziałający Sensorbox V2 do uruchomienia. Dokumentacja tego projektu jest, delikatnie mówiąc, amatorska. Programowanie... przez stronę www (wuteef?!). Troubleshooting ze strony dewelopera nie istnieje, od prawie roku, po aktualizacji esphome, urządzenie uruchamia się z migającym na biało ekranem. Rozwiązania wrzucane przez użytkowników w komentarzach nie działają, nikt też nie wrzuca działającej binarki, choć chwali się jak to jemu działa.

Ale to jest najlepsze: kompilacja firmware bez funkcji home assistant i komunikacji wifi, do odczytu danych z kilku czujników wewnętrznych i pokazaniu ich na LCD zajmuje... prawie godzinę!


#programowanie #esp32 #hansgetzeflammenwerfen

Zaloguj się aby komentować

Bitcoin wiadomo raz lepiej raz gorzej. Może zrobimy hejtocoin? Ustalimy wartość początkową na 1 HC = 1 zł a potem rynek to wyceni. Co wy na to?


#kryptowaluty #programowanie

Zaloguj się aby komentować

Zaloguj się aby komentować

Tak sobie pomyślałem - po co robić krucjaty przeciwko użytkownikom nietagującym wpisów, beczeć w komentarzach i dokładać pracy owcenowi? Czy nie można sprawdzić regexem, czy wpis posiada frazę (^|\s)#[A-Za-z][A-Za-z0-9]*(\s|$), czyli musi zawierać tag? W przeciwnym wypadku nie można dodać wpisu, może się wyświetlić komunikat, że wpis musi zawierać tag z konkretnymi zasadami.


Ten pattern zdefiniowałem jako początek linii lub spacja, #, nieokreślona ilość liter i cyfr, ale pierwszy znak po # musi być literą, fraza jest zakończona spacją lub końcem linii.


#hejto #programowanie

W tle obok ,,Wpisz treść" mogłoby się też wyświetlać ,,Dodaj przynajmniej 1 tag" czy tam coś, ale ja to nie jestem programistą więc nie wiem.

Zaloguj się aby komentować

Zaloguj się aby komentować

Hej misie


Jak tam sytuacja na rynku #it? Czeka mnie poszukiwanie pracy, u aktualnego pracodawcy tylko do końca lutego wydaje mi się że oferty jakieś są


#informatyka #programowanie

@konrad1 W zeszłym roku szukałem pracy i od rozpoczęcia wysyłania CV do podpisania umowy minęło około miesiąca, więc z mojej perspektywy nie jest źle. ALE:

  • Największą skuteczność mają polecenia. Na CV wysyłane z ogłoszeń miałem może 5% odpowiedzi, na polecenia ~95%. Warto więc pogadać ze znajomymi i poprosić ich o wysłanie CV w wewnętrznym systemie danej firmy. Większość firm płaci premię jeśli polecony pracownik okaże się spoko i zostanie zatrudniony więc ludziom zależy na tym żeby to oni mogli przekazać Twoje CV do kadr U mnie zaskakująco dobry efekt dał wpis na linkedinie o tym, że szukam pracy - dużo starych znajomych (takich z którymi pracowałem lata temu) do mnie napisało oferując pomoc.

  • To co było dla mnie zaskakujące ale jak się nad tym zastanowić to nie powinno - CV przeglądają boty AI a nie ludzie. Przynajmniej podczas wstępnej filtracji. W internecie można znaleźć wzory CV pisanych właśnie tak by AI oceniło je najwyżej. Można też poprosić jakiegoś chata o pomoc.

  • Czasy gdy dla deva/testera wystarczyła znajomość jednego języka i jednego frameworku już nie istnieją. Na każdej rozmowie miałem pytania o znajomość technologi cloudowych, CI/CD, konteneryzację itd.

  • Czasów gdy w IT można było być nerdem nie gadającym z ludźmi już nie ma. Miałem mnóstwo pytań o umiejętności miękkie. Firmy zakładają, że na seniorskich stanowiskach potrafisz dogadać się z zespołem zamiast toczyć bezsensowne dyskusje o nie-biznesowe sprawy. Firm nie obchodzi za bardzo jakość ale dostarczanie nowych ficiorów na czas. Mnóstwo miałem pytań które można by podsumować "jest straszna ch⁎⁎⁎ia - brak testów, mnóstwo bugów, niski performance - co robisz żeby mimo wszystko zrobić release na czas". Podpowiem: odpowiedzi w stylu "nie dopuszczam do releasa" albo "nich jakiś menago to klepnie i da mi dupochron" nie są mile widziane xD

  • Pytania teoretyczne są gorsze niż live coding. Zawsze najbardziej obawiałem się live codingu ale to z teorią częściej miałem problem. W normalnej pracy nie mamy zazwyczaj styczności z dużą częścią danego języka czy frameworku i po prostu możemy nie kumać jak coś działa. Polecam wpisywać w google frazy typu "python interview questions", wyłapywać z pytań rzeczy których nie jesteśmy pewni i odczytywać na ten temat w dokumentacji. Na live codingu spotkałem się zazwyczaj z bardzo prostymi zadankami ALE trzeba mieć wyrobiony zmysł algorytmicznego myślenia. Czasami do rozwiązania zadania potrzebna jest znajomość jakiejś zewnętrznej biblioteki/wbudowanych funkcji. Polecam stronki typu codewars żeby sobie poćwiczyć takie rzeczy.

Zaloguj się aby komentować