Zachování vypočítané velikosti podadresářů

Vítáme všechny návrhy na nové funkce a vylepšení programu Altap Salamander. Pro každý návrh prosím vytvořte samostatný příspěvek.
User avatar
Mem
Posts: 202
Joined: 08 Mar 2006, 15:07
Contact:

Post by Mem »

SelfMan wrote:
Horká klávesa držená 1 vteřinu, to není šťastné řešení... viděl jste někdy něco takového ve Windows?
Nuz, k tomu mozem len uviest jedno miesto... je nim "Ovladanie jednym prstom" vo Windows. Zapne sa pri dlhsom podrzani klavesy shift.
OT: A neco podobneho je naprosto debilni prejmenovavani ve Winech, kdyz se klikne na polozku a mezi kliknutimi se ponecha nejaka pauza. A to by odpovidalo prave tomu cekani 1 sekundu ve Windows, kdy chci prejmenovat, tak musim pockat a kliknout znova. Druha vec je, ze vetsina lidi spousti to prejmenovani omylem (kdyz provedou double-click a pritom zmeni vic polohu kurzoru) a prijde mi, ze sam MS nevedel, co dela.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Souhlas, tohle je z ergonomického pohledu peklo na zemi.
User avatar
SelfMan
Posts: 1144
Joined: 05 Apr 2006, 20:51
Contact:

Post by SelfMan »

Jan Rysavy wrote:Souhlas, tohle je z ergonomického pohledu peklo na zemi.
To je pravda, ale zase nemozem tvrdit, ze som to vymyslel, kedze nieco take uz existuje. :-).
Radek

Post by Radek »

Ja kdyz odhlidnu ode vsech souvislosti, tak idealni by byl stav, kdy Salamander ukazuje aktualni udaje. Funkce "neco spocitej a neaktualizuj" mi prijde trochu out.

Takze jednoznacne bych byl pro velikosti adresaru jako rezim. Ukazuje se bud aktualni velikost, nebo DIR, jako ze se pocita. Ukazovani poslednich vysledku mi neprijde jako vhodne. Pouzivani nejakych znaku pro odliseni neaktualnich vysledku se mi moc nezda. Pokud se mi prerazuji adresare pri vypoctu velikosti (mam trideno dle velikosti), tak to asi chci.

Ze to trva je fakt. Chci funkci, tak musim pockat na vysledky. Prepnuti neni zas az tak pracne. Lidi si stezuji na neustale mackani Ctrl+Shift+F10, takhle se zmackne jedno pri zapnuti, podruhy pri vypnuti. Vypocet by musel probihat ve vlakne na pozadi.

Ohledne toho samovolneho prerazeni - ja osobne bych to nebral jako spatnou vlastnost.

Jo jeste jediny co me napadlo je, ze kdyz se pocita, mozna by tam nemelo byt DIR, ale neco jineho. Pak bych totiz na pohled nepoznal, zda jsou zobrazeny velikosti adresaru a pocitaji se, nebo jestli je funkce vypnuta. Ale to je jen detail.

Snazil jsem se o uzivatelsky jednoduchou, snadno pochopitelnou, zapamatovatelnou a technicky realizovatelnou funkcnost. A snazil bych se vyvarovat dulezitcych voleb v nastavenich. Podle meho nazoru solidni software musi vyhovovat 95% uzivatelum v defaultu.
User avatar
Datalog
Posts: 244
Joined: 10 Dec 2005, 11:21
Location: Prague, Czech Republic
Contact:

Post by Datalog »

