Firma IBM uvedla svůj první mikropočítač Personal Computer před 45 lety, v srpnu 1981. Základní konfigurace modelu 5150 za 1 565 tehdejších dolarů obsahovala desktop s Intel 8088 a 16KB RAM, Color Graphics Adapter a klávesnici. Právě klávesnice Model F/XT vybavené kapacitními spínači, vlivné a s převodníkem dodnes použitelné, připomíná sběratelský web Admiral Shark's Keyboards.
Slovensko odhalilo ruské součástky ve dvou testovaných zařízeních na zjišťování přestupků v silničním provozu a označilo je za bezpečnostní riziko. S odvoláním na vyjádření slovenského Národního bezpečnostního úřadu (NBÚ) to včera oznámil ministr vnitra Matúš Šutaj Eštok. Zároveň ohlásil ukončení spolupráce svého úřadu s dodavatelem části uvedeného systému, slovenskou společností Soitron. Opozice, která na problematické kamery upozornila už dříve, vyzvala k odvolání ministra vnitra.
Dle plánu dnes ve 13:00 proběhne veřejný test eDokladů. Jeho cílem je ověřit připravenost aplikace a související infrastruktury na vysokou souběžnou zátěž před podzimními komunálními volbami.
Byla vydána nová verze 3.47 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.13 souvisejícího programovacího jazyka Dart (Wikipedie).
Byla vydána nová verze 26.1 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Bian-May. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.
Na akci Made by Google 2026 (YouTube) byla oficiálně představena jedenáctá generace telefonů Pixel s novým čipem Google Tensor G6 a hodinky Pixel Watch 5.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) se spolu s partnery z dalších zemí připojil ke společnému upozornění (Joint Cybersecurity Advisory) týkajícímu se probíhající kybernetické kampaně skupiny LAUNDRY BEAR zaměřené na uživatele e-mailové platformy Zimbra Collaboration Suite (ZCS) nejméně od července 2025. NÚKIB doporučuje organizacím využívajícím Zimbra Collaboration Suite neprodleně ověřit, zda
… více »Intel vydal 42 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20260811 mikrokódů pro své procesory.
Sny o designu GNOME Shellu, článek s náhledy a videi, představuje dlouhodobou vizi týmu GNOME pro vylepšení uživatelského rozhraní GNOME Shellu. Zatímco nedávné verze přinášely spíše drobné úpravy, designéři nyní plánují zásadnější změny.
Byla vydána nová verze 10.5 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Nově vyžaduje podporu ECC (Elliptic Curve Cryptography) v libcrypto, včetně křivky NISTP521.
Občas se hodí vědět, zda náš program běží na terminálu nebo jsou jeho vstupy a výstupy přesměrované z/do souboru či jiného procesu. Pak můžeme upravit chování programu např. podle toho, jestli jeho vstup zadává ručně uživatel.
V první řadě je potřeba říct, že neexistuje nějaké jedno STDIO zařízení a nejde říct, zda program jako takový běží či neběží na terminálu. Máme tu tři souborové popisovače (FD – file descriptor):
a u nich má smysl se ptát, zda jsou napojené na terminál nebo ne. Běžně tedy může nastat situace, že vstup se čte z terminálu, zatímco výstup se zapisuje do souboru – nebo naopak.
(nejde o nic objevného, ale psal jsem to teď jako komentář do jedné diskuse, a protože by se to mohlo hodit i někomu dalšímu, dávám to sem do blogu, aby to nezapadlo)
Zda je daný FD terminál (TTY) nebo ne, nám řekne funkce isatty(). Ukázka v céčku:
#include <stdio.h>
#include <unistd.h>
void zkontroluj(int fd) {
if (isatty(fd)) printf("FD %d je TTY (terminál)\n", fd);
else printf("FD %d je roura nebo soubor\n", fd);
}
int main(int argc, char** argv) {
zkontroluj(fileno(stdin));
zkontroluj(fileno(stdout));
zkontroluj(fileno(stderr));
}
Přeložíme pomocí gcc a vyzkoušíme si různé varianty:
$ ./a.out FD 0 je TTY (terminál) FD 1 je TTY (terminál) FD 2 je TTY (terminál) $ ./a.out | cat FD 0 je TTY (terminál) FD 1 je roura nebo soubor FD 2 je TTY (terminál) $ echo | ./a.out FD 0 je roura nebo soubor FD 1 je TTY (terminál) FD 2 je TTY (terminál) $ ./a.out 2>/dev/null FD 0 je TTY (terminál) FD 1 je TTY (terminál) FD 2 je roura nebo soubor $ echo | ./a.out 2>/dev/null | cat FD 0 je roura nebo soubor FD 1 je roura nebo soubor FD 2 je roura nebo soubor
Pokud tuto funkci budeme využívat s rozumem a střídmě, můžeme upravit výchozí chování programu tak, aby lépe odpovídalo předpokládanému použití dle toho, v jakém prostředí resp. jakým způsobem byl program spuštěn. Při spuštění na terminálu např. můžeme zobrazovat prompt, nebo používat nějaký lidsky přívětivý formát… Vždy by ale toto chování mělo být dobře zdokumentované a mělo by být možné ho změnit (typicky parametrem na příkazové řádce nebo třeba proměnnou prostředí).
Také bychom měli pamatovat na to, že někdo může chtít náš program spouštět jako podproces svého programu – a pak je opravdu nežádoucí zaneřádit standardní či chybový výstup nějakými hláškami pro uživatele nebo na druhé straně zablokovat STDIN čtením či požrat data, která nebyla určena pro nás. Naprosté minimum je rozlišovat STDOUT od STDERR a zachovávat na STDOUT data v co nejčistší a dobře specifikované podobě. Měli bychom dodržovat klasické unixové pravidlo mlčení:
When a program has nothing surprising to say, it should say nothing.
One of Unix's oldest and most persistent design rules is that when a program has nothing interesting or surprising to say, it should shut up. Well-behaved Unix programs do their jobs unobtrusively, with a minimum of fuss and bother. Silence is golden.
This “silence is golden” rule evolved originally because Unix predates video displays. On the slow printing terminals of 1969, each line of unnecessary output was a serious drain on the user's time. That constraint is gone, but excellent reasons for terseness remain.
I think that the terseness of Unix programs is a central feature of the style. When your program's output becomes another's input, it should be easy to pick out the needed bits. And for people it is a human-factors necessity — important information should not be mixed in with verbosity about internal program behavior. If all displayed information is important, important information is easy to find.
-- Ken Arnold
Well-designed programs treat the user's attention and concentration as a precious and limited resource, only to be claimed when necessary.
A pokud se náš software používá jako knihovna, platí toto pravidlo dvojnásob – se STDIO bychom nikdy neměli pracovat přímo a měli bychom si nechat předat příslušné proudy či FD jako parametry a umožnit tomu, kdo nás volá, správně nasměrovat vstupy a výstupy. (když se náš program volá jako podproces, tak má dotyčný šanci mezi fork() a exec() přesměrovat FD a zabránit našemu programu manipulovat s původním STDIO, ale u knihovny to takhle snadno nejde, když se volá ve stejném vlákně/procesu)
Tiskni
Sdílej:
if test -t 0
then
: # FD 0 je terminál
fi