nablaone.net: blog | zdjęcia | nasi-fachowcy.net

Mój pierwszy klient blipa

2007-06-25, common-lisp, hack, web

Czekając na wieści od weta, się ważyło czy zwierz będzie 3 czy 4 kopytny, postanowiłem utworzyć prostego klienta blipa. Takiego aby można było dodawać opis. Pierwsze podejście leniwe bash+openssl+nc nie powiodło się z nieznanego mi powodu?? Nie da sie blipa oglądać telnetem/netcatem. Jak tak można ;-). Chyba jakieś zabezpieczenie mają, albo lewą konfigurację. Nie wiem.

Drugie podejście miej leniwe: lisp + drakma. Przeżyłem ręczne pobieranie zależności. Już wiem, o co dodam w następnym kroku do clget’a :-). To podejście się udało. Kod znajduje się tu: blip.lisp.

Teraz mogę dodawać statusy maszynowo, tylko nie wiem o jakiej treści i po co :-). Może ma ktoś pomysł.

A zwierz, pozostanie 4-kopytny :-).

Web2.0 nowe opium dla mas

2007-06-24, refleksje, web



Kolega przesłał mi namiar na artykuł Web 2.0 to LSD naszych czasów. Coś w tym jest. Zmieniają się pojęcia znajomości, prywatności, etc. Siakaś chyba e-rewolucja następuje. Się nie znam. Jam tylko rzemieślink2.0.

Cóż trzeba będzie odświeżyć TechGnozę. Może po kilku latach uda mi się zrozumieć trochę więcej. Bo książka gęsta od pojęć.

blip.pl

2007-06-20, web

Ziomki z bootstrapa zrobili aplikację łebdwazerową: blip.pl. W ogóle nie czaje o co w niej chodzi, chyba jestem poza targietem. Wentylator w laptopie chyba ją lubi i się zaczyna szybciej kręcić jak blip się objawia w firefoxie :-). Musi coś w niej być, bo blogasek znajomego guru e-markietingu i łebdwazeryzmu Sulera wrócił z niebytu i objawił się wpisem o tytule: Blip jest fajny. Chyba artykuł sponsorowany ;-).

Dziś chłopaki opublikowali odezwę Dewelopers, developers… :-). Zaciekawiony zaglądam do API, a tam nie ma XMLi, SOAPów, XML-RPCów, WSDLI, UDDI, WS-*, SOA (celowo nie linkuje skrótów) i innej propagandy nowego lepszego świata IT, stworzonej w chorych umysłach architektów astronautów. Tylko proste wywołania HTTP z parametrami w URLi, które to zwracają obiekty JSON. Miodzio. Aż się chce coś zakodować :-)

Ładne URLe w Wordpressie, Gallery pod Lighttpd

2007-06-19, hack

Od jakiegoś czasu jestem użytkownikiem (i ewangelistą) serwera lighttpd. Tak wiem, że Apache jest super. Ale to super ma swój koszt w postaci zalegania w pamięci. Lighty, to tylko jeden proces który umie sprytnie multipleksować zapytania. Nie wiem dokładnie jak to robi, ale się nie mnożą się procesy przy obsłudze zapytań.

