🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #310132

Re: Coroutines w (GNU) C

#310132
From: (fir)
Date: Mon, 03 Feb 2020 15:49
146 lines
9885 bytes
W dniu poniedziałek, 3 lutego 2020 12:58:37 UTC+1 użytkownik Piotr Gałka napisał:
> W dniu 2020-02-02 o 00:00, M.M. pisze:
> 
> >> No i dotychczas zawsze było, że oprócz tego mamy do zrobienia 'na
> >> wczoraj' jeszcze kilka rzeczy i na pewno teraz nie możemy opóźniać.
> >> Takich zaplanowanych, różnych skoków technologicznych do wykonania mamy
> >> jeszcze kilka. Do niektórych powstał nawet hardware i czeka od 4 lat aż
> >> znajdziemy na to czas.
> > 
> > A jakby kogoś zatrudnić, albo wynająć z zewnętrznej firmy, kto ma wyczucie
> > kompilatora C++
> 
> Chyba nie zdajesz sobie sprawy ile to by było komplikacji na wstępie i 
> później jakby trzeba było coś w tym poprawić.
> 
> C++ uczyłem się w 92 z ksera oryginału książki Stroustrupa. Jak w 93 
> ukazało się polskie tłumaczenie przeczytałem jeszcze raz.
> Na tej podstawie napisałem w C++ makro assembler'51 i coś mnie podkusiło 
> (ambicja), że koniecznie muszę go przerobić na jednoprzebiegowy (nie 
> załapałem, że to miało sens gdy źródło było na tasiemce perforowanej a 
> gdy źródło jest na HDD to co za problem przeczytać kod jeszcze raz). 
> Konieczność przechowania różnych danych do drugiego przebiegu zjadała 
> pamięć i natknąłem się na problemy przy dłuższych źródłach (PC miał 640k 
> RAMu). Przeciążenie operatora new pozwoliło mi wydłużyć assemblowane 
> źródło 2x.
> Dopóki używaliśmy 51-ki brat korzystał wyłącznie z mojego assemblera bo 
> inne się wykładały na wyliczeniach danych do ustawiania UARTa z 
> częstotliwości zastosowanego kwarca (liczyły na 16 bitach a ja na 32).
> 
> Uważam, że mam wyczucie C++ (w wersji z tamtych czasów), ale 
> programowaniem zajmuję się tydzień/dwa w roku więc ... nie nadążam za 
> nowymi standardami. Poza tym używam nadal głównie C++ Buildera 5 (on też 
> nie nadąża :) ).
> Mam też Buildera 2010. Pewnie bym się przeniósł gdyby nie jego fjuczer - 
> tylko raz daje się uruchomić po jednym resecie komputera. Znalazłem w 
> sieci jakieś obejścia do tego, ale nie miałem wystarczającej presji aby 
> je wdrażać.
> 
> W związku z treścią dyskusji właśnie przeszukałem wszystkie moje *.h w 
> poszukiwaniu void* i wyskoczył mi tylko ten mój assembler z 1996r. 
> Pewnie przeciążenie operatora new tego wymagało.
> 
> Nigdy nie nauczyłem się korzystać z zewnętrznych bibliotek.
> AES, CMAC, HMAC, SHA napisałem sobie sam (w C++).
> Moje źródło zawierające:
> - CRC32,
> - AES128,
> - AES256,
> - szyfrowanie tymi AES w trybie CTR (counter),
> - CMAC,
> - SHA256,
> to jedynie 87 linijek h i 268 liniej cpp (ale może nie być przenoszalne 
> do środowiska o odwrotnym ułożeniu bajtów, choć nie jestem tego pewien).
> Jakby ktoś chciał mogę zapodać.
> 
> > i mniej/więcej wie jak zaimplementować, albo jakie
> > eksperymenty przeprowadzić, aby uzyskać dany efekt?
> 
> Każdy nasz program wymaga ciągłego rozwoju, a czasem natychmiastowej 
> interwencji (zdarzało nam się siedzieć w pracy do 4-ej rano).
> Musiałby to być ktoś na stałe i o takiej samej dyspozycyjności jak my.
> 
> > W niektórych firmach
> > odpowiadali mi, że głównym problemem jest ryzyko z wdrażania nowej osoby.
> 
> Ryzyko i czas, czas, czas.
> 
> > Co u Was uniemożliwia zwerbowanie dodatkowych mocy przerobowych - jeśli mogę spytać?
> 
> Dzień wolności podatkowej, który w Polsce przypada pod koniec czerwca, a 
> w USA w połowie kwietnia. To jest czynnik, który tam pozwala małym 
> firmom się rozwijać, a u nas je zabija.
> 
> Poza tym nie jesteśmy pełną gębą biznesmenami i bycie człowiekiem 
> stawiamy wyżej od rachunku ekonomicznego (pracownikom od montażu zawsze 
> płaciliśmy bliżej średniej niż minimalnej).
> Kryzys 2008 dopadł nas w 2010 (i trzymał do 2015). Biorąc kolejne 
> kredyty udało nam się nie zwolnić żadnego pracownika choć nie mieliśmy 
> dla nich roboty. Jeszcze się nie wygrzebaliśmy, a tu już się szykuje 
> kolejny kryzys :(
> 
> Poza tym.
> Nasze dotychczasowe kontakty z firmami ściśle softwareowymi każą nam 
> przyjmować, że większość programistów nie umie myśleć o ograniczeniach 
> sprzętu.
> 
> Przykład z ostatniego miesiąca.
> Brat coś grzebie w kontrolerze korzystając po stronie PC z 
> oprogramowania jednej z takich firm. Coś zmienia w ustawieniu kart i 
> klika jakiś przycisk w stylu "Uaktualnij dane w kontrolerze". W 
> kontrolerze ma 5 kart więc uaktualnienie to powinny być jakieś ms więc 
> od razu sprawdza, czy działa - nie działa to klika jeszcze raz i jeszcze 
> raz. Na ekranie żadnej informacji, że trwa jakiś proces więc wydaje się, 
> że program uważa, że zrobił co trzeba. Przyczyną nie było to co napiszę 
> dalej ale przy okazji prześledzenie komunikacji ujawniło, że oni w 
> takiej sytuacji zamiast wysłać 2 rozkazy:
> - wpisz te 5 kart,
> - wykasuj karty od 6 do 32000.
> robią:
> - usuń kartę 1,
> - wpisz kartę 1,
> ....
> -usuń kartę 32000,
> -wpisz puste dane dla karty 32000.
> I kolejne naciśnięcia klawisza wstawiały w kolejkę kolejne takie procesy.
> 
> To jakaś kpina.
> Rozkaz wpisz karty, gdy dane są zgodne z zawartością nie zużywa flasha 
> bo najpierw jest sprawdzane, czy dane są zgodne.
> Rozkaz wpisujący wszystkie karty danej strony wymaga tylko jednokrotnego 
> jej przeprogramowania.
> Ale rozkaz skasuj kartę (która jest) wymaga przeprogramowania strony 
> flash. Potem wpisanie tych samych danych w to samo miejsce - znów.
> Nie wiem ile kart jest na stronie, ale jeśli np 30 to taka procedura 
> powoduje konieczność 60 krotnego przeprogramowania flash (zamiast 
> średnio 0.5 raza (0 lub 1 raz)).
> Kontroler, który załóżmy powinien przeżyć 30 lat, zużyje się 120 razy 
> szybciej - czyli po 3 miesiącach.
> Gdybym nie wiedział, że głupota pomyślałbym, że sabotaż.
> 
> Pomysł 'my robimy hardware' firma softwareowa robi oprogramowanie na PC 
> (bo zrobi to na pewno lepiej od nas) mieliśmy w okolicy +- 1997. 
> Przepytaliśmy pod tym kątem wszystkie firmy softwareowe na Infosystemie 
> - absolutne zero zainteresowania. Nie chcieli bawić się z hardware. 
> Pisali wtedy programy typu kosztorysowanie budowlanki, czy zarządzanie 
> aptekami - więc pomysł upadł.
> 
> W okolicy 2014 zgłosiło się da nas kilka firm softwareowych, że chcieli 
> by mieć sprzętową kontrolę dostępu, rejestrację czasu pracy, czy podobne 
> zagadnienia dobrze zintegrowane z ich oprogramowaniem.
> Opracowaliśmy więc system pod takim kontem.
> Współpracę utrudnia to, że o komunikacji rozmawiamy innymi językami :)
> Oni mają problem się dostosować do nas, a my nie jesteśmy w stanie się 
> dostosować do nich.
> 
> A to, że jesteśmy nadal w Xmega a nie w jakimś linuxie to ....
> Firma przeprowadzająca audyt bezpieczeństwa nie była w stanie w żaden 
> sposób się wpiąć w naszego RS485, czy dobrać do komunikacji z serwerem. 
> Jedyne co zasugerowali to zablokowanie strony www kontrolera po 
> instalacji bo np. ataki przez przepełnienie bufora.
> Odpisaliśmy, że z tego co wiemy to taki atak może być skuteczny tylko, 
> gdy program jest wykonywany z RAMu - więc nie u nas. Nie wiem, czy 
> blokujemy to www, czy nie - to brat pisze.
> P.G.

