Re. Pytanie do serwisantów.

W dniu 2016-08-24 o 09:03, Piotr Gałka pisze:

Spróbuj wrzucić nawet uproszczony stos IP albo obsługę USB i wyrobić się w jakimś rozsądnym czasie. Ale oczywiście do wszystkiego należy podchodzić z rozsądkiem. Ja sobie postanowiłem przypomnieć programowanie (przez bardzo długi czas nie bawiłem się, tylko gadałem z programistami, ale jakoś tak...) no i pierwsze zderzenie - gotowiec mrugający ledem wymaga 8kB pamięci danych... No właśnie - jakaś p...na biblioteka. Sam program króciutki dzięki temu, ale na dobrą sprawę zero edukacji i kobyła wychodzi.

Pozdrawiam

DD

Reply to
Dariusz Dorochowicz
Loading thread data ...

Użytkownik "Dariusz Dorochowicz" <_dadoro snipped-for-privacy@wp.com napisał w wiadomości news:npjrqq$dcp$ snipped-for-privacy@node2.news.atman.pl...

A pamiętam czasy, gdy upychając kod aby się zmieścił bratu udało się kilkanaście bajtów zaoszczędzić dzięki skokowi do drugiego bajtu rozkazu. P.G.

Reply to
Piotr Gałka

W dniu środa, 24 sierpnia 2016 09:03:05 UTC+2 użytkownik Piotr Gałka napisał:

Bo to paranoja a nie standard. Tak akurat działa środowisko javascriptowe. Dosyć specyficzna grupa ludzi i programów.

To dziś dosyć specyficzne podejście. Ma zastosowanie zazwyczaj jak programista jest dobry i mu sie nie spieszy. W praktyce dosyć rzadkie w projektach komercyjnych. W projektach opensourcowych też rzadkie ale takie projekty starają się korzystać z sensownie budowanych bibliotek. Np. z fundacji apache.

Deficyt czasu i wiedzy. I pośrednio pieniędzy.

Bo można zmontować relatywnie dobrze działający program mający wiele możliwości nie znając się na całym świecie.

Dam ci przykład: Budujemy program wczytujący dane z jakiejś strony, parsujący je i wysyłający w bazę. Następnie generujący jakieś raporty z tego i wysyłający jakieś alerty do innego systemu - zaszyfrowane kluczem który ktos ci da.

I oczywiście można tego dokonać w perlu, C, javie i paru innych językach/środowiskach.

Ale dziś najszybciej i relatywnie dobrze zrobisz to w javie korzystając z paru bibliotek apache. I jak strona trzecia da ci "nagle" nowy klucz w innym formacie to nie musisz dopisywać nowego kodu. Biblioteka to zrobi sama. Za darmo i raczej bezbłędnie.

Zamiast zatrudniać mało popularnego faceta który zna sie na tcp, ssl, C, SQL, obsłudze bazy na poziomie API i podobnie niezwiązanych ze sobą rzeczy i kazać mu pisac procedury obsługi http/https, kontaktów z bazą, wyciągania datasetów, szyfrowania ssl zatrudniamy kumatego gostka który wie że są biblioteki do tego, wie jak ich użyć (nietrywialna sprawa) i on mam to zrobi szybko.

To powyższe to truizmy ale skoro pytasz to taka jest odpowiedź.

Ty lubisz robiś samemu i zgrabnie. I to jest ok. Ale nie każdy tak umie lub może. Z drugiej strony ktos kto nie ma talentu do drobiazgów też może być dobrym programistą i produkować dobry kod korzystając z wiedzy osób takich jak ty. Za pomocą bibliotek.

Reply to
sczygiel

W dniu wtorek, 23 sierpnia 2016 20:16:41 UTC+2 użytkownik Mario napisał:

Bylo/jest tego więcej:

formatting link

Reply to
sczygiel

Czytając to co napisałeś można odczuć (pewnie mylne) wrażenie, że nie oprogramowałeš nigdy nic bardziej skomplikowanego od przysłowiowego migania ledami. Dzisiaj 95-99% kodu to bibliotek a pozostała reszta to wartość dodana "user space". Spróbuj bez bibliotek napisać na mcu wielozadaniowy kod, komunikujący się po tcpip, usb i z dowolnym fsem. Ciekawe ile czasu Ci to zajmie.

