Appleblog.cz

Appleblog.cz

Sep 3 / 7:25am

Tip: Jak zrychlit Terminal ve fullscreen režimu Mac OS X Lion

Terminál v Mac OS X umí pracovat v celoobrazovkovém režimu podobně jako ostatní aplikace (Safari, Mail apod.) Oproti ostatním aplikacím mi ale Terminál přišel dost pomalý - jak při roztažení okna přes celou obrazovku tak i při přepínání mezi plochami. Předpokládal jsem, že za to může můj obstarožní MacBook Black 2008. Vyzkoušel jsem proto fullscreen Terminálu i na nejnovějším MacBook Pro 13" a MacBook Air 11" a odezva byla téměř stejně pomalá. Při dalším zkoumání jsem odhalil příčinu extrémního zpomalení Terminálu - může za to průhlednost okna s příkazovým řádkem. Používám barevné schéma Homebrew, které má nastavenu velice decentní průhlednost 5% (takže téměř není znát). Po vypnutí průhlednosti se odezva Terminálu ve fullscreen režimu rapidně zrychlila a dá se s ním normálně pracovat i při vyšších rozlišeních obrazovky.

Jak ověřit (vypnout) průhlednost Terminálu:

  • Otevřete dialog pro nastavení programu (menu Terminal / Preferences nebo Cmd+,).
  • Vyberte záložku Settings.
  • Vlevo je seznam barevných schémat, ověřte že máte vybrané schéma pro které chcete změnit nastavení.
  • V podzáložkách vyberte Window.
  • Klikněte na položku Color v sekci Background.
  • Zobrazí se systémový dialog pro výběr barvy. Hodnota Opacity určuje stupeň neprůhlednosti, 100% = žádná průhlednost.

Na závěr ještě jeden tip pro Terminál - barevná schémata lze rychle přepínat pomocí paletky Inspector/Settings - klávesová zkratka Cmd+I. Můžete si např. vyzkoušet nové schéma Silver Aerogel, které se ale pro běžnou práci přiliš nehodí - kombinace průhlednosti a rozmazání podkladu okna je výpočetně poněkud náročnější, vypadá ale velice efektně :)

Filed under  //  Mac OS X  
Jul 27 / 1:14pm

Tip: Finder v Mac OS X Lion umí přesunovat soubory klávesovou zkratkou

Tak jsme se dočkali, v nové verzi Mac OS X Lion je možné soubory nejenom kopírovat pomocí Cmd+C a Cmd+V, ale pomocí Cmd+C a Cmd+Option+V je dokonce přesunovat. Nových možností práce se soubory je dokonce víc:

  • Cmd+Option+V - přesun souboru
  • Cmd+Option+Shift+V - zkopírování souborů se zachováním vlastníka (Paste File Exactly)
  • Cmd+Option+Shift+D - duplikát souboru se zachováním vlastníka (Duplicate Exactly)

Pro objevování nových možností klávesových zkratek lze použít jednoduchý trik - v rozbaleném menu stačí podržet klávesy Cmd, Option, Control nebo Shift (nebo jejich kombinace) a v menu se zobrazí příkazy pro dané kombinace zkratek.

Filed under  //  Mac OS X  
Jul 22 / 5:04am

Tip: Lion a příliš velké písmo v levém panelu aplikací Finder, iTunes a Mail

Mac OS X Lion 10.7 přišel s razantní změnou levého panelu aplikací Finder, iTunes a Apple Mail - kromě šedivých ikon asi každého po upgradu zarazí i velké písmo. Důvodem bude určitě snaha o zlepšení čitelnosti pro počítače MacBook Air (11.6" má rozlišení 1366x768  a 13.3" 1440x900). V případě zobrazení na klasických MBPro a MB, případně externích monitorech je velikost písma levého panelu zbytečně veliká - naštěstí je možné jí změnit:

  • V System Preferences otevřete sekci General
  •  V roletové nabídce Sidebar icon size vyberte Small

Velikost písma levého panelu Finder/iTunes/Mail se vrátí do rozumných mezí:

