Archiwa kategorii: technikalia

Backup na Amazon S3

Wyjaśnienie: wpis jest nieco bardziej techniczny niż zwykle, osoby niezainteresowane kopiami zapasowymi w chmurze mogą go sobie z czystym sercem odpuścić 😉

Od ładnych kilku lat administruję prywatnym linuksowym serwerem, utrzymywanym dzięki dobroci zaprzyjaźnionego ISP. Na serwerze, oprócz niniejszego bloga znajduje się też strona A. i kilka innych kont WWW, głównie proste strony oparte o WordPressa. Od dłuższego czasu zastanawiałem się jak to wszystko backupować. Kiedy wczoraj przeczytałem o burzach w Braniewie (gdzie serwer fizycznie się znajduje), przestałem się zastanawiać i przeszedłem do czynów. Padło na Amazon Simple Storage Service (w skrócie S3). Czytaj dalej

Aero2

Jakieś 7 lat temu, gdy mieszkałem w Olsztynie i uczyłem się w 4. LO, na naszej stancji pojawiło się Stałe Łącze. Była to Neostrada, o zawrotnej prędkości 256 kb/s (kilobitów, nie kilobajtów). W porównaniu do poprzedniego medium – analogowego modemu (56 kb/s) – był to niesamowity skok technologiczny. Dzisiaj żadną ekstrawagancją nie są łącza 25 Mb-itowe (a więc jakieś 100 razy szybsze), natomiast Internet w prędkości 256 kb/s każdy może mieć za darmo.

Czytaj dalej

iPadowy przegląd prasy

Najczęściej używanymi przeze mnie (i przez A.) aplikacjami na iPadzie są elektroniczne wersje tygodników. W AppStorze jest ich parę, różnią się jakością wykonania i łatwością obsługi. Poniżej znajduje się próba oceny znalezionych magazynów.

Przekrój

Przed kupnem iPada czytywałem głównie Przekrój, podobały mi się dość długie artykuły i cyniczny ton przebijający ze stron krakowskiego tygodnika. Jedną z pierwszych zainstalowanych aplikacji był więc Przekrój w wersji elektronicznej. Po uruchomieniu programu pokazuje się teksturowany sześcian (!), na którego ścianach widnieją napisy: Przekrój, Serial Film, Raczkowski i inni, Twój Przekrój, itd. Kliknięcie w nazwę tygodnika otwiera stronę z nowymi artykułami, podzielonymi wg. działów – wygląda to całkiem nieźle, znacznie lepiej niż na stronie WWW (choć układ jest podobny). Dostęp do treści artykułów jest płatny – płaci się za tydzień (0,79 euro) lub za rok (24,99 euro). Lista artykułów nie jest dokładnym odzwierciedleniem najnowszego numeru – przykładowo, jeśli nowy Przekrój jest dostępny w poniedziałek, to czasem już np. w środę pojawiają się pojedyncze artykuły z kolejnego numeru. Czytaj dalej

iPad 2

Od kilku dni bawię się gadżetem o nazwie iPad 2 i muszę przyznać, że jest to jedno z najbardziej magicznych urządzeń jakie trzymałem w rękach. Wykonanie, estetyka, szybkość działania i łatwość obsługi sprawiają, że używanie tego ustrojstwa to po prostu czysta przyjemność. Ale co to właściwie jest?

iPad 2 jest przedstawicielem nowej stosunkowo nowego typu komputera – tabletu. Ok, może nie aż tak nowej, ale to właśnie urządzenia z logiem ogryzka sprawiły, że tablety stały się popularne. iPad to tabliczka trochę mniejsza niż kartka A4, której większa cześć stanowi dotykowy wyświetlacz. Obsługuje się toto jeżdżąc i stukając paluchami w ekran. Mój model ma 16 GB pamięci w której można trzymać muzykę, filmy, aplikacje, dokumenty, itd. Ma też połączenie z Internetem przez wifi i 2 kamery (z przodu i z tyłu). Bardzo lekkie – 600 gram. A co z tym można robić? Czytaj dalej

Żółwia grafika

Wypożyczyłem wczoraj jedną z książek, która miała znaczący wpływ na moje życie. Jest to pozycja o nazwie „Atari Logo – komputerowe przygody”. Tę samą książkę zakupiłem w wieku 9 lat razem z moim pierwszym komputerem – Atari 65 XE. Ponieważ nie umiałem wczytać z kasety żadnej gry, pozostało mi uruchomić Atari Logo i zagłębiać się w ten nowy, fascynujący świat.

Przeglądam książkę teraz i jest tak samo świetna, albo i lepsza jak 14 lat temu. Jest to podręcznik programowania w języku LOGO przeznaczony dla dzieci. Język jest dość specyficzny – przy jego pomocy można wydawać polecenia widocznemu na ekranie żółwiowi. O takiemu jak po prawej.