Ze dwa lata temu pisywał tu partyzant od programowania mipsów w asemblerze (to taki podobny przypadek do tych co nie uznają bibliotek). Że on wszystko tylko w asemblerze nie w żadnym C czy C++ bo to języki dla lamerów piszących niewydajny kod. W jakieś z nim dyskusji doszło do propozycji by napisał w asm usb host+msd, niech świat zadziwi. Nie odzywa się do dziś, pewnie ciągle to pisze.

Reply to
Marek

Pan Piotr Gałka napisał:

Peter Norton w pakiecie "Norton Utilities" zawarł plik beep.com. Zauważył, że twórcy DOS-a nie przewidzieli prostej metody robienia "beep" w plikach wsadowych, więc napisał własny program do tego. Miał długość 9 bajtów. W pliku README (oczywiście większym niż opisywany software) napisał, że w tym kodzie udało mu się zawrzeć nawet zapis copyrightu -- tak się złożyło, że plik programu oglądany jako ASCII zawierał ciąg znaków "PN".

Na początku na XT faktycznie było ciężko. Potem trafiłem na program, który potrafił w locie zmieniać wielkość ramdysku, tworzyć go sobie w razie potrzeby. To już było na AT, gdzie do wykorzystania była pamięć powyżej

640k, ale na XT też działał.
Reply to
invalid unparseable

Użytkownik snipped-for-privacy@gmail.com napisał w wiadomości news: snipped-for-privacy@googlegroups.com...

Żałuję, że ja nie wiem jak ich użyć, ale nie będę teraz o to męczył (szczególnie, że nietrywialne :) ). Myślałem, że użycie biblioteki polega na tym, że się ją kupuje, studiuje jej dokumentację i potem używa. Podejrzewałem, że mogą być jakieś darmowe (być może wątpliwej jakości, a może wręcz odwrotnie), które skądś można pobrać. Ale że używa się bibliotek leżących gdzieś tam, gdzie nie wiadomo kiedy ktoś może coś zmienić (i wszystko co zostało sprawdzone że działa w zasadzie powinno wymagać sprawdzania od nowa) to dowiedziałem się dopiero niedawno z tego artykułu. A że to nie kilka osób tylko tam chyba było o kilkudziesięciu tysiącach aplikacji (nie czytałem teraz), które przestały się kompilować to dla mnie szok do kwadratu. P.G.

Reply to
Piotr Gałka

Użytkownik "Marek" snipped-for-privacy@fakeemail.com napisał w wiadomości news: snipped-for-privacy@news.neostrada.pl...

Wcale nie tak bardzo mylne. Oprogramowałem trochę więcej (ale nigdy na mikrokontrolery), ale to było dawno (internet raczkował). Co skomplikowanego można oprogramowywać, jak od lat na programowanie poświęca się tydzień do trzech tygodni w roku? Gdzieś od 1998 piszę tylko programiki służące do sprawdzenia czegoś u nas a prawie nic "dla ludzi", a jak nawet "dla ludzi" to są to bardzo prymitywne programiki służące do konfigurowania czegoś i koniec. Poświęcenie czasu na "bycie na bieżąco" spowodowało by, że nie byłoby czasu na te programiki więc nie jestem na bieżąco :(.

W mikrokontrolerach dopiero niedawno rozmiary Flash (w funkcji ceny) pozwalają chyba na takie podejście

W naszych urządzeniach (to brat, nie ja) nie ma bibliotek i jest USB, ale tcpip załatwia scalak, który realizuje stos - czyli równoważnik użycia biblioteki.

Siła przyzwyczajenia. Mój brat piszący "od zawsze" w assemblerze dopiero jakieś 5 lat temu dał się namówić na C. Ale (choć do assemblera już by nie wrócił) to nadal często się zżyma, że kompilator jakoś nieoptymalny kod wytwarza (szczególnie jak on coś na bajcie a ten mieli ciągle tan drugi bajt zerując go przy każdej okazji). Tak się złożyło, że jak ja kończyłem studia to jeszcze nie było prac dyplomowych z programowaniem mikrokontrolera (ja robiłem coś na Merze 400), a jak dwa lata później kończył mój brat to już były (Z80) i nie było szansy inaczej jak w assemblerze no i są skutki :) P.G.

