Dziŕkujŕ za odwiedziny. Jak wy┐ej napisano, nazywam siŕ tak a tak i mieszkam tu a tu wraz z rodzin▒ tak▒ a tak▒. Dziŕkujŕ rˇwnie┐ mojemu dostawcy za wywieszenie moich rzeczy do wgl▒du.

Spis rzeczy

Iak to rozvi▒za╗: brak mieistza na poŔtŕ!

Vprovadzenie

Tzo zrobi╗, kiedy poiemnoÂ╗ sk°inki poŔtovei iest na vyŔerpaniu? Może siŕ tak zda°i╗, kiedy p°echovuiemy na╣e listy v katalogach na sietievych, użivai▒tz protoko│u IMAP. Ot°imuiemy vtedy viadomoÂ╗ od administratora:

PoiemnoÂ╗ sk°inki poŔtovei iest na vyŔerpaniu — prosimy vybra╗ listy ze sk°inek p°i pomotzi programmu poŔtovego

Rozvi▒zanie to iest może dobre z punktu vidzenia administratora, ale nie z na╣ego — z dnia na die˛ tratimy v╣itkie listy, te pot°ebne i te niepot°ebne razem. Można oŔiviÂtie v╣itkie te listy zgra╗ na pamiŕ╗ massov▒ i nosi╗ ie p°i sobie, ale iest do doÂ╗ nievygodne.

Na ╣ŔŕÂtie do zagadnienia możemy podeiÂ╗ bardiei vybiˇrŔo, method▒ statystyŔn▒. P°evażnie boviem bardiei op│atza siŕ usuva╗ duże listy niż ma│e, ponievaż duże listy zavierai▒ naiŔŕÂtiei viele informacii niepot°ebnych — lub na odvrˇt, na tyle pot°ebnych, że varto ie vyodrŕbni╗ iako osobny dokument.

I tu nasuva siŕ pytanie: v iaki sposˇb możemy odnale╝╗ v╣itkie duże listy? Intuicja podpoviada, że duże listy nai│atzniei znale╝╗ v dużich katalogach; należi zatem o╣atzova╗ │▒Ŕn▒ vielkoÂ╗ plikˇv v po╣Ŕegˇlnych katalogach i spravdi╗ zavartoÂ╗ tych z nich, ktˇre zavierai▒ naiviŕtzei danych. K│opot polega tu po pierv╣e na tym, że nie znamy rozmiaru katalogu, v ╣ŔegˇlnoÂti odpoviadai▒tzego p°egrˇdtze vevn▒t° sk°inki poŔtovei; użitek poŔtovy vpravdie povie nam, iaki iest u niego rozmiar danych p°egrˇdki, ale Ŕŕsto ma siŕ to niiak do mieistza zaimovanego v sk°intze sietievei, a to z tei prostei p°iŔiny, że nie v╣itkie viadomoÂti ze sk°inki s▒ p°echovyvane mieistzevo; te ktˇre nie s▒ p°echovyvane mieistzevo nie vp│yvai▒ na mieistzevy rozmiar p°egrˇdki podavany p°ez użitek poŔtovy (użitkovnitzi vymiany Microsoft mai▒ pod tym vzglŕdem lepiei).

Moie rozvi▒zanie

(Pyton)

Na ╣ŔŕÂtie na╣ gospoda° daie dostŕp do v│asnych plikˇv p°ez FTP. OŔiviÂtie możemy otvo°i╗ okno FTP v p°egl▒dartze; v ten sposˇb możemy iednak obei°e╗ tylko po╣Ŕegˇlne pliki i katalogi; v dal╣im ti▒gu nie mamy na°ŕdia do podsummovania zavartoÂti. Iest vpravdie możlivoÂ╗ spravdzenia rozmiaru każdego pliku z osobna, ale │atviei iest to zrobi╗ iednym ruchem.

V tym tzelu otvieramy okno FTP.EXE, │▒Ŕimy siŕ z FTP.2A.PL i podaiemy poletzenie

ls -ilR 2a.txt

Po vykonaniu tego poletzenia ot°imuiemy dok│adny spis plikˇv v pliku 2a.txt v bież▒tzim katalogu; iest on vpravdie bezużiteŔny dla Ŕ│ovieka, ale może siŕ p°ida╗ iako dane do dal╣ego opratzevania.

Kod programmu sk│ada siŕ pogl▒dovo z nastŕpui▒tzich elementˇv logiŔnych:

VŔityvanie spisu treÂti vymaga p°ipo°▒dkovania każdego elementu do katalogu nad°ŕdnego, tzo vymaga ko°istania z do tei pory zbudovanei ŔŕÂti modelu. Na ╣ŔŕÂtie posta╗ spisu zapevnia że naipierv poiavia siŕ katalog, a potem iego zavartoÂ╗.

ęŔegˇ│y vdrożenia

Spis

