{"id":205,"date":"2009-06-23T15:25:59","date_gmt":"2009-06-23T14:25:59","guid":{"rendered":"http:\/\/eriz.pcinside.pl\/weblog\/warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko-205.html"},"modified":"2009-06-23T15:25:59","modified_gmt":"2009-06-23T14:25:59","slug":"warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko","status":"publish","type":"post","link":"https:\/\/eriz.pcinside.pl\/weblog\/warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko-205.html","title":{"rendered":"Warsztat webdevelopera pod Windows cz. I: wst\u0119p &#8211; \u015brodowisko"},"content":{"rendered":"<p>Jaki\u015b czas temu <a href=\"http:\/\/zeromski.waw.pl\">Mateusz<\/a> poprosi\u0142 o par\u0119 s\u0142\u00f3w na temat stanowiska do webdeveloperki na maszynie pracuj\u0105cej pod kontrol\u0105 Windows. Zagadnienie nie jest takie banalne, na jakie si\u0119 wydaje, gdy\u017c pierwotnie to systemy Unixowe by\u0142y projektowane bardziej dla developer\u00f3w, potem zacz\u0119to my\u015ble\u0107 o ZU. Natomiast w przypadku Windows mo\u017cna powiedzie\u0107, \u017ce sytuacja by\u0142a odwrotna.<\/p>\n<p>Sam pracuj\u0119 pod Windows (z wyboru, nie z przymusu), niekt\u00f3rzy pewnie te\u017c pr\u00f3buj\u0105; postaram si\u0119 udowodni\u0107, \u017ce wbrew obiegowym opiniom i pod Oknami da si\u0119 wygodnie kodzi\u0107.<\/p>\n<p>Grunt, to odpowiednio przygotowane \u015brodowisko, bo \u0142y\u017ceczk\u0105 jeziora nie wykopie. [;<\/p>\n<p><!--more--><\/p>\n<h3>Windows Out-of-the-box?<\/h3>\n<p>&#8230;jest niemal bezu\u017cyteczny. Bez odpowiedniego oprogramowania praktycznie niczego nie zrobimy, a standardowo do\u0142\u0105czone jest raczej kiepskie. Dlatego warto prenumerowa\u0107 gazety z do\u0142\u0105czonymi kompaktami, gdy\u017c nieraz trafiaj\u0105 si\u0119 licencjonowane wersje ca\u0142kiem niez\u0142ego softu.<\/p>\n<h3>konfiguracja systemu<\/h3>\n<p>P\u00f3ki co, pracuj\u0119 pod Windows XP, ale ogl\u0105daj\u0105c poszczeg\u00f3lne bety Windows 7 powoli zaczynam dochodzi\u0107 do wniosku, \u017ce dni OS-u z 2001 roku s\u0105 policzone, przynajmniej na moim PC. O ile Vista by\u0142a zrobiona na szybko i zyska\u0142a po\u015br\u00f3d wielu kr\u0119g\u00f3w miano drugiego Windows Millennium &#8211; przej\u015bciowca, kt\u00f3ry zosta\u0142 zmajstrowany na tempo. Ca\u0142kowicie si\u0119 z tym zgadzam.<\/p>\n<p>Tak wi\u0119c bez lament\u00f3w, \u017ce co\u015b pod Vist\u0105 nie dzia\u0142a. <img src=\"https:\/\/eriz.pcinside.pl\/weblog\/wp-includes\/images\/smilies\/e_tongue.png\" alt=\":P\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><\/p>\n<p>Jak to zwykle bywa, na projekty\/etc przyda si\u0119 jakie\u015b osobne miejsce, kt\u00f3re nie b\u0119dzie nara\u017cone na bezpo\u015brednie uszkodzenia systemu plik\u00f3w &#8211; czyli wsz\u0119dzie poza partycj\u0105 systemow\u0105. <em>Moje dokumenty<\/em> definitywnie odpadaj\u0105, chyba \u017ce s\u0105 przeniesione na inn\u0105 partycj\u0119. Mo\u017cna to zrobi\u0107 przy pomocy dowi\u0105za\u0144 symbolicznych, ale najlepiej pomy\u015ble\u0107 o tym ju\u017c na etapie instalacji systemu &#8211; poprzez dostrojenie odpowiednich ustawie\u0144 przy pomocy nLite. Jednak jest to temat na osobny artyku\u0142.<\/p>\n<p>Przyda si\u0119 r\u00f3wnie\u017c osobna partycja na pliki \u017ar\u00f3d\u0142owe projekt\u00f3w &#8211; <em>php<\/em>, <em>htm<\/em>, itd. s\u0105 zwykle na tyle ma\u0142e, \u017ce domy\u015blny rozmiar klastra systemu plik\u00f3w powodowa\u0142by marnotrawienie miejsca ze wzgl\u0119du na niedope\u0142nienie bloku danych. O tym mo\u017cna przeczyta\u0107 w <a href=\"http:\/\/pl.wikipedia.org\/wiki\/Klaster_dyskowy\">Wikipedii<\/a>. I chyba nie musz\u0119 przypomina\u0107, \u017ce u\u017cywamy wy\u0142\u0105cznie NTFS, ew. exFAT. Zwyk\u0142y FAT si\u0119 nie nadaje &#8211; za du\u017ce ryzyko utraty plik\u00f3w w przypadku awarii, brak zarz\u0105dzania uprawnieniami, czy te\u017c mechanizm\u00f3w MFT (zw\u0142aszcza, je\u015bli chodzi o zapis ma\u0142ych plik\u00f3w bezpo\u015brednio w tablicy). Mo\u017cna r\u00f3wnie\u017c zwi\u0119kszy\u0107 r\u0119cznie w rejestrze ilo\u015b\u0107 miejsca przydzielonego na tablic\u0119 plik\u00f3w, ale w wi\u0119kszo\u015bci przypadk\u00f3w nie b\u0119dzie to konieczne.<\/p>\n<p>Dlaczego m\u00f3wi\u0119 o partycjonowaniu? Odpowiedni podzia\u0142 dysku znacznie wp\u0142ywa na elastyczno\u015b\u0107, wydajno\u015b\u0107 oraz szybko\u015b\u0107 konserwacji. Rozpatruj\u0105c poszczeg\u00f3lne aspekty:<\/p>\n<ul>\n<li><strong>elastyczno\u015b\u0107<\/strong>\n<p>Mo\u017cemy bez problemu tworzy\u0107 obrazy danych partycji bez obawy o dezaktualizacj\u0119 danych spowodowan\u0105 odzyskaniem starego backupu &#8211; np. trzymaj\u0105c wa\u017cne dane w tzw. <em>Moich dokumentach<\/em>, w standardowej konfiguracji, tracimy w\u00f3wczas aktualne dane\/cofamy si\u0119 o kilka wersji w przesz\u0142o\u015b\u0107. Owszem, mo\u017cna wcze\u015bniej spr\u00f3bowa\u0107 zrobi\u0107 obraz przed odzyskiwaniem, czy osobny backup, ale wtedy tracimy czas na wy\u0142uskiwanie plik\u00f3w z kopii.<\/p>\n<\/li>\n<li><strong>wydajno\u015b\u0107<\/strong>\n<p>Wspomina\u0142em ju\u017c o rozmiarach klastr\u00f3w &#8211; wi\u0119ksze zapewniaj\u0105 wy\u017csze transfery, ale jedyny sens stosowania ekstremalnych rozmiar\u00f3w (od 32 KiB wzwy\u017c) jest jedynie na partycjach, kt\u00f3re b\u0119d\u0105 niejako przechowalni\u0105 multimedi\u00f3w\/obraz\u00f3w, czy te\u017c innych archiw\u00f3w.<\/p>\n<\/li>\n<\/li>\n<li><strong>szybko\u015b\u0107 konserwacji<\/strong>\n<p>Jest powi\u0105zana po\u015brednio z poprzednim punktem. Raz &#8211; sama szybko\u015b\u0107 dost\u0119pu do plik\u00f3w wp\u0142ywa na pr\u0119dko\u015b\u0107 czynno\u015bci konserwacyjnych &#8211; dwa: fragmentacja przebiega w znacznie mniejszym stopniu, a proces jej likwidacji przebiega niemal b\u0142yskawicznie. Pomijam dyski SSD. [;<\/p>\n<\/li>\n<\/ul>\n<p>Jaki\u015b czas temu do Chipa by\u0142 do\u0142\u0105czony PerfectDisk przeznaczony do defragmentacji dysk\u00f3w oraz GenieBackup. S\u0105 to ca\u0142kiem nie\u017ale si\u0119 spisuj\u0105ce narz\u0119dzia, cho\u0107 ten drugi ma kilka wad (m. in. dziwnie przelicza ilo\u015b\u0107 wolnego miejsca potrzebnego do backupu), ale og\u00f3lnie spisuje si\u0119 znakomicie.<\/p>\n<p>A tak BTW: przydaje si\u0119 miejsce na tzw. poligon: aby mo\u017cna by\u0142o szybko stworzy\u0107 katalog nawet o nazwie <em>aoisdhfsakhdfksdf<\/em> i co\u015b do niego zapisa\u0107. Nieraz wydaje si\u0119 to dziwne, ale bardzo cz\u0119sto si\u0119 przydaje. [;<\/p>\n<h3>VM<\/h3>\n<p>Chc\u0105c nie chc\u0105c, niezb\u0119dne b\u0119dzie jakie\u015b \u015brodowisko unixowe do przeprowadzania chocia\u017c niekt\u00f3rych test\u00f3w. Wirtualizatory istniej\u0105 ju\u017c od jakiego\u015b czasu, s\u0105 nawet nie\u017ale dopracowane, wi\u0119c bez problemu mo\u017cna skorzysta\u0107 z ich dobrodziejstw.<\/p>\n<p>Wystarczy zainstalowa\u0107 wirtualizer &#8211; do wyboru, do koloru &#8211; VirtualBox, VMWare Server\/Player, Microsoft Virtual PC. Poleca\u0142bym kt\u00f3r\u0105\u015b edycj\u0119 VMWare z tej racji, \u017ce powsta\u0142o dziesi\u0105tki <a href=\"http:\/\/www.vmware.com\/appliances\/\">gotowych obraz\u00f3w do pobrania<\/a>. Wystarczy \u015bci\u0105gn\u0105\u0107, rozpakowa\u0107 i uruchomi\u0107. Nas interesuje np. <a href=\"http:\/\/www.vmware.com\/appliances\/directory\/54966\">Ubuntu 8.10 Server z zainstalowanym \u015brodowiskiem LAMP<\/a>.<\/p>\n<p>Je\u015bli dbasz, aby Twoje strony by\u0142y wy\u015bwietlane r\u00f3wnie\u017c w urz\u0105dzeniach mobilnych, typu PDA\/smartphone, wystarczy \u015bci\u0105gn\u0105\u0107 gotow\u0105 paczk\u0119 z <a href=\"http:\/\/developer.android.com\/guide\/developing\/tools\/emulator.html\">emulatorem Androida<\/a>, czy <a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?FamilyId=3D6F581E-C093-4B15-AB0C-A2CE5BFFDB47&#038;displaylang=en\">Windows Mobile<\/a>. Je\u015bli chodzi o Windows Mobile, jest kilka przegl\u0105darek &#8211; np. <a href=\"http:\/\/www.skyfire.com\/\">SkyFire<\/a>, <a href=\"http:\/\/www.opera.com\/mobile\/\">Opera Mobile<\/a>, czy <a href=\"http:\/\/www.torchmobile.com\/products\/iris.html\">Iris Browser<\/a>.<\/p>\n<p>Oczywi\u015bcie jest jeszcze Opera Mini, wystarczy \u015bci\u0105gn\u0105\u0107 emulator MIDP, np. <a href=\"http:\/\/kwyshell.myweb.hinet.net\/Project\/MidpX\/index.html\">MidpX<\/a>, midlet i po prostu go uruchomi\u0107. [;<\/p>\n<h3>Rozszerzenia GUI\/inne<\/h3>\n<p>Windows XP nie zawiera pewnych narz\u0119dzi, kt\u00f3re znacznie u\u0142atwiaj\u0105 prac\u0119. Pomijam tu kwesti\u0119 pask\u00f3w\/pow\u0142oki, bo to kwestia gustu, ale najwa\u017cniejsze s\u0105 narz\u0119dzia, kt\u00f3re &#8211; mimo \u017ce niewidoczne &#8211; po prostu robi\u0105 swoje.<\/p>\n<h4>ProcessLasso<\/h4>\n<p>Czy nie zdarza\u0142o Ci si\u0119 czasem, \u017ce kt\u00f3ry\u015b proces intensywnie wykonywa\u0142 swoje zadanie tak, \u017ce zamra\u017ca\u0142 dzia\u0142anie ca\u0142ego systemu do tego stopnia, \u017ce ledwo odpowiada\u0142 na jakiekolwiek komendy? Widocznie ten problem da\u0142 si\u0119 we znaki tw\u00f3rcom <a href=\"http:\/\/www.bitsum.com\/prolasso.php\">ProcessLasso<\/a>. Dzia\u0142a na bardzo prostej zasadzie &#8211; je\u015bli jaki\u015b proces zaczyna po\u017cera\u0107 ca\u0142\u0105 moc CPU, program obni\u017ca mu odpowiednio priorytet. I przyznam, \u017ce robi to ca\u0142kiem sprawnie. Nie jest to jedyna funkcja programu &#8211; potrafi r\u00f3wnie\u017c podbija\u0107 priorytet aktywnemu procesowi, czy te\u017c automatycznie &#8211; dla zdefiniowanego. Przydatne podczas np. renderowania scen, czy ogl\u0105dania film\u00f3w. ;]<\/p>\n<p>Poza tym, Process Lasso mo\u017ce pe\u0142ni\u0107 funkcj\u0119 prostego mened\u017cera proces\u00f3w.<\/p>\n<p>Z tym programem naprawd\u0119 wiele mo\u017cna zdzia\u0142a\u0107 i usprawni\u0107 dzia\u0142anie systemu. Wcale nie czu\u0107 ~65 proces\u00f3w aktywnych jednocze\u015bnie. [;<\/p>\n<p class=\"images\"><a href=\"\/weblog\/stuff\/205-warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko-1.png\" rel=\"imagebox-1\" title=\"\"><img decoding=\"async\" src=\"\/weblog\/stuff\/205-warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko-1-thumb.jpg\" alt=\"Process Lasso\" style=\"width:154px;height:120px;\" \/><\/a> <\/p>\n<h4>Process Explorer<\/h4>\n<p>Niekt\u00f3rym pewnie znane narz\u0119dzie, dla tych, kt\u00f3rzy o PL nie s\u0142yszeli: jest to rozbudowany mened\u017cer zada\u0144. Czym si\u0119 wyr\u00f3\u017cnia na tle pozosta\u0142ych? Opr\u00f3cz funkcjonalno\u015bci, kt\u00f3r\u0105 zapewnie systemowy komponent, mamy mo\u017cliwo\u015b\u0107 podgl\u0105du szczeg\u00f3\u0142\u00f3w ka\u017cdego z proces\u00f3w, takich jak np. wszystkie zestawione po\u0142\u0105czenia, zu\u017cycie procesora wg w\u0105tk\u00f3w, czy cho\u0107by wykorzystywane biblioteki. <a href=\"http:\/\/technet.microsoft.com\/en-us\/sysinternals\/bb896653.aspx\">Process Explorer<\/a> przyda si\u0119 ka\u017cdemu, kto potrzebuje czego\u015b wi\u0119cej ni\u017c Mened\u017cer Zada\u0144.<\/p>\n<p class=\"images\"><a href=\"\/weblog\/stuff\/205-warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko-2.png\" rel=\"imagebox-2\" title=\"\"><img decoding=\"async\" src=\"\/weblog\/stuff\/205-warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko-2-thumb.jpg\" alt=\"Process Explorer\" style=\"width:160px;height:119px;\" \/><\/a> <\/p>\n<h4>TaskSwitch XP<\/h4>\n<p>Wg mnie tzw. <em>must have<\/em>. Nie tylko je\u015bli chodzi o wzgl\u0119dy wizualne, ale r\u00f3wnie\u017c funkcjonalne. Opr\u00f3cz podgl\u0105du miniatur, <a href=\"http:\/\/www.ntwind.com\/software\/taskswitchxp.html\">TaskSwitch XP<\/a> oferuje kilka przydatnych opcji &#8211; np. rozszerzenie funkcjonalno\u015bci przycisk\u00f3w paska tytu\u0142owego (aby ukry\u0107 okno w trayu wystarczy klikn\u0105\u0107 prawym klawiszem myszy na ikonie minimalizacji; mo\u017cna r\u00f3wnie\u017c wymusi\u0107 trzymanie wybranego okna zawsze na wierzchu klikaj\u0105c w ten sam spos\u00f3b ikon\u0119 maksymalizacji okna), czy prze\u0142\u0105czanie program\u00f3w a&#8217;la Opera (przytrzymanie prawego klawisza myszy + obracanie k\u00f3\u0142kiem). Program jest przy tym bardzo lekki (zaledwie 988 KiB w pami\u0119ci; podczas wy\u015bwietlania miniaturek &#8211; ok. 2.5 MiB; obci\u0105\u017cenie CPU nie odczuwalne), ale niesamowicie przydatny (mimo wszystko &#8211; miniatury okien si\u0119 przydaj\u0105).<\/p>\n<p class=\"images\"><a href=\"\/weblog\/stuff\/205-warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko-3.png\" rel=\"imagebox-3\" title=\"Program nie jest zwykle taki sparta\u0144ski; to tylko u mnie. [;\"><img decoding=\"async\" src=\"\/weblog\/stuff\/205-warsztat-webdevelopera-pod-windows-cz-i-wstep-srodowisko-3-thumb.jpg\" alt=\"TaskSwitch XP\" style=\"width:160px;height:97px;\" \/><\/a> <\/p>\n<h4>StrokeIt!<\/h4>\n<p>O <a href=\"http:\/\/www.tcbmi.com\/strokeit\/\">StrokeIt!<\/a> ju\u017c <a href=\"http:\/\/eriz.pcinside.pl\/weblog\/dla-uzaleznionych-od-gestow-strokeit-34.html\">pisa\u0142em<\/a>, wi\u0119c zapraszam do lektury.<\/p>\n<h4>KatMouse<\/h4>\n<p>Aplikacja jest bardzo prosta w dzia\u0142aniu. Emuluje pewne zachowanie \u015brodowisk unixowych, jakim jest przechwytywanie akcji k\u00f3\u0142ka myszy w zale\u017cno\u015bci od wskazanego kursorem okna. Po prostu si\u0119 przydaje. Ci\u0119\u017cko mi tylko zrozumie\u0107, dlaczego w pami\u0119ci z\u017cera a\u017c 10 MiB&#8230; Ale jest to zno\u015bna ilo\u015b\u0107. [;<\/p>\n<h4>Executor<\/h4>\n<p>O ile kilka poprzednich program\u00f3w rozszerza\u0142o funkcjonalno\u015b\u0107 g\u0142\u00f3wnie dla wynalazku Apple, to tym razem za pomoc\u0105 jednej aplikacji dodamy klawiaturze kolejn\u0105 par\u0119 skrzyde\u0142. Standardowe okienko Uruchom raczej nie oferuje zbyt wielu mo\u017cliwo\u015bci. <a href=\"http:\/\/executor.dk\/\">Executor<\/a> jest zamiennikiem dla tej funkcji. O kt\u00f3rym zreszt\u0105 ju\u017c <a href=\"http:\/\/eriz.pcinside.pl\/weblog\/warsztat-executor-123.html\">napisa\u0142em<\/a>.<\/p>\n<h3>panie majster?<\/h3>\n<p>To tyle w pierwszej cz\u0119\u015bci &#8211; w dalszych powiem nieco o efektywnym zarz\u0105dzaniu plikami i potrzebnych do tego narz\u0119dziach.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jaki\u015b czas temu Mateusz poprosi\u0142 o par\u0119 s\u0142\u00f3w na temat stanowiska do webdeveloperki na maszynie pracuj\u0105cej pod kontrol\u0105 Windows. Zagadnienie nie jest takie banalne, na jakie si\u0119 wydaje, gdy\u017c pierwotnie to systemy Unixowe by\u0142y projektowane bardziej dla developer\u00f3w, potem zacz\u0119to my\u015ble\u0107 o ZU. Natomiast w przypadku Windows mo\u017cna powiedzie\u0107, \u017ce sytuacja by\u0142a odwrotna. Sam pracuj\u0119 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,12],"tags":[48,30,71,111,109],"_links":{"self":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts\/205"}],"collection":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/comments?post=205"}],"version-history":[{"count":0,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts\/205\/revisions"}],"wp:attachment":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/media?parent=205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/categories?post=205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/tags?post=205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}