sobota, 27 marca 2010
Do kolekcji moich skryptów Greasemonkey poprawiających Blipa dołączył właśnie kolejny. Oto przed wami... Blip.pl - Expand links and citationsJak sama nazwa skryptu Blip.pl - Expand links and citations wskazuje (pisząc kod przełączam się na angielski) skrypt ma za zadanie rozwijać cytowania oraz linki. Co 2,5 sekundy sprawdza czy na stronie nie pojawiło się coś do rozwinięcia. Ot i cała filozofia. Poniżej mała prezentacja: InstalacjaDla posiadaczy Firefoxa instrukcja w czterech prostych krokach:
W Google Chrome działa bez problemu jako rozszerzenie. Posiadacze innych przeglądarek muszą poradzić sobie sami. Changelog:
czwartek, 25 marca 2010
Zaprawdę powiadam wam, błądzi ten, kto myszy do przeglądania stron internetowych używa. Nawróćcie się, albowiem droga do produktywności przez skróty klawiaturowe wiedzie! A każda minuta na nauce klawiszologii spędzona, po siedmiokroć zwrócona wam będzie. Zaprawdę, zaprawdę powiadam wam, kto głosi inaczej fałszywym jest prorokiem, który oferując pozornie proste rozwiązania na pokuszenie wiedzie. W poszukiwaniu produktywnościJeszcze kilka dni temu zupełnie wystarczająca była dla mnie lista skrótów klawiaturowych Firefoxa, skróty w Gmailu i Google Readerze, mój zestaw rozszerzeń i odpowiednio poukładane elementy w paskach narzędziowych. Oraz oczywiście podręczny zestaw zakładek z ustawionymi słowami kluczowymi, pozwalający na otwieranie i wyszukiwanie stron przy użyciu kilkuliterowych skrótów. Wydawało mi się, że już niczego nie da się poprawić. Aż pewnego dnia uzmysłowiłem sobie jak często macham ręką pomiędzy myszką a klawiaturą. Każde wpisanie adresu, użycie skrótu klawiaturowego wymagającego palców obu rąk wymuszało ruch dłoni. Tak na prawdę ruch zupełnie niepotrzebny. Powiedziałem dość! Nadeszła pora na rozwiązanie naprawdę ekstremalne! VimperatorJak sama nazwa rozszerzenia wskazuje Vimperator sprawia, że Firefox zaczyna zachowywać się jak Vim. Jeśli Vima nie znasz (a dobrze jest poznać, choćby na tyle, by wiedzieć jak go wyłączyć) pewnie zastanawiasz się co to tak na prawdę znaczy i jak Vimperator zmienia sposób użytkowania przeglądarki. A zmienia praktycznie wszystko.
Przyznaję, że na początku można się poczuć odrobinkę zagubionym. Bez poświęcenia kilkunastu minut na przeczytanie dokumentacji się nie obejdzie. Potem trochę czasu na opanowanie podstawowych skrótów i komend oraz przygotowanie pliku konfiguracyjnego (tutaj opis mojej konfiguracji). Na pewno nie każdemu przypadnie to do gustu, co tu ukrywać, korzystanie z Vimperatora jest odrobinę hardcore'owe. Ale naprawdę warto spróbować. To zupełnie inne podejście, otwierające oczy na wiele nowych możliwości. Jedyne do czego mogę to przyrównać to moment, gdy dowiedziałem się, że grając w Quake'a zamiast używać kursorów lepiej jest użyć klawiszy AWSD i myszki.
poniedziałek, 22 marca 2010
Dziś przeglądając RSSy natrafiłem na ten obrazek porównujący 20GB w 1980 roku i 32GB w 2010. Uzmysłowiłem wtedy sobie, że przecież mój pierwszy pecet miał dysk twardy, wcale nie taki mały, o pojemności 1080MB (słownie: tysiąca osiemdziesięciu megabajtów), a terabajt to była jakaś zupełnie abstrakcyjnie wielka ilość danych. Tak wspominając sobie Stare Dobre Czasy (słownie: połowa lat dziewięćdziesiątych) przypomniałem sobie o rewolucji, która miała wtedy nadejść. Rewolucja 3D (słownie: trzy de)Na początek może mały rys (pre)historyczny. W połowie lat dziewięćdziesiątych minionego wieku w świecie komputerów działo się bardzo wiele ciekawych rzeczy. Nowe technologie powstawały jak grzyby po deszczu. Z roku na rok pecety stawały się coraz szybsze i coraz wydajniejsze. Najnowsze procesory Pentium potrafiły osiągnąć prędkość ponad 100MHz! A pierwsze karty graficzne z akceleracją 2D i 3D (3D Virge, ATI Rage, 3DFX VooDoo) to już było prawdziwe szaleństwo. Rynek kart graficznych napędzał rozwój gier, a rozwój gier napędzał zapotrzebowanie na karty 3D. Producenci gier prześcigali się w tworzeniu super realistycznej, jak na ówczesne czasy rzecz jasna, grafiki 3D. Każdy kolejny tytuł pokazywał, że da się wycisnąć z komputera jeszcze więcej. Praktycznie wszystko musiało być wtedy w trójwymiarze. Wirtualna Rzeczywistość
Tak! Wirtualna Rzeczywistość! Virtual Reality! Całkowicie trójwymiarowe, komputerowo generowane światy, to było coś na co wszyscy czekali. Pełen realizm i pełna wolność. Jak w Tronie czy Kosiarzu umysłów. Dla wszystkich wydawało się to wtedy całkowicie naturalnym kolejnym krokiem w rozwoju komputerów. Tak, wirtualna rzeczywistość zawładnęła wyobraźnią wielu ludzi. Wszystkim się wydawało, że staliśmy u progu prawdziwej (cyberpunkowej) rewolucji. Rok 1995 miał być przełomem. Wirtualna rzeczywistość stała się wtedy dostępna dla każdego użytkownika peceta. Wreszcie pojawiły się pierwsze urządzenia. Najprostsze urządzenie były jedynie stereoskopowymi wyświetlaczami. Te bardziej zaawansowane były naszpikowanymi elektroniką hełmami z nowoczesnymi wyświetlaczami LCD, stereofonicznymi słuchawkami, systemem śledzenia ruchu głowy i futurystycznymi kontrolerami. Z początku początku urządzenia te były piekielnie drogie, lecz miało się to szybko zmienić, gdy tylko rzeczywistość wirtualna się upowszechni. Jednymi z pierwszych urządzeń były Forte VFX1 oraz Virtual IO i-glasses. Pamiętam jak na jakiś targach komputerowych stałem w długiej kolejce do stoiska dystrybutora którejś z tych firm by choć przez chwilę zagrać w Magic Carpet z hełmem na głowie... A jeśli ktoś mi nie wierzy, że w roku 2000 wirtualna rzeczywistość miała trafić pod strzechy niech obejrzy poniżej znakomitą reklamówkę hełmu VFX1 z 1995 roku. Hełmu nad którym zachwycały się wszystkie branżowe pisma.
Może jeszcze kiedyś doczekamy się domowej wirtualnej rzeczywistości... Może kiedyś...
sobota, 20 marca 2010
Podczas przygotowywania wpisu o grze Dweller natrafiłem na poważny problem. Jak wykonać zrzuty ekranu gry na komórkę. Pierwszą myślą było wykorzystanie Sun Java Wireless Toolkit for CLDC, który o ile dobrze pamiętam zawierał emulator JME. Niestety okazało się, że dla systemów linuksowych dostępna jest jedynie wersja 32 bitowa. Musiałem więc poszukać czegoś innego. MicroEmulatorMicroEmulator jest napisany w Javie, więc powinien działać na każdym systemie operacyjnym z zainstalowaną maszyną wirtualną Javy. U mnie zadziałał zarówno z użyciem OpenJDK, jak i Sunowskim JRE. Kilka losowo wybranych MIDletów uruchomiło się bez żadnych problemów, również tych z obsługą ekranów dotykowych. To co najbardziej mi się podoba to prostota użycia MicroEmulatora. Po uruchomieniu możemy wybrać jedno z predefiniowanych urządzeń, różniących się wielkością ekranu (176x220, 240x320, lub urządzenie pozwalające określić wielkość ekranu). Jeśli komuś bardzo nie podoba się domyślna skórka, która nie jest zbyt piękna, może skorzystać z pakietu dodatkowych skórek (ewentualnie stworzyć własną). Po wybraniu urządzenia wystarczy już tylko wgrać plik JAR lub JAD i już możemy testować naszą aplikację Jeśli ktoś potrzebuje łatwej możliwości przygotowania zrzutów ekranu może zainteresować go opcja Capture to GIF. Dzięki niej utworzony zostanie animowany GIF pokazujący nasze działania. Można też włączyć 2, 3 i 4 krotne zbliżenie ekranu. Na stronie projektu można też znaleźć informacje o tym jak wykorzystać MicroEmulator do bardziej zaawansowanych celów. Można go na przykład użyć do uruchamiania MIDletów na stronie jako applety Javy (jak na stronie Opery Mini). Dostępne jest też wiele różnych opcji uruchomieniowych, ułatwiających testowanie aplikacji komórkowych.
środa, 17 marca 2010
Jak wiadomo blipować można na wiele sposobów. Z komunikatora, z telefonu, z wielu różnych aplikacji, z Asystenta, no i oczywiście ze strony www Blipa. Ja osobiście wolę korzystać z komunikatora ze względu na prostotę i minimalizm. Jeśli natomiast ktoś woli blipować przez stronę to warto zainteresować się tym oto "dopalaczem". BlipalaczBlipalacz (autorstwa ^kubofonista) to skrypt Greasemonkey dodający nowe funkcjonalności na stronie Blipa. Bardzo dużo nowych funkcjonalności. Dzięki nim praktycznie wszystko co potrzeba mamy pod ręką. Testowana przeze mnie wersja 2.11 oferuje następujące rzeczy:
Chyba niczego nie pominąłem. Każdą z tych funkcji można wyłączyć dostosowując działanie skryptu do naszych upodobań i potrzeb. Szkoda tylko, że Blipalacz nie chce działać jako rozszerzenie w Google Chrome. Dla osób, które blipują głównie przez stronę www i w dodatku korzystają z kilku kont (na przykład prywatne i firmowe) Blipalacz to na prawdę świetne rozwiązanie, ułatwiające życie na Blipie. W dodatku skrypt cały czas jest dynamicznie rozwijany i na pewno jeszcze kilka ciekawych funkcji się w nim pojawi. EDIT: Gdy poznaje nową bibliotekę, czy jak w przypadku Pythona moduł, pierwszą rzeczą jaką robię to zagłębienie się w dokumentację i przykładowe fragmenty kodu (jeśli oczywiście są dostępne). Następnie by rozwiać wszelkie wątpliwości i sprawdzić czy wszystko dobrze zrozumiałem biorę się za eksperymenty i testy. Zabawy z PythonemNiestety... Zazwyczaj takie testujące fragmenty kodu dość szybko ginęły w trakcie prac nad projektem. Gdy ponownie natrafiałem na dany problem nie miałem jak do nich wrócić. Niepotrzebnie traciłem czas na ponowne szukanie rozwiązań. Postanowiłem to zmienić! Od dzisiaj mam zamiar zbierać takie przykłady w jedno miejsce. A gdy zbierze się więcej przykładów dotyczących jakiegoś zagadnienia opiszę je na blogu. Może przy okazji inni też skorzystają. Kod przykładów znajduje się w repozytorium SVN projektu kosciak-misc. Najwygodniej będzie po prostu pobrać za pomocą: svn checkout http://kosciak-misc.googlecode.com/svn/python/examples kosciak-python-examples Jeśli ktoś nie zna Subversion to warto nadrobić zaległości, na przykład czytając mój poradnik Subversion. Curses - przykładyO module display.pySzybki przegląd możliwości wyświetlania: obramowania (nie pytajcie jaka jest różnica pomiędzy keys.pyPobiera znak i wyświetla jego numer oraz nazwę zdefiniowaną przez curses. By naciśnięcie characters.pyWyświetla wszystkie dostępne znaki. Bezpiecznie jest używać znaki ASCII z zakresu 32 do 126 - wszędzie powinny być wyświetlane w jednakowy sposób. Jeśli ktoś szuka znanego z DOSu tak zwanego extended ascii (zakres 127 - 256 zawierający na przykład znaczki ░▒▓║┴) to tak na prawdę szuka znaków ze strony kodowej CP437. Niestety nie jest ona dostępna w colors.pyWyświetlenie tabeli wszystkich dostępnych połączeń kolorów + atrybuty CursesHandler.pyPrzykład implementacji
poniedziałek, 15 marca 2010
Jeśli lubicie gry roguelike mam dla was prawdziwą gratkę. Oto znakomity sposób na spędzenie czasu siedząc w autobusie, poczekalni, czy na nudnym wykładzie. Wystarczy telefon komórkowy i już można przenieść się w świat magii i miecza! DwellerGra Dweller, mimo że dosyć prosta, oferuje wszystko to co prawdziwy roguelike powinien posiadać. Oto co mamy do dyspozycji
Dweller napisany jest w JME z obsługą MIDP2. Powinien więc działać na większości telefonów komórkowych z obsługą Javy, również na telefonach dotykowych (choć nie jest to tak wygodne). Jak na razie muszę stwierdzić, że gra dostarcza naprawdę sporo frajdy. Może i nie jest bardzo rozbudowana, ale w końcu nie o to tu chodzi. Gry na komórkę nie mają oferować wielogodzinnej rozgrywki, lecz dobrej zabawy na kilkanaście minut nudy. Jeśli ktoś chce "poważne" roguelike to zagra na komputerze.
wtorek, 09 marca 2010
Pisząc o curses, wbrew pozorom, nie mam na myśli rzucania przekleństw. Choć biorąc pod uwagę ile czasu zajęło mi znalezienie rozwiązania jak uruchomić skrypty Pythona wykorzystujące bibliotekę curses w systemie Windows taka interpretacja nie odbiega znacznie od rzeczywistości. Skoro ja miałem takie kłopoty to inni pewnie też na nie się natkną. Dlatego postanowiłem podzielić się rozwiązaniem. CursesW wielkim skrócie biblioteka curses (jak i nowsza ncurses) pozwala na tworzenie TUI (Text User Interface) - interfejsów tekstowych, będących czymś pomiędzy CLI (Command Line Interface) a GUI (Graphical User Interface). Co ważne używając jej nie musimy martwić się o to, z jakiego terminala będą korzystać użytkownicy programu. Do naszej dyspozycji mamy możliwość tworzenia wirtualnych okien, wyświetlanie znaków w 16 kolorach oraz obsługę klawiatury i myszy. Mogłoby się wydawać, że aplikacje tekstowe to już odległa przeszłość, nadal jednak są powszechnie wykorzystywane. Nie zawsze mamy dostęp do środowiska graficznego, nie zawsze chcemy też go używać. Gdy priorytetem jest niskie zużycie pamięci i szybkość działania programy konsolowe sprawdzają się znakomicie. Przykładami użycia biblioteki (n)curses są Midnight Commander (menadżer plików podobny do Norton Commandera), ELinks (przeglądarka www, o której już kiedyś pisałem), Mutt (klient poczty), czy EKG (klient Gadu-Gadu), by wymienić kilka z brzegu. Nie zapominajmy też o wszelkiej maści grach roguelike. Curses + PythonPython jest stosunkowo prosty, przyjemny i przenośny. Jeśli chcemy szybko napisać jakieś mniej lub bardziej proste narzędzie jest jak znalazł. W dodatku od razu mamy do dyspozycji moduł curses, zawierający interfejs do biblioteki (n)curses. Dodatkowo dostępny jest przystępny tutorial curses i kilka przykładowych programów. Wydawałoby się, że nic innego nie pozostaje tylko usiąść przy edytorze i pisać! O ile korzystamy z systemów unixowych problemów rzeczywiście nie ma. Gdy jednak chcemy uruchomić nasz program w Windowsie... cóż... Curses + Python + WindowsTu dochodzimy do sedna problemu. W domyślnej instalacji Pythona dla systemu Windows brak jest obsługi biblioteki curses. Zaglądamy do Google i... zdecydowana większość wyników to narzekanie na brak curses pod Windowsem. Pojawiająca się dość wysoko w wynikach biblioteka wcurses teoretycznie powinna rozwiązać problem. Niestety dostępne na stronie wcurses 0.2, zarówno w Pythonie 2.5 jak i 2.6.4, działać nie chcą. Jedynie co zobaczymy to komunikat o niemożności załadowania biblioteki DLL. Prawdopodobnie wystarczy skompilować wcurses ze źródeł, ale nie mam dość czasu/chęci/narzędzi/umiejętności. Pythonowego wrappera dla PDCurses też nie widać. Gdy już prawie zrezygnowałem, udało mi się znaleźć zbiór rozszerzeń dla Pythona przygotowany przez Christopha Gohlke (mój mirror bibliotek związanych z curses). Ściągnąć tam można implementację opartą o PDCurses, jak i działające z Pythonem 2.6.4 wcurses. Pierwsza wersja działa "normalnie", w oknie konsoli. Wcurses tworzą nowe okno i emulują działanie konsoli tekstowej. Już na tym prostym przykładzie można zauważyć kilka różnic w sposobie wyświetlania. Podejrzewam, że wcurses może sprawiać więcej problemów i nie wszystko jest tam poprawnie zaimplementowane. Ale najważniejsze, że są dostępne jakieś rozwiązania.
środa, 03 marca 2010
Podczas niedawnego ataku prokrastynacji miałem wielką ochotę trochę sobie pograć. Szukałem czegoś, co pozwoli miło spędzić kilkanaście minut i trochę się odprężyć. Na portalach z grami flashowymi nie było niczego ciekawego - same głupoty sprowadzające rozgrywkę do bezmyślnego klikania. Już miałem zrezygnować i zabrać się za porządkowanie folderu domowego, gdy nagle przypomniałem sobie o grach roguelike. Szybko zerknąłem do repozytorium oprogramowania i już po chwili mój krasnoludzki wojownik walczył z hordami potworów zamieszkującymi przerażające podziemia. Gry roguelikeJak sama nazwa wskazuje gry roguelike (zwane czasem rogalikami lub rogalami) nawiązują do prehistorycznej już (napisanej w 1980 roku) gry Rogue. Można wyróżnić następujące cechy rogalików:
Do najważniejszych reprezentantów gatunku należą: ADOM, Moria, Angband, NetHack, Crawl, ToME. W Ubuntu dostępnych jest całkiem sporo tytułów, zarówno klasycznych jak i tych nowszych. Ja poleciłbym następujące tytuły: Ancient Domains of MysteryAncient Domains of Mystery (w skrócie ADOM), to efekt wielu lat pracy Thomasa Biskupa. W dodatku efekt oszałamiający. To co wyróżnia ADOMa od innych rogalików to niesamowicie rozbudowana fabuła, której niejeden tytuł mógłby pozazdrościć. Tu liczy się nie tylko przemierzanie podziemi i zabijanie kolejnych potworów. Niezmiernie ważen są rozmowy z napotkanymi postaciami, wykonywanie różnorodnych zadań i poznawanie historii świata gry. Bez tego nie mamy żadnych szans na uratowanie Ancardii przed nadciągającymi siłami Chaosu. Niestety w repozytorium Ubuntu nie znajdziemy ADOMa. Na szczęście wystarczy pobrać paczkę ze strony autora, rozpakować i już można grać. Dungeon Crawl Stone SoupDungeon Crawl Stone Soup (wariant Linley's Dungeon Crawl) to w zasadzie czysta akcja bez potrzeby zaprzątania sobie głowy jakąś fabułą. Wybieramy rasę naszego bohatera, klasę, ewentualnie religię i od razu lądujemy w podziemiach. Do przemierzenia mamy 27 poziomów (plus specjalne strefy) pełnych niebezpiecznych stworów i skarbów. W przeciwieństwie do ADOMa, gdzie cała mapa mieści się w ekranie, w Dungeon Crawl mapy są naprawdę duże, jest więc co zwiedzać. W repozytorium Ubuntu dostępna jest wersja 0.3.4, na stronie projektu można ściągnąć wersję 0.5.2, jednak wymaga samodzielnej kompilacji.
piątek, 26 lutego 2010
Minęły już ponad 2 tygodnie od startu Google Buzz i emocje związane z premierą powoli już opadają. Pomimo pozytywnego nastawienia zaczynam zauważać coraz więcej poważnych problemów utrudniających korzystanie z Buzza. Mam wrażenie, że upublicznienie Buzza nastąpiło zdecydowanie za wcześnie. Co w Google Buzz nie działa tak jak powinnoCo poszło nie tak? Co Google zepsuło? Oto moja lista najbardziej denerwujących problemów:
Czy to wszystkie problemy? Niestety nie... Jest ich sporo więcej, lecz nie są tak uciążliwe. Buzz miał być rewolucją. Miał wciągnąć do mikroblogowania tych, którzy o mikroblogowaniu nie mają pojęcia. Miał być pierwszą społecznościową usługą Google, która odniesie sukces. Boję się, że Google popełniając tak dużo błędów zaprzepaściło swoją szansę. Teraz będzie musiało ponownie przekonać wszystkich tych, którzy do Buzza zdążyli się zrazić. |
Archiwum
Ostatnie wpisy
Zakładki:
» Blog
» Kontakt
» Moje miejsca i projekty
» Polecam na blogu
» Czytam i polecam
Tagi
|