Zdjęcie w tle
Programowanie

Społeczność

Programowanie

1k+
Korzystał ktoś z samby(libsmbclient) z wielu wątków?

Chciałem w każdym uruchomionym wątku, stworzyć sobie klienta łączącego się z serwerem, przesyłającego jakieś kilku megabajtowe pliki a na końcu zamykający połączenie.

Jednak zauważyłem że wywoływanie smbc_new_context z wielu wątków jednocześnie, powoduje problemy z pamięcią i wysypywanie się programu a nie znalazłem innej metody na łączenie się z serwerem i przesyłanie danych.

Próbowałem grzebać w bindingach które używamy, ale nie udało mi się nic zdziałać - issue https://github.com/veeso/pavao/issues/17

Obecnie w programie dodaję globalnego locka na operacje i tylko jedna na raz może się wykonywać.

Czy samba jest ograniczona do działania tylko w jednym watku w programie, czy może to błąd nakładki której używam, czy może istnieje jakaś opcja do uruchomienia wsparcia wielu wątków?

#samba
#jezykc
#programowanie
koszotorobur

@qarmin - ale do przesyłania plików weź ty użyj czegoś normalnego jak scp, rsync, robocopy, gołe SSH, sftp a nawet ftp(s).

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ć

Dodałem na główną sortowanie po popularności ogłoszenia. Algorytm użyłem z posta na stack overflow https://stackoverflow.com/questions/11128086/simple-popularity-algorithm

Ciekawie to teraz wygląda, ciągle coś nowego na głównej się pojawia, ale chyba muszę odfiltrować boty z wyświetleń. Tu można zobaczyć efekt:
https://mamrzeczy.pl

#programowanie

Zaloguj się aby komentować

Mam problem w github CI, że projekt który kompiluję bierze całą dostępną przestrzeń dyskową.

Używam C++ i problem występuje przy linkowaniu - nie ważne czy używam lld, gold czy mold, zawsze jest to samo.

Da się coś na to zaradzić? Np. jest jakiś krok przed linkowaniem, który usuwa pliki źródłowe i zostawia tylko to co potrzebne do linkowania?

To jest krok z budowaniem aplikacji z address sanitizerem, więc nie mogę wyciąć żadnej opcji, która zmniejszyłaby rozmiar binarki.

#programowanie
#cpp
mike-litoris

@krokietowy ustaw sobie ramdysk jako target do kompilacji, tam przechowywanie objfile zlinkują sięjak trzeba a po tym procesie zyskasz binarkę na fizycznym storage'u

krokietowy

@mike-litoris Ramu w github CI jest chyba tylko 7GB i większość jest używana, więc raczej to nie jest mozliwe(nie wiem czy ramdysk w CI jest możliwy do zrobienia)

m_h

A nie dałoby rady budować bibliotek (.a) z poszczególnych komponentów i na koniec z linkować je do końcowej binarki?

groman43

@krokietowy Z czystej ciekawości, co to za projekt. Bo to musi być niezła kobyła, w co nie za bardzo chcę mi się wierzyć.

Zaloguj się aby komentować

Proszę o sprawdzenie co jest nie tak, dlaczego pluje mi errory?

Strona to https://ikc.biblioteka.ilawa.pl/
55ce1096-e8c1-48cb-a6f2-c6263ea929dc
9edfb75f-fd4f-4af6-ab1a-641009a37fde
Vuaaas

@Bezbronny Dobrą praktyką jest nie przesyłanie wartości true/false jako parametr i tworzenie warunków, tylko stworzenie osobnej funkcji dla każdego przypadku. W twoim kodzie było by to podzielenie funkcji "url" na: "url" i "urlSaveParams" gdzie pierwszy wariant obsługiwałby to co jest w "else" a drugi to co jest w "if". Widać potem lepiej jak działa program podczas wywoływania funkcji. Oprócz tego możesz zrobić if($arg) zamiast if($arg!=nulll), a nawet użyć if/else jednolinijkowego


$url .= $arg ? "$arg=$val/" : "$val/";


Tę listę ifów też bym zmienił, jako np. listę z możliwymi parametrami i osobną funkcją do pobiewrania, np.

