środa, grudnia 24, 2008

Human Adenovirus 2

During the holidays I wanted to try something out that was longer on my mind - remote rendering. At the university I have a pretty plain-desktop machine with Archlinux installed on it. It's not much. Integrated Intel graphic card and 64 bit 2GHz CPU. Nothing unusual, but I was curious how do the limits of the machine look if it comes to render some bigger models. Let's say virus capsids. My previous experiments with my home pc on this field failed on more complicated then ball representations. To say it simply - I run out of memory. It doesn't really matters if it's Linux or Windows, because on a 32 bit machine you have only maximum 4 GB of memory available. On a 64 bit system, however there's theoretically 16 EB of memory available so rendering viruses shouldn't be a problem. I went to VIPERdb and picked the first interesting looking virus I found. It was the Human Adenovirus 2. It's a medium-sized (90–100 nm) virus which is responsible for upper respiratory infections in children. I've downloaded both the half and full size capsid models, uploaded them to the remote machine and extracted the content. After that I went first for some low resource rendering gradually increasing the load of computation needed to be done. Here is how a ball model of the HAd2 capsid with b-factor colouring looks like:
It took about 5 minutes to render. By changing the representation mode from spheres to surface the render time increased to about half an hour. Surface representation also requires significant more memory so I added to the systems 3GB (1GB RAM + 2GB of swapspace) another 8GB by creating a swap file.
# cd /
# dd if=/dev/zero of=swapfile bs=1024 count=8388608
# chmod 600 swapfile
# mkswap swapfile
# swapon swapfile
As it showed up later this still wasn't enough. I've ended up with creating a second swapfile during the rendering and a total of 22 GB memory.
#free -m
             total       used       free     shared    buffers     cached
Mem:           994        843        151          0        118        410
-/+ buffers/cache:        314        680
Swap:        21295          2      21292
This is how a half capsid looks after rendering with surface (also b-factor colouring but this time with a different colour scheme):
And here's the full one with a better surface quality:
It took almost 45h to render and consumed ~19GB of memory. So far it was the longest and most resource consuming rendering I have ever done, but I think there's pretty much room for improvement ];) All the render was done by writing a render script and then run in the background on the remote machine by using the unix nohup command. nohup pymol -c render.py & This is necessary to prevent the application from receiving a hangup signal after logout. The "-c" flag turns pymol to command-mode so it wouldn't use any GUI.
Last but not least here's a small animation of the full capsid.
[Update] I'm starting to hate blogger for what he is doing with the quality of the uploaded movies.

wtorek, grudnia 23, 2008

Building Pymol SVN on Archlinux

Lately I've been neglecting my blog for the sake of my work as a Ph.D. student (programming in Fortran). I'm going to catch up on this. Writing some Fortran code isn't that hard even if you are starting to learn the language from scratch like I do, but definitely it isn't the type of "coding is fun" programming language like Python for example. Speaking of Python, since 3rd of December your python scripts are getting old, because Python 3.0 is out. The new version brings major changes in the language that make you previous HelloWorld.py program stop working (print is now a function and should be called out print("Hello World!") instead of print "Hello World!"). Many programs I use require Python 2.4 or 2.5, some like OpenOffice.org Python 2.6 and soon some will require Python 3.0. Keeping compatibility on a system is getting problematic. Luckily I've installed Archlinux on my desktop at work which makes life easier if you know how to use it. I wanted to install the latest Pymol version from svn, but I've found it's incompatible with Python 2.6 which was required as I mentioned above for OO.o. So here's what I've done.

First I've installed a separate python version from the repositories - Python 2.4 # pacman -Sy python24
After this I needed Pmw for the GUI. It can be done by building from source like this:
# wget http://downloads.sourceforge.net/pmw/Pmw.1.3.2.tar.gz
# tar -xvzf Pmw.1.3.2.tar.gz
# cd Pmw.1.3.2/src
# python2.4 setup.py build
# python2.4 setup.py install
of by using a modified python-pmw PKGBUILD from the AUR. Just make sure it uses python 2.4 by changing in the build function the default python:
build() {
cd $startdir/src/Pmw.$pkgver/src
python setup.py build
python setup.py install --prefix=/usr --root=${startdir}/pkg
}
to python2.4:

build() {
cd $startdir/src/Pmw.$pkgver/src
python2.4 setup.py build
python2.4 setup.py install --prefix=/usr --root=${startdir}/pkg
}

After this you are ready to build pymol from the SVN:
# svn co https://pymol.svn.sourceforge.net/svnroot/pymol/trunk/pymol pymol
# cd pymol
# python2.4 setup.py install
# python2.4 setup2.py install
# cp ./pymol /usr/local/bin/pymol

Thats It!
Now an upgrade of Python to 3.0 will not mess up with your Pymol installation.

piątek, grudnia 19, 2008

Atatakasa1

- Węsołych świąt!

Tymi słowami Diaboł pożegnał się z Śmiertelniczką. Tak szybko jak się zjawił tak szybko też zniknął w mglistej dali. Upojony nie wiadomo czy winem, czy rozmową z bliską osobą maszerował niesiony rytmem melodii2 mając otaczający go świat gdzieś na czubkach swych różek. Nic dziwnego, że nim się obejrzał przemaszerował szmat drogi nie w tym kierunku w którym chciał. Przystanął na chwilę. "Hmm... Ci ludzie są naprawdę dziwni" - pomyślał spoglądając z półmroku w blask mieniących się dekoracji świątecznych. "Stroją, dekorują, kupują, sprzątają, pieką. A wszystko po to by DOBRZE przeżyć święta... A przecież to takie proste - Święta to po prostu osoba obok która sprawia, że czuje się to ciepło w sercu". Jeszcze przez chwilę mżawka moczyła jego kosmatą twarz zanim obrócił się na kopytku i w kilku żwawych podskokach zniknął w jakiejś czarnej jamie.

[1] jap. Atatakasa - wesołość, czułość, ciepło serca.
[2] Autor ma tu na myśli utwór NemesisTheory pt. Don't Give a Damn

wtorek, listopada 25, 2008

How?

