#rustlang

8
14
Po latach stagnacji na rynku środowisk graficznych na Linuxa, wygląda że w końcu mamy szansę na powiew świeżości zarówno pod względem graficznym(tutaj bez szału) jak i technologicznym(to mnie bardziej ciekawi)

PopOS Cosmic, to napisane w całości od zera środowisko graficzne na Linuxa, w całości przy użyciu języka Rust(no w sumie nie od zera, i jak sami autorzy określili, po prostu zabrali paczki z bibliotekami, trochę je podrasowali i złożyli) i według mnie to jest najbardziej ciekawe.

Dotychczas niemal wszystkie główne środowiska korzystały z Gtk/Qt, które miało swoje gorsze(np. to że pluginy były napisane w js, więc środowisko musiało mieć wbudowany cały interpreter js) jak i lepsze np. stosunkowo dobra stabilność i wiele funkcji.

Cosmic korzysta z biblioteki graficznej iced, w której gui tworzy się przy pomocy zwykłego kodu, który wkompiowuje się w plik binarny(akurat dla mnie, ograniczenie tworzenie gui z kodu rusta, jest minusem, bo przy każdej zmianie trzeba czekać kilka sekund aż program się przekompiluje)

W pakiecie jest dostępne też kilka podstawowych programów tj. sklep, edytor tekstu, menedżer plików, ale ciągle są one w trakcie tworzenia(obecna wersja to pre-alpha, wersja alpha powinna być dostępna do testów w przeciągu kilku tygodni)