Sam żółw nie jest zwyczajnym gadem. Zwierzak jest bowiem wyposażony w pisak, którym może rysować po ekranie. Wystarczy wydać mu polecenie, aby ruszył przed siebie lub obrócił się. Po wpisaniu komendy FD 10 żółw przesuwa się do przodu o 10 kroków. RT 90 pozwala obrócić żółwia o 90 stopni w prawo, zaś REPEAT 4 [FD 10 RT 90] rysuje nam kwadrat. Czyż to nie piękne?

A. ostatnio pytała mnie, czy mam w swoim rodzinnym mieście jakieś magiczne miejsca, które są dla mnie ważne i które wspominam z rozrzewnieniem. Potrafiłem przypomnieć sobie kilka uliczek, rogów czy drzew, ale uświadomiłem sobie później, że najciekawszym miejscem było jednak biurko z Atari. Było to miejsce nieograniczonych możliwości. Przepisałem z książki parę programów. Program rysujący dom. Nostalgia leje się wiadrami.

Podsłuchiwanie protokołu https

Pisząc Maklera stanąłem przed ciekawym problemem. Otóż aby komórka mogła połączyć się z rachunkiem maklerskim, mój program musi niejako „udawać” przeglądarkę, wysyłającą żądania. Tak więc na przykład w przypadku mBanku muszę pobrać stronę logowania, wysłać login i hasło, pobrać stronę z menu, pobrać adres strony z notowaniami, itd. Aby wiedzieć co tak naprawdę muszę wysyłać na serwer domu maklerskiego i jakich odpowiedzi się spodziewać niezbędne było „podsłuchanie” (sniffing) ruchu sieciowego do i z odpowiedniego serwera. Niestety, tutaj zaczynają się schody. Wszelkie instytucje finansowe do połączeń z klientem używają protokołu https (to „s” jest od „secure”). Protokół jest prawie tym samym co popularny http, a więc pozwala pobierać strony i wysyłać formularze, jednak zapewnia 3 dodatkowe rzeczy: spójność, uwierzytelnienie i szyfrowanie. W tym przypadku kluczowe jest trzecie słówko. Oznacza ono, że nawet jeśli postronna osoba mogłaby odczytać to, co moja karta sieciowa wysyła i odbiera, to i tak będzie to dla niej bezużyteczne, gdyż nie potrafi tego odszyfrować. Oznacza to również, że nawet i na moim własnym komputerze żaden program poza przeglądarką nie może „zajrzeć” do przesyłanych danych. Czytaj dalej

Bioshock

Minione wakacje były bardzo owocne, albowiem przeszedłem dwie części gry Bioshock, którym warto poświęcić kilka słów. W obu częściach gracz zostaje wrzucony w świat podwodnego miasta Rapture, które – wedle zamysłu jego twórcy – miało być podwodnym rajem, współczesną Atlantydą. Raj – wedle wizji Andrew Ryana, założyciela miasta – jest miejscem, gdzie wolność jednostki jest najwyższym priorytetem, gdzie każdy może z czystym sumieniem pracować dla własnego dobra, gdzie sztuka, nauka i przedsiębiorczość nie jest poddawana żadnym ograniczeniom. Utopia niestety przerodziła się w antyutopię – w praktyce okazało się, że jednak przydaje się pewien nadzór nad naukowcami, przedsiębiorcami a nawet artystami, gdyż bardzo ochoczo wkraczają w swej nieograniczonej wolności w wolność innych mieszkańców Rapture (czyniąc z nich niewolników, przedmioty badań naukowych, itd). Czytaj dalej

Android – wrażenia z pola boju

W życiu każdego mężczyzny przychodzi moment, kiedy chce się porzucić dobrze znane okolice i udać się w dzicz i nieznane. Wakacje są dobrym momentem na takie wyprawy. Wakacyjna, programistyczna wyprawa w moim przypadku doprowadziła mnie do Android SDK – pakietu programistycznego dla telefonów z systemem Google.

Krótko mówiąc, chcąc nauczyć się czegoś nowego, postanowiłem napisać aplikację na swój telefon. Ponieważ ostatnimi czasy próbowałem nieco handlować na giełdzie (jeszcze trochę i może uda mi się w końcu wyjść na zero 😉 ), pomyślałem o programie umożliwiającym takowy handel z poziomu telefonu komórkowego. Plan pracy zakładał kilka etapów, pierwszym z nich było utworzenie programu wyświetlającego aktualne notowania – i to się już udało.