Generalnie mój blog to taki notatkowy bigos. Piszę o sobie, o swoich spostrzeżeniach, dzielę się moją skromną twórczością (code&art), czasem piszę o chemii po angielsku (tak dla wytrenowania języka). Ot, takie wszystko przemieszane razem i duszone na małym ogniu. Nic dziwnego, że często lądują tu zagubione dusze. Ale w ostatnich dniach zanotowałem wyjątkowy wzrost "oglądalności". Nie będę ukrywał, że miałem niezły ubaw, gdy bliżej przyjrzałem się słowom kluczowym za sprawą, których wyszukiwarka wypluła adres tej strony. Z reguły osoba, nie znalazła tego czego szukała. Chciałbym to nieco zmienić na swój sposób ];) Oto autentyczne "hity" poprzedniego miesiąca przedłożone za sprawą Google Analytics wraz z moimi krótkimi odpowiedziami/komentarzami. Mam nadzieję, że będą pomocne. No to jedziemy (oryginalna pisownia zachowana):
coś strzeliło mi w kompie jak sprawdzić co się zepsuło
Potrzęś obudową, jeśli coś wypadnie to na pewno to się zepsuło.
czemu aparat cyfrowy robi pomału zdjęcia
Twój aparat jest głęboko wierzący i wyznaje dewizę "co nagle, to po diable".
czy k550i odtwarza mp4
Tak, k550i odtwarza format MP4, 3GP oraz 3GPP(strumieniowo).
deszcz jesienny jak recytować
Powoli, szeleszcząco i najlepiej z postawionym kołnierzykiem tak jak Maciej Stuhr w swoim skeczu.
galeria zdjec odmrozenia
Pokazałbym zdjęcia swojej klaty oraz ręki po zabawach ciekłym azotem, ale z drugiej strony dopiero co jadłem dość pyszny obiad...
grzyb kozia bródka zdjecia
Ok... Twoja koza. Nie wnikam co z nią robisz, ale się tym zbytnio nie afiszuj tak po sieci.
jak dobrze sie nauczyc zwiazkow chemicznych porownywanie
Nareszcie jakieś pytanie z mojej dziedziny. Na początek radziłbym chodzić często do szkoły - raz dziennie byłoby dobrze. Zważywszy, że związków chemicznych jest cała masa chyba się nie obejdzie bez wszczepienia neokortykalnego czytnika kart SD, bo mózg ludzki chyba nie ma takiej pojemności...
jak napisać pismo do dziekana
Stosowny wzór pisma zapewne wisi w gablocie przed dziekanatem. Niemniej jednak mogę udzielić kilku rad. Niezalecane jest używanie przesadnych zwrotów grzecznościowych oraz stosowanie kolokwializmów tak jak w tym piśmie do dziekana.
jak narysować deszcz?
Dużo kresek w jedną stronę. Ciach, ciach i gotowe.
jak narysować pokój z boku
Robisz dziurę w ścianie, wchodzisz do środka i rysujesz pokój z boku.
jak sie pisze fudzi
A tak - Fudżi lub jeśli ktoś woli po japońsku - ふじの山.
jak uciszyć teściową
Polecam stosowną dawkę strychniny rozpuszczoną w alkoholu np. likierze - efekt gwarantowany.
jak zbudować mini drukarke
Polecam do tego zatrudnić krasnoludki z stumilowego lasu - po butelce nalewki babuni są w stanie zrobić wszystko ];P
jak zrobić garnitur z papieru origami
Kupujesz 2-3 ryzy papieru i zaczynasz składać papier.
jak ładnie zapakować wazon
Proste. Bierzesz wazon, owijasz gustownym papierem pakunkowym wkoło, kładziesz na drodze i przejeżdżasz walcem. Tak otrzymany placek ozdabiasz czerwoną kokardką. Prawda, że ładne?
kiedy pierwszy śnieg na nizinach
Tego nawet najstarszy baca nie wie, ale zawsze można poprosić panią Jadzię, by powróżyła z fusów.
kursor skacze po całym ekranie
To są dwie opcje: 1) Słuchasz często "house of pain - jump around" i twój kursor wczuł się w klimat lub 2) układ optyczny w myszce nawala. Zmień podkładkę, a jak nie pomoże kup nową mysz.
kłótnia która ma poważne konsekwencje
Zwykle zaczyna się od słów "kochanie, ale naprawdę grubo w tym nie wyglądasz"
madry i głupi rysunek
mam dopiero od kilku dni komputer i dopiero ucze sie wiec mam pytanie
Wyprzedzając pytanie odpowiadam: tak, USB to dobra firma ];)
me go home
Me Lightnir. Me hungry. Me go hunt some mamuth. Me bring them to cave.
mon cherie co znaczy
Mon Chéri znaczy dosłownie po francusku moja droga, a jeśli nasza nowa moja droga się nie zjawi się na randce zawsze można upychać się pralinkami o tej samej nazwie ]:P
oczyściłem sie po łacińsku
De me mundavi - przecież to każde dziecko wie...
od czego zależy wartość siły elektrostatycznej
Od ładunków generujących siłę elektrostatyczna oraz ich wzajemnej odległości od siebie (prawo Coulomba).
pare zdań o kasztanowcu
Jest zielony, ma duże liście. Kwitnący sygnalizuje maturzystom, że znów za rok matura. Aha, w korze ma glikozyd kumarynowy(eskulinę), który ładnie świeci pod UV.
piosenka na na wiekszego doła
Na doła to najlepsze są witaminki...
placz i zgrzytanie zebami
To taka metafora dla słowa "sesja".
pomidor vs ogórek
Ja stawiam piątaka na ogórka.
powoli dotykaj...caluj
Pani która to napisała proszona jest pilny kontakt mailowy w celu przysłania wymiarów, zdjęcia oraz nr. telefonu
root sing
Root nie śpiewa - root konfiguruje serwer słuchając shoutcastów przez Amaroka.
schemat ideowy płyty głównej
Może być ten?
subkultura meneli
Odsyłam do dokumentacji.
swierze miesko
Nie ma to jak napawać się widokiem świeżego mięska o poranku...
synonimy słowa understand
proszę bardzo:
  1. rozumieć
  2. zrozumieć
  3. pojąć
  4. wyznać się
  5. wywnioskować
  6. rozgryźć
  7. domyślać się
  8. znać się na czymś
  9. orientować się
  10. wyrozumiały
  11. być wyrozumiałym
szklanka herbaty rysunek zdjęcie
A oto i one:
tic tac tyle świeżości
no i tylko dwie kalorie - idealne do diety 1000 kalorycznej. Wcinasz 500 tic taców na dzień i patrzysz jak sadełko samo leci.
wow wiesza mi komputer
Współczuję ci, masz poważny problem. Jak teraz będziesz przemierzał Kalimdor by robić questy?
z czego robia swiatlo chemiczne
Odpowiedź dla nie-chemika: Z soku z świetlika. Odpowiedź dla chemika: Z odpowiednich estrów kwasu szczawiowego np. szczawianu bis(2,4,6-trichlorofenylu) utlenianych za pomocą nadtlenku wodoru w odpowiednim rozpuszczalniku organicznym.
zdjęcia świniobicia na wioskach
Na joemonsterze kiedyś była cała seria zdjęć jak wygląda świniobicie po pijaku. Pamiętam, że świnia lądowała w dość niedwuznacznych pozach... :D
zjawiska wizualne podczas przyspieszania pociągu
Jeśli obserwator stoi w miejscu, a pociąg porusza się z dużą prędkością w stronę obserwatora obierany przez obserwatora dźwięk pociągu ma inną częstotliwość - jest to tzw. effekt Dopplera. Jeśli dodatkowo obserwator obserwuje zmianę kształtu oraz barwy pociągu na skutek zbliżania się do prędkości światła jest to tzw. efekt Marihuany ];)
śmieszny film z pilarką spalinową
Piła I-V? Ale ja polecam film instruktażowy o elementarnych zasadach BHP w zakładzie pracy.
pingwiny maja dwie strony
A ja myślałem, że pingwiny mają warstwy jak cebula i ogry.


To wsio na dzisiaj

czwartek, listopada 06, 2008

Linux Teatime

Dewiacje bywają różne, ja też mam swoje - Linux. Swego czasu wygrałem w konkursie z Dragonii drewniane pudełeczko z Tuxem, które teraz stoi u mnie na biurku w zakładzie modelowania molekularnego. O te: Trzymam w nim sobie herbatę, a od środka to wygląda tak: Tyle odnośnie wprowadzenia. Ostatnio miałem taką rozmowę z moim ulubionym administratorem sieci.
Lightnir: Hej. Dzieki za tą kawę.
Blakrose: Nie ma sprawy.
Lightnir: Jakby co to mam tu herbatę. Częstuj się śmiało. Jest o smaku Debiana, Red Hata, SuSe, Slackware'a... Niestety nie mam o smaku waszej ulubionej Fedory.
Blakrose: O_o (Szok) There... IS... some other life out there! (Śmiech)
Lightnir: ];D

Widać jak na nasze zakładowe linuksowe klimaty to jestem dość ekstremalną odmianą użytkownika.

sobota, października 18, 2008

