Started playing with IfThisThenThat.

Started playing with IfThisThenThat. It's automagic.

I'm trying to have all my g+ posts captured and republished to my proper blog (it's a safe archive, as no one reads it except for occasional google spider).

Also, another copy should be made to my Dropbox (we'll see if it saves pictures). Or my gmail. The combinations are endless.

Scott Hanselman originally shared this post:

Essential IFTTT (IfThisThenThat) – Programming Workflows for Humans using the Web's Social Glue – Scott Hanselman

from Andrzej Rusztowicz – Google+ User Feed https://plus.google.com/116749729898732576109/posts/iuec8b8c7VX

Advertisement

Sieciowe porządki, część 2: energooszczędny serwer

Jako geek mam wiele zboczeń, ale szczególnie cenię sobie to dotyczące ekologii, od czasów kiedy pacholęciem będąc poznawałem Bieszczady. Co prawda nie byłem harcerzem ani innym zorganizowanym skautem, ale dzięki odpowiedniej opiece i zachęcie udało mi się w czynie społecznym posadzić kilkaset drzew i wynieść z lasu podobną ilość porzuconych butelek.

Dlatego z ciężkim sercem słuchałem nieraz nocnego warczenia mojego komputera, który zużywał wiadro prądu, mimo że był obciążony zaledwie w kilku procentach podczas ściągania różnych… triali, dem i freeware’ów.

Rozwiązanie problemu zbiegło się w czasie z moją zabawą Home Serverem, choć nie od razu było ono wygodne. Przez pewien czas mój Windows Home Server działał jako maszyna wirtualna pod MS Virtual Serverem (zwykły MS Virtual PC nie obsługiwał dużych dysków). Był to podpięty przez USB 1-terabajtowy dysk WD Green Power (z tego co pamiętam, ciągnie on ok. 8 watów zamiast tradycyjnych(?) 10). Dzięki temu mój WHS – nieświadomy niczego – działał czasem “wewnątrz” netbooka, a czasem w ramach (w RAMie?) mojego desktopa. Owe 8W to jak dotąd mój rekord, w praktyce jednak rozwiązanie to było niedoskonałe, głównie za sprawą niskiego transferu i zabawy z wirtualnymi kartami sieciowymi (może uda mi się kiedyś napisać o tym więcej).

Aktualnie mój Chomik (WHS) działa bezpośrednio zainstalowany na wspomnianym netbooku i póki co jestem z tego rozwiązania zajebardzo dumny.

P1210738P1210743 P1210750 P1210764

Składniki:

  • netbook asus eee 900A, cena ok. 150-180 USD za refurbished. Free shipping w USA, opłaca się zwłaszcza kiedy trafi się darmowy przemyt ;-)
  • dysk 1TB Western Digital Green Power, ok 70-100 USD (300 PLN)
  • adapter mini-pci to SATA, opcjonalny bo można lutować SATA bezpośrednio do płyty ale adapter to dobry kompromis dla takich jak ja lutników. Bodajże 8 USD z przesyłką listem z Hong Kongu do Polski.
  • kabel+śledź eSATA do rozbiórki i lutowania, ok. 8 USD (25 PLN)
  • obudowa na dysk 3,5” USB+eSATA, ok. 30 USD (100 PLN). Częściowo opcjonalna, ważniejszy jest sam zasilacz 5V+12V.

W sumie ok. 300 USD, ale można taniej, zwłaszcza gdy niektóre części zalegają nam w szafie. Niestety po dodaniu kosztu licencji WHS (ok 100 USD) sprawa jest mniej fajna ale za to mamy bardzo energooszczędny serwer z MONITOREM (9”) i kul touchpadem multi-touch ;-), a w niektórych przypadkach także z bateryjnym podtrzymywaniem zasilania.
Co więcej system WHS wcale nie jest niezbędny, 80% jego funkcjonalności (torrent i NAS) można zrobić za darmo na Win XP czy innym Linuksie. Pozostałe 20% również, o ile kilka nieprzespanych nocy mamy też “za darmo”. Co osobiście uważam za bardzo kuszące, po tym jak WHS zawiódł mnie kilkakrotnie. Serwer przy normalnym użyciu nie przekracza 20 watów. Sam dysk zabiera 8,3 wata a monitor sporo poniżej 1.

Uwagi i nabyte doświadczenia:

  • podobno można zainstalować działający system Windows 2003 Server (czyli pewnie i WHS) tak, aby bootować z niego przez USB. Jednak SATA działa sporo szybciej i nie wymaga software’owego hackowania. A hackowanie hardware’owe jest jak wiadomo bardziej macho.
  • podłączenie SATA do płyty głównej lub do adaptera można zrobić prawie na ślepo (tzn. kolejność trzeba zachować, ale trudno czasem zgadnąć z której strony jest pin nr 1: http://pinouts.ru/HD/serialATA_pinout.shtml). Jest to 7 kabelków które jeśli się je podepnie odwrotnie, nic nie zrobią złego tylko nam nie wykryje dysku. Sprawdziłem, po przelutowniu w drugą stronę zadziałało. Oczywiście zasilanie to inna bajka ale tego nie hackowałem.
  • w przypadku mojego asusa – aby wykrył dysk SATA konieczne było zaktualizowanie BIOSu, bardzo proste (plik ROM na pendrive, boot).
  • z oczywistych względów warto podpiąć kablowy Ethernet zamiast WiFi (z drugiej strony wbudowane WiFi pozwala nam na zamurowanie serwera w ścianie lub pod wanną. Ale o tym zboczeniu innym razem).
  • Windows Home Server z powodzeniam działa jako zwykły domowy PC, z monitorem, kamerką USB, Youtubem, Winampem i Skypem.
  • W moim przypadku jest to zawsze włączony kuchenny skajpofon…
  • …oraz aktywowana ruchem zdalna kamera stojąca na straży lodówki – http://highlightcam.com/ ).
  • VNC to bardzo dobry zdalny dostęp do MONITORA serwera (zamiast osobnej sesji terminalowej). Można żonie rozłączyć skajpa. Aktualnie używam RealVNC bo jest częścią świetnego multi-instalatora http://ninite.com/
  • RealVNC choć instaluje się jako serwis w Windowsie, to nie dodaje siebie do wyjątków firewalla, trzeba to zrobić ręcznie (port 5900).
  • Zamiast dysku 3,5” bardzo warto rozważyć dysk 2,5”. Z moich kilkumiesięcznych doświadczeń wynika, że 500GB na spory czas wystarczy, później można uzbierać na drugi taki sam. Do SATA podpięty oczywiście bedzie tylko jeden, ale oba mogą ciągnąć prąd z USB, eliminując dodatkowy zasilacz 5V+12V…
  • albowiem eliminacja zasilacza dysku sprawia, że bateria w netbooku zadziała jak UPS, więc mamy serwer z prawdziwego zdarzenia, który się prędzej zahibernuje niż da zabić. To jest aktualnie mój drugi priorytet na liście ToDo.
  • dodatkowe dyski na USB mogą być 3,5-calowe, energożerne i bez UPSa, zwłaszcza gdy
    • potrafią/pozwalają się wyłączać podczas bezczynności
    • ewentualny zanik zasilania nie jest dla nich dużym problemem (przeważnie i tak są w spoczynku lub co najwyżej są odczytywane a nie zapisywane)
  • mój task numero uno to zainstalowanie TrueCrypta i zaszyfrowanie całego WHSa tak, jak to miało miejsce gdy Chomik był wirtualną maszyną w pliku .VHD
  • …niestety będzie to wymagało ode mnie (a przynajmniej będzie zalecało) lockowania konsoli, co jest niefajne w przypadku kuchennego komputera z kiepską/chowaną klawiaturą. Może czytnik odcisku palca załatwi sprawę, albo logowanie rozpoznawaniem twarzy przez kamerkę lub na podstawie bliskości telefonu z Bluetoothem. Niestety^2 wszystkie te rozwiązania podnoszą trochę zużycie energii.

Na koniec uwaga na temat niezawodności takiego zastosowania. Nie jest ono najwyższe, zwłaszcza w zasięgu dzieci które lubią kabelki; warto od razu pomyśleć o zamkniętej i unieruchomionej obudowie lub o innym zabezpieczeniu naszego zestawu. Z chwilą podpięcia do ethernetu nasz netbook przestaje być mobilny i musimy się z tym pogodzić. Darujmy sobie próby przestawiania, ustawiania, ciągłego rekonfigurowania. Wiem, bo dostałem nauczkę która nieomal kosztowała mnie dysk twardy i trochę danych. Najlepiej zamurować całość w ścianie. To jest mój trzeci task na liście ToDo :-)

