- A hozzászóláshoz be kell jelentkezni
- 1035 megtekintés
Hozzászólások
Csak azt tudnám mondani:
"A krumplileves legyen krumplileves!"
Azaz ha egy fájlrendszert már a tervezése során kis-nagybetű érzéketlenre terveztek, akkor az legyen olyan - de ekkor a tervezés során fentieket is figyelembe kell venni. Ekkor talán lehet az implementáció is jó. Ha ezzel szemben már *VAN* egy FS, akkor utólag ráerőszakolni ezt az érzéketlenséget gyakorlatilag kudarcra van itélve. (Amúgy elvi síkon érdekelne, hogy mi van az NTFS-sel, ami tudtommal tud érzékeny is lenni, ha valahol valaki valamit átállít. Hogy kb. a Winen használt szoftverek 99%-a állna tőle fejre, arra szerintem mérget lehet venni.)
- A hozzászóláshoz be kell jelentkezni
Többet ésszel, mint ész nélkül: https://devblogs.microsoft.com/commandline/improved-per-directory-case-…
- A hozzászóláshoz be kell jelentkezni
Végigszaladtam rajta.
Fenti cikk pont nem a te megjegyzésedet erősíti. Ugyanis az, hogy valamikor később implementálták az öröklési funkciót arra a nyomorult flag-re (nem pedig az adott flag implementálásával egyidejűleg), azt jelzi, hogy tervezéskor nem érezték fontosnak (ha egyáltalán felmerült) - márpedig ez eléggé alapszolgáltatás lenne egy ilyen eszköznél. (Tudom, hogy sántít mint minden hasonlat, de read-only mount után elvárom, hogy az adott FS minden egyes fájlja és könyvtára gyakorlatilag is RO legyen. Nyilván amikor rácsatolok egy másikat, ott megint szabályozhatom.)
- A hozzászóláshoz be kell jelentkezni
Arra értettem, hogy lehet könyvtárak szintjén állítani, nem muszáj mindent azonnal megborítani.
- A hozzászóláshoz be kell jelentkezni
Ekkor talán lehet az implementáció is jó.
Nem lehet. A kis- nagybetűsítés ugyanis lokalizáció függő, ezért képtelenség hordozhatóra megcsinálni.
Tipikus példa, nálunk a nagybetűs "I" (U+0049) kisbetűs párja az "i" (U+0069), míg pl. egy azerbajdzsáni Windows-on nem, náluk az ugyanis "ı" (U+0131).
Amúgy elvi síkon érdekelne, hogy mi van az NTFS-sel, ami tudtommal tud érzékeny is lenni
Nem tud. Ott a VFS rétegben konvertálják (így lokalizáció függő a végeredmény). Tudtommal az egyetlen, ami jól kezeli, az az exFAT, ami konkrét sok-sok megás kisbetűről-nagybetűre és nagybetűről-kisbetűre leképezőtáblákra pazarolja az értékes tárhelyet (igen, az összes partíción elpazarolja). Ez ezért "jó", mert bár így a kisbetűsítés lokálizáció független, viszont így esélyed sincs helyesen beírni egy magyar Windows-on azt a fájlnevet, amiben "i" betű van...
- A hozzászóláshoz be kell jelentkezni
Linus-nak megint igaza van. A case sensitive fájlrendszer több gondot okoz, több komplikáltabb eset leprogramozását igényli, mint amennyi gondot megold. Igazából ezt a VFS-ben kéne implementálni, úgy jó lenne korlátokkal bármilyen fájlrendszerben. De jobb az ilyet nem használni. Értem, sok normi össze-vissza mentegeti a Fájl, fájl, FÁjl, stb. hülyeségeit, és nekik könnyebbség, ha a gép kitalálja helyettük, hogy mire gondolt a költő, de szépen ők is meg tudják szokni, hogy ezek a *nix rendszerek ilyenek, hogy figyelni kell a kis-nagybetű különbségre. Kényelmetlenség, de pár nap alatt simán megszokható egy kis fegyelemmel.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
A case sensitive fájlrendszer több gondot okoz, több komplikáltabb eset leprogramozását igényli, mint amennyi gondot megold.
Ponthogy fordítva: a case insensitive komplikáltabb, ugyanis azt implementálni a világ nyelveire, hogy mik a kis-nagybetű párok, nem egyszerű. A komplex irásrendszereknél, mint a különféle ázsia nyelvekben, nem olyan egyszerű ez, mint a latin betűs írásoknál.
Például a Hangul írásban nincs külön kisbetű, nagybetű.
Amúgy történelmileg a latin és klasszikus görög írásban sem volt kisbetű, csak nagybetűt használtak. A kisbetűs, minuszkula írás csak azért terjedt el, mert kézírás szempontjából sokkal gyorsabban lehetett így írni, ez a az iratok (oklevelek, Bibilia stb.) másolásánál, lejegyzésénél nagy segítség volt az írnoknak. A görög írásban a 10-ik században jelent ez meg, a latinban meg a negyedik században.
Nem véletlen, hogy a ránk maradt kézzel írt Bibliák nagy része minuszkulával van írva, minden betű kisbetű benne (igen, még a nevek is).
- A hozzászóláshoz be kell jelentkezni
Hát akkor ugyanaz, ha az ASCII kódjukat 32 választja el. Ennyi :)
(régen de egyszerű is volt...)
- A hozzászóláshoz be kell jelentkezni
A komplex irásrendszereknél, mint a különféle ázsia nyelvekben, nem olyan egyszerű ez, mint a latin betűs írásoknál.
Szokás szerint hülyeségeket hordasz össze. Az ázsiai írásrendszereknél tök egyértelmű a kisbetűsítés (vagy mert nincs is, vagy mert egy nyelv használja csak, mint a hiragana/katakana/hangul).
Pont, hogy a latinnál nem egyszerű a dolog (amit sok-sok nyelvre húztak rá, mindenki a maga kis csavarjával).
- A hozzászóláshoz be kell jelentkezni
Persze, de ha nem droidoknak gyártunk oprendszert, hanem hús-vér usereknek, akkor bennem azért felmerül a kérdés, hogy a könyvelés2024.xls és a Könyvelés2024.xls miért kéne, hogy két különböző fájl legyen. Erre még senki nem tudott nekem életszerű példát mondani, de hajrá, itt a lehetőség.
- A hozzászóláshoz be kell jelentkezni
A Linux fontos tervezési elve a minél kényelmesebb az OS programozóinak, annál jobb hozzáállás. Rengeteget rendszer terveztem Linux alapokon, nagyon sok produktív rendszerben termel nekünk pénzt - szerver oldalon. IT-hoz nem értő hús-vér usereknek soha nem telepíteném, mert ők nem fogják megérteni soha, miért kezeli a példádat két fájlként, pedig programozóként nagyon is helyeslem, hogy az két külön fájl.
- A hozzászóláshoz be kell jelentkezni
pedig programozóként nagyon is helyeslem, hogy az két külön fájl.
Mi a use case? Mondasz egy példát?
- A hozzászóláshoz be kell jelentkezni
Pl. néhány retardált IT-s kollégának el lehet magyarázni, hogy bizonyos helyeken, pl. fájlrendszereken, kódban és az ipari hulladék Jira címkéi közt mIÉrt NeM mInDEGy, HogY KIs- vagY nAGybeTŰT haSzNÁl.
- A hozzászóláshoz be kell jelentkezni
Nem a case sensitive fájl rendszer szokott problémát okozni (mert abban egyféle fájlnév egyféle fájlnevet jelent) hanem a case insensitive.
De gyakorlati példa: Próbálj meg pl egy hatalmas kódbázist migrálni pl kódtárat, commitról commitra egy case insensitive fájlrendszerben. Garantáltan belefutsz valamibe, ami a végén nem lesz jó. Névkonvenciók meg nem véletlen vannak.
A case insensitive fájlrendszer szerintem felesleges kavarás. Szerintem ez user szinten is előjöhet, inkább hátrány.
- A hozzászóláshoz be kell jelentkezni
Garantáltan belefutsz valamibe, ami a végén nem lesz jó.
Mondasz egy példát?
Szerintem ez user szinten is előjöhet, inkább hátrány.
Mi a use case? Mondasz egy példát?
- A hozzászóláshoz be kell jelentkezni
Ok, akkor átgondolom, és sorolom:
Én életem során kb háromszor szívtam ilyesmivel (amire emlékszem is). Szerintem az SVN->Mercurial migráció, Mercurial->Git migráció, és SVN->Git migráció volt. Adott volt a környezet, valószínűleg valami rosszul is volt beállítva (legalább egy kis ideig, amíg rájöttek), és Windows-ról commitoltak az emberek. Cross platform problémák jöhetnek elő.
Az egyik user becommitolja a jozsi.cpp-t, a másik a Jozsi.cpp-t, mindkettő felmegy. Amikor a windows-os user ezt le akarja szedni, akkor hibát fog kapni. Rájönnek, valahogy javítják. Majd valamilyen eszközzel két év múlva migrálni akarod ezt a kódtárat, és az az eszköz is szétszáll rajta. Commitról commitra, change-ről change-re megy.
Vagy másik kérdés: Programozóként ha egy kódba beleírja valaki azt, hogy require('Config.js'), akkor a fájlrendszerben ne config.js legyen már, mert ez kb olyan érzés, mintha a változók is case insensitive-ek lehetnének. Ez már keresztbe tesz a névkonvencióknak is, tök mást jelent leírva ez. vagy az. Egyébként is van elég trehány programozó, még csak az kellene, hogy mindegy, hogy írják a fájlneveket.
- MyClass - osztálynév,
- myMethod() methodusnév,
- userName változónév
- MAX_SIZE konstans.
Csak példák a névkonvencióra, nem jelent gondot, ha a fájlnevekben sincs keveredés. A gondot az jelenti, ha máshogy írva is megtalálja a fájlt egy rendszer, egy importkor.
Ilyen miatt utána szétszáll CI/CD pipeline is, konténerben is lehet problémád, volume mountolás, stb...
Éppen ezért fejlesztői szemszögből: ami kisbetű az kisbetű legyen, ami nagybetű az nagybetű. Az összes többi kavarás (amivel konkrét problémákba fut bele minden fejlesztő, ha nem is naponta, de az évek alatt többször)
Az ilyenekből adódnak azok a problémák, hogy "Dehát ott működött."
Felhasználói szemszögből: A readme.txt és a Readme.txt simán lehet hogy két külön fájl. Minden felhasználó járhatott már úgy, hogy case sensitive fájlrendszerből másolt case insensitive-be, és valami kavar volt. Valószínűleg a Könyvelés.xls és a könyvelés.xls szempontjából probléma lehet a könyvelő néninek (ha elkavarja a dolgokat, meg neki egyébként is probléma a számítógép), de hogy lesz neki két külön fájlja alapból: Könyvelés.xls és könyvelés.xls? Nem eleve valami kavarás okozna csak ilyet, vagy az, hogy könyvelő néni trehány?
Egyébként locale, collátor problémái lehetnek?
á == Á, é == É? a == Á? Hogy is van ez?
Mi van, ha pl letölt/átmásol/archivál/visszatölt valamit, ami case insensitive: valami.doc, és Valami.doc. Az egyik fájl elveszik? Case sensitive fájlrendszer esetén nem.
Szerintem a felhasználó szempontjából komolyabb hibák is lehetnek ebből: Nem a case sensitive fájlrendszer esetén fog eltűnni valami fontos (pl szerződés) archiváláskor/visszatöltéskor, hanem a case insensitive fájrendszer esetén.
A case-insensitive kezelés lehet, hogy elsőre felhasználóbarátnak tűnik, de valójában technikailag sokkal bonyolultabb, és sokkal több korlátot is jelent, mint a case-sensitive kezelés. A fájlrendszernek értelmeznie kell, hogy két név ugyanaz-e (neked triviális hogy két karakter ugyanaz-e magyarul, de annyira nem triviális a probléma ha általánosan akarod kezelni), bonyolultabbá, lassabbá teszi az egészet, és hibásan is működhet. Cserébe megkötéseket is hoz: nem lehet két azonos nevű, csak case-ben eltérő fájl. Ezzel szemben a case-sensitive fájlrendszer egyszerűbb, következetesebb, és a felhasználónak meg kell tanulnia, hogy a számítógép pontos karaktereket különböztet meg – ami amúgy is alapvető készség, és (szerintem) plusz pont, hogy tudatos felhasználókat igényel. Ennél több dolgot is meg kell jegyeznie valakinek, akit szívesen odaengedek egy számítógéphez.
Ezen felül a case insensitive fájlrendszer lehet, hogy inkább csak régi örökség korai rendszerekből, nem? (amin már nehéz változtatni, mert túl nagy lenne a kompatibilitási törés)
- szerintem.
- A hozzászóláshoz be kell jelentkezni
Szerintem te itt multiplatform inkompatibilitásra hoztál példát, ahol az egyik rendszer sensitive, a másik meg insensitive.
De ez nem use case a sensitive értelmére. Ez egy probléma, ami a kétféle rendszer együttműködésekor (szarul beállitott rendszer esetén) előjöhet.
"egy kódba beleírja valaki azt, hogy require('Config.js'), akkor a fájlrendszerben ne config.js legyen már, mert ez kb olyan érzés, mintha a változók is case insensitive-ek lehetnének."
Nem tudom linuxon hogy működik, ha insensitive-re állitod, de windows-on, ha létrehozol egy Config.js file-t, az bizony Config.js fileként fog látszani mindenhol. Nem veszik el kis-nagybetű információ, ott van letárolva a filerendszeren. DE ezen file később elérhető config.js -ként is és NEM lehet mellé lerakni egy confIg.js-t.
- A hozzászóláshoz be kell jelentkezni
Szerintem te itt multiplatform inkompatibilitásra hoztál példát, ahol az egyik rendszer sensitive, a másik meg insensitive.
De ez nem use case a sensitive értelmére. Ez egy probléma, ami a kétféle rendszer együttműködésekor (szarul beállitott rendszer esetén) előjöhet.
Nem egy homogén világban élünk IT területeken sem. Ezek valós problémák, és use case-ek, amiket case sensitive fájlrendszer alapból kezel. Egy rendszernek más rendszerekkel kell integrálódnia.
Nem mindenki érzi problémának, hogy az "a" és az "A" az két különböző karakter. A case sensitive fájlrendszer természetes módon, plusz logika nélkül kezeli az eseteket, ha egy másik case sensitive rendszerrel kell integrálódnia (mivel nincs benne korlátozás karakterek tekintetében), míg a case insensitive fájlrendszerben az általam írt problémák jönnek elő.
Ha ma Te terveznél egy fájlrendszert, senki nem kötelezne rá, hogy MS-DOS kompatibilis legyen. Ki mondaná meg, talán Bill Gates? :) Szóval nem biztos, hogy az egész univerzumnak az MS-DOS-hoz, és a CP/M-hez kellene igazodni. Mert vannak rendszerek, amiben nem mertek váltani, mert a saját korlátozásuk kompatibilitási töréseket okozott volna.
A case sensitive fájlrendszer egy természetes választás, amivel ezek a problémák elő sem jönnek, és egy: https://en.wikipedia.org/wiki/KISS_principle megoldás. Azon felül én nem értek egyet az eredeti felvetéssel, hogy a usereknek ez gondot okoz. Akkor töröljük a _ (underscore) karaktert, mert keverik a kötőjellel, sőt, legyenek csak nagybetűk (ha nagyon el akarom túlozni. :)).
Szerintem ez: "2024 Bérszámfejtés.xlsx" és "2024_Bérszámfejtés.xlsx", "2024_bérszámfejtés.xlsx", és "2024-berszamfejtes.xlsx" ugyanúgy gondot okozna. Hol a határ? És ha bárki korlátoz, az magát szúrja tökön, ha egy másik rendszerrel kell integrálódni.
A másik kérdés: Akkor ne csak a fájlrendszereket vizsgáljuk meg az informatikában, milyen olyan területek vannak, ahol ez gondot okozhat még a könyvelő néninek? Adatbázis index? - Még egyszer: "Szerintem" - Nem kell egyet érteni, csak én így látom. :)
Ráadásul ez technikailag nem is triviális a kérdés: Ránézésre egyszerűnek tűnik kijelentés, hogy legyen case insensitive, de sokkal több karakter van, ami kérdés lehet. Pl egy keleti nyelv karakterei. + az integrációs gondok.
És mindezt azért, hogy a könyvelő néninek – aki nem ért a számítógéphez – ne kelljen megjegyeznie, hogyan is vannak elnevezve a fájlok? (és a case insensitive kezelés ebben amúgy is csak félig lehet segítség neki)
"egy kódba beleírja valaki azt, hogy require('Config.js'), akkor a fájlrendszerben ne config.js legyen már, mert ez kb olyan érzés, mintha a változók is case insensitive-ek lehetnének."
Nem tudom linuxon hogy működik, ha insensitive-re állítod, de windows-on, ha létrehozol egy Config.js file-t, az bizony Config.js fileként fog látszani mindenhol. Nem veszik el kis-nagybetű információ, ott van letárolva a filerendszeren. DE ezen file később elérhető config.js -ként is és NEM lehet mellé lerakni egy confIg.js-t.
Hát, ez programozóként: Nem számít, hogy minek látszik, hanem az a lényeg, hogy a fájlrendszerben és a kódban mi van. Mi történik, ha valaki config.js-t vesz fel, és Config.js-t ír a kódba. Vagy fordítva. -> A kódban az legyen, ami a fájlrendszerben. Semmivel nem fontosabb, hogy rendben legyen beírva/megtalálva/kezelve egy fájl, mint bármelyik másik case-sensitive elnevezés a forráskódban.
- A hozzászóláshoz be kell jelentkezni
A user szemponjából nincs értelme megkülönböztetni a kis és nagybetűs számot. Ellenben, nagyon is van értelme letárolni azt ahogy irta, mert ha neki úgy tetszik, hogy nagybetűvel kezdődik, akkor úgy is látszon. Ez megoldott CI filerendszer esetén, legalábbis windows alatt.
Ahogy egyébként a CS működés is megoldott alatta, de szerintem kimutathatlan, hogy hány user kapcsolja be, mert igénye van rá.
A biztonsági megfontolásról, nekem egyetlen eset sem jut eszembe, amikor abból lett security probléma, hogy CI a rendszer. Windows-on.
- A hozzászóláshoz be kell jelentkezni
ÉS még egy dolog, tényleg, amit Linus írt:
akkor más véletlenszerű – és esetleg biztonság-érzékeny – fájlok is ugyanolyannak számítanak
Te át tudod gondolni, hogy mit okozhat biztonsági szempontból, ha valaki "okosan" akar plusz logikákat beépíteni a fájlnevek kezelésébe? Én biztosan nem. - csak az egyszerű a legjobb...
- A hozzászóláshoz be kell jelentkezni
Ha valakinek arra lenne igénye, hogy ezek azonos file-ok legyenek, akkor egy symlinkkel simán meg tudja oldani.
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com
- A hozzászóláshoz be kell jelentkezni
Teljesen reális, hogy könyvelői droid aki nem is érti miért nem ugyanaz a fenti két példafile, az majd symlinkkel egyezővé teszi...
- A hozzászóláshoz be kell jelentkezni
Szóval az általad ismert könyvelői droidok nem értik a különbséget a 'k' és a 'Shift+k' között? :))
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com
- A hozzászóláshoz be kell jelentkezni
Szerintem a betű és a karakter közötti különbség az, ami nem nyilvánvaló a számukra.
- A hozzászóláshoz be kell jelentkezni
Az általam ismert könyvelő droid nem érti a különbséget ugyanabban a könyvtárban tárolt Bérszámfejtés.xls és a bérszámfejtés.xls file között.
És nem is szeretnék nekikezdeni megmagyarázni, hogy miért is volna jó neki, ha meg volna engedve, hogy két ilyen nevű, eltérő tartalmő file legyen ott, mert én is hamar elfogynék az észérvekből...
- A hozzászóláshoz be kell jelentkezni
Van ertelme case insensitive-segnek, csak nem FS szinten, hanem shell/filebrowser szinten. Ha egy open dialogba beirom hogy file.txt, de kozbe a folderbe csak File.txt van, akkor javitsa ki automatikusan (ha ambigous, mert van mondjuk File.txt meg FILE.txt is akkor meg dobjon errort). Save-nel ugyan igy, ha file.txt-be akarok menteni es kozben van egy File.txt, akkor kerdezze meg hogy felul akarom-e irni (meg mondjuk legyen valami jol eldugott opcio hogy en megis file.txt neven akarok menteni). Grafikus programoknal a widget toolkit megoldja, cli-nel a shell, es egyebkent meg open, fopen meg tarsai mukodnek tovabb ugy ahogy vannak most, anelkul hogy a programozonak azon kene fajjon a feje hogy az adott filesystem az hanyas verzioju unicode szabvany alapjan casefoldol, vagy hogy az applenek nem sikerult NFD-t implementalnia rendesen.
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
Van ertelme case insensitive-segnek
Hiszen én is ezt mondom, én most a case-sensitive verzióra várom a pályamunkákat :)
- A hozzászóláshoz be kell jelentkezni
A case sensitive megoldás mellett szóló érvek:
1) egyszerűbb, minden csak bitkép alapján dől el, nyers bájtok szerint. Nincs manipulálgatás, fetrengés, hogy mi minek felel meg, minek a upper/lower case megfelelője, nincs bonyolítás a kódolás szerint, stb.. Egyszerűen csak el van tárolva a fájl, mappa, link, stb. neve, és csak teljes egyezés esetén utalnak ugyanarra a fájlra, mappára, stb.. Egyszerűség, sokkal kevesebb programsorból implementálható, ami kevesebb lehetséges bugot, sechole-t hoz magával.
2) rugalmasság, nem korlátozza le a felhasználót, ha már van az adott mappában egy hasonló fájl, hogy ne használhasson ahhoz nagyon hasonló nevet, ami csak kis/nagybetűben tér el.
3) biztonság, rossz indulatú fél, kód nem tud odapreparálni a fájlrendszerre egy hasonló fájlt, pl. Bináris helyett bináris néven, amit a felhasználó véletlen a bináris helyett tudna futtatni.
Tradicionálisan a Unix sose fogta a felhasználó kezét, nem voltak benne hülyebiztosított, egy klikkes megoldások, meg bekészített védelmi mechanizmusok. Emiatt nem megbocsátó, pl. CLI-ben valamit rosszul paraméterezel, simán végig dd-zheted a telepítésed, szétrongálhatod a fájlrendszert rm, chmod, chown, stb. mentén, ha rosszul adod ki rekurzívan, pipe-okkal simán felülírhatsz fontos fájlokat, stb.. Sose volt egy hülyéknek szánt rendszer, nem próbálta megvédeni a felhasználót önmagától.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
A könyvelés2024.xls és a Könyvelés2024.xls miért kéne, hogy két különböző fájl legyen? Mire lenne az jó?
- A hozzászóláshoz be kell jelentkezni
Sot!
Кӧnyvelés2024.xls
- A hozzászóláshoz be kell jelentkezni
Amugy most igy megegyszer vegiggondolva az egeszet, ennyi erovel a konyveles2024.xls-el mi ujsag? Az miert kene mas fajl legyen mint a könyveles2024.xls? Vagy konyveles_2024.xls vagy 2024nyilvantartas.xls vagy ...
Az a baj hogy az emberek agya az nem egy bytesorozatot tarol, a szamitogep pedig de es kene talalni valami kompromisszumot ami a userek szamara se nagyon idegesito, es cserebe nem nagyon bonyolult implementalni. A case insensitive FS egy ilyen dolog, amig a foldgolyo csak az USA-bol all, onnantol kezdve hogy nem csak ASCII karakterekre kell mukodnie, gyorsan elkurvulnak a dolgok. Persze az is jo kerdes hogy miert ragaszkodunk egyaltalan a filenevekhez, es miert nem valami semantic cucc van helyette, es akkor a case sensitivitas mehetne abba a kupacba hogy a TCP miert random megjegyezhetetlen szamokat hasznal portoknak mint pl 22, 80, 443, miert nem human readable stringeket mint pl SSH, HTTP, ...
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
Én el tudom képzelni, hogy a kibővített latinbetűs (főleg az európai országokra gondolok, néhány kivétellel mint pl. Törökország, és Európa határa [keletről] a Románia-Bulgária tengely (jó ez vicc volt) {hú, ez egyre bonyolultabb}) abc esetén jól működhet a kis- és nagybetű érzéketlenség. Csak párszáz, esetleg egy-két ezer kilométer megtétele után olyan latinbetűs országok jönnek mint Törökország, vagy Azerbajdzsán hogy mást ne írjak.
Ott fog eldőlni a betűérzéketlen fájlrendszer Jenga tornya. (Ez csak vélemény, nem igazság)
Egyébként a nyitóban leírt Linus-féle érvelés rossz, mert a fekete szív és a piros szív akár kicsi akár nagy, mindenképpen különbözik egymástól.
Meg kellene már tisztességesen tanulni a bridge-t, és akkor nem jönnek hülye példákkal.
Még nincs aláírásom.
- A hozzászóláshoz be kell jelentkezni
Gondolom, akkor ezekben az országokban nem használnak windows-t, vagy telepités után átállitják case sensitive-re.
Vagy mégsem akkora probléma ez ezeken a nyelveken sem.
- A hozzászóláshoz be kell jelentkezni
Használnak. Az átállításról nincs információm.
Még nincs aláírásom.
- A hozzászóláshoz be kell jelentkezni
Na ja, könyvelés xls-ben, innen indulunk :)
- A hozzászóláshoz be kell jelentkezni
Azert mert nem akarod ujraformazni az osszes fajlrendszeredet amikor kijon egy uj unicode verzio es mar megint atvarialjak a normalizalas/casefolding szabalyokat, es nem akarsz olyan kura gany megoldast csinalni, mint az apple.
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
Nem kell, ha valakinek az az igénye, hogy egy file-t különböző neveken el tudjon érni, megteheti, mint már írtam is.
De visszakérdezek: miért akarna valaki egy file-t két (vagy több) különböző néven elérni? Mire lenne az jó?
A választ erre is az fogja megadni, akinél ez az igény fölmerül. Neked nem kell rajta töprengened.
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com
- A hozzászóláshoz be kell jelentkezni
miért akarna valaki egy file-t két (vagy több) különböző néven elérni? Mire lenne az jó?
Symlinkrol mar hallottal? Meghalnek ha nem tudnam oket hasznalni (meg bind mount, de az egy fokkal bonyolultabb dolog)
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
Azért meg nagyon bonyolult olyan algoritmust állítani, ami kivédi ezt. Mert jelen példában mi emberek látjuk, hogy csak félreírás, de algoritmust erre nehezen állítasz, hogy próbálod kitalálni, hogy mire gondolt a költő/felhasználó. Ne, ne találgassunk, az a legrosszabb, mert elkezdünk hülyeséget feltételezgetni. Ha ilyen védelmet akarsz, azt a userspace alkalmazásban érdemes implementálni, hogy ilyen fájl mentése előtt végignézi a mappát, és ha talál nagyon hasonló fájlt, akkor rákérdez. Az még okés egy GUI-s programnál. De egy CLI/TUI programnál ne találgasson végképp, ott agyhalál is lenne, hogy a szkriptben meg az általad paraméterként megadott, pipe-ban átadott adatokat elkezdené találgatás alapján felülbírálgatni.
Pont ez a mai modern operációs rendszerek rákfenéje, hogy mindent próbálnak a felhasználó helyett kitalálni, jobban tudva nála is, hogy mit is akarhat, meghoznak a háta mögött döntéseket, önállósítja a rendszer magát, meg előírja, hogy te mit hogy használhatsz, nem telepíthetsz gyanúsnak tűnő programot, rádkényszeríti a telemetriát, frissítéseket, online fiókot, titkosítást, stb.. Ez egy olyan tré megoldás, ami csak lejjebb visz a szarörvénybe, és csak a gond van vele.
Egyébként meg a példádnál maradva ilyennek elő sem kéne fordulnia helyes felhasználásnál. Mert mikor menti a Könyvelést2024.xls-t, akkor hogy nem látja, hogy már van egy könyvelés2024.xls? Mert ha az utóbbit akarta szerkeszteni, akkor nem új dokumentumként kellett volna megnyitni, és később menteni, hanem eleve a könyvelés2024.xls-t kellett volna megnyitnia és azt szerkesztenie, majd végül mentenie azonos néven. Ilyet csak sík idióták csinálnak, hogy már van egy olyan fájl, de erre elment helyette hasonlót.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
Hús-vér userek a "milyen operációs rendszer fut a gépeden" kérdésre azt válaszolják, hogy "ööö... nem tudom... Facebook?", szóval nekik tök mindegy, nem csak a fájltartalom-típusjelölést, a fájlnév többi részét is fölösleges megmutatni nekik, elég lenne egy "emodzsi" (gyűlölöm ezt a divatszót).
- A hozzászóláshoz be kell jelentkezni
Igen, ezt én is utálom. Főleg, hogy mindent ennek a rétegnek az érdekében hülyítenek el. Elrejtik előlük a kiterjesztéseket, rejtett fájlokat, a modern fájlkezelőkben már a mappa-fájl paradigma is megszűnt, helyette egy szintre vannak behányva meg kategorizálva a „dokumentumok” típusai, és ahogy a gnome-osoknál, már a fájlkezelőnek sincs neve, csak Files, vagy Fájlok. A menük is meg lettek szüntetve, egy áttekinthetetlen ribbon vagy hamburgermenü van helyette, az összes ilyen alkalmazás használhatatlanra van butítva, hogy nem tudod vele átnézni, hogy mi hol van a rendszeren. Az ilyen borzalmakban a keresési, átnevezési funkció is egy primitív megoldás szokott lenni. Kösz, de nem.
Nekem az első dolgom, hogy minden általam használt rendszeren legyen valami normális kétpaneles commander-klón, amivel látom is, hogy mit csinálok, milyen mappa, fájl, hol van, milyen mélységben, látszódjanak a kiterjesztések (ez nekem akkor is fontos, ha unixlike rendszeren ezek nem léteznek, nem szólnak bele a fájlok kezelésébe, mert mime/fejléc, tartalom, shebang, jogosultság alapján dől el, hogy melyik alkalmazásban nyílnak, futnak dolgok), rejtett fájlok és mappák, meg legyen különböztetve, ha valami link, fifo, vagy egyéb, futtatható vagy nem futtatható, stb.. Lássam egy műveletnél egyszerre a forrás és célmappát, fájlméreteket, mennyi hely van az adott fájlrendszeren, csatolási ponton, stb.. Ezek olyan alapok, amik nélkül nem lehet normálisan fájlokat kezelni, mert az ember nem látja, amit csinál.
Néha használok fuzzy find megoldásokat, dmenu, fzf, stb., azok valóban összemossák, hogy melyik fájl hol van, milyen mélységben, meg nagyon távoli egyezések alapján is megtalálnak dolgokat, de azokat csak gyors megnyitáshoz használom.
Linuxban is külön utálom, hogy a grafikus programokban készre van drótozva a Gtk vagy Qt filepicker, amik jó nagy fosok szoktak lenni, és nem lehet őket átdrótozni saját magoldásra. Pedig marha egyszerű lenne, mert miután egy filepicker-ben választottál, fájlt, fájlokat, mappát, mappákat, csak pár karakterláncot ad át (/eleresi/ut/fajlnev1 /eleresi/ut/fajlnev2 stb.) a hívó programnak, ehelyett nyugodtan használhatnék fzf-alapú saját szkriptet, de a Qt-sek, meg Gtk-sok eldöntötték, hogy azt nem lehet. Nem illik, mert az ő freedesktop paradigmájukba nem fér bele.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
Elrejtik előlük a kiterjesztéseket
Eleve a kiterjesztés mint olyan, egy baromság, mint a fájlnév része.
Az, hogy egy adott fájl milyen típusú, az egy olyan metaadat, aminek felesleges a fájl neve részének lennie. És lehetne ez egy MIME típus leíró, metaadatként. Semmi keresnivalója a fájl nevében. Ahogy ezt a Unix anno jól ki is találta - nem létezik olyan dolog, hogy fájlkiterjesztés.
Linuxban is külön utálom, hogy a grafikus programokban készre van drótozva a Gtk vagy Qt filepicker, amik jó nagy fosok szoktak lenni, és nem lehet őket átdrótozni saját magoldásra.
Ha egy alkalmazás jól van megírva, akkor használja az XDG FileChooser portalt, és te eldönheted, milyen FileChooser implementációt kínálsz az alkalmazásnak. Ponthogy a freedesktop találta ki ezt a paradigmát, és pont azért, hogy ne legyen a user konkrét implementációhoz kötve.
- A hozzászóláshoz be kell jelentkezni
Igen, kicsit windows-os beidegződés, meg redundáns, de van haszna. Pl. szelektíven tudok fájlokat megnyitni, GUI programokban mime-típus alapján, terminálosakban akár fájlkezelőnként külön differenciálom, pl. másban nyit meg egy adott fájltípust a vifm, másban a sfm vagy lf, megint másban nyitja meg az mc. Arra jó lehetőség.
Azért is írom, hogy kiterjesztés nem létezik *nix rendszerekben, .akármi csak a fájlnév része, de modern alkalmazások tudnak ennek a mentén különbözően megnyitni.
xdg/mime-választó szkritpem máris van, ami egy fzf-fel kikeresett fájl típusához enged választani társított alkalmazást xdg-mime default parancsot meghívva, de ez csak GUI alkalmazásokhoz szükséges rossz, a freedesktop kompatibilitás miatt, de ne felejtsd el, hogy én 99%-ban nem használok GUI-t, hanem TUI és CLI megy helyette, vifm/fzf/neoviim workflow-val. Ez az XDG/freedekstop mime meg .desktop fájlok, portálok, stb. GUI-s alkalmazásokhoz lettek kitalálva.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
használja az XDG FileChooser portalt, és te eldönheted, milyen FileChooser implementációt kínálsz az alkalmazásnak
Baszhatom ha a gtk2 ota senkinek se sikerult olyan file choosert irnia ami legalabb tavolrol emlekeztet egy hasznalhato valamire. Ami qt-ben van az a windows-os 1:1 koppintasa, a gtk3 filepickere meg annyira szar, hogy ha csak feldobna egy textboxot barmifele completion nelkul, meg az is erolelepes lenne hozza kepest.
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
Nekem annyira egyértelmű, hogy nem ugyanaz a két példa xls, hogy fel sem fogom, miért igény hogy ugyanaz legyen. El is engedem, hogy ezt megértsem, mert közeleg a segfault, érzem
- A hozzászóláshoz be kell jelentkezni
macen is azért nem lehet case-sensitive-re állítani a fájltendszert, mert az egyetlen program, ami miatt nem linuxot használok daily drivernek, a photoshop elhasal azon, az adobe hibájából!
amúgy egyszer érdekelne, hogy hogyan kezeli az ilyen isensivity pl a török i betűket (ı, I vs i, İ)
4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.
- A hozzászóláshoz be kell jelentkezni
amúgy egyszer érdekelne, hogy hogyan kezeli az ilyen isensivity pl a török i betűket (ı, I vs i, İ)
Gondolom úgy, ahogy az UTF-8 egyébként is.
- A hozzászóláshoz be kell jelentkezni
UTF-8 az csak unicode codepointokat encodol, semmi normalizalas/case folding nincs benne.
Amugy a kerdesre a valasz, leginkabb sehogy.
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
De, kezeli, a LOCALE-nek megfelelően, az ahhoz tartozó COLLATION-t használva, ha törökre van ez állítva, akkor ki tudja silabizálni, hogy melyik betűhöz melyik nagy és kicsi variáns tartozik. De épp erre utalt Torvlads, az ilyen kétélű fegyver, mert ahogy egy ilyen fájlrendszer felcsatolsz egy másik gépen, ahol másik LOCALE van érvényben, máris megy le a lefolyóba az egész, ami korábban egy fájlnak, mappának számított, az most kettő lesz.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
Hat, Linuxon biztos hogy nem, ugyanis a linux kernelnek fogalma sincs arrol mi az a locale, az egy teljesen userspace dolog.
Amugy meg fs-nek nem kell a full collation support, annak csak case folding kell, ami tobbe kevesbe nyelvfuggetlen, a torok i betuket leszamitva. Pl. ICU-ban a case foldingnak lenyegileg egyetlen optionje van, hogy a torok i betuket akarod vagy a rendeset: https://unicode-org.github.io/icu/userguide/transforms/casemappings.html Hogy ne legyen ebbol a teljes katyvasz amit felul irtal, tudtommal a case sensitive OS-ek ezt siman falsenak veszik, a torok userek meg igy jartak. (De igazabol tokmindegy, fizikailag nem lehet jol megcsinalni)
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
Esetleg, ha ennyire fontosnak látszik, hogy milyen betűket-karaktereket használ a fájlrendszer mint a fájlnév alkotói, rá fog valaha is döbbeni egy FS fejlesztő, hogy azzal foglalkozni kellene?
Tudom költői kérdés volt. Amúgy a különféle UTF-ek simán kódolhatták volna a kis- és nagybetű párosságot kifejező adatokat. Csak éppen nem tették. Vagy ha tették, akkor sokan nem tudnak arról, hogy olyan létezik. Mit görcsöltem én annak idején ilyenekkel. Pedig csak el kellett volna olvasni a táblázatban az arra mutató megjegyzést.
Ja, és az az "i" betű nem csak a török nyelvben létezik. De még mennyire "nem csak". Jobb ha tudod.
Még nincs aláírásom.
- A hozzászóláshoz be kell jelentkezni
milyen betűket-karaktereket használ a fájlrendszer mint a fájlnév alkotói, rá fog valaha is döbbeni egy FS fejlesztő, hogy azzal foglalkozni kellene?
A baj ezzel, hogy ez alapvetoen nem egy filerendszer kerdes, hanem OS kerdes, es amikor ezeket az OS-eket eredetileg kifejlesztettek, akkor volt az ASCII (esetleg valami kezdetleges support nehany nyugat-europai nyelvhez), ott meg trivialis ez a kerdes. Csak aztan jott a felismeres hogy esetleg amerikan kivul is leteznek emberek, jott a unicode, aztan borult az egesz egyszeruseg.
simán kódolhatták volna a kis- és nagybetű párosságot kifejező adatokat
Egyreszt nem ilyen egyszeru (pl. a nemet ß nagybetusitve SS, azaz ket karakter), masreszt meg erre ott vannak a kulonfele ucd tablak (https://www.unicode.org/Public/UCD/latest/ucd/) amibe benne van mindez (meg egy csomo mas). Meg csak az kellene hogy az amugy is 21 bitnyi unicode karakterkodok melle meg el kene tarolni 100 bitnyi flaget, teljesen redundansan minden karakter melle.
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
A kernelnek nem, de a kernel módban futó rendszer az a rendszeren beállított LOCALE, LC, LC_* környezeti változókból szedve. Ezek minden rendszeren léteznek, legfeljebb azért nem tudsz róla, mert a grafikus telepítő beállítja ezt a GUI telepítőből telepítésnél, de minimalista disztróknál (Gentoo, Arch, Void, stb.) neked kell beállítani. Sőt, ez a lokalizációs beállítás akár felhasználónként vagy egy felhasználón belül futtatott programonként is változat. Pl. ugyanazon a gépen, ha user1 jelentkezik be, akkor neki a magyar (hu_HU.UTF-8), míg ha user2, akkor annak meg a török (tr_TR.UTF-8), de még ezen a user2 csavarhat, ha pl. terminálban vagy szkriptből mondjuk a Midnight Commandert meg LC_ALL=C mc vagy LOCALE=en_US.UTF8 mc kiadásával futtatja. Már ki van húzva egy ilyen rendszer alól a szőnyeg, pedig gépet sem, esetleg usert sem váltottunk. A FILE magyarul és US angolul kisbetűsen file lesz, de a török lokalizációnál fıle (pont nélküli kis i). Észre sem veszed, de már benne vagyunk a szarörvényben, pedig még el sem jutottunk a hangkörnyezetfüggő arab karakterekig, meg dupla szélességű ázsiai (pl. japán, kínai) karakterekig, amikkel még hatványozottan több szopás lesz. Torvalds pont arról beszél, hogy ilyenbe nem menjünk bele, mert csak feleslegesen ül fel mindenki vele a szopórollerre. Megnyitják vele az utat egy soha véget nem érő rémálomnak, meg egy csomó új bugnak.
Anno az ilyen szarkeverést engedték URL-ekben, van is vele rendszeresen visszaélés, hogy két azonosnak vagy nagyon hasonlónak kinéző Unicode karakter mentén tévesztenek meg URL-ekkel csalók egyszeri felhasználókat. Ott sem volt túl jó ötlet.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
Az UTF-8 az csak egy enkódolás, egy szabályrendszer, hogy Unicode code pointokat hogyan kell reprezentálni bytesorozatként.
Az UTF-8 semmit nem tud arról, hogy egy code point kisbetű-e, nagybetű-e, mi az, hogy locale stb.
A locale meg collation információ az nem UTF-8-tól függő dolog, azt a Unicode adott verzióiban lévő CLDR (Common Locale Data Repository) írja le, és a glibc implementálja: https://sourceware.org/glibc/wiki/Locales
Semmi, de semmi köze az UTF-8-nak ehhez.
- A hozzászóláshoz be kell jelentkezni
azaz be kell állítani a locale-t, és akkor jó úgy? ha másik locale-t állítok akkor megelmennek a fájlok. szép
4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.
- A hozzászóláshoz be kell jelentkezni
Akinek van kéznél németre konfigurált Windowsa kipróbálhatná, hogy létre tudja-e hozni ezt a két fájlt ugyanabban a könyvtárban: "Straße.txt" és "STRASSE.txt". Ezt mindig is ki akartam próbálni.
https://community.snowflake.com/s/article/why-latin-small-sharp-s-upper…
Thus, with the default Unicode casing operations, capital sharp s will lowercase to small sharp s, but not the reverse: small sharp s uppercases to "SS".
- A hozzászóláshoz be kell jelentkezni
"Linus ideges, mert 40 év alatt sem sikerült senkinek rendesen megírnia a toLower() függvényt"
- A hozzászóláshoz be kell jelentkezni
:D
- A hozzászóláshoz be kell jelentkezni
dehát ezt írtam föntebb. neked és nekem, és világ legnagyobb részének a `toLower('I')` eredménye az `i`. de a törököknél az bizony `ı`. mert a `toUpper('i')` náluk `İ`. és ez csak locale beállításnál van így
4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.
- A hozzászóláshoz be kell jelentkezni