Mirki i mirabelki z #programowanie #jezykc i #cplusplus i innych hashtagów które wołam.

Kodzę głównie w C/C++ - w sensie drivery, finalne rozwiązania - nie wiem jak to dobrze określić - po prostu apki nisko poziomowe, blisko sprzętu. Tylko coraz częściej jest tak, że żeby dojść sedna problemu gdzie faktycznie C/C++ jest tym narzędziem, które robi robotę to muszę przejść przez warstwę sieciową, żeby odebrać config, sparsować (np JSON RPC czy dbus)
@BeginEnd: Tylko Rust. Golang ma fatalne powolne FFI (jak Java; spowodowane obecnością GC oraz wątków M:N), więc trochę słabo w zastosowaniach mocno niskopoziomowych gdzie musisz wywoływać kod w C/C++. Poza tym Golang dość mało ekspresywny jest. W Rust takie rzeczy jak serializacja/deserializacja do Jsona robisz dwiema linijkami (derive na struct i potem wywolujesz parse i zrobione), w sumie to w żadnym innym języku nie widziałem tak dobrze rozwiązanej serializacja/deserializacji. Rust ma
Tylko znajomy powiedział mi, że po dłuższym spotkaniu z tym językiem to poza zastosowaniami sieciowymi to gówno totalne.


@BeginEnd, @patrolez: niepopularna opinia: uważam że do sieci tym bardziej gówno i nie rozumiem co ludzie widzą w tym języku. No dobra, może nie gówno, ale Rust ma obsługę sieci i współbieżności zrobioną pod każdym względem lepiej. Go nie gwarantuje wykrycia wyścigów w danych, gorutyny są znacznie cięższe od korutyn w Rust,
#programowanie #gamedev #jezykc
Cześć, ma Ktoś pomysł czemu zapis i odczyt statycznego pliku binarnego nie dziala jak należy hdy używam pół FLOAT? Otóż mój edytor działa na Windowsie (LITTLE-ENDIAN) i zapisuje tutaj plik binarny. Otwieram plik potem w innym środowisku (BIG-ENDIAN). Problem jest taki że gdy dodaje do struktury pliku (statycznej) pole FLOAT to pod Windowsem jest zawsze dobrze, ale w tym drugim środowisku cały plik wczytuje jako śmieci, wszsytkie wartośći sa
@zwei: aha, no i w środku funkcji static oznacza co innego - to, że zmienna ma globalny lifetime. Pomiędzy wywołaniami tej funkcji zmienna zachowa swoją wartość. Np.

void foo () {
  static int x = 0;
  x++;
  printf("%d\n", x);
}

Przy pierwszym wywołaniu będzie 1, przy drugim 2, itd.
@m1chaal: volatile zmusza kompilator do respektowania wszystkich zapisów/odczytów (bez cachowania, zmiany kolejności itd) do danej zmiennej tak jak to jest napisane w programie. Przykładowe zastosowanie to DMA, załóżmy że pod bool* masz wartość, która mówi czy sensor światła coś wykrył. Wartość tej zmiennej zmienia się niezależnie od programu (kompilator nie wie co się dzieje w tle) i w takim przypadku musisz użyć volatile, żeby wszystkie odczyty z tej zmiennej były takie
@ZawzietyRobaczek: Szczerze, w trzeciej dekadzie XXI wieku takie rzeczy powinnien robić kompilator, a nie programista. Serio, gdybym był na Twoim miejscu to:
- porównałbym wygenerowany assembly, żeby sprawdzić czy Twoje zmiany w ogóle coś dały, czy to tylko sztuka dla sztuki
- Zamiast usuwać branche na ślepo, najpierw sprofilowałbym kod. Określił, które kawałki wykonują się nie tylko najdłużej, ale również najczęściej i skupił się na tych fragmentach
Background:

Około 3 lata temu szukaliśmy do projektu senior developera w C do driverów linuxa między innymi. Zgłosiło się kilku kandydatów - z CV widziałem już na wstępie, że raczej nic z tego. Na koniec wpłynęło do nas CV (Polaka, nie zagraniczniaka) przekozaka z eonem lat doświadczenia w C/C++, sporo projektów opensource i też miał własne. Szybki risercz i faktycznie wszystko w CV to prawda. Kandydat 1 na 10^6.


Tak czy siak
@BeginEnd: Proszę:

perl -MFile::Slurp -le'$dir="."; $,="\n"; print sort { read_file($a) cmp read_file($b) } glob("$dir/*.txt");'
Jeżeli ma być bez używania zewnętrznych bibliotek, to:

perl -le'$dir="."; sub r { open($h,"<",shift); return <$h>; } $,="\n"; print sort { r($a) cmp r($b) } glob("$dir/*.txt");'
Wiem, że brzydko, bez kontroli błędów, nie akceptuje parametru (bo to jednolinijkowiec) itd. Ale działa ¯\_(ツ)_/¯
#programowanie #jezykc #gamedev Czołem C-Mireczki, macie pomysł jak zoptymalizować ten kod? Nei ma tu biedy bo jest wykonywany raz na klatkę, ale mnie #!$%@? .. tablice zrobić?

if (player_angle__deg >= 0 && player_angle__deg < 45) fv_cell_slice = 0;
else if (player_angle__deg >= 45 && player_angle__deg < 90) fv_cell_slice = 1;
else if (player_angle__deg >= 90 && player_angle__deg < 135) fv_cell_slice = 2;
else if (player_angle__deg >= 135 && player_angle__deg < 180) fv_cell_slice
Gdzie poszukać ciekawych plykladow kodów w C++? - podejrzewam, że github ( ͡º ͜ʖ͡º)
Zależy mi na nauce programowania embedded pod Linux i chciałbym się przekonać jak daleko jestem w lesie jeżeli chodzi o ten język programowania i zobaczyć czego nie rozumiem i co nadrabiać.

#programowanie #jezykc #cpp #informatyka
@marylin17: pierwsza rada, jeśli dopiero zaczynasz to nie patrz na apki generujące kod (to samo dotyczy zresztą źródeł biblioteki standardowej). Jak już będziesz obyty z semantyką, zobaczysz trochę snippetów wykorzystujących bardziej zaawansowane konstrukcje tego języka to przyjdzie na to czas. Wcześniej tylko się niepotrzebnie zniechęcisz.

Co do zaś samego c++ to to, czego uczą na studiach ma się często nijak do tego, jak się powinno programować korzystając z najnowszych standardów (nawet
#arduino #jezykc

Weźcie mnie trzymajcie, bo nie mam pojęcia co tu się.

void loop() {
  if (Serial1.available()) {
    char c = Serial1.read() & 0xff; // Marna próba ograniczenia tego, co się dzieje
    char buf[0x20] = {0};
    sprintf(buf, "%02x %d %d %d %d", c, sizeof (char), c==0xffdc, c == 0xdc, c == 0xff);
    Serial.println(buf);
  }
}

I cóż dostaję?

ffdc 1 1 0 0
Czyli, wg Arduino, do zmiennej o rozmiarze 1 bajtu
Siemka, mam krótkie zadanie z programowania w języku C (treść: Trzeba stworzyć funkcję, która pobiera dwie liczby typu float i zwraca 0 jeśli liczby są równe z dokładnością 0.1, a -1 jeśli nie są). Będę wdzięczny za pomoc lub podpowiedź :)

#programowanie #jezykc #cpp
#jezykc #programowanie #macos

Robię sobie mały programik i już prawię kończę, więc sprawdzam sobie memleaki, patrzę, a tu ich sporo w procesie potomnym, myślę wtf. No więc drążę dalej i sprawdzam, co siedzi w tych wyciekach. Okazuje się, że to jakieś gówna kernelowe OS_xpc_pipe, OS_xpc_array, gdzieś tam po drodze mój $PATH wypisany.

Teraz pytanie skąd to się bierze? W sensie w necie coś tam piszą, że XPC jest kiepsko napisany
#elektronika #programowanie #jezykc
Wiecie mirki że naczelny Mirek ATNEL.PL robi kurs C na #avr ?( ͡º ͜ʖ͡º) im nasz więcej (przynajmniej 1000 a jest już 807 -na moment gdy o tym piszę ) tym większa szansa że kurs będzie kosztował 280 zł ( ͡° ͜ʖ ͡°)
Mało tego będzie wykorzystywał płytki #arduino w swoich projektach więc dla osób co nie mają zestawów atnel
Pobierz Rade86B - #elektronika #programowanie #jezykc
Wiecie mirki że naczelny Mirek ATNEL.P...
źródło: comment_1655546647NQG4sdzXrxdKfFUOZ03dy2.jpg