Reply to
Piotr Gałka

Użytkownik "Jarosław Sokołowski" snipped-for-privacy@lasek.waw.pl> napisał w wiadomości news: snipped-for-privacy@falcon.lasek.waw.pl...

Na etapie AT już chyba nie było komputerów bez HDD. Potrzeba robienia ramdysku wydaje mi się w takiej sytuacji już znikoma. P.G.

Reply to
Piotr Gałka

W dniu środa, 24 sierpnia 2016 14:17:59 UTC+2 użytkownik Piotr Gałka napisał:

IMHO na Twoim poziomie to raczej trywialne. biblioteki z fundacji apache są dobrej jakości, przetestowane i relatywnie warte zaufania. Korzystaja z nich rzesze ludzi.

No z grubsza tak jest. Kupowanie - sciągnięcie za darmo bo projekt jest opensource i finansowany przez organizacje trzecie. Studiowanie - dokumentacja jest i relatywnie dobra. Korzystanie - dogrywa się je do programu wedle uznania.

W efekcie rzeczywiście program troche grubnie i są elementy biblioteki których nie wykorzystujemy ale za to kod który tam jest jest relatywnie dobrej jakości i zadanie jest wykonane.

Biblioteki są podzielone na "tematy" więc wciągając biblioteke do obsługi csv nie musimy wciągać tej od logowania.

formatting link

Dla javy jest sporo tutaj:

formatting link
Dla C też troche jest:
formatting link
Ale ich jakość może się różnić między sobą. Różnie może sie trafić.

Bo to jest patologia javascriptowców. U nich jest dosyć duży bajzel i dlatego takie kwiatki sie trafiają.

Bo tam akcja byla taka że gostek miał prostą biblioteczkę na pare linii. I ona była wykorzystana w bibliotece matematycznej. Takiej grubszej i wykorzystywanej powszechnie.

Jak faceta od tej małej zaszczuto to on swoją biblioteke z tego repozytorium skasował. I ci co korzystali z tej matematycznej nie mogli sciągnąć tej małej i wszystko sie sypnęło.

Ale sypnięcie nie jest problemem. Bo te pare linii można sobie lokalnie wbudować w biblioteke i wszystko wróci do normy. Problemem jest to że ludzie bezmyślnie korzystają z tego co dostają. Czyli to co Ciebie tak bardzo dziwi.

Reply to
sczygiel

Pan Piotr Gałka napisał:

Były, znałem kilka takich przypadków. Nie licząc komputerów w sieci, bo takich widywałem dziesiątki albo setki.

Ja odczuwałem różnicę. Wetknięcie tam command.com i paru innych rzeczy sprawiało, że system stawał się bardziej responsywny. A brak responsywności dokucza mi bardziej od małej szybkości pracy systemu.

Reply to
invalid unparseable

Jest rok 2016. Dobre biblioteki to takie które są Open Source, sensownie licencjonowane, mają stabilny interfejs i można ich względnie prosto użyć.

Gdzie ich szukać? Jest rok 2016, użyj Google. .

Reply to
slawek

takie coś: Stream kodujRamkęKluczem( Stream _in, Kay klucz); int128_t dawajCRC( Stream _stream, int _size ); Command sparsujRamke( Stream _ramka ) throw StrasznyBlad; Stream wygenerujRamke( Command _komenda );

Ale nie takie coś: void zrobWszystkoAMyTylkoZrobimyOkienkaZPrzyciskami(void);

Zadaniem API do sprzętu jest obsługiwać jeden sprzęt i nie przekreślać mozliwości obslugi wielu. Aplikacja zajmie się wielozadaniowością bo może mieć ona wiele interesujących cech wysokopoziomowych jak choćby wybór technologii (preemptive/cooperative/event driven).

Reply to
Sebastian Biały

Użytkownik "Piotr Gałka"

Widziałem to kiedyś, ale czytałem z wielkim zadziwieniem.

Zdecydowanie nie jestem programistą, ale jak już piszę jakiś programik to w zasadzie nigdy nie używam żadnych bibliotek. Raz miałem program używający jakiejś biblioteki (ktoś mi usiadł na komputerze i wstawił aby działało) to zaraz zacząłem żmudnie pisać wszystko samemu, aby pozbyć się biblioteki (traktując to jako naukę) i mi się udało. Patrząc na innych przez pryzmat siebie wydawało mi się, że nikt nie lubi mieć obcego kodu (wiem kompilator, i to co dostarcza środowisko też są obcy) więc nie rozumiałem jak można polegać nie dość, że na czymś obcym to jeszcze leżącym gdzieś tam. Nie mieściło mi się w głowie że są tacy ludzie co tak robią. A tu się okazuje, że nie tylko istnieją (czyli co najmniej jeden), ale że jest ich całkiem sporo.

Wiecie może, jaka jest tak na prawdę przyczyna takiej, według mnie karygodnej, niefrasobliwości?

Reply to
re

Użytkownik "slawek"

...

Jeżeli program w C# da "exeka" 50 kilobajtowego, to dochodzi do tego jeszcze sam dotnet plus maleństwo zwane Windows.

Reply to
re

Użytkownik "Piotr Gałka"

Żałuję, że ja nie wiem jak ich użyć, ale nie będę teraz o to męczył (szczególnie, że nietrywialne :) ).

Reply to
re

Użytkownik "Piotr Gałka"

...

W naszych urządzeniach (to brat, nie ja) nie ma bibliotek i jest USB, ale tcpip załatwia scalak, który realizuje stos - czyli równoważnik użycia biblioteki.

Reply to
re

Użytkownik snipped-for-privacy@gmail.com napisał w wiadomości news: snipped-for-privacy@googlegroups.com...

formatting link

formatting link

Dziękuję. Zapisałem sobie wszystkie informacje (mam już prawie 4 strony "najważniejszych rzeczy z tej dyskusji") i jak posortuję to stopniowo (w wolnych chwilach) sobie pooglądam.

Ja normalnie to idę jeszcze o krok dalej (albo bliżej, zależy z której strony się patrzy). Jeszcze nie napisałem programu (programiku), który wymagałby instalacji - zawsze jest to exe, które zawiera w sobie wszystko (czyli jak za dobrych DOSowych czasów :) ). Według mnie kiedyś (gdy HDD były małe i RAMu nie za dużo) dll-e miały głęboki sens, ale obecnie nie widzę problemu, czy moje exe jest o 1, czy nawet 5M większe, czy mniejsze, gdy jest to różnica o 1 zdjęcie z wakacji. Wydawało by się, że nie dotyczy to olbrzymich aplikacji, ale z drugiej strony, na ile to rozumiem, to oszczędność będzie tylko wtedy, gdy na komputerze będzie chodziła też druga aplikacja korzystająca akurat z tego samego dll-a. Czy to jest tak częsty przypadek. Może i jest ale jak dotyczy tylko jednego, czy kilku dll-i to pewnie i tak oszczędność niewielka. P.G.

Reply to
Piotr Gałka

Użytkownik "Jarosław Sokołowski" snipped-for-privacy@lasek.waw.pl> napisał w wiadomości news: snipped-for-privacy@falcon.lasek.waw.pl...

A z polskiego na nasze, to co to oznacza? :) P.G.

Reply to
Piotr Gałka

Użytkownik "slawek" snipped-for-privacy@fakeemail.com napisał w wiadomości news: snipped-for-privacy@news.v.pl...

Nigdy dotychczas nie interesowałem się bibliotekami więc nie szukałem. Podejrzewam, że jakbym szukał biblioteki marki biblioteka to dostanę tysiące trafień w których zginę. Znacznie prościej jest od kogoś życzliwego dowiedzieć się - praktycznie używa się tych 5 źródeł z bibliotekami i tyle w temacie.

Szczerze mówiąc doskonale wiedziałem, że są projekty Open Source, ale jakoś miałem zatrzaśniętą klapkę, że to są projekty gotowych aplikacji i nie przyszło mi do głowy, że takie "niedokończone rzeczy" jak biblioteki też mogą być projektem Open Source. P.G.

Reply to
Piotr Gałka

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.