piątek, stycznia 20, 2012

ARP flux problem solution

Jakieś dwa tygodnie temu miałem pewien pomysł jak zutylizować jeden z serwerów, którym zarządzam docelowo rozszerzając usługę DHCP na trzy podsieci. Tak się składa, że maszyna posiada 4 porty gigabitowe i działa na Linuksie, więc nie powinno być problemów. Wymyśliłem sobie, że podepnę serwer do switcha w następujący sposób:


Położyłem kable, podpiąłem wszystko i zadowolony z siebie odpaliłem terminal. Jakie było moje zdziwienie, kiedy po podnoszeniu eth1 rozpoczęły się anomalie sieciowe. Połączenie lagowało, pingi się gdzieś nagle gubiły itd. Pomyślałem, że może to coś z trasowaniem. Długo pytałem wujka Google co by mogło się dziać, przy okazji ucząc się o takich rzeczach jak dostęp rozłączny i agregacja portów. Z dobry tydzień gryzłem się z tym problemem. Głównie dlatego, że na eksperymenty mogłem sobie pozwolić tylko w godzinach wieczorowych, kiedy serwer nie był obłożony. Dopiero dziś natknąłem się na przyczynę i rozwiązanie problemu. Przyczyna była trywialna w swojej naturze - domyślne ustawienia jądra linuksowego do obsługi ARP. Normalnie sieciowa dyskusja protokołem ARP powinna wyglądać tak:

KomputerA: "Szukam adresu 192.168.2.1 do partyjki warcrafta, który z was to?"
KomputerB: "To ja. Mój adres MAC to 00:11:22:33:44:55."

Domyślnie na zapytanie ARP odpowiedź wysyłana jest na wszystkich interface'ach, a ponieważ w moim wypadku oba interface'y są podłączone do tej samej przełącznicy skutkuje to niezłym bigosem. Dyskusja zmienia się w rozmowę z schizofrenikiem:

KomputerA: "Szukam adresu 192.168.2.1 do partyjki warcrafta, który z was to?"
KomputerB: "Cześć, znajdziesz mnie pod adresem MAC 00:11:22:33:44:55, albo AA:BB:CC:DD:EE:FF. A może to było jednak 00:11:22:33:44:55?"

Rozwiązaniem jest wymuszenie odpowiedzi na zapytania ARP tylko na tej karcie sieciowej na której odebrano zapytanie. Całość sprowadza się do wykonania:

sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2


Aby zmiany były trwałe należy zrobić stosowne wpisy w pliku
/etc/sysctl.conf

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2


wtorek, listopada 15, 2011

The SYLWIA peptide

Jak wspomniałem w poprzedniej notatce ostatnimi dniami dla relaksu tworzę różne rzeczy w myśl hasła "do it yourself". Korzystając z okazji, że moja dziewczyna wyjechała na kilka dni postanowiłem jej zrobić małą niespodziankę na naszą drugą rocznicę. Zrobiłem taki oto naszyjnik z drutu jubilerskiego i koralików:


Taki prezent od chemika dla chemiczki. "Nie-chemikom" już tłumaczę. Jest to model sześciopeptydu o sekwencji Ser-Tyr-Leu-Trp-Ile-Ala, którą jak się czyta skrótami jednoliterowymi tworzy sekwencję SYLWIA. Prezent w każdym razie bardzo przypadł do gustu mojej lepszej połówce o czym nie omieszkała od razu pochwalić się całemu światu za pomocą facebooka. I się zaczęło... Ostatni raz w życiu nasłuchałem się tylu pochwał chyba jak kończyłem podstawówkę. Cóż... teraz muszę się z tym liczyć, że takie są efekty jak realizuję pomysły, które czasem błądzą mi po głowie. ]:)

poniedziałek, listopada 07, 2011

My new phone cover

