Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

#golang

Twórca

w Sysops / DevOps

1piorunów

NATS: Wydajny system przesyłania wiadomości - CzarnaOwca.IT

Wiem, że w świecie #programowanie i #linux mocne są #rabbitmq #amazonsqs itd. Czy programujesz w #javascript , #php , #python , #java czy #golang - przyda Ci się jakiś system kolejek. Tylko po co od razu się pchać w #rabbitmq lub #kafka ? Jest #nats NATS - lekki i wydajny system przesyłania

Fanatyk

w Programowanie

15piorunów

**Język Go pnie się w górę w indeksie TIOBE.**

Na początku tego roku Golang zajmował miejsce ósme, a obecnie zajmuje pozycję numer 7.

#technologia #programowanie #golang

Osobistość2piorunów

To przesunął się o jedno miejsce, jak byś pytał xd

Gruba ryba2piorunów

Ja w ostatnim czasie manuala rusta czytam ale go też wydaję się bardzo przyjemny.

Fanatyk3piorunów

@Hajt - Rust jest całkiem niezły - ma wiele cech, które posiada Golang, ale nie jest aż tak łatwo go ogarnąć (nawet dla kogoś kto już programuje w innych językach). A wszystko to przez brak Garbage Collectora, który został zastąpiony czymś co się nazywa "borrow checker" - mechanizm zapewniający bezpieczeństwo pamięci, sprawdzający wszystkie wskaźniki do poprawnych adresów pamięci podczas kompilacji.

Autorytet3piorunów

@koszotorobur @Hajt czytałem ostatnio, że z rustem jak z c++ aby być w nim dobrym, trzeba zrobić z niego doktorat

Fanatyk2piorunów

@Fausto - do prostych rzeczy to nie trzeba doktoratu - ale by pisać zaawansowane współbieżne programy i pisać swoje algorytmy czy nawet optymalizować kod aby wykonywał się szybciej - no to zaczyna być całkiem trudno (ale nie wiem czy trudniej niż w C++).

Osobistość3piorunów

@Fausto @Hajt Z doświadczenia mogę powiedzieć, że jako JavaScript dev to za każdym razem gdy próbuje Rusta to nie wiem co się dzieje xD. Co prawda udało mi się napisać w nim jeden prosty program i o dziwo działa i to na tyle dobrze, że uzbierał całe 6 gwiazdek na githubie ale jakość tego kodu jest masakryczna xD.

Największą antymotywacją do nauki Rusta dla mnie jest fakt, że dalej nie ma jakiejś super ultra porządnej biblioteki GUI i fakt, że w sumie to 90% okienkowych rzeczy, które kiedykolwiek chciałbym napisać w Rustcie mogę też napisać w React + Electron i to przy tym 3 razy łatwiej i 5 razy szybciej xD. A argument o lepszej wydajności naprawdę traci na znaczeniu przy aktualnej mocy obliczeniowej komputerów.

Gruba ryba2piorunów

@Catharsis ja też coś tam piszę w JS ale hobbystycznie. Daj linka do repo tej appki w ruscie chętnie zobaczę :smiley:

Osobistość2piorunów

@Hajt Mam ci podać linka do mojego gita, :pleading_face::point_right::point_left: trochę się wstydzę xDDDD.
A tak poważnie, to nie mogę bo bardzo nie chcę żeby ktoś kiedykolwiek połączył ten nickname z moim githubem którego mam podanego w CV i portfolio bo OSINTowe narzędzia z których korzystają rekruterzy potrafią wyłapywać takie rzeczy, ba nawet już Google całkiem sprawnie indexuje wpisy z Hejto które mają po kilka piorunów. A miałem ten sam nick na wykopie i kilku innych stronach więc wolę nie sorka.

A co do tej "apki" to raczej bym jej tak nie nazwał bo to jest prosty deamon który startuje wraz z systemem, działa w tle i robi co jakiś czas określoną czynność. Napisałem najpierw identycznego w Node.js to potrafił zjeść nawet 120MB ramu na bardzo prostej czynności i był zauważalny dla procesora. Tymczasem identycznie napisany ale w Rustcie zużywa jakieś 8MB ramu i w menagerze procesów widnieje cały czas jako 0% zużycia procesora xD.

