-
81. Data: 2016-08-25 10:14:24
Temat: Re: Re. Pytanie do serwisantów.
Od: Jarosław Sokołowski <j...@l...waw.pl>
Pan Piotr Gałka napisał:
>> Ja odczuwałem różnicę. Wetknięcie tam command.com i paru innych
>> rzeczy sprawiało, że system stawał się bardziej responsywny.
>
> A z polskiego na nasze, to co to oznacza? :)
Responsywny system szybko reaguje na polecenia. A potem wykonuje
je w swoim tempie. Możemy sobie wyobrazić komputer z zegarem 4 GHz
i DOS-em uruchomionym z dyskietki. Wydajemy mu jakieś *zewnętrsne*
polecenie, a on majestatycznie rozpędza plastik, czyta porozrzuzene
sektory chrobocząc głowicą, aż w końcu w okamgnieniu wykona co
od niego chcieliśmy. Komputer z zegarem 12 MHz, ale korzystający
z ramdysku, zareaguje kilkaset razy szybciej, a wykona kilkaset
razy wolniej. Z tym że to "wolniej" może być dla człowieka
niezauważalne. A "szybciej" -- wręcz przeciwnie. Dla mnie nawet
różnica między HDD i ramdyskiem była odczuwalna w normalnej (dla
mnie) przcy z komputerem.
Mniej lub bardziej responsywne są nie tylko komputery. Samochodów
też to dotyczy. Statek pełnomorski jest bardzo mało responsywny,
choć potrafi całkiem szybko pomykać przez oceany. Z ludźmi również
tak jest. Jednych trzeba prosić miesiącami, ale jak im zaskoczy,
to uwijają się żwawo. Inni od razu reagują "już lecę", a potem
rok grzebią się z robotą.
Jarek
--
Transatlantyki na oceanach
A krążowniki w rejsach ćwiczebnych
Każdy z nich musi mieć kapitana
Nasz kapitan też jest potrzebny
-
82. Data: 2016-08-25 10:28:36
Temat: Re: Re. Pytanie do serwisantów.
Od: Piotr Gałka <p...@c...pl>
Użytkownik "Sebastian Biały" <h...@p...onet.pl> napisał w wiadomości
news:npkavv$thb$1@node1.news.atman.pl...
>> Co programiści rozumieją pod pojęciem API dla danego sprzętu?
>
> 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)
;
>
:))))
Umiesz żartobliwie i dosadnie przekazać informację trafiając jednocześnie w
sedno.
Na pewno znacznie lepiej teraz rozumiem co to jest API.
Wydaje mi się, że ten (przydługi) wątek powoli wygasa.
Korzystając z okazji (celowo w odpowiedzi na post Sebastiana, który poza
grupą odpowiedział mi też na kilka jeszcze głupszych pytań, które wstyd
byłoby mi zadać na forum) dziękuję wszystkim, którzy odpowiadali na moje
pytania.
Dla przypomnienia jak wątek "Pytanie do serwiasntów" stał się wątkiem o
językach i bibliotekach:
- chodziło o wyrwane złącze i serwis,
- ktoś napisał, że dobrym rozwiązaniem byłoby umieszczeni złącza odpowiednio
głęboko,
- inny ktoś napisał, że widział takie rozwiązanie, ale tylko w jednym
przypadku,
- ja się pochwaliłem, że już w 1995 roku przerabiając DSM-51 na
"Idiot-proof" tak umieściliśmy złącze zasilania DC,
- na to była reakcja: "To ty jesteś ten od Piccolo, co nie przerobił na czas
programu DOS na Windows".
- tłumacząc się, że w tym czasie nie miałem ani wiedzy, ani narzędzi,
napisałem między innymi coś w stylu, że nie jestem informatykiem ani
programistą i z komputerami miewam problemy tam, gdzie dla innych wszystko
jest proste i oczywiste,
- na to Sebastian: pytaj, pomożemy.
- a że akurat miesiąc temu zderzyłem się z sytuacją, że jakaś firma
informatyczno/programistyczna potrzebowała by od nas coś więcej niż tylko
protokół komunikacji, i wiem, że Sebastian jest dobry w te klocki to nie
omieszkałem wykorzystać takiej oferty no i już jesteśmy w dll-ach.
Jeszcze raz dziękuje i pozdrawiam Wszystkich,
co nie znaczy, że jak ktoś się jeszcze odezwie to przestaję odpowiadać :)
P.G.
-
83. Data: 2016-08-25 10:47:02
Temat: Re: Re. Pytanie do serwisantów.
Od: Piotr Gałka <p...@c...pl>
Użytkownik "re" <r...@r...invalid> napisał w wiadomości
news:npkf9e$538$1@mx1.internetia.pl...
> A niby jak miałoby to działać ? Ale nie wiem czy odkryłeś już systemy
> wersjonowania kodu :-)
Obiło mi się, ale spokojnie można powiedzieć, że nie odkryłem :)
> że można po prostu cofnąć się do ostatniej pasującej wersji biblioteki.
Ale to było na temat tego artykułu. Jakoś się okazało, że oni nie mogli się
cofnąć do poprzedniej wersji jak te 11 linijek zniknęło z internetu.
> Że nie odkryłeś testów automatycznych to już wiem :-)
Wiem, że w toku dyskusji wykazałem się bardzo wieloma brakami w odkryciach,
ale jakbyś jakoś zdefiniował/opisał co rozumiesz pod pojęciem testy
automatyczne (jakiś przykład) to byłbym dźwięczny. Czuję, że wiąże się to z
czymś co ja nazywam wektory testowe, ale nie wiem czy to jest to samo, czy
coś więcej.
P.G.
-
84. Data: 2016-08-25 11:01:07
Temat: Re: Re. Pytanie do serwisantów.
Od: Piotr Gałka <p...@c...pl>
Użytkownik "re" <r...@r...invalid> napisał w wiadomości
news:npkfft$631$1@mx1.internetia.pl...
>
> 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.
> ---
> Czyli jednak użyłeś tej biblioteki
Dla mnie to nie jest użycie biblioteki tylko coś równorzędnego.
Jak w mikrokontrolerze jest sprzęt liczący AESa i brat pisząc program
korzysta z niego to nie musi dołączać do swojego kodu żadnej biblioteki
tylko musi wiedzieć przez które rejestry i jak komunikować się z tym
sprzętem. Tak faktycznie to on wg typu procesora ma #if i albo korzysta,
albo wstawia kawałek w assemblerze.
Nazywanie tego korzystaniem z biblioteki doprowadzi do tego, że:
- użycie scalaka do RFID to użycie biblioteki,
- użycie scalaka do CAN to użycie biblioteki,
- użycie scalaka do RS485 to użycie biblioteki,
a stąd już blisko do stwierdzenia, że 555 to biblioteka funkcji czasowych.
Gdzieś należy postawić granicę i dla mnie jak pisząc program nie musisz
dołączać żadnej biblioteki to nie korzystasz z biblioteki, ale nie bronię
mieć innego zdania.
P.G.
-
85. Data: 2016-08-25 12:16:27
Temat: Re: Re. Pytanie do serwisantów.
Od: s...@g...com
W dniu czwartek, 25 sierpnia 2016 10:46:55 UTC+2 użytkownik Piotr Gałka napisał:
> Użytkownik "re" <r...@r...invalid> napisał w wiadomości
> news:npkf9e$538$1@mx1.internetia.pl...
>
> > A niby jak miałoby to działać ? Ale nie wiem czy odkryłeś już systemy
> > wersjonowania kodu :-)
> Obiło mi się, ale spokojnie można powiedzieć, że nie odkryłem :)
>
Spróbuj odkryć :)
Bo SVN lub ewentualnie git (choć do prostych spraw lepszy svn IMHO) to fajna sprawa.
Coś w rodzaju aktówki windowsowej i automatycznego kopiowacza który zapisuje
poszczególne zmiany w plikach zapisywanych. Fajna sprawa.
Przydaje sie nie tylko do kodu.
Może śledzić również dokumenty, pliki binarne itp...
> > że można po prostu cofnąć się do ostatniej pasującej wersji biblioteki.
> Ale to było na temat tego artykułu. Jakoś się okazało, że oni nie mogli się
> cofnąć do poprzedniej wersji jak te 11 linijek zniknęło z internetu.
>
> > Że nie odkryłeś testów automatycznych to już wiem :-)
> Wiem, że w toku dyskusji wykazałem się bardzo wieloma brakami w odkryciach,
> ale jakbyś jakoś zdefiniował/opisał co rozumiesz pod pojęciem testy
> automatyczne (jakiś przykład) to byłbym dźwięczny. Czuję, że wiąże się to z
> czymś co ja nazywam wektory testowe, ale nie wiem czy to jest to samo, czy
> coś więcej.
>
To jest zazwyczaj rodzaj skryptów lub programów wykorzystujących ten tworzony kod i
weryfikujące czy program nadal wykonuje się poprawnie.
W idealnym przypadku skladaja sie z zestawu który testuje program (lub biblioteke) w
zakresie podstawowych funkcjonalnosci (uruchomienie, wykonanie standardowej akcji
itp.) plus testów dla warunków granicznych (np. nakarmienie programu wadliwymi
danymi, nakarmienie go danymi spoza zakresu itp.) plus jednym - dwu testów
wykrywających czy naprawiony bug sie przypadkiem nie pojawił ponownie.
Te testy uruchamia się automatycznie po skompilowaniu nowej wersji.
Od razu zajawię temat programu make i plików makefile.
To program który rekompiluje tylko wymagane pliki aby zbudować program. Większość
środowisk graficznych typu eclipse lub borlandowe robi to samodzielnie wewnątrz. Ale
dla pisarza tradycyjnego make jest bardzo pomocne.
-
86. Data: 2016-08-25 13:11:09
Temat: Re: Re. Pytanie do serwisantów.
Od: Piotr Gałka <p...@c...pl>
Użytkownik <s...@g...com> napisał w wiadomości
news:c83804b9-6c6b-4939-8020-68e72d026a99@googlegrou
ps.com...
Spróbuj odkryć :)
Bo SVN lub ewentualnie git (choć do prostych spraw lepszy svn IMHO) to fajna
sprawa.
Coś w rodzaju aktówki windowsowej i automatycznego kopiowacza który zapisuje
poszczególne zmiany w plikach zapisywanych. Fajna sprawa.
Przydaje sie nie tylko do kodu.
Może śledzić również dokumenty, pliki binarne itp...
--------
Nie czuję potrzeby. Jak zacząłem trochę używać Buildera 2010 to po jakimś
czasie wyłączłem jego funkcje pamiętania iluś tam ostatnich wersji plików i
dokonanych zmian. Za drobne rzeczy robię, abym miał takie potrzeby.
W idealnym przypadku skladaja sie z zestawu który testuje program (lub
biblioteke) w zakresie podstawowych funkcjonalnosci (uruchomienie, wykonanie
standardowej akcji itp.) plus testów dla warunków granicznych (np.
nakarmienie programu wadliwymi danymi, nakarmienie go danymi spoza zakresu
itp.) plus jednym - dwu testów wykrywających czy naprawiony bug sie
przypadkiem nie pojawił ponownie.
----------
Zrozumiałem.
Robiłem tego typu testy, ale nie dla software'u tylko dla sprzętu.
Musieliśmy przerobić naszego HAK2 (klucz sprzętowy USB) na inny procesor
(więc program od nowa, bo stary był w assemblerze). Napisałem program który
mielił minutę klucz, i puszczaliśmy go ze starym i nowym aby sprawdzić czy
wyszło to samo.
Te testy uruchamia się automatycznie po skompilowaniu nowej wersji.
----------
Rozumiem, że słowo automatyczne dotyczy nie tylko tego, że ileś testów jest
wykonywanych automatycznie ale też tego, że nie da się skompilować nowej
wersji biblioteki, aby automatycznie nie uruchomiły się jej testy.
Od razu zajawię temat programu make i plików makefile.
-----
Intensywnie używałem w czasach DOS. Nie było jeszcze biblioteki Turbo Vision
(Borlanda okienka w DOS) więc (na potrzeby Piccolo) sam napisałem sobie taką
bibliotekę. Moja działała 10 razy szybciej od tej Borlanda, ale nie umiała
zdarzeń myszy przekazać do odpowiedniego okienka.
A że wtedy zależało mi, aby exe były małe to każdą, nawet kilku linijkową
funkcję wkładałem do osobnego obj i te wszystkie obj łączyłem w lib
(wszystko w długim na kilka stron makefile).
Przyzwyczaiłem się do tego, że środowisko dba o takie sprawy i mi to pasuje.
P.G.
-
87. Data: 2016-08-25 13:52:36
Temat: Re: Re. Pytanie do serwisantów.
Od: s...@g...com
W dniu czwartek, 25 sierpnia 2016 13:11:02 UTC+2 użytkownik Piotr Gałka napisał:
> Użytkownik <s...@g...com> napisał w wiadomości
> news:c83804b9-6c6b-4939-8020-68e72d026a99@googlegrou
ps.com...
>
> Te testy uruchamia się automatycznie po skompilowaniu nowej wersji.
> ----------
> Rozumiem, że słowo automatyczne dotyczy nie tylko tego, że ileś testów jest
> wykonywanych automatycznie ale też tego, że nie da się skompilować nowej
> wersji biblioteki, aby automatycznie nie uruchomiły się jej testy.
>
A to już jak kto lubi/potrzebuje.
Generalnie jak masz sytuację że sam sobie coś tworzysz to sam masz swój tryb pracy i
sobie sam o wszystkim pamietasz. A jak nie pamiętasz to sobie sam jakieś skrypty czy
automaty zrobisz aby pilnowały nudnych spraw.
Więc takie testy sobie możesz puszczać na koniec dnia aby sie upewnić że zmiany
wprowadzone nie zdestabilizowały ci kodu programu.
Ale w sytuacji kiedy wiele osób pracuje nad tym samym projektem i każda coś tam
zmienia to dobrze jest mieć mechanizm który okresowo (raz na godzine, raz na dzień
itp.) zaciąga świeżą kopię z repozytorium svn/git, kompiluje ją, testuje i montuje
jakis plik instalacyjny lub archiwum z programem.
Dlatego zazwyczaj te testy uruchamia się co każdą udaną kompilację.
Wtedy wiadomo co, kto, gdzie zmienił przed wystąpieniem błędu.
W małych środowiskach tak czy siak warto robić testy automatyczne i mieć z tego
troche inny pożytek:
Zanim zaczniesz pisać biblioteke czy API, piszesz kod który będzie korzystał z tej
biblioteki/API. Piszesz go tak jak wyobrażasz sobie wykorzystanie Twojego produktu.
Ten kod weryfikuje czy dało się wywołać kod i czy kod zwraca poprawny rezultat.
I jak już utworzysz kod właściwy nagle te testy zaczną pokazywać wynik pozytywny.
To takie troche podejście od "końca". Bo zazwyczaj początkujący programiści piszą
najpierw swój kod właściwy a potem go testują czy działa a potem czy działa dobrze a
potem czy nadal działa dobrze jak się go nakarmi głupotami.
A to podejście jest odwrotne. Najpierw piszesz kod weryfikujący i na początku on
weryfikuje wszystko negatywnie. A z czasem coraz więcej testów kończy się sukcesem.
Generalnie te tematy to istna rzeka do filozofowania.
I niektóre sprawy są IMHO warte zapoznania nawet w małych projektach.
Nawet takich jednoosobowych.
Ja np. korzystam z SVN do synchronizowania plików między komputerami, jako backup i
system wersjonowania.
Całość to w sumie dwa skrypty (update i commit) a pożytek ogromny.
Jak pracuję na jednym komputerze i tworzę coś to wystarczy że wyślę aktualny stan
pracy do svn jednym skryptem, nastepnie idę do drugiego komputera i uruchamiam
update, robie co mi tam trzeba i wynik znowu wysylam do svn (commit).
To w sumie nic kosmicznego ale bardzo ułatwia pracę.
-
88. Data: 2016-08-25 14:10:59
Temat: Re: Re. Pytanie do serwisantów.
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:npjgr7$scn$...@n...chmurka.net...
Użytkownik "J.F." <j...@p...onet.pl> napisał w wiadomości
>> Ale popatrzcie na to
>> http://qz.com/646467/how-one-programmer-broke-the-in
ternet-by-deleting-a-tiny-piece-of-code/
>
>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.
Masz to szczescie, ze maluchy piszesz, i mozesz sie pozbyc.
A jak przyjdzie obslugiwac TCP/IP, USB, Bluetooth, FAT32 czy NTFS, to
napisanie od nowa bedzie za dlugo trwalo.
Ale tu chyba o co innego poszlo. Nie znam tego srodowiska, ale
domyslam sie, ze to takie bardziej narzedziowe i jak widac - wszystko
sie sciaga automatycznie :-)
Tworzysz strone www w jQuery czy Ajax, to tez sie nie zastanawiasz jak
to dziala i czym to zastapic, tylko po prostu korzystasz.
Kompilatora tez nie zastepujesz, tylko uzywasz, co najwyzej klniesz i
mowisz "wiecej im nie zaplace".
>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?
Takie czasy, takie szkolenia :-)
Ale spora czesc jest nieunikniona - rozbudowalo sie to wszystko, sam
od zera nie napiszesz.
J.
-
89. Data: 2016-08-25 14:21:27
Temat: Re: Re. Pytanie do serwisantów.
Od: Piotr Gałka <p...@c...pl>
Użytkownik <s...@g...com> napisał w wiadomości
news:cfaf6949-ac77-4d5e-bb96-69693bf00876@googlegrou
ps.com...
Ja np. korzystam z SVN do synchronizowania plików między komputerami, jako
backup i system wersjonowania.
Całość to w sumie dwa skrypty (update i commit) a pożytek ogromny.
Jak pracuję na jednym komputerze i tworzę coś to wystarczy że wyślę aktualny
stan pracy do svn jednym skryptem, nastepnie idę do drugiego komputera i
uruchamiam update, robie co mi tam trzeba i wynik znowu wysylam do svn
(commit).
To w sumie nic kosmicznego ale bardzo ułatwia pracę.
-----------
Przekonałeś mnie na tyle, że zapisałem sobie to SVN (+ wcześniej wymieniony
git) do sprawdzenia kiedyś.....
Ja pracuję na jednym komputerze i nie mam potrzeby synchronizacji
czegokolwiek. A do backupu zrobiłem sobie kilkanaście lat temu dwa skrypty.
Jeden backupuje wszystko, a drugi to, co zmieniło się od czasu, gdy zrobiono
wszystko. Codziennie wołam ten drugi, a gdy jego backup robi się duży to raz
wołam tego całego i potem znów codziennie tego przyrostowego. Jakoś nie mam
determinacji, aby coś w tym poprawiać.
Wiąże się z tym pewien zbieg okoliczności. Jak już miałem to gotowe to
zrobiłem backupy (wtedy jeszcze na dyskietki) mojego komputera, a że było
już późno to przeniesienie tego na drugi (nie mój) komputer zaplanowałem na
drugi dzień. A w nocy mieliśmy włamanie i ukradli nam komputery. Kilka
miesięcy prac na tym drugim wcięło (to były projekty płytek).
P.G.
-
90. Data: 2016-08-25 14:24:49
Temat: Re: Re. Pytanie do serwisantów.
Od: Piotr Gałka <p...@c...pl>
Użytkownik "J.F." <j...@p...onet.pl> napisał w wiadomości
news:57bee057$0$15206$65785112@news.neostrada.pl...
>
> Ale spora czesc jest nieunikniona - rozbudowalo sie to wszystko, sam od
> zera nie napiszesz.
>
Jakoś ta prawda usiłuje do mnie chyba od lat dotrzeć, ale skutecznie
wypieram ją ze świadomości :(
P.G.