to szkoda ze tak malo zarabiecie.. o ile dzis programistom placi sie przyzwoicie to wgladaloby ze i firmom powinno sie plaic przyzwoicie, wiec to troche chyab dziwi ze tak kiepsko w takim biznesie
Technical Details
Message-ID: <513ad964-d7a6-4a0e-a81d-af289c212fbc@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <4375b52d-ba21-462a-8844-9bd1a02e9ece@googlegroups.com> <r0n95e$35l$1@dont-email.me> <f3df206c-11d4-4b22-87ff-fc7aa00935f3@googlegroups.com> <r0nevq$9iq$1@dont-email.me> <ecae4ae1-0b06-4956-8df0-593fa0f1cd01@googlegroups.com> <r0njjv$740$1@dont-email.me> <0e0786af-7b58-4070-b8cd-81f1bda1f432@googlegroups.com> <r0q9iv$23b$1@dont-email.me> <20200128233003.4bf9d9eb@mateusz> <1a207604-09fa-43f2-8d0a-e3ff51b183f4@googlegroups.com> <r0sf4i$d46$1@dont-email.me> <c9ada043-010e-41c1-8362-385fcab97fbb@googlegroups.com> <r0sm9p$r2m$1@dont-email.me> <35023603-9392-414e-9ad2-dfb5ddf4a850@googlegroups.com> <r0t1ne$3re$1@dont-email.me> <91b73c11-aadd-4e8f-9a1b-a3ea1da6adc3@googlegroups.com> <r0vipi$i8e$1@dont-email.me> <2c5f15fd-b0c0-466f-8961-a3e5b291657e@googlegroups.com> <r11uhf$6bf$1@dont-email.me> <a5b8d9cc-7cdf-467f-abc0-d91489d80a8e@googlegroups.com> <r13bkl$s0k$1@dont-email.me> <r13pgb$p54$1$PiotrGalka@news.chmurka.net> <501d4b3c-2464-4181-8f5d-376b1da7d5b6@googlegroups.com> <r191ta$mh$1$PiotrGalka@news.chmurka.net>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:4ed3:: with SMTP id c202mr23637818qkb.219.1580744957869;        Mon, 03 Feb 2020 07:49:17 -0800 (PST)
X-Received: by 2002:a25:c686:: with SMTP id k128mr19958876ybf.73.1580744957646; Mon, 03 Feb 2020 07:49:17 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Mon, 3 Feb 2020 07:49:17 -0800 (PST)
In-Reply-To: <r191ta$mh$1$PiotrGalka@news.chmurka.net>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=5.172.255.186; posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.186
References: <4375b52d-ba21-462a-8844-9bd1a02e9ece@googlegroups.com> <r0n95e$35l$1@dont-email.me> <f3df206c-11d4-4b22-87ff-fc7aa00935f3@googlegroups.com> <r0nevq$9iq$1@dont-email.me> <ecae4ae1-0b06-4956-8df0-593fa0f1cd01@googlegroups.com> <r0njjv$740$1@dont-email.me> <0e0786af-7b58-4070-b8cd-81f1bda1f432@googlegroups.com> <r0q9iv$23b$1@dont-email.me> <20200128233003.4bf9d9eb@mateusz> <1a207604-09fa-43f2-8d0a-e3ff51b183f4@googlegroups.com> <r0sf4i$d46$1@dont-email.me> <c9ada043-010e-41c1-8362-385fcab97fbb@googlegroups.com> <r0sm9p$r2m$1@dont-email.me> <35023603-9392-414e-9ad2-dfb5ddf4a850@googlegroups.com> <r0t1ne$3re$1@dont-email.me> <91b73c11-aadd-4e8f-9a1b-a3ea1da6adc3@googlegroups.com> <r0vipi$i8e$1@dont-email.me> <2c5f15fd-b0c0-466f-8961-a3e5b291657e@googlegroups.com> <r11uhf$6bf$1@dont-email.me> <a5b8d9cc-7cdf-467f-abc0-d91489d80a8e@googlegroups.com> <r13bkl$s0k$1@dont-email.me> <r13pgb$p54$1$PiotrGalka@news.chmurka.net> <501d4b3c-2464-4181-8f5d-376b1da7d5b6@googlegroups.com> <r191ta$mh$1$PiotrGalka@news.chmurka.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <513ad964-d7a6-4a0e-a81d-af289c212fbc@googlegroups.com>
Subject: Re: Coroutines w (GNU) C
From: "(fir)" <profesor.fir@gmail.com>
Injection-Date: Mon, 03 Feb 2020 15:49:17 +0000
Lines: 218
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit