proto, aby mi ten počítač fungoval. Abych nemusel řešit naprosto triviální věci, které komerční OS od jisté firmy z Redmontu neumí, umí jen blbě, nebo jen na některých PC.
Tedy abych nemusel řešit, že win na některých instalacích neumějí změnit celé jméno souboru, tedy včetně přípony (což jsem musel řešit jeho změnou z jiného OS), že neumějí uložit opravený textový soubor (zdroják programu, text v TeXu, např.) tak, aby byl ihned k dispozici překladači (interpretu), takže jsem musel po každé banální úpravě zdrojáku při jeho ladění vypnout a znovu zapnout textový editor, abych si vynutil uložení nové verze na disk. Plus desítky dalších číčovin, včetně naprosto bezcenné dokumentace.
Teď mám doma i v práci Linux (momentálně Debian s LXDE) a jsem prakticky spokojený. Stoprocentní to jistě není, ale je to lepší než windowsy, a pokud je tam nějaký problém, dá se buď vyřešit nebo obejít.
Ad win na některých instalacích neumějí změnit celé jméno souboru, tedy včetně přípony - a kvůli tomu jste přejmenovával soubory z jiného OS? LOL. Skrývání přípon souborů je v nastavení Windows Exploreru. Na command line jsou samozřejmě přípony vidět vždy.
Ad neumějí uložit opravený textový soubor (zdroják programu, text v TeXu, např.) tak, aby byl ihned k dispozici překladači - záleží jestli textový editor zamyká soubor pro čtení. Některé editory to nedělají (Notepad), jiné ano (WordPad, Word), další to umí nastavit (třeba UltraEdit).
Pokud není soubor zamčený během editace, může vám ho jiná aplikace pod rukama modifikovat, což vede k nekonzistenci. Navíc ho může jiná aplikace přečíst zatím co ho ukládáte, což je jasná race condition. Předpokládám že tak přízemními koncepty jako konzistence a race conditions se ve svých úvahách nezabýváte ;)
Nejde o to, že se ta přípona nezobrazí, ale že poklepem na ikonu a výběrem "přejmenovat" je možné změnit jen část názvu před tečkou.
Na některých instalacích to jde změnit celé, na jiných ne, kus od kusu. Nikde v helpu není informace o tom, jak to udělat, aby to fungovalo, prostě šmejd.
Interprety a překladače soubor čtou, editor do něj zapisuje. Tyto činnosti se nijak netlučou. Alespoň unix-like systémy dovedou zamknout soubor jen pro zápis a nechat ho přístupný jiným aplikacím pro čtení.
Pokud dám v editoru ulož, on mi ohlásí "uloženo" a ono to uloženo není, tak je prostě vadný operační systém. Dokonce i v případě, že by to ukládalo až po hlášce "uloženo", když už jsem následně spustil interpret / překladač, tak by to byla vada OS. Linux tuto vadu nemá, tudíž je na vážnou práci vhodnější.
Bral bych, pokud by vyskočila nějaká hláška, že to má k dispozici jen starou verzi souboru, byť i to by byla pitomost MS-stylu, nicméně tady se systém tváří, že oprava byla uložena a přitom interpret pracuje s neopravenou verzí.
Na Windows XP/2003 a starších se při přejmenování souboru vybere celé jméno včetně přípony. Na Windows Vista a novějších se vybere jen jméno, nikoliv přípona. Ale tu příponu samozřejmě můžete vybrat myší, kurzorovými klávesami apod. Osobně používám CTRL+A pro výběr celého jména.
Celé to samozřejmě platí jen když Explorer ty přípony zobrazuje.
Ad Interprety a překladače soubor čtou, editor do něj zapisuje. Tyto činnosti se nijak netlučou - samozřejmě tlučou. Když aplikace A do souboru zapisuje, a zároveň z něj aplikace B čte, tak snadno dojde k situaci kdy app B přečte soubor špatně, protože app A zrovna soubor zapisuje/přepisuje (stisknul jste Save button). Na race condition vašem desktopu při psaní dokumentu TeXu nikoho nezajímá, ale obecně je to dost velký problém.
Ad unix-like systémy dovedou zamknout soubor jen pro zápis - LOL, to jste mě pobavil. Koukněte se někdy na zamykání souborů na Unixech. Funkce pro zamykání se historicky dost liší, zámky nejsou mandatory, víc než jeden proces může držet exclusive lock, NFS na některých Unixech zámky nepodporuje, a různé implementace se liší (napřílad na AFS mohou dva network klienti získat za jistých okolností exclusive lock).
Ve Windows samozřejmě umíme zamykat pro zápis i čtení, včetně byte ranges.
Blblo to už na win 98.
Pokud dám v editoru pokyn "uložit", tak neexistuje důvod, proč by se ten soubor neměl objevit v aktuální verzi na disku. Pokud se tam neobjeví a místo toho systém podhazuje dalším programům jeho starší verzi, až do restartu editoru, tak je něco špatně a nedá se s tím ani dobře pracovat.
Pokud se souborem pracuje editor a překladač / interpret, tak neexistuje sebemenší důvod, proč by si ho měl nějaký další soubor zamykat.
Windows prostě nezvládají standardní činnosti a tudíž jsou totálně na exkrement.
Hmm, nepochopil. Takže ještě jednou: soubor se objeví v aktuální verzi na disku hned po uložení. Akorát k němu váš překladač nemá přístup, protože ho editor zamknul, aby nedošlo k race condition. Nejspíš zahlásí chybu, a vy uvidíte výsledek posledního úspěšného překladu.
Zjevně jde o problém editoru, a nikoliv Windows. Je smutné že to nedokážete pochopit. Skoro tak smutné, jako když neumíte přejmenovat soubory z GUI ani z command line, a musíte bootovat jiný OS.
Tak jak to, že OS podsunuje překladači předchozí verzi, která by při řádném provedení zápisu vůbec neměla v počítači už existovat? Pokud by překladač hlásil, že nemůže číst soubor zdrojovytext.tex, zamčený jinou aplikací, tak by to bylo něco jiného. Překladač se ale tváří, jako by soubor opraven nebyl. A to není chyba editoru, ale jednoznačně operačního systému, že z nějakých, pro mě zcela nepochopitelných důvodů (nejsem blb z MS), podhazuje dalším aplikacím neustále starší verzi zdrojáku a předstírá, že jeho oprava nebyla provedena. Nehledě k tomu, že se to vyskytovalo u všech dostupných editorů (cca 4 - 5), schopných uložit holý text (bastly typu wordu jsem nezkoušel).
Opravdu raději pracuji s plnohodnotným systémem, kde se ten zdroják uloží a je okamžitě k dispozici v nejnovější uložené verzi všem dalším aplikacím, než s nějakým méněcenným bastlem, který toto vyřešeno nemá.
To je jako házet hrách na zeď. Zkuste si následující:
- Založíte soubor a.txt, napíšete do něj "test", uložíte, zavřete editor.
- Otevřete soubor a.txt v Notepadu, opravíte textna test2, uložíte soubor a necháte Notepad otevřený.
- Na příkazové řádce provedete příkaz "type <cesta>\a.txt", samozřejmě bez uvozovek. Co uvidíte? Text se samozřejmě vypíše.
Pokud (a dokud) nedokážete pochopit základní principy, jsou vaše řeči o bastlech naprosto mimo.
Když uzavřu editor, tak se pochopitelně soubor ocitne na disku a je dostupný.
Já potřebuji, aby se bez uzavření souboru promítla oprava do činnosti překladače.
Tedy když napíšu soubor hallo.tex:
Hallo vorld!\par \bye
a zpracuji to tex hallo.tex dvipdf hallo.dvi, tak se mi v pdf objeví to Hallo vorld!
Když to v testu hallo.tex opravím na správné "Hallo world!" a uložím,
tak se mi po překladu poříd objevuje ten vorld.
Teprve až ukončím editor, tak se oprava promítne do výsledku.
Na Linuxu v momentě, kdy ten opravený soubor uložím, je pro texový překladač k dispozici opravená verze. Přestože mám editor zapnutý a dál v něm ten soubor otevřený.
Na windows systém pořád předhazuje překladači předchozí neopravenou verzi. Dokud nevypnu editor, nebo nezmáčknu tlačítko "reset". Bylo to tak na W95, W98, WXP a naposled jsem tenhle bug viděl na Vistách.
Tak si zkuste ten soubor opravit a uložit v editoru, nechce ho otevřený a vypište si obsah souboru na command line příkazem type. Samozřejmě tam bude nový obsah. Problém bude nejspíš v tom, že používáte editor který soubory zamyká (což je věc aplikace - minimálně UltraEdit umí zamykání souboru nastavit), a proto vám TeX ten soubor nepřečte.
1. Dělaly to všechny editory, které jsem zkoušel, přitom ded, Klasik a gvim nejsou bastly od MS.
2. Problém vidím v tom, že ta wokenní "command line" se zřejmě dostane i k tomu neuloženému souboru někde v paměťovém bufferu, o němž OS předstírá uživateli, že je už na disku.
Protože pokud by byl soubor fyzicky uložen na disk, ale zamčen pro čtení, tak by TeX korektně ohlásil chybu a ukončil činnost (není to bastl od MS).