Porzucam widgety na rzecz Powietrza

7 komentarzy

Pisząc deskBlip'a ciągle męczyłem sięz dziwnymi bug'ami jakie API widgetów mi oferuje - a to element wyświetlający html akceptuje tylko zewnętrzne pliki (nie da się bezpośrednio wrzucać danych do niego), dostęp do DOM tegoż obiektu jest tak pokręcony, że aż odechciewa się go używać, a poza tym wyświetlane czcionki wyglądają dziwacznie.

Może sam popełniłem błąd próbując pisać aplikację w środowisku gdzie nie pisze się aplikacji, a małe przydatne programiki? Ciężko ocenić, ale doszedłem do momentu, gdzie pozbędę się najbardziej irytujących bug'ów w deskBlip'ie (wyświetlanie updateów podwójnie i konsumpcja pamięci) i...

Odetchnę Powietrzem

Adobe AIR to bardzo fajna rzecz - na początku byłem sceptyczny, ale krótki przegląd po możliwościach API, parę przeczytanych artykułów i test paru programów napisanych w tym środowisku i... wciągnęło mnie :)

Ważną zaletą dla mnie jest to, że praktycznie nie muszę uczyć się niczego od zera (Mało ambitne? cóż - obecnie nie mam czasu na naukę nowego języka/technologii/czy czego tam) - podstawy Action Script znam, Javascript i CSS są mi nieobce, HTML oczywiście też + SQL - czyli wszystko to co używałem i używam nadal (poza tym deskBlip to taki sam mix tych samych technologii).

Przeniesienie (no dobra - napisanie od nowa, ale z użyciem jQuery) kodu deskBlip'a do AIR i stworzenie działającej aplikacji z podstawową funkcjonalnością zajęło mi nieporównywalnie mniej czasu niż w oryginale. Możliwości integracji ze środowiskiem użytkownika też są daleko większe (ikonka w tray'u, miganie w taskbarze/bounce w docku), responsywnośc i wydajność także. No i działa pod linuxem. Czego chcieć więcej?

Mała dygresja

Wg. mnie Adobe AIR jest tym, czym miał być Mozilla Prism - czyli przeniesieniem web'owych aplikacji na pulpit. Prism zapewnia tylko stworzeniem okna i umieszczeniem zawartości w kontenerze - jakikolwiek prosty sposób na modyfikację/poprawianie tego co jest wczytane z sieci jest skazany na porażkę - żadnej obsługi dodatkówy czy chociażby user scripts. Oczywiście AIR też nie robi tego sam z siebie, ale jest to daleko prostsze i daje o wiele większe możliwości. A walające się po Internecie API dla przeróżnych serwisów tylko nam to ułatwiają ;)

Potencjał w AIR jest wielki (wielu już to potwierdziło :)) - kto wie, może większość aplikacji na naszych pulpitach będzie kiedyś tylko gatewayami do usłgu, a stara dobra przeglądarka internetowa odejdzie w niepamięć?

Mała aplikacja do testowania REST'a

1 komentarz

REST Client to mała i pomocna aplikacja dla każdego kto pisze programy, które komunikują się z API serwisów internetowych np. blip czy box.net

rest client

Program jaki jest, każdy widzi - mozna dodać header'y, są opcje autoryzacji i podgląd odpowiedzi (jest formater dla JSON'a i XML). Robi to co trzeba i robi to dobrze.

Jogger snippet w E

2 komentarze

Nie jest to nic odkrywczego i niewiadomojakiego, ale może się przyda.

Napisałem pierwszy poważny ;) snippet do E (oraz Textmate), który robi nic innego jak po prostu wstawia takie coś:

(subject:) 
(category:) 
(level:0) 
(tag:) 
(comments:yes) 
(draft)

do plików html oraz dodaje nawigację klawiszem tab po kolenych elementach wpisu. Aby coś takiego zrobić sobie samemu wystarczy otworzyć Bundle Editor (CTRL+SHIFT+B w E) i stworzyć nowy snippet, uaktywniany dowolnym keywordem i klawiszem tab i działający dla plików typu text.html, a następnie wkleić ten kod do treści snippeta:

(subject:$1) 
(category:$2) 
(level:${3:0}) 
(tag:$4) 
(comments:${5:yes}) 
${6:(draft)}

Proste :)

Dzięki temu i świetnemu bundle dla HTML'a E /Textmate zmienia się całkiem niezły edytor wpisów dla Jogger'a. Wbijamy nagłówki posta, wpisujemy treść w html, copy-paste do okna rozmowy z bot'em i już. Nic więcej nam nie potrzeba.