Pastedgraphic-1

Teď už mi ani ty šedivé ikonky nepřipadají tak ošklivé :)
Filed under  //  Mac OS X  
Nov 9 / 1:21pm

Resource fork v Mac OS X aneb Proč je ten soubor prázdný když v něm vidím data?!

Kolega pracující v MS Windows obdržel od klienta data v sitx archívu. Po rozbalení archívu s hrůzou zjistil, že adresář Fonts/ obsahuje pouze soubory nulové velikosti. Nainstaloval jsem Stuffit Expander a zkusil rozbalit archív na Macu. Soubory s fonty se zobrazily správně. Zkusil jsem fonty zabalit pomocí BetterZipu a otevřít pod Windows. To samé. Pořád nulová velikost. Na Macu byly fonty vidět, ve Windows nikoli. Napadlo mě, vypsat obsah adresáře v Terminálu. Jaké bylo moje zděšení, když příkaz ls -al vypsal u všech fontů nulovou velikost.

Začal jsem pátrat po původu této macovské zákeřnosti a zjistil jsem, že za vše může rozdělení dat souboru na tzv. resource fork a data fork. Asi každý uživatel Macu zaznamenal, že při zkopírování dat na FAT32 nebo SMB svazek se na tomto svazku vytvoří hromada skrytých souborů začínající tečkou. Ke každému "normálnímu" souboru jeden soubor začínající "._". V těchto souborech jsou uloženy metadata jako ikona souboru, nastavení kterým programem jej otvírat atd. Metadata se odborně nazývají resource fork. Přímo na Macu nejsou vůbec vidět a pouze se starají o správnou interpretaci samotného souboru, tedy data forku. Součástí metadat v resource forku ale mohou být i poměrně obsáhlé struktury - obrázky, zvuky, jazykové překlady a dokonce i fonty. Tím se vysvětlila záhada s nulovými soubory - operační systém, který neumí pracovat s resource forky viděl pouze prázdné data forky - soubory s nulovou velikostí. Fonty jsme převedli do standardního True type formátu a vše již funguje jak má.

Terminál pracuje na nižší úrovni než aplikace v grafickém prostředí Macu, vidí proto pouze data fork. Pro zobrazení resource forku stačí za název souboru doplnit "/..namedfork/rsrc". Pomocí příkazové řádky a příkazu cp lze překopírovat soubory bez resource forku.

Terminal_resfork

Velice podrobné informace o resource forku nabízí Wikipedie.
Filed under  //  Mac OS X  
Oct 21 / 3:03pm

Jak mi zálohování Time Machine (opět) zachránilo spoustu práce a nervů

Představte si modelovou situaci - programujete knihovnu, kterou používáte u dvou (nebo více) projektů. U jednoho projektu potřebujete udělat několik úprav, které jsou specifické pro daný projekt s tím, že až to bude odladěno, zaktualizujete knihovnu v druhém projektu. Jenže odladění se protáhne a mezitím dojde k neodkladným úpravám stejné knihovny v druhém projektu. Po několika dnech práce na druhém projektu se rozhodnete, že přehrajete knihovnu s novými úpravami do prvního projektu. Sekundu (spíš několik milisekund) po přepsání knihovny si uvědomíte, že došlo k přepsání jediné verze knihovny s úpravami pro první projekt. S hrůzou zjišťujete, že první projekt byl pouze na jednom místě, není nikde na serveru, cloudu nebo jiné lokalitě. Co teď? Obnovit smazaný soubor nejde, když je přepsaný jinou verzí souboru, prostě panika. 

Naštěstí v úžasném světě jablečných zařízení existuje zálohovací stroj času Time Machine. Ve Finderu zobrazíte adresář prvního projektu, kliknete na ikonku Time Machine a stroj času Vás jedním kliknutím přenese ke starší verzi knihovny, kterou pomocí tlačítka Restore vrátíte zpátky.

Pastedgraphic-6