Jesień zawitała do nas na dobre, a wraz z nią chłodne wieczory. W ostatnich miesiącach zaniedbałem nieco prowadzenie mego bloga, więc postaram się przeznaczyć wieczorny czas wolny na napisanie tutaj kilku (w miarę możliwości zwięzłych) notatek o tym co ostatnio chodzi mi po głowie. Zacznę może od tego co wychodzi mi najlepiej... narzekania. Rozpoczął się nowy semestr akademicki, a wraz z nim przyszła fala zgłoszeń, telefonów i maili o niedziałającej sieci i usługach. O stosie podań o założenie konta na serwerze studenckim, która zalała moje biurko już nie wspomnę. Taka praca administratora sieci - raz się jest szeryfem walczącym o prawo i porządek na serwerach, a raz biurokratą przekładającym kartki z stosu na stos. By całkiem nie oszaleć od siedzenia przed komputerem powróciłem do robienia czegoś manualnie. Kiedyś robiłem całą masę origami, a teraz częściej szkicuję lub próbuję pracy z nowymi dla mnie materiałami. No i tu jest mała zagadka. Cóż takiego mogłem zrobić z rzeczy które znajdują się na poniższym zdjęciu?
Jak nietrudno się domyślić po tytule notatki wyszedł z tego pokrowiec na mojego smartfona. Poprzedni pokrowiec, który kupiłem w saturnie rozpadał mi się już na czynniki pierwsze od ciągłego wyciągania i wsadzania telefonu. A ponieważ, zaczynam się przeistaczać w "androidowego fanboya" nie mogłem odpuścić sobie okazji wykonania unikatowego pokrowca jednoznacznie wskazującego na czym śmiga mój telefon. Jak na moją pierwszą zabawię z filcem to uważam, że wyszła z tego rzecz, która jest zarówno piękna jak i pożyteczna.



piątek, września 16, 2011

Selective syslog-ng remote logging with Tomato

Załóżmy, że posiadamy własną sieć (np. 192.168.0.0/24) w której działają między innymi bezprzewodowe rutery oparte o Tomato pełniące funkcję punktów dostępowych z których chcielibyśmy zbierać logi centralnie na jednej maszynie za pomocą syslog-ng. Maszyna na której zbierane będą logi posiada adres IP 192.168.0.50, a rutery adresy odpowiednio 192.168.0.1-15. Oto krótki przepis jak to zrobić.

Konfiguracja routerów


W pierwszej kolejności należy przekierować sysloga routera na zewnętrzny adres. Wybieramy Administration ▶ Logging i zaznaczamy opcję Log To Remote System oraz w polach IP Address / Port wpisujemy adres 192.168.0.50 oraz port 514.

Wpisy w syslog-ng.conf


Samo przekierowanie logów to tylko połowa pracy. Na serwerze dodajemy wpis zbierający zdalne logi:
source tomatoAP {
    internal();
    udp(ip("0.0.0.0")
    port(514));
};

Dodajemy zestaw filtrów do kierowania zapisem logów z każdego rutera. Dla pierwszych dwóch wpisów IP musimy dodać $ po adresie IP, aby ograniczyć filtr tylko do jednego hosta. Jeśli tego nie zrobimy w szablon wpasowane będą także np. takie adresy jak 192.168.0.193, czy 192.168.0.27.

filter f_tom01 { host("192.168.0.1$"); }; 
filter f_tom02 { host("192.168.0.2$"); };
filter f_tom03 { host("192.168.0.3"); };
filter f_tom04 { host("192.168.0.4"); };
filter f_tom05 { host("192.168.0.5"); };

Dodajemy wpisy gdzie mają być zapisywane logi z poszczególnych routerów...

destination d_tom01 { file("/var/log/tomato/ap-01.log"); };
destination d_tom02 { file("/var/log/tomato/ap-02.log"); };
destination d_tom03 { file("/var/log/tomato/ap-03.log"); };
destination d_tom04 { file("/var/log/tomato/ap-04.log"); };
destination d_tom05 { file("/var/log/tomato/ap-05.log"); };

..., a następnie zbieramy wszystko w całość w spójne regułki dla każdego rutera.

log { source(tomatoAP); filter(f_tom01); destination(d_tom01); };
log { source(tomatoAP); filter(f_tom02); destination(d_tom02); };
log { source(tomatoAP); filter(f_tom03); destination(d_tom03); };
log { source(tomatoAP); filter(f_tom04); destination(d_tom04); };
log { source(tomatoAP); filter(f_tom05); destination(d_tom05); };

Na koniec restartujemy syslog-ng i zaparzamy zasłużoną kawę ]:) Finito.

niedziela, lipca 17, 2011

3-city biking