Wbudowany podgląd html od razu pokazuje co i jak wygląda, więc nie ma potrzeby odpalania kilku aplikacji naraz.

PS Po odpowiednich modyfikacjach snippet działa w każdym edytorze, który wspiera tą technologię ;) (jeddit z superAbbrevs, Notepad++, Emacs i takie tam)

Emerge Desktop - wynurz się z okna

12 komentarzy

Temat zmieniania powłoki systemowej (aka) shell tudzież GUI) jest dość stary dla tych, którzy używają systemów z Unix'owymi korzeniami (tak - nawet Mac OS X, który jest prawie BSD i ma... no właśnie - własnego shell'a). Pingwiniarze mogą sobie zmieniać ubranka (i sposób w jaki używają systemu i jego aplikacji) praktycznie dowolnie - XFCE, Gnome, KDE czy stary dobry TTY1 z Bashem - każdy ma inną filozofię, workflow, wymagania systemowe oraz swoich zwolenników i przeciwników.

A co mają począć biedni Windowsiarze? Czy Windows XP i Luna (tudzież Vista z Aero) to jedyne na co ich stać? Nie. Po prostu - nie.

Temat zmiany shella w systemach operacyjnych firmy Microsoft ma także dość długą historię - bo czym nie był (jest?) antyczny Norton Commander czy Windows1/2? Nakładka na DOS, która zmieniała sposób interakcji... Tak - czyli shell'em :)

Win 3.11 też miał alternatywny shell (i to niejeden) i było to dość popularne rozwiązanie ze względu na 'obsysalnośc' domyślnego Program Managera.

Teraz?

W czasach gdy na moim starym PC królował Windows98 (yeah!) w jednym z numerów magazynu Enter opublikowano artykuł o totalnej customizacji Windowsa. Między innymi wymieniony został tam Litestep - wzorowany na shellu systemu NeXT, NextStep'ie.

Wersja, której wtedy używałem to była... 0.2.3? Jakoś tak - cała konfiguracja i dostosowywanie polegało na edycji plików .rc (czli .ini) oraz tworzenie własnych .bmp (kolor różowy byl uznawany za przezorczysty :)) by zmienić wygląd.

Trochę się jeszcze Litestep'em bawiłem, ale updatey są strasznie rzadko, moduły czasami ze sobą nie gadają itd. Norma.

To tyle jeśli chodzi o krótkie wprowadzenie w świat alternatywnych shell'i i mojego doświadczenia z nimi.

Wynurzenie!

Mamy 2008 Litestep rozwija się chyba gorzej niż kiedykolwiek, w międzyczasie powstały porty Open Box'a, ale przyznam szczerze nie chciało mi się w to bawić, ale ostatnio na blipie kolega ^leafnode wrzucił takie coś

leafnode: #windows #pokadesktop Emerge zapowiada się ciekawie :)
miniatura z blipa.

Zaciekawiony znalazłem stronę projektu Emerge Desktop. Szybka instalacja, żadnych problemów i konieczności edycji pliku system.ini. Muszę przyznać, że projekt zrobił na mnie na prawdę dobre wrażenie. Kilka ciekawostek:

  • rozwija go 1 (słownie: jeden) człowiek
  • jest szybki
  • naprawdę szybki
  • działa prawie bezproblemowo (o tym niżej)
  • jest praktycznie kompletnym shell'em (też o tym niżej)

Najnowsza wersja to 4.1.2 (wow - prześcignął już najnowsze KDE ;)) i na niej opiera się ten krótki wpis.

Co więc dostajemy w paczce?

  • emergeCore - odpalator reszty appletów oraz właściwy shell (przechwytuje wszystkie wywołania systemu do powłoki graficznej)
  • emergeDesktop - pulpit, ale 'dość' okrojny - brak ikon, jego jedyne możliwości to pokazywanie tapety, dockowanie innych appletów oraz umożliwia wywoływanie 2ch menu: prawo- i środkowo-klikowego, które służą jako zamiennik Menu Start i Taskbara (oczywiście oba są 100% konfigurowalne)
  • emergeTray - zamiennik tacki systemowej - całkiem nieźle konfigurowalny
  • emergeTasks - podobnie jak powyższy, ale odnosi się do paska zadań
  • emergeVWM - pod tą nazwą kryje się menedżer wirtualnych pulpitów, który różni się od innych tego typu programów tym, że działa, jest szybki i jest wbudowany w shell
  • emergeHotkeys - czyli menedżer (i host) globalnych skrótów klawiszowych - b. przydatna rzecz, gdyż domyślnie bez niego Emerge nie pozwala na używanie wielu domyślnych skrótów np. Win + R; dodatkowo - pozwala na podpinanie dowolnej aplikacji/wewnętrznej komendy (o nich za chwilę) do dowolnej (prawie ;) kombinacji klawiszy
  • emergeCommand - zegarek i linia komend w jednym; cudo
  • emergeLauncher - pasek ze skrótami, pod które można podpinać wszystko co można podpiąć pod klawisze używając emergeHotkeys