Android SDK oparty jest o środowisko Eclipse. Cały pakiet ściąga się w postaci paczki, za darmo, ze strony Android Developers. Instalacja jest bezproblemowa, po ściągnięciu i zainstalowaniu Android SDK należy wybrać które z wersji Androida chcemy emulować, a pakiet dociągnie sobie potrzebne obrazy. Wszystko jest spójne, pod Linuksem działa bardzo fajnie i widać, że jest dopracowane. Eclipsa można lubić lub nie lubić, ja lubię (od kiedy mam 4 GB RAM-u, hehe). Podpowiadanie składni, uruchamianie aplikacji na emulatorze za pomocą jednego guzika, automatyczne kreatory pozwalające wyeksportować gotowy program w formie nadającej się do przesłania do Android Market, podgląd tworzonego aktualnie interfejsu – naprawdę przyjemne i ułatwiające życie rzeczy.

Androidowe aplikacje pisze się w Javie. Java jaka jest każdy widzi – z jednej strony rozwlekła składnia, nie bardzo czytelny kod, brak kilku przydatnych rzeczy takich jak przeciążanie operatorów, czy argumenty domyślne oraz – co najgorsze – ogromne konfiguracyjne XML-e. Z drugiej strony – tak naprawdę nie ma rozsądnej alternatywy. C++ jest jeszcze straszniejsze, a Python czy Ruby (mimo ogromnej sympatii, zwłaszcza dla tego drugiego) ze swoim dynamicznym typowaniem chyba jednak nie nadają się do tego, by być głównym językiem przenośnej platformy. Androidowa Java daje nam do dyspozycji kawałek dobrze znanego pakietu java.* (brakuje tu jednak np. klas obsługujących grafikę) oraz specyficzny pakiet android.*, który pozwala komunikować się z systemem, wyświetlać GUI, itd. Google nie troszczy się zbytnio o zachowanie standardów i nie uświadczymy w Androidzie rzeczy znanych z Javy SE czy ME.

Interfejs aplikacji opisuje się za pomocą XML-i. Występują w nich znaczniki opisujące pewne kontenery (na przykład LinearLayout czy TableLayout) oraz znaczniki oznaczające konkretne elementy (TextViewButton). Ustawiania elementów można nauczyć się dość szybko, pomaga tu bardzo wspomniana już funkcja podglądu. Istnieje nawet możliwość projektowania WYSIWYG, ale pozostawia ona jeszcze sporo do życzenia i lepiej edytować plik samemu. Myślę, że dla każdego kto miał do czynienia z HTML-em, projektowanie interfejsu aplikacji będzie dość intuicyjne.

Sama aplikacja składa się z aktywności, usług, dostawców treści oraz, hm, odbiorców (broadcast receiver). Aktywność jest odpowiednikiem okna. Usługa pozwala wykonać pewne operacje niezależnie od otwartych aktywności. Dostawca treści pozwala wykorzystywać innym aplikacjom wytworzone dane, zaś odbiorca pozwala reagować na różne zdefiniowane lub systemowe zdarzenia (na przykład: „jest już 12:00!”, albo: „Marek dzwoni”). Szczegółowy opis tych elementów znajduje się już na milionie stron, więc nie ma co się rozpisywać. Ważnym elementem każdej aplikacji jest także jakiś magazyn danych. W przypadku Androida każda aplikacja może w prosty sposób utworzyć swoją bazę SQLite. Nie ma co prawda żadnego standardowego ORM-a, ale od pisania surowych SQL-i chroni nas rozbudowana klasa SQLiteQueryBuilder.

Wszyscy wiedzą, że napisać program to jeszcze nic – trzeba go jeszcze zmusić do poprawnego działania. Android SDK daje możliwość debuggowania za pomocą Eclipsa (można ustawiać breakpointy, podglądać zawartość zmiennych itd). Warto też mieć uruchomioną gdzieś w tle aplikację adb logcat. Wyświetla ona logi systemowe oraz (co ważne) treści wyjątków. Można również logować swoje błędy przy użyciu sympatycznej klasy Log i jej statycznych metod (polecam Log.wtf()).

A gdy już utworzymy naszą aplikację której pragną miliony, wystarczy zapłacić $25 Google’owi i już można publikować program w Android Market. Niestety, Polska traktowana jest tu nieco po macoszemu – możemy zamieszczać w sklepie jedynie aplikacje darmowe.

Ogólnie fajna zabawa, można zacząć od razu, nie trzeba mieć nawet telefonu z Androidem (dzięki wbudowanym emulatorom). Udział takich komórek w rynku systematycznie rośnie i myślę, że mimo kilku problemów, warto się tą platformą zainteresować.

Companion Cube

Korzystając z promocji w Valve (jeszcze 5 dni) ściągnąłem sobie tydzień temu za darmo znaną grę Portal. Gra ciekawa, łamigłówki wciągające, trzeba czasem nieźle wysilić mózgownicę. Równie ciekawą rzeczą jest tu jednak fabuła – na początku wydaje się, że bierzemy po prostu udział w testach nowego urządzenia (umożliwiającego tworzenie przestrzenny portali – patrz filmik) przechodząc przez kolejne komnaty prowadzeni przez komputerowo-kobiecy głos. Czasem w głosie komputera pojawia się jednak jakaś fałszywa nuta – na przykład pojawia się motyw ciastka, którym mamy być jakoby nagrodzeni na końcu, przy czym nie jesteśmy pewni, co tak naprawdę ma zostać upieczone. Jeszcze dziwniejszy klimat budują ukryte pomieszczenia, w których możemy znaleźć wypisane na ścianie (przez naszych poprzedników?) hasła takiej jak „ciastko jest kłamstwem”. Fajny klimat, ale ja nie o tym.

W jednej z plansz otrzymujemy Weighted Companion Cube (Obciążeniowa Kostka Towarzysząca). Jest to po prostu skrzynka, która przydaje się na całym obszarze planszy – tu trzeba ją sobie podstawić aby wyżej podskoczyć, tam trzeba coś nią przycisnąć, w innym miejscu przydaje się jeszcze do innej rzeczy. Takie przedmioty pojawiają się często w różnych grach (czasem nie jest to przedmiot, a żywa osoba, która przez jakiś czas nam towarzyszy). Na to „towarzyszenie” w przypadku Kostki położony jest jednak bardzo duży nacisk. Od początku jesteśmy też uprzedzani, że przy wyjściu z owej planszy będziemy musieli się kostki pozbyć – używane jest tu słowo „eutanazja”. Co gorsza, komputer informuje nas również, że kostka nie potrafi mówić, wbrew temu, czego doświadczyli nasi poprzednicy. Eutanazja, polegająca na wrzuceniu kostki do pieca jest według komputera dosyć bolesna, jednak kostka nie jest zdolna do odczuwania zbyt wielkiego bólu. Gdy ostatecznie dokonamy aktu pozbycia się kostki jesteśmy informowani, że poradziliśmy sobie z tym łatwiej niż inni. Gratulacje.

Nic dziwnego, że kostka w krótkim czasie znalazła w Internecie swoich fanów. Można kupić pluszową wersję kostki, dostępne jest całkiem sporo tapet, ludzie robią sobie nawet tatuaże. Można też kostkę zrobić samemu – z papieru. Poniżej moje dzieło.

„Czarne oceany” już są

Chciałem mieć wszczepkę odkąd przeczytałem Czarne Oceany. Taką, jaką zaimplantował sobie Nicholas Hunt jeszcze zanim powiedział, że nazywa się Nicholas Hunt i że teraz będzie kłamał. O taką wszczepkę:

Nicholas Hunt zupgrade’ował sobie mózg.

Zielona Tuluza 10 pokryła mu chaotyczną nanosiecią szarą masę kory. Kiedy spał i kiedy nie spał, w dzień i w nocy, obracały mu się w głowie młynki modlitewne i z nie-świadomych części mózgu płynęły w myślnię obronne mantry, inhibicyjne nieskojarzenia, fala za falą, mozolnie odpychając dookolne struktury psychomemiczne. […]

Uczył się więc żyć w zortowirtualizowanym świecie. Przestał na przykład nosić telefon – zdjął sygnet, odpiął klips. Już ich nie potrzebował. Rozmowy przyjmowała te raz wszczepka, zamiast sygnału dźwiękowego pojawiało się nazwisko bądź kod dzwoniącego, z góry, po lewej, na czerwono. […]

Zaniedbał przez to niemal zupełnie zamknięcie konferencji. Obudziwszy się niedzielnym rankiem w inicjacyjnym błękicie OVR, na kolejne siedem godzin stracił zupełnie poczucie czasu (chociaż posiadał w pamięci tuzin różnych wizualizatorów jego pomiaru). Bawił się wszczepką jak dziecko. Testował po kolei programy darmowe i dema płatnych użytków. […]

Był Klor’s Mood Editor, zdolny wycinać z rzeczywistości całe bloki bodźców, obrazy i dźwięki wszelkiego nieszczęścia (lub szczęścia – jeśli chciałeś się właśnie zdołować), blokować nieprzyjemne zapachy, kasować w czasie rzeczywistym nieuprzejme odzywki, gasić bóle i pragnienia. Ostre Mood Editory znajdowały się na indeksie Departamentu Zdrowia, Departament Sprawiedliwości traktował ich użytkowników jako uzależnionych.

Więc taką wszczepkę chciałem mieć od dawna. Ja wiem – straszna wizja, a co gdy system wszczepki się zawiesi, szare komórki się zresetują, warzywo, a co gdy ktoś się włamie, ale straszna wizja i nienaturalna. Nic nie poradzę – wyobraziwszy sobie ogrom możliwości, chciałem mieć. I mam od soboty.

Czytaj dalej