Pokazywanie postów oznaczonych etykietą produktywność. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą produktywność. Pokaż wszystkie posty

niedziela, 16 czerwca 2013

Automatyczne powiązania w usługach internetowych za pomocą IFTTT

Z pewnością nie jeden raz chcieliście utworzyć powiązania w popularnych usługach internetowych, takich jak: Gmail, Facebook, Twitter, Dropbox, bądź Evernote. Zazwyczaj wiązało się to z instalacją dodatkowych wtyczek, modułów oraz ze żmudnym grzebaniem w ustawieniach danych aplikacji. Dzięki popularnej usłudze internetowej jaką jest IFTTT możemy to wszystko zrobić przy pomocy kilku prostych kliknięć, a wszystko to w postaci graficznego kreatora.

Typowe scenariusze zastosowań? Jesteście posiadaczami konta na Twitter oraz Facebook, niemniej męczy Was publikowanie tej samej treści w każdym z osobna? Nic prostszego, po prostu tworzymy w IFTTT powiązanie, aby wpisy z Facebook były automatycznie kopiowane do konta Twitter. Kolejnym przykładem może być automatyczne zapisywanie załączników z wiadomości w Gmail np. do naszego konta Dropbox, bądź SkyDrive. IFTTT może być również przydatne dla posiadaczy blogów, ja osobiście utworzyłem specjalny filtr dzięki któremu wszystkie wpisy z niniejszego bloga publikowane są automatycznie na Twitter oraz Facebook. Dodatkowo jeśli jesteście fanami serwisów typu “read later” np. Readability, bądź Pocket, możecie utworzyć stosowne powiązanie, aby wiadomości dodane do aplikacji mobilnej Pocket zostały automatycznie skierowane do naszego konta w Pinboard.in, dzięki czemu możemy jednocześnie cieszyć się wszystkimi zaletami serwisu typu “read later” oraz archiwizować zakładki w Pinboard. Ostatni z przykładowych scenariuszy jest o tyle przydatny, że większość aplikacji mobilnych dla iOS oraz Android ogranicza integrację właśnie do popularnego Pocket, świetnym przykładem może być tutaj czytnik Feedly. Co więcej, warto napomnieć o funkcji automatycznego ściągania plików muzycznych z serwisu SoundClud, bądź zdjęć z Pinterest do konta Dropbox.

Twórcy IFTTT zapewniają wsparcie dla 63 tego typu serwisów, a baza jest systematycznie aktualizowana przy kontakcie z autorami wyżej wymienionych usług. Co więcej, możliwość tworzenia takich powiązań jest nie tyle ograniczona bazą serwisów, co naszą wyobraźnią. Pełny zakres wspieranych portali możecie sprawdzić pod tym adresem. Dla zobrazowania załączam również zrzut ekranu:

2013-06-16_172407

Dodatkowo twórcy portalu wspierają socjalny aspekt aplikacji, dzięki czemu wszystkie utworzony formuły mogą być publikowane oraz istnieje możliwość podzielenia się nimi z najbliższymi znajomymi. Jeśli brakuje wam pomysłu na stworzenie formuły, bądź po prostu poszukujecie inspiracji polecam zapoznanie się z zakładką Browse na stronie www.ifttt.com, gdzie możecie przeglądać wszystkie opublikowane formuły włącznie z opisami:

2013-06-16_172734

Jak stworzyć własną formułę? Wystarczy zarejestrować się na portalu IFTTT oraz skierować do zakładki Create. Naszym oczom ukaże się napis “ifthisthenthat”. Kluczowe są tutaj dwa parametry, które pozwolę sobie podkreślić: ifthisthenthat. Tłumacząc na polski “jeśli stanie się to, wykonaj to”. W miejsce znaczników można podstawić wybraną usługę internetową: Dropbox, Gmail, Facebook, kanał RSS itp.:

2013-06-16_174642