Stoic peace

Ja to mam szczęście do znajdywania się w nieodpowiednim miejscu w nieodpowiedniej chwili. Dwa tygodnie po tym jak zaszyłem się w tej pomorskiej prowincji okazało się, że linia kolejowa na Hel zostaje wyłączona ze względu na prace remontowe. Nie, żeby dojazd na Wydział zajmował mi ok. 2h czy coś... No, ale okazało się, że uruchomiono zastępczą linię autobusową. Kochacie PKP, bo ja tak? Nic tak nie sprzyja zawieraniu nowych znajomości niż wspólne wymyślanie wiązanek epitetów w kierunku polskiej kolei. W poniedziałek przekonałem się, że Polska tak bardzo nie różni się od Indii jeśli chodzi o jazdę publicznymi środkami transportu. Mało brakowało (tj. paru tych Japończyków w białych rękawiczkach upychających ludzi w tokijskim metrze), a setka ludzi weszłaby do jednego autobusu. Ponieważ następnego dnia nie miałem zajęć postanowiłem, że sobie odpuszczę podróż na wydział i zamiast tego zajmę się studium literaturowym. Problem w tym, że losu podobno nie można oszukać, więc z kolei następnego dnia uciekł mi autobus... Był późny wieczór, byłem pełen energii i nie chciało mi się czekać dwie godziny na dworcu, więc postanowiłem, że się przejdę. Abstrahując od tego, że to był głupi pomysł, to posiadał on swoje plusy. Na nieszczęśliwy wypadek jeśli kiedyś doczekam się małych chochlików, będę miał co opowiadać jak to tatuś wspinał się na morenę po torach w całkowitej ciemności mając dookoła tylko las wraz z dobiegającymi z niego odgłosami uciekających zwierząt. Przy okazji przekonałem się, że google czasem kłamie - trasę udało mi się przejść w półtorej godziny. Zawsze to jakiś zysk.

Dziwię się tylko, że przy tych wszystkich przeżyciach zachowuję stoicki spokój. To chyba przez te morskie powietrze ];)

wtorek, października 07, 2008

Sword

Alkohol poprawił mu humor. "Chodź zagramy w taką grę - bierzesz pierwszą lepszą książkę, otwierasz na setnej stronie i czytasz trzecie zdanie." Sięga po jedną książkę. Potem drugą, trzecią, czwartą... Czytają zdania wyrwane z kontekstu. Jest zabawnie. Wyciąga kolejną książkę. Setna strona jest pusta. Przewraca stronę wstecz. To tomik wierszy. Czyta.
Samookreślenie

Ja wyłoniony z dziejów
jak kropla deszczu z burzy
toczę się w kurzu życia
równie nietrwały. Dante
powiedziałby o sobie:
ja miecz wyjęty z rany.

Miecz... wyjęty z rany... Czuje nieprzyjemne kłucie w klatce piersiowej. Wtedy zauważa, że On znów stoi przed nim opierając się jedną dłonią o regał, a drugą wbijając mu w pierś. "Wiesz, że przede mną nie uciekniesz. Nie schowasz się nawet na krańcu świata." Na czarnej twarzy gościa pojawia się złośliwy grymas. Chciał powiedzieć - "Zawsze mogę spróbować", ale postanowił milczeć. Zamknął książkę i ruszył pić dalej. Rzut oka przez ramię. Gościa już nie ma. Pozostał jedynie wypalony ślad na regale w miejscu, gdzie spoczywała jego dłoń.

sobota, października 04, 2008

The eagle has landed

No właśnie, orzeł wylądował lub jak ja na to mówię - půjychała uopolskou řić na Pômoře (pol. pojechała opolska dupa na Pomorze). Nigdy bym się nie spodziewał, że po XXV OSCh kiedyś znów się zjawię w okolicach zatoki Puckiej. Tak się dziwnie złożyło, że wylądowałem w Mrzezinie - małej wiosce położonej na Kępie Puckiej. Klimat jest tu znośny za wyjątkiem chwil kiedy wieje, czyli przez jakieś 3/4 dnia. Myślałem, że na takim odludziu będę miał sporo czasu by poczytać jakieś mądre książki i wziąć się ostro za naukę, a tu tymczasem mamy bezprzewodowy internet... No i jak tu się skupić? ]:) Skoro już tu jestem, to jako zapalony wikipedysta postanowiłem odszukać pewne miejsce. W miarę szybko je też znalazłem, a chodzi mianowicie o pewien punkt z którego roztacza się widok na pradolinę Redy:
Tak dla porównania ten sam widok, tylko że latem, znajdujący się w Wikimedia Commons. Latem to zdecydowanie lepiej wygląda, a przynajmniej nie wieje zimny wiatr człowiekowi jak próbuje zrobić fotkę.

Wracając do tematu. Jak na niecały tydzień mojej obecności na pomorzu to strasznie mi się tu podoba. Szczególnie urzekła mnie otwartość ludzi których tutaj poznałem, a już na pewno rewelacyjna jest ekipa z którą mam zaszczyt pracować. Lepiej chyba nie mogłem trafić. I pomyśleć tylko, że przywiozłem ze sobą sporo obaw, złych wspomnień oraz solidną dozę wątpliwości. Ale z dnia na dzień to wszystko znika. Hmm... Jakoś nie potrafię tego opisać słowami i chyba najlepiej moje odczucia oddaje poniższy utwór.

środa, września 17, 2008

Cute molecules

For me is Pymol the number one tool for molecule visualization. Sure, there's a lot of visualization software out there on the net and some of them are quite impressing, but I haven't found one that is so flexible and extensible like Pymol. Basically almost all chemistry visualizations tools are OpenGL applications that squeeze more or less the last pixel from your GFX-card. It's just a matter of the settings. So hat makes the difference? The answer is Python. The core program is written in C, but above this is a bunch of Python modules and that means the program is hackable without recompiling. All you need is a plain text editor...

Ever heard about QuteMol? It's a very nice program and the images are just astonishing. The reason why I didn't convinced myself to try it is because it's only available for the Windows and Mac platforms and I'm starting to use my Arch Linux more and more. Ok, now you are probably asking yourself what I asked myself - how do I get such images in Pymol? I was not the first who thought about it. Here's a pymolwiki recipe how it can be done. Like I sed earlier - it's just a matter of the settings. You could write a script for it but I've decided to go one step further integrating it into Pymol. After some cups of coffee I've started playing around with the Pymol GUI python modules and found the right ones - menu.py and preset.py. All modifications were done on a linux Pymol version 0.99rc6, but besically it should also work on other Pymol versions.
First I've opened the file preset.py and defined my own representation preset function called qutemollike (add the code below at the end of the file):

preset.py(Toggle Plain Text)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
def qutemollike(selection="(all)",_self=cmd):
    s = tmp_sele
    cmd.set_color("oxygen",[1.0,0.4,0.4])
    cmd.set_color("nitrogen", [0.5,0.5,1.0])
    cmd.remove("solvent")
    cmd.as("spheres")
    util.cbaw()
    cmd.bg_color("white")
    cmd.set("light_count",10)
    cmd.set("spec_count",1)
    cmd.set("shininess",10)
    cmd.set("specular",0.25)
    cmd.set("ambient",0)
    cmd.set("direct",0)
    cmd.set("reflect",1.5)
    cmd.set("ray_shadow_decay_factor",0.1)
    cmd.set("ray_shadow_decay_range", 2)
    cmd.unset("depth_cue")