Wraz z dziewczyną postanowiliśmy kupić sobie rowery na lato. Sylwia kupiła sobie rower miejski, a ja górski rekreacyjny. Częściowo nasza decyzja wynikała z chęci aktywnego spędzenia lata, a częściowo z stanu dróg w Gdańsku. Dla niewtajemniczonych powiem, że remontowana jest teraz linia tramwajowa wzdłuż alei Grunwaldzkiej. Szybciej człowiek dojedzie rowerem niż komunikacją miejską (pomijając możliwość wdychania świeżego powietrza, a nie zapachu czyiś spoconych pach w autobusie). Jednej rzeczy jednak nie potrafię zrozumieć. Rower mam już od ok. 2 tygodni, a już dwa razy musiałem łatać dętkę. W porównaniu z góralem, którego zostawiłem na opolskim gruncie to bardzo mnie to dziwi. Tamten rower wytrzymał 8 lat jazdy po polskich drogach, lesie i wyrobisku skały wapiennej, a chyba tylko raz musiałem łatać dętkę. Mój obecny góral ma nieco cieńszą oponę oraz mniejsze bieżniki, ale za to jeżdżę nim po drogach rowerowych w Gdańsku, które są w naprawdę dobrym stanie. Dziś nie wytrzymałem i pojechałem kupić sobie dętkę samouszczelniającą się. W każdym razie mimo problemów technicznych złapała mnie "zajawka" na kolarstwo. W miarę możliwości oglądam też relacje na żywo z Tour de France 2011. Jak już jesteśmy przy temacie TdF to jako geek oczywiście zainstalowałem sobie oficjalną aplikację Tour de France 2011 na androida. Przydatna sprawa dla każdego fana tego wyścigu, ale aplikacja dała mi nieco do myślenia. Skoro mój telefon HTC ma wbudowany odbiornik GPS to może jest jakaś aplikacja na Androida, która by nadawała się do zbierania statystyk jazdy rowerem. Jak się okazało nie musiałem długo szukać i znalazłem całkiem ciekawą aplikację stworzoną przez Google - My Tracks. Aplikacja pozwala na rejestrowanie przejechanej trasy, oblicza czas spędzony w jeździe (dobra opcja przy poruszaniu się po mieście metodą stop-and-go), oraz liczy statystyki takie jak średni czas jazdy, minimalna/maksymalna prędkość itp. Oto kilka zrzutów z jak to wygląda na telefonie: Ciekawą opcją jest możliwość eksportu do Google Maps. No dobrze. Dosyć blogowania na dziś. Trzeba się, wyspać by jutro w pełni sił pojechać do pracy rowerem ]:D

wtorek, czerwca 28, 2011

udev rules for my tv card

Od wczoraj pod chochlika mam podpiętą kamerkę internetową. Jak się dziś okazało, znalezienie dla niej działających sterowników na Linuksa to najmniejszy problem. Ponieważ mam też kartę telewizyjną (Pinnacle PCTV) dla obu urządzeń tworzone są pliki urządzeń o nazwach /dev/video0 oraz /dev/video1. Wszystko ładnie, tylko że po restarcie systemu raz video0 to karta tv, a raz kamerka internetowa. Całe szczęście można to bardzo prosto rozwiązać pisząc własne reguły udev, co też zrobiłem. Najpierw przyda się zdobycie trochę informacji za pomocą narzędzia udevadm:
$ udevadm info -a -p $(udevadm info -q path -n /dev/video1)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1e.0/0000:04:01.0/video4linux/video1':
    KERNEL=="video1"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{name}=="saa7133[0] video (Pinnacle PCTV"
    ATTR{index}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:04:01.0':
    KERNELS=="0000:04:01.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="saa7134"
    ATTRS{vendor}=="0x1131"
    ATTRS{device}=="0x7133"
    ATTRS{subsystem_vendor}=="0x11bd"
    ATTRS{subsystem_device}=="0x002e"
    ATTRS{class}=="0x048000"
    ATTRS{irq}=="19"
    ATTRS{local_cpus}=="ff"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""

  looking at parent device '/devices/pci0000:00/0000:00:1e.0':
    KERNELS=="0000:00:1e.0"
    SUBSYSTEMS=="pci"
    DRIVERS==""
    ATTRS{vendor}=="0x8086"
    ATTRS{device}=="0x244e"
    ATTRS{subsystem_vendor}=="0x1458"
    ATTRS{subsystem_device}=="0x5000"
    ATTRS{class}=="0x060401"
    ATTRS{irq}=="0"
    ATTRS{local_cpus}=="ff"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS=="
Ponieważ mam tylko jedno urządzenie firmy Pinnacle, więc reguła oparta jest o dość prosty atrybut, a mianowicie nazwę widoczną dla systemu. Do pliku /etc/udev/rules.d/10-local.rules dodałem następującą linię: KERNEL=="video*", ATTR{name}=="*Pinnacle PCTV", NAME="%k", SYMLINK="video_tvcard" Po restarcie maszyny w katalogu /dev utworzyło się dowiązanie symboliczne video_tvcard wskazujące na kartę tv. Teraz wystarczyła drobna zmiana konfiguracji programów takich jak tvtime, by odwoływały się do /dev/video_tvcard za każdym razem gdy chcę sobie pooglądać TV. Tych którzy chcą pisać własne reguły odsyłam do artykułu na Arch wiki, który okazał się być bardzo przydatny oraz manuala udevadm.

niedziela, czerwca 12, 2011

Autum Lady

Niedzielne popołudnie. Za oknem piękna pogoda, a we mnie znów się budzi ochota wysmarowania arkuszy papieru pastelowym pigmentem... Zobaczymy co z tego wyjdzie. Z braku laku (czasu zresztą też) prezentuję trochę starszą pracę.

niedziela, maja 15, 2011

My first cover

Two month ago I was asked to design a cover image for a small polish chemical journal - LAB. If I may quote the editor:
Please prepare something attractive, i.e. the molecule should be very colourful and elaborate.
As I like to play with graphics, especially when its chemistry related, I'd accepted the offer. I thought for some time what molecule should I use for the cover, when a colleague whose work is opioid related proposed naloxone. Its a drug used in emergency treatments for opioid overdose (mostly heroin). I've liked it from the first sight so I searched the protein data base for a suitable model to do the visualization. I have found 1MX9 which is a complex of human liver carboxylesterase with a naloxone derivative. Here is my final work that I've sent to the editor: After a month when I went to work a package was lying at my desk. Containing this magazine. The scan below does not reflect the actual appearance because of the print on a semi gloss paper. It looks more darker then it is. Neither the less it feels really good to see my own work in print.

środa, kwietnia 20, 2011

Bus wardriving

Ta notka leżała u mnie dłuższy czas w szkicach roboczych. Wreszcie znalazłem czas by ją ukończyć.

Od dwóch miesięcy mam nowy telefon, a dokładniej to smartfon HTC Wildfire. Jestem po prostu oczarowany możliwościami jakie daje otwarta architektura jaką jest Android. Najpierw trochę czasu mi zajęło oswojenie się z interfacem dotykowym, a następnie zaczęły się zabawy z testowaniem miliona aplikacji jakie są dostępne na Android Market. Testowałem wszystko począwszy od gier w kulki, a skończywszy na kliencie SSH. Po jakimś czasie uświadomiłem sobie, że skoro smartfon ma wbudowaną kartę wifi oraz czujnik GPS to w zasadzie można by spróbować wardrivingu. Zawsze chciałem spróbować czegoś takiego. Kiedyś nawet podchodziłem do tego tematu z laptopem i nawigacją gps. W zasadzie to pomysł miał ręce i nogi - laptop zbierał dane wifi, a nawigacja miała wysyłać dane gps przez połączenie szeregowe bluetooth. Ktokolwiek miał (nie) przyjemność bawienia się Windowsem CE ten wie ile się trzeba nagimnastykować, by zainstalować oprogramowanie wraz z odpowiednimi bibliotekami na dedykowaną sprzętowo architekturę. Mówiąc krótko za chiny nawigacja nie chciała łyknąć odpowiedniej instalacji .NET Compact Framework, bez której nic nie chciało ruszyć. Wracając do tematu. Poszperałem na markecie, przetestowałem kilka aplikacji i najbardziej do gustu przypadł mi G-MoN. Postanowiłem go przetestować w warunkach polowych. W chwili kiedy to piszę nieczynna jest w Gdańsku linia tramwajowa przebiegająca przez cały Wrzeszcz i kursuje autobusowa linia zastępcza. Jadąc właśnie tym autobusem, siedząc przy oknie odpaliłem niewinnie wyglądający telefon i zacząłem zbierać dane... ]:) Ciekawą funkcją G-MoNa jest możliwość eksportu do formatu KML, który można następnie wczytać do Google Earth. Jednak kiedy to zrobiłem okazało się, że dla zebranych przeze mnie danych niewidoczne są nazwy wykrytych sieci co spowodowane było brakiem tagu <name> dla danej geolokacji. Ale nie ma takiego problemu z konwersją plików tekstowych, których nie można rozwiązać za pomocą odrobiny magii w konsoli. Uwaga, proszę się odsunąć - użyję wyrażeń regularnych ]:P sed 's/<description>\([[:alnum:]]*\)/\<name\>\1\<\/name\>\<description\>/' gmon-orginal.kml > gmon.kml Po ponownym wczytaniu do Google Earth można było już wygodniej oglądać trasę. A na koniec trochę statystyk z całej tej zabawy. Łącznie znalazłem 635 punktów dostępowych. Pocieszające jest, że powyżej 75% z nich używa zabezpieczeń WPA - widać ludzie zaczynają myśleć. Jeśli chodzi o nazwy sieci to wśród domyślnych nazw króluje UPC, linksys oraz wiecznie-żywa neostrada. Jako ciekawostkę powiem, żę tylko 3 AP z neostrady zostały sensownie zabezpieczone poprzez WPA-PSK, a reszta używa domyślnego WEP. Zawsze to powtarzam - telekomuna to zło.

sobota, marca 19, 2011

whoami