Dla naszego przykładu wybierzmy ikonę YouTube. Serwis poprosi nas o autoryzację usługi oraz przekieruje nas do ekranu logowania. Jest to czynność jednorazowa, a po jej wykonaniu usługa zapamięta wykonaną akcję. Oczywiście jeśli w przyszłości nie będziemy sobie życzyli, aby IFTTT “dobierało” się do naszych danych istnieje możliwość cofnięcia autoryzacji. Kolejnym krokiem jest wybranie akcji, która ma zostać wykonana z poziomu podmenu Choose a Trigger. W przypadku serwisu YouTube dostępne są trzy opcje: New favourite video, New watch later video oraz New video uploaded. W naszym scenariuszu zastosowania chcemy, aby filmy oznaczone w YouTube jako ulubione były automatycznie kierowane do usługi Dropbox w postaci linków, zamieszczonych w pliku tekstowym. Dlatego też zaznaczamy pierwszą opcję oraz klikamy na ikonę Create Trigger:

2013-06-16_173431

Teraz klikamy na podświetlone hiper łącze that oraz wybieramy ikonę Dropbox. W tym miejscu możemy wybrać, czy każdy film ma zostać zapisany w osobnym pliku, bądź dodany w postaci nowego wiersza w jednym pliku tekstowym. Wybieramy ten drugi scenariusz, zatem opcję Append to text file. Dodatkowo w zaawansowanych opcjach możemy wybrać format dodanego tekstu oraz katalog, w którym pliki zostaną zapisane na koncie Dropbox. Aktualnie nie chcemy nic zmienić zatem klikamy Create Action. Nasza formuła powinna wyglądać następująco:

2013-06-16_173743

Od tej pory każdy film w YouTube oznaczony jako ulubiony zostanie automatycznie zapisany w formacie tekstowym jako link na koncie Dropbox. Genialny przykład zastosowania archiwalnego. Oczywiście dla bardziej zaawansowanych użytkowników mogę polecić zabawę kanałami RSS oraz przekierowywaniem ich treści do wszelkiej maści serwisów. Dla przykładu możemy ustawić wyodrębnienie linków do pobierania zdjęć z kanału użytkownika w usłudze Pinterest, aby te były automatycznie publikowane na blogu Wordpress albo Blogspot.

Wszystkie utworzone formuły można przeglądać w zakładce My Recipes. Z poziomu tego podmenu możemy je w każdej chwili wyłączyć, upublicznić, sprawdzić aktywność oraz po prostu usunąć jeśli zajdzie taka konieczność. Usługa jest bardzo intuicyjna oraz pozwala na znaczną automatyzację wielu czynności, które codziennie wykonujemy. Osobiście brakuje mi jedynie wsparcia dla czytników RSS: Feedly oraz NewsBlur, niemniej z informacji jakie posiadam twórcy IFTTT oraz Feedly już nawiązali współpracę, zatem kanał powinien być niebawem dostępny na liście wspieranych serwisów. Jeśli natraficie na ciekawe przykłady już stworzonych formuł, bądź sami stworzycie ciekawe powiązania, podzielcie się nimi w komentarzach pod niniejszym wpisem.

poniedziałek, 3 czerwca 2013

Automatyczne śledzenie zmian na ulubionych witrynach

Zapewne nieraz spotkaliście się z sytuacją, gdy chcieliście śledzić zawartość danej strony internetowej pod kątem zmian na niej. Oczywiście codziennie możemy sprawdzać ulubioną stronę ręcznie, niemniej nie jest to wygodne rozwiązanie, a duży problem pojawia się w momencie, gdy do sprawdzenia mamy kilka takich stron. Opisana poniżej metoda jest przydatna, gdy dany serwis nie udostępnia nam kanału RSS, dzięki któremu możemy śledzić zmiany, bądź publicznego profilu na popularnych serwisach, takich jak Facebook, bądź Twitter.

