Jak na widget pro rychlé nastavení proxy - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Informace

Jak na widget pro rychlé nastavení proxy

28. července 2009, 00.00 | Když poprvé spustíte Macintosh, budete jej s velkou pravděpodobností používat bez jakýchkoliv problémů. Po chvilce hledání objevíte systémové preference, kde naleznete všechno potřebné. Hloubka dalších průzkumů závisí na tom, kdo jste a co od počítače požadujete. Běžný uživatel s tím vystačí. Pro ty, kdo mají potřebu porozumět a možná i něco vytvořit, je určen tento článek.

Když poprvé spustíte Macintosh, budete jej s velkou pravděpodobností používat bez jakýchkoliv problémů. Po chvilce hledání objevíte systémové preference, kde naleznete všechno potřebné. Hloubka dalších průzkumů závisí na tom, kdo jste a co od počítače požadujete. Běžný uživatel s tím vystačí. Pro ty, kdo mají potřebu porozumět a možná i něco vytvořit, je určen tento článek.

Nastavení sítě
V síťovém nastavení MacOS X se nachází často přehlížené roletové menu location, umožňující přepínání mezi již nakonfigurovanými sítěmi. Použití tohoto způsobu nastavení sítě je šikovné a snad se dá také říci, že v rámci systému preferované.


Lokace v systémových preferencích

Fungování je přímočaré, přepnutí lokace – nastavení sítě - se uskuteční pomocí jablka vlevo v horní liště. Každá lokace může mít, a zpravidla také má, své vlastní nastavení proxy, způsoby získávání IP adresy a tak podobně. Tento přístup není pro lidi, kteří přešli z jiných systémů příliš známý, a možná by trvalo delší dobu, než jej objeví. Lze bez něj žít, ale pokud se často přesunujete, můžete lokace vyzkoušet.


Použití lokací

I když to není úplně patrné, podobný přístup existuje také ve Windows Vista. Tam ovšem přepínání mezi lokacemi probíhá zcela automaticky dle výchozí brány a nastavení zahrnuje též konfiguraci firewallu. Také v Linuxu existuje podobný přístup, i když možná ještě propracovanější. Situace je zde odvislá od použité distribuce. V debianu jsem používal balíček1, kde jsem si mohl nadefinovat IP adresu, kterou se testovala pomocí ARP pingu2. V případě, že byl systém nalezen, se síťové rozhraní nastavilo dle konfigurace. Všechny uvedené příklady se zdají mít hodně společného.

Praxe je možná jednodušší. Značná část uživatelů neprojeví o lokace zájem a nastavení sítě provádí jednoduše pomocí systémových preferencí. Stejným způsobem jsem postupoval i já. Nicméně než abych se mořil ustavičným přenastavováváním konfigurace sítě podle toho, kde se zrovna pohybuji, vytvořil jsem si udělátko, které mi situaci ulehčuje. Konkrétně se jedná o dashboardový widget, který umožňuje nastavení anonymní proxy pro protokoly http, https a ftp. Jedná se tedy o alternativní cestu k přepínání mezi lokacemi? Nikoliv, jedná se pouze o pomocníka, umožňujícího přepínání proxy. Můžete ho kombinovat současně s využitím lokací. Pro mé potřeby je to dostačující, nicméně vestavěné přepínání lokací disponuje větší škálou možností. Tolik tedy krátce k osobním zkušenostem z nastavování síťové konfigurace v MacOS X. Nyní pojďme k vytváření widgetu.

Vytváření widgetu
Vlastní widget je aplikace, obvykle vyvolávaná klávesovou zkratkou F12. Skládá se z přední a zadní strany, přičemž každá z těchto stran se programuje zvlášť.


Přední strana


Zadní strana