and then added a callback (line #495) to it in the file menu.py witch describes all the menus used in the viewer window.

menu.py(Toggle Plain Text)

482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
def presets(s):
    return [[ 2, 'Preset:'       ,''                        ],     
              [ 1, 'simple'   ,'preset.simple("'+s+'")'          ],
              [ 1, 'simple (no solvent)'   ,'preset.simple_no_solv("'+s+'")'          ],           
              [ 1, 'ball and stick' , 'preset.ball_and_stick("'+s+'")' ],
              [ 1, 'b factor putty' , 'preset.b_factor_putty("'+s+'")' ],
              [ 1, 'technical'   , 'preset.technical("'+s+'")'          ],
              [ 1, 'ligands'   , 'preset.ligands("'+s+'")'          ],
              [ 1, 'ligand sites'   , preset_ligand_sites(s)         ],
              [ 1, 'pretty ', 'preset.pretty("'+s+'")'          ],
              [ 1, 'pretty (with solvent)'     , 'preset.pretty_solv("'+s+'")'          ],
              [ 1, 'publication '   , 'preset.publication("'+s+'")'          ],
              [ 1, 'publication (with solvent)'   , 'preset.pub_solv("'+s+'")'          ],
              [ 1, 'QuteMol like', 'preset.qutemollike("'+s+'")' ],
              [ 0, ''               ,''                             ],                      
              [ 1, 'default'   ,'preset.default("'+s+'")'          ],           
              ]


Here is a screenshot showing the added "QuteMol like" option in the preset submenu.

As you can see I've loaded a caffeine molecule. I give it the final polish by typing in the console: set ray_trace_mode,1
ray 800,600
And here's how it looks now.

wtorek, września 16, 2008

Marionette

Jakoś mam awersję do pisania i to nie dlatego, że się nic nie dzieje. Wręcz przeciwnie - przez minione tygodnie działo się naprawdę dużo. Aż za dużo jak na mój gust. Między innymi byłem na 51 Zjeździe PTChem i SITPChem. Tym razem nie jako uczestnik konferencji, ale jako pomoc techniczna. Była to dla mnie okazja by odwiedzić moje byłe alma mater. No cóż... Spotkałem tych i owych. Za niektórymi osobami się trochę stęskniłem (ale tylko trochę), za niektórymi osobami nie przepadałem, a przed niektórymi to uciekałem jak diabeł przed wodą święconą (ujmę to tak, bo nie każdy musi wiedzieć że chodzi o promotora mojej pracy dyplomowej ]:P). W każdym razie, mój krótki pobyt w Opolu utwierdził mnie tylko w przekonaniu, że ten rozdział w moim życiu jest już definitywnie skończony. Tylko się niepotrzebnie poddenerwowałem i rozdrapałem parę starych ran. Dobrze, że byłem większość czasu odcięty od neta, bo bym na pewno część moich myśli tu spisał. A tak całą żółć zlałem do butelki, zakorkowałem, podpisałem "duchowe wymiociny - wrzesień 2008" i schowałem w ciemnym, chłodnym zakątku mej duszy, by sobie jeszcze po fermentowało parę lat...

Całe te moje przemyślenia wynikają z pewnego ukierunkowania myśli po obejrzeniu spektaklu BREL w Teatrze im. Jana Kochanowskiego w Opolu. Coś w tych piosenkach Jacquesa Brela jest, że zarówno młodzi jak i starzy znajdują w nich cząstkę siebie. Muszę powiedzieć, że utwory w wykonaniu Andrzeja Jakubczyka ("Piosenka starych kochanków") i Mirosława Bednarka ("Następny", "Pożegnanie") sprawiły, że przez plecy przechodziły ciarki, a na rękach czułem każdy włos.

Kolega: Nie wiem...
Lightnir: Ciiiiii! Nie psuj nastroju tej po teatralnej chwili.
Kolega: Ha ha ha, bardzo śmieszne. Nie wiem jak wam się podobało, ale jak dla mnie to była za duża dawka kultury jak na jeden wieczór. Wystarczy mi tego odchamiania na najbliższy miesiąc.
Lightnir: ....


No cóż nie wszędzie Brel trafia na tak podatny grunt, jak w moim wypadku. Zastanawiam się czy to może za sprawą mojej buntowniczej natury? Może to z powodu nadchodzącej zmiany klimatów (Opolszczyzna - Pomorze)? A może po prostu z tego powodu, że starzeję się bez wydoroślenia? W każdym spektakl jest wart obejrzenia.

czwartek, września 04, 2008

Fold it!

It's been a while since I've started participate in the Folding@Home project and contributed some work units. After this time I admit it's a bit boring since it's a passive work. I don't even see the results of the folding. To feed my eye's hunger for protein folding I've started to lookup the net for some movies or trajectory files. And then I stumbled upon Fold it!. First impression? Wow, it's great! For those who don't know "Fold it!" is a video game with the goal to fold a given protein to a state with the lowest energy. Instead of using a sophisticated algorithm for solving the folding problem the authors of this game relay on the human ability to intuitively solve 3D puzzles. You can be good at playing this game without a PhD in biology or chemistry. David Baker, a biochemistry professor at the University of Washington and one of the authors, says that his 13-year-old son is faster at folding proteins than he is. And in fact it's really simple to play. Getting trough the short tutorials took me about half an hour, but after that the online competition mode is quite addictive (especially when someone ranks you out).
If you're curious the game looks like this:
and it's definitely worth trying out!

poniedziałek, września 01, 2008

Ennui

Nie ma nic gorszego niż piątkowa nuda. W takim wypadku trzeba sobie znaleźć zajęcie, które wymaga nieco wysiłku umysłowego. Dla mnie nadarzyła się ta okazja kiedy zobaczyłem opis znajomego na gadu:
Wordpress, o zmoro!

Hmm... Ciekawe. Jak do tej pory to słyszałem tylko same dobrze rzeczy na temat WordPressa (pewnie dlatego, że się specjalnie tym nie interesowałem). Jak się okazało mój znajomy próbował postawić WP na jakimś serwerku. Ot, taka zwykła sytuacja typu Windows-user vs evil allmighty *nix server, Dawid vs Goliat, King Kong vs Godzilla, kawa vs herbata, ogórek vs pomidor... Anyway. Jakie jest najgłupsze rozwiązanie, które z reguły pomaga jeśli coś nie działa poprawnie na serwerze http? Pewnie...
(L)ighnir: uprawnienia plików zmień
L: by wygląda że wp nie ma uprawnień do zapisu
(K)olega: a gdzie to zrobic? w sensie jak?
K: bo ja dopiero wczoraj o WP sie dowiedzialem ze istnieje :D
L: siedzisz na windowsie?
K: tak
L: czy na linuksie?
L: aha
K: winda
L: i stawiasz zdalnie
K: tak
L: ale zdalny system to linux
L: więc zmień rekurencyjnie uprawnienia plików
L: chmod -R 777
K: to ja sobie dam na luz :D
K: nie znam sie na tym :P

Hmm. Taka myśl mi teraz przyszła, by kiedyś przylepić sobie na blacie biurka nalepkę z tarczą i napisem "Hit with forhead here". Byłoby praktyczne. W każdym razie spokojnie zacząłem tłumaczyć, pomagać, ale i moja cierpliwość się kiedyś kończy...
L: jaki status WP?
L: nie musisz zmieniać uprawnień wszystkich plików
K: cicho.. zmieniam ten shit... reczine to tak nie idzie..
L: idzie
L: oki pobieram WP standard i stawiam u siebie - zobaczymy jak to wolno idzie :D

Tak też zrobiłem. Pobrałem WordPress 2.5.1 PL Standard, po czym w półtorej godziny postawiłem LAMP-kę od podstaw, przy czym najwięcej czasu zajęło mi uruchomienie MyPhpAdmina. Ale jak już zaczęło działać to instalacja WP przeszła w dosłownie 5 minut. I tutaj niespodzianka, bo konfiguracja WP by działał za ruterem okazała się cięższa niż się to początkowo wydawało. Problem w tym, że WP przekierunkowuje stronę na adres, który się wpisało w panelu administratora. Jeśli jest to nazwa domeny z przypisanym dynamicznie IP strona jest dostępna z internetu, ale nie z komputera na którym działa. I na odwrót jeśli jest ustawiony localhost jako nazwa domeny WP działa tylko na lokalnym komputerze. Jak to się mówi - nie można jednym tyłkiem być na dwóch kiermaszach jednocześnie... A właśnie, że można! I to nawet na trzech! ]:) Oto rozwiązanie, które pozwala na odpowiednie przekierunkowanie w zależności od stosowanej domeny. Poniższy fragment codu PHP wystarczy dopisać do wp-config.php:

wp-config.php redirection fix(Toggle Plain Text)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
$hostname = $_SERVER['SERVER_NAME'];
$hostname = str_replace('www.', '', $hostname);
// Wejście z mojego PC
if ($hostname == 'localhost') { 
    define('WP_SITEURL', 'http://localhost/blog');
    define('WP_HOME', 'http://localhost/blog');
// Wejście przez LAN
} elseif ($hostname == '192.168.1.2') { 
    define('WP_SITEURL', 'http://192.168.1.2/blog');
    define('WP_HOME', 'http://192.168.1.2/blog');
// Wejście z Internetu
} elseif ($hostname == 'lightnir.no-ip.org') {
    define('WP_SITEURL', 'http://lightnir.no-ip.org/blog');
    define('WP_HOME', 'http://lightnir.no-ip.org/blog');
}


Przez pewien czas pobawię się jeszcze Wordpressem na własnym serwerku, a potem trzeba będzie wrócić do bardziej poważnych spraw. A co do tego problemu mojego kolegi z jego instalacją WP - problem też rozwiązałem. Wystarczyło przekonwertować wp-config.php z dosowego pliku tekstowego na unixowy i pousuwać śmieci poza tagami PHP. A wszystko dokonałem w jeden wieczór ot tak dla zabicia nudy. Cóż chyba wracam po wakacjach do swej "złej formy" ]:P

poniedziałek, sierpnia 11, 2008

Fighting the future

Kiedyś wyczytałem w sieci taką metaforę odnośnie linuksa:
Używanie linuksa jest jak życie w domu w którym dziennie ściany się przesuwają. Czasem drzwi są w innym miejscu, czasem schody prowadzą gdzie indziej, a czasem człowiek wstaje z łóżka i nie ma podłogi..

Rozwijając dalej tą metaforę ujmę to tak:
Dwa dni temu to wstałem z linuksowego łóżka, a że podłogi akurat dziś nie było poleciałem parę pięter w dół... Spadając walnąłem o poręcz schodów i złamałem trzy żebra oraz obojczyk... Jak już się pozbierałem, wyleczyłem rany i odbudowałem podłogę to się okazało, że pokoj już nie ma okien i drzwi, bo są przestarzałe...

Co mnie skłoniło do zrobienie pełnej aktualizacji systemu? No co? Przecież działało wszystko dobrze, a złota zasada mówi "if it works fine - don't try to fix it". W Archlinuksie którego używam zarządzanie pakietami nie odbywa się automatycznie jak w przypadku takich dystrybucji jak Ubuntu. Nie ma tu żadnych wyskakujących baloników z komunikatem "dostępne są aktualizacje". W zamian jest Pacman - prosty, ale solidny menadżer pakietów. Dawno nic nie aktualizowałem tak więc wykonanie # pacman -Syu && shutdown -h now okazało się mieć poważne konsekwencje. Dodam, że był to środek nocy, parę minut wcześniej sam pacman został zaktualizowany do najnowszej wersji, a ja zostawiłem komputer by robił swoje. No i bigos się zaczął... Nadpisał mi się config GRUBa w taki sposób, że został tylko wpis z linuksa i to w dodatku z podmienionym wpisem partycji bootowalnej /dev/hda7 na /dev/sda3. Tak więc pingwin nie startował w ogóle. Odpaliłem płytkę instalacyjną i w 2 minuty miałem z powrotem system dualboot (Arch & XP). Zaletą pacmana jest m.in. to, że nigdy nie kasuje plików tylko zawsze robi albo backup (nazwapliku.pacsave), albo wogóle nie nadpisuje plików (nazwapliku.pacnew). Sam nie wiem jak to się stało, że mi rozwalił GRUBa na łopatki, ale w każdym razie szybko przywróciłem stary menu.lst
Po uruchomieniu systemu okazało się, że X się nie podnosi. Przyczyna była dość prozaiczna. Ktoś zadecydował, że KDE będzie teraz domyślnie instalowane w innym katalogu, a że ja używam KDM jako menadżera logowania, więc przy próbach uruchomienia trybu graficznego wyskakiwały błędy związane z KDM. Uruchomiłem sobie WindowMakera i poszukałem jakiejś solucji na tą bolączkę. Przy okazji dowiedziałem się o istnieniu projektu KDEmod. KDEmod to środowisko KDE zoptymalizowane pod architekturę i686 i podzielone na większą liczbę pakietów, dzięki czemu jest bardziej modułowe i system można sobie dostroić do własnych potrzeb, bez konieczności pobierania całego KDE. Postanowiłem to wypróbować. Wcześniej jednak musiałem usunąć wszystkie ślady poprzedniego KDE. Gdy się z tym uporałem i ponownie odpaliłem tryb graficzny moim oczom ukazał się KDE w wersji 4.1 (wcześniej miałem 3.5), a wyglądało to tak:

Co się rzuca od razu w oczy to tzw. "eyecandy". Graficznie środowisko KDE4 się naprawdę ładnie prezentuje. Tapety, ikony, styl okien - nie można temu nic zarzucić. Poza tym menu główne jest naprawdę funkcjonalne. Ma to ręce i nogi, a opcja przeszukiwania menu pozwala szybko znaleźć co się chce. No i tyle na temat zalet. Plasma mimo swojego ładnego wyglądu i nowej koncepcji ikon strasznie mnie irytowała. Ok, może i pulpit z minimum ikon wygląda ładnie, schludnie i zadbany, ale ja wolę mieć swój pulpit zasyfiony kilkunastoma ikonami i wszystko nad czym aktualnie siedzę mieć w zasięgu "klik-klik". Funkcjonalność nad estetyką. To takie proste. Przy moim sprzęcie, chodziło to za wolno jak na moje oczekiwania. Nie wszystkie plasmoidy działały poprawnie oraz aplikacje zależne od bibliotek kde3 przestały działać. Dopiero jak doinstalowałem kdelibs3 coś drgnęło. Ja się uważam za osobę mało wymagającą, co nie znaczy że nie mam żadnych wymagań. Jednym z nich jest Amarok sterowany pilotem TV. Niestety odpalanie amaroka pod KDE4 okazuje się kłopotliwe jeśli nie ma się bibliotek z KDE3. Ja ich wtedy jeszcze nie doinstalowałem. Postanowiłem porwać się na wypróbowanie wersji alfa amarok 2. Znalazłem sobie odpowiednią paczkę w AUR, ale około godzinna kompilacja sprawiła, że miałem już dość jak na jeden dzień. Poszedłem, więc ładować mitochondria w ATP mając nadzieję, że będę miał długą fazę NREM...