Oprócz tego miałem jeszcze podejście i napisałem bardzo prosty player muzyczny używając Rust + Tauri i nawet to działało, ale bardzo się męczyłem i potem odtworzyłem to samo w Electronie tylko kilka razy szybciej a pod względem wydajności nie było dużej różnicy bo Tauri działa na tej samej zasadzie co Electron i też używa przeglądarki do renderowania GUI.

Fanatyk2piorunów

@Catharsis - widzę, że kolega mądrze chroni swoją prywatność - szacuneczek!

Osobistość1piorunów

@koszotorobur Osobiście nie mogę polecić Tauri, z 2 powodów:

1. To co napisałem w moim komentarzu wyżej. Jeżeli chcesz użyć Rusta bo zależy ci na wydajności i jednocześnie większa część twojej aplikacji to będzie to co się dzieje w GUI to nie ma znaczenia czy użyjesz Tauri czy Electrona bo apka będzie tak samo ciężka dla komputera bo dalej większość rzeczy dzieje się w przeglądarce. A jeżeli potrzebujesz odpalić jakiś algorytm do ciężkich obliczeń to możesz go po prostu napisać osobno w Rustcie i odpalić za pomocą Electrona zamiast się męczyć i pisać wszystko w Rustcie.
2. Tauri to jest kompletne gówno na Linuxie ponieważ Tauri używa system webview. Na Windowsie to jest Edge (czyli Chromium), na Macu to jest webkit, a na Linuxie to jest webkit2gtk, który jest okropny i czasem na tej samej czynności potrafi działać 3 razy gorzej niż Chromium i przy tym zużywać jeszcze więcej ramu. No i dochodzi jeszcze fakt, że kod będzie działać inaczej na 3 różnych systemach i czasem trzeba rezygnować z jakiś fancy feature w JS albo CSS ponieważ Safari tego nie wspiera czyli automatycznie webkit też nie xD.

Fanatyk1piorunów

@Catharsis - myślę, że Tauri 2.0 ze swoim wsparciem dla systemów mobilnych jednak się przyjmie - bo niektóre apki potrzebują bardzo szybkiego kodu na bakendzie, np. do przetwarzania wideo - a zaletą Tauri jest to, że frontent możesz sobie napisać w jakimkolwiek frameworku webowym jakim chcesz - a webview na urządzeniach mobilnych działa bardzo dobrze.
Dodatkowo część problemów z webview na Linuksie może rozwiązać ten projekt: https://github.com/tauri-apps/wry.
Mi się kierunek w jakim idzie Tauri podoba - pomimo tego, że obecnie na Linuksie apki w nim napisane nie działają najsprawniej.

GitHub - tauri-apps/wry: Cross-platform WebView library in Rust for Tauri.Cross-platform WebView library in Rust for Tauri. Contribute to tauri-apps/wry development by creating an account on GitHub.GitHub
Osobistość1piorunów

@koszotorobur No obserwuje na bieżąco jak rozwija się sytuacja. Ambicje mają spore, ale czy się to przyjmie to pożyjemy i zobaczymy. Jak ostatnio patrzyłem bo chciałem się pobawić tą drugą wersją Tauri to się szybko odbiłem ponieważ dokumentacja była bardzo wybrakowana albo niespójna.

Pokaż więcej komentarzy (30)

Fanatyk

w Programowanie

25piorunów

Przyznaj się, ciągle używasz print() do debugowania swojego kodu :rolling_on_the_floor_laughing:

Ale dzięki IceCream używanie print() do debugowania stanie się odległym wypomnieniem!

IceCream, w skrócie ic, sprawia, że debugowanie staje się zdecydowanie słodsze - gdyż:

* Drukuje zarówno nazwy wyrażeń/zmiennych jak i ich wartości
* "ic" pisze się je o 60% szybciej niż "print"
* Czytelnie wyświetla struktury danych
* Koloruje składnię wyświetlanych danych
* Opcjonalnie wyświetla kontekst programu: nazwę pliku, numer wiersza i funkcję

IceCream jest dostępne dla następujących języków programowania:

* Python: https://github.com/gruns/icecream
* Bash: https://github.com/jtplaarj/IceCream-Bash
* Rust: https://github.com/ericchang00/icecream-rs
* Go: https://github.com/WAY29/icecream-go
* Node.js: https://github.com/jmerle/node-icecream
* C++: https://github.com/renatoGarcia/icecream-cpp
* C99: https://github.com/chunqian/icecream-c
* PHP: https://github.com/ntzm/icecream-php
* Dart: https://github.com/HallerPatrick/icecream
* Ruby: https://github.com/nodai2hITC/ricecream
* Java: https://github.com/Akshay-Thakare/icecream-java
* R: https://github.com/lewinfox/icecream
* Lua: https://github.com/wlingze/icecream-lua
* ClojureScript: https://github.com/Eigenbahn/icecream-cljc

#programowanie #icecream #python #bash #rust #golang #programista15k

Osobistość1piorunów

@koszotorobur dobra wrzutka, dziękuję!!

Osobistość6piorunów

@koszotorobur ja jestem wierny tej metodzie debugowania xD

Twórca1piorunów

@Catharsis Ooo to mój memik, sto lat temu zrobiłem i wrzuciłem na pewien znany portal na W xD
miło widzieć że ciągle sobie lata po internecie (ʘ‿ʘ)

Osobistość2piorunów

@pierogo Lol, szanuje. Mam go w folderze z informatycznymi memikami i czasem wysyłam na czat ze znajomymi gdy piszemy akurat coś o programowaniu itp xd.

Fanatyk1piorunów

@pierogo - brakuje mi tu trochę ludzi udzielających się technicznie - może byś tam coś technicznego powrzucał jak się już ujawniłeś 😉

Pokaż więcej komentarzy (13)

Gruba ryba

w Programowanie

1piorunów

eloszka #programowanie jak robicie migracje #bazydanych ? każda technologia mile widziana #ankieta dla zasięgów xD #gownowpis też

ja dopisuję swój własny kod jako jedną z komend możliwych do wywołania w zbudowanej binarce, potem wywołuję przy starcie instancji

Jak robisz migracje?

  • W kodzie źródłowym26%
  • Osobnym narzędziem19%
  • Ręcznie wywołuję zapytanie na produkcji9%
  • Migrację to ja mogę co najwyżej do Niemca na szparagi zrobić46%

93 głosów

Tytan2piorunów

No zależy. Update u mnie dzielą się na 2: te co można cofnąć i te, których nie da rady cofnąć ze względu na zależności z aplikacją. Każda migracja leci w blue/green deployment razem z softem, gdzie pierw migruje się kopia bazy, później testy, później apka i testy i przelaczenie blue green apkii. Liquibase na migracjach db. Jak testy nie przechodzą to nie przełącza Blue green. Baza leci ze snapshot z aws pierw do testów a później leci migracja na produkcji.

Pokaż więcej komentarzy (11)

Fanatyk

w Programowanie

8piorunów

**Go language hits top 10 in the Tiobe index**

Język Go (Golang) zajął ósme miejsce w rankingu popularności języków programowania Tiobe.

#technologia #programowanie #golang

Osobistość1piorunów

@koszotorobur Wtf dziwny ten ranking. JS jest mega nisko i jednocześnie na 9 miejscu jest Visual Basic który jest powyżej PHP który zamyka pierwszą dziesiątkę LOL

Pokaż więcej komentarzy (8)

Gruba ryba

w Programowanie

3piorunów

Ejejejejej. Pochwalcie się co ciekawego ostatnio znaleźliście na temat - jakąś bibliotekę?

Może jakiś fajny AI model co można uruchomić lokalnie?

Może jakiś zajeb%@#% serwis?

Albo coś fajnego self hosted?

Mam wolny wieczór, chętnie o czymś ciekawym poczytam.

#sztucznainteligencja

Kosmonauta0piorunów

ostatnio sporo siedzę w tematach virtio służbowo, ale chyba to mało dla Ciebie interesujące.