I tu właśnie objawia się modularność Emerge - jeśli ktoś chce może używać tylko emergeTasks i emergeTray, a resztę funkcjonalności zapewni np Launchy. Jeszcze inaczej - jeśli jesteś przyzwyczajony do explorer.exe możesz po prostu odpalić emergeVWM oraz emergeCommand i usprawnić sposób interakcji z systemem. Dużo możliwości i funkcji jednym słowem (w sumie to 3 słowa).

Mój pulpit wygląda mniej-więcej tak:
emerge desktop
Nie używam emergeLauncher gdyż używając the PATH hack mam wszystko dostępne z linii komend/cmd.exe/win+r/emergeCommand (aby uaktywnić emergeCommand bez klikania, podepnij pod jakiś skrót klawiaturowy komendę uruchomienia emergeCommand.exe - dzięki temu nie używam żadnego launchy, docka i domyślnego WindowsRun)

Oczywiście jak każda modyfikacja tego typu - wymaga trochę (dużo?) konfigurowania by wszystko działało tak jak chcemy, ale o to właśnie chodzi, prawda? A zyski są dość oczywiste - wygoda pracy, szybkość i zdziwienie ludzi, którzy bez zastanowienia stwierdzają, że używasz Linuxa.

Wady?

Ależ już, proszę, oczywiście :)

Po pierwsze - jeśli nie używasz funkcji hibernacji w swom systemie, to lepiej zacznij - z niewiadomych powodów Emerge nigdy nie odpala się poprawnie po restarcie i trzeba wszystko ręcznie killować za pomocą Task Manager'a/Process Explorer i od nowa odpalać emergeCore.exe (emerge zapisuje wszystkie ustawienia na bieżąco, więc nie ma obawy że coś wyparuje).

Czasami nawet po hibernacji niektóre applet'y nie działają poprawnie (głównie Hotkeys i Desktop) - wtedy wystarczy użyć opcji "Edit Launch Applets" i je zrestartować. Problemy znikają.

Jest oczywiście kilka innych problemów (niewyświetlające się powiadomienia z tray'a i popup'y niektórych aplikacji), ale to wszystko to część zabawy (ta) i nie wszystkim to będzie przeszkadzać - nie używam żadnej aplikacji ze sprawiających problemy a w gry gram tylko na Gameboy'u

Warto śledzić ten projekt i mieć nadzieję, że bedzie dalej się rozwijał, gdyż to co jest oferowane teraz przerasta jakością inne programy tego typu.

deskBlip 1.11 public beta

7 komentarzy

...codename Pąsowy Pancernik.

A więc jednak - kolejna, tym razem 1.11 public beta wersja deskBlip'a

deskblip 1.11b

Co nowego?

  • Można wysyłać obrazki - jednakże, czasami wysyłanie zawodzi (stąd wciąż jest to wersja beta), więc póki co wysyłając zdjęcia nie używajcie polskich znaków w update'ach wraz ze zdjęciami
  • Odchudziłem interfejs - wywalając ikonki i zmieniając je na tekstowe linki - są o wiele czytelniejsze i od razu widać ich sens
  • Avatary - parę osób się o to pytało - więc są :)

update

  • Podgląd cytowanych blipnięć - wystarczy kliknąć w linki typu [Blip] by otworzyć podgląd, klikając dalej w czas utworzenia update'u przechodzimy na jego stronę na blip'ie. Ta funkcjonalność jest jeszcze w fazie alpha ;)

Sam engine jeszcze nie przeszedł poważniejszych zmian, trochę go optymalizuję, ale radykalne zmiany przyjdą w następnym wydaniu - wydajność powinna wzrosnąć :)

Mały trick na zakończenie - jeśli chcesz wrzucić zdjęcie z sieci na blip'a - skopiuj jego url, następnie wklej link w polu wyboru pliku. Włala

Wszelaki feedback - w komentarzach pliiiz

deskblip 1.09b public beta codename Naughty Ninja

2 komentarze

Upubliczniłem kolejną wersję deskblipa - 1.09b do pobrania na lipnej stronie oficjalnej. W silniku się trochę zmieniło, zmieniłem ikonki (znalezione na Smashing Magazine), usprawniłem interfejs i 'tweakowalność' widgeta (można wyłączyć dźwięk :)).

Można przeglądać zdjęcia oraz wideo z YouTube - do zrobienia jest Vimeo oraz podgląd blipnięć zawartych w linkach.

Mały screencast (zrobiony dzięki Jing)

deskblip 1.0b show off

Bugi?

Okna podglądu obrazków/wideo czasami znikają :) - aby się ich pozbyć 'wystarczy' otworzyć je ponownie i zamknąć :)

Pozostało parę małych rzeczy do zrobienia i będzie fajna wersja finalna.

Nowa beta deskBlip'a

5 komentarzy

Na tej samej stronie co poprzednio wrzuciłem nową betę deskBlip'a.

Co się zmieniło?

Interfejs
db 1.02beta
Przede wszystkim poprawiłem (mam nadzieję :) interfejs, dodałem opcji zmiany kolorów. Wyświetlanie zdjęć ze statusów też działa tak jak trzeba (choć bug'i znowu atakują).

Co dalej?

Takie małe TODO:

  • wysyłanie zdjęć (wysoki priorytet :))
  • zmiana położenia minimalizatora (będzie można go ustawić w dowolnym rogu)
  • jak najwięcej opcji do zmiany ustawień (własne dźwięki, skróty klawiszowe itp)

Co może będzie:

  • oglądanie video (YouTube)
  • zmiana rozmiaru okna (wbrew pozorom nie jest to takie trywialne element <web> dziwacznie się zachowuje gdy zmienia się rozmiar)
  • może ktoś coś dorzuci w komentarzach?

Zachęcam do testowania :)

Blip na twoim biurku, czyli deskBlip beta

10 komentarzy

Na stronie coffeesounds.com/deskblip/ możecie pobrać β wersję widgeta do obsługi Blip'a dla Yahoo! Widgets (znanego także jako Konfabulator). Ponieważ Konfabulator działa pod Windows i Mac OS X - można powiedzieć, że jest całkiem cross-platform ;).

Deskblip?

Tak to wygląda:
deskblip beta(tak to wygląda)

Dlaczego β?

Widget ma problem z działaniem pod Windows Vista - jeśli ktoś by chciał przetestować i dać feedback w komentarzach byłbym bardzo wdzięczny :) Wysyłanie zdjęć na razie nie działa (podglądać już można). Ponieważ mam jeszcze w planach parę usprawnień co do interfejsu i samego silnika, nie mogę tej wersji nazwać finalną.

Dojdą opcje dostosowania interfejsu oraz zachowania samego widget'a (oraz bug fix'y i poprawa wydajności).

Co można?

Praktycznie wszystko co w innych aplikacjach ;) Przeglądać swój kokpit, wysyłać nowe statusy, wysyłać wiadomości do innych użytkowników (zwykłe i prywatne) - czyli ogólnie blipować na całego ;)

Starałem się uczynić interfejs jak najbardziej użytecznym, więc dodałem dwa skróty klawiszowe:

  • control/command + shift + F4 - przesuwa okno pod/nad inne okna
  • control/command + shift + F5 - zwija/rozwija okno do małego logo blip'a

Oczywiście widget pracuje tak jak każdy inny przedstawiciel jego rodzaju ;) i można go z powodzeniem używać w Konspose. Dźwiękowe powiadomienia o nowych wiadomościach sprawią, że nie trzeba patrzeć na widget co 15 sec.

Co jest nieteges? (czyli known issues)

Niestety Y!Widgets nie jest wolne od wad - problemy z XMLHttpRequest oraz elementem <web /> (używa Webkit engine) także odzwierciedlają się w deskBlip'ie -i niestety nie ma dla nich skutecznych workaround'ów. Jak na razie udało mi się uzyskać 98% bezawaryjność - czasami widget pobiera 2 razy te same update'y oraz (bardzo rzadko) element wyświetlający kokpit staje się biały i... nic :) Restart pomaga zawsze :)

Oczywiście samo działanie deskBlip'a jest w dużym zakresie zależne od Blip API (wczoraj z rana HTTP Error 503 było widać całkiem często.)

Kiedy wersja finalna?