Po raz kolejny się rozczarowałem. Odtwarzacz chodził bardzo niestabilnie i miałem wrażenie, że połowa opcji nie jest dostępna. Po namyśle stwierdziłem, że wracam do KDE 3.5, ale ponieważ w oficjalnych repozytoriach już jest tylko KDE4 pozostała mi instalacja kdemod 3. No i poleciało wszystko: # pacman -Rcs kde
# pacman -Rcs kdemod
# pacman -Rcs kdelibs3
Dodałem odpowiednie repozytorium do pacman.conf: [kdemod-legacy]
Server = http://kdemod.ath.cx/repo/legacy/i686
i rozpocząłem kolejną próbę. # pacman -Syu
# pacman -S kdemod3
# pacman -S amarok-base
Okazało się to całkiem dobrym posunięciem, bo wreszcie mam działające KDE, które szybciej śmiga niż domyślna instalacja. Amarok znów działa pod kontrolą LIRCa. Bilans walki z przyszłością KDE jest taki:
  • straciłem dwa dni
  • dwa razy pojechałem rowerem przełożyć frustrację na kilometry i endorfiny
  • mam szybsze i ładniejsze środowisko niż sprzed 3 dni
  • przy okazji HAL zaczął ponownie działać + pozbyłem się kilku innych błędów psujących mi siedzenie na koncie zwykłego użytkownika
Ogólnie rzecz biorąc to jestem zadowolony z obecnego stanu, chociaż szkoda mi tych dwóch dni. Co do KDE4 to na razie poczekam, aż się dostatecznie rozwinie. Może kiedyś na niego przejdę, ale to się będzie wiązać z upgradem sprzętu. Póki co zostaję przy KDE 3.5.

sobota, sierpnia 09, 2008

Somewhere beyond the sea

Dlaczego tak ciężko przychodzi nam postrzeganie siebie przez pryzmat codziennych dokonań? Sam nie wiem. Dwa dni temu spojrzałem na siebie z innej strony i to co zobaczyłem naprawdę mnie przygnębiło. Nigdy nie sądziłem, że mam problem z jakimś nałogiem, a tu proszę - odkąd powiedziałem sobie "Nie!" mam klasyczne psychologiczne objawy "głodu". Nie będę się nad tym rozpisywał, ale od tej chwili spędzam sporo czasu na jeździe na rowerze, szkicowaniu i gimpowaniu. Sztuka zawsze pomagała mi w jakiś sposób przetwarzać emocje. Niezależnie od tego czy miała ona charakter twórczy, czy był to tylko jej bierny odbiór - zawsze zaprzęgała wierzchowce rydwanu fantazji mego umysłu i wysyłała go w daleki wojaż. Przez ten czas ciągle powracają w mojej głowie wizje jakiś odludnych miejsc pełnych skał w których w zasadzie nie ma życia. Czasem jest to preria, a w niej samotny jeździec stojący na skalnym uskoku, albo galopujący w tumanach pyłu za ogromnym latającym pośród chmur smokiem/wężem (Quetzalcoatl?). Innym razem są to podwodne skały porozrzucane gdzieś pośród piaszczystego dna po których przechadzają się prążki promieni słonecznych. Jest tam mało ryb, parę wodorostów, a mimo tej otaczającej pustki odczuwa się taki spokój, że ma się ochotę zasnąć na jednym z podwodnych kamieni. Czyżby moja podświadomość chciała mi coś powiedzieć? Co takiego? W każdym razie bardzo się zdziwiłem, gdy dziś znalazłem miejsce bardzo podobne do tego z mojej wizji, a wygląda ono tak:

sobota, sierpnia 02, 2008

Him in the rain

Jak ja nie znoszę tych przyjęć rodzinnych. Zawsze się staram w jakiś sposób z nich wykręcić, ale tym razem się nie dało. Na sześćdziesiątkę nie miałem wytłumaczenia... Jestem klasycznym przykładem antonimu słowa "towarzyski", chociaż nie wiem czemu niektórzy właśnie mnie za takiego uważają (są to z reguły osoby które mnie mało znają). Mam taką swoją strategię zachowawczą na takie okazje - usiąść na uboczu, a zarazem z dostępem do czerwonego wina i jakoś czas leci... Dziś jednak strategia zawiodła. To że nie będę miał możliwości przeprowadzić jakiejś rozmowy na poziomie, nie wspominając już o rozmowie na poziomie z jakąś piękną nieznajomą, to ja już od tygodnia wiedziałem, ale że akurat będę siedział koło Pokera tego nie przewidziałem. Czemu Poker? Powiem tak - nawet w grze w "kółko i krzyżyk" znajdzie sposób by człowieka okantować. Strasznie nie lubię dyskusji z tym cwaniakiem. Dziś przyjechał ze swoją narzeczoną i puszcza taki monolog:
- No to kiedy sobie znajdziesz żonę? Bo wiesz... jak masz problem to wpadnij do nas na parę dni do Krakowa. Coś ci załatwimy...

No rzesz ku#%$ m*&! Czy wyglądam jakbym jakiegoś alfonsa potrzebował? No to ja dziękuję za taką troskę! Jakbym potrzebował żony to jadę na Ukrainę i tam bez problemu się znajdzie z dziesięć chętnych blondynek (oczywiście nie na mnie tylko na paszport do UE). To że mu wystarczy dziewczyna która ma czym oddychać i jeszcze w dodatku potrafi przeliterować swoje imię, to nie znaczy że każdy ma takie upodobania. Ja sobie cenię elokwencję, erudycję i poczucie humoru opakowane niekoniecznie w ciele modelki, ale zdecydowanie z nutką tajemniczości i zmysłowości. Jest to coś czego osoby jego pokroju nigdy nie zrozumieją.
Drugi błąd jaki popełniłem tego wieczoru to wdałem się w dyskusję, a właściwie kłótnię z Fredem. Poszło o głupotę - aparat fotograficzny, który domniemanie zepsułem. Tak dla sprostowania - aparat ma dwa lata i robi poziome prążki na każdym zdjęciu. Jak wyczytałem w sieci jest to częsta przypadłość losowo występująca w kilku seriach aparatów. Najczęściej jest to wina technologii produkcji, gdyż matryca CCD aparatu jest chroniona żywicą epoksydową, a ta z biegiem czasu pod wpływem wilgoci się niszczy wynikiem czego jest naruszenie matrycy. Tłumacz człowiekowi, że sprzęt się zużywa i po paru latach już jest stary, a on ci że baterie były nie te. Przysłowiowe - ty o wozie, ja o kozie. Oczywiście, że się nie znam na sprzęcie elektronicznym, a już na pewno nie potrafię poprawnie obsłużyć aparat cyfrowy (nota bene robiąc przy tym całkiem kiepskie zdjęcia), a nie wspominając już o obsłudze komputera... Tak mi się ciśnienie po tym wszystkim podniosło, że wyszedłem na spacer by się uspokoić. Na bardzo długi spacer w deszczu (bez parasola) słuchając sobie HIMa...

Po tym spacerze naszła mnie taka myśl. Mam szczerą nadzieję, że na mnie ta gałąź rodziny się skończy. Tym samym oszczędzę dzieciom, których nigdy nie będę miał takiego obejścia, no bo przecież rodziny się nie wybiera, nieprawdaż?

czwartek, lipca 31, 2008

A trip for a smile