Otwieram okno terminala i zaczynam pisać.
$ whoami
lightnir
Palce suną po klawiszach, wydając dźwięk niczym stado szczurów przegryzających się przez ścianę. Cisza. Przestały gryźć tynk? Westchnięcie nasączone spora nutą frustracji. "Znowu nie działa". Łyk kawy, po czym otwieram kolejny terminal. Czas rozpocząć małą podróż po kablach miedziowych kategorii 5e. Szczury znów gryzą tynk, a pytanie pozostaje - kim jestem? $ whoami
admin

Czas zajrzeć w głąb systemu.
Czas stać się bogiem.
Czas zdziałać cuda.
Czas na kolejny łyk kawy.
# whoami
root
Intuicja podpowiada mi, że zdechła usługa. Sunę w głąb króliczej nory, by dowiedzieć się czy mam rację. grep "error" /var/log/syslog|tail -n 30 Tak. Jeśli chodzi o takie sprawy zaczynam wyrabiać sobie szósty zmysł. Restart wiszącego demona i wszystko wraca do normy. exit. exit. Powraca czarno-biała rzeczywistość lokalnego terminalu. $ whoami
lightnir
Egzystencjalny niedosyt pozostaje. Czas znaleźć odpowiedzi, a przynajmniej cząstkę spokoju przed kolejnym problemem do rozgryzienia.
whoami?

poniedziałek, stycznia 31, 2011

Grouping conformations in pymol

Lately I had to do some visualizations of molecules after MD written in multirecord PDB files, each file containing MD frames for a different molecule. Loading it and preparing the conformations was no big deal - I just split every conformation into different object.
split_states D1_wszystko The command above will generate new objects called D1_wszystko_0001, D1_wszystko_0002, D1_wszystko_0003 and so on. Since the goal was to compare the different structures and because there was over six hundred of them I had to use some python magic to make my life easier. Lucky for me Pymol comes with a grouping command.
for i in range(1,624): cmd.group("D1_AMBER","D1_wszystko_%04d" % i,"add") This will make a group called D1_AMBER containing all the D1_wszystko_XXXX objects that could be easily collapsed when not needed.

piątek, grudnia 31, 2010

Last day of 2010

Gdzie można spędzić ostatni dzień roku? Oczywiście w pociągu osobowym, gdzieś w szczerym polu między Gdańskiem, a Bydgoszczem... A zachciało się spędzać Sylwestra z Ukochaną w Toruniu. Dzięki PKP! W nowym roku życzę lepszych torów.

niedziela, listopada 21, 2010

Chemistry is our power

"Chemia naszą potęgą" - pod takim hasłem odbyła się XXXIII Ogólnopolska Szkoła Chemii organizowana z ramienia ASSChem przez NKCH UG. Tym razem inwazja chemików z całej Polski uderzyła w po sezonowo opuszczoną Jastrzębią Górę. Ja jako stary "ASSChemowicz" (w końcu to była szósta Szkoła jaką zaliczyłem), miałem tym razem przyjemność brać w niej udział w dwojaki sposób - jako uczestnik i jako organizator. Będąc z tej drugiej strony człowiek dopiero sobie tak naprawdę uświadamia ile pracy trzeba włożyć, by zorganizować taką konferencję. Pracy było niemało. Ja ze swojej strony zaprojektowałem powyższe logo konferencji, stronę internetową wraz z formularzem rejestracyjnym, okładkę na książkę abstraktów oraz identyfikatory, czyli krótko mówiąc - takie tam błahostki w których akurat jestem dobry ]:) W wolnych chwilach też bawiłem się w "tech support" oraz chairmanowanie. Od strony organizacyjnej to mam nadzieję, że się uczestnikom konferencji Szkoła podobała. Moim skromnym zdaniem była to najlepsza Szkoła Chemii jeśli chodzi o integracje ośrodków na której byłem (niestety nie było mnie w Wiśle, więc nie będę porównywał) i wyznaczyła pewien nowy standard jakości.

Od strony uczestnika powiem, że niestety nie przygotowałem się do mojego wystąpienia tak jak bym chciał. Na swoje usprawiedliwieni powiem, że częściowo spowodowane było to obłożeniem pracą, a częściowo sprawami związanymi z organizacją konferencji. To co jednak zaprezentowałem w dużej mierze inspirowane było książką, którą tuż przed Szkołą zakupiłem w empiku - "Zen Prezentacji. Pomysły i projekty" autorstwa Garra Reynoldsa. O ile przed zakupem jakiejkolwiek książki zastanawiam się głęboko nad samą potrzebą zakupu, rozważam stosunek cena/treść oraz użyteczność książki o tyle nad tą książką zastanawiałem się góra dwie minuty. Tyle czasu dokładnie zajęło mi przejrzenie ilustracji i dostrzeżenie w nich zdjęć z wystąpień z TEDa, a konkretnie przykład jak pokazać dane statystyczne tak by nie zanudzić, a nawet zainteresować. Kto oglądał wystąpienia z konferencji TED ten wie, że ci mówcy mają naprawdę dar przyciągania uwagi słuchacza. Książkę gorąco polecam każdej osobie, w której w zawód pisane jest częste występowanie z prezentacją multimedialną.

Podsumowując. Mam nadzieję, że wszyscy uczestnicy XXXIII Ogólnopolskiej Szkoły Chemii w Jastrzębiej Górze dobrze się bawili oraz wynieśli z niej nowe znajomości i doświadczenia. Ja to na pewno zrobiłem w kuluarach. Cya, next time on OSCH ]:)

poniedziałek, października 25, 2010

Résumé

Gdyby ktoś się zastanawiał czy już zarzuciłem blogowanie to od razu dementuję wszystkie plotki. Po prostu przez ostatni miesiąc działo się tak wiele, że z pracą już nie wyrabiam. A ponieważ czasu mam mało nie zamierzam się teraz specjalnie rozpisywać. W skrócie popijając lampkę wina przedstawię co się działo, a o czym nie miałem czasu napisać. Przede wszystkim stuknął mi kolejny rok (wszystkim, którzy pamiętali mimo ukrytych informacji profilowych na portalach społecznościowych dziękuję). Tegoroczną imprezę urodzinową zapamiętam do końca życia, gdyż przyjaciele zgotowali mi naprawdę piękny prezent - tablet graficzny Wacom Bamboo Pen & Touch. Zawsze chciałem sobie kupić takie coś, ale odkładałem to na później. Teraz nieliczne chwile czasu wolnego spędzam na nauce digital painting w the Gimp i MyPaint. Ponieważ obiecałem przyjaciołom, że jak coś nabazgrolę to im pokażę, więc korzystając z okazji wrzucam tą małą pracę szkoleniową nad pędzlami symulującymi florę. Rysowanie zawsze mi pomagało się odprężyć i zrelaksować. Szczerze powiedziawszy to teraz naprawdę mi się to przydaje, bo na brak stresu to ja akurat nie narzekam. Od połowy tego miesiąca pracuję jako administrator sieci... sorry, chciałem powiedzieć jako "starszy referent techniczny ds. administracji sieci LAN" (nie ma to jak wpisywać sobie takie coś do résumé). Odkąd zacząłem pracę zaczęły się problemy. Jedna krytyczna maszyna padła ze starości, druga sygnalizuje, że zaraz też to zrobi, a ja w tym wszystkim staję na rzęsach i klaskam uszami, byleby wszystko działało póki nie przyjdzie kupiona maszyna zastępcza. Najgorsze w tym wszystkim jest to, że od tych spraw administracyjno-sieciowych moja praca naukowa leży odłogiem. Ach... Czas skończyć marudzenie, nalać kolejną lampkę wytrawnego wina i zapodać jakiś film na dobranoc, bo od jutra znów przyjdzie mi stawać na rzęsach i klaskać uszami.

poniedziałek, września 13, 2010

Booting up...

W ubiegłą niedzielę wybraliśmy się wraz z dziewczyną na zakupy do centrum handlowego na Chełmie. Tak się złożyło, mieliśmy przesiadkę w centrum miasta. Wysiadam z tramwaju i z przyzwyczajenia patrzę kiedy jedzie następny, a tu moim oczom ukazuje się taki oto obraz:
Momentalnie zdębiałem z wrażenia. Całe szczęście nie na długo - zdążyłem jeszcze ustrzelić tą jedną fotkę komórką. Co prawda jakość nie powala ze względu na częstotliwość odświeżania panelu LED, ale można większość odczytać:
Freeing unused kernel memory!
INIT: Version 2.91 booting
?????? ?? ?
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
EXT2-fs warning. maximal mount

Nigdy bym nie pomyślał, że w niedzielne popołudnie zobaczę w środku miasta bootującego się Linuksa (to tak jakby zobaczyć jednorożca). Jakiś czas temu jak postawiono w Gdańsku te panele LED zastanawiałem się co za system to obsługuje. Teraz już wiem ]:) Większość ludzi nawet nie zdaje sobie sprawy, jak często mają do czynienia z systemami unixowymi. Są wszędzie poczynając od urządzeń mobilnych, a kończąc na dużych korporacyjnych serwerach.
Mała zagadka - co ma wspólnego zakup biletu PKP relacji Wrocław-Gdańsk z kupnem worka ziemi ogrodowej w OBI?
Odpowiedź: W obu wypadkach na kasie rachunek wydrukuje nam Linux.

wtorek, sierpnia 17, 2010

Kayaking

W ubiegłym tygodniu wybrałem się wraz z znajomymi na jednodniowy spływ kajakiem Wdą. Jak na mój pierwszy kontakt z taką formą rekreacji bardzo mi się podobało (mimo, że przez dwa dni miałem zakwasy). Wyruszyliśmy z wsi Lipusz, a dopłynęliśmy do jeziora Radolne. W sumie 18,8 km wiosłowania. Wda jest naprawdę piękna. Początkowo nurt jest szybszy, koryto węższe, a po drodze pełno przeszkód. Później bieg się uspokaja i można podziwiać meandry łąkowe, a jest co oglądać. Gdybym miał mój stary aparat fotograficzny z funkcją super-makro na pewno uganiałbym się za świteziankami. Z drugiej strony to chyba lepiej, że go nie miałem, bo przynajmniej od czasu do czasu patrzyłem gdzie płyniemy i w porę omijałem przeszkody, a przynajmniej większą ich część. Najspokojniejszy był spław przez jezioro Schodno (fot. powyżej) - cisza, spokój, pełno wody, słońce i piękny krajobraz. Byłoby całkiem sielankowo, gdyby nie na środku jeziora zadzwonił telefon mojej pasażerki. Od cywilizacji człowiek nie ucieknie... Ech. Trochę stresujące było też przepływanie obok łabędzi z młodymi, ale najwyraźniej zwierzęta te już się przyzwyczaiły do wodnych turystów i obyło się bez atrakcji. Wieczorem koło 18 dotarliśmy wreszcie do celu - jeziora Radolne (fot. powyżej). Ja wyprawę zakończyłem orzeźwiającą kąpielą w jeziorze. Przyznam, że był to męczący dzień, ale warto było i trzeba będzie to kiedyś powtórzyć.

niedziela, lipca 18, 2010

Toy disassembled

Mój zapał nad nową zabawką strasznie się ostudził po ostatnim miesiącu eksperymentowania. Oto kilka powodów dlaczego tak się stało:
  1. Urządzenie działa niestabilnie. Z reguły po kilku/kilkunastu minutach się zawiesza. Nie można wyłączyć przyciskiem power - pomaga tylko hard reset. Do przycisku reset trudno się dostać bez odpowiednio cienkiego kawałka druta lub wykałaczki...
  2. Ponieważ jest to Windows CE trzeba się nieźle naszukać, aż znajdzie się odpowiedni dla architektury program (archiwum cab). Jak się go już znajdzie to się okazuje, że brakuje bibliotek. Jak się znajdzie biblioteki to się okazuje, że są niewłaściwe...
  3. Większa część działających i potencjalnie użytecznych aplikacji działa zbyt wolno ze względu na brak odpowiedniej akceleracji grafiki. Do tej pory nie znalazłem odpowiedniego GAPI...
Nadmienię jeszcze, że netbook strasznie się grzeje w miejscu obok tylnego portu USB. Będąc w moich rodzinnych stronach postanowiłem zbadać sprawę i rozebrać sprzęt. Pełna fotodokumentacja jest dostępna tutaj. Jak się okazało grzeje się moduł wifi. Co prawda o jego wyłączeniu netbook przestaje się grzać, ale i tak po jakimś czasie się zawiesza. Przy okazji rozkręcania dowiedziałem się kilku ciekawych rzeczy. Jedną z nich to fakt, że netbook miał fabrycznie uszkodzony lewy głośnik. Wygląda to tak jakby kropla lutu spaliła membranę głośnika. Tja, Made in China ]:| Sam teraz nie wiem co by można było sensownego z tą zabawką zrobić. Ktoś ma jakieś sugestie?

niedziela, czerwca 13, 2010

My new toy

Tak wygląda moja nowa zabawka, która w całkiem dziwnych okolicznościach znalazła się w moich rękach: Jak wyczytałem po sieci takich chińskich netbooków pojawiło się u nas na rynku całkiem sporo. Nie jest to co prawda tak bardzo powalający sprzęt jak np. Asus Eee PC, ale można się nim pobawić. A osoby które mnie znają wiedzą, że lubię takie zabawy ];) Tak dla dociekliwych podaję specyfikację sprzętową:
  • CPU: Anyka ARM AK7802 248MHz
  • OS: Windows CE 5.0 Professional
  • Wyświetlacz: 7-calowy 800x480 (WVGA)
  • Sieć: Ethernet 10/100M, WIFI 802.11b/g
  • RAM: 64MB
  • ROM: 2GB NAND Flash
  • Złącza:
    • 2× USB 1.0
    • 1× USB 2.0
    • 1× gniazdo słuchawkowe mini jack
    • 1× gniazdo mikrofonu
    • 1× czytnik kart SD
    • 1× RJ-45
  • Wymiary: 21.2×14.2×3.3 cm
Tak to wygląda z boków i z tyłu: Jak wspomniałem wcześniej to cacko działa pod kontrolą WinCE 5.0 Pro, co oznacza, że oprócz shella jest też kilka programów. Głównie są to odpowiedniki programów pakietu MS Office pozwalające na czytanie dokumentów. Można pooglądać prezentację(Power Point Viewer), poczytać PDFa(PDF Viewer), skrobnąć coś tam w edytorze tekstu (MS WordPad) i porachować trochę w prostym arkuszu kalkulacyjnym(Spread CE). Multimidialnie to można "zaszaleć" oglądając zdjęcia bezpośrednio z karty SD w Image Viewer, posłuchać sobie muzyki w Windows Media Player, albo obejrzeć klipy w The Core Player. W sieci poszperać można za pomocą IE 6.0, sprawdzić pocztę za pomocą jakiegoś klienta poczty (wygląda jak wersja CE Outlook Expressa, ale nigdzie nie ma informacji co to) oraz pogadać z ludźmi za pomocą MSN Messengera (nie używam, nie mam zamiaru). Dodatkowo jest RAR do archiwizacji plików, Recorder do nagrywania dźwięku no i wiecznie żywy FreeCell. Pulpit prezentuje się tak: Postaram się wkrótce napisać trochę więcej o tym co z tą zabawką do tej pory zrobiłem.

poniedziałek, maja 31, 2010

Kernel coffee test

Sometimes when I cant sleep from too much coffee I get this really strange ideas... Coffee is important (at least for us computer guys), but did you ever wondered how much? Lately this thought didn't let me go. If programmers drink that much coffee, as I do maybe they write also some comments about it in their code. So I asked myself - how often the word coffee occurs in the Linux kernel source code? [lightnir@chochlik src]$ grep 'coffe' `find -name '*'`|wc -l
5
Ok. Where? [lightnir@chochlik src]$ grep 'coffe' `find -name '*'`
./linux-2.6.30/drivers/net/wireless/orinoco/orinoco_pci.c: * are necessary. Alan will kill me. Take your time and grab a coffee. */
./linux-2.6.30/drivers/char/keyboard.c: * keys and one for extra function keys (like "volume up", "make coffee",
./linux-2.6.30/Documentation/fb/sstfb.txt: - Buy more coffee.
./linux-2.6.30/arch/x86/lguest/boot.c: * Now would be a good time to take a rest and grab a coffee or similarly
./linux-2.6.30/fs/jffs2/wbuf.c: else /* Not sure this should ever happen... need more coffee */
That's interesting. I went further and wrote a quick and dirty shell script that downloaded, unpacked and searched for coffee for the entire 2.x kernel family. Here are the results plotted in gnuplot. That answered all my questions. So what do you do when you have troubles falling asleep? ];)

czwartek, kwietnia 22, 2010

Sushi and avocado

Przez większą część mojego życia żyłem w przekonaniu, że nie potrafię gotować. Odkąd teraz gotuję dla siebie zaczyna mi to sprawiać przyjemność, chociaż ciągle moje zdolności kulinarne są raczej marne. Jest tylko jeden wyjątek od tej reguły - podobno robię rewelacyjne sushi. No cóż, ja po prostu wkładam dużo serca w sposób przyrządzania sushi. Najczęściej robię futo-maki, ale i ura-maki też mi wychodzi. Ostatnio mój skarb poprosił mnie bym znów zrobił jej sushi. Chciałem tym razem przyrządzić kilka odmian nigiri i szczerze powiedziawszy sam się zaskoczyłem efektem. Wyglądało to tak (reszta maki się nie zmieściła na stole). Nigiri na pierwszym planie od lewej to: krewetka tygrysia(ebi), surimi, łosoś(sake). Nigiri od dołu zgodnie z wskazówkami zegara: ośmiornica(taco), tilapia, węgorz japoński(unagi), łosoś(sake). W środku futo-maki z surimi, marchewką, ogórkiem i awokado. Mam taki nawyk, że jak robię maki to zawsze kupuję awokado. Jakiś czas temu skusiło mnie by spróbować wyhodować sobie awokado z pestki. No i proszę oto efekt: Maleństwo rośnie mi jak na drożdżach. Zastanawiam się tylko, czy to za sprawą mojego podlewania, czy za sprawą butelki po czerwonym winie w której jak na razie rośnie ];) Stawiam na to drugie, więc na razie nie będę przesadzał do doniczki.