II

04

lampka LED
ostatnio wpadłem na pomysł że można praktycznie wykorzystać różnego rodzaju super jasne LEDy, oprócz planów które jeszcze są to zrealizowałem jeden który się jakoś tak samoistnie narodził, a mianowicie, w lampce biurkowej zamiast zwykłej żarówki (która jest jeszcze wynalazkiem T. Edisona) zagościł panel LEDów :)
oczywiście wszystko własnej roboty... ;)

no to tak, po wycięciu kawałka plastiku o odpowiednim kształcie i zrobieniu specjalnego grota do lutownicy (z braku pod ręką na stancji wiertarki), jak również po skompletowaniu innych ciekawych rzeczy (2 kondensatory, mostek prostowniczy - aby LEDy nie migotały bo mnie to wkurza, oraz oporniki 470Ω aby ograniczyć prąd)


przystąpiłem do roboty...
po chwili miałem już obsadzonych kilka LEDów...


a po kolejnych kilku minutach zmontowana była już całość (na wspomnianym wcześniej kawałku plastiku)


całość ładnie mieści się i wygląda w miejscu na nią przeznaczonym (a więc w miejscu gdzie wcześniej była żarówka)


i na prawdę to nieźle daje, a więc jako lampka biurkowa jest w 100% ok :)


tak to wygląda na zdjęciu w ciemności i bez lampy błyskowej (Kodac CX4200)


może to niewiele, ale zawsze to i oszczędność prądu, przecież takie LEDy pobierają znikome ilości energii, nie to co żarówka ;)

I

04

Psi - message
jako że od pewnego czasu w PSI takie zdarzenia jak wiadomość, rozmowa, przesyłanie pliku pokazywane jest piękną(?) ale nieczytelną animacją w postacii zmieniającej się gwiazdki na "coś" to postanowiłem sobie to zrobić bardziej czytelne, o ile rakieta ładnie pokazuje nową rozmowę, tak czerwona gwiazdka pięcioramienna :P nie koniecznie mi się już tak pięknie prezentowała...
a więc siadłem i wyprodukowałem coś takiego:
a wersja "źródłowa" wygląda tak
i jest tak jak na moje oko o wiele czytelniej :)
jeszcze bym sobie rakietę jakoś pokolorował żeby była bardziej gradientowo pomalowana...
ale to już dłuższa zabawa niż pokręcenie gwiazdką ;)

IX

09

Firefox + akregator
jako że ostatnio postanowiłem pokorzystać z Firefoxa a że ten ma ubogi i badziewiasty czytnik RSS w sobie to należało pomyśleć nad czymś co jednak będzie pilnować nowych wiadomości a nie tylko pozwalać pooglądać tytuły artykułów przekazywanych w RSSach czy Atomach

i tak koniec z końcem oceniłem że akregator sobie może spokojnie siedzieć i pilnować nowości :)
w sumie to nie problem... problemem okazało się nauczenie firefoxa aby po kliknięciu na adnośnik prowadzący do kanału RSS przekazywał ten URL do akregatora, a zarazem żeby "wywoływał" go w taki sposób:
/usr/bin/akregator --addfeed URL

i teraz... klikana konfiguracja Firefoxa nic mnie nie pocieszała swoją możliwością, więc do roboty i do pomocy zaprzągłem "świętą googlownicę" i jak się okazało pytanie podobne jak ja sobie zadałem zadaje sobie jeszcze pewna ilość i użytkowników, ale ku mojej radości dość szybko wygooglałem odpowiedź jak rozwiązać ten problem :)

otwieramy konfigurację firefoxa, tzn. "about:config" i tam ustawiamy 3 rzeczy:
opcji browser.feeds.handlers.application value ustawiamy wartość /usr/bin/akregator (lub odpowiednio odpowiadającą naszemu systemowi)
potem prawoklik i "dodaj ustawienia typu:" wybieramy "Łańcuch (string)"
i dodajemy: browser.feeds.handlers.application.args a wartością: --addfeed
oraz, browser.feeds.handlers.application.uriPrefix z wartością: feed:

jednak to dopiero kawałek roboty, nie zagłębiałem się dokładnie jaka jest tego przyczyna ale musimy zmodyfikować plik FeedConverter.js (znajdujący się np. /usr/lib/firefox/components/ - lub odpowiednio dla naszej dystrybucji i naszej instalacji przeglądarki) odnajdujemy w nim:
case "client":
      var clientApp = 
        prefs.getComplexValue(PREF_SELECTED_APP, Ci.nsILocalFile);
        [...]
      var ss = 
          Cc["@mozilla.org/browser/shell-service;1"].
          getService(Ci.nsIShellService_MOZILLA_1_8_BRANCH);
      ss.openApplicationWithURI(clientApp, spec);
      break;

i zmieniamy to na:
case "client":
   const PREF_SELECTED_APP_ARGS = "browser.feeds.handlers.application.args";
   const PREF_SELECTED_APP_URIPREFIX = "browser.feeds.handlers.application.uriPrefix";
   var clientApp = prefs.getComplexValue(PREF_SELECTED_APP, Ci.nsILocalFile);
   var feedhandlerArgs = safeGetCharPref(PREF_SELECTED_APP_ARGS).split(" ");
      //get all args words delimitted by space into array
   var uriPrefix = safeGetCharPref(PREF_SELECTED_APP_URIPREFIX);

   var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
   file.initWithPath(clientApp.persistentDescriptor);
   var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   process.init(file);

   if (uriPrefix) spec = uriPrefix + spec;
   if (feedhandlerArgs) {
      var args = feedhandlerArgs;
      args[args.length] = spec; // add uri as last arg at the end
   }
   else
      var args = [spec];

   process.run(false, args, args.length);
   //debug("FeedConverter.js: ", (clientApp.persistentDescriptor + " " + args));

   break;