Dwa dni temu odbyłem sobie "podróż po jeden uśmiech", a dokładnie mówiąc to chodziło o tego smile'a:
Powiem tak - nie ma to jak przebyć 1.12 Mm nie śpiąc przy tym przez dwie doby po to by móc sobie posiedzieć na ławeczce w cieniu olchy (to była olcha, tak?) ciesząc się przy tym z życia i pięknej pogody. Taki offtime od dziennej dawki promieniowania monitora dobrze robi. Człowiek się trochę opali, pozna nowych ludzi (pozdrowienia dla Sylwii ]:D ) z którymi można przy piwie porozmawiać na temat wyższości Sokoła Millenium nad X-wingiem oraz najlepszych odcinkach Top Gear (niestety nie wykazałem się erudycją w tej kwestii, ale zamierzam to zmienić). Tak poza tym to turystycznie było ciekawie: zwiedziłem informatyczny raj (no bo jak inaczej nazwać miejsce gdzie na ok. pięćdziesiątkę komputerów tylko dwa chodzą pod Windows - reszta to Linux w różnych formach), poznałem kilka relaksacyjnych pozycji jogi lokalnej żulerni paru dworców PKP oraz przekonałem się przez pół Polski jak silne gardło mają żołnierze rezerwy (gdybym ja miał taki budzik w domu)...

Słowem miałem ciekawy trip i chyba go za jakiś czas powtórzę ]:)

sobota, lipca 19, 2008

Keyboard slamming

Dawno mnie tak ręce nie bolały od wciskania klawiszy klawiatury jak dziś. Całkiem przypadkiem znalazłem grę open source która wprost powaliła mnie na kolana. Dawno nie miałem takiej dziecęcej frajdy podczas grania w jakąś grę komputerową (ostatni raz to chyba było przy partyjce Dungeon Keeper 2). Anyway. Mowa jest o Frets on Fire, całkiem dobrym klonie gier na konsolę Guitar Hero. Gra się trzymając klawiaturę tak jak na zdjęciu obok i wciskając w odpowiednim momencie klawisze aby zagrać odpowiednią nutę. O ile jest to względnie proste dla trzech utworów Tommiego Inkila dołączonych wraz z standardową instalacją, o tyle nieźle można się napocić przy kawałkach stworzonych przez fanów gry. Ujmę to może tak - piosenka "Highway to hell" powinna się nazywać tej grze "Highway through hell", bo nawet najprostsze akordy stają się wyzwaniem. Gorąco polecam tą grę każdemu fanowi rocka - zabawa gwarantowana.

Turning SE K550i into mp4 player

Przez ten weekend pobawiłem się trochę moją nową komórką - Sony-Ericssonem K550i. Jedną z jego funkcji jest możliwość odtwarzania filmów wideo w formacie MP4. Tak sobie pomyślałem, że fajnie by było zgrać trochę ulubionych klipów z YouTube na komórkę jako empeczwórki. Pytanie tylko jak albo za pomocą czego? Dodam, że chciałem to zrobić na Linuksie, więc wszystkie konwertery dostępne w takich pakietach jak PC Suite dostarczanych wraz telefonem odpadają. Najpierw poszperałem trochę po necie by się doszkolić (google najlepszym nauczycielem). Szybko znalazłem sobie rozszerzenie do Firefoksa spełniające moje oczekiwania - DownloadHelper. Za pomocą niego można łatwo pobrać klipy w formacie Flash Video (FLV). Teraz trzeba ulubiony klip tylko prze konwertować. Najpierw próbowałem skryptów znalezionych w sieci, ale już po pierwszych niepowodzeniach postanowiłem napisać własny. Początkowo próbowałem sił w bashu, ale najpóźniej przy obliczeniach rozdzielczości z zastosowaniem zmiennych zmiennoprzecinkowych stwierdziłem, że chyba lepszym rozwiązaniem będzie skrypt pisany w pythonie. Poza tym odświeżyłem sobie używanie wyrażeń regularnych w Pythonie. No dobrze, ale wracając do skryptu. Wymaga on zainstalowanych dwóch programów w systemie:
  • exiftool (pobiranie metadanych z pliku video)
  • ffmpeg (konwersja do formatu MP4)

mp4-for-SE.py(Toggle Plain Text)

#!/usr/bin/python
# -*- coding: utf-8 -*-
# FLV-to-MP4 converter for Sony-Ericsson K550i
#
# Depends on ffmpeg and exiftool

import sys
import os
import re

add=0
episode = 300   # 5 minutes
width=220
height=176
DONT_SPLIT=False

# Get input & output
try:
    fin=sys.argv[1]
    p=re.compile(r'\.\w*$')
    m=p.search(fin)
    fout=fin.replace(m.group(0),"")
except:
    fin=""

if fin=="":
    print "Usage: mp4-for-SE.py INPUT"
else:
    # Get aspect ratio
    stdout_handle = os.popen("exiftool -Image\Width "+fin, "r")
    iwidth = stdout_handle.read()
    stdout_handle = os.popen("exiftool -Image\Height "+fin, "r")
    iheight = stdout_handle.read()
    try:
        p1=re.compile(r'Image Width\s*:\s*')
        p2=re.compile(r'Image Height\s*:\s*')
        m1=p1.match(iwidth)
        m2=p2.match(iheight)
        iwidth=iwidth.replace(m1.group(0),"")
        iheight=iheight.replace(m2.group(0),"")
        iwidth=iwidth.replace("\n","")
        iheight=iheight.replace("\n","")
        src_aspect=float(iwidth)/float(iheight)
        dest_aspect=float(width)/float(height)
        if src_aspect>dest_aspect:
            height=int(float(width)/src_aspect)
            if (height % 2 <> 0):
                height+=1
        else:
            width=int(float(height)/src_aspect)
            if (width % 2 <> 0):
                width+=1
    except:
        pass

    stdout_handle = os.popen("exiftool -Duration "+fin, "r")
    str_duration = stdout_handle.read()
    # Basic preparation
    try:
        p=re.compile(r'Duration\s*:\s*')
        m=p.match(str_duration)
        str_duration=str_duration.replace(m.group(0),"")
        str_duration=str_duration.replace("\n","")
    except:
        print "Error: Can't get movie duration. Converting whole movie."
        DONT_SPLIT=True
        exit
    if DONT_SPLIT:
        counter=0
    else:
        # Format some youtube movies outputing duration as "xx:xx.xxxx s"
        p=re.compile(r'\.\d*\s*s')
        m=p.search(str_duration)
        try:
            str_duration=str_duration.replace(m.group(0),"")
            add=1
        except:
            pass
        duration=str_duration.split(":")
        s=int(duration[-1])
        try:
            m=int(duration[-2])
        except:
            m=0
        try:
            h=int(duration[-3])
        except:
            h=0
        total=h*3600+m*60+s+add
        print "\033[1;32mTotal time:\033[1;31m",total,"\033[1;39ms"
        counter = total/episode

    print "\033[1;32mTotal parts:\033[1;31m",counter+1,"\033[1;39m"
    for i in range(0,counter+1):
        if counter==0:
            os.system("ffmpeg -i "+fin+" -s "+str(width)+"x"+str(height)+" -ss "+str(i*episode)+" -t "+str(episode)+" -vcodec mpeg4 "+fout+".mp4")
        else:
            os.system("ffmpeg -i "+fin+" -s "+str(width)+"x"+str(height)+" -ss "+str(i*episode)+" -t "+str(episode)+" -vcodec mpeg4 "+fout+"["+str(i+1)+"].mp4")


Użycie ffmpega rozumie się samo przez się. Czemu exiftool? W celu wydobycia informacji o długości filmu. Problem był następujący. Komórka ma ograniczone zasoby pamięci i mocy obliczeniowej z tego powodu większe (ok. 10 minutowe) klipy nie zostają odtworzone. Wpadłem więc na pomysł, by ciąć film na 5-minutowe kawałki, a ponieważ wewnętrzny odtwarzać automatycznie przeskakuje do następnego klipu na liście po zakończeniu odtwarzania poprzedniego takie rozwiązanie się nawet sprawdza. Teoretycznie za pomocą tego skryptu można przerabiać nawet większe filmy np. divixy na serię 5 minutowych klipów, ale ja jedynie skrypt testowałem na filmach maksimum 15 minutowych. Jeśli dostępne są informacje o wymiarach kadru klip jest skalowany z zachowaniem proporcji do rozmiarów wyświetlacza telefonu. Zmniejsza to dodatkowo rozmiar filmu jeśli mamy do czynienia z ujęciem panoramicznym. Całość się nawet ładnie prezentuje i można spokojnie sobie obejrzeć jakiś film pełnometrażowy o ile wcześniej bateria nie wyzionie ducha ]:)

A tak to wygląda na telefonie (przepraszam za wygląd, ale blogger mi zmasakrował aspekt):



Na wypadek gdyby ktoś nie zauważył. Ta przerwa w filmie zanim bałwan płaci zielonymi portierowi to właśnie przeskok do następnego klipu.

środa, lipca 16, 2008

Defence

Kiedy w ubiegły piątek szedłem przez opolski dworzec pomyślałem "nie tak to sobie wyobrażałem". Nigdy nie jest tak jak to sobie wyobrażamy. Na przykład ja sobie nigdy nie wyobrażałem, że kiedyś pójdę w upalny czerwcowy poranek w czarnym garniturze przez zatłoczone miasto bez ani jednej kropli potu na skórze. Tak dla wyjaśnienia - od dzieciństwa strasznie pocą mi się dłonie. Próbowałem częstego mycia, antyperspirantów, a ostatnio nawet leku z chlorowodorotlenkiem glinu. Nic nie pomogło. U mnie to chyba ma podłoże nerwowe. A tu proszę - suche dłonie. Pewnie z nerwów. Każdy zresztą się w takiej chwili denerwuje. W końcu pracy magisterskiej broni się tylko raz w życiu (oczywiście pomijając tych co ciągną kilka kierunków). Wracając do tych wyobrażeń. Jak zaczynałem studia myślałem, że zrobię jakąś ciekawą pracę dyplomową i oczywiście ją świetnie obronię. Tak to już jest. Człowiek jest młody, ambity i ma głowę pełną marzeń, a na koniec spotyka rzeczywistość...

Do obrony uczyłem się otrzymywania α-aminokwasów za pomocą syntezy Streckera, metodą Hella-Volharda-Zielińskiego, redukcyjnego aminowania α-oksokwasów... Powtórzyłem sobie mechanizmy aktywacji grupy karboksylowej, a w szczególności za pomocą dicykloheksylokarbodiimidu. Potrenowałem różne strategie syntezy peptydów. Słowem - nastawiłem się na pytania w jakikolwiek sposób powiązane z syntezą moich hybryd peptydowych. A tu zonk - pytania z estrów i świeć facet oczami. Całe szczęście nie jestem taki głupi na jakiego wyglądam, więc coś wymyśliłem, ale z ogółu mojej wypowiedzi nie jestem zadowolony. Podobno nikt nigdy nie jest ze swojej odpowiedzi zadowolony, ale ja do siebie zawsze podchodzę wymagająco i tutaj trzeba po męsku przyznać, że dałem ciała. No cóż. Przynajmniej trochę otuchy przyniosły mi słowa "komisja egzaminacyjna ma zaszczyt oznajmić Panu, że przyznaje Panu tytuł magistra chemii...".

Ludzie sobie wyobrażają, że po takim czymś człowiek skacze z radości, chodzi 10 cm nad ziemią i zaraz potem upija się do nieprzytomności. No, ale chyba już uzgodniliśmy jak to z tymi wyobrażeniami bywa (chociaż z tym upijaniem to akurat trochę prawdy w tym jest ]:D ). W każdym razie ten rozdział mojego życia mogę już zamknąć. Teraz czas myśleć o dalszej przyszłości, a ta być może będzie łączyć to co lubię - chemię i informatykę. No, ale na razie nie zapeszajmy.

wtorek, lipca 15, 2008

Kitties

Nazbierało się przez te dwa tygodnie trochę przeżyć, które chciałbym spisać. Zacznę może od samego początku, od tych mniej miłych...


Niespodziewana radość tak samo człowieka ogłusza jak nagłe nieszczęście.
~ Charles Dickens

Nic nie zapowiadało by ten poranek różnił się od pozostałych. Poprzedni wieczór ciągnął się leniwie jak co dzień, a noc była tak samo ciemna jak zwykle. Wstałem, a właściwie wyrwałem się z łóżka, tak jak zwykle tj. z lapidarnym "O k***a! Zaspałem!" na ustach. Kolejna myśl jaka przebiegła mi przez głowę to "siadaj do kompa i pisz pracę - masz jeszcze 2 godziny". Tak też zrobiłem. Ruch myszką i na ekranie ukazał się rozdział pracy magisterskiej o azydkach fosforowych. Pół nocy nad tym siedziałem, zanim mnie sen zmógł. Nie ma to jak taki poranek - nie marnuje się godziny czasu i kawy na powolne przebudzenie tylko od razu skupia na tym co ważne. No więc siedziałem sobie zastanawiając nad kolejnym treściwym zdaniem, gdy usłyszałem cmokanie dochodzące obok z wersalki. Na niej leżała właśnie moja kotka Hilda wraz z czymś białym i to coś właśnie cmokało. Jak się okazało to włochate coś miało też rodzeństwo. Hilda w nocy zafundowała nam niespodziankę rodząc dwa kocięta. Nie byłoby w tym nic dziwnego gdyby nie to, że nikt nie wiedział o tym że jest w ciąży. Zadziwiające jak takie dwa małe włochate kłębki potrafią wnieść tyle radości w życie człowieka. Uskrzydlony tą radością porobiłem masę zdjęć i pokazywałem znajomym.

Picasa SlideshowPicasa Web AlbumsFullscreen


Popatrz jak wszystko szybko się zmienia, coś jest a później tego nie ma
człowiek jest tylko sumą oddechów, wiec nie mów mi że jest jakiś sposób
~ Sidney Polak feat. Pezet, "Otwieram wino"

Szczęście nigdy nie trwa wiecznie. Moje trwało dokładnie 3 dni. Przez te trzy dni moja kotka miała się naprawdę dobrze. Koszyk wyłożony kocykiem, od czasu do czasu trochę mięska, mleka też miała pod dostatkiem. A wszystko po to by miała jak najwięcej sił do karmienia młodych. Niestety świtu trzeciego dnia jeden kociak już nie doczekał. Drugi dołączył do pierwszego po południu tego samego dnia, gdy wróciłem z uczelni. Ciągle się zastanawiam czemu tak się stało. Przechłodzenie? Hilda nie dawała wystarczająco dużo mleka? Może przydusiła je podczas snu? Może czegoś nie dopatrzyłem? Nie trudno się domyśleć, że po takim przeżyciu człowiek wpada w refleksje nad egzystencjalizmem. Chodziłem zamyślony i przygnębiony przez tydzień, a sprawy nie ułatwiał widok Hildy w pustym już koszyku. Kiedy ją dostałem ustawiłem jej własny koszyk w pokoju. Jakoś nigdy nie mogłem jej nauczyć, by w nim spała. Gdy przeniosłem ją wraz z kociętami do koszyka od razu go zaakceptowała. A potem przez kilka dni jeszcze w nim siedziała. I niech mi ktoś teraz powie, że zwierzęta nie mają świadomości śmierci. Różnica pomiędzy nimi, a ludźmi polega na tym, że one szybciej zapominają...

A nam pozostają wspomnienia...