Czego będziemy potrzebowali? Przede wszystkim przeglądarki, ponieważ pierwsza z wtyczek, która umożliwi nam śledzenie stron napisana jest pod Firefoxa. Nazwa samej wtyczki to AlertBox, możecie ją pobrać z oficjalnej strony wtyczki na witrynie Firefox Addons, bądź ze strony twórcy. Po zainstalowaniu oprogramowania w górnym prawym rogu przeglądarki, naszym oczom powinna ukazać się ikona:


Dodatkowo w menu kontekstowym, które pojawia się po kliknięciu prawego klawisza myszy na stronie, pojawi się nowe podmenu:


Samo oprogramowanie opiera się na wyrażeniach regularnych, ścieżkach XPath oraz lokalizatorach DOM. Szczerze powiedziawszy nie udało mi się znaleźć bardziej zaawansowanej wtyczki pod tym kątem. Swoją funkcjonalnością przebija nawet pełnoprawne programy o podobnej funkcjonalności. Następnym krokiem jest znalezienie witryny, którą będziemy śledzili. Na potrzeby niniejszego wpisu skorzystamy z oficjalnego bloga gry SimCity. Fani produkcji będą chcieli go śledzić pod kątem nowinek z gry. W tym miejscu musimy znaleźć charakterystyczny znacznik na stronie, który pozwoli na odróżnienie pojawiających się wpisów. Najczęściej takim znacznikiem jest data, bądź licznik postów (najczęściej w przypadku forum tematycznego). Na nasze szczęście twórcy bloga SimCity oznaczają każdy wpis datą w formacie "Jun 03, 2013":


W tym miejscu musimy stworzyć wyrażenie regularne, na podstawie którego AlertBox rozpozna, że na stronie pojawił się nowy wpis. Dla naszych potrzeb będzie ono wyglądało następująco: [A-z]+\s[0-9]+,\s[0-9]+. Oczywiście tworzenie wyrażeń to kwestia dowolna każdego z użytkowników, mogą one być bardziej ścisłe, bądź mające charakter bardziej otwarty o czym wspominałem przy okazji wpisu dotyczącego tworzenia reguł w oprogramowaniu ruTorrent. Jeśli chcecie podszkolić znajomość wyrażeń regularnych oraz sprawdzić przykładowe wyrażenia, zapraszam do lektury strony Regular-Expressions.info. 

Gdy mamy już stworzone wyrażenie, musimy je dodać dla danej strony klikając poniższy przycisk w podmenu AlertBox..., mianowicie Add Alert for changes in page.


Naszym oczom powinien ukazać się nowy panel, gdzie musimy wpisać nazwę śledzonej witryny, rzeczoną ścieżkę tj. lokalizator XPath oraz nasze wyrażenie. Znalezienie lokalizatora może być czasem problematyczne. Lokalizator to nic innego jak element strony, który będzie podlegał sprawdzaniu, może to być tabela, ramka, selektor CSS itp. Aby zaznaczyć poprawny selektor, wystarczyć kliknąć na stronie, na element, który nas interesuje. Powinna pojawić się wokół niego czarna ramka. Lokalizację można również wybrać z podmenu, w lewej części panelu:


Reasumując w polu Expression wpisujemy lokalizację, natomiast w polu Regex Filter wklejamy nasze wyrażenie regularne. Jak sprawdzić czy zarówno lokalizacja jak i wyrażenie są poprawne? W dużym podmenu na dole panelu powinny wyświetlić się wyniki. Jeśli odpowiadają one naszym szukanym frazom, w tym przypadku elementowi: Jun 03, 2013, jesteśmy w domu. Jeśli nie, musimy zazwyczaj zmienić ścieżkę XPath, albo poprawić wyrażenie. Te drugie można w łatwy sposób weryfikować za pomocą oprogramowania The Regex Coach. Warto również zmienić wartość pola Check for updates every, gdzie definiujemy w jakich interwałach czasu skrypt będzie weryfikował stronę pod kątem nowej zawartości. Poprawnie skonfigurowane ustawienia dla witryny powinny wyglądać następująco:


 Gdy wtyczka znajdzie zmiany na naszej stronie, oznajmi nam to komunikatem tekstowym w postaci slajdu oraz stosownym dźwiękiem. Ustawieniami witryn można również zarządzać z poziomu panelu, który dostępny jest poprzez kliknięcie ikony w górnym prawym rogu przeglądarki, o którym wspomniałem na początku wpisu. Oczywiście przedstawiony przykład to tylko zarys możliwości wtyczki. Bardziej zaawansowanych użytkowników zainteresuje możliwość łączenia powiadomień w kilka modułów, gdzie powiadomienie wyświetlane jest tylko wtedy, gdy spełnione zostaną wszystkie wymogi danego ustawienia itp. Istnieje również możliwość skonfigurowania powiadomień e-mail o znalezionych zmianach. 

Sama wtyczka prezentuje również uproszczony tryb powiadomień, dla elementów witryn, które podlegają zmianie jedynie pod względem liczbowym np. liczniki wpisów, postów, komentarzy. Jeśli napotkamy taki element, wystarczy najechać na niego kursorem myszy, kliknąć prawym klawiszem myszy oraz z podmenu AlertBox wybrać funkcję Add Alert for changes in clicked element:


Wtyczka automatycznie poinformuje nas, gdy pojawi się zmieniona wartość, w tym przypadku Komentarze (1) itd. Jest to bardzo przydatne, gdy śledzimy konkretny wpis np. na forum tematycznym.

Choć twórca wtyczki AlertBox pracował nad uniwersalną platformą dla urządzeń mobilnych oraz innych przeglądarek tj. Google Chrome pod nazwą Alert.Do, projekt został zamknięty z nieznanych przyczyn. Niemniej w tym miejscu chciałbym zwrócić waszą uwagę na wtyczkę Page Monitor dla przeglądarki Chrome właśnie. Jest ona uproszczoną wersją AlertBox, niemniej również wspiera wyrażenia regularne, co jest kluczowe. Dodatkowo charakteryzuje się nieco przyjaźniejszym interfejsem dla początkujących użytkowników. Dodawanie witryn odbywa się na podobnej zasadzie, natomiast wyrażenia regularne mogą być zdefiniowane w podmenu advanced:



Dużym plusem wtyczki Page Monitor jest fakt, że nie wymaga od użytkownika definiowania ścieżki lokalizacji tj. XPath, co może być atutem dla mniej wprawionych użytkowników

Wspomniane instrukcje mogą wydawać się nieco zagmatwane, a proces dodawania nowych witryn czasochłonny, niemniej nic bardziej mylnego. Po opanowaniu wyrażeń regularnych, dodawanie kolejnych witryn do sprawdzenia jest bajecznie proste, a dodatkowo przekłada się na naszą produktywność i oszczędność czasu w dłuższej perspektywie, co jest kluczowe w dzisiejszych czasach. Czego mi brakuje w obydwu wtyczkach, to moduł tworzenia własnych kanałów RSS, na podstawie zdefiniowanych stron, dzięki czemu moglibyśmy otrzymywać powiadomienia np. na naszym smartfonie, dzięki popularnym czytnikom RSS. Tego typu rozwiązanie wymaga jednak integracji z hostingiem usługodawcy, w tym przypadku twórcy wtyczki, co wymaga dodatkowych nakładów z ich strony. Jeśli znacie lepsze, bądź po prostu inne metody na śledzie ulubionych stron, napiszcie proszę komentarz.

piątek, 31 maja 2013

Tworzenie inteligentnych reguł pobierania w ruTorrent

Jeśli jesteście w posiadaniu serwera opartego na systemie Linux, domowego, bądź profesjonalnego oraz pobieracie dane z internetu za pomocą protokołu Torrent, na pewno zainteresuje was możliwość automatycznego dodawania nowych plików według wcześniej zdefiniowanych reguł. Pewnie niektórzy z Was zapytają – dlaczego nie robić tego ręcznie? Oczywiście można i tak, niemniej jeśli pobieracie ulubione pliki, które publikowane są w określonych odstępach czasu np. seriale, nie warto go tracić na żmudne przeklikiwanie witryn, ponieważ skrypt zrobi to sam za nas. 