V miarŕ p°etva°ania opisu plikˇv generuie siŕ iednoŔeÂnie v postati HTML v osobnym oknie. Pozvala to na Âledzenie postŕpu pratzi oraz zapobiega poiavianiu siŕ ost°eże˛ o zbieg│ym kodie. Kod vŔitui▒tzi posta╗ pliku iest doÂ╗ vrażliv i p°i b│ŕdnych danych może siŕ zapŕtli╗ bez vypisyvania; v takim razie należi p°erva╗ dia│anie skryptu.

Katalog

Katalog plikˇv zaviera zbiˇr cech plikˇv. Cech▒ kluŔov▒ pliku iest numer vŕz│a podavany v spisie — za vyi▒tkiem katalogu poŔ▒tkovego, dla ktˇrego p°iimuiemy vartoÂ╗ 0. Do p°echovania katalogu plikˇv s│użi s│ovnik zbudovany na nastŕpui▒tzei zasadie:

[numer vŕz│a nad°ŕdnego]
["/."]
pe│ne dane pliku umie╣Ŕenego v danym vŕ╝le
["/" + nazva vŕz│a]
pe│ne dane pliku o danei nazvie v katalogu nad°ŕdnym

P°edrostek / dodaiemy oŔiviÂtie dla unikniŕtia zde°enia ze zvyk│ymi cechy s│ovnika.

Obti▒żenie

ObliŔenie obti▒żenia polega na tym, że dla każdego katalogu obliŔa siŕ iego obti▒żenie tza│kovite ved│ug vzoru:

Vzˇr ten iest, iak vida╗, formalnie samopovrotny, ale zast▒piliÂmy i prostym p°eiÂtiem po v╣itkich znalezionych zbiorach, propagui▒tz obti▒żenie do vŕz│ˇv nad°ŕdnych.

ObliŔone obti▒żenie zapisuie siŕ v osobnym s│ovniku.

Vyniki

ObliŔone s│ovniki p°iŔepia siŕ do okna formula°a iako v│aÂtivoÂti globalne. Nie iest to nailep╣e rozvi▒zanie, ale standardovy DOM nie pozvala na budovanie vielopoziomovych s│ovnikˇv dynamiŔnych, bez ktˇrych nie można siŕ tu oby╗.

(Od biedy można symulova╗ s│ovniki dvupoziomove mai▒tz do dyspozycji identyfikator formula°a i nazvŕ pola, ale ograniŔenia sk│adniove identyfikatorˇv s▒ inne niż v p°ipadku nazv plikˇv, viŕtz t°eba by by│o dodatkovo kodova╗ nazvy — no i vymaga│oby to utvo°enia ie╣Ŕe iednego dokumentu.)

Vyniki umie╣Ŕane s▒ v spisie do vyboru v koleinoÂti od naitiŕż╣ego, p°i Ŕim użitkovnik vidi obliŔony tiŕżar vŕz│a, a pozosta│e informacje o vybranym vŕ╝le ot°imuie po vybraniu vŕz│a i p°itiÂniŕtiu p°itisku.

Žledzenie

Piervotnie algorythm na bież▒tzo demonstrova│ p°etva°ane dane v osobnym oknie p°egl▒darki; v poŔ▒tkovym okresie rozvoiu by│o to nieodzovno dla rozpoznania i popravienia b│ŕdˇv, ale v ostateŔnei postati povodova│o znaŔne opˇ╝nienie dia│ania programmu. Po vy│▒Ŕeniu kodu odpoviedialnego za Âledzenie vykonanie odbyva siŕ b│yskaviŔnie — pop°ednio t°eba by│o Ŕeka╗ kilka minut. P°ipu╣Ŕam, iż povodova│o siŕ to dużim na°utem p°i p°ekazyvaniu danych z użitku HTML do dedykovanego okna Âledzenia, uruchomionego v innym processie. V razie k│opotˇv można tŕ cechŕ z povrotem v│▒Ŕi╗.

Uvagi dla użitkovnika

OŔiviÂtie nie każdy dużi katalog można usun▒╗; v ╣ŔegˇlnoÂti nie poletzam usuvania g│ˇvnego katalogu poŔty… Ale s▒ katalogi, ktˇre s▒ duże i nie s▒ pot°ebne v tza│oÂti; iuż to zobaŔimy v spisie, że niektˇre viadomoÂti s▒ nadmiernie tiŕżkie (do tego tzelu t°eba upo°▒dkova╗ viadomoÂti ved│ug rozmiaru), iuż to może okaza╗ siŕ, że możemy stare viadomoÂti p°enieÂ╗ do archivum (to iest nietzo bardiei ryzykovne). Po vykonaniu tych ŔinnoÂti, ieżeli nie p°inios│y oŔekivanego vyniku dla poiemnoÂti sk°inki, zaŔinamy v╣itko od poŔ▒tku (od FTP).

Poniż╣i formula°, vraz z napisan▒ dla˛ funkcj▒ show_listing, s│użi do zletzania obliŔe˛. Iest on oŔiviÂtie nie pod│▒Ŕony, ponievaż nie mam pod rŕk▒ Tvoiego spisu plikˇv.

Formula° dia│a tylko v samodielnei applikacji HTA, po Âti▒gniŕtiu i pod│▒Ŕeniu spisu!

Podgl▒d nag│ˇvkˇv

Klaviatura ekranova