Ma jött szembe ugyanez a hiba, ezért túrtam ki a Google Reader cache-ből a rég dokumentált workaroundot:
A Microsoft által dokumentált bugba futottam bele ma reggel: az Exceled az outline-os táblák csikicsukizása (=show or hide) közben hajlamos aljas módon elpakolászni a commentet tartalmazó cellák comment boxait a helyükről. Ez odáig fajulhat, hogy a tábla fizikai sor/oszlopszélességén túlra pakolja őket és ekkor jön a baj: nem korrigálja, amit elbarmolt, hanem helyette rád mordul egy kétértelmű hibaüzenettel a következő sor/oszlop csikicsukinál.
Ezt a problémát oldja fel az alábbi kis függvény, ami minden commentboxodat a forrás cella jobb felső sarka fölé pozícionál 10-10 pixellel. Használd egészséggel:
Sub resetCommentPositions()
Dim S As Worksheet, C As Comment
ForEach S In ThisWorkbook.Worksheets
ForEach C In S.Comments
C.Shape.Left = C.Parent.Offset(0, 1).Left + 10
C.Shape.Top = C.Parent.Offset(0, 1).Top - 10
Next C
Next S
EndSub
divjein – ez a post igyekszik inkább a felhasználóbarát, kevésbé nerd oldalról hozzátenni egy keveset, amikor azt mondja: itt az ultimate tagging megoldás a Gravity Applications Tags nevű software-e személyében:
A Tags az openmeta standardot használja, s a tageket szabványos “extended attribute”-ként (=xattr) tárolja.
Az openmeta project wiki oldalán számos software közül választhat az OS X user, ha épp a Spotlight motoron túl saját metaadatot gyártani támadna épp kedve – az én választásom több próbálkozás után a Tags-re esett (az igazat megvallva jó rég láttam először, de mostanában angelday hívta fel rá a figyelmem).
A Tags UI korrekt, kedvelem. A keresője egy okosított Spotlight: a találatokon SPACE-t nyomva ugrik azonnal elő a QuickLook ablak (igen hasznos featúra), a találatok között szereplő folderekben mászkálhatok még a kereső ablakon belül, a találatok szabadon draggelhetőek. A sebessége is teljesen jó (nota bene: a gyári Spotlight kereső ugyanúgy használható egy tag keresésére a tag:amitkeresel szintaxissal).
A legvégére maradt a legfontosabb kérdés: “de minek taggelsz kézzel, eFi?”
A választ javarészt a képként pdf-be scannelt hivatalos papírok adják meg. Jó két éve vásároltam egy Fujitsu ScanSnap S500M nevű dokumentumscannert – azóta minden egyes beérkező hivatalos levél átmegy a scanneren, aki egyszerre olvassa a papír 2 oldalát, majd a képként behúzott dokumentumot beágyazza egy pdf-be és időbélyegző-szerű névvel ellátva elteszi egy folderbe. Ezek a file-ok aztán megkapják a tagjeiket és onnantól bármikor egy mozdulattal előránthatóak.
De ugyanígy taggelhetem a Safariban/Firefoxban olvasott oldalt, vagy akár a Mailplane-ben olvasott levelet is – a támogatott alkalmazások listája erre.
A Tags jelenleg a 2.0.2-es verziónál tart. Az aktuális változatban találtam egy fura hibát: ha egy másik, szintén openmetát használó tagging app már felvett egy ő vagy ű karaktert tartalmazó taget, akkor azt a Tags nem hajlandó felismerni és alkalmazni sem egyetlen dokumentumon sem. A bugreport ment a fejlesztőknek, egy napra rá jött a köszönőlevél, melyben írják, hogy dolgoznak rajta és értesítenek, amint kész a fix.
Egy szó, mint száz, eddig tetszik.
Update: fds Mester elmondja a historyt (ezúton köszönjük az infot):
xattr támogatás 10.4 óta van, resource forkok meg classic mac óta, meg a Finder comment mező HFS-ben.
A mellékelt ábrán látható példány cirka 25 órán át sült, de ettől persze sokkal kevesebb idő alatt előállítható a dolog (a 25 órát a nedves fa és a nem eléggé felfűtött kemence tette szükségessé).
Ez az adag így készült:
A hentes csontfűrésszel jó kétujjnyi szeletekre vágta a csontos csülköket. A szeletekhez csináltam egy szószt: só, bors, rozmaring, olívaolaj, sör, fokhagyma került a turmixgépbe. A folyós turmixba bemártogattam a szeleteket és ráfektettem az előzőleg a tepsibe rámolt zöldségágyra, mely ezúttal petrezselyemből, sárgarépából, héjas krumpliból, paprikából és hagymából állt. A zöldségek is kaptak egy kevés sót, az egész miskulancia még sok-sok rozmaringot, majd öntöttem alá pár doboz sört és ment be a kemencébe.]]>
Hanem a saláta: újhagyma, koktélparadicsom, mozzarella, bazsalikom, tépősaláta, zsenge spenót, rucola, zöldpaprika. No és az öntet, Tibi barátom agymenése: olívaolaj, méz, só, bors, fokhagyma, kapor, joghurt.
A három együtt kihagyhatatlan – ha nem volt még meg ez a kombináció, feltétlen tégy egy próbát, megéri!]]>
itt, magyar billentyűzethez itt, a forrás meg alant (a script a ~/Pictures könyváradban létre fog hozni egy delme-meteo nevű foldert, amibe a leszippantott képeket menti. Ezt a foldert törli és létrehozza minden alkalommal újra és újra.):
(*
Meteo
by Gabor PENOFF (//fns.pappito.com)
release 20100516-1002
Requirements:
- before run you need to Enable Access for Assistive Devices in SysPrefs/Universal Access
- install Growl from http://growl.info to get non-modal notification dialogs
Usage:
- just run the script
That's all.
*)set myScriptID to"Meteo"-- ID for Growl display-- set date variables:set myYear togettext1thru4of(year of(current date)asstring)set myMonth tomonthof(current date)asnumberif myMonth <10thenset myMonth to"0"& myMonth asstringset myDay to day of(current date)if myDay <10thenset myDay to"0"& myDay asstringset myHour tohoursof(current date)if myHour <10thenset myHour to"0"& myHour asstringset myMinute to"00"set tmpDir to"delme-meteo"set myFilePrefix to"delme-met-"set tIdokepStart to"http://www.idokep.hu/arch_kep.php?kep="set myURLs to{¬
"http://img.koponyeg.hu/img/15napos/"& myYear &"/"& myMonth &"/1_"& myYear &"-"& myMonth &"-"& myDay &"grafikon.png|png", ¬
"http://terkep.idokep.hu/kep.php?kep=mix|jpg", ¬
"http://terkep.idokep.hu/kep.php?kep=hoterkep2®io=hu1680|jpg", ¬
"http://terkep.idokep.hu/kep.php?kep=felhokep2®io=hu1680|jpg", ¬
"http://terkep.idokep.hu/kep.php?kep=szelterkep2_anim|gif", ¬
"http://terkep.idokep.hu/kep.php?kep=szelterkep2®io=hu1680|jpg", ¬
"http://terkep.idokep.hu/kep.php?kep=legnyomasterkep|jpg", ¬
"http://feny.idokep.hu/kep.php?kep=csap24|jpg", ¬
"http://feny.idokep.hu/kep.php?kep=csap1|jpg", ¬
"http://feny.idokep.hu/kep.php?kep=aqua|jpg", ¬
"http://terkep.idokep.hu/kep.php?kep=rh|jpg", ¬
"http://terkep.idokep.hu/kep.php?kep=uv|jpg", ¬
"http://terkep.idokep.hu/kep.php?kep=pollen0|jpg"}set rootDir to(path to home folderasstring)&"Pictures"tellapplication"Finder"toset fullDir to rootDir &":"& tmpDir -- save fullDirset myNotification to"Downloading METEO images to "& fullDir &"..."tellmeto notifyWithGrowl(myScriptID, myNotification)trytellapplication"Finder"todelete fullDir
endtrytellapplication"Finder"tomakenewfolder at alias rootDir withproperties{name:tmpDir}-- download files:tellapplication"URL Access Scripting"set i to1repeatwith myURL in myURLs
set thisURL to(text1thru((offset of"|"in myURL)-1)of myURL)set thisExt to(text((offset of"|"in myURL)+1)thru(length of myURL)of myURL)setthe myFile to fullDir &":"& myFilePrefix & i &"."& thisExt
download thisURL tofile myFile replacing yesset i to i +1endrepeatendtell-- display images using full-featured QuickLook window:tellapplication"Finder"activateopenfolder fullDir
set current view offront Finder windowtolist view
endtelltellapplication"System Events"
key code 0 using {command down}-- cmd+a
key code 6 using {command down, option down}-- cmd+opt+y; y is 16 for US, 6 for Hungarians :)endtell-- that would be the callback after QuickLook:--tell application "Finder"-- activate-- set current view of front Finder window to v-- close front Finder window--end tell-- display images using a very limited (dumb) QuickLook window:--do shell script "qlmanage -p " & (POSIX path of fullDir) & "/* >& /dev/null"-- GrowlCheck:on growlInstalled()trydo shell script"ls /Library/PreferencePanes/Growl.prefPane/"returntrueonerrorreturnfalseendtryend growlInstalled
-- Growl notifier:on notifyWithGrowl(myApp, myText)set myIconApp to"Preview"set notificationID to myApp &".default"if growlInstalled()thentellapplication"GrowlHelperApp"-- list of notification typessetthe ANL to{notificationID}-- list of enabled notificationssetthe DNL to{notificationID}-- register script
register asapplication myApp all notifications ANL default notifications DNL icon ofapplication myIconApp
-- send notification
notify withname notificationID title myApp description myText applicationname myApp
endtellelse-- skip alert if no Growl installed--display alert "Growl is not installed"endifend notifyWithGrowl