Czego potrzebujemy? Po pierwsze oprogramowania do pobierania torrentów. Ja osobiście preferuję rTorrent z nakładką (GUI) ruTorrent. Jest to nie tylko wydajne narzędzie, oferujące mnóstwo dodatków w postaci pluginów, ale przede wszystkim nie wymagające dużych zasobów, dlatego nawet tańsze serwery podołają zadaniu. Gdy samo oprogramowanie figuruje już na naszym serwerze, logujemy się poprzez GUI oraz klikamy prawym klawiszem myszy na zakładce Podajniki. Następnie aktywujemy opcję Dodaj podajnik RSS. W tym miejscu musimy wskazać źródło naszego podajnika, czyli nic innego jak kanał RSS (ang. feed) ulubionego serwisu torrentowego. Oczywiście nic nie stoi na przeszkodzie aby podać kilka takich podajników co pozwoli na swoistą dywersyfikację źródeł oraz zminimalizuje szansę na „przeoczenie” publikacji, która nas docelowo interesuje. 


Gdy mamy już załadowane podajniki, należy stworzyć wspomniane reguły. W tym celu ponownie klikamy PPM na zakładkę Podajniki oraz wybieramy opcję  Menadżer RSS. Wszystkie reguły tworzone są za pomocą wyrażeń regularnych, dlatego też jeśli nie jesteście z nimi obyci, polecam lekturę strony Regular-Expression.info oraz sprawdzenie przykładowych wyrażeń. W przypadku menadżera programu ruTorrent wyrażenia interpretowane są w nieco inny sposób, dlatego też każdy ciąg zaczynamy od znaku /. Przykładowo /nazwa_torrenta/modyfikatory. Nieco zagmatwane? Nic bardziej mylnego. Dla przykładu chcemy, aby nasz skrypt automatycznie pobierał nowe wersje dystrybucji Debian. Przykładowa nazwa torrenta to Debian Release 28.05.2013.torrent. W takim przypadku nasze wyrażenie powinno wyglądać następująco: /debian.*release.*/i. Oczywiście możemy zmniejszyć zakres pobieranych plików precyzując wyrażenie np.: /debian.*release.*05.2013/i. Analogiczny system można tworzyć np. dla seriali, gdzie znacznik .* oznacza tzw. wolne wyrazy, bądź dowolny fragment w nazwie. Przykładowo: /nazwa.*serialu.*s.*e.*720p/i. Tak stworzona reguła pozwoli nam na automatyczne pobieranie ulubionych odcinków serialu, gdzie jakość odcinka to 720p. Oczywiście w tym przypadku również możemy zmniejszyć zakres zastępując fragment s.*, następującym s01. W takim przypadku chcemy aby program pobierał tylko odcinki z pierwszego sezonu ulubionego serialu.


Na takiej samej zasadzie możemy tworzyć wykluczenia od nazw. Przykładowo chcemy wyeliminować nagrania słabej jakości, tworzymy zatem regułę: /(cam|ts|480p|r5|r6)/i. Znacznik | pozwala na oddzielenie wyrażeń, natomiast znacznik i na końcu każdego wyrażenia pozwala na ignorowanie wielkości znaków w wyrażeniu, zatem nie musimy martwić się faktem, że dany torrent może zawierać nazwy z dużej i małej litery. 

Mam nadzieję, że niniejszy wpis przybliży Wam nieco możliwości samego ruTorrenta oraz moc, która drzemie w wyrażeniach regularnych. Oczywiście są to bardzo proste przykłady, niemniej poświęcenie 30-40 minut, pozwoli na zaoszczędzenie wielu godzin szukania plików, co więcej będą one pobierane automatycznie, gdy pojawią się w sieci.