i już możemy cieszyć się tym że nasz Firefox umie dodawać kanały RSS do akregatora :)
mała rzecz a cieszy :)
testowane i robione u mnie na Firefoxie 3.0.xx

VI

19

klawiatura multimedialna (xbindkeys)
od dawna mam klawisze multimedialne na klawiaturze ale dotychczas używałem doich obsługi programiku hotkeys, który jednak ostatnio zaczął jakoś nie chcieć od jakiegoś czasu startować wraz ze startem KDE i postawnowiłem zmienić go na xbindkeys który ku mojemu miłemu zaskoczeniu pozwala na bardzo wiele ustawień :)

w swoim katalogu domowym tworzymy plik o wdzięcznej nazwie .xbindkeysrc w którym wpisujemy po kolei polecenie do wykonania i kod klawisza na wciśnięcie którego owe polecenie zostanie wykonane :)
co mi się bardzo podoba pięknie rozróżnia czy dany klawisz został wciśnięty wraz z ew. shift, Ctrl, Alt a co za tym idzie zrobiłem sobie zmianę głośności na klawiaturze oddzielnie dla kanału przez który idzie mi TV a oddzielnie dla PCM :)
mała rzecz a cieszy...

do zczytania klawiszy wydajemy polecenie xbindkeys -k i na pojawionym się okienku wciskamy interesujacy nas klawisz (Page Up) (z ew. wciśniętym "modyfikatorem") w oto naszym oczom ukarzę się w konsoli pięknie:

graffi@dunwyn:~$ xbindkeys -k
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
m:0x11 + c:99
Shift+Mod2 + Prior
graffi@dunwyn:~$
co oznacza że wciśnęliśmy "coś" co zostało rozpoznane jako m:0x11 + c:99
tak zczytaną klawiaturę zapisujemy przykładowo (moje wpisy dla zmiany głośności dla kanału PCM i Aux (ten jest ściszany / pogłaszany z wciśniętym klawiszem Ctrl):

"/home/users/graffi/.bin/hotkeys/volume PCM -"
m:0x10 + c:174

"/home/users/graffi/.bin/hotkeys/volume PCM +"
m:0x10 + c:176

"/home/users/graffi/.bin/hotkeys/volume Aux -"
m:0x14 + c:174

"/home/users/graffi/.bin/hotkeys/volume Aux +"
m:0x14 + c:176

teraz tylko w autostarcie KDE pamiętać aby się odpaliło /usr/bin/xbindkeys & i mam działającą ładnie klawiaturę (oprócz przycisków jawnie 'mutimedialnych' przełapane mam jeszcze kilka takich które nie wiem do czego mają służyć a mi akurat służą tutaj :P np. Pause)

VI

18

ssh na niestardowym porcie i login inny niż lokalny - koniec problemów :)
a no właśnie, na uczelni muszę czasami mieć na "oficjalnych" serwerach login inny niż "graffi" i już...
do tego pomysłowość adminów jest wielka wiec serwery ssh nasłuchują na jakimś niestandartowym porcie (co serwer to inny port :P ) więc dotychczas rozwiazanie miałem jedno, a mianowicie sobie konfigurowałem iptables'a któremu takie oto regółki wystarczały do załatwienia sprawy innego portu:
$sbin/iptables -t nat -A PREROUTING -d 212.182.0.175 -p tcp --dport 22 -j DNAT --to-destination 212.182.0.175:xxx

niby spoko...
jednak to rozwiązuje połowę problemu (tzn. inny port) w sumie od tego momentu mogę się już logować tak:
ssh login@matrix

a sprawa loginu?? tak żeby go nie podawać z palca za każdym razem... do tego takich serwerów z niestandardowycm portem ssh jest sporo już w moim przypadku i za każdym pojawieniem się nowego trzeba nową regółkę do iptablesa dodwać - ale poświecenie i ileż to pracy... :P

otóż jest spoób na to wszystko!!
haha :)
i to dość prosty :)
edytujemy sobie plik ~/.ssh/config wpisujemy w nim przykładową konfigurację dla każdego serwera z którym się łączymy a chcemy połączeniu podawać nic oprócz "ssh serwer" :P

Host cezar
HostName 83.3.zzz.xxx
User login
Port port
i teraz wystarczy tylko
ssh cezar
a klient ssh będzie się łączył na zdefiniowany pod nazwą "cezar" komputer na zdefiniowany port z podaną nazwą użytkownika :)
fajne i miłe :)
konfiguracja każdego połączenia kończy się na końcu pliku lub na znalezieniu najbliższego słowa kluczowego "Host"
w ten sposób możemy zdefiniować "n" różnych połączeń na "k" różnych serwerów (n != k ze względu na to że na daną maszynę możemy mieć zdefiniowane różne połączenia z różnymi nazwami użytkownika)

więcej ciekawych funkcji i możliwości skonfigurowania każdego połączenia ssh w manualu
man 5 ssh_config

sama radość :)

wiem że "ameryki" tutaj nie odkryłem, jednak może ktoś dzięki temu wpisowi usprawni sobie swoje połączenia ssh na przeróżne serwery :)