Forum » Operacijski sistemi » [Win vs. Lin] Register vs. 10000 datotek na disku
[Win vs. Lin] Register vs. 10000 datotek na disku
Daedalus ::
Če hočeš biti corporate, pol boš s svojo javansko aplikacijo parsal shitload xml konfiguracij Textovne datoteke so preverjeno čisto kul, je pa treba malo gledat, kaj dobiš nazaj.
Man is condemned to be free; because once thrown into the world,
he is responsible for everything he does.
[J.P.Sartre]
he is responsible for everything he does.
[J.P.Sartre]
darkolord ::
na levi ime, na desni vrednost, vmes je neko ločilo
Torej, v nastavitvah imam podatke treh ljudi (ime, priimek), za vsakega od teh pa še recimo od nič do X domačih živali (ime, pasma, binarno polje s slikco). Kako potem tele preproste nastavitve zapišeš v obliki "na levi ime, na desni vrednost, vmes je neko ločilo"?
Zgodovina sprememb…
- spremenilo: darkolord ()
BigWhale ::
...potem pa raje to spravis v XML, ki ti podatke direktno preslika v nek razred in ki bo delal tudi ob dodajanju novih nastavitev. Simple, hitro, uporabno, brez nepotebnega kodiranja custom parserja.
Pa si ze dejasnko kdaj napisal kak XML parser? Stvar ni tako zelo enostavna, da bi jo kar iz rokava iztresel. Pri raznoraznih packerjeh, ki ti XML ze zbasejo v neko strukturo, se moras pa potem po tisti strukturi sprehajati.
Saj pa branje nekih nastavitev ponavadi ne delas ves cas, ampak ga v vecini primerov preberes na zacetku in je to to. Zakaj tukaj XML ne bi bil primeren, pa mi ni najbolj jasno. :)
Zato ker je v precej primerih nepotrebno kompliciranje.
Tvoj zgornji primer?
args = {} f = open('lala.conf', 'r') for line in f: args[line.split("=")[0]].strip() = line.split("=")[1].strip() f.close()
Pet vrstic kode in dobis ven dict z key-value pari za vsako vrstico v konfiguracijski datoteki. Da bi naredil se podporo za 'sections' bi rabil se kakih pet vrstic zraven.
Pa lahko genericno dodajas sekcije in key-value pare kakor ti srce pozeli. :)
Pa je hitreje kot katerikoli XML parser.
Zgodovina sprememb…
- spremenil: BigWhale ()
BigWhale ::
na levi ime, na desni vrednost, vmes je neko ločilo
Torej, v nastavitvah imam podatke treh ljudi (ime, priimek), za vsakega od teh pa še recimo od nič do X domačih živali (ime, pasma, binarno polje s slikco). Kako potem tele preproste nastavitve zapišeš v obliki "na levi ime, na desni vrednost, vmes je neko ločilo"?
... ce v nastavitve tlacis binarno polje s sliko si zgresil design. :)
ender ::
Prej je nekdo prilimal link na virtualdub.org glede registra. Tu pa je link na virtualdub.org glede XML parserjev.
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
cache invalidation, naming things and off-by-one errors.
darkolord ::
Pa si ze dejasnko kdaj napisal kak XML parser?Ni treba, ker je že del sistema.
Da bi naredil se podporo za 'sections' bi rabil se kakih pet vrstic zraven.Kakšen 'sections'? No, kr pokaži, kako si to mislu... (lohk tut sam primer konfiguracijskega fajla)
Zgodovina sprememb…
- spremenilo: darkolord ()
BigWhale ::
Hm, XML parserjev za windows ne poznam. V glavnem sem se srecal z dvemi vrstami parserjev, eni so bili taki, ki so cel XML v neko strukturo zbasali, drugi pa taki, kjer si moral se sam paziti na TAGe in kako so zakljuceni etc, etc.
Prvi niso vedno naredili take strukture kot bi si jo clovek zelel, pri drugih ti je bilo pa prihranjeno predvsem branje iz datoteke in primerjanje stringov med seboj. :)
Takele sekcije... Tako kot so v .ini datotekah :)
[General]
Some Option = on
Other Option = off
[Network]
IP Address = 192.168.1.1
Protocol = HTTP
[User]
Ime = John
Priimek = Doe
Prvi niso vedno naredili take strukture kot bi si jo clovek zelel, pri drugih ti je bilo pa prihranjeno predvsem branje iz datoteke in primerjanje stringov med seboj. :)
Takele sekcije... Tako kot so v .ini datotekah :)
[General]
Some Option = on
Other Option = off
[Network]
IP Address = 192.168.1.1
Protocol = HTTP
[User]
Ime = John
Priimek = Doe
darkolord ::
In kako maš tukaj več userjev? In za vsakega userja še par nečesa (npr. domačih živali, kot sem napisal v zgornjem primeru)?
Tr0n ::
BW, fora je, da ti ni treba pisat XML parserjev, ker so ze vsepovsod zraven. :)
Zakaj bi rocno odpiral fajl in parsal nek output? Tak se ne dela vec, ce res ni potrebno.
Zakaj bi rocno odpiral fajl in parsal nek output? Tak se ne dela vec, ce res ni potrebno.
Zgodovina sprememb…
- spremenilo: Tr0n ()
Utk ::
darkolord, to kar ti sprašuješ pa res ni nič takega. Ker si očitno bolj počasne sorte, ti bom napisal en primer, možnosti je pa še 1000.
[Osebe]
NekID.ime = ...;
NekID.priimek = ...;
NekID.zivali = krava,mačka,...;
DrugID.ime = ...;
Kako bo to tist program skup spravil je pa njegov problem, glih tako kot bi bil, če bi dobil xml.
Tron, sej ti ne bi blo treba pisat niti txt parserjev, če bi ble nastavitve standardne. Pa tudi če niso in sam narediš nek programček, je bolje uporabit BW-jevih 5 vrstic kot xml parsanje.
[Osebe]
NekID.ime = ...;
NekID.priimek = ...;
NekID.zivali = krava,mačka,...;
DrugID.ime = ...;
Kako bo to tist program skup spravil je pa njegov problem, glih tako kot bi bil, če bi dobil xml.
Tron, sej ti ne bi blo treba pisat niti txt parserjev, če bi ble nastavitve standardne. Pa tudi če niso in sam narediš nek programček, je bolje uporabit BW-jevih 5 vrstic kot xml parsanje.
Mavrik ::
Tron, sej ti ne bi blo treba pisat niti txt parserjev, če bi ble nastavitve standardne.
Lej no lej. Dejansko maš na določenem operacijskem sistemu API vmesnik za take stvari, ter še kraj kamor se to vse lahko shranjuje. Da se ti ni treba s tem sekirat. Uganite.
The truth is rarely pure and never simple.
Looooooka ::
zeh....xml uporablas zato, ker lahko zravn podas se lep xsd file in pac ne mors srat po njemu.
register majo zato, da majo lahko nastavitve na enem mestu...standardn dostop do njih(ne tko kot v linuxu kjer vsak distro izumlja toplo vodo).
Disk pa BTW briga a mas ti config fajle al pa registry file.
Oboje ma svoje slabosti ampak tko kot je bilo napisano...kdaj se vam je pa nazadnje registry usul(in kaj hudica ste delal da vam je to ratal).
tezek backup?
Seriously?...problem je v vas.
Zakaj bi rabil komentarje v config fajlu ce so pa windows developerji ze navajeni dajat v programe nastavitve(si pac vzamejo 10 minut vec).
Ce ste pa tok zaljubljeni v config fajle...hey...vsak klincev .NET program ma zdej app.config file.Go crazy.
Microsoftu je register na zacetku cist prav prisel.Programov ni blo velik programerjev tud ne...in na easy so jih havadl uporabt standardn nacin shranjevanja in branja nastavitev...kar pomen, da so mel se bl easy nacin integriranja vse v klincev microsoftov group security policy.
Glede na % enterprise firm, ki jih majo pod sabo se jim je ta odlocitev splacala.
Zdej grejo lahko na ASCII fajle ce jih pase.
Na konc koncev je bolj od tega, da mas moznost spreminjanja nastavitev preko enga ali druzga nacina, motece to...da imas 5 programov, ki te zadeve delajo vsak na svoj nacin.Kar je pa takoj velik problem...se posebi ko ugotovis, da je dovolj da zmedes navadnega uporabnika ze to...da v novi verziji programa zamenjas barvo gumba.
register majo zato, da majo lahko nastavitve na enem mestu...standardn dostop do njih(ne tko kot v linuxu kjer vsak distro izumlja toplo vodo).
Disk pa BTW briga a mas ti config fajle al pa registry file.
Oboje ma svoje slabosti ampak tko kot je bilo napisano...kdaj se vam je pa nazadnje registry usul(in kaj hudica ste delal da vam je to ratal).
tezek backup?
Seriously?...problem je v vas.
Zakaj bi rabil komentarje v config fajlu ce so pa windows developerji ze navajeni dajat v programe nastavitve(si pac vzamejo 10 minut vec).
Ce ste pa tok zaljubljeni v config fajle...hey...vsak klincev .NET program ma zdej app.config file.Go crazy.
Microsoftu je register na zacetku cist prav prisel.Programov ni blo velik programerjev tud ne...in na easy so jih havadl uporabt standardn nacin shranjevanja in branja nastavitev...kar pomen, da so mel se bl easy nacin integriranja vse v klincev microsoftov group security policy.
Glede na % enterprise firm, ki jih majo pod sabo se jim je ta odlocitev splacala.
Zdej grejo lahko na ASCII fajle ce jih pase.
Na konc koncev je bolj od tega, da mas moznost spreminjanja nastavitev preko enga ali druzga nacina, motece to...da imas 5 programov, ki te zadeve delajo vsak na svoj nacin.Kar je pa takoj velik problem...se posebi ko ugotovis, da je dovolj da zmedes navadnega uporabnika ze to...da v novi verziji programa zamenjas barvo gumba.
Zgodovina sprememb…
- spremenilo: Looooooka ()
darkolord ::
darkolord, to kar ti sprašuješ pa res ni nič takega.Sam še vedno ni tko, kot sem prej spraševal. Lahko sicer narediš tkole:
[Osebe]
NekID.ime = ...;
NekID.priimek = ...;
NekID.zivali = krava1,mačka1,...;
DrugID.ime = ...;
[Živali]
Krava1.ime = liska;
Mačka1.ime = lojzka;
Ampak postane že mnogo težje berljivo, bolj nezanesljivo (error-prone), počasno, neprilagodljivo, ... Pa še grdo
Da to prečešeš, rabiš točno tolk časa kolk ga pač rabiš, da greš enkrat čez, nobene znanosti
Kako bo to tist program skup spravil je pa njegov problem
To dvoje pa ne gre glih najboljš skupi
Zgodovina sprememb…
- spremenilo: darkolord ()
Utk ::
Seveda gre. Program dobi ključ in vrednost (lahko še po sekcijah) v vsakem primeru, za to imaš lahko standarden parser, ki ni nobena znanost in ki se ga ne da praktično nič optimizirat, kaj naredi s ključi in vrednosti program je pa njegov problem, zato je ta tvoj primer čisto nepomemben. Kako si bo nek program shranil stvari je njegov problem. Najbrž ne bi niti z nobenim zakonom prepovedali xml obliko, če bi glih kdo hotel. Samo za nastavitve ni potrebna.
darkolord ::
kaj naredi s ključi in vrednosti program je pa njegov problem, zato je ta tvoj primer čisto nepomemben.Seveda je moj primer pomemben, ker si s prebranimi ključi in pripadajočimi vrednostmi v obskurnih oblikah ne moreš čisto NIČ pomagat. Cel XML lahko namreč tut v trenutku prebereš v eno string spremenljivko in občuduješ to hitrost...
Najbrž ne bi niti z nobenim zakonom prepovedali xml obliko, če bi glih kdo hotel. Samo za nastavitve ni potrebna.Ni potrebna, je pa zelo uporabna.
Zgodovina sprememb…
- spremenilo: darkolord ()
Utk ::
Seveda je moj primer pomemben, ker si s prebranimi ključi in pripadajočimi vrednostmi v obskurnih oblikah ne moreš čisto NIČ pomagat.
Ti si seveda ne moreš z njim čisto nič pomagat, ker ti očitno ni kaj dost jasno.
darkolord ::
Meni je seveda prav vse jasno, tebi pač ne, glede na to, da daješ nasprotujoče si izjave (pa se pol vn vlečeš).
Poldi112 ::
>In kako maš tukaj več userjev? In za vsakega userja še par nečesa (npr. domačih živali, kot sem napisal v zgornjem primeru)?
Pa je to dejansko življenski primer - zakaj bi sploh hotel kaj takega? A v registry dejansko imaš take primere? Ker na unix in bsd še nisem srečal takih konfiguracij. Nastavitve za različne userje ne tlačiš v en sam file, ampak ima vsak uporabnik svoje datoteke z nastavitvami, sistem pa svoje. Lepe in enostavne.
Lahko za svoj primer tudi bazo uporabiš, če gremo že v ekstreme. Samo kje je smisel tega?
Pa je to dejansko življenski primer - zakaj bi sploh hotel kaj takega? A v registry dejansko imaš take primere? Ker na unix in bsd še nisem srečal takih konfiguracij. Nastavitve za različne userje ne tlačiš v en sam file, ampak ima vsak uporabnik svoje datoteke z nastavitvami, sistem pa svoje. Lepe in enostavne.
Lahko za svoj primer tudi bazo uporabiš, če gremo že v ekstreme. Samo kje je smisel tega?
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
BigWhale ::
In kako maš tukaj več userjev? In za vsakega userja še par nečesa (npr. domačih živali, kot sem napisal v zgornjem primeru)?
Tudi tisti zgornji primer je resljiv in precej trivialen.
Ampak, tako kot sem prej rekel. Cisto vsak config tlacit v XML je nesmiselno. Config datoteke morajo biti razumljive in lahko berljive brez kakrsnih koli posebnih readerjev in mora se jih dati cim bolj enostavno spreminjati in popravljati.
XML je samo pogojno human readable.
Ko pa dosezes nek nivo kompleksnosti pa je XML povsem primeren in smiselen za uporabo. Ampak v veliki vecini konfiguracij, vsaj kar se *nix sistemov tice je pa nesmiselen. Ker je sintaksa konfiguracijskih datotek dovolj preprosta.
Qt in KDE imasta ze narejen API za delo s konfiguracijo. Stvar je trivialna za uporabo in se vedno human readable. Pri hitrosti se pa ne bi nic poznalo, ce bi bila konfiguracija v XML, TXT ali pa binarni obliki. :)
To, da je v txt obliki pride marsikdaj prav.
Mavrik ::
Ampak, tako kot sem prej rekel. Cisto vsak config tlacit v XML je nesmiselno. Config datoteke morajo biti razumljive in lahko berljive brez kakrsnih koli posebnih readerjev in mora se jih dati cim bolj enostavno spreminjati in popravljati.
Zakaj? Zakaj uporabljat nekaj tako user-unfriendly kot so config fajli namesto ustreznega grafičnega, prijaznega in dokumentiranega vmesnika kar v sami aplikaciji?
The truth is rarely pure and never simple.
darkolord ::
Pa je to dejansko življenski primer - zakaj bi sploh hotel kaj takega?Če te že primer tako moti, zamenjaj "user" z na primer "subnet" ali "server", "domače živali" s "clienti" ali "servisi", pa bo bolj domač primer...
Zakaj uporabljat nekaj tako user-unfriendly kot so config fajli namesto ustreznega grafičnega, prijaznega in dokumentiranega vmesnika kar v sami aplikaciji?+1 :)
hamax ::
Zakaj? Zakaj uporabljat nekaj tako user-unfriendly kot so config fajli namesto ustreznega grafičnega, prijaznega in dokumentiranega vmesnika kar v sami aplikaciji?
Zakaj naj bi se pregleden config file in graficen umesnik izkljucevala?
BlueRunner ::
Saj se ne...
Je pa res, da nekateri očitno živijo v nekem svetu, kjer Pravi Sistemci™ delajo iz ukazne vrstice z vi in je to edini pravi zveličavi način za upravljanje sistema.
Ravno tako, kot nekateri programerji živijo v svetu, kjer je greh dati uporanbiku GUI/TUI pripomoček z ustrezno kontekstno pomočjo, da si lahko 90% nastavitev spremeni ne, da bi mu bilo potrebno skakati naokoli z nekim urejevalnikom teksta.
Iz vidika programerja so tekstovne datoteke z nastavitvami legacy drek. Kako bom v deseti vrstici spremenil ime iz "Janez" v "Jožica"? Errr... seveda tako, da bom v začasno datoteko napisal prvih 9 vrstic, nato novo 10. vrstico, za njo pa še preostanek datoteke. Potem pa jo bom premaknil iz začasne v pravo nastavitveno. Komplicirano? Niti ne, je pa daleč od pridevnikov elegantno, učinkovito, pregledno.
Bi rad imel v nastavitvah zapisano številko? Ni problema, samo naredi še nadzor napak, ki bo uporabniku povedal, če je nekdo kot številko napisal "Pi". Iz 5 vrstic kode gremo proti 50 vrsticam... Zgoraj našteti pridevniki se oddaljujejo.
Ali ima lahko eno polje več različnih vrednosti? Kaj bo ločilo? Ali se lahko ločilo pojavi tudi v podatku? Bo potrebno uporabiti dodaten znak še za "escaping"? Adijo preglednost in učinkovitost. Na eleganco sem že davno tega pozabil.
Kaj naj z dokumentacijo v tekstovni datoteki, mi ni ravno jasno. Po eni strani pomaga, po drugi strani pa iz nastavitev naredi megabajtnega monstruma, saj imam notri nenadoma vse obstoječe nastavitve, njihove privzete vrednosti in opis vsake izmed teh vrednosti. Kakšen užitek gledati 500+ različnih možnih nastavitev, ki me ne zanimajo, medtem ko iščem tisto, ki jo dejansko rabim. Pravi programerski princip: programerji nasledniki morajo brati komentarje svojih predhodnikov, ker se jim ni dalo pisati dokumentacije. Sistemci pa morajo brati komentarje programerjev, ki se jim ni dalo pisati ne dokumentacije, ne pripomočka za spreminjajne nastavitev.
Ali program kdaj pride v položaj, da mora shraniti svoje nastavitve nazaj v datoteko? Super. Ravnokar smo bodisi izgubili komentarje v datoteki, bodisi smo napisali program, ki poleg konfiguracije zapiše še dokumentacijo. Elegantno? Niti pod razno.
V kateri kodni tabeli je datoteka? UTF-8? UTF-16? Windows 1250? ISO-8859-1? ISO-8859-15? Ali sem ta detajl upošteval? Koliko vrstic kode imamo sedaj že pod pasom?
Aha! Seveda tukaj pride XML kot rešitev. Prepustimo XML knjižnici vse to packanje s kodnimi tabelami, tipi, vrednostmi in konteksti. Datoteko preberem v DOM in ga tam manipuliram. Če rabim kaj shraniti, shranim DOM nazaj v datoteko in je stvar rešena.
Fail 1. DOM moram shraniti v začasno datoteko, nato pa začasno datoteko premakniti v nastavitveno. Kajti, če bo med pisanjem prišlo do napake, bo joj! Tako pa imam možnost najti vsaj to kopijo datoteke.
Fail 2. Sedaj pa je dokument nenadoma strukturiran in se v njega več ne da tako enostavno pisati z vi, kot se je dalo prej. Dokumentacija je v takšnem primeru praviloma iz njega tudi izginila. Diff je nenadoma prešel iz uporabnega orodja na marginalno uporabno, pač odvisno od strukture dokumenta, ki jo program zapisuje. Če bosta dva atributa med seboj zamenjana, bo diff zagnal jok in stok, pomen pa se morda sploh ni spremenil. Zaradi zamikanja so vrstice končajo v 200. stolpcu, ali pa se vrstice sploh ne uporabljajo in je celoten dokument v eni vrstici. Vi nenadoma več ni pravo orodje za to, temveč si začne vzdrževalec iskati XML urejevalnik.
Enostavnost? Eleganca? Učinkovitost? Vse je šlo po odtoku ven.
Zato je smiselno imeti in uporabljati knjižnico za nastavitve. Vsa packarija gre iz aplikacije ven v ločeno knjižnico, ki jo uporablja N različnih aplikacij. Zapis je lahko v tekstnih, binarnih ali pa kakršnih koli že načinih, poanta je samo v temu, da ni razloga, da se bi programer na platformi X ukvarjal s to težavo.
Prva posledica pa je, da imajo datoteke z nastavitvami enotno strukturo. Enotna struktura pa omogoča izdelavo splošnih orodij za čačkanje po njihovi vsebini, če to pač kdo želi početi.
Ko pa imaš enkrat splošna orodja, pa jih tudi uporabljaš. Samo zato, ker je v '70 letih prejšnjega stoletja nekdo imel na voljo samo ed, pa to še ne pomeni, da je to edino, najboljše in ultimativno orodje za obdelavo nastavitev.
Je pa res, da nekateri očitno živijo v nekem svetu, kjer Pravi Sistemci™ delajo iz ukazne vrstice z vi in je to edini pravi zveličavi način za upravljanje sistema.
Ravno tako, kot nekateri programerji živijo v svetu, kjer je greh dati uporanbiku GUI/TUI pripomoček z ustrezno kontekstno pomočjo, da si lahko 90% nastavitev spremeni ne, da bi mu bilo potrebno skakati naokoli z nekim urejevalnikom teksta.
Iz vidika programerja so tekstovne datoteke z nastavitvami legacy drek. Kako bom v deseti vrstici spremenil ime iz "Janez" v "Jožica"? Errr... seveda tako, da bom v začasno datoteko napisal prvih 9 vrstic, nato novo 10. vrstico, za njo pa še preostanek datoteke. Potem pa jo bom premaknil iz začasne v pravo nastavitveno. Komplicirano? Niti ne, je pa daleč od pridevnikov elegantno, učinkovito, pregledno.
Bi rad imel v nastavitvah zapisano številko? Ni problema, samo naredi še nadzor napak, ki bo uporabniku povedal, če je nekdo kot številko napisal "Pi". Iz 5 vrstic kode gremo proti 50 vrsticam... Zgoraj našteti pridevniki se oddaljujejo.
Ali ima lahko eno polje več različnih vrednosti? Kaj bo ločilo? Ali se lahko ločilo pojavi tudi v podatku? Bo potrebno uporabiti dodaten znak še za "escaping"? Adijo preglednost in učinkovitost. Na eleganco sem že davno tega pozabil.
Kaj naj z dokumentacijo v tekstovni datoteki, mi ni ravno jasno. Po eni strani pomaga, po drugi strani pa iz nastavitev naredi megabajtnega monstruma, saj imam notri nenadoma vse obstoječe nastavitve, njihove privzete vrednosti in opis vsake izmed teh vrednosti. Kakšen užitek gledati 500+ različnih možnih nastavitev, ki me ne zanimajo, medtem ko iščem tisto, ki jo dejansko rabim. Pravi programerski princip: programerji nasledniki morajo brati komentarje svojih predhodnikov, ker se jim ni dalo pisati dokumentacije. Sistemci pa morajo brati komentarje programerjev, ki se jim ni dalo pisati ne dokumentacije, ne pripomočka za spreminjajne nastavitev.
Ali program kdaj pride v položaj, da mora shraniti svoje nastavitve nazaj v datoteko? Super. Ravnokar smo bodisi izgubili komentarje v datoteki, bodisi smo napisali program, ki poleg konfiguracije zapiše še dokumentacijo. Elegantno? Niti pod razno.
V kateri kodni tabeli je datoteka? UTF-8? UTF-16? Windows 1250? ISO-8859-1? ISO-8859-15? Ali sem ta detajl upošteval? Koliko vrstic kode imamo sedaj že pod pasom?
Aha! Seveda tukaj pride XML kot rešitev. Prepustimo XML knjižnici vse to packanje s kodnimi tabelami, tipi, vrednostmi in konteksti. Datoteko preberem v DOM in ga tam manipuliram. Če rabim kaj shraniti, shranim DOM nazaj v datoteko in je stvar rešena.
Fail 1. DOM moram shraniti v začasno datoteko, nato pa začasno datoteko premakniti v nastavitveno. Kajti, če bo med pisanjem prišlo do napake, bo joj! Tako pa imam možnost najti vsaj to kopijo datoteke.
Fail 2. Sedaj pa je dokument nenadoma strukturiran in se v njega več ne da tako enostavno pisati z vi, kot se je dalo prej. Dokumentacija je v takšnem primeru praviloma iz njega tudi izginila. Diff je nenadoma prešel iz uporabnega orodja na marginalno uporabno, pač odvisno od strukture dokumenta, ki jo program zapisuje. Če bosta dva atributa med seboj zamenjana, bo diff zagnal jok in stok, pomen pa se morda sploh ni spremenil. Zaradi zamikanja so vrstice končajo v 200. stolpcu, ali pa se vrstice sploh ne uporabljajo in je celoten dokument v eni vrstici. Vi nenadoma več ni pravo orodje za to, temveč si začne vzdrževalec iskati XML urejevalnik.
Enostavnost? Eleganca? Učinkovitost? Vse je šlo po odtoku ven.
Zato je smiselno imeti in uporabljati knjižnico za nastavitve. Vsa packarija gre iz aplikacije ven v ločeno knjižnico, ki jo uporablja N različnih aplikacij. Zapis je lahko v tekstnih, binarnih ali pa kakršnih koli že načinih, poanta je samo v temu, da ni razloga, da se bi programer na platformi X ukvarjal s to težavo.
Prva posledica pa je, da imajo datoteke z nastavitvami enotno strukturo. Enotna struktura pa omogoča izdelavo splošnih orodij za čačkanje po njihovi vsebini, če to pač kdo želi početi.
Ko pa imaš enkrat splošna orodja, pa jih tudi uporabljaš. Samo zato, ker je v '70 letih prejšnjega stoletja nekdo imel na voljo samo ed, pa to še ne pomeni, da je to edino, najboljše in ultimativno orodje za obdelavo nastavitev.
BigWhale ::
Zakaj? Zakaj uporabljat nekaj tako user-unfriendly kot so config fajli namesto ustreznega grafičnega, prijaznega in dokumentiranega vmesnika kar v sami aplikaciji?
Za shranjevanje pozicije okna, desktopa in razporeditev elementov znotraj aplikacije potrebujes nek kontejner in za upravljanje z njim ne potrebujes graficnega vmesnika v nekaterih primerih te stvari pocne ze program sam, recimo cisto banalen primer digiKama:
[AlbumFolderView]
LastSelectedItem=3
OpenFolders=0,427,2,3
Spisek odprtih folderje in kateri je izbran. Stvar je povsem berljiva in glede na kolicino informacij v njej ni nobene potrebe po shranjevanju v XML ali binarni obliki. KDE api pa poskrbi zato, da imas stvari dostopne brez, da se ukvarjas s parsanjem text datoteke. To se zgodi na nizjem nivoju ob startu progama, stvari se pa zapisejo takrat, ko program ugasnes (v tem primeru, lahko bi bilo narejeno tudi drugace).
BlueRunner ::
Spisek odprtih folderje in kateri je izbran. Stvar je povsem berljiva in glede na kolicino informacij v njej ni nobene potrebe po shranjevanju v XML ali binarni obliki.
Ravno tako pa tudi ni nobene potrebe, da bi ti bila ta datoteka berljiva ljudem oziroma, da bi obstajala potreba, da po njej šariš z urejevalnikom besedila.
Poldi112 ::
>Ravno tako pa tudi ni nobene potrebe, da bi ti bila ta datoteka berljiva ljudem oziroma, da bi obstajala potreba, da po njej šariš z urejevalnikom besedila.
Daleč od tega. Lahko da to enostavno hočeš - a ni debilno narediti težko berljivo konfiguracijo SAMO ZATO, da je ne bi mogli več enostavno editirati na roko.
Potem remote administracija. Sem že popravljal konfugiracije ljudem na dial up. Pozabi tu na grafične vmesnike.
Daleč od tega. Lahko da to enostavno hočeš - a ni debilno narediti težko berljivo konfiguracijo SAMO ZATO, da je ne bi mogli več enostavno editirati na roko.
Potem remote administracija. Sem že popravljal konfugiracije ljudem na dial up. Pozabi tu na grafične vmesnike.
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
BigWhale ::
Potem remote administracija. Sem že popravljal konfugiracije ljudem na dial up. Pozabi tu na grafične vmesnike.
Preden kdo dvigne roko, da je register mozno urejati na daljavo bi jaz samo dodal, da je za urejanje registra potreben dodaten protokol ali pa extension kakemu obstojecemu protokolu pri urejanju tekstovnih datotek je pa ze SSH dovolj.
En tak dodaten protokol pa urejanje registra se toliko bolj zaplete.
noraguta ::
Potem remote administracija. Sem že popravljal konfugiracije ljudem na dial up. Pozabi tu na grafične vmesnike.
Preden kdo dvigne roko, da je register mozno urejati na daljavo bi jaz samo dodal, da je za urejanje registra potreben dodaten protokol ali pa extension kakemu obstojecemu protokolu pri urejanju tekstovnih datotek je pa ze SSH dovolj.
En tak dodaten protokol pa urejanje registra se toliko bolj zaplete.
a nisem že rekel - odpri cmd ter napiši notri reg /?
Pust' ot pobyedy k pobyedye vyedyot!
Mavrik ::
Preden kdo dvigne roko, da je register mozno urejati na daljavo bi jaz samo dodal, da je za urejanje registra potreben dodaten protokol ali pa extension kakemu obstojecemu protokolu pri urejanju tekstovnih datotek je pa ze SSH dovolj.
In SSH pa ni protokol? Spet si daješ na oči "Linux-way" plašnice. Na Windows je SSH popolnoma ničvreden in je "samo še en" protokol. Tako da ti je čist vseeno če se zajebavaš z implementacijo SSH strežnika ali pa uporabljaš kak Terminal Services, na katerega se potem priklopi ustrezna client aplikacija za konfiguracijo.
The truth is rarely pure and never simple.
Zgodovina sprememb…
- spremenil: Mavrik ()
BlueRunner ::
>Ravno tako pa tudi ni nobene potrebe, da bi ti bila ta datoteka berljiva ljudem oziroma, da bi obstajala potreba, da po njej šariš z urejevalnikom besedila.
Daleč od tega. Lahko da to enostavno hočeš - a ni debilno narediti težko berljivo konfiguracijo SAMO ZATO, da je ne bi mogli več enostavno editirati na roko.
A ni debilno narediti lahko berljivo konfiguracijo SAMO ZATO, ker nekaj refusenikov pravi, da jo moraš? Ne glede na to, da je morda kakšna druga oblika zapisa bolj optimalna glede na potrebe aplikacije/danosti platforme...
Kot je BigWhale rekel: vzameš knjižnico in se ne sekiraš kako to knjižnica počne. Če jo dobiš že na sistemu, toliko boljše.
Zgodovina sprememb…
- spremenilo: BlueRunner ()
Poldi112 ::
>Ne glede na to, da je morda kakšna druga oblika zapisa bolj optimalna glede na potrebe aplikacije/danosti platforme...
Če bi txt datoteke imele kakšne resne pomankljivosti, jih verjetno ne bi tako pogosto uporabljali za konfiguracijske datoteke, aneda?
Če bi txt datoteke imele kakšne resne pomankljivosti, jih verjetno ne bi tako pogosto uporabljali za konfiguracijske datoteke, aneda?
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
BlueRunner ::
Če programerji ne bi vedno znova izumljali tople vode, bi svet tudi bil lepši, aneda?
Kot primer pa: koliko je bilo v Sloveniji napisanih Glavnih knjig s saldokonti in koliko je na svetu bilo napisanih programčkov, ki ti kažejo kakšno je vreme na drugi strani tvojega okna?
Kot primer pa: koliko je bilo v Sloveniji napisanih Glavnih knjig s saldokonti in koliko je na svetu bilo napisanih programčkov, ki ti kažejo kakšno je vreme na drugi strani tvojega okna?
Poldi112 ::
Um, v čem je problem da imaš izbiro? In ali je pri 20 vrstah jogurta v trgovini tudi za izumljanje tople vode?
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
BlueRunner ::
Izumljanje tople vode je, da za vsako izmed 20 vrst jogurta na roke izdelaš novo polnilno linijo. Vsaka seveda deluje malo po svoje, saj kam bi pa prišli, če bi jagodni in breskov jogurt v lončke slučajno vlivali na enostaven in generičen način.
Je izbira in je izumljanje tople vode. To, da si vsaka aplikacija po svoje zmušljuje kako in kam bo spravljala svoje nastavitve je izumljanje tople vode.
Seveda pa nekatere platforme nimajo centralnega ogrevanja, potem pa je potrebno pač sezidati peč in kuriti na drva. Tako kot v časih starih mam in atov.
Je izbira in je izumljanje tople vode. To, da si vsaka aplikacija po svoje zmušljuje kako in kam bo spravljala svoje nastavitve je izumljanje tople vode.
Seveda pa nekatere platforme nimajo centralnega ogrevanja, potem pa je potrebno pač sezidati peč in kuriti na drva. Tako kot v časih starih mam in atov.
Utk ::
No, ampak ti bi rad imel generično polnilno linijo, ki se jo ne da enostavno popravit, ampak je to komplicirano, ali pa kar nemogoče.
Mavrik ::
No, no, ne gradit slamnatega moža. Tega on nikoli in nikjer ni omenjal.
The truth is rarely pure and never simple.
BlueRunner ::
Nič ne bi jaz imel rad. Samo poskušam pokazati zakaj je imeti urejevalnik teksta za edino zveličavo sistemsko orodje precej čudna izbira. Če ne delaš ravno neke malenkosti, potem pač vzameš knjižnico. Ko vzameš knjižnico, postane popolnoma vseeno kje so podatki shranjeni. Tekst, bin, SQL, LDAP, ...
Tako kot je BigWhale povedal: če imaš KDE aplikacijo, uporabiš to, kar ti KDE nudi. Kaj je spodaj je b.v. Če imaš Windows aplikacijo, vzameš to, kar ti Windows nudijo. Kaj je spodaj, je b.v.
Varnostne kopije pa so muz. Brez njih adijo pamet. Tako, da neko reševanje nastavitev je ob današnjih cenah diskov čisto zapravljanje časa in denarja, ki si ga lahko privoščijo tisti, ki imajo obojega preveč.
Tako kot je BigWhale povedal: če imaš KDE aplikacijo, uporabiš to, kar ti KDE nudi. Kaj je spodaj je b.v. Če imaš Windows aplikacijo, vzameš to, kar ti Windows nudijo. Kaj je spodaj, je b.v.
Varnostne kopije pa so muz. Brez njih adijo pamet. Tako, da neko reševanje nastavitev je ob današnjih cenah diskov čisto zapravljanje časa in denarja, ki si ga lahko privoščijo tisti, ki imajo obojega preveč.
Utk ::
No, ampak ta tema je o tem, kaj je bolje imet spodaj. Jasno pa je, da je glih tako možno naredit nekaj nad navadnimi txt fajli, kot nad binarnimi, ali pa xml. S tem da se v navadnem txt fajlu tudi človek kaj znajde in lahko kaj popravi, če program pokvari. To se pa kdaj že zgodi, tudi če imaš knjižnice za to.
BlueRunner ::
Kaj je spodaj je IMHO nepomembno. Za oba pristopa imaš orodja s katerimi si lahko pomagaš, če te res prsti srbijo.
To, kar pa se v oknih pogosto zgodi pa je ekvivalent tega, da se bi aplikacija spomnila izbrisati nekaj datotek iz /etc. Glede na to, da verjetno še danes velik del uporabnikov oken dela s pravicami administratorja, pa je čudno, da ni takšnih "napak" še več, kot jih je.
To, kar pa se v oknih pogosto zgodi pa je ekvivalent tega, da se bi aplikacija spomnila izbrisati nekaj datotek iz /etc. Glede na to, da verjetno še danes velik del uporabnikov oken dela s pravicami administratorja, pa je čudno, da ni takšnih "napak" še več, kot jih je.
noraguta ::
napak v regu - je napram etc relativno malo. oba pristopa immata prednosti in slabosti. ampak neke znanosti že dolgo ni ne v enem ne v drugem. prabrat par varijabel pač ni problem. le kaj en ali drug pristop omogočata.
rahlo sem za txt ker zlahka vrinem kej svojga med dve akcije. pri registru to terja nekaj več kontanja kja je kje izvede in spremeni.(lahko gre samo za nastavitev acl ali registriranje komponente.
rahlo sem za txt ker zlahka vrinem kej svojga med dve akcije. pri registru to terja nekaj več kontanja kja je kje izvede in spremeni.(lahko gre samo za nastavitev acl ali registriranje komponente.
Pust' ot pobyedy k pobyedye vyedyot!
Zgodovina sprememb…
- spremenilo: noraguta ()
BigWhale ::
In SSH pa ni protokol? Spet si daješ na oči "Linux-way" plašnice. Na Windows je SSH popolnoma ničvreden in je "samo še en" protokol. Tako da ti je čist vseeno če se zajebavaš z implementacijo SSH strežnika ali pa uporabljaš kak Terminal Services, na katerega se potem priklopi ustrezna client aplikacija za konfiguracijo.
V bistvu bi bil vesel ce bi mi razlozil kako to deluje. :) Vem kaj je RDP in tudi vem kaj so terminal services, ne vem pa kako terminal services delujejo in kako se s pomocjo tega gres oddaljeno urejanje registra.
BigWhale ::
XML se lazje popravis, ker vsaj ves, kaj ti kaj pomeni. :)
XML über alles!
To ves samo pogojno, se dalec od tega, da to vedno vedel.
<xml ...> <mCCM fd="333" prm="down"\> <refDrg auth="done"> <it cnt="3">First</it> <it prgm="srsly">Second</it> </refDrg> </xml>
Na, zdej pa popravi ...
Zgodovina sprememb…
- spremenil: BigWhale ()
ender ::
V bistvu bi bil vesel ce bi mi razlozil kako to deluje. :) Vem kaj je RDP in tudi vem kaj so terminal services, ne vem pa kako terminal services delujejo in kako se s pomocjo tega gres oddaljeno urejanje registra.Enako, kot se greš s sshjem urejanje config datotek na daljavo - prijaviš se v računalnik in poženeš program za urejanje. (s tem, da lahko register na daljavo urejaš tudi direktno, če imaš SMB dostop do računalnika).
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
cache invalidation, naming things and off-by-one errors.
noraguta ::
XML se lazje popravis, ker vsaj ves, kaj ti kaj pomeni. :)
XML über alles!
To ves samo pogojno, se dalec od tega, da to vedno vedel.
<xml ...> <mCCM fd="333" prm="down"\> <refDrg auth="done"> <it cnt="3">First</it> <it prgm="srsly">Second</it> </refDrg> </xml>
Na, zdej pa popravi ...
in tega ne moreš napisati v txt datotekah podobno kriptično? dej mudel prebol sebe ...
Pust' ot pobyedy k pobyedye vyedyot!
Loki ::
saj mas dokumentacijo zraven, hitro ves, kaj kaj pomeni. sicer je bil pa register narejen ravno zato, da se ustima problem sranja z .ini datotekami.
se pa strinjam z bluerunnerjevim monologom.
se pa strinjam z bluerunnerjevim monologom.
I left my wallet in El Segundo
BigWhale ::
in tega ne moreš napisati v txt datotekah podobno kriptično? dej mudel prebol sebe ...
Seveda lahko ampak pri XMLju se nihce ne trudi, da bi stvar bila razumljiva.
Rajsi ti preboli dejstvo, da XML nima prav nobene prednosti pri nekih takih preprostih zadevah kot je konfiguracija programov. Morda v WIN sistemih, ker imate tako komplicirane konfiguracije in ne gre drugace. Unix konfiguracije so pa preproste in enostavne, nobene potrebe po telovadbi z XMLjem. Poglej si kako konfiguracijo kdaj na unixu, bos videl.
BlueRunner ::
Apache? Sendmail? Postfix master.cf? Asterisk?
Yay! Sami vzori berljivosti in preglednosti. Pri takšnih si včasih prav zaželim kakšnega malo bolj preglednega in mnogo manj kriptičnega načina nastavljanja.
Le zakaj nekaj se v zadnjih letih skoraj vsem programom po vrsti v nastavitve dodaja možnost vključevanja drugih nastavitvenih datotek? Morda zato, ker so njihove konfiguracije predolge? Prekompleksne? Nepraktične za zapis v eni sami datoteki?
Seveda s takšnim pristopom ni nič narobe. To je pač ena izmed možnih rešitev. Samo naj mi prosim nihče ne razlaga o *enostavnih* konfiguracijah v *ix sistemih. Če pa ne verjame meni na besedo, pa naj pogleda koliko različnih parserjev/writerjev ima webmin. Vse samo zato, da lahko administrator kdaj kaj naredi tudi brez naprezanja z urejevalnikom teksta in vsaj z minimalno kontrolo pravilnosti vpisa.
Zakaj npr. sudo uporablja in priporoča striktno uporabo visudo skripte? Ravno zato, ker si lahko z urejevalnikom teksta narediš dovolj škode, da se zakleneš ven iz sistema. Tako pa se pred zapisom v dejansko konfiguracijsko datoteko preveri sintakso. Pa so nastavitve v sudoers ene izmed bolj enostavnih in preglednih.
Preproste in enostavne? Dream on.
Yay! Sami vzori berljivosti in preglednosti. Pri takšnih si včasih prav zaželim kakšnega malo bolj preglednega in mnogo manj kriptičnega načina nastavljanja.
Le zakaj nekaj se v zadnjih letih skoraj vsem programom po vrsti v nastavitve dodaja možnost vključevanja drugih nastavitvenih datotek? Morda zato, ker so njihove konfiguracije predolge? Prekompleksne? Nepraktične za zapis v eni sami datoteki?
Seveda s takšnim pristopom ni nič narobe. To je pač ena izmed možnih rešitev. Samo naj mi prosim nihče ne razlaga o *enostavnih* konfiguracijah v *ix sistemih. Če pa ne verjame meni na besedo, pa naj pogleda koliko različnih parserjev/writerjev ima webmin. Vse samo zato, da lahko administrator kdaj kaj naredi tudi brez naprezanja z urejevalnikom teksta in vsaj z minimalno kontrolo pravilnosti vpisa.
Zakaj npr. sudo uporablja in priporoča striktno uporabo visudo skripte? Ravno zato, ker si lahko z urejevalnikom teksta narediš dovolj škode, da se zakleneš ven iz sistema. Tako pa se pred zapisom v dejansko konfiguracijsko datoteko preveri sintakso. Pa so nastavitve v sudoers ene izmed bolj enostavnih in preglednih.
Preproste in enostavne? Dream on.
BigWhale ::
Apache? Sendmail? Postfix master.cf? Asterisk?
Yay! Sami vzori berljivosti in preglednosti. Pri takšnih si včasih prav zaželim kakšnega malo bolj preglednega in mnogo manj kriptičnega načina nastavljanja.
Asteriska ne poznam, apache in postfix (ja, tudi master.cf) sta pa precej enostavna za konfigurirat in predvsem precej dobro dokumentirana.
Sendmailov config file pa v bistvu ni human readable, ker se ga generira s pomocjo orodja M4. Tisto konfigurirat je lazje, je pa sendmail nekaj iz zgodnjega zacetka prejsnjega stoletja in ni primerljiv. Poleg tega se ga vsaka resna distribucija otepa. :)
Le zakaj nekaj se v zadnjih letih skoraj vsem programom po vrsti v nastavitve dodaja možnost vključevanja drugih nastavitvenih datotek? Morda zato, ker so njihove konfiguracije predolge? Prekompleksne? Nepraktične za zapis v eni sami datoteki?
Ja, predvsem so ratale konfiguracije predolge v nekaterih primerih. Za 20 virtual hostov je lazje imeti 20 konfiguracijskih datotek kot eno predolgo. A to po tvojem zakomplicira zadevo?
Samo naj mi prosim nihče ne razlaga o *enostavnih* konfiguracijah v *ix sistemih.
Stvar JE enostavna, ce preberes manual. Ce ga pa ne preberes, pa tako ali tako nimas kaj poceti z brskanjem po konfiguraciji. Tako kot tudi ne bi smel klikat po konfiguracijskem GUIju, ce nisi prebral manuala/online helpa, ker v bistvu ne ves kaj klikas. Lahko se ti zdi, da ves, ker zgleda enostavno. V resnici pa ne ves.
Če pa ne verjame meni na besedo, pa naj pogleda koliko različnih parserjev/writerjev ima webmin.
Webmin je skropucalo.
Vse samo zato, da lahko administrator kdaj kaj naredi tudi brez naprezanja z urejevalnikom teksta in vsaj z minimalno kontrolo pravilnosti vpisa.
Za tiste, ki ne znajo tipkati in se imajo potem za poznavalce, ker znajo nekaj v webminu naklikat. K pa webmin zastrika konfiguracijo pa pridejo sem (ali pa kam drugam) jokat.
Zakaj npr. sudo uporablja in priporoča striktno uporabo visudo skripte? Ravno zato, ker si lahko z urejevalnikom teksta narediš dovolj škode, da se zakleneš ven iz sistema. Tako pa se pred zapisom v dejansko konfiguracijsko
datoteko preveri sintakso. Pa so nastavitve v sudoers ene izmed bolj enostavnih in preglednih.
Jaz visudo se nikoli v zivljenu nisem uporabil. Seveda se lahko zaklenes iz sistema. Tako kot se lahko zaklenes iz sistema ce napacen rule na firewallu napises. A Windows ti s svojim GUIjem to prepreci?
Preproste in enostavne? Dream on.
Ja, vecina stvari je preprostih in enostavnih za urejanje. Ne za nekoga, ki nima pojma ampak za nekoga, ki te stvari zna poceti. Takih, ki ne znajo pa tako ali tako nocemo, ne v enem in ne v drugem taboru. Mar ne?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Microsoft varčuje s prostorom pri varnostnih kopijah registraOddelek: Novice / Operacijski sistemi | 10057 (7873) | d4vid |
» | windows servisi - kako dodat parametre?Oddelek: Programiranje | 1098 (859) | NSA Agent |
» | Po 20 letih se poslavlja stari logotip Windows (strani: 1 2 )Oddelek: Novice / Operacijski sistemi | 19750 (15295) | dope1337 |
» | Prvi koraki po Windows Visti (strani: 1 2 3 )Oddelek: Novice / Operacijski sistemi | 13658 (8705) | 64202 |
» | Shranjevanje nastavitev -- register proti /etc (strani: 1 2 )Oddelek: Programska oprema | 4467 (4149) | 64202 |