"Jak będzie to będzie" ;) A na pewno po 9/09. Na pewno nie opuszczę tego projektu (zwłaszcza, że chcę go użyć jako podstawę do wersji obsługującej Twitter'a :)

Tak więc - zapraszam do testowania.

SVN, MKCOL i błąd 405

Dodaj komentarz

Jeśli używasz Subversion, Windows XP i świetnego klienta svn - Tortoise SVN i dostajesz błąd w stylu:

svn: Commit failed
svn: MKCOL /jakas/sciezka/: 405 Method Not Allowed (host)

i nie możesz commitnąć zmian w źródle swojego rewolucyjnego programu, zrób tak:

  • skopiuj gdzieś swoje źródła
  • stwórz pusty katalog
  • zrób do niego check out
  • wrzuć z powrotem poprawione pliki nadpisując te z check out'u
  • zrób commit

Włala, działa. Nie do końca znalazłem powód takiego zachowania - np. tutaj autor też nie wiedział ocb. W każdym bądź razie - sposób działa i nie jest jakiś utrudniający życia - i co ważniejsze - nie psuje struktury repozytorium.

Imified - jabberowy bot do wszystkiego

4 komentarze

No prawie wszystkiego :)

Getting Time Wasted on tons of apps doing the same stuff

imified.com szumnie ogłasza się hasłem Instant Productivity i muszę powiedzieć, że faktycznie - dla mnie to królują w całkiem licznym zestawie usług/aplikacji GTD, który de facto jest już nieźle przeładowany.

Lifehacker codziennie pisze przynajmniej o 400 nowych programach do GTD i każdy o dziwo jest zajefajny. Poza tym mamy naprawdę duży wybór.

Czym jest Imified?

Najprościej mówiąc - listą ToDo i terminarzem obsługiwanym przez IM (Jabber/GTalk, MSN, AIM, itd). Niby nic ciekawego - obsługa trochę jak w starych przeglądarkach internetowych na komórki - opcja 1 dodaj todo, opcja 2 przejrzyj todo itd. Przydatne, proste, używam, works for me. Jeśli męczy Ciebie wybieranie ciągle tych samych opcji - mam dobrą wiadomość - można tworzyć aliasy.

To wszystko?

Gdyby jednak ograniczyć się do tego Imified nie byłoby niczym specjalnym. No może trochę, ale do bycia fajnym trochę by brakowało. Na szczęście - owa fajność jest zaimplementowana. Imified pozwala na zarządzanie także innymi usługami, które normalnie nie są dostępne poprzez IM (no chyba, że ktoś ma shell'a, może na nim zainstalować EKG, napisze sobie skrypty itd itp). Z aktualnie obsługiwanych możemy wybrać m.in.

Szczególnie te 3 ostatnie pokazują siłę Imified - praktycznie każda usługa blogowa może być zarządzana z poziomu twojego komunikatora - niezależnie gdzie go używasz, czyli możesz pisać notkę na tumblr'a prosto z GMaila, napisać krótki post na własny hostowany blog przez komunikator na komórkę itd itp. Tu właśnie tkwi siła Imified totalna przenośność - możesz wejść gdziekolwiek na Gmail i do ya thang - nie musisz zostawiać ciastek, logować się na 20 stron itp.

Jeśli "wbudowane" zarządzanie zadaniami nie pasuje - można zlinkować bota z toodledo - tak, kolejny serwis to-do/GTD, ale naprawdę na poziomie, z bogactwem możlwości (m.in. integracja z GCalendar, Twitter i dodatkiem do Firefox'a). Osobiście i tak preferuję Pamiętaj O Mleku :)

Jak brakuje Tobie jakiejś aplikacji - pewnie niedługo będzie obsługiwana - zgodnie z tegorocznym trendem dostępne jest API dla chcących stworzyć własnego bot'a dla swojej usługi - ciekawa opcja, zwłaszcza dla tych wszystkich, nikomu niepotrzebnych sieci społecznych ;). Transfer plików nie jest jeszcze obsługiwany, ale dostępna jest wersja beta API, więc możliwe że i tego się doczekamy.

Warto?

Niemniej jednak w obecnej formie Imified jest świetną usługą wartą polecenia. Oczywiście - jest to kwestia gustu czy taki sposób zarządzania wszystkimi usługami będzie pasował, ale wszyscy Joggerowcy na 100% korzystają już z jednej usługi przez komunikator - więc wiedzą jak to jest :)


Kto?

log.coffeesounds.com na flakerze