Radek wrote:... Ukazuje se bud aktualni velikost, nebo DIR, jako ze se pocita. Ukazovani poslednich vysledku mi neprijde jako vhodne.
Radek wrote: Snazil jsem se o uzivatelsky jednoduchou, snadno pochopitelnou, zapamatovatelnou a technicky realizovatelnou funkcnost ...
První a druhý text jsou v rozporu. Zobrazovat aktuální velikost není technicky realizovatelné (jde to pouze za specifických podmínek na specifickém prostředí a i tak ne 100% spolehlivě).
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Jsem rád, že jsme problematiku takto rozebrali. Je vidět, že je to funkce komplikovaná jak z hlediska ovladatelnosti, tak po stránce implementace. Z našeho pohledu má tedy velmi nízkou prioritu.
User avatar
Datalog
Posts: 244
Joined: 10 Dec 2005, 11:21
Location: Prague, Czech Republic
Contact:

Post by Datalog »

Jan Rysavy wrote:Jsem rád, že jsme problematiku takto rozebrali. Je vidět, že je to funkce komplikovaná jak z hlediska ovladatelnosti, tak po stránce implementace. Z našeho pohledu má tedy velmi nízkou prioritu.
:D Vidím, že se z toho snažíte vyvlíknout jak se dá. :wink:

Ale ne, to by byla škoda. Myslím, že i částečná implementace by byla velkým přínosem i pro laické uživatele. Ostatně právě toho je debata ukázkou. Chápu, že tomu asi nedáte prioritu číslo jedna, ale "velmi nízkou" snad ne.

EDIT: Jinak se příště nebudu snažit vysvětlovat faktickou technickou nerealizovatelnost určitých řešení a nechám téma hezky rozvinout do maximalistického návrhu, abyste pak s odřenýma ušima realizovali alespoň část.
Denis

Post by Denis »

Dobrý den,

Otázka uchováváni velikostí adresářů by možná měla bát položena trochu jinak. A to "K čemu bude uživatel tuto funkci využívat?" resp. "Pro jaké využití tuto funkci uděláme". Je maximálně nemoudré dělat funkce jen proto, že ještě nejsou implementovány. Vždy je nutné znát jejich smysl.

Kdybych měl navrhnou jednoduché řešení, znělo by asi takto:

V nastavení se nastaví počet adresářů u kterých se bude uchovávat velikost. Řádově desítky. Pokud bude funkce uchovávaní velikosti zapnutá, potom se při každém zjištění velikosti adresáře tento uloží i s vypočítanou velikostí do tohoto seznamu (Bez podadresářů). Seznam se bude při překročení jeho kapacity chovat jako FIFO. Seznam adresářů nebude viditelný a při ukončení SS se vymaže. V podstatě taková RAMka.

Samotné zobrazování velikostí adresářů v panelu SS se potom implementačně omezuje jen na triviální vyhledáváni řetězce s cestou k adresáři v seznamu "vypočítaných" adresářů.

S aktuálnosti zobrazených hodnot bych si hlavu nelámal a všechny takto zobrazené informace o velikosti bych zobrazoval třeba s předřazeným znakem tilda "~", jak jste uváděli výše.

Implementace by měla být dosti jednoduchá.

S pozdravem
Denis
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Pro mě osobně by tato funkce sloužila k tomu, abych napočítal velikosti skupiny adresářů a následně v nich mohl provést změny. Například smazat z nich soubory/adresáře, případně je přesunout pryč. Proto bych potřeboval, aby se během výpočtu uložily velikosti pro celý strom. Jinak bych po vstupu (například) do největšího adresáře nevěděl, jaké je rozložení dat v jeho podadresářích.
Denis

Post by Denis »

Základem je implementace onoho seznamu adresářů s jejich vypočítanou velikostí.

Nad tímto už by se pouze (např. v nastavení programu) upravovala logika toho, kdy a jaké adresáře se mají do onoho seznamu ukládat. Platilo by pouze omezení maximálního počtu adresářů v onom seznamu.

Nemyslím si, že je vždy nutné pamatovat si velikosti adresářů v celém stromu.

Pokud by se vše implementovalo šikovně, nebylo by třeba se omezovat pouze na uchováváni velikosti adresářů, ale do seznamu by se k jednotlivým adresářům mohly přidat i další údaje.