Sam już próbowałem z miesiąc temu tego na fedorze(dla ciekawych - https://copr.fedorainfracloud.org/coprs/ryanabx/cosmic-epoch/ ) i mimo że brakowało masy opcji, to całkiem normalnie mi się używało tego środowiska.

Blog z ostatniej aktualizacji - https://blog.system76.com/post/hammering-out-cosmic-features

#linux
#popos
#rustlang
df1bf4b1-2f7c-421a-808b-db3adcc64c39
Catharsis

@qarmin Kibicuje im mocno od kiedy usłyszałem co robią ale obawiam się porywają się trochę z motyką na słońce pisząc tyle rzeczy od zera. Miną lata zanim nadgonią gnome/kde. Ale cieszy sam fakt wykorzystania Rusta i natywnej biblioteki GUI, ale tutaj też obawiam się, że będzie to miało sporo minusów. Nie ma szans, że takie świeże Iced ma konkurować z takimi kolosami jak GTK czy Qt, a przynajmniej na razie.


Pożyjemy zobaczymy, sam raczej zostanę na plazmie ale Pop! OS zawsze był dobrym systemem dla początkujących i może wezmą sobie to do serca przy projektowaniu tego DE to przynajmniej będzie co polecać znajomym gdy spytają o Linuxa. Bo jak kocham KDE Plasme tak wiem, że potrafi być z nią masa problemów i nie jest tak bezproblemowa jak Gnome więc ciężko mi polecić ją totalnemu laikowi. Na razie to miejsce zajmuje Linux Mint albo ZorinOS, zobaczymy co przyniesie czas.

VonTrupka

lata stagnacji?

z linuksem to mi się już tylko kojarzy kilkaset dystrybucji i kilkanaście menedżerów okien.

Wszystko w permanentnych wersjach rozwojowych, w których najwięcej rozwijających się rzeczy to błędy.

Żadnej stabilizacji, nic pewnego poza płatnymi dystrybucjami typu rhel.


Rok temu rozważałem odejście z windowsa, ale odpuściłem bo już wybranie właściwej dystrybucji dla mnie było twardym orzechem do zgryzienia. A w trakcie tego pojawiła się kolejna zagwozdka: jakie X?


I tak minął kolejny huczny rok linuksa (☞ ゚ ∀ ゚)☞


Aby jednak było jasne, nie mam nic przeciwko nowym inicjatywom w oprogramowaniu.

Za to mam wszystko do kolejnych odłamów oprogramowania ( ͡° ͟ʖ ͡°)

Zaloguj się aby komentować

Niecały rok temu, pokazałem szefostwu że może warto było użyć Rusta w jednym projekcie zamiast na maxa optymalizować pythona, z którym mieliśmy od groma wydajnościowych problemów, ale przez długi czas odpowiedzią było "nie", bo to nie jest nam potrzebne(kolega optował za C++ i całe szczęście jego pomysł miał bardziej stanowcze "nie" - zbyt wiele wycierpiałem by używać go jako głównego języka w projekcie który tworzę).

Dopiero pół roku temu najbardziej krytyczne części powoli zaczęły być przepisywane na ten język i jak można było przewidzieć, problemy wydajnościowe przy naszym używaniu programu prawie nie występują.

Obecnie projekt ma ~50k linii w pythonie i ~10k linii w rust i szefostwo uznało, że najwyższy czas przepisać to na rusta, skoro tak dobrze się sprawdza i naprawi kilka pomniejszych błędów i oczywiście jako jeden z tych co zna ten język, znaczna część pracy przypada mnie.

Minusem jest to że jest od groma przy tym roboty na kilka miesięcy i być może to w 100% nie będzie to działało identycznie jak wcześniej(a powinno).
Plusem jest to że w końcu zaczynam się naprawdę uczyć tego języka - przy robieniu projektów dla zabawy nie musiałem zbytnio się przejmować stylem, a tutaj nie dość że trzeba pisać programy tak, by się samemu je rozumiało, to trzeba zrobić je tak by inni je zrozumieli - a rust czasami bywa trudnawy do zrozumienia.

#programowanie
#rustlang
Astro

@krokietowy wybacz za bezpośrednie pytanie ale czy dostałeś znaczącą podwyżkę? Bo to chyba najlepszy moment na negocjacje.

Pokazałeś dużo zapału, warto by ktoś go docenił.

rm-rf

@krokietowy no wszystko spoko tylko jest jedno ale - uczenie się języka na produkcyjnej aplikacji to koniec końców i tak jej pisanie raz jeszcze po skończeniu nauki. Niestety znam to

Zaloguj się aby komentować

Tomki muszę się pochwalić. Udało mi się wypuścić pierwszą wersję mojego programu do konwersji obrazków. Ale to nie koniec będą kolejne wydania i poprawki a co najważniejsze lepsza dokumentacja oraz przykłady użycia. Link do crate https://crates.io/crates/respicta 

#programowanie #rustlang #webdev #programista15k #petproject
def

Paweł, daj link do githuba

Dzemik_Skrytozerca

Coś jak ImageMagick tylko w Rust?

Catharsis

@rayros Koniecznie daj w readme na gicie i crates jakiś przykład jak tego użyć w rustcie. Za każdym razem jak szukam czegoś na crates to gdy paczka ma taki przykład to jest dużo większa szansa że tego faktycznie użyje bo mogę szybko skopiować, wkleić do siebie i sprawdzić jak działa. A zwłaszcza podczas nauki rusta gdzie nie mam pojęcia jak ten język działa na tyle by wywnioskować z plików jak mam tego użyć. Najlepiej dać przykład lub parę pokazujących najważniejsze use case.

Zaloguj się aby komentować

Szukam nazwy do cargo dla projektu bo image-resizer już zajęte moje pomysły to picport, imgport. Macie może pomysł na coś lepszego albo który wybrać? Program będzie zmieniać formaty obrazków i skalować ale też będzie mógł działać w trybie prostego serwera http/formdata

Link do repo: image-resizer

#programowanie #rustlang
93e7aeb9-3781-4b89-8ba0-6763260c0e93
burt

@rayros Obrazoom

MostlyRenegade

@rayros a może nazwij go po prostu Wiesław, albo Ryszard ( ͡° ͜ʖ ͡°)

borsukh

Szwagropic, albo picpol

Zaloguj się aby komentować

Tank1991

@rayros a jak, a prawdziwa wartosc testow sie poznaje jak regresje wylapuja

dotevo

Małe projekty zazwyczaj robię w TDD. Czyli najpierw piszę testy bo wtedy gdy piszę testy to od razu wiem czego od programu oczekuję, a potem gdy mam nawet 15 min wolnego czasu to naprawiam kod aby przechodIł dany test.


Przy większych projektach zazwyczaj mi się to nie sprawdza bo za dużo czasu idzie na przepisywanie testów gdy koncepcja się zmienia, ale piszę testy gdy coś implementuję. Gdy test testuje moją apkę zamiast (robić to manualnie) to wiem, że zrobi to tak samo za każdym razem

rayros

@dotevo akurat w rust pisanie testów tak mi jakoś bardzo dobrze podchodzi. Ale to prawda jak koncepcja się szybko zmienia albo to POC to testowanie czasem bywa bez sensu

Orzech

@rayros Take się pisze normalnie rusta czy dopiero się uczysz?

rayros

@Orzech Dopiero się uczę, pewnie jeszcze dużo nie wiem. Ale clippy mi pomaga, ustawiłem na pedantic xd

Zaloguj się aby komentować

ataxbras

@rayros Ale za co?

Banalny projekt, jakich miliony. Ale to nawet można przeboleć i dać na zachętę. Gdyby nie był niechlujny - masz tam pięć komentów na krzyż, z których niewiele wynika. README zawiera jedynie napis TODO. Więc nie.

rayros

@ataxbras poprawię, dam ci znać

vinclav

@rayros widać napracowanko, widać też inne rzeczy...

rebe-szunis

@rayros Jak wyjaśnisz co to jest i jak z tego korzystać.

koszotorobur

@rayros - ImageMagick z tego raczej nie będzie - ale jest to jakiś początek i można się wiele nauczyć pisząc taki program - chwal się postępami

Zaloguj się aby komentować

Wyniki dorocznej ankiety języka Rust

Polacy są w pierwszej dziesiątce użytkowników tego języka!

#technologia #programowanie #rustlang #rust
ef7ce715-2ee8-4cfe-9c26-cdf5206515b3
HolenderskiWafel

Bardziej mni dziwi że Niemcy drudzy, a nie jacyś Chińczycy czy Hindusi

Catharsis

@HolenderskiWafel Zgaduje że Chińczycy nie przesiadują na forach Rusta to pewnie nawet nie wiedzieli o tej ankiecie. Ja np nie miałem o niej pojęcia a od ponad miesiąca się uczę Rusta xD.

Zaloguj się aby komentować

Będąc użytkownikiem Rusta, widzę niekiedy wiadomości, jak to nowy projekt zaczyna używać tego języka czy nowy driver w kernelu jest na niego przepisywany.

Pod każdym znajduje się spora ilość komentarzy pozytywnych/neutralnych jak i pewna część negatywnych głównie pochodzących od użytkowników innych niskopoziomowych języków tj. C czy C++.

Oto niektóre powody szkalowania(często słusznego) języka:

  • Toksyczna społeczność - głównie chodzi o RIR(Rewrite in Rust) - pisane często pod postami o programach nie napisanych w tym języku - głównie przez osoby nie programujące w Rust, tylko myślące że jest to złoty środek na wszystkie bolączki i błędy występujące w programach.

  • Niebezpieczny system pakietów - chodzi głównie o to że można próbować ataku polegającego na podszyciu się pod crates.io i zmienić paczki na ich złośliwe wersje. Według mnie taki atak prawie niemożliwy do wykonania, bo np. Cargo.lock posiada w środku hashe paczek, co uniemożliwia użycie podrobionej wersji paczki.

  • Używanie do wszystkiego obcych zależności - parser cli czy implementacja tls, według niektórych użytkowników powinno to być napisane ręcznie albo przez zrobione przez kopiuj/wklej bezpośrednio do repozytorium. Według mnie to właśnie jest niebezpieczne, bo kopiowanie coś takiego komplikuje proces budowania, wydłuża proces tworzenia aplikacji jak i zwiększa ryzyko błędów/wymusza ciągłą synchronizację(można to łatwo zrobić przy pomocy git submodule, którego jednak niezbyt lubię). Obce pakiety, używane przez setki innych projektów mają zwykle o wiele lepszą jakość, więcej funkcji i mniej błędów niż te ręcznie napisane.

  • Problemy statycznego linkowania - jeśli jakaś zależność np. openssl, będzie miała błąd który będzie naprawiony w nowej wersji, to gdy jest ona dynamicznie linkowana trzeba tylko ją przekompilować a w przypadku rusta całą aplikację - głównie jest to podnoszone przez ludzi zarządzających dystrybucjami, bo wiąże się to ze zwiększonym wysiłkiem.

  • Problemy z pamięcią to tzw. skill issue i dobrzy programiści nie robią ich prawie wcale/mnie się one nie zdarzają choć już kilka lat programuję w C/C++ - setki tysięcy programistów używają C/C++ i naturą ludzką jest popełnianie błędów a te języki pozwalają odstrzelić sobie stopę w najbardziej wymyślny sposób w zupełnie losowym momencie(problemy z pamięcią często objawiają się z opóźnieniem). Wymagają od użytkowników trzymania dużej ilości informacji o kodzie w swojej głowie, co oczywiście nie jest idealne i problemy ze zrozumieniem kodu/jego poprawną zmianą pojawiają się przy zmiany osoby używającej program czy po dłuższej przerwie od danego kawałka kodu. W przeciwieństwie do C i podobnych niskopoziomowych języków, kompilator Rust traktuje użytkowników z dystansem(można powiedzieć że jako debili - ale w pozytywnym tego słowa znaczeniu(jeśli oczywiście takie jest)) i wymusza określony styl i praktyki, no chyba że zmienimy to przez unsafe. Pozwala to zwykłym użytkownikom tworzyć szybko działające programy, bez bania się o wszędzie czychające problemy z pamięcią, jak i przychylniejszym okiem patrzyć na pull requesty, bo szansa na zepsucie kodu jest o wiele mniejsza. Z tego co zauważyłem to programiści C, często uważają się za pewną elitę, bo przecież nie każdy potrafi robić to co oni. Wystarczy zobaczyć https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=memory, by zauważyć że zbyt wiele programów rozwijanych przez bardzo wykwalifikowanych programistów ma problemy z pamięcią i że to raczej nie problem ich zbyt małych umiejętności. No a jeśli to problem zbyt małych umiejętności, to większość programistów powinna unikać jak ognia C skoro jest on przystosowany jedynie dla najbardziej zaawansowanych.

  • Długa kompilacja i biorąca dużo zasobów systemowych - Rust z racji ilości koniecznej weryfikacji wszystkich parametrów, typów, lifetimów etc. bierze o wiele więcej zasobów systemowych i czasu niż c czy np. go, więc do kompilacji lepiej zaopatrzyć się w mocniejszy komputer

  • Brak dostępności na wszystkich platformach gdzie C jest dostępny - C jest chyba najbardziej przenośnym językiem na świecie(w ilości kompilatorów na różne platformy sprzętowe), wiec trudno by z nim konkurować. Rust wspiera najbardziej popularne systemy bazujące na ARM, x86-64 i wielu innych architekturach wspieranych przez llvm, ale obecnie nie ma oficjalnego wsparcia dla alpha, hppa, ia64, m68k czy s390. Problemem dużym to nie jest bo dotyczy zapewne grubo mniej niż 1% wszystkich użytkowników i to tych, którzy pracują na antycznym/mniej popularnym sprzęcie.

  • Jest o wiele trudniejszy niż C/C++ - składniowo na pewno na pierwszy rzut oka nie wygląda zachęcająco, jednak z doświadczenia muszę powiedzieć że programuje się w nim o wiele szybciej niż w powyższych językach, bo nie muszę polegać w wielu przypadkach na sobie, tylko na kompilatorze. C jest dość prosty pod względem składni, ale bardzo trudnym gdy chce się go poprawnie używać, głównie przez to że bezpośrednio operuje się na pamięci. C++ z wersji na wersji próbuje stać się językiem bezpiecznym, jednak ciągnie się za nim szereg funkcji ze starszych wersji i problemów, które po prostu nie mogą zostać naprawione bez gruntownej modyfikacji języka.

  • Rust rozwiązuje tylko problemy z pamięcią a ich nie robię - cóż, jeśli nawet to prawda(w co szczerze wątpie, jeśli używasz C/C++) to przynosi on szereg przydatnych funkcji, tj. ograniczenie wyścigów o dane, ujednolicenie formatowanie kodu(rustfmt), oficjalny system budowania(cargo), wymuszanie obsługi wszystkich sytuacji w match (switch w C/C++), przyjazne komunikaty błędów - bardzo często z kodem który można zrobić kopiuj/wklej i naprawić problem.

Jak widać Rust nie jest złotym środkiem na wszystko ale wprowadza kilka niezłych usprawnień w stosunku do C/C++, jednak jak widać części ludzi nie jest tym przekonana. C/C++ jak widać po np. statystykach na githubie nigdzie się nie wybiera i ciągle miliony linii kodu będą w tych językach pisane, jednak z roku na rok, coraz większe grono języków zaczyna je podgryzać.

#programowanie
#rustlang
#rust
178866a4-d06a-4a8f-b49c-195e1697a9ce
5348b615-36e1-4a23-b735-7a34e7c5cb0c
faf9ce9d-a1b6-48e6-8ba4-97bb88e975b0
adb6cd90-ab8a-4da2-a53b-9147ed684de3
def

Po czym poznasz progrmiaste rusta? Sam ci to powie

Catharsis

@qarmin Ostatnio zacząłem się uczyć Rusta i jako osoba która wcześniej pisała dosłownie wszystko w JS to było ciężko. Na pewno bardzo mi się podoba Cargo i Crates.io bo to dosłownie jest odpowiednik npm i działa niemal identycznie znacząco upraszczając pisanie czegokolwiek.


Kiedy chodziłem do technikum to byłem chyba ostatnim rocznikiem który uczył się na programowaniu C++ (teraz jest python) i o ile uważam, że Rusta uczy mi się dużo lepiej to jednak na pewno nie polecałbym go jako pierwszy język programowania bo znacząco się różni od innych popularnych języków i potem uczenie kolejnych może być utrudnione.


A co do społeczności Rusta to nie wiem może przeglądamy jakieś inne subreddity ale dosłownie jeszcze nie widziałem nigdzie w necie na niego hejtu lol. Na Reddicie wszyscy zawsze pomocni, masę rzeczy się dowiedziałem z odpowiedzi pod postami. Tak samo na różnych forach i stackach. Nawet na r/linux czytałem posty zachwalajace dodawanie kodu Rusta do kernela , nie wiem może przypadek że ominęło mnie to totalnie xD.


A co do wydajności to jako typ przychodzący z JS to xD, dwa światy. Czasem sobie testowo/dla nauki przepisuje jakiś stary kod z JS na Rusta i jaram jak wykonuje się z 50 razy szybciej jednocześnie zużywając ułamek ramu który zużył JS. To chyba moja największa motywacja w nauce Rusta.

qarmin

@Catharsis Przeglądam głównie reddita(nie tylko r/rust, ale też z innych języków np. r/python czy r/go) jak i phoronix i tam niemal zawsze się znajdzie się ktoś kto ma mocne obiekcje co do języka(pewnie część to trolle, ale nie wszyscy).

piotrb

@qarmin Ja bym dodał jeszcze tych co rzucają: „a i tak trzeba wszędzie zrobić unsafe”.

Zaloguj się aby komentować

Od ~5 miesięcy po godzinach tworzyłem sobie nową wersję aplikacji do czyszczenia niepotrzebnych danych z dysku.

Tutaj blogpost opisujący zmiany w niej - https://medium.com/@qarmin/czkawka-7-0-4941b9bdba55

Jednak zapewne większość z was nie wie co to jest.
Program nazywa się Czkawka, Krokiet(krokiet to nazwa nowego gui, który właśnie stworzyłem, czkawka to stara wersja gui i nazwa biblioteki pod spodem) i potrafi znajdować duplikaty plików, puste pliki i foldery, podobne obrazy, widea, pliki muzyczne, niepoprawne symlinki, rozszerzenia, uszkodzone pliki i jest jednym z najszybszych tego rodzaju.

Ja sam często z niego korzystam by wyszukać dwa niemal identyczne memy, różniące się np. rozdzielczością czy znakiem wodnym i usunąć ten w gorszym stanie.

No i dochodzimy do najważniejszego, jaka cena tego badziewia?
Darmo. Licencja MIT/GPL.

Repozytorium - https://github.com/qarmin/czkawka
Pliki do pobrania - https://github.com/qarmin/czkawka/releases

#tworczoscwlasna #programowanie #rust #rustlang
89c79c8a-4ad4-4f8f-b904-3a089d556f4d
Peregrin

@qarmin hej! Pamiętam jak opisywałeś program po raz pierwszy na portalu na w. Super, że projekt dalej żyje i jest rozwijany. Powodzenia na przyszłość!

Marchew

@qarmin 

Klikam randomowy soft z githuba:


Windows Defender

19.02.2024 19:52

Wykryto: Trojan:Win32/Wacatac.B!ml

Stan: Kwarantanna

Szczegóły: Ten program jest niebezpieczny i wykonuje polecenia osoby atakującej.

Dotyczy elementów:

file: C:\Users\xxx\Desktop\windows_krokiet.exe

DexterFromLab

@qarmin czyli jak pobiore 2 takie same filmy, różniące się np nazwą i kodowaniem to mi to rozpozna? I mogę go odpalić z konsoli na serwerze?

Catharsis

@DexterFromLab Tak, oraz rozpoznaje nawet jak filmy mają inną rozdzielczość i długość. Można ustawić "czułość" wykrywania i przy odpowiednio wysokiej to potrafiło mi nawet wykrywać jak film miał w sobie urywek z innego filmu, np to samo intro xd.

qarmin

@DexterFromLab Tak i tak


@Catharsis Obecny algorytm wyszukiwania podobnych filmów jest prosty(w sensie prosto go zrozumieć jak działa, ale sama implementacja jest skomplikowana). Korzystam więc z zewnętrznej biblioteki, bo sam chyba nigdy bym tego nie napisał. Ma ona ograniczenie, że testuje jedynie widea dłuższe niż 30 sekund i tylko porównuje te 30 sekund z początku.


Autor tej biblioteki pracuje nad usunięciem limitu minimalnej długości 30 sekund, jednak ciągle max 30 sekund z początku bedzie testowane.


Jeśli interesuje was tylko i wyłącznie kwestia znajdywania podobnych wideo i funkcja w Czkawce nie wystarcza, to polecam również darmowy i open source - https://github.com/0x90d/videoduplicatefinder, sam go czasami używam i działa całkiem dobrze(z tego co kojarzę to tutaj jest chyba tylko wersja GUI).

Zaloguj się aby komentować

Rust Atomics and Locks, Mara Bos
Książka typowo o programowaniu mechanizmów blokowania i synchronizacji w języku Rust.
Jako świeży adept Rust'a dowiedziałem się z niej paru sztuczek z syntaxu o których nie wiedziałem. Natomiast jako ktoś kto pracuje w branży ponad 10 lat było to miłe odświeżenie już zapomnianej wiedzy (jak to wszystko wygląda od kuchni).
Książka dostępna za darmo: https://marabos.nl/atomics/
#ksiazki #bookmeter #programowanie #rustlang

Zaloguj się aby komentować

Wartościowy content hejto sprawił, że nabrałem siły żeby wrócić do nagrywania filmików o Ruście.
Wyszło średnio, ale to dobrze.
https://www.youtube.com/watch?v=bRudhwlK8p0
karol-zieba

@wrazik

alloc::alloc

Zawsze z tego ryje jak slysze rust

Michal_Bialek

@wrazik Tagi byś lepiej naprawił.

BananowyKoko

Powiem brzydko, ale dosadnie: napierdalaj więcej.

Zaloguj się aby komentować

Pracuję w IT i jestem entuzjastą Rusta, chociaż nie było mi dane pracować z tym komercyjnie. Pamiętam moje pierwsze próby pracy z tym językiem kilka miesięcy temu.
Polecam ten tutorial na stronie Microsoftu. Jest dobrze napisany i dobrze wprowadza do pierwszej konfiguracji środowiska, więc człowiek nie czuje się zagubiony jak ten debil.
https://learn.microsoft.com/en-us/training/paths/rust-first-steps/
Chwilowo wstydzę się, aby dodać jakiś mój kod związany z tym językiem, ale mam z tyłu głowy kilka pomysłów na wykorzystanie Rusta. W pracy niby też koduję w Javie i C#, ale to są takie nudy i tak oderwane od zastosowań zwykłego człowieka, że nie ma nawet czym się pochwalić.
cf897e29-37ac-4da7-8c61-47f46f5d211d
Wesprzyj autora
wrazik

@Aryo Mistrzu złoty, już 3 rok komercyjnego doświadczenia w Ruście mi leci, i to z dala od blockchainów! Przesiadałem się po 7-letniej przygodzie z C++. Patrząc po ilości ofert pracy - od ponad roku jest spory boom, średnio kilka ogłoszeń o pracę na LI. Jak masz jakieś pytanka to wal śmiało!

S2k0

Rust ma ta zaletę że jak się skompiluje to działa, pisałem narzędzie do parsowania skomplikowanego XML i działa świetnie na początku było dużo struktur i enumow ,bardzo dużo zagnieżdżen ale potem to już implementacja funkcji była bardzo prosta

Zaloguj się aby komentować