Gruba ryba0piorunów

@dotevo co uzywasz do wirtualizacji, i jakiego typu to jest wirtualizacja ? Serwerowa czy użytkownikowa ?

Kosmonauta1piorunów

Aby zrozumieć dlaczego virtio jest fajnym rozwiązaniam trzeba się najpierw zagłębić w to jak w ogóle wygląda postawienie systemu np. Androida na urządzeniu. Każdy telefon jest trochę inny. W inne miejsce może być podpięta pamięć, serial itd. Dlatego zawsze kilka tygodni zajmuje pokonfigurowanie kernela. Potem trzeba napisać HAL, który tłumaczy androidowi jak np. używać GPS. To znów wymaga czasu. Każda aktualizacja androida wymaga dopasowania tego co już jest. Często więc dużo czasu i pieniędzy wymaga takie coś - jest też Treble, ale mniejsza z tym teraz.

Konkluzja jest taka:
Różne systemy operacyjne odpalane na czymś w stylu telefonu. Jest system linux host, który przez virtio przekazuje wszystko do guesta (usb, bt, wifi itd) np. Androida i dzięki temu działa od razu bez zabawy w drivery po stronie androida.

To jest o tyle fajne, że jeśli się przyjmie na szeroką skalę to aktualizacja systemu będzie możliwa na dowolnym urządzeniu. Wymiana systemu na dowony inny używający virtio też nie będzie problemem. Może rynek telefonów zacznoe przypominać rynek PC, gdzie możesz sobie podmoenić system i wszystko śmiga.

Gruba ryba0piorunów

@dotevo no nadal to jest wirtualizacja, czy to nie będzie powodem że system będzie zamulać w stosunku do natywnego drivera? A co w przypadku gdy np. gps ma więcej funkcji niż standardowy? Bo z tego co rozumiem co piszesz - virtio to taki wrapper na API urządzenia, wirtualizacja urządzenia - które dostosowane jest do standardów - a ostatecznie komunikacja z urządzeniem poprzez virtio. Wrapper który nigdy nie pozwoli wygrać z apple - gdzie apple ma parę urządzeń i może pozwolić sobie na natywne wsparcie.
Dobrze kminie?

Też się kiedyś zastanawiałem dlaczego rynek telefonów nie jest jak rynek PC - gdzie w PC możesz mieć inny procesor, inną kartę graficzną, bluetooth, wifi itp... A kernel je obsługuje w większości - w standardzie.

Kompan2piorunów

@Klopsztanga Ostatnio zacząłem się interesować troche fizyką kwantową i okazuje się, że IBM u siebie na stronie ma darmowe narzędzie do budowy obwodów kwantowych - https://quantum-computing.ibm.com/composer/files/new
Niestety póki co nic z tego nie rozumiem :rolling_on_the_floor_laughing:

Composer - IBM QuantumProgram real quantum systems with the leading quantum cloud application.IBM Quantum
Gruba ryba1piorunów

@radler i za szybko nie potestujesz 😛

Pokaż więcej komentarzy (7)

Osobistość

w Programowanie

2piorunów

#rust #golang #linux

Zbliża się nowy projekt i nie mogę się zdecydować czy wybrać Rust czy iść w Go. Go znam dość powierzchownie. Napisałem kilka małych CLI i jeden hobbistyczny backend. Rust nie znam w ogóle ale przyciąga mnie ten borrow checker. Będzie to projekt sieciowy wiec i latency musi być dość małe oraz memory footprint będzie również ważna częścią projektu. Wiem ze cilium ma liba do eBpf który jest dość dobrze sprawdzony. Czy Rust ma tez jakiś dobry odpowiednik? Projekt będzie działał bardzo blisko kernela linuxowego wiec to tez jest bardzo ważne.

Jakie macie doświadczenia z Rust? Stabilnośc języka i bibliotek? Mam nadzieje ze jest o wiele lepiej niż w Nodeland gdzie 80% to śmieci albo porzucone projekty.

Dzięki 🖖

Specjalista0piorunów

Rust all the way