Pokud by si uživatel nastavil, že chce uchovávat 10000 adresářů, vědomně by se tak připravil na zpomalení SS (pravděpodobně nevýrzné) a na zvětšení paměťových nároků SS (pravděpodobně trochu výraznější :-)) Ale byla by tak dána uživateli volba. Někdo, kdo by hctěl zachovávat jen velikosti u adresářů, nad kterýma stitkl mezerník, by si nastavil maximální počet položek na 100. Někdo jiný by chtěl dělat údržbu, tak by si nastavil "dočasně" seznam položek na 10000.
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Post by zarevak »

Ten nápad s FIFO má podobný problém jako nepamatovat si celý strom, ale jen větve do určité zvolené maximální úrovně.

U větví se tak bude uživatel divit, že když si nechal spočítat velikosti adresářů na C:\ tak je viděl i v C:\Windows a C:\Windows\System32 a nějak se mu nechtějí zobrazit na třeba ploše (C:\Documents and Settings\%USERNAME%\Desktop) - toho že má nastevenu maximální hloubku 2 úrovně si nemusí všimnout.

U FIFO nastane podobný problém: Uživateli se zapamatují hodnoty C:\ pak přejde do C:\Windows a nechá si znova spočítat celikosti podadresářů následně přejde do C:\Windows\System32 a znova spočítá velikosti podadresářů. Uložených hodnot je však na zadaný buffer již mnoho a tak se některé z původního C:\ smažou. Když se pak vrátí na C:\ tak se bude ptát, proč některé adresáře ztratily informace o velikosti...

Jak již dříve bylo zmíněno tato funkce:
- musí být dotažena do konce (nesmí ztrácet výsledky kvůli nějakému nepředvídatelnému vnitřnímu omezení)
- musí být pochopitelná i pro začátečníky (zde může dělat problém i neznámý znak ~)
- musí být jednoduše objevitelná (žádné "drž tři klávesy po pět vteřin zatímco se otáčíš na své židli a modlíš k severu")
- musí být možné ji zas jednoduše vypnout (výsledky zapomenout a zobrazit u adresářu text DIR)
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

PŘESNĚ. A ještě bych přidal
- neměla by být konfigurovatelná (jde skutečně o okrajovou záležitost)
Denis

Post by Denis »

OKI, tak jdeme na to :-)

"musí být dotažena do konce": Jak poznáte, že je funkce dotažená do konce? To nelze skoro nikdy jednoznačně určit. Uživatel očekává funkčnost podle ovládacích prvků, kterými se ona funkčnost realizuje, podle popisků a informací k této funkčnosti, podle své zkušenosti. Ale souhlasím, že by se v určitých případech mohl uživatel divit, jak to, že mu najednou informace o velikosti zmizela. Ale vše je jen o tom, jak tato funkčnost bude uživateli prezentovat. Není to žádném "dotažení do konce" ve implementačním smyslu. Pokud se bude on funkce jmenovat "Uchováváni historie vypočítanách velikostí", nebo třeba ještě příznačněji, uživatel nebude brát ono "mizení" jako nežádoucí efekt, jelikož ho bude očekávat.

"musí být pochopitelná i pro začátečníky" - taky není zcela přesné. Funkce musí být pochopitelná pro ty, pro které je určená, nikoli pro začátečníky. A znak tilda byl opět jen orientační, jelikož už byl zmiňován výše v tomto threadu. Opět se vše dá elegantně řešit samozřejmě i bez onoho znaku.

"musí být jednoduše objevitelná" - Upřesním, jelikož předpokládám, že se již bavíte o nějaké obecné funkci. Nároky na objevení nějaké funkce musí být úměrné jejímu významu a frekvenci nutnosti jejího znovuobjevováni. Samozřejmě její umístění by mělo být v souladu s obecně známými pravidly.

"musí být možné ji zas jednoduše vypnout ". Pokud se jedná o funkci, kterou je nutno často zapínat/vypínat

"neměla by být konfigurovatelná": Samozřejmě. Vše záleží na konceptu.