Wracając do tematu.Wordpress i Gallery mają taką przyjemną funkcję, obsługują ładne URLe (bez .php i rzędu parametrów po ‘?’). W panelu admina można sobie kliknąć i wygeneruje się stosowna zawartość pliku .htaccess z listą reguł dla modułu Apache’a mod_rewrite. Wszystko działa z palca :-). Lighty jest mniej popularny i trzeba te reguły utworzyć samodzielnie. Oto one. Rezultat googlania i własnego hackowania:

  • dla Wordpressa
     "^/blog/?$" => "/blog/index.php",
      "^/blog/(wp-.+)$" => "$0",
      "^/blog/xmlrpc.php" => "$0",
      "^/blog/sitemap.xml" => "$0",
      "^/blog/(.+)/?$" => "/blog/index.php/$1",
    
  • dla Gallery
     "^/galeria/v/(\?.+|\ .)?$" => "/galeria/main.php?g2_view=core.ShowItem",
     "^/galeria/admin[/?]*(.*)$" => "/galeria/main.php?g2_view=core.SiteAdmin&$1",
     "^/galeria/d/([0-9]+)-([0-9]+)/([^\/]+)(\?|\ )?(.*)$" =>"/galeria/main.php?g2_view=core.DownloadItem&g2_itemId=$1&g2_serialNumber=$2&$3",
     "^/galeria/v/([^?]+)/slideshow.html" =>"/galeria/main.php?g2_view=slideshow.Slideshow&g2_path=$1",
     "^/galeria/v/([^?]+)(\?|\ )?(.*)$" =>"/galeria/main.php?g2_view=core.ShowItem&g2_path=$1&$3",
     "^/galeria/c/add/([0-9]+).html" => "/galeria/main.php?g2_view=comment.AddComment&g2_itemId=$1",
     "^/galeria/c/view/([0-9]+).html" => "/galeria/main.php?g2_view=comment.ShowAllComments&g2_itemId=$1",
     "^/galeria/p/(.+)" => "/galeria/main.php?g2_controller=permalinks.Redirect&g2_filename=$1",
    

BTW. Dziś stwierdziłem, że warto dzielić się wynikami pracy w internecie. Po primo: może się komuś przydać, secundo nie ma lepszego backupu jak internet i google . Linus ma rację :-)

Przechadzka tunelem średnicowym

2007-06-17, wydarzenia



Kilka zdjęć z tego wydarzenia. Szczegóły imprezy na stronie remonttunelu.pl. Polecam też wpis w wikipedii Tunel Średnicowy w Warszawie.

Pożytki ze zrzucenia własnego rdzenia

2007-06-16, common-lisp, hack

Uwaga, wpis bardzo ezoteryczny. Proszę się nie popadać w samodeprecjacje :-)

Jakiś czas temu, jak przymierzałem się do zakupu VPS z ograniczoną jak na współczesne warunki pamięcią operacyjna 128MB, testowałem zajętość pamięci różnych rzeczy. Tak aby zobaczyć, ile kosztuje MB przyjemności :-). Pamiętam, że SBCL + zajmował jakieś 20MB RSS/ 90MB VSZ. Wartość ta była akceptowalna.

Wczoraj skopiowałem tajny projekt dino na mojego VPSa. Uruchamiam i patrze a tu 50MB zjedzone. Co jest? Czyżbym się znów pomylił, jak to było z kursem dolara kanadyjskiego? Otóż nie. Do testów użyłem dino, co operowało na zrzuconym rdzeniu (ang: core dump). A wczoraj ładował biblioteki przy starcie do standardowego rdzenia. Zatem mogę polecić uruchamianie common-lispa z własnego rdzenia. Dwie zalety:

  1. obiekty które są ładowane z rdzenia, są w przestrzeni read-only, po której to garbaty (ang. garbage collector) nie biega, przez co oszczędza sobie pracy
  2. strony rdzenia ładowane są tylko w przypadku gdy są używane, zatem nieużywane fragmenty bibliotek nie zalegają w stercie (ang heap) ani w przestrzeni wymiany (ang. swap)