$paramsCanBeSaved = [['name' => 'id', 'inUrl' => true], ['name' => 'foo', 'inUrl' => false]];

foreach($paramsCanBeSaved as $param) {

getSavedParam($param); //funkcja wywołuje to co w if, lub po prostu wklejasz tu to co masz w if

}


Wtedy masz do edycji tylko listę zamiast dodawania kolejnego warunku, potem możesz dodać tę listę do bazy danych i stamtąd dynamicznie dodawać sobie kolejne parametry do sprawdzenia bez konieczności edycji kodu.


Tak nawiasem mówiąc to dodawanie tego w ścieżce jest trochę niekonwencjonalne, ja użyłbym query buildera, wtedy masz jedną funkcję: https://www.php.net/manual/en/function.http-build-query.php

I link wygląda tak: www.foobar.com?name=asd&sort=desc

Bezbronny

Widzę, że to będzie coś grubszego. Ja jestem skromnym Technikiem Informatykiem. Serwis zrobię, ale kodu php nie napiszę. Ten, który napisał ten kod, już dawno w bibliotece nie pracuje. Teraz Serior admin czy jak to się zwie w korpo, i "nie mam czasu na takie pierdoły"

Zaloguj się aby komentować

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 #golang

Jak robisz migracje?

91 Głosów
psalek

@wombatDaiquiri Django spięte z CI/CD.

rm-rf

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.

green-greq

Piszę do DevOpsów ( ͡° ͜ʖ ͡°)

Zaloguj się aby komentować

Tomki pijcie ze mną kawę. Wygrałem ekspres ciśnieniowy na targach IT. #chwalesie #programowanie #programista15k
62cd6d2d-0598-42c8-b05d-c623a44aece6
Ewidentnie_nie_on

Smacznej kawusi. Ja sobie gadam z AI i nawet nie muszę uruchomić kąkutera ani telefonu. Jeszcze się dąsa.

UmytaPacha

@rayros a Tosie też mogą?

Szpadownik

Eee, kolbowy... Sprzedaj to czym prędzej i kup coś normalnego ( ͡° ͜ʖ ͡°)

Zaloguj się aby komentować

I tak się żyje jako programista open source

#programowanie
#opensource
eefd97e1-2b70-48a1-a7f6-4e79790d4cb6
628d5a07-8210-44af-bd3b-961d79dbcee3
vinclav

@qarmin O widzę kolega natknął się na bramę indyjską. No niestety.

Jak tak miałem, to dzwoniłem do supportu US.

koszotorobur

@vinclav - jak naprawiałem kiedyś kompy i musiałem na przykład aktywować klucz windy bez netu lub przez neta były problemy to zawsze dzwoniłem na numer supportu w Juesej - tam mnie nigdy nie zawiedli - gdzie support w Polsce to był śmiech na sali.

vinclav

@koszotorobur nadal jest

Catharsis

Zawsze uważałem ffmpeg za nadprogram ale teraz to jeszcze większy szacuneczek.

Klopsztanga

@Catharsis ffmpeg chyba każdy używa XD

koszotorobur

@Klopsztanga - ale nie każdy trzepie na nim miliony

Zaloguj się aby komentować

Jak nie śledzicie ostatnich dram w świecie programowania/open source, to oto przedstawiam nową i dość specyficzną, bo ocierającą się o możliwe tworzenie backdoorów przez rządy w popularnej bibliotece do kompresji w Linuxie(nawet jeśli jej nie używacie bezpośrednio, to masa programów w systemie jej używa pod spodem).

W skrócie to autor biblioteki w wersji 5.6.0/5.6.1 zaczął dodawać stopniowo "obfuscated"(czyli to chyba się tłumaczy jako zaciemniony) kod, który ostatecznie miał raczej pozwalać na umożliwienie zdalnego dostępu do maszyny(ponieważ xz jest używany przez openssh).

Analiza - https://www.openwall.com/lists/oss-security/2024/03/29/4
Inna analiza - https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27

Wątki na internecie - polecam przeczytać komentarze, które wyjaśniają niektóre rzeczy:


Backdoor został wykryty, ponieważ powodował duże spadki wydajności oraz nie lubiał się z valgrindem, który przeczuwał że coś z binarką nie jest w porządku(wygląda że plik binarny sam się modyfikował)

Dla uspokojenia, problematyczne wersje były używane głównie w niestabilnych wersjach dystrybucji.

#programowanie
#linux
#opensource
4dfb1ac0-745c-4efb-99b4-b878c6930ee0
Dzemik_Skrytozerca

I nikt nie napisze gdzie doszło do naruszenia bezpieczeństwa? Ludzie, wy macie jakieś pojęcie o dokumentowaniu rzeczy? A wystarczy dodać:


Backdoor in upstream xz/liblzma leading to SSH server compromise [CVE-2024-3094]


Ten dopisek ma też od razu funkcje, że dobrze się sprawdza w Google.

Catharsis

@qarmin Jak się kładłem spać to widziałem już o tym jakiś artykuł. Jak po obudzeniu się odpaliłem kompa to od razu mi się odpaliła przeglądarka bo nowy wpis w "arch news" a tam żeby szybko zaktualizować system bo jest backdoor w paczce. No to szybkie pacman -Syu i patrzę, mam już zainstalowaną wersję bez backdoora, taki Arch moment bo nawet nie wiem kiedy zrobiłem ten update xD

vinclav

@qarmin szczerze powiedziawszy, to mnie wcale nie dziwi, AI i te gówno czaty GPT pchają oprogramowanie w closed source.


Taki zabieg ma na celu coś takiego " ej no nie dajmy tak sobie puszowac komustam coś w sieć, zablokujemy dostęp do kodu".


Na co tępe masy przystaną, nadzieja dziwna epoka, w której programiści będą się uczyć, lub też nie, języków na zlecenie pracodawców, a to już nie będzie indiańskie eldorado.

Zaloguj się aby komentować

Testował ktoś z was Milk-V Duo  ?

Za 5$ płytka rozwojowa z linuchem na pokładzie, 64mb ram, support h264, support usb i innych gadźetów.

No ale cena - za 30zł można kupić na aliexpresie, czyli cena porównywalna do esp32 lub rsp pico (no może 50% droższa)

Czekam na dostawę, jak będzie tak jak opisują - to miazga :3

#arduino #esp32 #diy #programowanie
Klopsztanga userbar
68a85605-edcd-4978-bd25-eae090ce64dc
LondoMollari

@Klopsztanga Jak znam życie z tymi tanimi płytkami, to problem będzie z dokumentacją. Co drugi pin GPIO będzie działał tak jak powinien, i żeby to w ogóle działało, będziesz musiał pohaczyć ze sobą kilka niekompatybilnych bibliotek.


Po tym, jak na jednej z tanich płytek musiałem brute forcem ustalać który PIN przekłada się na które oznaczenie (i czy w ogóle działa) stwierdziłem, że pierdzielę i następnym razem biorę RPI.

Klopsztanga

@LondoMollari dokumentacja ładnie wygląda

https://milkv.io/docs/duo/overview

Jak dla mnie


Co do bibliotek - tak, zawsze to problem... ale jak ma się linuxa to już mi to lotto Bo system mi to ogranie

mike-litoris

@Klopsztanga testował. I nie ma problemu z dokumentacją.

powiem nawet więcej że tak testowałem że zamówiłem na spróbusa kilkanasice egzemplarzy

na arace.tech masz nieco lepsze ceny

Klopsztanga

@mike-litoris o kurdens, fakt, 20 zeta ino tam kosztuje.. a wersja 256 30 zlociszy :3

Klopsztanga

eee jednak chyba spasuje xD Może jakbym kupił kiladziesiąt to by się opłaciło... ale wtedy cło i inne gówna dochodzą

46d1e949-3909-4bdb-9ba9-1ed7cd51bf46
mike-litoris

@Klopsztanga a, no i jeszcze jeden ważny resource: https://community.milkv.io/c/duo/5


google translate ch -> en daje radę, jak tylko uprzątnę biurkowarsztat to pobawię się w tinyfb.

Klopsztanga

@mike-litoris co to tinyfb ? coś jak lvgl ?

mike-litoris

@Klopsztanga nie, to framebuffer który odpalisz na takich mikrusach. jak zmieścisz się w 64mb ramu to nawet Xorg na tym pójdzie, ale zwykle używa się tego do korzystania z tty, wtedy podłączasz np klawkę na USB i masz normalnego shella.

https://youtu.be/Swo-zJ6brQI

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ć

No i stało się co miało się stać.
Przy próbie dodania dodatku, ci od firefoxa dali sobie 1 dzień na jego sprawdzenie i... pomyślnie przeszedł weryfikację!

Link do dodatku - https://addons.mozilla.org/en-US/firefox/addon/imager/
Najfajniejsze jest to że jak próbuję to wyszukać w wyszukiwarce dodatków po frazie "imager" to nic mi nie wyszukuje(pewnie musi być nieco bardziej popularny).

Link do kodu na githubie - https://github.com/qarmin/imager - jednak nie zalecam tam patrzeć, jakość kodu nie powala i oczywiście nie ma tam wbudowanej funkcji która kopie bitcoiny i przelewa utarg na moje konto, które wykorzystuję do kupowania kebabów - nie ma tam takiej funkcji, więc sprawdzać tego nie musicie.

Wołam @RACO i @Odczuwam_Dysonans bo chcieliście skrypt, więc oto jest

Filmik przedstawia krótką instrukcję jak zainstalować dodatek i go używać
Jeśli zaznaczonych jest wiele kart, to potrafi na nich wszystkich za jednym razem zadziałać

https://streamable.com/yx4r8g

#programowanie
#firefox
#tworczoscwlasna
M4G33k

Robienie własnych rozszerzeń zawsze na propsie, jest tam coś specyficznego zapiętego z Firefoxa czy na innych przeglądarkach też pójdzie? Czy się mylę bo robię na Chlam a FF to inna bajka?

qarmin

@M4G33k Kilka lat temu pamiętam że była jakaś grubsza inba że Firefox przechodził na webextensions, który powinien być multiplatformowy w przeciwieństwie do dotychczasowego mechanizmu, więc teoretycznie portowanie powinno być proste.


Co do tego konkretnego rozszerzenia, to nie jestem pewien czy korzystałem z jakichś niestandardowych funkcji ale raczej nie.

Tylko z browser.storage/tabs/menus i zwykłymi funkcjami operującymi na dom, więc raczej nie powinno tego być trudno przeportować na chromowate przeglądarki

redve123

@qarmin o kurde, to ty stoisz za czkawką

Zaloguj się aby komentować

Dodatek nabiera kształtów i jest już zgłoszony do dodania do sklepu Firefox(pewnie będzie odrzucony, ale pomarzyć można)

Mam jednak problem z tym, że po podmianie całej strony, przy użyciu

document.body.innerHTML = "";
var scripts = document.getElementsByTagName('script');
for (var i = scripts.length; i >= 0; i--) {
if (scripts[i] && scripts[i].parentNode) {
scripts[i].parentNode.removeChild(scripts[i]);
}
}
dalej w tle skrypty są uruchomione i czasami wpadają w jakąś dziwną pętlę.
W jaki sposób mogę wyszyścić ze strony absolutnie wszystko?
Na filmiku widać że popup z hejto wyskoczył, mimo że w tle podmieniłem całą stronę

Jest kilka różnic w stosunku do ostatniej wersji:

  • kod się roztył do 300 linijek javascriptu - całkowicie nieotypowany, nie wiem jak to może działać, ale działa
  • obrazy są teraz pokazywane w x kolumnach bez niepotrzebnych pustych przestrzeni
  • dodane są ustawienia(ale nie wiem czy działają po ponownych uruchomieniu przeglądarki) - można dostosować liczbę kolumn, ignorowane linki, śledzenie href linku czy ignorowanie linków bez rozszerzeń obrazowych
  • nowe, brzydkie logo

https://streamable.com/9sltr8

#programowanie
Catharsis

@qarmin Może po prostu otworzyć nową kartę z tymi obrazkami zamiast nadpisywać całą stronę?

qarmin

@Catharsis Nie wiem jak się to robi.

Myślałem bardziej o tym by dla aktualnej karty, zamiast podmiany zawartości, otwierała się jakaś wbudowana strona o identycznym wyglądzie, ale nic takiego nie znalazłem.

Zaloguj się aby komentować

Następna