Byłem dzisiaj w górach. Jak zwykle po takiej wyprawie przychodzi czas dzielenia się zdjęciami. Obrobiwszy co potrzeba zostało mi do wysłania 71 MB. Spakować się tego za bardzo nie da, na płytkę pakować nie opłaca się... Zdecydowałem się wysłać to wszystko mailem. Ponieważ jednak przesyłanie kilkuste plików jest mocno niepraktyczne, spakowałem wszystko w kilka archiwów po 15 MB:
> 7z a rudawy.7z -mx=0 -v15mb *.jpg
Świetnie, mam teraz tylko 5 plików do wysłania. Kto jednak kiedyś wysyłał duże pliki przez maila doskonale wie, że wysyłają się one okropnie długo i często nie sposób jest wysłać wszystkiego na raz - trzeba cierpliwie plik po pliku ładować je na konto.
Ale! Od czego są biblioteki? Komenda
> yum search gmail
zdradziła mi, że Fedora oferuje między innymi następujący pakiet:
> python-libgmail.noarch : Library to provide access to Gmail via Python
Zainstalowałem, poszperałem nieco w dokumentacji i teraz pliki radośnie wgrały się na moje konto:
>>> import libgmail
>>> import getpass
>>> import glob
>>> ga = libgmail.GmailAcount(getpass.getpass("Podaj konto"), getpass.getpass("Podaj hasło"))
>>> ga.login()
>>> _7z = glob.glob("*7z")
>>> _7z
['rudawy.7z.003', 'rudawy.7z.001', 'rudawy.7z.004', 'rudawy.7z.005', 'rudawy.7z.002']
>>> map( lambda x: ga.storeFile( x, "rudawy" ), _7z )
I po sprawie :-)
sobota, lipca 26, 2008
piątek, lipca 18, 2008
Wyrafinowany sposób na wyjątek
Właśnie drogą eksperymentu doszedłem, jak zapętlić GHC... ale tak, by się zorientował i rzucił wyjątkiem :-)
Wystarczy nam taki kod:
> {-# OPTIONS_GHC -XRecursiveDo #-}
>
> module Main where
>
> import Control.Concurrent
> import Control.Monad.Fix
>
> loopChan :: IO (Chan ())
> loopChan = mdo chan <- dupChan chan
> return chan
>
> main = do
> c <- loopChan
> writeChan c ()
Kiedy spróbujemy go załadować do GHCi:
> Prelude> :l loop_channel.hs
> [1 of 1] Compiling LC ( loop_channel.hs, interpreted )
> Ok, modules loaded: LC.
> *LC> :type loopChan
> loopChan :: IO (Chan ())
> *LC> c <- loopChan
> *** Exception: <>
Lub wykonać:
> [Tener@laptener loop_chan]$ ghc --make loop_channel.hs
> [1 of 1] Compiling Main ( loop_channel.hs, loop_channel.o )
> Linking loop_channel ...
> [Tener@laptener loop_chan]$ ./loop_channel
> loop_channel: <>
To przytrafi nam się to samo: dostajemy wyjątek NonTermination. Co stanie się przy próbie uruchomienia tego kodu było dla mnie zagadką, gdy go pisałem - rzucenie tego wyjątku wydaje się być rozsądnym rozwiązaniem.
Wystarczy nam taki kod:
> {-# OPTIONS_GHC -XRecursiveDo #-}
>
> module Main where
>
> import Control.Concurrent
> import Control.Monad.Fix
>
> loopChan :: IO (Chan ())
> loopChan = mdo chan <- dupChan chan
> return chan
>
> main = do
> c <- loopChan
> writeChan c ()
Kiedy spróbujemy go załadować do GHCi:
> Prelude> :l loop_channel.hs
> [1 of 1] Compiling LC ( loop_channel.hs, interpreted )
> Ok, modules loaded: LC.
> *LC> :type loopChan
> loopChan :: IO (Chan ())
> *LC> c <- loopChan
> *** Exception: <
Lub wykonać:
> [Tener@laptener loop_chan]$ ghc --make loop_channel.hs
> [1 of 1] Compiling Main ( loop_channel.hs, loop_channel.o )
> Linking loop_channel ...
> [Tener@laptener loop_chan]$ ./loop_channel
> loop_channel: <
To przytrafi nam się to samo: dostajemy wyjątek NonTermination. Co stanie się przy próbie uruchomienia tego kodu było dla mnie zagadką, gdy go pisałem - rzucenie tego wyjątku wydaje się być rozsądnym rozwiązaniem.
wtorek, lipca 01, 2008
Założenie o zamkniętości świata
Po angielsku: Closed World Assumption, w skrócie CWA. Jego treść jest prosta: "To, czego nie potrafimy udowodnić, jest fałszywe".
Naukowcy wydają się być bardzo wybiórczy w stosowaniu tego założenia. Wielokrotnie odrzucano przedwcześnie teorie, które później okazywały się prawdziwe. Z drugiej strony wiele jest niepotwierdzonych teorii, które mają wielu zwolenników, choć nie ma do nich zbyt uczciwych przesłanek (patrz tutaj).
Powiedziawszy to, zastanówmy się nad hipotezą:
Hipoteza: Bóg istnieje.
Wielu naukowców ma jasno sprecyzowany pogląd na temat prawdziwości tej hipotezy. Co ciekawe, bardzo często ci z nich, którzy negują jej prawdziwość, pytają się "Jak to możliwe, by jakikolwiek naukowiec wierzył w istnienie Boga?". Ich najczęstszym argumentem za tym, że Bóg nie istnieje jest brak dowodów na jego istnienie. Niejawnie korzystają więc oni z CWA. A należy przecież pamiętać, że jest to tylko założenie - które w prawdziwym świecie nie jest prawdziwe! Czy to dowodzi istnienia Boga? Oczywiście nie. Myślę jednak, że wyjaśniłem moje poglądy na temat "dowodów przez brak dowodów na istnienie".
Osobiście uważam że Bóg istnieje i że jest Jego wolą, by przez cały okres istnienia świata nie powstał żaden trwały dowód na Jego istnienie. (Przez trwały rozumiem tutaj taki dowód, który można powtórzyć w dowolnym momencie wobec dowolnej osoby.)
Dlaczego? Istnienie dowodu trwałego przekreślałoby istotę wiary. Jaki jest sens wiary w coś, co można udowodnić?
Naukowcy wydają się być bardzo wybiórczy w stosowaniu tego założenia. Wielokrotnie odrzucano przedwcześnie teorie, które później okazywały się prawdziwe. Z drugiej strony wiele jest niepotwierdzonych teorii, które mają wielu zwolenników, choć nie ma do nich zbyt uczciwych przesłanek (patrz tutaj).
Powiedziawszy to, zastanówmy się nad hipotezą:
Hipoteza: Bóg istnieje.
Wielu naukowców ma jasno sprecyzowany pogląd na temat prawdziwości tej hipotezy. Co ciekawe, bardzo często ci z nich, którzy negują jej prawdziwość, pytają się "Jak to możliwe, by jakikolwiek naukowiec wierzył w istnienie Boga?". Ich najczęstszym argumentem za tym, że Bóg nie istnieje jest brak dowodów na jego istnienie. Niejawnie korzystają więc oni z CWA. A należy przecież pamiętać, że jest to tylko założenie - które w prawdziwym świecie nie jest prawdziwe! Czy to dowodzi istnienia Boga? Oczywiście nie. Myślę jednak, że wyjaśniłem moje poglądy na temat "dowodów przez brak dowodów na istnienie".
Osobiście uważam że Bóg istnieje i że jest Jego wolą, by przez cały okres istnienia świata nie powstał żaden trwały dowód na Jego istnienie. (Przez trwały rozumiem tutaj taki dowód, który można powtórzyć w dowolnym momencie wobec dowolnej osoby.)
Dlaczego? Istnienie dowodu trwałego przekreślałoby istotę wiary. Jaki jest sens wiary w coś, co można udowodnić?
sobota, maja 10, 2008
Gra w ósemkę
Znana jest gra logiczna w "Piętnastkę" - na planszy 4x4 jedno pole jest puste, pozostałe są ponumerowane liczbami od 1 do 15. Należy wychodząc z konfiguracji początkowej dojść do ustawienia:
1 | 2 | 3 | 4
5 | 6 | 7 | 8
9 | 10 | 11 | 12
13 | 14 | 15 | X
Zagadka jest dość trudna obliczeniowo, dlatego na pracowni z Programowania Logicznego rozwiązujemy prostszą wersję - grę w "Ósemkę", której zasady są analogiczne, lecz wszystko rozgrywa się na planszy 3x3. Jakież było moje zdziwienie, gdy okazało się, że przechodzi bardzo niekonstruktywne i krótkie rozwiązanie:
osemka( _, _, _ ).
A wszystko przez błąd sprawdzaczki :-)
Zabieram się do pisania rozwiązania zgodnego z treścią zadania.
1 | 2 | 3 | 4
5 | 6 | 7 | 8
9 | 10 | 11 | 12
13 | 14 | 15 | X
Zagadka jest dość trudna obliczeniowo, dlatego na pracowni z Programowania Logicznego rozwiązujemy prostszą wersję - grę w "Ósemkę", której zasady są analogiczne, lecz wszystko rozgrywa się na planszy 3x3. Jakież było moje zdziwienie, gdy okazało się, że przechodzi bardzo niekonstruktywne i krótkie rozwiązanie:
osemka( _, _, _ ).
A wszystko przez błąd sprawdzaczki :-)
Zabieram się do pisania rozwiązania zgodnego z treścią zadania.
piątek, kwietnia 11, 2008
Hardware & Software
Czyli po polsku sprzęt i oprogramowanie. Ostatnio, w styczniu 2008, kupiłem laptopa. Mówiąc krótko:
Aristo Prestige 1700, GeForce 8600M GS, 2Gb RAM, Core 2 Duo 7500, 250 Gb HDD, matryca 15 cali glare.
Zadowolony? Jak najbardziej. Korzystałem okazjonalnie z innych laptopów; w tym podoba mi się szczególnie:
- wygodna klawiatura, co w laptopach bywa zmorą
- wytrzymała, niewycierająca się obudowa
- duży dysk twardy
- niezła karta graficzna, choć nie jest to GT to i tak Wiedźmin śmiga.
- bezawaryjna jak do tej pory praca
- porządna (jak na moje wymagania) karta dźwiękowa
Sprzęt nie jest jednak najważniejszy, o wiele więcej potęgi drzemie w oprogramowaniu.
Systemy:
- Fedora 8, podstawowy system
- Windows XP Home Edition, głównie do gier i AutoCada (którego nie używam ja, tylko K., a ona robi to sporadycznie).
Windowsa mam bez graficznych wodotrysków w stylu CrystalXP. Wyłączony jest nawet domyślny motyw XP na rzecz ascetycznego, szarego z Windowsa 2000. Powód? Wszystko to blaknie i wygląda niepoważnie w porównaniu z Compizem (Vista też). W zamierzeniu ma to być system zapasowy, ale dobrze skonfigurowany. Stąd obecność interpretera pythona, cygwina, Visual Studio 2008 (z MSDN'a), Total Commandera, Emacsa, OpenOffice'a, Firefoxa -- wszystko to skonfigurowane, gotowe do użytku i nieużywane. Bo na Linuxie jest o wiele fajniej!
Fedora 8, aktualne wydanie jednej z największych dystrybucji Linuxa, w praktyce to to samo co komercyjny Red Hat (tzn. w mojej praktyce przy moich potrzebach). Korzystam z zaskakująco niewielu programów:
- Emacs - wielofunkcyjny, programowalny edytor. Nadaje się szczególnie dobrze do Haskella, C, C++, Pythona, Prologa, ...
- darcs - system kontroli wersji, bardzo przyjemny
- rdiff-backup - wymagający minimalnej konfiguracji, lecz potężny program do backupów
- xmonad - fenomenalny menadżer okien, bardzo wygodny
- Total Commander - tak, pod wine'm chodzi :-)
- foobar2000 - wolę go od mplayer'a czy xmms'a. Też chodzi pod wine'm.
- Swiftfox, czyli zoptymalizowany pod konkretną architekturę Firefox
- workrave - program ograniczający korzystanie z klawiatury i przypominający o odpoczynkach
- narzędzia wbudowane w Linuxa, o instalację których nie muszę się troszczyć
O xmonad i Emacsie wypada napisać osobne posty - już wkrótce!
Tymczasem wracam do chorowania. Dopadła mnie jakaś grypa...
Aristo Prestige 1700, GeForce 8600M GS, 2Gb RAM, Core 2 Duo 7500, 250 Gb HDD, matryca 15 cali glare.
Zadowolony? Jak najbardziej. Korzystałem okazjonalnie z innych laptopów; w tym podoba mi się szczególnie:
- wygodna klawiatura, co w laptopach bywa zmorą
- wytrzymała, niewycierająca się obudowa
- duży dysk twardy
- niezła karta graficzna, choć nie jest to GT to i tak Wiedźmin śmiga.
- bezawaryjna jak do tej pory praca
- porządna (jak na moje wymagania) karta dźwiękowa
Sprzęt nie jest jednak najważniejszy, o wiele więcej potęgi drzemie w oprogramowaniu.
Systemy:
- Fedora 8, podstawowy system
- Windows XP Home Edition, głównie do gier i AutoCada (którego nie używam ja, tylko K., a ona robi to sporadycznie).
Windowsa mam bez graficznych wodotrysków w stylu CrystalXP. Wyłączony jest nawet domyślny motyw XP na rzecz ascetycznego, szarego z Windowsa 2000. Powód? Wszystko to blaknie i wygląda niepoważnie w porównaniu z Compizem (Vista też). W zamierzeniu ma to być system zapasowy, ale dobrze skonfigurowany. Stąd obecność interpretera pythona, cygwina, Visual Studio 2008 (z MSDN'a), Total Commandera, Emacsa, OpenOffice'a, Firefoxa -- wszystko to skonfigurowane, gotowe do użytku i nieużywane. Bo na Linuxie jest o wiele fajniej!
Fedora 8, aktualne wydanie jednej z największych dystrybucji Linuxa, w praktyce to to samo co komercyjny Red Hat (tzn. w mojej praktyce przy moich potrzebach). Korzystam z zaskakująco niewielu programów:
- Emacs - wielofunkcyjny, programowalny edytor. Nadaje się szczególnie dobrze do Haskella, C, C++, Pythona, Prologa, ...
- darcs - system kontroli wersji, bardzo przyjemny
- rdiff-backup - wymagający minimalnej konfiguracji, lecz potężny program do backupów
- xmonad - fenomenalny menadżer okien, bardzo wygodny
- Total Commander - tak, pod wine'm chodzi :-)
- foobar2000 - wolę go od mplayer'a czy xmms'a. Też chodzi pod wine'm.
- Swiftfox, czyli zoptymalizowany pod konkretną architekturę Firefox
- workrave - program ograniczający korzystanie z klawiatury i przypominający o odpoczynkach
- narzędzia wbudowane w Linuxa, o instalację których nie muszę się troszczyć
O xmonad i Emacsie wypada napisać osobne posty - już wkrótce!
Tymczasem wracam do chorowania. Dopadła mnie jakaś grypa...
Spełnialność formuł logicznych
Ogólnie rzecz biorąc problem spełnialności formuł logicznych jest bardzo złożony pod względem obliczeniowym. Przy tym naiwny algorytm który rozwiązuje ten problem jest bardzo prosty. W Prologu można go zapisać tak:
Korzystamy tutaj mocno z wbudowanego w Prolog backtrackingu. Możemy sprawdzać spełnialność formuł w stylu
Przykładowa sesja:
Jak widać Prolog bywa zręcznym narzędziem do wyrażania pewnych algorytmów.
:- op(900,fy,neg).
:- op(1000,yfx,and).
:- op(1010,yfx,or).
sat( X ) :- eval( X, true ),!.
eval( true, true ) :- !.
eval( false, false ).
eval( neg X, true ) :- eval( X, false ).
eval( neg X, false ) :- eval( X, true ), !.
eval( X or Y, true ) :- ( eval( X, true ) ; eval( Y, true ) ), !.
eval( X and Y, true ) :- eval( X, true ), eval( Y, true ), !.
eval( X, false ) :- eval( X, true ), !, fail.
eval( _, false ).
Korzystamy tutaj mocno z wbudowanego w Prolog backtrackingu. Możemy sprawdzać spełnialność formuł w stylu
X or Y and neg (Y and X)
Przykładowa sesja:
?- [sat].
% sat compiled 0.00 sec, 2,936 bytes
Yes
?- sat( neg neg neg X ).
X = false ;;
No
?- sat( neg neg neg X and neg Y).
X = false,
Y = false ;;
No
?- sat( neg neg neg X and neg Y and Z).
X = false,
Y = false,
Z = true ;;
No
?- sat( X and neg X ).
No
?- sat( _ and neg _ ).
Yes
?-
% halt
Jak widać Prolog bywa zręcznym narzędziem do wyrażania pewnych algorytmów.
czwartek, kwietnia 10, 2008
Prolog nie jest taki zły
W poniedziałek stoczyłem prawdziwą batalię, usiłując stworzyć poprawnie działające predykaty wyższego rzędu rekurencyjnie przechodzące po termie aż zajdzie jakiś warunek. Byłoby więc to coś w rodzaju metamorfizmu. Moje wysiłki spełzły jednak na niczym, skończyłem wieczorem z funkcją:
Najogólniej rzecz biorąc, nie działała ona tak jak powinna. To znaczy coś tam niby liczyła, ale źle, a co gorsze była okropnie długa (jak widać) i beznadziejna do debugowania. Ponadto wymagała ingerencji w bazę predykatów Prologa, co jest moim zdaniem brzydkie i psuje trochę wydajność. Zakończyłem nieudaną sesję programistyczną mocno zniesmaczony Prologiem, a konkretnie jego odpornością na próby metaprogramowania.
Dzisiaj jednak dokopałem się do paru predykatów, które znacząco uprościły konstrukcję mapRec'a:
Nie taki Prolog straszny jak go malują :-)
Bazując na poznanej wiedzy napisałem wreszcie simp'a, czyli predykat upraszczający wyrażenia arytmetyczne. Jest to jedno z zadań na pracownię z Programowania w Logice. Wyszedł niedługi i raczej nie ma zbyt wielu błędów :-) Leży tutaj.
Do uruchomienia potrzebny jest interpreter Prologa. Ja używam SWI-Prologa, ale program powinien działać na każdym sensownym interpreterze.
Dla tych którzy nie mieli nigdy doczynienia z Prologiem, oto jak wygląda przykładowa sesja:
Choć Prolog bywa wkurzający, to jednak przyjemnie jest nauczyć się czegoś nowego.
mapRec( Pred, Arg, OutArg ) :-
% tworzymy nowy predykat pomocniczy
gensym( partial, UNIQ ),
Left =.. [ UNIQ, X, Y ],
PartialMapRec = ( Left :- mapRec( Pred, X, Y ) ),
asserta( PartialMapRec, Ref ),
% rozkładamy term wejściowy
Arg =.. [ Comp, Op | Args ],
map( UNIQ, Args, Args2 ), % dla termów atomowych mamy podstawę indukcji: map nic nie robi na pustej liście
% składamy term ponownie
Arg2 =.. [ Comp, Op | Args2 ],
% aplikujemy Pred i zwracamy wynik
F =.. [ Pred, Arg2, OutArg ],
F,
erase( Ref ), % kasujemy predykat pomocniczy
!.
mapRec( _, Arg, Arg ) :-
write( final ), write(' '), write( Arg ), nl,
final( Arg ), !.
Najogólniej rzecz biorąc, nie działała ona tak jak powinna. To znaczy coś tam niby liczyła, ale źle, a co gorsze była okropnie długa (jak widać) i beznadziejna do debugowania. Ponadto wymagała ingerencji w bazę predykatów Prologa, co jest moim zdaniem brzydkie i psuje trochę wydajność. Zakończyłem nieudaną sesję programistyczną mocno zniesmaczony Prologiem, a konkretnie jego odpornością na próby metaprogramowania.
Dzisiaj jednak dokopałem się do paru predykatów, które znacząco uprościły konstrukcję mapRec'a:
mapRec( Pred, Arg, OutArg ) :-
Arg =.. [ Comp, Op | Args ],
maplist( mapRec( Pred ), Args, Args2 ),
Arg2 =.. [ Comp, Op | Args2 ],
apply( Pred, Arg2, OutArg ),
!.
mapRec( _, Arg, Arg ) :-
write( final ), write(' '), write( Arg ), nl,
final( Arg ), !.
Nie taki Prolog straszny jak go malują :-)
Bazując na poznanej wiedzy napisałem wreszcie simp'a, czyli predykat upraszczający wyrażenia arytmetyczne. Jest to jedno z zadań na pracownię z Programowania w Logice. Wyszedł niedługi i raczej nie ma zbyt wielu błędów :-) Leży tutaj.
Do uruchomienia potrzebny jest interpreter Prologa. Ja używam SWI-Prologa, ale program powinien działać na każdym sensownym interpreterze.
Dla tych którzy nie mieli nigdy doczynienia z Prologiem, oto jak wygląda przykładowa sesja:
?- [simp].
% simp compiled 0.00 sec, 11,264 bytes
Yes
?- simp( x-x, EXP ).
EXP = 0 ;;
No
?- simp( x-x*1*2*3, EXP ).
EXP = x* -5 ;;
No
?- simp( 1*2*(1+1+1)*x-x*1*2*3, EXP ).
EXP = 0 ;;
No
?- simp( x*(y+z*(1+p)-p*(x-z)), EXP ).
EXP = - (p* (x*x))+ (p* (x*z)*2+ (x*y+x*z)) ;;
No
?-
% halt
Choć Prolog bywa wkurzający, to jednak przyjemnie jest nauczyć się czegoś nowego.
poniedziałek, kwietnia 07, 2008
Budzik, revisited
Kiedyś pisałem budziki w C (tu, tu), albo z wykorzystaniem wtyczek do foobar'a. Ten czas już minął! Nigdy więcej niskopoziomowego C do takich zadań.
W międzyczasie miałem program napisany w Pythonie, ale gdzieś mi się zapodział. Nie potrzebuję go już więcej bo oto jest - Budzik 3000! Innowacyjne rozwiązanie, nie wymaga żadnej konfiguracji i jest w pełni kompatybilne z czymkolwiek posiadającym konsolę, program sleep i mplayer (np. mój Linux).
Szybkie, dokładne i wygodne. Zostawić w konsoli i iść spać...
W międzyczasie miałem program napisany w Pythonie, ale gdzieś mi się zapodział. Nie potrzebuję go już więcej bo oto jest - Budzik 3000! Innowacyjne rozwiązanie, nie wymaga żadnej konfiguracji i jest w pełni kompatybilne z czymkolwiek posiadającym konsolę, program sleep i mplayer (np. mój Linux).
sleep 7h 30m && mplayer ~/budzik/*.mp3
Szybkie, dokładne i wygodne. Zostawić w konsoli i iść spać...
Minus jeden, czyli co aktualnie porabiam
Studiuję aktualnie w -1, zwanym też ii, II, albo Instytutem Informatyki Uniwersytetu Wrocławskiego. Fajnie nie?
Ano fajnie, bo wydział należy do tych wybitnie fajnych. Ficzery:
- za wyjątkiem 8 obowiązkowych przedmiotów (po 2 przez pierwsze 4 semestry) program studiów jest układany samodzielnie przez studenta. Chcę się zapisać na przedmiot XYZ? Robię to. Chcę się z niego wypisać? Przez pierwsze dwa tygodnie semestru można to robić bez konsekwencji.
- wysoki poziom. Serio, nie żartuję - jest się tu czego nauczyć i daje to ogromną satysfakcję. Później także dobry start na rynku pracy, ale to już szczegół :-) Kilku absolwentów pracuje nawet dla Google czy M$, inni założyli jakiś portal społecznościowy
- atmosfera, nie tylko dzięki klimatyzacji w budynku. Wśród studentów panuje spora różnorodność osobowości i zawsze znajdzie się ktoś, z kim można porozmawiać.
- mniej ważne, ale jednak: fajny, nowy budynek położony dogodnie przy Moście Grunwaldzkim.
Szczęśliwie zaliczyłem pierwszy rok i jestem aktualnie na 4-tym semestrze. Nie mam nawet tak u nas popularnej poprawki z Programowania :-) Choć być może uda mi się coś wymyślić z JFiZo (Języki Formalne i ZŁOżoność Obliczeniowa), którego rokrocznie zdaje jakieś 30% osób. To raczej mało, szczególnie że wiele z tych, którym się udaje, robi ten przedmiot nie po raz pierwszy. AiSD (Algorytmy i Struktury Danych) też są obiecujące w tym względzie.
Przedmioty na których najlepiej się bawiłem? Będzie jakoś tak:
1. Programowanie (Haskell rządzi!)
2. Programowanie funkcjonalne (niefajny był tam OCaml, ale poznałem podstawy tego paradygmatu)
3. Przetważanie Języka Naturalnego (Natural Language Processing, NLP) (program do pisanie wierszy)
4. Kurs C (grupa zaawansowana: graficzna gra w Sudoku, gra 3D, kalkulator+wykresy 3D, znajdowanie trasy przejazdu komunikacją miejską we Wrocławiu)
Na razie to tyle, stay tuned.
Ano fajnie, bo wydział należy do tych wybitnie fajnych. Ficzery:
- za wyjątkiem 8 obowiązkowych przedmiotów (po 2 przez pierwsze 4 semestry) program studiów jest układany samodzielnie przez studenta. Chcę się zapisać na przedmiot XYZ? Robię to. Chcę się z niego wypisać? Przez pierwsze dwa tygodnie semestru można to robić bez konsekwencji.
- wysoki poziom. Serio, nie żartuję - jest się tu czego nauczyć i daje to ogromną satysfakcję. Później także dobry start na rynku pracy, ale to już szczegół :-) Kilku absolwentów pracuje nawet dla Google czy M$, inni założyli jakiś portal społecznościowy
- atmosfera, nie tylko dzięki klimatyzacji w budynku. Wśród studentów panuje spora różnorodność osobowości i zawsze znajdzie się ktoś, z kim można porozmawiać.
- mniej ważne, ale jednak: fajny, nowy budynek położony dogodnie przy Moście Grunwaldzkim.
Szczęśliwie zaliczyłem pierwszy rok i jestem aktualnie na 4-tym semestrze. Nie mam nawet tak u nas popularnej poprawki z Programowania :-) Choć być może uda mi się coś wymyślić z JFiZo (Języki Formalne i ZŁOżoność Obliczeniowa), którego rokrocznie zdaje jakieś 30% osób. To raczej mało, szczególnie że wiele z tych, którym się udaje, robi ten przedmiot nie po raz pierwszy. AiSD (Algorytmy i Struktury Danych) też są obiecujące w tym względzie.
Przedmioty na których najlepiej się bawiłem? Będzie jakoś tak:
1. Programowanie (Haskell rządzi!)
2. Programowanie funkcjonalne (niefajny był tam OCaml, ale poznałem podstawy tego paradygmatu)
3. Przetważanie Języka Naturalnego (Natural Language Processing, NLP) (program do pisanie wierszy)
4. Kurs C (grupa zaawansowana: graficzna gra w Sudoku, gra 3D, kalkulator+wykresy 3D, znajdowanie trasy przejazdu komunikacją miejską we Wrocławiu)
Na razie to tyle, stay tuned.
Podpalmy żyrafę na nowo!
Czyli reaktywacja bloga :-)
Nosiłem się z tym zamiarem od jakiegoś czasu, z kilku powodów:
- w moim życiu dzieje się sporo rzeczy a pamięć mam krótką;
- fajnie podzielić się tym, co właśnie się odkryło, dowiedziało itp.
- lubię pisać, a ostatnio nie miałem do tego wielu okazji
- były inne powody, ale aktualnie ich nie pamiętam :-)
Plan na najbliższe kilka postów:
1. Opisać co aktualnie robię
2. Najnowsze zmiany w sprzęcie - kupno laptopa
3. Moja konfiguracja tegoż sprzętu
4. Coś o xmonad
5. Coś o workrave
6. Wpis o zespole/projekcie Ayreon
Co potem? Ha! Któż to może wiedzieć?
Na razie nie zmieniam wyglądu bloga, zaktualizowałem tylko linki. Szczególnie polecam xkcd!
Edit: eksperymentalnie włączam reklamy. Gdyby komuś przeszkadzały, to są odpowiednie wtyczki do Firefoxa...
Nosiłem się z tym zamiarem od jakiegoś czasu, z kilku powodów:
- w moim życiu dzieje się sporo rzeczy a pamięć mam krótką;
- fajnie podzielić się tym, co właśnie się odkryło, dowiedziało itp.
- lubię pisać, a ostatnio nie miałem do tego wielu okazji
- były inne powody, ale aktualnie ich nie pamiętam :-)
Plan na najbliższe kilka postów:
1. Opisać co aktualnie robię
2. Najnowsze zmiany w sprzęcie - kupno laptopa
3. Moja konfiguracja tegoż sprzętu
4. Coś o xmonad
5. Coś o workrave
6. Wpis o zespole/projekcie Ayreon
Co potem? Ha! Któż to może wiedzieć?
Na razie nie zmieniam wyglądu bloga, zaktualizowałem tylko linki. Szczególnie polecam xkcd!
Edit: eksperymentalnie włączam reklamy. Gdyby komuś przeszkadzały, to są odpowiednie wtyczki do Firefoxa...
środa, maja 24, 2006
Wakacje...
Tak, tak, wakacje już się rozpoczęły! Przynajmniej dla mnie...
Będzie to dla mnie, wbrew pozorom, bardzo zajęty okres, być może w większym nawet stopniu niż w trakcie roku szkolnego. Równocześnie jednak nieporównywalnie od niego przyjemniejszy.
Moje plany? Wizje? Pomysły? Mam ich kilka. Mimo wszystko, po części jadę autobusem... linii "Rnd":

Szerokiej drogi mat-fizy i nie tylko!
Będzie to dla mnie, wbrew pozorom, bardzo zajęty okres, być może w większym nawet stopniu niż w trakcie roku szkolnego. Równocześnie jednak nieporównywalnie od niego przyjemniejszy.
Moje plany? Wizje? Pomysły? Mam ich kilka. Mimo wszystko, po części jadę autobusem... linii "Rnd":
Szerokiej drogi mat-fizy i nie tylko!
sobota, maja 13, 2006
Mat(ura/ematyka)
Ach tak, matura z matmy. Jakoś poszło - aczkolwiek nie obyło się bez błędów. Poziom podstawowy był prosty, rozszerzony wymagał znacznie więcej energii. Swoją drogą - jestem za obowiązkową maturą z matematyki. Chociażby po to, aby obyło się bez takich przypadków liczenia 30%... ;-)
Promocja w Tesco...
Tymczasem zaś - fizyka i ustny polski.
Tymczasem zaś - fizyka i ustny polski.
poniedziałek, maja 08, 2006
Oral
Uczyli ustna - matura z angielskiego. Przyszedłem dzisiaj na 13:00, o 15:00 byłem w domu... w sumie jedna z najprzyjemniejszych części jak sądzę :) Dostałem 20 na 20 punktów, czyli 100%... :D
czwartek, maja 04, 2006
Ciepełko
Ach, matura, matura, matura, matura, matura...
Czekanie, arkusz, bułka, grzesiek w czekoladzie, telefon, bułka, czekanie, arkusz...
Cóż mam powiedzieć? Zmęczyłem się tym polskim i tyle.
Dwa razy pierwszy temat. Za jakiś czas pójdę oglądać film (po angielsku, ja jutro).
Pozytywne jest to, że nie mam negatywnych uwag ;-)
Swoją drogą to jakaś ciekawa zależność: na zewnątrz ciepełko i na maturze ciepełko.
Czekanie, arkusz, bułka, grzesiek w czekoladzie, telefon, bułka, czekanie, arkusz...
Cóż mam powiedzieć? Zmęczyłem się tym polskim i tyle.
Dwa razy pierwszy temat. Za jakiś czas pójdę oglądać film (po angielsku, ja jutro).
Pozytywne jest to, że nie mam negatywnych uwag ;-)
Swoją drogą to jakaś ciekawa zależność: na zewnątrz ciepełko i na maturze ciepełko.
wtorek, kwietnia 25, 2006
Szkoła medialna
Zrobione dziś w szkole zdjęcia można obejrzeć w galerii na stronie:
http://www.matfiz2lo.yoyo.pl/
Sukcesywnie będę tam dodawać różne fotografie. Filmiki będę z kolei dodawał do serwisu video.google.com. Link do znalezienia na powyższej stronie.
Edycja:
Zapomniałem dodać, że oryginały w znacznie lepszej rozdzielczości mogę przegrać na dowolną płytkę - zajmują ok 185 Mb.
Edycja(2):
Warto obejrzeć także stronkę z filmikami Śliska. "Nawiedzona Szatnia","Intro","Oż!"...
www.dropshots.com/matfiz
http://www.matfiz2lo.yoyo.pl/
Sukcesywnie będę tam dodawać różne fotografie. Filmiki będę z kolei dodawał do serwisu video.google.com. Link do znalezienia na powyższej stronie.
Edycja:
Zapomniałem dodać, że oryginały w znacznie lepszej rozdzielczości mogę przegrać na dowolną płytkę - zajmują ok 185 Mb.
Edycja(2):
Warto obejrzeć także stronkę z filmikami Śliska. "Nawiedzona Szatnia","Intro","Oż!"...
www.dropshots.com/matfiz
poniedziałek, kwietnia 24, 2006
Już tylko miesiąc
wtorek, kwietnia 18, 2006
Życie
Ach życie...
Ślizgając się po powierzchni realizmu dochodzę do wniosku, że najsilniej odczuwa się wiosnę gdy po sześciu zegarowych godzinach matematyki wychodzi się z kochaną osobą w słoneczny dzień. Lub też gdy spaceruje się po Parku Południowym i nie jest się sam.
Wczoraj wyjechałem do Wrocławia, wróciłem dziś mniej więcej w okolicach 20:30. Przy okazji stwierdziłem po raz kolejny, że pociągi relacji Wrocław-Wałbrzych oddziałują z cząstkami v indukując pole nasenne. Musiałem uważać żeby nie przegapić stacji...
Tymczasem przymierzam się do lekkich zmian w wyglądzie strony. Czas pokaże co się z tego ziści. Z nieoficjalnych źródeł mogę przekazać, że pojawi się tu i ówdzie cząstka v i może jakaś Żyrafa Rasa (v).
Tak, wiem, że smucicie się że już kończe ten post...

"Pa!", jako rzecze Lama.
Ach, byłbym zapomniał. Nowy Vault!
"Rozprężę szeroko ramiona,
Nabiorę w płuca porannego wiewu,
W ziemię się skłonię błękitnemu niebu
I krzyknę, radośnie krzyknę :
- Jakie to szczęście, że krew jest czerwona !"
Ślizgając się po powierzchni realizmu dochodzę do wniosku, że najsilniej odczuwa się wiosnę gdy po sześciu zegarowych godzinach matematyki wychodzi się z kochaną osobą w słoneczny dzień. Lub też gdy spaceruje się po Parku Południowym i nie jest się sam.
Wczoraj wyjechałem do Wrocławia, wróciłem dziś mniej więcej w okolicach 20:30. Przy okazji stwierdziłem po raz kolejny, że pociągi relacji Wrocław-Wałbrzych oddziałują z cząstkami v indukując pole nasenne. Musiałem uważać żeby nie przegapić stacji...
Tymczasem przymierzam się do lekkich zmian w wyglądzie strony. Czas pokaże co się z tego ziści. Z nieoficjalnych źródeł mogę przekazać, że pojawi się tu i ówdzie cząstka v i może jakaś Żyrafa Rasa (v).
Tak, wiem, że smucicie się że już kończe ten post...
"Pa!", jako rzecze Lama.
Ach, byłbym zapomniał. Nowy Vault!
niedziela, kwietnia 16, 2006
Budzik
Dziś trochę inaczej.
Może się okazać trochę niedokładny ale trudno się mówi.
#include "time.h"
#include "stdlib.h"
int main()
{
int sec = 1;
int min = 60*sec;
int h = 60*min;
sleep(4*h+30*min);
system("./foobar2000.exe budzenie.fpl");
return 0;
}
Może się okazać trochę niedokładny ale trudno się mówi.
wtorek, kwietnia 11, 2006
Tytuł
Sądziłem, że gorszego tytułu od "Pierwszy post" wymyślić się nie da. A jednak... Nic nie przychodzi mi do głowy, więc niech tak zostanie.
Na wstępie chciałbym podziękować tym wszystkim, którzy wyrazili swoją opinię w komentarzach. Bardzo się z nich cieszę :-)
Jutro (choć to prawie dzisiaj) zamierzam przejść się do fotografa po zdjęcia "do dyplomu". Z tej okazji odszukałem swoje zdjęcie na komputerze; możecie je od dzisiaj obejrzeć w moim profilu. Wiem, i tak większość z Was wie jak wyglądam, ale tak na wszelki wypadek... ;-)
W każdym razie jutro pojawię się w szkole na bardzo krótko, właśnie w związku z owymi wspomnianymi już zdjęciami. Muszę je do jutra donieść prof... hmm... może zamiast Ś. nazwiemy ją, dajmy na to, Żyrafą? 'Ś.' jakoś mi zbrzydło.
Dla tych, którzy jeszcze nie wiedzą: pojawił się nowy Vault (link po prawej). Jest on aluzją do tego(ang) opowiadania.
Co jeszcze? Nie wiem. Zmęczony jestem. Wiem, marudzę...
Miałem dzisiaj w nocy sen, który o dziwo nadal pamiętam. Nie potrafię sobie przypomnieć niektórych odczuć mu towarzyszących ale jest z nimi tak, jak z przyjemnością ze zjedzenia czegoś; wiem że mi smakowało, potrafię sobie przypomnieć ten smak, ale samego odczucia przyjemności już nie.
Sądzę, że "materiałem stymulującym" (patrz: matury ustne z języków obcych) do snu stały się dwa opowiadania Frederika Pohla (bardzo podoba mi się jego styl): 23 słowa i Dzień Milionowy. Nie chcę tutaj przytaczać ich treści, lecz w ogólnym zarysie pierwsze mówi o człowieku posiadającym zdolności nadludzkie, drugie zaś o świecie ludzi za tysiąc lat (milionowy dzień AC). Kto chce niech da znać.
Zaś co do treści... mogłem poruszać się z dużą prędkością po galaktyce. Ktoś powiedział, że tak naprawdę wszystko (to znaczy inne galaktyki) jest bliżej niż wygląda, a to obłoki międzygwiezdne zakrzywiają czasoprzestrzeń tak, że wydaje się inaczej. Widziałem znajomy mi obraz galaktyki... który nagle "wyprostował" się. I wiedziałem że ten drugi jest prawdziwy. Gdy wylądowałem w łóżku, które natenczas było jedynym sprzętem, którego byłem świadomy; było jakby miejscem na którym mogłem usiąść by obserwować dalej galaktykę, obdarowany zdolnością podobną do tej, którą posiadał pewien bohater książkowy (o tej porze ciężko jest mi skojarzyć tytuł i imię postaci; na pewno był magiem, chciał zostać bogiem... jego oczy były jak klepsydry... O! Cykl powieści to "Dragonlance", ale bohatera dalej nie pamiętam). Gdy spojrzałem na niebo i galaktykę (skupioną wizualnie w obszarze kilkunastu stopni, jakbym patrzył się z przestrzeni niedaleko czarnej dziury), widziałem po kolei stadia ewolucji gwiazd. Całkiem ładne to fajerwerki były.
Było coś jeszcze, ale tego na pewno nie umieszczę w blogu.
Dość już na dzisiaj. Przez ten sen zrobił się z tego posta prawdziwy ślimak. Patyk zasnął już na stojąco...
Dobranoc.
Na wstępie chciałbym podziękować tym wszystkim, którzy wyrazili swoją opinię w komentarzach. Bardzo się z nich cieszę :-)
Jutro (choć to prawie dzisiaj) zamierzam przejść się do fotografa po zdjęcia "do dyplomu". Z tej okazji odszukałem swoje zdjęcie na komputerze; możecie je od dzisiaj obejrzeć w moim profilu. Wiem, i tak większość z Was wie jak wyglądam, ale tak na wszelki wypadek... ;-)
W każdym razie jutro pojawię się w szkole na bardzo krótko, właśnie w związku z owymi wspomnianymi już zdjęciami. Muszę je do jutra donieść prof... hmm... może zamiast Ś. nazwiemy ją, dajmy na to, Żyrafą? 'Ś.' jakoś mi zbrzydło.
Dla tych, którzy jeszcze nie wiedzą: pojawił się nowy Vault (link po prawej). Jest on aluzją do tego(ang) opowiadania.
Co jeszcze? Nie wiem. Zmęczony jestem. Wiem, marudzę...
Miałem dzisiaj w nocy sen, który o dziwo nadal pamiętam. Nie potrafię sobie przypomnieć niektórych odczuć mu towarzyszących ale jest z nimi tak, jak z przyjemnością ze zjedzenia czegoś; wiem że mi smakowało, potrafię sobie przypomnieć ten smak, ale samego odczucia przyjemności już nie.
Sądzę, że "materiałem stymulującym" (patrz: matury ustne z języków obcych) do snu stały się dwa opowiadania Frederika Pohla (bardzo podoba mi się jego styl): 23 słowa i Dzień Milionowy. Nie chcę tutaj przytaczać ich treści, lecz w ogólnym zarysie pierwsze mówi o człowieku posiadającym zdolności nadludzkie, drugie zaś o świecie ludzi za tysiąc lat (milionowy dzień AC). Kto chce niech da znać.
Zaś co do treści... mogłem poruszać się z dużą prędkością po galaktyce. Ktoś powiedział, że tak naprawdę wszystko (to znaczy inne galaktyki) jest bliżej niż wygląda, a to obłoki międzygwiezdne zakrzywiają czasoprzestrzeń tak, że wydaje się inaczej. Widziałem znajomy mi obraz galaktyki... który nagle "wyprostował" się. I wiedziałem że ten drugi jest prawdziwy. Gdy wylądowałem w łóżku, które natenczas było jedynym sprzętem, którego byłem świadomy; było jakby miejscem na którym mogłem usiąść by obserwować dalej galaktykę, obdarowany zdolnością podobną do tej, którą posiadał pewien bohater książkowy (o tej porze ciężko jest mi skojarzyć tytuł i imię postaci; na pewno był magiem, chciał zostać bogiem... jego oczy były jak klepsydry... O! Cykl powieści to "Dragonlance", ale bohatera dalej nie pamiętam). Gdy spojrzałem na niebo i galaktykę (skupioną wizualnie w obszarze kilkunastu stopni, jakbym patrzył się z przestrzeni niedaleko czarnej dziury), widziałem po kolei stadia ewolucji gwiazd. Całkiem ładne to fajerwerki były.
Było coś jeszcze, ale tego na pewno nie umieszczę w blogu.
Dość już na dzisiaj. Przez ten sen zrobił się z tego posta prawdziwy ślimak. Patyk zasnął już na stojąco...
niedziela, kwietnia 09, 2006
Home, sweet home...
Wybaczcie mi ten makaronizm (czy też może anglicyzm?) ale dopiero przed chwilą wróciłem do domu. Nie żebym żałował dzisiejszego wyjazdu do Wrocławia - wręcz przeciwnie! Jestem jedynie trochę zmęczony.
Wypróbowałem dziś nowy budzik: komputer+foobar2000(program muzyczny)+scheduler(wtyczka do foo). Całkiem skuteczny, budzi w ciągu sekundy... przy odpowiednio ustawionej głośności ;-) Wolałem jednak obudzić się odrobinę dłużej a łagodniej. I tak zdążyłem.
NIE Pozwolę sobie w tym miejscu zaprezentować rysunku imć Koguta pt. "Mała owieczka ściąga obrus".
Nie mam nawet siły szukać niczego w zamian... wybaczcie.
Idę uczyć się na ostatni w szkole sprawdzian z matmy...
Wypróbowałem dziś nowy budzik: komputer+foobar2000(program muzyczny)+scheduler(wtyczka do foo). Całkiem skuteczny, budzi w ciągu sekundy... przy odpowiednio ustawionej głośności ;-) Wolałem jednak obudzić się odrobinę dłużej a łagodniej. I tak zdążyłem.
Nie mam nawet siły szukać niczego w zamian... wybaczcie.
Idę uczyć się na ostatni w szkole sprawdzian z matmy...
Subskrybuj:
Posty (Atom)