Pokaż więcej komentarzy (4)

Kompan

w Programowanie

6piorunów

Opy, ratujcie.

W końcówce tego roku postanowiłem nauczyć się nowego języka, a wybór padł na Go. Wygrał z Rustem. Próbowałem wcześniej, ale się nie zakochałem. Za to tym razem czuję, że coś może zaiskrzyć.

Wiadomka, najłatwiej przez praktykę, więc przepisuje API REST'owe z Symfony w pehapu na Go właśnie. Wziąłem sobie Gin'a i na razie jest miło. Ale prostota języka mnie trochę przerasta. Szukam jakiś materiałów na temat architektury projektu, takiego życiowego projektu, nie klasycznego hello worlda, ale nie mogę znaleźć. Przeglądałem też już kilka razy repo Dockera, żeby zobaczyć, jak tam API jest ograne, ale to już za wysoka liga na człeka z tygodniowym doświadczeniem xD

Najbardziej mnie interesuje ogarnianie struktury kodu, żeby nie mieć wszystkiego w jednym katalogu, a też unikać "import cycles".

Stawiam rogala za wskazówki :croissant:

Fenomen3piorunów

@heszke_w_meszke Idź w Rusta, bardziej przyszłościowy.

Mam dla Ciebie jeszcze jedną propozycję: solidity

Sum2piorunów

@heszke_w_meszke Go i Rust są w pytkę, faktycznie nieco niejasne jest jak utrzymać w Go duży projekt. Ja wyguglalem "best golang open source projects" i tam patrzylem jak większość ma zrobione :slightly_smiling_face: Ale uwaga, niektóre były robione dawno temu i się już tak projektów w Go nie robi.

Pokaż więcej komentarzy (6)

Kompan

w Technologia

11piorunów

06/22

Cześć.
Witam w nowym tygodniu.

1. Ten, kto nie parsował outputu z konsoli za pomocą wyrażeń regularnych ten nie wie co to stres. 😉 W Python jest biblioteka Scrapli, która "rozmawia" z konsolą za pomocą poleń. Jest też dostępna w Go. Tu masz przykład użycia. Jeśli interesuje Cię automatyzacja to pamiętaj o ankiecie https://showroute.pl/robot.
https://netdevops.me/2021/network-automation-options-in-go-with-scrapligo/

2. UTRS, a właściwie Unwanted Traffic Removal Service, to usługa typu community dostarczana przez Team Cymru. Usługa wykorzystuje RTHB to łagodzenia ataków DDoS. Tu masz link (https://team-cymru.com/community-services/utrs/), gdzie możesz za darmo się zarejestrować. Zanim to zrobisz, to przeczytaj zawartość Readme.md.
https://github.com/team-cymru/network-security-templates/blob/master/UTRS-Peering-Guide/README.md

3. Co zrobić, zanim przystąpić do automatyzowana swojej sieci i usług. Odpowiedź jest prosta. Porządek. Ivan w swoim stylu wyjaśnia dlaczego.
https://blog.ipspace.net/2022/02/cleanup-before-automation.html

4. Anycast jest ciekawy i dobry np.: do rozpraszania ataków DDoS czy zwiększania dostępności serwerów DNS, ale też są pewne minusy związane z TCP.
https://lambda.mu/anycast-tcp/

5. Jak wygląda wydajność DNS over HTTPS w ujęciu globalnym. Badacze sprawdzili 22052 unikanych użytkowników w 224 krajach. Artykuł w linku jest podsumowaniem ich badań.
https://blog.apnic.net/2022/02/03/measuring-dns-over-https-performance-around-the-world/

SZKOLENIA/EDUKACJA

Za tydzień otwieramy zapisy do naszego programu BGP - zbuduj silne fundamenty. Jeśli chcesz dołączyć, do programu to zapisz się tu: https://showroute.pl/bgp
Przygotowujemy ciekawą ofertę.

PRACA

Oferty pracy są dostępne dla czytelników mailingu. https://showroute.pl/netprasowka

To byłoby na tyle w tym tygodniu z Netprasówki.

Pozdrawiam i do przeczytania.