Pro ty z vás, kteří už někdy programovali webovou stránku nebo její komponenty pomocí javascriptu, bude psaní widgetu hračkou. Nejedná se totiž o nic nového a již získané vědomosti můžeme použít. Prostředí, ve kterém se widgety tvoří se jmenuje Dashcode. Vývoj a ladění v tomto prostředí je příjemné. K dispozici máme celou řadu standardních ovládacích prvků a předpřipravených efektů, takže výsledek většinou vypadá hezky. Důležitou vlastností každého widgetu jsou atributy, definující jeho schopnosti. Patří mezi ně například schopnost spouštět jiné programy, přistupovat na síť či na disk atd. Atributy se nastavují v Dashcode v rámci vývoje dle účelu widgetu a jsou jeho součástí.


Prostředí Dashcode

Poté, co jste s výsledkem své práce spokojeni, musíte podle povahy widgetu rozhodnout, kam ho nainstalujete. Možností je více. Buďto lokálně do adresáře ~/Library/Widgets, potom bude viditelný pro daného uživatele, nebo ho učiníme viditelným pro všechny. Pak je nutné umístit widget do adresáře /Library/Widgets.

Ovládání sítě pro přátele příkazové řádky
Jednou z klíčových nástrojů pro správu sítě z příkazové řádky je networksetup. Jedná se o šikovnou věcičku, kterou nastavíte síť podobně jako prostřednictvím systémových preferencí. Bližší popis viz příkaz man networksetup. Konkrétní použití příkazu je následující networksetup -setwebproxy ethernet proxy.xyz.cz 3128.

Dalším nástrojem je interaktivní utilita scutil, sloužící pro správu systémových parametrů. Interaktivnost spočívá v tom, že přijímá data ze standardního vstupu, takže je můžeme průběžně zadávat. Lze ji ale také použít v „automatickém“ režimu. To je ilustrováno ve skriptu, který slouží pro přepínání proxy. Jádro přepínání spočívá v zadání následujících příkazů:

     open
     d.init
     get State:/Network/Global/Proxies
     d.add * HTTPSEnable 1
     set State:/Network/Global/Proxies

Nejprve je nutné „úložiště“ parametrů otevřít, poté inicializovat a pak už můžeme začít pracovat. Informace získáváme pomocí příkazu get. Parametry přidáme příkazem add a nastavíme příkazem set. Klíčovým se jeví porozumění struktuře ukládání parametrů. Je definována a obhospodařována démonem configd, který se o parametry stará.

Další věc, o které se musím zmínit, nesouvisí se sítí, nýbrž s notifikací systému. Macintosh totiž nemá vestavěný notifikační rámec, což ale neznamená, že neexistuje. Nejčastěji se využívá časem prověřený nástroj zvaný growl. Jeho součástí je také utilita growlnotify, umožňující notifikace z příkazové řádky.

Potíže na cestě
Popisované nastavení sítě využívá kombinaci výše uvedených nástrojů. Jednotlivé nástroje fungovaly dobře jen do okamžiku, kdy jsem chtěl zjistit stav nastavení wifi proxy nástrojem networksetup. Tahle operace vždy končila chybou segmentation fault. Ať jsem dělal, co jsem dělal, nedařilo se mi chybu v shellovém skriptu (bash) odstranit a dobrat se k výsledku. Obvyklé praktiky bezchybně pracující na všech Nixech nebo Linuxu, se kterými jsem doposud pracoval, spočívající v přesměrování výstupů, ať už chybových nebo standardních, na MacOSX nefungovaly. Proto jsem musel přistoupit k alternativní cestě, spočívající ve čtení konfiguračního souboru systému. Konfigurace, nejen ta systémová, je uložena v textových XML souborech. Ta zajímavá pak v souboru /Library/Preferences/SystemConfiguration/preferences.plist. Schválně se někdy podívejte. S tímto XML souborem lze pracovat zcela tradičně. Chvilku trvalo, než jsem odladil správný XPath dotaz, kterým lze z tohoto souboru získat vše, co potřebujete. Tuto funkcionalitu jsem potřeboval zabalit do něčeho šikovného a tak jsem zvolil nativní binárku, která se může kupříkladu napsat v jazyce ObjectiveC. Jde to celkem snadno, i když to děláte poprvé, je ale nutné se částečně zorientovat v ohromném množství knihoven. Pro tvorbu binárky se obvykle využívá vývojové prostředí Xcode, se kterým je velmi pohodlná a rychlá práce. Výsledný soubor (CFGtool) jsem použil v shellovém skriptu.

Instalační skript
Fast Proxy Switcher3, jak jsem celý pokus nazval, používám osobně spolu s několika málo lidmi již přes rok bez problémů a to od verze Leoparda 10.5.4. Abych ulehčil instalaci sobě i jiným, rozhodl jsem se ji automatizovat pomocí AppleScriptu. Pro práci s ním se nabízí prostředí programu ScriptEditor, který je součástí operačního systému. Instalační skript funguje, moje zkušenost je ale rozpačitá a tenhle jazyk mi rozhodně k srdci nepřirostl.


Instalační skript

Shrnutí
Používání widgetů se mi zalíbilo. Nepletou se na ploše, neruší když nepotřebuji a píší se poměrně pohodlně. Pokládám je za elegantní řešení, mnohem lepší než „aktivní desktop“, který mi stále pod rukama na ploše cosi vyvádí. Za výhodu se dá také považovat fakt, že dashboardový „engine“ se ujal též v linuxovém prostředí KDE4, přičemž by vlastní widgety měly být i vzájemně kompatibilní. Jejich využití je širokospektrální, a pokud jste se v rámci představení jednoho využití ještě dozvěděli cosi nového o manuální konfiguraci sítě, jsem rád.

Každý ví, že nejvíce se člověk poučí čtením kódu a dalšími pokusy. Co není popsáno v tomto článku bezpečně najdete ve zdrojovém kódu. Už jen porozumění je krokem vpřed. Zdroje k widgetu jsou zde a zdroj k CFGtoolu můžete najít tady.

  • Hlavní výhodou ARP pingu je, že nepotřebuje plně funkční TCP stack. Systémy resolvuje pomocí MAC adres, takže může fungovat i v situaci, kdy standardní ICMP ping nepracuje. ARP je zkratka pro Adress Resolution Protocol.
  • Celý projekt lze stáhnout na http://www.nextsoft.cz/~malina/files/FastProxySwitcher_1_3.zip.


Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Tipy a Triky  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

nejde link...

Autor: Kuko Muž

Založeno: 28.07.2009, 08:39
Odpovědí: 0

nejde mi akosi ten link :(

Odpovědět na příspěvek

RE: nejde link...

Autor: Jan Brezina Muž

Založeno: 28.07.2009, 08:55

Zdravim,

link je jiz opraveny. Omlouvame se za preklep v URL.

Honza

Odpovědět na příspěvek

ručně přepínat netřeba

Autor: chris Muž

Založeno: 28.07.2009, 18:47
Odpovědí: 0

Tedy je to pěkné, ale jsme probůh na macku, nikoli na widlich.

Tudíž:
Asi každý kdo kdy použil ibm thinkpady bere přepínání lokací, tedy všeho, síťovým nastavením počínaje, přes monitory, až po nahrání jiné sady pravidel do firewallu (skutečného, nikoli toho nesmyslného jednocestného ve widlich) a spuštění nějaké aplikace jako samozřejmost.

Mno a po přechodu na macíka samozřejmě očekává toto jako minimum, plus nějaký ten komfort a estetiku GUI navíc :-)

Takže si jako základ první den nastaví Newtork Locations, a pak obratem dohledá na netu a dle libosti vybere utilitku, která mezi mnoha jinými věcmi (výchozí tiskárny, atd.) systémové síťové lokace konzistentně využívá a přepíná.

Což není žádný problém('Context-aware computing'), utilitek je řada i zadarmo, existují utils které se umí rozhodovat i na základě fuzzy logiky, dle všech myslitelných zdrojů lokace jako jsou připojená zařízení, wifina on-off a co slyší, BT, bonjour infos, denní doba, okolní světlo,...) a to vše samozřejmě bezplatně.

Dal bych sem obrázek, ale není jak, takže mohu jen konstatovat, že jsem teď právě dle vyhodnocení fuzzy logiky s 17% pravď. v práci, z 91% doma, a že k automatickému překlopení došlo při uživatelsky nastavitelné hodnotě 73%(nejvíc k rozhodnutí přispěl domácí usb hub), a že o překlopění jsem byl informován přes growl, jak taky jinak ;-)

Ručně jsem přepínal mezi těmi asi 9 lokacemi(míněno nejen ty síťové) které používám=kde se vyskytuju, naposledy asi před rokem :-)

Odpovědět na příspěvek

RE: ručně přepínat netřeba

Autor: fuzzy Muž

Založeno: 28.07.2009, 23:33

Logiko,
mne se Vas system zdal byt zprvu dobry, ale po zvazeni se mi to zda jakesi prekombinovane. Abych nastavoval s jakou pravdepodobnosti mam kde jaky hub a pamatoval si, ze jej musim pripojit, tak radeji hybnu rukou a ty dva kliky me nazabiji. Ono mozna ceho moc toho prilis. Navic se obcas hodi mit moznost rucne prepnout lokaci. Lokace se nemuseji pouzivat pouze ve smyslu kde se k siti pripojuji, ale muze se hodit napriklad pro specialni nastaveni na testovani, pro vynuceni urciteho transportniho media atd.

Ja osobne, pokud jsem doma, tak to rad vim na 100%.

Asi kazdy podle sveho gusta.

Odpovědět na příspěvek

RE: RE: ručně přepínat netřeba

Autor: chris Muž

Založeno: 29.07.2009, 01:13

jj, proti gustu...

nicmeně ruční vynucení kontextu mista je samozřejmě možné, na 2 kliky, tj. o jeden rychleji než přes čisté systémové locations :-)

A pamatovat si fakt nic nehodlám, od toho je uživatelsky přítulná fuzzy logic aby se s těmi rozpornými informacemi poprala tak si to já=uživatel představuju :-)

Nicméně pohlížet na lokace jen jako na síť je fakt o ničem, to se dá zařídit dvojklikem na ikonu shell scriptu.

Automatická detekce a následná změna lokace začne být zajímavá protože nabízí AUTOMATICKY například toto:
Actions triggered by changing context (either entering or leaving), with an optional delay:
* Setting your default printer
* Changing your desktop background
* Enable or disable particular firewall rules
* Setting iChat status message
* Setting the default IMAP or SMTP server for Mail.app
* Mounting network shares (smb://, afp://, etc.)
* Muting or Unmuting system audio
* Changing OS X network location
* Opening a file (an application, a document, etc.)
* Quit an application
* Enabling or disabling screen saver password
* Start/stop screen saver
* Changing screen saver idle timeout
* Running a shell script (or any other kind of script)
* Turning on or off Bluetooth
* Turning on or off WiFi (AirPort)
* Establish or disconnect VPN

Odpovědět na příspěvek

RE: ručně přepínat netřeba

Autor: Richard Malina Muž

Založeno: 29.07.2009, 09:54

Jasně, pokud chcete není třeba ručně přepínat. Cílem článku není nicméně jen předvést "home made" udělátko, ale vůbec ukázat, těm, kdo mají zájem jak to může fungovat v útrobách. Dalším záměrem bylo dát příklad pro dělání widgetu atd. Shrnuto - prozumět tomu, co se děje a mít to pod kontrolou. Doufám, že se to někomu bude hodit :)

Odpovědět na příspěvek

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: