Archiwa autora: Newton

O Newton

Jestem Newton. Studiuję informatykę na UMK, jestem członkiem Stowarzyszenia Diakonia Ruchu Światło-Życie. Te dwie aktywności wyznaczają dobrze określają moje zainteresowania: od informatyki poprzez matematykę, filozofię, literaturę aż po teologię. Uznałem, że blog jest dobrym miejscem na dzielenie się pewnymi przemyśleniami na w/w tematy.

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

Dziennik pokładowy

2010-08-09, 11:05

Wczoraj rozpoczęliśmy nasz rejs. Dość długo się zbieraliśmy z Wilkas (niedaleko Giżycka) – trzeba było iść do kościoła, na zakupy, a jak na zakupy to i na obiad. Na nasz posiłek w giżyckiej pizzerii czekaliśmy około godziny (!), w międzyczasie przez miasto przeszła wielka ulewa. Gdybyśmy byli na środku jeziora nasza sytuacja byłaby nieciekawa.

Ale wypłynęliśmy. Dla mnie była to pierwsza podróż jachtem. Albo prawie pierwsza – miałem w dzieciństwie jakiś epizod z żaglówką i burzą, ale mechanizm wyparcia skutecznie pozbawił mnie wspomnień z tego wydarzenia.

Płynie się fajnie. Wiatr wieje, łódka się przechyla i zasuwa całkiem szybko – zmierzyliśmy naszą prędkość przy użyciu ogryzka i wyszło nam 4-5 km/h (co potwierdził później GPS). Moją rolą w 6-osobowej załodze jest póki co bycie balastem („na lewo burta!”, „na prawo burta!”), choć przy zwrocie przez sztag luzowałem już i wybierałem szot foka (haha!). 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ć.

Gołębie

Gołębie były dwa. Ten jasny i ten ciemny. Upodobały sobie balkon sąsiada, pełen starych doniczek i niepodlewanych kwiatów. Wybrały jedną z donic jako idealne miejsce na gniazdo. Trzeba przyznać, że kierowały się chyba lenistwem – ponieważ donica pełna już była ziemi i starych liści, nie musiały mozolnie znosić gałęzi. Po prostu zamieszkały razem w tej donicy – takiej, jak była.

Z początku siedziały w niej razem, wylatując od czasu do czasu na łowy (zapewne polowały na turystów i ich dzieci, wielkich miłośników toruńskich gołębi). Uprzedzając pytania – nie brudziły i nie hałasowały, była to wprost idealna młoda para sąsiadów.

Pewnego dnia zauważyłem, że rodzina chyba się powiększy. W doniczce leżały dwa jaja. Zmieniły się wtedy tryb gołębiego życia. Związek był 100%-owo partnerski, wysiadywanie odbywało się na zmianę. Za dnia wartę pełnił ten ciemny a w nocy – ten jasny. Warta dzienna była krótsza, ale też bardziej męcząca. Balkony wychodzą na południe, więc praktycznie cały dzień na ciemnego gołębia mocno świeciło słońce. Około 10 i 18 następowała zmiana. Trzepot skrzydeł, potrójne gruchanie, trzepot skrzydeł. Zmieniały się bardzo szybko, nie traciły czasu na opisywanie sobie nawzajem przebiegu dnia lub nocy.

Gdy ciemny lub jasny gołąb przylatywał na swoją zmianę, przysiadał na barierce balkonu. Zachęcony trzepotem zwykle wychodziłem i ja, poobserwować przez chwilę gołębie i ich jajka. Ja na jednym balkonie i gołąb na barierce drugiego. Przeważnie patrzył na mnie z boku, obserwował mnie, tak jak i ja go. Dopóki stałem na balkonie, on stał na barierce, pozwalając, aby jajka były odkryte. Może nie chciał zdradzić lokalizacji gniazda, a może uważał, że jest czymś wstydliwym usadowić się w donicy. Wchodziłem wtedy na chwilę do pokoju – gołąb zlatywał z barierki i powolnym krokiem obejmował donicę na kilka godzin w swoje posiadanie.

Przedwczoraj zobaczyłem, że miejsce jednego z jajek zajęło pisklę. Małe, z wielką głową, której większość zajmowały nieotwarte jeszcze oczy. Próbowało chronić się w cieniu rodzica, gdyż na zewnątrz było 35 stopni Celsjusza. Niestety, słońce okazało się silniejsze. Wczoraj wykluł się drugi pisklak. Miałem nadzieję, że będzie bardziej wytrzymały od brata lub siostry. I rzeczywiście, dziś rano mały gołąb wiercił się jeszcze pod piórami dużego. Po kilkunastu minutach usłyszałem trzepot skrzydeł i gruchanie. Miejsce jasnego gołębie przyleciał zająć ciemny. Nie miał się już jednak czym opiekować. Wydziobał kilka ziaren z doniczki i odleciał.

Po południu pojawił się znowu ten jasny. Widocznie odlatując rano, nie zauważył, że tym razem nie udało się przedłużyć gołębiego gatunku. A może zauważył, ale górę nad pamięcią wziął instynkt, każący codziennie o 18 pojawiać się na balkonie mojego sąsiada? Jasny gołąb przysiadł w doniczce, popatrzył i odleciał. Projekt „gniazdo na Głowackiego” został zakończony. Nie ma tu już nic więcej do roboty.

A może jest? Po godzinie pokazały się oba – ten jasny i ten ciemny. Zostały jednak tylko chwilę i odleciały. Widocznie potrzeba tu było czegoś więcej niż dwa gołębie i stara doniczka na nasłonecznionym balkonie.

Tauron, Dom Maklerski PKO BP i Linux

Polska jest wyprzedawana. I bardzo dobrze. Podczas jednej z ostatniej wyprzedaży – chodzi konkretnie o wejście na giełdę spółki PZU – chętni do kupna akcji naszego największego ubezpieczyciela zarobili na nich w pierwszym dniu kilkanaście procent. Słysząc w radiu entuzjastyczne relacje z giełdy pomyślałem, że może warto spróbować szczęścia przy kolejnej prywatyzacji. Okazja pojawiła się niebawem – prywatyzował się Tauron. Nie słyszałem wcześniej o Tauronie, okazało się jednakże, że jest to drugie co do wielkości przedsiębiorstwo energetyczne w Polsce, składające się z prawie setki firm.

Aby wykupić akcje Tauronu musiałem założyć konto inwestycyjne. Ponieważ posiadam rachunek w Inteligo pomyślałem, że warto związać się z Domem Maklerskim PKO BP. Założenie konta inwestycyjnego zajęło około 30 minut, dostałem namiary na stronę, login i hasło. Jednak próba zalogowania się z mojego domowego Linuksa zakończyła się porażką. Okazało się, że aplikacja Epromak (której używa PKO BP) działa jedynie pod Windowsem i przeglądarką Internet Explorer – gdyż używa (dość już przestarzałej) technologii ActiveX, niedostępnej dla innych przeglądarek i systemów.

Oznacza to, że użytkownicy Linuksa a także Maców nie mogą korzystać z oferty DM PKO BP. Oczywiście, zawsze można sobie jakoś poradzić – ja uruchamiam Windowsa XP za pomocą programu VirtualBox. Nie jest to jednak wygodne.

Aby przynajmniej mieć możliwość obserwowania na bieżąco kursu wybranych spółek napisałem sobie aplikację w Rubym, która potrafi ściągać aktualne kursy ze strony Epromaka i wyświetla je w małym okienku. Idąc za ciosem, wykorzystywane tam biblioteki dają również możliwość sprzedaży i kupna akcji – brakuje im jednak interfejsu graficznego. Można jednak pomyśleć o stworzeniu jakiegoś systemu automatycznych inwestycji lub napisaniu aplikacji klienta dla Linuksa/Maca. Może kiedyś.

A Epromaka używają jeszcze następujące domy maklerskie:

  • DM Banku Handlowego SA,
  • Beskidzki Dom Maklerski SA,
  • Dom Inwestycyjny BRE SA,
  • DM Millenium SA.

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.

Zdjęcia z Rzymu

Wczoraj wróciliśmy z A. z Rzymu. Chciałem napisać o Rzymie starożytnym i barokowym, o rzymianach, o tym, że najlepiej jeść na Zatybrzu. Chciałem też przytoczyć zabawną anegdotkę o tym, jak pierwszej nocy jeździliśmy od hotelu do hotelu. Nie mam jednak weny. Dlatego zapraszam po prostu do obejrzenia zdjęć.

The Wire

Doctor Who, House, Battlestar, Jericho, Deadwood, In Treatment, United States of Tara, Dexter, Mad Men, Big Bang Theory, Firefly, Coupling, Heroes, Twin Peaks – nazbierało się strasznie dużo tych seriali. Na wymienionej liście brakuje serialu stricte kryminalnego – z przestępcami i policjantami próbującymi ich złapać. Lukę tę zapełnia (i to jak!) The Wire.

Akcja rozgrywa się w Baltimore – mieście na wschodnim wybrzeżu USA. Baltimore jest wielkości Wrocławia – ma trochę ponad 600 tysięcy mieszkańców, przy czym 63% populacji stanowią Afroamerykanie. Po jednej stronie serialowej barykady stoi specjalnie uformowany oddział policji, po drugiej stronie – gangi narkotykowe. Myślę, że podstawowym celem twórców serialu było pokazanie obu środowisk jak najdokładniej. Poznajemy więc policjantów – dobrych i złych, pracujących w Wydziale Zabójstw, Narkotyków, ich szefów, szefów ich szefów (burmistrza, członków rady miejskiej), ich rodziny. W większości policjanci są dobrymi fachowcami, choć oczywiście zdarzają się fajtłapy lub ludzie celowo działający na szkodę prowadzonych spraw. Narzędziem wykorzystywanym w każdej serii jest tytułowy podsłuch, który często pozwala być o krok do przodu przed gangsterami. Podsłuch pełni tu chyba rolę symboliczną – czy cały serial nie jest swego rodzaju podsłuchem, dzięki któremu możemy wejść w światy, w które inaczej byśmy nie wkroczyli?

Czytaj dalej

„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