Reklama, reklama….

2006-10-30, reklama

Na życzenie kolegi, oto wpis reklamowy: Jaki telewizor LCD?


A teraz coś zupełnie z innej beczki. Nowy trend obchodzenia halloween. Ciekawe kiedy do kraju trafi. Wręcz niepojęte.

Pedały - część pierwsza

2006-10-26, hack



Miałem napisać coś o konflikcie darwinizm vs kreacjonizm, ale opisze swój kolejny projekt :-)

Jakiś czas temu zapragnąłem zaprząc nogi do komunikacji z komputerem. Czyli poprostu zrobić/kupić pedały. W zamyśle mają służyć do przełączania między pulpitami. W moim przypadku odpowiada to przełączaniu między aplikacjami, gdyż praktycznie wszystkie okna mam cały zmaksymalizowane. W sumie mam 4-7 otwartych aplikacji: terminal, eclipse, emacs, firefox, thunderbird. Każdemu pulpitowi przyporządkował bym jeden pedał.

Myśląc o takim sprzęcie rozważałem użycie następujących wejść:

  • równoległe - proste w oprogramowaniu i realizacji sprzętowej, ale niestety coraz mniej popularne i mało odporne na awarię (zwarcie), kabel byłby “gruby”
  • szeregowe (RS232), proste w oprogramowaniu, realizacja sprzętowa wymagała by jakiegoś programowalnego kontrolera, odporne na eksperymenty
  • USB, nie wiadomo jak to oprogramować, realizacja sprzętowa nieznana, za to odporne, kabel cienki, daje linię zasilającą i jest nowoczesny

Zdecydowałem się na USB, ponieważ postanowiłem użyć kupić taniego pada, rozebrać go i podłączyć przyciski do pedałów. Pada nabyłem za 20PLN z przesyłka od handlarza na allegro. Kupiłem w ciemno, nie wiedząc jaki jest status wsparcia tego typu urządzeń w Linuxie. Ku mojemu zadowoleniu, urządzenie zostało automagicznie wykryte. Pojawił się reprezentujący je plik /dev/input/js0. Po uruchomieniu programu jstest stwierdziłem, że wszystko jest OK. Pad ma 8 przycisków, 2 joysticki analogowe i jeden joystick cyfrowy. Zatem w sumie można sterować 4 liniami analowymi i 12 liniami cyfowymi.

W projekcie zamierzam wykorzystać tylko przyciski. Potencjometry może w przyszłości do czegoś innego, jakaś czujka obecności przed komputerem, albo pokrętkło do głośności.

Pozostał mi do rozwiązania problem w jaki sposób transformować zdarzenia generowane przy pomocy pada na naciśniecie klawiszy. Jest na to kilka metod:

  • dedykowany sterownik w jądrze (hack value!)
  • skonfigurowanie joysticka jako urządzenia wejściowego dla serwera X , i definicji klawiatury XKB (hack value!)
  • program czytający z urządzenia /dev/input/js0 i generujący zdarzenie serwera X

Pogooglałem troche i nie znalazłem tego czego chciałem. Znalazłem 2 projekty które w części realizowały zamierzony cel: joy2key i xkeymouse. Postmodernistyczną metodą wycinania i lepienia uzyskałem nową wartość. Program który realizował to czego chcę. Czyta zdarzenia z pada i generuje zdarzenia Xowe. Oto on joybuttons2xkb.c oraz skrypt go uruchamiający pedual.sh. Po uruchomieniu sktyptu przyciski pada generują zdarzenie odpowiadające klawiszom F13-F20 klawiatury.

Kolejny odcinek będzie bardziej medialny, będą zdjecia z dekompozycji pada. Szur, brzdęk, trzask. Ale najpierw muszę wyzdrowieć by móc pojechać do jakiegoś supermarketu technicznego.

.emacs

2006-10-19, hack

Oto plik .emacs którego to używam w domu:

W tym roku mija 10lat od pierwszego kontaktu z tym edytorem. Hmm…….

Lisp nie dla wszystkich

2006-10-15, hack, refleksje




$200 za używaną książkę!

Grzyb

, ogólna





Widziany tydzień temu, w mazowieckim lesie.

rails jednak nie agile

2006-10-13, hack, web

Otworzyłem przykład z książki. Aplikacja do edycji produktów. I jade krok po kroku. No i nie działa. Utknąłem na generacji kodu modelu danych. Jedyną różnica była użyta przeze mnie baza danych. Użyłem PostgreSQ zamiast MySQL.

laptok$ ruby script/generate  scaffold -t -f Product Admin
      exists  app/controllers/
      exists  app/helpers/
      exists  app/views/admin
      exists  test/functional/
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
   identical    app/models/product.rb
   identical    test/unit/product_test.rb
   identical    test/fixtures/products.yml
       error  Before updating scaffolding from new DB schema, try creating a table for your model (Product)

Pogooglałem i zasugerowałem się jakimś wpisem na forum, że byc może to kwestia starych bibliotek. Aktualizacja czasem pomaga. Niestety w Debianie nie ma gem, taki taki instalator pakietów z rubym. Zatem instaluje ze źródeł RubyGems

ruby setup.rb
gem install rubygems-update
gem install rails --include-dependencies

Potem przyszła pora na przelotkę do biblioteki Postgresa

apt-get  install libpq-dev postgresql-dev ruby1.8-dev
gem install postgres --  --with-pgsql-include-dir=/usr/include/postgresql/

No i nadal nie działa.

W akcie desperacji spojrzałem do logów bazy. A tam jak wół napisane, iż railsy poszukują tabelki products (sic!). Nie wiem co to za konwencja nazywania tabelek w bazie w liczbie mnogiej. Sie pierwszy raz z nią spotkałem. Przekartkowałem książke i dalej jest ta konwencja zachowana. Cóż trzeba będzie się przyzwyczaić, albo poszukać wajchy by to wyłączyć.

Zobaczymy co będzie dalej.

Aktualizacja

Jednak jest wajha W pliku config/environment.rb trzeba dodać:

ActiveRecord::Base.pluralize_table_names = false;

I już można oprogramowywać zastane bazy. Ruby jednak jest “agile” :-)

Krajowy Dzień Demonstracji

2006-10-07, wydarzenia

Tu moich zdjęć kilka.

A tu zdjęcia na Arbiter.pl

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