Ne zřádka se stává, že k vyřešení nějakého funkčního rámce, na který si uživatele stěžují, spočívá nikoli v implementaci, ale ve správném pojmenováni třeba jen jednoho tlačítka.
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Post by zarevak »

Pro obecnou funkcionalitu máte se svým příspěvkem pravdu. Ve svém příspěvku jsem se snažil shrnout, co již zde bylo řečeno o této konkrétní funkci.

Dotažení do konce je možná špatný výraz, ale je to podmínka, která trochu odpovídá i požadavku o nulové konfiguraci. Je totiž nesmysl implementovat funkci, kde si v nastavení budete moci zvolit, zda je funkce k ničemu, protože si nepamatuje skoro nic nebo protože sebere všechny dostupné systémové prostředky. Taková funkce je nedotažená a uživatelům většinou spíše na obtíž.
Co se týká zapomínání - tak jak je to teď, tak je uživatel jednoduše pochopí, že při opuštění adresáře ztartí výsledky. Jakmile se zavede nějaká historie je nutné, aby bylo přesně definováno za jakých okolností se výsledky ztratí. Při omezení počtem pamatovaných adresářů uživatel neví, kolik této paměti využil a kdy se hodnoty začnou ztrácet.
Srovnejte třeba s jakýmkoliv webovým prohlížečem: Všechny mají funkcionalitu Zpět, 1) která není kapacitně omezená (přestože málokdo využije hloubku více jak 10) a 2) vyprázdní se právě při přesně definovaném stavu vypnutí prohlížeče.

Pochopitelnost pro začátečníky - jedná se o začátečníky ve smyslu k této fuknci. Nemůže se stát, že uživatel spustí nějakou (třeba novou) funkci a pak bude muset zajít do helpu, aby zjistil, k čemu je, jak se ovládá a podobně...

Možnost funkci vypnout - pokud by se jednalo o obecnou (novou fuknci), máte pravdu, že nemusí být vždy třeba ji vypínat. Nezapomínejme však, že uživatelé jsou však velmi konzervativní - viz třeba reakce na novou ikonku nebo žádost o odstranění Splash Screenu - a nechtějí se učit nové věci. U této konkrétní funkce jde o nutnost mít možnost hodnoty zapomenout na popud uživatele (což je přesně definovaný stav korespondující s výše uvedeným požadavkem) a vrátit se do obvyklého režimu s texty DIR. (třeba už jen kvůli řazení souborů podle velikosti a adresářů podle názvu)
User avatar
SelfMan
Posts: 1144
Joined: 05 Apr 2006, 20:51
Contact:

Post by SelfMan »

Jan Rysavy wrote:Pro mě osobně by tato funkce sloužila k tomu, abych napočítal velikosti skupiny adresářů a následně v nich mohl provést změny. Například smazat z nich soubory/adresáře, případně je přesunout pryč. Proto bych potřeboval, aby se během výpočtu uložily velikosti pro celý strom. Jinak bych po vstupu (například) do největšího adresáře nevěděl, jaké je rozložení dat v jeho podadresářích.
Vidim, ze diskusia sa pekne rozprúdila :-)

Este by som k tomu opat dodal postup, ktory pouzivam ja:
- vojdem do adresara
- CTRL+Shift+F10
- Zoradit podla velkosti
- vojst do najvacsieho adresa
- CTRL+Shift+F10
- Zoradit podla velkosti (auto)
- navrat o uroven vyssie
- CTRL+Shift+F10
- Zoradit podla velkosti (auto)

...atd. (k tomu "medziakcie" copy/move/delete)
Vysledok? Prilis caste pouzivanie CTRL+Shift+F10.

Osobne si myslim, ze umoznit moznost permanentneho prepocitavania velkosti nie je problem realizovat. Ako pouzivatel pocitam s tym, ze to chvilu potrva. (Cim hlbsie v strukture, tym kratsie)

Nepredpokladal som, ze riesenie takejto na pohlad trivialnej veci bude nakoniec tak komplikovane.
Post Reply