#include<stdio.h>
#include<string.h>
#define maxstring 19
char p[20]={0},q[20]={0};
int main(void)
{
strcpy(p,"prvni retezec");
strcpy(q,"druhy, vadny retezec!");
strncpy(p,q,maxstring);
printf("%s\n",p);
return 0;
}
Výsledek bude takový: druhy, vadny reteze. Samozřejmě je lepší tu délku otestovat už před kopírováním, stejně jako milion dalších problémů je to jen o programátorově disciplíně. Otázka je kdo se tím bude zdržovat, a jestli na to bude mít při masové výrobě "nových" programů čas. Ono i na tom Didaktiku se dalo programovat strukturovaně, ale člověk by se z toho okotil :-D Na druhou stranu, "jsou programátoři kteří dokáží psát fortranské programy v jakémkoliv jazyce"! I v tom C# se dají vymyslet šílené hacky, a nemálo by se jich našlo i v kódech z Redmondu, zvlášť když tam často levá ruka neví co dělá pravá. A s tím procházením starého kódu to také nebude tak horké, vždyť i ten Linux je více či méně napsaný odznova, akorát s novými chybami, a třeba v Singularity by toho copy/paste kódu snad také moc být nemělo, když to je úplně nový koncept. Pokud na něj tedy použijí i nový překladač s novými knihovnami...io.sys msdos.sys command.com PC-DOS 1.10 1920 6400 4959 (tam je ibmbio.com a ibmdos.com) MS-DOS 3.30 25613 30128 25308 PC-DOS 3.30 22100 30159 25312 (opět ibmbio.com a ibmdos.com) TE-DOS 2.00 14977 28152 23625 (pro změnu bio.com a dos.com) MS-DOS 5.00 33478 37397 47845 MS-DOS 6.20 40566 38138 54619 MS-DOS 6.22 40774 38138 54645 MS-DOS 7.00 214836 x 94308 MS-DOS 7.10 222390 x 94696Co jsem se té jedničky nahledal, mám jí na 3,5" disketě a normálně s ní funguje, dovede jí naformátovat i na jednostrannou 160 KB. Ještě W98 jí dokáže normálně přečíst, XP už ne. Mám pocit že XPčka odmítaly i 720 KB DD. TE-DOS je z Tesly Eltos, dostal jsem ho s tímhle, je odvozený z MS-DOSu 3.20 ale umí pár věcí navíc, třeba 32 MB ramdisk, trojka jen 4 MB. Moc se mi tam líbil parametr /q (query) který si vynutí potvrzení prováděného úkonu, to mi u MS občas trochu chybělo. Ještě tu někde mám čtyřku a osmičku (Millenium), ale nechtělo se mi prohledávat další stovku disket ;-) Bohužel mi chybí dvojka, ta by ukázala jak velký rozdíl byl od té jedničky, protože ten skok ke trojce je tam moc velký. V trojce ještě parametr /? nebyl, čtyřku jsem (naštěstí) nikdy nepoužíval tak nevím, ale mám pocit že i příkaz help měla až pětka. U té sedmičky jsou ta čísla zajímavější, protože IO.SYS obsahuje i MSDOS.SYS a navrch tu uvítací bitmapu s logem Windows, zatímco MSDOS.SYS je jen textový konfigurační soubor. Naopak COMMAND.COM je tady navzdory příponě normální EXE. Z té tabulky je pěkně vidět jak postupně velikost holého systému rostla, velký skok byl v commandu té pětky daný právě tou obsaženou nápovědou. Ale ani pak se růst nezastavil, přestože příkazy nepřibývaly vůbec a parametry vyjímečně, jako dir /v nebo edit /(počet sloupců). To mi moc chybělo v XP, bohužel tuhle moc šikovnou funkci EDITu odstranili. Používal jsem jí k editování uložených her ve Wolfensteinu ;-)
#include<stdio.h>
int main(void)
{
int d,i,h,k;
for(d=1,h=100,i=d,k=1;i<=h;i+=k,++k)
{
printf("%d ",i);
if(!(i%2))
{
--i;
h+=k;
}
}
putchar('\n');
return 0;
}
VB viry jsem mezi ty BASICové nepočítal, protože nakažení počítače makrem ve Wordu je trochu jiná kategorie. Větší problém je podle mne skrývání přípon souborů, to byla jedna z prvních věcí kterou jsem si po instalaci změnil. Teprve potom jsem začal řešit pozadí plochy :) Když vidím ikonu Zipu, tak mě nenapadne že to ve skutečnosti může být EXE a klidně si poklikám... To musí redmodští dělat z uživatelů ještě větší blbce než jsou?Ještě jednou musím zdůraznit, že bohatost instrukční sady není nijak zásadní feature. Jedním extrémem je System/370 se stovkam instrukcí, druhým třeba RISC-I se svými 32 instrukcemi. Zkuste se podívat na problematiku CISC vs RISC. Osobně jsem vyrostl na Intelu, a z RISC assembleru mě naskakují pupínky. Jinak počítat na 50 platných číslic přece není problém ani na RISC-I. Prostě máte knihovnu, která se napíše jen jednou (a asi ne v ASM), která bude počítat, jak potřebujete.
Jak byste napsal ten kód v .NETu? Asi takhle:
using System;
using System.Collections.Generic;
using System.Text;
namespace MyTest
{
class Program
{
static void Main(string[] args)
{
int d, i, h, k;
for (d = 1, h = 100, i = d, k = 1; i <= h; i += k, ++k)
{
Console.Write("{0:d}", i);
if ((i % 2)==0)
{
--i;
h += k;
}
}
Console.Write('\n');
}
}
}
Skrývání přípon je špatný nápad. Jenže uživatelé typicky přejmenovali "dopis.doc" na "dopis Lídě", čímž o příponu přišli. Vista to řeší tak, že přípony ukazuje, ale při přejmenování vybere jen název. Podle mě je to lepší nápad.
Odchozí firewall by vám celé dny jen zobrazoval hlášky. Jak jsem psal, uživatelé jsou naštvaní, že jim Vista hází UAC hlášky při "drobnostech" typu změna data/času, správa HW apod. Kdyby museli u každého spuštěného programu odklikat několik dialogů, kterým by neruzuměli, bylo by to o několik řádů horší. Navíc odchozí spojení počítač nijak neoohrožuje, na rozdíl od příchozího. Vista má firewall i na odchozí provoz, ale je by default nastavený tak, že povoluje vše.
Wordpad prý už s DOC neumí (nevím, mám MS Office), ale Word Viewer je nadále zdarma.
Linux je přepsaný starý unix. Koncept je stejný, API je stejné, jde prostě o opis. NT mají kernel od BSD velmi odlišný, o user space nemluvě. NT jsou modifikovaný mikrokernel (s HALem), BSD je monolitický kernel. NT plánuje thready, BSD plánuje procesy. NT má úplně jiný I/O stack, než BSD, atd. Zkuste se podívat pod pokličku.
Mikrokernely jsou pěkná myšlenka, ale u mainstreamových systémů nerozšířená, protože jejich výkon není dostatečný. Pro informaci MacOS není mikrokernelový systém.
MS je velký, brčka by vozily kamiony. Jak jsem říkal, programtoři dělají chyby, protože jsou lidé. Je to jejich funkční vlastnost, které se nelze zbavit. Chyby dělají programátoři IBM, Oracle, Mozilla Foundation, vývojáři kernelu Linuxu, i vývojáři poslední domácí knihovničky DVD médií, bez rozdílu vzdělání, zkušenosti nebo pečlivosti. Liší se pouze počet chyb, a ani ten rozdíl není řádový. Co se za posledních pár desítek let změnilo je to, že SW je řádově rozsáhlejší, složitější, a je to o několik řádů více.
Z posledních odstavců bych zkusil třeba Irák. Zkuste si zjistit pozadí věcí, než o nich budete vynášet soudy. Jistě víte, že v Íránu v sedmdesátých letech vládl šáh Mohammad Reza Pahlavi, který měl s USA celkem dobré vztahy. V roce 1979 došlo v Íránu k islámské revoluci, a později byla mimo jiné byla obsazena americká ambasáda, kde íránci drželi po 444 jako rukojmí dní 52 amerických diplomatů. v Iráku byli u moci sunité, v Íránu provedli revolucí šííté, a snažili se jí rozšířit do Iráku. Vznikla z toho irácko-íránská válka. Američané se poměrně pochopitelně postavili na stranu Iráku, protože nepřítel jejich nepřítele je jejich přítelem. Saddám se tehdy zdál ideálním spojencem. V sedmdesátých letech výrazně pozvedl životní úroveň v Iráku, stranil se náboženství, a na poměry blízkého východu to byl velmi rozumný a umírněný vládce. V roce 1978 navíc rozvázal vztahy s rusy, když potlačil místní komunisty. Bohužel když lidé zůstávají dlouho u moci, stávají se z nich zrůdy, což se později stalo i Saddámovi (a Putin je na na nejlepší cestě, už si nechal otevřít dveře zpátky do Kremlu). Argumentovat tedy tím, že si Rumsfeld v roce 1983 podal ruku se Saddámem, je naprosto mimo. Když si zjistíte i jen základní fakta, budete to vidět sám.
Informaci o tom, že Condoleezza Rice 10. září 2001 přes telefon radila chicagskému starostovi a izraelskému premiérovi aby následující den nelétali letadlem, máte odkud? Z důvěryhodného zdroje, nebo někdo povídal? Mě se podařilo dohledat jen tolik, že 10. září 2001 měla meeting s tehdejším šéfem CIA, jako ostatně mnohokrát ten rok (měla to v popisu práce). Pro úplnost ještě podotýkám, že kontakty s domácími i zahraničními politiky byly také součástí její práce.
11.9.2001 se v USA konala minimálně 4 vojenská cvičení. To je tím, že jde o zemi s 305 miliony obyvatel, kde se různá vojenská cvičení konají poměrně často.
Svého otce bych možná pozval na svatbu, i kdyby ho rodina vydědila, zvláště pokud bych žil v Afganistánu, kde byl před 9.11.2001 Osama bin Laden známý i kvůli svému boji proti Rusům. Když jsme u toho, Osama měl k roku 2002 údajně čtyři manželky a až 26 dětí. Možná nemáte představu, jak rozsáhlé jsou arabské rodiny.
Pokud členové bin Laden family odešli po útocích na WTC z USA, je to poměrně pochopitelné. V tu chvíli nikdo nevěděl, k čemu podobná věc povede. Když budete bohatý businessman v Saudské Arábii, a někdo z USA srovná se zemí Mekku, asi také budete hledat pas.
Abych to uzavřel: aby člověk dělal závěry, musí mít více, než jen informace z novinových titulků, které mu ještě někdo "vhodně" předkouše. Zkuste se vždy zamyslet nad kontextem a souvislostmi, než budete hledat nějaké jednoduché (ale emocionálně uspokojující) konspirační vysvětlení.
"Nikdo nebude nikdy potřebovat více než 640KB RAM!" -- Bill Gates, 1981 "Windows 95 potřebují nejméně 8MB RAM." -- Bill Gates, 1996Teda jestli je ten první výrok pravdivý (BG to popírá), ale v kontextu doby by to možné bylo. Fakt je že si v době pár desítek kilobajtů RAM opravdu nedokázali představit že by někdo naplnil megabajt. Rozdíl byl v tom že lidi si tu paměť pro W95 prostě koupit museli, zatímco předtím jen mohli. Také v té době nebyly hry které se nerozběhly když neměly 2GB RAM jako dnes :-D Zlaté časy kdy se hra vešla na disketu, maximálně na dvě. A to tu mám ve sbírce i pár takových (PCčkových) co se vejdou na jednu disketu všechny dohromady :-D Třeba letadlo ve 3D zobrazení s 256 barvami, sice bez zvuku, ale ten program má 4096 B!
"Koho budeš volit?" "Komunisty." "To je mi jasné, ale v jaké straně?"To už je mi sympatičtější KSČM, protože ti té utopii a nereálným snům o lepším světě se spravedlivým uspořádáním věří. Já ne. Aspoň se jim na přelomu let 1989/1990 vyčistila krev, protože prospěcháři kteří do KSČ vstupovali kvůli kariéře se rychle přesouvali do perspektivnějších stran, hlavně do toho OF, předchůdce ODS.
Co znamená číslo 95 u Windows 95? 1 - Součet inteligence programátorů 2 - Doba v hodinách, než je nainstalujete 3 - Doba v sekundách, než spadnou 4 - V milionech počet nespokojených uživatelů 5 - Doba v rocích, než Microsoft odladí všechny chyby Jestliže číslo 95, v názvu operačního systému Windows 95, znamenalo pravděpodobnost chyby při spuštění, pak se u Windows 98 máme na co těšit.A právě v té době se začala šířit různá podezření...
io.sys msdos.sys command.com MS-DOS 8.00 116736 x 93040Hádám že z IO.SYS vyhodili ten obrázek, tomu by ten rozdíl odpovídal, a MS-DOS.SYS tvrdí že je EBD98 :-D Pěkně kecá. Jinak copyright klasicky 1981-1999.
int loadint(int *pole, int index)
{
if(index>=0&&index<*pole)
return *(++index+pole);
else
return ~INT_MAX;
}
int storeint(int *pole, int index, int cislo)
{
if(index>=0&&index<*pole)
{
*(++index+pole)=cislo;
return 0;
}
else
return ~INT_MAX;
}
Co se copyrightu týče, dělejte s tím všichni co uznáte za vhodné :-D