Jakiś czas temu pisałem w artykule dotyczącym nauki programowania o tym, że dobrym punktem na rozpoczęcie swojej przygody z pisaniem programów jest automatyzacja codziennych czynności. Dzisiaj chciałbym Wam przybliżyć narzędzia jakich ja używam do tego typu zadań.

Od kilku lat jestem użytkownikiem komputerów Apple, dlatego ten artykuł będzie pewnie przydatny jedynie dla osób o podobnym do mnie guście. Będący w większości użytkownicy Windows od Microsoftu również mają na pewno do dyspozycji sporo tego typu narzędzi, ale ja ich zwyczajnie nie znam. Jedynie sporadycznie mam kontakt z Windowsem i dlatego nie jestem na bieżąco.

Opiszę Wam krótko i po kolei narzędzia jakich używam, do czego je wykorzystuje i w czym się najlepiej sprawdzają. Do dzieła!

Hazel

Na pierwszy ogień idzie Hazel. Producent opisuje je jako osobista gosposię. Za jego pomocą możemy monitorować określone foldery pod względem ich zawartości i po zaistnieniu określonych reguł wykonać zdefiniowane akcje. Idealnie nadaje się do porządkowania folderów, które do których automatycznie wpadają nam różne rzeczy, czyszczenia starych kopii zapasowych czy archiwizacji dawno nie używanych plików.

hazel.png

Aplikacja ta instaluje się jako panel preferencji w Preferencjach systemowych. Jej widok podzielony jest na dwie kolumny – w jednej definiujemy jakie foldery chcemy obserwować, a w drugiej ustalamy jakie reguły zastosować do ich zawartości. Akcje jakie możemy wykonywać i sposoby filtrowania dostępne w programie są bardzo rozbudowane. W bardzo łatwy sposób możemy za jego pomocą utrzymać porządek w katalogach, do których trafia nam duża ilość plików. Jedną z funkcji programu jest również pilnowanie tego, czy systemowy kosz mamy pusty oraz usuwanie pozostałości po odinstalowanych programach.

Jest to aplikacja płatna. Licencja kosztuje 28$, ale nie żałuję wydanych pieniędzy. Miałem okresowe problemy z uruchamianiem zdefiniowanych przeze mnie reguł, ale jednorazowe ręczne ich odpalenie zazwyczaj załatwia sprawę. Można zastąpić Hazela odpowiednimi skryptami powłoki i użyciem crona, ale wymagałoby to dużo więcej pracy.

Link do strony producenta

Keyboard Maestro

Drugim programem, z jakiego korzystam jest Keyboard Maestro. Długo się zastanawiałem nad jego zakupem, bo nie wiedziałem do czego mogę go wykorzystać, ale teraz nie wyobrażam sobie bez niego pracy. Aplikacja pozwala nam zdefiniować czynności, które będą wykonane po uruchomieniu ustalonego wyzwalacza. Może być nim, tak jak wskazuje nazwa programu, kombinacja klawiszy, ale nie tylko. Wyzwalaczem może być podłączenie dysku czy pendrive’a do portu USB, wybudzenie komputera czy nawet wpisanie kombinacji znaków na klawiaturze.

Makra możemy tworzyć tak, aby uruchamiały się tylko w określonych aplikacjach lub we wszystkich oprócz tych przez nas określonych. Pozwala to na przykład na stworzenie skrótów klawiaturowych do operacji na tekście, których dany edytor nie oferuje. Moim ulubionym jest usunięcie linii – po wciśnięciu cmd + d. Teraz w każdej aplikacji mam tę funkcję dostępną.

keyboard_maestro.png

Najwięcej czasu oszczędzam przy pracy nad aplikacjami webowymi. Mam stworzone jedno makro, które po wciśnięciu kombinacji klawiszy zapisuje projekt, nad którym pracuje w IntelliJ Idea. Ta przenosi określone pliki na serwer i odświeża mi kartę w przeglądarce z uruchomioną aplikacją. To wszystko w kilka sekund.

Podobnie jak za Hazel za Keyboard Maestro trzeba zapłacić. Kosztuje on niecałe 120 złotych i jest warty każdego grosza. Oszczędziłem z jego pomocą już dobre kilkadziesiąt godzin.

Link do strony producenta

Skrypty powłoki

Jako programista jestem przyzwyczajony do pracy z linią poleceń. Zazwyczaj dla ludzi nie jest to preferowany sposób pracy, ale dla mnie jest on zwyczajnie szybszy. W systemach UNIXowych, takich jak Mac OS X, dostępnych jest mnóstwo narzędzi, które możemy wykorzystać. Część z nich nie jest dostępna w systemie out of box, ale w prosty sposób można je zainstalować chociażby z wykorzystaniem homebrew. Możemy operować nie tylko na plikach tekstowych i ich zawartości, ale również na plikach graficznych korzystając na przykład z ImageMagick. Przesyłanie pliku na serwer jest możliwe za pomocą jednej linijki.

Napisanie kilku znaczków jest zdecydowanie prostsze i szybsze niż klikanie myszką na interfejsie użytkownika. Reguły, które tworzę w Hazel, czy moje makra Keyboard Maestro bardzo często uruchamiają po prostu napisane przeze mnie skrypty powłoki. Jeśli chcemy, aby pewne czynności były wykonywane co jakiś okres czasu, to również mamy na to rozwiązanie. Wystarczy skorzystać z crona.

terminal.png

Większość narzędzi mamy dostępne za darmo na licencji open source. Nie musimy nic płacić, wystarczy, że zainwestujemy trochę czasu na zaznajomienie się ze składnią. To zdecydowanie moje ulubione narzędzie.

Warto zwrócić też uwagę na AppleScript. Jest to język skryptowy, który został stworzony przez Apple. Spora cześć aplikacji tworzonych na Mac OS X udostępnia możliwość wykonywania pewnych czynności z wykorzystaniem właśnie tej składni. Apple udostępnia nawet narzędzie graficzne do tworzenia tego rodzaju skryptów. Nawet nie musimy znać składni. Najczęściej wykorzystuję je do tworzenia notatek w Evernote z określoną zawartością. Warto się tym zainteresować.

Opisałem Wam narzędzia, za pomocą których pracuję na codzień. Pewnie zastanawiacie się nad tym do czego Wy możecie wykorzystać je u siebie? To samo pytanie zadawałem sobie jak pierwszy raz o nich usłyszałem. W najbliższym czasie pokażę Wam szczegółowo, to co ja za ich pomocą osiągam. Może znajdziecie coś dla siebie?

Zdjęcie w nagłówku: flickr