Krótkie wprowadzenie do random numerical linear algebra na dobranoc.
https://www.youtube.com/watch?v=6htbyY3rH1w
#matematyka #programowanie #programista15k #pracait
Krótkie wprowadzenie do random numerical linear algebra na dobranoc.
https://www.youtube.com/watch?v=6htbyY3rH1w
#matematyka #programowanie #programista15k #pracait
@groman43 lepsze jest lava lamp i co lepsze jest darmowe - https://youtu.be/kvHQ7A3TM3w?t=367
Zaloguj się aby komentować

Ostatnio miałem okazję nieco więcej popracować nad integracją z zewnętrznym serwisem wykorzystującym mechanizm webhooków. Napotkałem problemy wynikające z synchronicznego przetwarzania zapytań.
W uporaniu się z nimi pomogło mi odejście asynchroniczne, a moimi przemyśleniami i obserwacjami...
Ejejej Gienek, dobre to takie!!
instalujesz na serwerze lub serwerach i można wyklikać sobie setup aplikacji. Bazy danych, redisy, inne komponenty, zintegrować od razu z git repo by był automatyczny deployment. Polecam zainstalować sobie na jakiejś vm’ce lub lxc.
#selfhost #programowanie #it #homelab #serwery #opensource #github
Zaloguj się aby komentować
Wygląda, że Rust ma swoje 5 minut, na scenie języków programowania i jest znany ze swojej wydajności bliskiej C/C++.
Zatem w jaki sposób nowy język mógłby uszczknąć nieco popularności od Rusta? Ano poprzez twierdzenie że jest on szybszy o 50% od niego w jednym z benchmarków.
Tym językiem jest Mojo
Być może się zastanawiacie, czemu dodałem tutaj tam emotkę ognia - ano bo tak się ten język nazywa - serio w nazwie takie coś mają, sprawdźcie sami.
W skrócie jest to język przeznaczony do AI, interoperacyjności z Pythonem, przy zachowaniu jego prostoty i wydajności porównywalnej lub większej niż Rusta.
Brzmi dobrze... aż za dobrze.
Zatem blog o wyczynach wydajnościowych jest widoczny tutaj - https://www.modular.com/blog/mojo-vs-rust-is-mojo-faster-than-rust
Już na samym początku pada ciekawe stwierdzenie
There are a lot of considerations surrounding any benchmark implementation, you can't use any one benchmark to say x language is faster than y language
a następnie widzimy jak to właśnie tym benchmarkiem chcą udowodnić
Widać potem opis kilku elementów, które twórcy uważają że są one powodem tej lepszej wydajności(całkiem logiczne w większości btw.) tj. pożyczanie wartości zamiast jej kopiowania, TCO czy dobre wsparcie dla simd, oraz ostatecznie owy benchmark.
Na tym ta historia mogłaby się zakończyć, gdy oczywiście nie jakiś wścibski programista, który chciał przetestować ową wydajność.
https://viralinstruction.com/posts/mojo/#matching_the_implementation_in_julia
Odkrył on, że kod w Mojo
Przy wybranej większej ilości optymalizacji, kod w Rust czasowo niemal zrównał się z tym z Mojo
Wygląda, że Mojo
#rustlang
#mojo
#programowanie

Żeby język mógł zaistnieć musi mieć przede wszystkich ogromną bibliotekę. Rust jest jeszcze w fazie gdzie się mnóstwo tworzy, a same staty wiosny nie czynia. Choć już czytałem że hype na ten język się trochę wypalil.
Piszę w rust pare miesięcy i uważam że to jest naprawdę dobry język w porównaniu do Java, typescript czy c lub c++
RUST is not a dust. Bardzo lubię ten język, już wiem, że warto.
Zaloguj się aby komentować
Ma ktoś może wiedzę, czy jest możliwość zaprogramowania esp-12e przy użyciu esp32-c3? Konkretnie chodzi mi o ESPHome.
Mam jeszcze jakiegoś klona pl2303 z dorobionym dtr przez kondensator, jeśli to może mi pomóc.
Jeśli macie jakiegoś tutka to chętnie przygarnę bo wszystko co jestem w stanie zaleźć odnosi się arduino a nie ESPHome.
#esp32 #arduino #programowanie #homeassistant #esphome
Zaloguj się aby komentować
Czy jakaś mądra głowa wytłumaczy dlaczego zawartość apki hejto przesuwa się jak w bardzo starych monitorach, gdzie brakowało rozdzielczości? To znaczy, że zamiast o cały piksel za każdym razem, to tak jakby najpierw część się o ten jeden piksel wydłużała a dopiero później skracała? Widać to na tekście jak się przyjrzycie.
#programowanie
Zaloguj się aby komentować
Od prawie roku korzystam z AI(chatgpt i github copilot) do pomocy przy programowaniu i muszę przyznać że potwornie się mi te narzędzia przydają i znacznie przyspieszyło mi to niektóre czynności.
W moim przypadku działa to świetnie do:
Tworzenia funkcji mapujacych obiekt z jednej klasy do drugiej(np. From/TryFrom w Rust)
Dopisywania logiki w prostszych funkcjach - czasami wystarczy wpisać nazwę funkcji, argumenty i zwracany typ, by cała logika którą oczekiwałem była wpisana do środka
Podpowiadaniu w jaki sposób używać danej biblioteki - zdarza się, że mimo przeczytania dokumentacji, nie mam pomysłu w jaki sposób użyć danej funkcji i zwykle podpowiedzi nawet nie do końca trafne, kierują mnie na właściwe rozwiązanie (pomogło mi to przy bibliotece diesel, która jest trudna do opanowania)
dzięki temu, zamiast żmudnego kopiowania i wklejania czy też tworzenia mniej wymagających funkcji, mogę skupić się na bardziej wymagających zadaniach.
Jednak zauważyłem, że pod niektórymi wątkami na reddicie i innych forach, jest spora rzesza osób, które z ai wcale nie korzystają(nie dlatego że nie wiedzą, ale bo nie chcą korzystać).
Jednym z argumentów, jest kwestia etyczna, bo kod nauczony przez ai nie jest w żaden sposób sprawdzany pod kątem licencji oryginalnego kodu.
Inny argument to kwestia tego, że więcej szkodzi(lub bierze więcej czasu niż jakby pisać to wszystko ręcznie) niż pomaga - akurat w moim przypadku argument chybiony.
Jakie są wasze argumenty za/przeciw?
#programowanie
#ai
#sztucznainteligencja

Obydwa nadają się do trywialnych i prostych zadań. Niech dla przykładu zaproponuje Ci rozwiązanie problemu, gdy mając jakąś starą aplikację w Javie (choćby 7 i starsze) musisz zacząć obsługiwać TLSv1.2. Skończysz na przepisywaniu aplikacji lub tysiącu propozycji, z których żadna nie zadziała.
Dopiero się z tym ogarniam, wiele prostych podpowiedzi jest spoko, niestety jak już trzeba coś na poważnie skonfigurować to sugestie AI są - delikatnie mówiąc - z pupy.
U mnie niestety przydatne tylko do wskazania ogólnego kierunku - w narzędziu z którym pracuję najczęściej kod napisany przez chatGPT po prostu nie działa. Za dużo halucynacji, wymyśla biblioteki które nie istnieją, wrzuca nieaktualne biblioteki albo takie które nie są wspierane w wykorzystywanej przeze mnie wersji tylko następnej, albo podaje kod który zwyczajnie nie zadziała bo korzysta ze słów kluczowych czy funkcji które nie istnieją. Często też podaje użycie funkcji w sposób w który nie da się z nich skorzystać (np totalnie złe argumenty). A czasami zapytany o stworzenie jakiejś logiki zwraca deklarację funkcji z jej nazwą i komentarzem - dopisz sobie resztę xD
Szkoda bo narzędzie jako takie bardzo przydatne, ale najwyraźniej moje środowisko pracy zbyt mało popularne żeby umiał sobie z nim poradzić.
Zaloguj się aby komentować
Wprowadzenie do "programowania" układów FPGA na prawdziwym przykładzie. Coś więcej niż nudne miganie ledami. Kanał mocno niszowy, ale moim zdaniem warty uwagi.
https://www.youtube.com/watch?v=bI2O2JD9Ov0
mocno naciągane #programowanie #programista15k #pracait oraz #fpga
Zaloguj się aby komentować
Dobra witam bojowke programistyczna którego lapka wybrać
Tego gigabyte
+ nowy
+ z pewnego zrodla
+ z tego roku
- nie mam doświadczenia z gigabyte
- są tylko opcje z windows 11 home
- niewiadoma jakość obudowy
Czy tego alienware
+ to alienware więc wykonanie jest git
+ jest biały (chciałem biały xD)
+ 17 cali
+ możliwa negocjacja ceny
- zeszłoroczny model
- niepewne źródło
- dystrybucja usa
- co z gwarancją(do ustalenia)
#komputery #laptopy #dell #programowanie #programista15k #pcmasterrace
@Sweet_acc_pr0sa

Albo bierzesz thinkpada albo macbooka jak sprzet do pracy, innego wyboru nie ma
A możesz powiedzieć, czym się kierujesz wybierając drogie notebooki gamingowe do developmentu?
Z mojego punktu widzenia są dość rozpraszające (hałas i temperatura przy użyciu ich mocy), niewygodne (klawiatura, rozbudowa) i zużywają sporo prądu.
Zaloguj się aby komentować
Jak nazywała sie stronka, gdzie mozna obserwować ruch względem czasu na portalach internetowych?
#komputery #programista15k #programowanie #internet #pytanie #socialmedia
Zaloguj się aby komentować
Cześć,
W celu nauki zagadnień sieciowych chce na Raspberry pi 4 postawić serwer Next cloud, chce go też wystawić na zewnątrz aby był dostępny poza siecią lokalną.
Postawienie serwera lokalnego jest bardzo proste. Podpiąłem do RPI dysk SSD SanDisk 1TB QVO(znam opinie o tym dysku) i zrobiłem instalacje Next cloud, działa w sieci lokalnej bez problemu.
Teraz chciałbym wypłynąć na nieznane wody i wystawić go na zewnątrz.
Mam serwer na mikrusie, własną domeny i
Hosting. Czytałem już, że przez cloud flare można to jakoś podłączyć ale nie mam pojęcia jak to zrobić, z czym co się je. Jak to zrobić bezpiecznie etc.
"Szybko się uczę" ale na początek chętnie posiłkowałbym się jakimiś gotowymi poradnikami bo nie wiem od czego zacząć. Mogą być po angielsku.
Kolejnym zadaniem jakie sobie zaplanowałem w tej tematyce jest postawienie API raczej w spring boot bo kotlina trochę znam.
Z jakich stron czerpać podstawową wiedzę na ten temat? Od czego zacząć?
#webdev #siecikomputerowe #sieci #komputery #programowanie #mikrus
Edit: chciałbym to zrobić mając zmienne IP.
skoro masz serwer (rpi z nc) u siebie to znaczy że musisz w jakiś sposób spiąć mikrusa z rpi.
robi się to vpnem lub tunelem ssh (ten drugi jest prostszy w zestawieniu, ale "kosztowniejszy" w utrzymaniu).
no ale zadałbym sobie pytanie czy na pewno chcesz wystawiać taką aplikację jak nextcloud do świata pełnego chinoli botów i reszty raków którzy chętnie kopaliby na Twojej malinie bitki.
Zaloguj się aby komentować
Nie wiem czy słyszeliście, ale pracę nad 6G już trwają! Będziesz szybciej, lepiej, więcej! Dodatkowo ja słyszałem o rekinach (#pdk) Nie pytajcie mnie tylko, po co to komu, bo nikt tego nie wie. Ale w tak zwanym międzyczasie 3GPP zatwierdziło oficjalne logo 6G . Jak zwykle, chłopaki dali z siebie mocne 30%!
#technologia #ciekawostki #telekomunikacja #telcozhejto #programowanie #programista15k #pracait

Zaloguj się aby komentować
#daily_wolnegostudenta
Uprzejmie donoszę że żyję
#bieganie
Z rana wyszłam pobiegać, pierwszy raz od liceum. Biegałam razem z chłopakiem i było naprawdę fajnie. Spotkaliśmy innego biegacza i nam pomachał i ja mu odmachałam. Nie sądziłam że bieganie może być fajnie ale bawiłam się tylko trochę gorzej niż na rowerze.
Praktyka uważności też działa, bo po treningu zamiast myśleć o kurde jak mnie mięśnie bolą myślałam hmm to było fajne, jestem teraz zmęczona ale mimo to cieszę się bo było to fajne przeżycie. No tak więc #psychika na plus
A co z #programowanie ?
Jak wróciłam to wrzuciłam merge request na wspólny projekt i zabrałam się za laby. Od 12 do 20 siedziałam i próbowałam połączyć natywną bibliotekę napisaną w Cpp z aplikacją napisaną w javie. W międzyczasie była przerwa na obiad i odcinek serialu, po której sprawy nabrały tempa. Znalazłam w końcu podobny błąd do mojego na gicie jakiegoś OS projektu, sprzed 2-3 lat. Myślałam małe szanse bo dawno ale spróbowałam ich fixa i zadziałało. Jak się okazuje Java w pewnym momencie zgłupiała i przestała sama znajdywać zależne dll więc oprócz wklejania zależnych bibliotek na odpowiednie ścieżki trzeba je jawnie załadować.
Jestem zmęczona, a jutro do pracy.
Powodzenia wam wszystkim i miłego wszystkiego
Zaloguj się aby komentować
W ostatnią środę dostałem specjalne podziękowania, ponieważ pracuję już 5 lat dla mojego tajwańskiego ciemiężcy, tego złodzieja scrum mastera z drugiego końca świata. Z tej okazji, a także ponieważ mam 10+ lat doświadczenia w branży, postanowiłem, że podzielę się swoimi spostrzeżeniami
- Rynek IT w Polsce jest dość nudny i nieinnowacyjny. Królują CRUDy oraz aplikacje mobilne, które zachodnie korporacje outsourcują w Polsce.
- Nie zna życia ten, kto widział same CRUDy w swojej karierze. Dlatego nie zgadzam się z tak częstym na wypoku wrzucaniem wszystkiego do jednego worka.
- Embedded uczy pokory. Zwykle najbardziej problematyczne są wymagania niefunkcjonalne, szczególnie że pracuję nad twardymi systemami czasu rzeczywistego. Kiedyś spędziłem tydzień, żeby zaoszczędzić około 1kB pamięci.
- Jeszcze bardziej uczy pokory fakt, że mój soft śmiga na milionach chipów na całym świecie. Jak to powiedział Ed Murphy, jeśli coś może pójść źle, to prędzej czy później pójdzie. Jak to ja mówię, jeśli coś może pójść źle, to pójdzie w najgorszym możliwym momencie.
- MediaTek ma moim zdaniem bardzo dobry mechanizm rozliczania programistów. Jeśli coś zepsujesz, to po prostu musisz to naprawić. Nawet jeśli u ciebie jest czwarta rano w sobotę xD
- Naoglądałem się mnóstwo „dziwnych” problemów, w stylu problemy z cache lub z bugi w HW.
- Przez ostatnie 5 lat, MediaTek wypuścił rodzajów 38 chipów (plus dwa chipy testowe, które nigdy nie wyszły z labu), na których śmiga mój soft.
- Mimo że jak na europejskie standardy pracuję bardzo dużo (czasem nawet około 60 godzin tygodniowo), nie czują się wykorzystywany. Wręcz przeciwnie, jestem pewien, że moja praca prędzej czy później zostanie wynagrodzona.
- W wielu zachodnich korporacjach, im wyżej postawiony manager, tym większy przeciętny inaczej, oderwany od rzeczywistości. W MediaTeku jest odwrotnie.
- Spec 3GPP jest naprawdę spieprzony xDDD
#programowanie #programista15k #pracait
Nie zmienia to faktu że mediatek to gówno. Każdy sprzęt który z nim miałem sprawiał różne problemy. Od przegrzewania się przez słabą stabilność aż do padania układów od tak przy okazji uwalając system. Nigdy nie miałem takich problemów na innych prockach. Nawet w kwestii temperatury.
@groman43
Tu się nie zgodzę:
Rynek IT w Polsce jest dość nudny i nieinnowacyjny. Królują CRUDy oraz aplikacje mobilne, które zachodnie korporacje outsourcują w Polsce.
Akurat robię embedded w Polsce i w ciągu ostatniego roku z takich ciekawszych rzeczy które musiałem naprawiać to np:
uboot nie obsługujący pamięci tego samego rodzaju pamięci od tego samego producenta (różnica tylko w rozmiarze 128MB vs 64MB)
branch prediction na DSP: czyli dlaczego bardziej opłaca się wykorzystywać wynik z porównania a < b niż zrobić if'a omijającego taki fragment (zysk z 50ms na 11ms).
o pisaniu customowych bootloaderów nie chce mi się wspominać (C, C++, Rust).
A to tak na szybko mi do głowy przychodzi.
@groman43
Ale wypadałoby żeby kod sterowników do 802.11 to MediaTek odrobinkę ogarnął.
Oczy krwawią jak się to czyta.
Zaloguj się aby komentować

Tym artykułem mogę sobie strzelić w kolano, patrząc na to, czym zajmuję się na swoim blogu. Jednak pułapki, w jakie można wpaść, ucząc się nowych rzeczy, mogą przynieść skutek odwrotny od zamierzonego. W artykule poruszyłem takie tematy jak:
Nie tak dawno temu dokonałem czegoś niemożliwego - znalazłem błąd który był w obcej bibliotece, a nie w moim kodzie.
Na jednym ze starych armów których używamy, odkryliśmy bład w pythonowym programie, gdzie podczas testowania punktów poza okręgiem o promieniu 30, niekiedy wartości wyskakiwały poza skalę.
W okręgu r<30 mamy ~60 punktów z wartościami, które im dalej od środka, tym bardziej się powinny zmniejszać. Dla punktów spoza okręgu r>30 musimy to ekstrapolować, bo do nich danych nie mamy.
Lokalnie na komputerze wszystko mi działało, choć metoda ekstrapolacji wartości RBFInterpolator(korzystamy ze starszej wersji scipy - nie możemy jej niestety łatwo podnieść na urządzeniu, by przetestować czy została naprawiona) dawała nieco niepoprawne i zawyżone wyniki.
Dla pewności ujednoliciłem wersje wszystkich pakietów(głównie zależności pośrednich, bo główne zależności były w tej samej wersji) pomiędzy urządzeniem i komputerem, jednak nie przyniosło to żadnej poprawy.
Przełożony na wieść że nie występuje problem lokalnie, zasugerował bym upewnił się że wszystko lokalnie sprawdzam z tymi samymi parametrami co na urządzeniu. Niezbyt wziął pod uwagę moje wątpliwości co do tego, że może jest to wina biblioteki - szczerze mówiąc się mu nie dziwię, bo z jego strony nie wyglądało to zbyt dobrze - gościu tylko od roku programujacy mówi że być może to nie jego wina i problem może występować w jednej z najpopularniejszych bibliotek pythona i w issues na githubie nie było nawet jednego podobnego wątku.
Ostatecznie udało mi się zilustrować wartości w siatce w kwadracie (od -100 do 100) przy użyciu matplotlib, gdzie widoczne było że na komputerze wartości w miarę regularnie zmniejszają w miarę oddalania od środka. W przypadku urządzenia ARM, wartości promieniście odchodzące z kątów 0,90,180,270 stopni poza okręgiem(r>30), są wybite poza wszelkie granice.
Wygląda więc że w przyszłości będziemy musieli, zainstalować na produkcyjnym sprzęcie pytest, by sprawdzić czy wszystko działa tak jak powinno na armowym urządzeniu, skoro nikomu już nie można wierzyć.
#python
#programowanie

Niesamowite że ktoś pomyślał że może z tym nie być problemu - zawsze powinno się budować, uruchamiać testy na docelowym sprzęcie (przecież tam będzie to wszystko działać na nie na kompie programisty lol). Dobrym pomysłem jest nawet redundancja, macie joba który uruchomi testy na x86_64 i joba na ARM, oba muszą przejść. Gdybyście kompilowali, to również im więcej kompilatorów tym lepiej. W embedded trzeba spodziewać się niespodziewanego.
A już totalną ignorancją okazali się prowadzący ten projekt jeśli uruchamiacie testy na 64 bitowej platformie, a docelową platformą jest 32 bitowy ARM
Najgorzej jak znajdziesz buga w Firefoxie i okazuje się że podobny błąd został zgłoszony w 2006 roku i od 18 lat toczy się pod nim dyskusja. Co jakiś czas ktoś pyta kiedy to będzie naprawione, następnie ktoś z mozilli odpowiada że nad tym pracuje by za dwa lata znowu dostać pytanie o postępy xD
Zauważyłem np że firefox na androidzie bardzo często odświeża strony po powrocie do niego, tak jakby od razu po przeskoczeniu do innej apki czyścił dane strony z pamięci. Oczywiście zgłoszony bug wisi od paru lat w backlogu bo niby ważny błąd ale jakoś tak nie umieją go odtworzyć
(sorki za offtop xD)
Używacie biblioteki scipy i się dziwicie… zaciągnijcie normalnie z github a nie z jakiejś cipy…
Zaloguj się aby komentować
https://www.ftc.gov/news-events/news/press-releases/2024/04/ftc-announces-rule-banning-noncompetes
#informatyka #usa #programowanie
Zaloguj się aby komentować
A z jakich jednolinijkowców Wy korzystacie?
#technologia #programowanie #python

import itertools, more-itertools
@wonsz - itertools to są ubertools
@wonsz - A do tego kiedyś popełniłem taki wpis: https://www.hejto.pl/wpis/exploring-pythons-lesser-known-standard-libraries-artykul-opisujacy-niezwykle-pr
Jedyne do czego używam pythona python3 -m http.server
@koszotorobur sudo cat /dev/random > /dev/sda1
Zaloguj się aby komentować
Specjalne zyczenie dla @Dzemik_Skrytozerca zostalo spelnione: (nie wiem co tam moglo Cie zaciekawic) tekst z rosyjskojezycznej #pravda
Vladislav Avdeev: zrozumienie starszych systemów
Jeden z liderów społeczności IT mówił o starszych systemach
7:53
NAUKA.
Obecnie legacy-code jest palącym tematem w świecie IT. Czym jest, jakie jest jego miejsce w branży, jak z nim pracować i jakie wyzwania stawia przed najlepszymi programistami? Vladislav Avdeev, jeden z liderów społeczności IT, który ma ponad 10-letnie doświadczenie w branży fintech, przemyśle kosmicznym i nauce, pomógł nam zrozumieć te pytania.
- Co stanowi "dziedzictwo" i jak je postrzegasz?
- Branża dość jasno definiuje główne kryteria legacy: przestarzały stos technologii, niespełnianie przez legacy nowoczesnych wymagań, przestarzałe podejście do rozwoju oprogramowania, słaba dokumentacja lub jej brak.
- Pojawia się jednak również szereg pytań natury filozoficznej: kiedy dokładnie nowoczesne oprogramowanie staje się starsze, być może po upływie określonej liczby lat? Jeśli system informatyczny jest kompetentnie napisany w starym, niewspieranym języku programowania, ale spełnia wszystkie wymagania - czy jest to legacy? A jeśli jutro grupa hakerów znajdzie poważną lukę w najnowszej wersji systemu operacyjnego, czy system ten z dnia na dzień stanie się starszym produktem ze względu na niezgodność z wymogami bezpieczeństwa?
- Uważam, że legacy to proces, któremu podlega każde oprogramowanie od samego wydania, a czasem nawet na etapie rozwoju. Dlatego zadania związane ze spuścizną są bardzo zróżnicowane: od "zaktualizuj kilka linijek kodu, ponieważ framework został zaktualizowany" do "ostatni raz programista był tutaj 20 lat temu".
- Dziedzictwo naprawdę ma swoją własną filozofię! Jak często spotykasz się z nią w swojej pracy?
- W takim czy innym stopniu - w prawie każdym dużym projekcie, ponieważ często jestem głęboko zanurzony we wszystkich aspektach rozwoju. Od czasu do czasu mam bardzo duże projekty, których celem jest albo całkowite przepisanie systemu o krytycznym znaczeniu dla biznesu, albo jego refaktoryzacja - aktualizacja.
Z reguły takie projekty należą do najtrudniejszych. Czasami mamy do czynienia ze starym kodem w przestarzałych językach sprzed 30 lat, który, sądząc po jego objętości, oblicza inflacyjny model wszechświata. Wtedy trzeba zebrać zespół doświadczonych programistów. Ale wszelkie problemy związane z dziedzictwem można rozwiązać przy odpowiednim podejściu. Wierzę, że poważne, udane doświadczenie z dziedzictwem jest znakiem rozpoznawczym starszego programisty.
- Czy to prawda, że deweloperzy starają się unikać pracy związanej z dziedzictwem i dlaczego? Czy ty unikasz takich projektów?
- Tak jak ty wolisz pracować na nowoczesnym komputerze, tak programiści wolą pracować z nowoczesnym stosem. Ponadto praca ze starszymi rozwiązaniami jest poważnym wyzwaniem, które wymaga specjalnych umiejętności. Są to główne powody, które mogą powodować odrzucenie wśród deweloperów. Jednocześnie złożone projekty legacy są często możliwe tylko dla bardzo wybitnych profesjonalistów, ale tacy profesjonaliści mogą sobie pozwolić na wybór spośród wielu innych projektów i często nie poprzestają na legacy. Podczas gdy młodsi, średni, a nawet niektórzy starsi programiści nie mają niezbędnej wiedzy i doświadczenia.
Jeśli chodzi o mnie - nie unikam projektów związanych z dziedzictwem, ale podchodzę do nich selektywnie: niektóre z nich mogą stanowić wyzwanie dla mojego doświadczenia lub dać mi możliwość wdrożenia innowacyjnego podejścia lub pomysłu, który chciałem wdrożyć od dawna. Unikam projektów o niepewnych wymaganiach i takich, które naruszają normy etyczne, ale nie mają nic wspólnego z dziedzictwem jako takim.
- Czym różni się proces rozwoju w przypadku legacy i jakich metod używasz?
- Ogólnie rzecz biorąc, każdy proces tworzenia oprogramowania jest iteracyjny i wygląda podobnie, ale każdy kierunek ma swoje osobliwości. Praca ze starszymi systemami poprzedzona jest dokładną analizą bazy kodu, a także zebraniem istniejącej dokumentacji i jej uzupełnieniem. W niektórych przypadkach część rozwoju może odbywać się w języku używanym przez starszy system: na przykład w celu pokrycia go testami, jeśli z jakiegoś powodu inne opcje nie są odpowiednie. Wiele zależy od zadania: zawsze trudniej jest całkowicie przepisać legacy, ale w niektórych przypadkach jest to najbardziej odpowiednie rozwiązanie niż refaktoryzacja.
Mówiąc o metodach, preferuję nowoczesne zautomatyzowane podejścia wszędzie tam, gdzie jest to możliwe. Najczęściej dla każdego dużego projektu tworzę osobne narzędzia do autoanalizy bazy kodu, które są parserami i zestawami skryptów do tworzenia schematycznej reprezentacji projektu, jego poszczególnych części i ich wzajemnych zależności. To samo podejście stosuję w przypadku przepisywania kodu, ale tutaj sprawa wygląda o wiele bardziej skomplikowanie, ponieważ tak naprawdę mówimy o tworzeniu translatorów kodu z jednego języka programowania na inny. Tworzenie takich narzędzi do automatyzacji wymaga sporo czasu, ale takie podejście wielokrotnie przyspiesza pracę nad dużym projektem. Ponadto taka praca jest inteligentna i angażująca. Ponadto uważam, że zastosowanie technologii sztucznej inteligencji jest najbardziej obiecującym podejściem w takich zadaniach i od czasu do czasu eksperymentuję z trenowaniem modeli sieci neuronowych. Podejście to wciąż ma jednak nierozwiązane problemy, które czynią je nieefektywnym.
- Jak złe jest podejście manualne i dlaczego nie można skorzystać z gotowych rozwiązań lub doświadczeń z innych projektów?
- Podejścia manualne są możliwe i niestety nadal często się do nich uciekają - jest to również powód, dla którego programiści nie lubią legacy. W niewielkim stopniu ręczne podejście jest nieuniknione niezależnie od stosowanych metod, ale jeśli mówimy o moich najbardziej "ciężkich" projektach legacy liczących 200-250 tysięcy linii kodu, całkowicie ręczna praca zajęłaby wiele miesięcy i żaden kompetentny specjalista po prostu nie podjąłby się zrobienia tego w ten sposób. Jest to sprzeczne z samą istotą programowania: wszystko, co można zautomatyzować, musi zostać zautomatyzowane.
Oczywiście istnieją gotowe translatory kodu i już dostępne rozwiązania z innych projektów. Ale wszystko to rzadko może być z powodzeniem wykorzystane ze względu na wspomnianą różnorodność dziedzictwa, które może być kodem napisanym w dziesiątkach języków i mieć wiele unikalnych cech architektonicznych. W tym miejscu jeden projekt legacy różni się od drugiego. Jest to również jeden z powodów, dla których wykorzystanie technologii sieci neuronowych wciąż nie jest wystarczająco wydajne, ponieważ wymagają one rozległego i, co najważniejsze, wysokiej jakości próbkowania danych, co z definicji rzadko może zapewnić starszy kod.
- Jak widzisz przyszłość starszego kodu?
- Tak szybko, jak rozwija się branża, tak szybko "rośnie" spuścizna. Ale spuścizna jest nie tylko obciążeniem, ale także cennym dziedzictwem branży. Pomimo faktu, że nowoczesne podejścia do rozwoju zmniejszają jego negatywny wpływ, a kod starzeje się teraz znacznie wolniej, nie możemy łatwo odrzucić tej spuścizny, ponieważ pod wieloma względami jest ona podstawą naszych osiągnięć. Znajdujemy coraz skuteczniejsze sposoby radzenia sobie ze spuścizną, a technologie sztucznej inteligencji wkrótce sprawdzą się również tutaj. Dziedzictwo jest nieuniknionym elementem naszej branży i uczymy się na nim, aby stać się jeszcze bardziej wydajnym i innowacyjnym.
#programowanie #rosja

Dzięki. Zadziwiająco dobry tekst. Ogólniki, ale podane w sposób, ktory ułatwia przyswojenie.
Artykuł wyraźnie nie przystaje do pozostalych.
@Dzemik_Skrytozerca Haha - dziekuje za info.
Co do dobrego poziomu to mialem bardzo dlugo otwarty art z Komsomolskiej Prawdy (ktora uznaje za tak toporna propagande jak tytul wskazuje) - i byl tez ciekawy (dotyczyl rozwoju stacji kosmicznych - oczywiscie rosyjskich, ale podobal mi sie - czeka(l) na wlasciwy czas
@RedCrescent
No to czekamy i na tamten.
Zaloguj się aby komentować
#programowanie
czy jeżeli sprzedaje swój kod za pieniądze
a mój kod ssie, i ciągle sie pi⁎⁎⁎⁎li
to czy zostałem właśnie sutenerem dla mojego kodu?
#heheszki
Nie, a zamiast ciupać programy powinieneś zająć się handlem
@redve ostrożnie- stręczycielstwo jest w Polsce na cenzurowanym
@redve
mój kod ssie, i ciągle sie pi⁎⁎⁎⁎li
przestań pisać w php
Zaloguj się aby komentować