Warsztat webdevelopera pod Windows cz. I: wstęp – środowisko
Jakiś czas temu Mateusz poprosił o parę słów na temat stanowiska do webdeveloperki na maszynie pracującej pod kontrolą Windows. Zagadnienie nie jest takie banalne, na jakie się wydaje, gdyż pierwotnie to systemy Unixowe były projektowane bardziej dla developerów, potem zaczęto myśleć o ZU. Natomiast w przypadku Windows można powiedzieć, że sytuacja była odwrotna.
Sam pracuję pod Windows (z wyboru, nie z przymusu), niektórzy pewnie też próbują; postaram się udowodnić, że wbrew obiegowym opiniom i pod Oknami da się wygodnie kodzić.
Grunt, to odpowiednio przygotowane środowisko, bo łyżeczką jeziora nie wykopie. [;
Windows Out-of-the-box?
…jest niemal bezużyteczny. Bez odpowiedniego oprogramowania praktycznie niczego nie zrobimy, a standardowo dołączone jest raczej kiepskie. Dlatego warto prenumerować gazety z dołączonymi kompaktami, gdyż nieraz trafiają się licencjonowane wersje całkiem niezłego softu.
konfiguracja systemu
Póki co, pracuję pod Windows XP, ale oglądając poszczególne bety Windows 7 powoli zaczynam dochodzić do wniosku, że dni OS-u z 2001 roku są policzone, przynajmniej na moim PC. O ile Vista była zrobiona na szybko i zyskała pośród wielu kręgów miano drugiego Windows Millennium – przejściowca, który został zmajstrowany na tempo. Całkowicie się z tym zgadzam.
Tak więc bez lamentów, że coś pod Vistą nie działa.
Jak to zwykle bywa, na projekty/etc przyda się jakieś osobne miejsce, które nie będzie narażone na bezpośrednie uszkodzenia systemu plików – czyli wszędzie poza partycją systemową. Moje dokumenty definitywnie odpadają, chyba że są przeniesione na inną partycję. Można to zrobić przy pomocy dowiązań symbolicznych, ale najlepiej pomyśleć o tym już na etapie instalacji systemu – poprzez dostrojenie odpowiednich ustawień przy pomocy nLite. Jednak jest to temat na osobny artykuł.
Przyda się również osobna partycja na pliki źródłowe projektów – php, htm, itd. są zwykle na tyle małe, że domyślny rozmiar klastra systemu plików powodowałby marnotrawienie miejsca ze względu na niedopełnienie bloku danych. O tym można przeczytać w Wikipedii. I chyba nie muszę przypominać, że używamy wyłącznie NTFS, ew. exFAT. Zwykły FAT się nie nadaje – za duże ryzyko utraty plików w przypadku awarii, brak zarządzania uprawnieniami, czy też mechanizmów MFT (zwłaszcza, jeśli chodzi o zapis małych plików bezpośrednio w tablicy). Można również zwiększyć ręcznie w rejestrze ilość miejsca przydzielonego na tablicę plików, ale w większości przypadków nie będzie to konieczne.
Dlaczego mówię o partycjonowaniu? Odpowiedni podział dysku znacznie wpływa na elastyczność, wydajność oraz szybkość konserwacji. Rozpatrując poszczególne aspekty:
- elastyczność
Możemy bez problemu tworzyć obrazy danych partycji bez obawy o dezaktualizację danych spowodowaną odzyskaniem starego backupu – np. trzymając ważne dane w tzw. Moich dokumentach, w standardowej konfiguracji, tracimy wówczas aktualne dane/cofamy się o kilka wersji w przeszłość. Owszem, można wcześniej spróbować zrobić obraz przed odzyskiwaniem, czy osobny backup, ale wtedy tracimy czas na wyłuskiwanie plików z kopii.
- wydajność
Wspominałem już o rozmiarach klastrów – większe zapewniają wyższe transfery, ale jedyny sens stosowania ekstremalnych rozmiarów (od 32 KiB wzwyż) jest jedynie na partycjach, które będą niejako przechowalnią multimediów/obrazów, czy też innych archiwów.
- szybkość konserwacji
Jest powiązana pośrednio z poprzednim punktem. Raz – sama szybkość dostępu do plików wpływa na prędkość czynności konserwacyjnych – dwa: fragmentacja przebiega w znacznie mniejszym stopniu, a proces jej likwidacji przebiega niemal błyskawicznie. Pomijam dyski SSD. [;
Jakiś czas temu do Chipa był dołączony PerfectDisk przeznaczony do defragmentacji dysków oraz GenieBackup. Są to całkiem nieźle się spisujące narzędzia, choć ten drugi ma kilka wad (m. in. dziwnie przelicza ilość wolnego miejsca potrzebnego do backupu), ale ogólnie spisuje się znakomicie.
A tak BTW: przydaje się miejsce na tzw. poligon: aby można było szybko stworzyć katalog nawet o nazwie aoisdhfsakhdfksdf i coś do niego zapisać. Nieraz wydaje się to dziwne, ale bardzo często się przydaje. [;
VM
Chcąc nie chcąc, niezbędne będzie jakieś środowisko unixowe do przeprowadzania chociaż niektórych testów. Wirtualizatory istnieją już od jakiegoś czasu, są nawet nieźle dopracowane, więc bez problemu można skorzystać z ich dobrodziejstw.
Wystarczy zainstalować wirtualizer – do wyboru, do koloru – VirtualBox, VMWare Server/Player, Microsoft Virtual PC. Polecałbym którąś edycję VMWare z tej racji, że powstało dziesiątki gotowych obrazów do pobrania. Wystarczy ściągnąć, rozpakować i uruchomić. Nas interesuje np. Ubuntu 8.10 Server z zainstalowanym środowiskiem LAMP.
Jeśli dbasz, aby Twoje strony były wyświetlane również w urządzeniach mobilnych, typu PDA/smartphone, wystarczy ściągnąć gotową paczkę z emulatorem Androida, czy Windows Mobile. Jeśli chodzi o Windows Mobile, jest kilka przeglądarek – np. SkyFire, Opera Mobile, czy Iris Browser.
Oczywiście jest jeszcze Opera Mini, wystarczy ściągnąć emulator MIDP, np. MidpX, midlet i po prostu go uruchomić. [;
Rozszerzenia GUI/inne
Windows XP nie zawiera pewnych narzędzi, które znacznie ułatwiają pracę. Pomijam tu kwestię pasków/powłoki, bo to kwestia gustu, ale najważniejsze są narzędzia, które – mimo że niewidoczne – po prostu robią swoje.
ProcessLasso
Czy nie zdarzało Ci się czasem, że któryś proces intensywnie wykonywał swoje zadanie tak, że zamrażał działanie całego systemu do tego stopnia, że ledwo odpowiadał na jakiekolwiek komendy? Widocznie ten problem dał się we znaki twórcom ProcessLasso. Działa na bardzo prostej zasadzie – jeśli jakiś proces zaczyna pożerać całą moc CPU, program obniża mu odpowiednio priorytet. I przyznam, że robi to całkiem sprawnie. Nie jest to jedyna funkcja programu – potrafi również podbijać priorytet aktywnemu procesowi, czy też automatycznie – dla zdefiniowanego. Przydatne podczas np. renderowania scen, czy oglądania filmów. ;]
Poza tym, Process Lasso może pełnić funkcję prostego menedżera procesów.
Z tym programem naprawdę wiele można zdziałać i usprawnić działanie systemu. Wcale nie czuć ~65 procesów aktywnych jednocześnie. [;
Process Explorer
Niektórym pewnie znane narzędzie, dla tych, którzy o PL nie słyszeli: jest to rozbudowany menedżer zadań. Czym się wyróżnia na tle pozostałych? Oprócz funkcjonalności, którą zapewnie systemowy komponent, mamy możliwość podglądu szczegółów każdego z procesów, takich jak np. wszystkie zestawione połączenia, zużycie procesora wg wątków, czy choćby wykorzystywane biblioteki. Process Explorer przyda się każdemu, kto potrzebuje czegoś więcej niż Menedżer Zadań.
TaskSwitch XP
Wg mnie tzw. must have. Nie tylko jeśli chodzi o względy wizualne, ale również funkcjonalne. Oprócz podglądu miniatur, TaskSwitch XP oferuje kilka przydatnych opcji – np. rozszerzenie funkcjonalności przycisków paska tytułowego (aby ukryć okno w trayu wystarczy kliknąć prawym klawiszem myszy na ikonie minimalizacji; można również wymusić trzymanie wybranego okna zawsze na wierzchu klikając w ten sam sposób ikonę maksymalizacji okna), czy przełączanie programów a’la Opera (przytrzymanie prawego klawisza myszy + obracanie kółkiem). Program jest przy tym bardzo lekki (zaledwie 988 KiB w pamięci; podczas wyświetlania miniaturek – ok. 2.5 MiB; obciążenie CPU nie odczuwalne), ale niesamowicie przydatny (mimo wszystko – miniatury okien się przydają).
StrokeIt!
O StrokeIt! już pisałem, więc zapraszam do lektury.
KatMouse
Aplikacja jest bardzo prosta w działaniu. Emuluje pewne zachowanie środowisk unixowych, jakim jest przechwytywanie akcji kółka myszy w zależności od wskazanego kursorem okna. Po prostu się przydaje. Ciężko mi tylko zrozumieć, dlaczego w pamięci zżera aż 10 MiB… Ale jest to znośna ilość. [;
Executor
O ile kilka poprzednich programów rozszerzało funkcjonalność głównie dla wynalazku Apple, to tym razem za pomocą jednej aplikacji dodamy klawiaturze kolejną parę skrzydeł. Standardowe okienko Uruchom raczej nie oferuje zbyt wielu możliwości. Executor jest zamiennikiem dla tej funkcji. O którym zresztą już napisałem.
panie majster?
To tyle w pierwszej części – w dalszych powiem nieco o efektywnym zarządzaniu plikami i potrzebnych do tego narzędziach.
„Moje dookumenty” można przenieść korzystając z okienka Właściwości (menu pod prawym przyciskiem myszy). Pod ręką mam tylko angielskie W2k3 więc może się ciut różnić. Wystarczy zmienić „Target folder location”. Można to oczywiście zrobić w dowolnym momencie a nie tylko w trakcie instalacji. Symlinki pod Windowsem działają tak jakby nie działały (część aplikacji systemowych nie zauważa ich).
Co niby robi KatMouse? (z Twojego opisu nic nie rozumiem a uniksów używam od pewnego czasu ;o)
IMHO brakuje tu jakiegoś wskazania prostego i funkcjonalnego narzędzia do automatycznych backupów wskazanych folderów albo na jakiś edysk albo cokolwiek zewnętrznego.