Díky tomuto incidentu jsem si znovu připomněl velice důležitou věc - pravidelné zálohování pomocí Time Machine není jenom prevence proti selhání disku, ale dokáže velice dobře pomoci i při drobných nehodách, kdy si omylem přepíšete nějaký dokument nebo jiný soubor. V případě, že jako zálohovací médium používáte síťové disky Apple Time Capsule nebo Synology, provádí se zálohování automatizovaně přes WiFi, aniž by bylo potřeba připojovat externí disk.

Filed under  //  Mac OS X  
Apr 25 / 3:25am

1PasswordAnywhere - výborná funkce správce hesel 1Password

Objevil jsem velice zajímavou funkci oblíbeného správce hesel 1Password (verze 3). Datový soubor (ve skutečnosti se jedná o adresář) funguje zároveň i jako HTML verze aplikace nazvaná 1PasswordAnywhere. Pro její spuštění stačí moderní webový prohlížeč (Safari, Firefox) a funguje i v Microsoft Windows a Linuxu. V kombinaci s online datovým úložištěm (iDisk, Dropbox apod.) je díky tomu možné k heslům přistupovat opravdu odkudkoli.

Ke spuštění 1PasswordAnywhere stačí otevřít soubor 1Password.html který se skrývá uvnitř datového souboru s koncovkou .agilekeychain (na Macu je potřeba k otevření použít volbu Show Package Contents v kontextovém menu). Po zadání master hesla se zobrazí uživatelské rozhraní velice podobné klasické verzi aplikace. Hesla a uložené záznamy lze pouze zobrazovat, ale to v případě nestandardní situace, kdy není k dispozici klasická verze 1Password bohatě dostačuje.


(download)

Filed under  //  Mac OS X  
Apr 10 / 1:01pm

Efektivní práce v souborovém manažeru Finder

Souborový manažer Finder, nedílná součást systému Mac OS X, je vynikající nástroj pro práci se soubory. Oproti systému Microsoft Windows XP-7, kde raději používám Total Commander než Průzkumník, jsem v Mac OS X nikdy neměl potřebu instalovat jiný souborový manažer. Hlavní předností Finderu je přehlednost, rychlost a výborná podpora drag-and-drop. V Mac OS X 10.6 Snow Leopard je Finder (konečně!) nativní 64bit Cocoa aplikace, takže se výrazně zlepšila stabilita a Finder už nepadá.

Zobrazení cesty k aktuálnímu adresáři
Finder lze upravit, aby zobrazoval nad stavovým řádkem celou cestu k aktuálně zobrazenému adresáři (menu View / Show path bar). Cesta je aktivní, na každou nadřazenou složku lze přejít dvojklikem. Další způsob, jak rychle přejít do nadřazené složky je kliknutím pravého tlačítka myši (nebo Control+klik) na název složky v titulku nebo pomocí tlačítka Path v panelu nástrojů (pokud není tlačítko vidět, lze jej přidat pomocí menu View / Customize toolbar, mimochodem na toolbar se dají přetažením umístit i odkazy na soubory nebo adresáře).

Rychlý přesun mezi složkami
Složku lze zobrazit dvojklikem na její název, mnohem praktičtější je použití klávesových zkratek Cmd+šipka:

  • Cmd+šipka nahoru - návrat na nadřazený adresář
  • Cmd+šipka dolů - otevření vybraného adresáře nebo souboru
  • Cmd+šipka doprava - rozbalení vybraného adresáře
  • Cmd+šipka doleva - zabalení vybraného adresáře

V kombinaci s rychlým přesunem v seznamu adresářů pomocí napsání prvních písmen jeho názvu lze velice rychle procházet i rozsáhlé adresářové struktury.

Přejmenování adresáře a souboru
Vybraný adresář/soubor lze přejmenovat stejně jako ve Windows - opětovným kliknutím na název. Praktičtější je použít Enter (Return), který překvapivě neotvírá adresář ani soubor. Prvně jsem byl tímto chováním Finderu zmaten, velice rychle jsem si ale zvykl otevírat soubory i adresáře pomocí Cmd+šipka dolů a teď už mi to přijde praktičtější než Enter.

Aktivní ikonka u názvu adresáře v titulku
Ikonka vlevo od názvu aktuálně zobrazeného adresáře (v titulku okna) je aktivní - lze pomocí ní provádět drag and drop operace s aktuálním adresářem - velice příjemná funkce, kterou navíc umí i velká spousta ostatních aplikací pro názvy otevřených souborů.

Informace/Inspektor
Informace o aktuálně vybraném adresáři/souboru lze zobrazit pomocí zkratky Cmd+I. Zobrazí se okno obsahující detaily (v případě adresáře celková velikost a počet vnořených souborů, u souboru aplikace v které se soubor otevře). Dále se zobrazí přístupová práva, lišta pro barevné označení a pro mě zpočátku záhadné volby Stationery pad a Locked:

Zaškrtnutím Stationery pad se ze souboru stane šablona. Pokud soubor otevřete, otevře se místo něj jeho kopie a původní soubor zůstane nezměněn. Locked zamyká soubor, takže jej nelze změnit nebo přejmenovat.

Informační okno lze pomocí Cmd+Option+I zobrazit také v režimu Inspector, kde se obsah okna mění v závislosti na vybraném adresáři nebo souboru ve Finderu.

Režimy zobrazení obsahu
Finder obsahuje čtyři základní režimy zobrazení obsahu - jako ikony, seznam, cestu nebo CoverFlow. Já obvykle používám zobrazení jako seznam, přijde mi nejpřehlednější a navíc obsahuje i informace jako velikost a datum souborů. I ostatní režimy mají své výhody, např. Cover Flow lze velice dobře použít při procházení dokumentů nebo tabulek, protože je rovnou vidět i obsah.

Nastavení zobrazení lze změnit pomocí Cmd+J. Lze určit jestli se zvolený adresář bude vždy zobrazovat ve vybraném režimu zobrazení, jaká bude velikost textu, mezery mezi ikonami atd. Výhodou je, že změnu nastavení lze provést buď pouze pro aktuální adresář nebo pro všechny.

Velké množství dalších klávesových zkratek lze nalézt na webu Apple - http://support.apple.com/kb/ht1343
Filed under  //  Mac OS X  
Mar 25 / 10:47am

Hackerská soutěž Pwn2own 2010 - iPhone i Snow Leopard prolomen

V kanadském Vancouveru probíhá letošní ročník konference o počítačové bezpečnosti CanSecWest. Součástí konference je také hackerská soutěž Pwn2own, v které bezpečnostní experti soutěží v prolomení internetových prohlížečů a operačních systémů.

První den soutěže byly prolomeny tyto prohlížeče a operační systémy:

  • Safari / iPhone OS (Vincenzo Iozzo a Ralf Philipp Weinmann)
  • Safari / Mac OS X Snow Leopard (Charlie Miller)
  • Microsoft Internet Explorer 8 / Windows 7 (Peter Vreugdenhil)
  • Firefox / WIndows 7 (Nils)

V případě iPhonu byl útok proveden pomocí prohlížeče Safari a výsledkem bylo zkopírování kompletního seznamu SMS na útočníkův server. Celý útok trval pouhých 20 sekund. Prolomení Safari na Mac OS X trvalo Charlie Millerovi 5 minut a jednalo se o třetí prolomení Safari tímto odborníkem za poslední tři roky soutěže.

Jediný prohlížeč, který "přežil" pokusy o prolomení je Google Chrome. Soutěž ale pokračuje další dva dny, ve kterých budou náporu útočníků odolávat kromě Snow Leoparda i systémy Windows Vista a Windows XP. Je škoda, že do soutěže nebyl zapojen také Linux, ačkoli kromě Internet Exploreru existují prohlížeče i ve verzi pro tento operační systém.

Informace o provedených útocích budou předány výrobcům operačních systému a nebudou do vydání patřičných bezpečnostních updatů zveřejněny.

Filed under  //  Aktuality   Mac OS X  
Mar 13 / 2:27am

Technologie Apple Bonjour

Pořídil jsem si zařízení Airport Express a byl jsem velice příjemně překvapen, jak jednoduše a bezproblémově tato krabička funguje co se týká připojení ostatních zařízení v síti. Za vším stojí Apple Bonjour, což je tzv. Zero Conf technologie pro bezúdržbovou správu zařízení v rámci počítačové sítě. 

V praxi to vypadá následovně - do počítačové sítě připojíte novou síťovou tiskárnu (třeba obyčejnou černobílou laserovku pomocí routeru Airport Extreme). Na všech počítačích v síti se tiskárna nabídne pro tisk, aniž by bylo potřeba zadávat její IP adresu, nastavovat cestu atd. Druhý den dojde k resetu routeru, který přiděluje IP adresy a tiskárna dostane novou IP adresu. Nic se neděje, všechny počítače se pomocí Bonjour dozví o této změně a uživatelé nemusí nic nastavovat. Připojíte se s počítačem místo kabelem do WiFi která je na jiné podsíti. Opět nevadí, Bonjour si svojí cestičku najde.

Co vše funguje pomocí Bonjour? Ve světe Apple téměř vše. Bonjour dokáže zastoupit DHCP server a přidělovat IP adresy, provádět překlady jmenných názvů hostitelů bez DNS serveru a nabízet síťové služby bez použití adresářových technologií jako Active Directory nebo Open Directory. Bonjour najdete v iPhone Remote, iTunes sdílení hudby, Airtunes, iChatu, Skype atd. Možnosti Bonjour jsou ale mnohem širší, než pouhé inzerování služeb na TCP a UDP portech. Bonjour umí nabízet přímo určitou webovou stránku, umí nabídnout černobílý tisk na barevné tiskárně atd. 

Bonjour pracuje pomocí dvou technologií - mDNS a DNS-SD. U obou technologií se jedná o rozšíření standardu DNS (Domain Name System), který zajišťuje přidělování názvů domén v internetu a jeho hlavními výhodami jsou hierarchická organizace a decentralizace záznamů (informace se ukládají do cache na ostatních serverech, takže se výrazně zrychlují opakované dotazy).

Technologie mDNS neboli Multicast-DNS je služba pracující obdobně jako DNS server, ale multicast metodou. Každé Bonjour zařízení v sobě obsahuje mDNS server. Pokud chce zařízení zjistit adresu jiného zařízení  v síti, vyšle dotaz na multicast IP adresu (v IPv4 je to 224.0.0.251). Tento dotaz obdrží všechny zařízení v síti a to, které je hledáno, odpoví. 

Druhá technologie DNS-SD (DNS Service Discovery) zajišťuje inzerování služeb zařízení. U služby se definuje port, typ portu (UDP, TCP), název služby a seznam TXT záznamů, které obsahují doplňující informace ke službě.

Služby mDNS a DNS-SD serveru zajišťuje daemon mDNSResponder na UDP portu 5353. Pro zjištění zařízení a registraci služeb lze použít klienta pro příkazovou řádku mDNS. Tento příkaz slouží ke zjišťování aktivních Bonjour služeb (např. mDNS -B _http._tcp vypíše všechny webové stránky nabízené přes Bonjour, mDNS -B _airport._tcp zobrazí nalezené Airport routery). Dále lze s jeho pomocí registrovat nové služby - např. mDNS -R "Uvitaci stranka" _http._tcp . 80 path=/welcome.php vytvoří záložku pro Bonjour kompatibilní prohlížeče (např. Safari). Seznam typů služeb je na http://www.dns-sd.org/ServiceTypes.html.

Zkuste si v příkazové řádce zadat příkaz ping 224.0.0.251. Uvidíte odezvy od všech zařízení s aktivním mDNSResponder serverem (v mém případě Airport Express, MacBook a pokud spustím na iPhonu aplikaci Remote, tak i iPhone).

Bonjour klient existuje kromě verze pro Mac OS X také pro Windows. Zdrojový kód pro mDNSResponder je uvolněn pod Apache licencí, existují verze i pro Linux, Solaris, FreeBSD aj.

V galerii je screenshot příkazové řádky s aktivní instancí mDNS nabízející službu http a ukázka zobrazení této služby v prohlížeči Safari.

Další informace:

(download)

Filed under  //  Mac OS X  
Mar 7 / 12:55am

Launchd - start Mac OS X

Mac OS X je unixový operační systém, start systému proto probíhá obdobně jako u ostatních unixů a klonů unixu. Od verze 10.4 začal Apple místo init a rc.d skriptů používat vlastní framework launchd. Zapomeňte na init, rc.d runlevely, crontab, chroot, xinetd i inetd, launchd se postará o vše potřebné. 

Po zavedení jádra systému je jako první proces s ID 1 spuštěn launchd. Z konfiguračních plist souborů umístěných v adresářích /System/Library/LaunchDaemons a /Library/LaunchDaemons zjistí informace o daemonech, které má spustit při startu (daemon je označení pro program, který běží dlouhodobě na pozadí a zajišťuje chod určité služby). Podle konfigurace daemona buď přímo spustí, nebo pro něj zaregistruje požadované sockety.

Obdobně zajišťuje launchd spouštění procesů při přihlášení uživatele. V tomto případě se konfigurační soubory nachází v adresářích /Library/LaunchAgents, /System/Library/LaunchAgents a ~/Library/LaunchAgents.

Formát konfiguračních souborů launchd umožňuje definovat i chování daemonů v rúzných situacích - lze nastavit spouštění v případě že existuje definovaný soubor, je připojen diskový svazek, umí spouštět procesy v časových intervalech. Daemon tedy vůbec nemusí být spuštěn přímo při startu systému, ale může "čekat v záloze" až na určitou akci a launchd se postará o jeho spuštění. Pomocí konfiguračního souboru lze definovat:

  • název daemonu a předávané parametry
  • pod jakým uživatelem a skupinou se má daemon spouštět
  • změnu kořenového adresáře (chroot)
  • akce na základě kterých se daemon spustí (např. vytvoření souboru)
  • čas a opakování spuštění (např. každý den v určitou hodinu)
  • limit paměti, CPU, počtu procesů daemona
  • konfigurace socketů pro spouštění v režimu super-daemona (obdoba xinetd/inetd)

Kompletní popis syntaxe plist souborů je uveden v man stránce launchd.plist(5). Ovládání launchd (ruční spuštění/vypnutí daemona, výpis jobů atd.) lze provádět pomocí utility launchctl.

Kromě spouštění daemonů pomocí Launchd umožňuje Mac OS X také spouštět aplikace pomocí StartupItems. V adresářích /System/Library/StartupItems a /Library/StartupItems mohou aplikace nebo uživatel vytvořit podadresáře se skripty pro spuštění aplikace (typicky tuto možnost používá např. MySQL). Každý adresář musí kromě spouštěcího skriptu obsahovat také konfigurační soubor StartupParameters.plist. Spouštění aplikací po přihlášení uživatele lze nastavit v System Preferences / Accounts / Login Items. Konfigurační soubor je v ~/Library/Preferences/loginwindow.plist. Jak je to s runlevely? Mac OS X je vůbec nepoužívá, o ukončení systému a odeslání SIGTERM signálu se stará opět launchd.

I když je launchd Open Source aplikace, nikdy se nerozšířil mimo Mac OS X (pouze v roce 2006 bylo zvažováno jeho zařazení do linuxové distribuce Ubuntu, kvůli použité licenci Apple Public Source z toho nakonec sešlo, ačkoli Apple ještě tentýž rok licenci změnil na Apache 2.0 licenci).

Více informací:

Man stránka launchd http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPage... 

Man stránka s popisem formátu plist konfiguračních souborů launchd http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPage....plist

Obecné informace o startu Mac OS X  http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSyst...

Filed under  //  Mac OS X   Unix