A teraz krótka instrukcja jak zrzucić rdzeń i potem go użyć.

  1. Tworzymy plik dump-core.lisp z listą ulubionych bibliotek
    (require :asdf)
    (require :sb-posix)
    
    (asdf:oos 'asdf:load-op :swank)
    (asdf:oos 'asdf:load-op :clark) ;; to też tajny projekt ;-)
    (asdf:oos 'asdf:load-op :hunchentoot)
    
    (sb-ext:save-lisp-and-die "my-core.core")
     
  2. Zrzucamy rdzeń:
    sbcl --disable-debugger --noprint --no-userinit --load dump-core.lisp
    
  3. Tworzymy plik startowy start.lisp:
    (clark::start-server)
    (swank:create-server :port 4005 :dont-close t :external-format :utf-8-unix)
    (hunchentoot:start-server :port 4242)
    
  4. Teraz uruchamiany nasz rdzeń z włączonym Hunchentootem i Slimem gotowym do hackowania kolejnego killer-app’a:
    sbcl --core my-core.core --disable-debugger --noprint --no-userinit --load start.lisp
    
  5. Przeglądarkę kierujemy na adres localhost:4242 a w Emacsie
    uruchamiamy M-x slime-connect.
  6. Hack, hack, hack
  7. Zysk :-)

Wyżej wymieniona instrukcja stanie się niepotrzebna, gdy w końcu zrobię wydanie dino. Na razie jeden z komponentów jest już wersji alfa clget :-).

Kwestia identyfikacji

2007-06-15, ogólna

Ludzie z branży IT wiedzą, że identyfikatory powinny być unikalne. Dobrze jest nawet jak tabele w bazie mają inne przedziały wartości identyfikatorów. O problemie braku unikalności w systemie rejestracji pojazdów CEPIK, przekonał się kolega Adam. Co opisuje na swoim blogasku krupnik.pl.

Przeprowadzka zakończona

, techniczna

Jeśli widzisz ten wpis, znaczy się, że blogek serwerowany jest z vps’a

VPS w tech.coop

2007-06-11, hack

Się pochwale. Zostałem członkiem spółdzielni tech.coop i tam zanabyłem VPS’a. Także, za jakiś czas ten blogasek zostanie przeniesiony na maszynę omega. Mam nadzieję, że działał szybciej. Pingi są na rozsądnym poziome 50ms w porównaniu do ~200ms w kierunku dreamhosta. Poza tym mam możliwość konfiguracji systemu jak sobie tego będę tego chciał. Ma to swoje dobre i złe strony. Mam zamiar napisać i postawić jakąś aplikację w Common Lispie. Może tajnymail.com przepiszę, tak na początek. Jako, że VPS swoje kosztuje (jakieś $30/miesiąc), będzie to niezły bacik, aby w końcu zacząć pisać kod zamiast czytać blogaski o programowaniu i GTD.

Które Wiki zainstalować?

2007-06-07, hack

Taki oto problem mam. Wizytacja na stronie WikiMatrix, tylko zwiększyła zamieszanie.

Wiki jest potrzebne do zrobienia następującej funkcjonalności. Od jakiegoś czasu próbuję zrobić dobrze różnym użytkownikom plotkuj.net i stworzyć idealny wygląd pasujący każdemu. Nie wychodzi mi. Nie mam warsztatu webmastera. I nie chce mi się tego robić. Wpadłem na pomysł, aby użytkownicy sami mogi sobie edytować CSS, najlepiej na żywym organiźmie. I do tego zamierzam zastosować wiki. Będzie zawierać strony z CSSami

Przejrzałem i zainstalowałem różne implementacje. Idealna była by lekka (najlepiej w PHP), nie używajaca bazy danych i mająca mało funkcjonalności, a na dodatek umożliwiająca generację ładnych URLi. Oto lista ofiar testu i oceny bardzo subiektywne:

  • MediaWiki - tłuste niemiłosiernie, konfiguracja to koszmar, za to interfejs jest popularny i ludzie są obyci z nim
  • PmWiki - jakieś dziwne posiada konwencje, za skomplikowane
  • PhpWiki - nie udało się zainstalować na dreamhoscie, a się dobrze zapowiadało
  • instiki - ładne, proste, działające, ale niestety w RubyOnRails. Sexy, lecz bardzo wymagające
  • usemod - minimalne, kultowe (patrz c2.com), działające

I chyba zostanę przy tym ostatnim. Udało mi się skonfigurować tak aby były ładne URLe. Łata oraz przykłady konfiguracji Lighttpd i Apache są tu.

Emulator Vi pod Emacsem

2007-06-05, hack, humor
(defun vi-mode ()
    (interactive)
    (use-global-map (make-keymap)))

Znalezione tu.

Genialne :-)

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2010 nablaone.net | powered by WordPress with Barecity