S tou důvěrou je to také ošemetné. Kdysi jsem četl pěkný článek na toto téma. Kdy "útočník" napadl počítače US Army v rámci jejich školení. Podstrčil jim zdroják jádra s backdoorem a oni si to sami zkompilovali. Jenže, pokud bysme to měli brát tak doslovně, museli bysme si celý systém sami kompilovat a ještě k tomu kontrolovat všechny zdrojáky.
Vývoj programůNastolím pseudo situaci:
Máme procesory a ty se zkrátka vyvíjí. Každý procesor má množinu strojových instrukcí. A ty se různě liší nejen mezi výrobci, ale i mezi modely. Ty instrukce mají různé podmnožiny. Mám za to, že MISC je název té nejzákladnější podmnožiny. A tou je zpracovávaná drtivá většina programů. A teď si vezmeme třeba bash příkaz cp. Jehož hlavní strojová instrukce bude MV. Což je kopírování. A teď narazíme na procesor, který má mimo množinu MISC instrukci která kopíruje 100x rychleji, protože... A protože to chtějí mít všichni tak ji tvůrce cp zakomponuje do programu. A máme tu možnosti:
- přidá volbu třeba -K(krutě rychlý). Nějaký super souborový manager bude používat čisté cp protože to bude použitelné na všech procesorech. A uživatelé začnou nadávat, že wokna 12 umí s jejich chipsetem kopírovat rychleji a linux zaspal dobu. Znalý jdou do terminálu a přidají parametr -K
- přidá volbu třeba -Z(zpětně kompatibilní) a v základu bude krutě rychlý. Nějaký super souborový manager bude používat čisté cp. Uživatelům se staršími procesory, to bude havarovat. A opět budou řvát, že linux jde do kopru...
- Normálně jsou ty binárky v distribucích přeložené v MISC setu. A pokud chce někdo rychlost, tak si to zkompiluje sám na konkrétním cílovém počítači. Ale i to je pro některé špatně. A opět, programátoři linuxu jsou paka.
- Tvůrce cp se na to vykvajzne. A opět pro velkou skupinu uživatelů to znamená "wokna super rychlý, linux je mrtvej!"
A takhle bych těch možností mohl nakombinovat spousty.
Nechám na každém co by si vybral. Za mě je třeba aby se program vyvíjel, jinak je mrtvej.
Mimochodem tím jsem nakousl i problém návrhu. Jak napsal Roman "byl špatný návrh nešlo v tom pokračovat". To je další normální věc. Ač to developer senior myslel dobře a vše šlo několik verzí suprově. Stanou se chvíle a je jedno z jakého důvodu, že tudy cesta nevede dál a je třeba udělat několik kroků zpět. A uživatelé zase řvou. Když se ty kroky neudělají tak je to také špatně. Dle mne ještě horší.
Se mi v sobotu stala taková "nepříjemnost". Mám teď druhým týdnem dovolenou a tak ji trávím pracovně u rodiny v čechách. Stavím přístřešek pro manželky koně (říkám jim salámové). A v sobotu jsem si "odskočil" na zkoušku z profesní kvalifikace. Vzal jsem si s sebou tužku, propisku, pravítko a kalkulačku.
#Přijdu tam a zkoušející kde mám knihu?
*Někde doma.
#Jak někde, to jste se neučil?
*Nebylo moc času.
#Jak chcete bez knihy zapojit reverzaci motoru?
*Stačí když dostanu list papíru.
#Dal mi ho se slovy "reverzace s ovládáním ze dvou míst"
Nakreslil jsem si základní silové zapojení. A podumal nad ovládací částí aby byla co nejuniverzálnější(asi jsem tím linuxem deformovanej) a lehce rozšířitelná => návrh
Za hoďku a půl bylo hotovo, zapojeno a funkční. Ale to je špatně. Takhle se to nedělá, atd. Vysvětluju a ukazuju jak je to plně funkční a kdykoliv jednoduše rozšířitelné. Neexistuje! Rozšiřovat se jen tak nemůže, protože pak už je to jiný výrobek. A to vyžaduje nový projekt atd.. Normy jsou normy. Ok, tak jsem to natvrdo předělal na dvě ovládání, napsal test a zkouška úspěšně složena.
Co z toho pro mne však plyne a dost nad tím přemýšlím. Je, že i sebelepší návrh (si moc fandím
) je na nic, když okolnosti nedovolí.