Wizualizacja trasy z GPSa

W poprzednim poście zamieściłem linka do GPS-owej mapki z wycieczki, chwilę później doszedłem do wniosku, że może komuś przyda się krótki opis tworzenia takiej mapki (zamiast biegania po góglach).

Automapa 4 na Pocket PC zapisuje trasę (w naszym przypadku ślad, czyli aktualną pozycję) jako czyste komunikaty GPSa w pliku tekstowym .gps. Zdaje się że niektóre programy obsługują to jako .nma (można ręcznie zmienić rozszerzenie). Notabene AM zapisuje także to samo w pliku .gps.bin, ale on nas nie interesuje.

Automapa 4 na Pocket PC

W moim przypadku wystarczyła świetna strona GPS Visualizer, która przyjmuje zapis .gps (można go ew. zzipować przed uploadem) i produkuje efekt w wybranej postaci: Google Maps, Google Earth lub statyczne obrazki czy inne wykresy.

Po wybraniu Google Maps i wczytaniu pliku mogłem przeglądać trasę online, ale link do niej był tymczasowy (można sobie zapisać źródło strony z danymi trasy w JavaScripcie). GPS Visualizer pozwala jednak automatycznie przenieść taką gotową mapkę do zaprzyjaźnionego serwisu, który ma wiele wycieczko-blogowych funkcji: EveryTrail.com. Po szybkim założeniu konta mamy gotową mapkę do dzielenia się ze znajomymi i nie tylko:

screenshot of everytrail.com

Niestety WordPress.com na którym hostuję tego bloga nie pozwala na wklejenie iframe’ów (np. z google maps) więc musi wystarczyć zwykły link; dla wygody powtórzę go tutaj: Krakow Kayaking at EveryTrail

Pracowity dzień z Subversion i PowerShellem

Ostatnio zainstalowałem lokalne repozytorium Subversion i wczekinowałem solucję nad którą ostatnio pracuję. Niestety, okazało się, że oprócz wartościowych plików VB/C# znalazły się tam śmieci typu bin/*.* (głównie dll-ki). Szybko naprawiłem błąd i zacząłem od nowa, tym razem ustawiając w TortoiseSvn ignorowanie plików dll. Wszystko było OK do czasu, aż zacząłem pracować z kodem – okazało się, że warto byłoby wyrzucić z repozytorium także katalogi obj/Debug/ – oprócz dll-ek znajdują się tam np. pliki .projdata, które Visual Studio chce lockować, co nie bardzo podoba się żółwikowi (Tortoise).

Niestety, w międzyczasie mam wprowadzone sporo zmian i nie chcę tworzyć repozytorium od nowa (w końcu po coś ono istnieje ;-)

Aby repozytorium było bez skazy, zacząłem mozolnie usuwać z niego niechciane foldery i pliki. Niestety, obecna solucja zawiera około 50 takich zestawów w poszczególnych podprojektach. Zamiast poświęcić pół godziny na wyszukiwanie i usuwanie tych śmieci, postanowiłem zaprząc do pracy…

PowerShell.

Czytałem swego czasu o projekcie nowego shella (command line’a) Microsoftu, pierwotnie nazywanego Monad. Przemianowany na PowerShell i wydany oficjalnie pod koniec 2006 coraz częściej przewija się na blogach i webcastach. Jest podobny do powłok *niksowych, duży nacisk położono w nim na przekazywanie wyników jednego polecenia do następnego (piping), przy czym ma jedną bardzo istotną zaletę – zamiast stringów przekazuje obiekty. To się wiąże z kolejną zaletą: działa na .necie i w pełni korzysta z jego dobrodziejstw.

W rezultacie dostajemy nowoczesny sposób dostępu do bardzo różnych struktur danych (system plików, rejestr, otoczenie sieciowe, różnorakie API programów…). Microsoft zobowiązał się publikować wszystkie nowe narzędzie administracyjne w formie nakładek GUI na właśnie skrypty i klasy (tzw. cmdlety)PowerShella. Tak właśnie wygląda panel administracyjny najnowszego MS Exchange Servera.

Kilka przykładów z wikipedii:

  • Stop all processes that begin with the letter “p”:
 PS> get-process p* | stop-process
  • Find the processes that use more than 1000 MB of memory and kill them:
 PS> get-process | where { $_.WS -gt 1000MB } | stop-process
  • Calculate the number of bytes in the files in a directory:
 PS> get-childitem | measure-object -property length -sum

Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }

O ile dobrze rozumiem (dopiero zaczynam się tym bawić), to teoretycznie używając składni z ostatniego przykładu i podając inne dane wejściowe, możemy np. usunąć wszystkie klucze rejestru lub np. userów z grupy. Raj dla adminów/skrypciarzy/hackerów :-)

Wracając do mojego Subversiona…

Po kilku godzinach :-D udało mi się usiągnąć cel. Znajduję wszystkie niechciane katalogi na dysku i na ich podstawie uzyskuję bliźniaczą listę takich katalogów, tyle że w Subversion. Pozostało tylko wykasować je z repozytorium, co uczyniłem z poczuciem dobrze spełnionego obowiązku. Co prawda w tym przypadku to była armata na muchy, ale za to mam zainstalowanego PowerShella, napisane pierwsze skrypty w nowym środowisku z użyciem pajpingu i iterowania, poustawiane kilka rzeczy w systemie na przyszłość no i …czyste repozytorium :-]

Get-ChildItem Src\ -include bin,obj -Recurse | foreach { 

 $fullPath = $_.FullName.Replace("\","/")
 $srcPath = (get-location).Path.Replace("\","/")
 $repoPath = "file:///c:/Repo/NexTra"
 $fullPath = $fullPath.Replace("$srcPath","$repoPath")
 svn delete --message "AutoDelete" --force --non-interactive "$fullPath"
}

Stare, dobre gry

Sukces Wii (sprzedaje się lepiej niż Xbox 360 i PS3 razem wzięte) pokazuje, że nie samą grafiką i gigahercami człowiek żyje. Ostatnio, po wielu latach, odmłodziłem swojego PeCeta, mając cichą nadzieję na odrobienie zaległości w graniu (Xbox jest fajny, ale to jednak coś innego).

Niestety, okazuje się, że zbyt wiele tych zaległości nie ma – dobre gry istniały już dawno, a nowe… Half Life 2, choć ładny, rozczarował mnie niewiele mniej od pierwszej części. STALKER, choć trzymający klimat książki, nie zachwycił “rewolucyjną grafiką”, a Far Cry przypadł mi co prawda do gustu, ale ponoć szybko się nudzi. Dołączony do karty graficznej Supreme Commander pogrzebał moje nadzieje do reszty.

Tak więc pora na powrót do naprawdę starych, sprawdzonych przebojów – Starcrafta, Diablo, Baldur’s Gate… Ostatnio po pracy grywamy w biurze właśnie w nieśmiertelnego Starcrafta, chodzi nawet pod Virtual PC :-)

Ponadto szukam ostatnio czasu by zainstalować na Pocket PC stare przygodówki Lucas Arts, które swego czasu przegapiłem – Secret of Monkey Island, Beneath a Steel Sky…

Ale nie wszystko złoto, co się starzeje – swego czasu nie zachwycił mnie kultowy Another World (pechowo uprzedził go u mnie jego sequel – Flashback); ostatnio zagrałem w jubileuszowy remake AW i zmęczyłem go do końca głównie z “kronikarskiego obowiązku”. Choć na szczęście nie tylko.

Marzy mi się wskrzeszenie tych starych, pięknych kolorowych gierek na Pocket PC czy innej PSP.. Oprócz Flashbacka koniecznie Chaos Engine (ostatnio wyszło na komórki Java :-), Syndicate, Gobliiiiiiins…

Na szczęście zawsze pozostaje nieśmiertelny Pasjans – zarówno pod Windows jak i Pocket PC :-D

Res publica non dominetur.

Niesamowita “reklama” Linuksa. Ma już chyba parę lat, ale wcześniej jej nie widziałem. Na mnie osobiście największe wrażenie wywarła fraza “res publica non dominetur” – w luźnym tłumaczeniu (z pomocą angielskiego ;-) ) “rzeczy publicznej nie wolno zawłaszczać”. Dobrze jest sobie przypomnieć prawdziwy sens słowa republika. Rzecz pospolita. Wspólna. I przy okazji przypomnieć go naszym kochanym kaczorom. I wszystkim innym “sługom ludu”.


P.S. Firefox 2.0 ma świetną funkcję – słownik ortograficzny, działający we wszystkich formularzach. Podczas pisania tego wpisu upomniał mnie, gdy napisałem “linuksa” z małej litery ;-)