Przypominam o istnieniu wykopowego serwera Discordowego dla maniaków inżynierii wszelakiej - programowanie, elektronika oraz druk 3D. Mamy ponad 240 osób, dzielimy się swoimi projektami oraz mamy specjalne kanały dla każdego kto chce prowadzić własny dziennik swojego projektu.

Zapraszamy serdecznie! ( ͡° ͜ʖ ͡°)

https://discord.gg/Tuu6ZQUdSZ <== LINK DO DISCORDA

#elektronika #arduino #mikrokontrolery #druk3d #programowanie #arduino #esp32
sorek - Przypominam o istnieniu wykopowego serwera Discordowego dla maniaków inżynier...

źródło: comment_1623148759A4fxRM8iuHwZtBiOxwO2pE.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@pszemczyslaw: to jest komunikator połączony z czatami, kanałami i innymi genialnymi featurami które pozwalają zarządzać community. W każdym kanale masz przypięte posty i opcje wyszukiwania tak więc nic nie ginie (jak na grupach FB bywa).
  • Odpowiedz
@harnasiek: dużą część jej przeczytałem. Ona jest bardziej encyklopedią wiedzy niż kursem przeznaczonym do nauki. Od stroustrupa była jeszcze inna książka właśnie wycelowana w target początkujących, ale nie pamiętam jaka.
  • Odpowiedz
Cześć,

W programie mam dwa wątki, które pracują na porcie szeregowym (RS485) pod #linux. Jeśli dobrze się orientuję, to na płytce (customowa), którą posiadam jest transmitter, który powoduje, że komunikacja nie jest full-duplex. W związku z czym używam select(), do sprawdzania czy jest możliwy zapis / odczyt. Problem polega na tym, że od czasu do czasu ramka jest źle odczytywana i ucinane są końcowe bajty, choć wiem że urządzenie
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Parseval Dlaczego masz dwa wątki? Select dostaje readfds i writefds, sprawdzasz który jest ready (FDISSET) i wykonujesz daną operację.

Aha, i skoro to linux, to może epoll() zamiast select().

Wtedy podobnie - masz eventy. EPOLLIN | EPOLLOUT. event
wait() daje Ci liczbę eventów i przetwarzasz w pętli tyle ile ich liczba wynosi.
  • Odpowiedz
@printHelloWorld: nawet nie o programowaniu stricte ale o kazdym produkcie. Time to market jest czasem najwazniejszy. Poprawic, naprawic, zmienic cos zawsze mozna pozniej, a szkoda inwestowac ogrom czasu w to na samym poczatku skoro sama idea w sobie moze byc niewypałem

wystarczy popatrzec na wykop, w tym gównie nic nie działa ale userbase juz jest
  • Odpowiedz
stwierdziłem że for fun sprawdze, czy moge zmienić adres zmiennej, nic konkretnego ale chciałem poznać kolejne granice języka #cpp
i pytanie, czemu nie mogę zrobić czegoś takiego:

int x=5;
int y;
&y=&x
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jakie są teraz najlepsze książki dla początkujących z standardem 17/20? Próbuje znaleźć coś ze s20 ale chyba niczego takiego nie ma #cpp #programowanie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hejka Mireczki, jak mogę w bibliotece zapisać coś na samym początku pliku bez podmieniania zawartości? Np.:

int main()
{
FILE* pFile;
pFile = fopen("test.txt", "w");
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pamiętam jak kiedyś chciałem udzielać korków z informatyki i programowania.

Zgłosiła się pierwsza dziewczyna, zakres: podstawy programowania w C++.
Dziewczyna tydzień przed egzaminem przyszła do mnie i myślała, że zdążymy ogarnąć to czego oni się uczyli przez cały semestr.
Jedyne co umiała to:
- zacząć plik c++ od #include
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@trevoz przesadzasz z tymi "dziesiątkami", są osoby, które się po prostu do tego nie nadaja. Obstawiam, że nie wyjaśnił jej nikt o co chodzi w typowo algorytmicznym myśleniu i stąd tego typu problemy i pytania.
  • Odpowiedz
@trevoz na przyszłość jakbyś chciał uczyć to zacznij od schematów blokowych a potem tłumaczenia podstawy prostego programu, opisania go wspólnie co jest czym i po co. Tak wyglądają pierwsze zajęcia informatyki i takie pytania się nie powinny pojawiać już potem
  • Odpowiedz
Czy tylko dla mnie język C++17/20 jest dużo bardziej skomplikowany od Rusta?

Niby wiele elementów w nowszych wersjach służy uproszeniu kodowania, ale i tak patrząc na niektóre otwartoźródłowe projekty w C++ powoduje to, że część kodu jest napisana przy użyciu różnych stylów(niekiedy używany jest unique_ptr a niekiedy zwykły etc.).

#rustlang #cpp
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qarmin: to jest prawda. Niestety każdy projekt w C++ używa własnych konwencji i bibliotek. Do tego większość dużych firm (Google: Abseil, Facebook: folly) mają własne biblioteki standardowe, bo ta z C++ jest stara/niereformowalna/za mała. Rust ma tą zaletę, że jest młody więc nie trafimy na bibliotekę z lat 90 + dostarcza podstawowe building blocki. Każdy w Ruscie wie, że do opcjonalnych wartości używa się Opt czy read only stringi przepycha
  • Odpowiedz
@qarmin: No jest. C++ ma 40lat bagażu, zachowuje kompatybilność wsteczną i ma filozofie by pozwalać na wszystko programiście nawet jak ten chce się z---------ć.

Rust ma przemyślany design, wychodzi z słusznego załozenia że większość programistów to idioci i nawet taki feature jak domyślne argumenty funkcji czy przeciążanie to w ich rękach niebezpieczne narzędzie, wymusza dobre praktyki przez statyczną analizę kodu i zazwyczaj jest jest sposób na zrobienie czegoś poprawnie. O
  • Odpowiedz
Zastanawiam się, czy robi się taką paranoję, żeby rozdzielać funkcje kopiujące/przesuwające elementy gdzieś do kontenera lub do zwykłego pola struktury na osobne funkcje dla prostych typów (np. int), które przyjmują parametr zawsze przez kopię i na funkcje, które przyjmują "cięższe" obiekty przez forwarding reference? Jak patrzyłem na prototyp np. vector::push_back() to czegoś takiego chyba tam nie ma.

  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Feargan: bez sensu, jak masz konstruktor w headerze to i tak optymalizator zoptymalizuje konstruktor w miejscu wywołania. To co zyskujesz to zwiększony czas kompilacji. Jako programista C++ powinieneś patrzeć na ten aspekt, bo łatwo takim # include zarazić cały codebase
  • Odpowiedz
@Feargan: Ano tak. Z prymitywami nie ma się co tak szczypać, kopiowanie 64bitowego wskaźnika na 64 bitowej architekturze nie musi być wolniejsze od kopiowania 32 bitowego inta.
  • Odpowiedz
Potrzebuję zrobić w CPP ekwiwalent funkcji console.log() albo var_dump()...

Zastanawiam się jak dokonać konwersji tablicy wartości o zakresie uint8 do tablicy znaków reprezentujących te wartości.

> wartość 128 do "128".


Najlepiej
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Iribell: Trochę pogrzebałem, jeśli rozumiem o co ci chodzi to działa coś typu

std::array b = {rational(1), rational(2), rational(3)};
ale poza tym inny problem zauważyłem w funkcji rational& operator/= - wymuszasz tam żeby licznik nie był zerem, a zgaduję, że chodziło o mianownik
  • Odpowiedz
@mad_disinhibition: ucz się tylko Javy. C++ jest trudniejszy i bardziej upierdliwy pod względem toolingu. A jak to musi być C++ to najlepiej naucz się najpierw tego języka a potem Javy.
  • Odpowiedz
Cześć,

Mam program, który posiada część real-time i non-real-time. Używam systemu czasu rzeczywistego Xenomai (pod #linux). Sam Xenomai ma wrappery dołączane linkerem, które nadpisują wszystkie klasyczne funkcje linuxowe. Mój program składa się z wielu bibliotek z czego jedna powinna mieć owrappowane funkcje. Niestety dołączenie flag linkera dla tej biblioteki powoduje owrappowanie funkcji całego projektu. Co robię źle, że nie zostaje to rozdzielone?

CMake dla tej biblioteki: https://pastebin.com/qsFwmBgV
Część CMake projektu - dołączenie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach