Wednesday, February 28, 2007

Kolejny cios

... w środowisko poznańskich archeologów ze strony ABW. Lech Czerniak, cudowne dziecko polskiej archeologii jest wychowankiem UAM w Poznaniu, więc zarzuty łapownictwa, które pod jego adresem stawia ABW tej uczelni splendoru nie przysporzą.

Thursday, February 22, 2007

Śmietnik w źródłach

Po dłuższej przerwie wróciłem do kodowania w C. I powiem tyle, może to będzie najmądrzejsze zdanie, jakie padnie na tym blogu: po pierwsze dokumentacja, po drugie dokumentacja, etc. C nie jest językiem bardzo skomplikowanym, jednak wskaźniki, tablice, pamięć mogą w pewnym momencie narobić sporo bałaganu w źródłach.
Kiedy spojrzałem na Kodera świeżym okiem i zobaczyłem ten bajzel, to się przeraziłem. W pierwszym momencie nie wiedziałem o co chodzi :(. Dlaczego? Nazwy zmiennych, które nie wiadomo do czego służą, brak komentarzy itd. Zabrałem się za nowe funkcje już z silnym postanowieniem o tworzeniu kodu jak najbardziej zwartego i przejrzystego. Jeśli ma to być aplikacja open source wypadałoby, żeby osoba postronna też ją zrozumiała.

Monday, February 19, 2007

Dogonić czas z awk

Ostatnimi czasy łapię się na tym, że ciągle brakuje mi czasu. Zazwyczaj jest to oznaka złego planowania, więc postanowiłem coś z tym fantem zrobić. Najporościej skorzystać kalendarz. I tu pojawia się pierwszy problem: papierowy, czy elektroniczny. Każdy z nich ma swoje zalety i wady, ale z uwagi na to, że 90% zajęć wykonuję na komputerze, zdecydowałem się na drugą opcję.
Teraz przyszedł czas na wybór narzędzia. W zasadzie rozważałem dwa: Sunbird - kalendarz ze stajni Mozilli, albo GoogleCalendar - działający przez WWW. Pierwszego nie było (nie rozumiem dlaczego) spakietowanego dla ArchLinuxa, drugi jakoś nie przypadł mi do gustu. Nie miając wyboru, otworzyłem edytor tekstu i wyskrobałem jakiegoś potworka w Pythonie, z kilkoma opcjami itd. To też nie było to, bo szukam czegoś naprawdę banalnego: dodawanie notatek o zadaniach i ich wyświetlanie. No więc zmajstrowałem pliczek o oryginalnej nazwie kalendarz.txt i wpisałem tam plan najbliższych zajęć - jedno zdarzenie - jedna linia. Format opisu jest następujący: YYYY-MM-DD opis zdarzenia.
Jeśli zadania wpisuje się w porządku chronologicznym i sprząta się listę regularnie, takie rozwiązanie może okazać się wystarczająco. Ponieważ jednak nie planuję żadnej z tych rzeczy, sięgnąłem po AWK - język przetwarzania tekstu i napisałem taki skrypt (daily.awk):

$1 == strftime("%F") {print $0}


Polecenie gawk -f daily.awk kalendarz.txt, plik z wydarzeniami jest przeszukiwany, a na ekranie wyświetlane są tylko te linie, w których pierwszy wyraz jest równy aktualnej dacie w formacie YYYY-MM-DD.
Prawda, że proste? Teraz wystarczy dodać taki skrypt do Crona i każdego dnia będzie się wyświetlała lista zdań do wykonania. Mała rzecz, a cieszy :)

Saturday, February 17, 2007

Prawo Godwina, czyli socjalizm w sieci

Przyznaję się bez bicia. Chociaż w necie jestem od czasów, w których SDI było szczytem marzeń, dopiero dzisiaj po raz pierwszy przeczytałem na Linux.com, że istnieje coś takiego jak prawo Godwina.
"As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one."


Jakie są skutki takiego prawa? Ano takie, że wszelkie dyskusje, w których użyje się słowa na "N" albo "H" są przerywane. To kolejny dowód na to, jak silne jest skrzydło lewicowe w grupie bardziej zaawansowanych użytkowaników internetu. Ciągle zastanawiam się nad tym problemem i nie mogę znaleźć odpowiedzi. Co przyciąga ludzi zazwyczaj dobrze zarabiających, wykształconych do ideologii, która została stworzona po to, by uwieść proletariat i chłopstwo, czyli nie oszukujmy się w XIX w. zaliczanych do nizin społecznych?

P.S
Ciekawe czy tak samo może się skończyć dyskusja, w której przyrównanoby kogoś do Trockiego, albo Urliki Meinhof. - założycielki Frakcji Czerwonej Armii - organizacji terrorystycznej, do dziś wielbionej w środowiskach lewackich. Bardzo w to wątpię.

Wednesday, February 14, 2007

Kleopatra brzydka jak noc

... informuje w dziale "Życie na luzie" Dziennik [1]. Rzeczywiście
dziennikarze pisząc ten artykulik musieli być na niezłym "luzie". Jeśli
jest prawdą to co napisali (a można mieć co do tego wątpliwości) to
naukowcy musieli być w stanie wskazującym.
Rozważania o urodzie Kleopatry na podstawie wizerunku na monecie jest
delkatnie rzecz ujmując rzeźbieniem w g..nie. Przymierzanie kanonów
piękna z przed tysięcy lat do dzisiejszych jest conajmniej nadużyciem z
perspektywy postmodernistycznego myślenia, którego objawem są takie
pseudobadania.

[1] http://tinyurl.com/34jj2p

Monday, February 12, 2007

Baza danych sqlite

Kontynuuję wątek otwartych, alternatyw dla programów komercyjnych. Tym razem przyszedł czas na bazę danych. Przyznam szczerze, że tym segmentem mało się interesowałem, ale od kilku dni zajmuje się tematyką jakoś z tym spokrewnioną, więc do rzeczy. Standardem (co nie oznacza najlepszym) w tej klasie jest MS Access. Istnieją jego wolne odpowiedniki, żeby wymienić Base - element pakietu OO.org, czy Kexi część "konkurencyjnego" KOffice,a więc aplikacje nie grzeszące szybkością, co przy naprawdę dużych zbiorach może mieć znaczenie.
Osobiście proponuję inne podejście, wydajniejsze a w perspektywie czasu wygodniejsze, mianowicie wykorzystanie systemów zarządzania SQL (Structured Query Language). Oprócz silników takich jak popularne MySQL czy PostgreSQL można wykorzystać mały i szybki sqlite.
Korzystanie z tego typu programów polega na pisaniu poleceń w języku SQL, za pomocą których wykonywane są operacje na bazach danych. Poniżej widnieje przykład bazy danych stworzonej za pomocą sqlite

Uruchomienie sqlite. Jeśli bazy nowabaza nie istnieje, zostanie taka utworzona
sqlite3 nowabaza

Utworzenie nowej tablicy w bazie. Trzy kolumny: zawierające nazwę zabytku, ilość i datę dodania
create table nowatablica(nazwa,ilosc,data);

Wstawienie wiersza do tablicy
insert into nowatablica values('ceramika',10,'2007-02-13');

Aby zapisać bazę do pliku należy wydać polecenia:
.mode column
.output nazwapliku
select * from nowatablica;


Po otwarciu pliku w dowolnym edytorze tekstu powinniśmy ujrzeć
nazwa ilosc data
------------- ------------ -----------------
ceramika 10 2007-02-13

Jak widać polecenia nie są szczególnie trudne do opanowania. Kiedy to się stanie sqlite może stać się potężnym narzędziem w naszych rękach. Ma jeszcze jedną zaletę. Jeśli zechcemy, aby dane były jakoś przetworzone, osoba która otrzyma taką bazę zapewniam, będzie zadowolona, bo oszczędzono jej masę czasu. Nie trzeba chyba wspominać, że dostęp do bazy można uzyskać z poziomu różnych aplikacji.

Saturday, February 10, 2007

ArcheoML

Kiedyś wspominałem o ArcheoML - języku opartym o XML (eXtensible Markup
Language) , którego przeznaczeniem jest uniwersalne opisywanie danych archeologicznych,
głównie w celu przetwarzania ich cyfrowo.
Przy pomocy języka można prezentować następujące informacje
- opisy archeologiczne
- opisy geograficzne
- opisy językowe
- opisy rezultatów badań

Na stronie opisującej ArchaeoML wymienione jest kilkanaście typów
dokumentów różnego przeznaczenia, a także znaczniki służące do
opisywania danych archeologicznych.

Warto poszukiwać nowych form opisu danych archeologicznych, jak
najbardziej uniwersalnych z jednej strony, a z drugiej bardziej
nadających się do przetwarzania i prezentowania danych.

Friday, February 9, 2007

Archeologia na usługach państwa

Nowe zamieszki w Jerozolimie, tym razem niechcący sprowokowane przez archeologów izraelskich, którzy zabrali się za badania przy jednej ze ścian Świątyni salomona, a co zdaniem muzułmanów grozi zniszczeniem meczetu Al-aksa.
Nie zdziwiłbym się, gdyby to była forma prowokowania muzułmanów przez władze w Tel-Awiwie, bo archeologia nie od dziś jest wygodnym narzędziem w walce ideologicznej i poliytycznej nawet na szczeblu międzynarodowym. Nie trzeba daleko szukać, bo nie tak znowu dawno, na tysiąclecie Państwa polskiego - kontrimprezy w stosunku do kościelnego 1000-lecia chrztu Polski, oprócz budowy tysiąca szkół ruszył chyba najbardziej spektakularny program badań archeologicznych początków Państwa polskiego, nomen omen wymyślony przez ówczesną szarą eminencję polskiej archeologii - Witolda Hensla.
Ale ad rem. Argumenty muzułmanów, że badania mogą spowodować zawalenie się ściany świątyni też się nie trzymają kupy, bo trudno podejrzewać rozsądnego człowieka, że odważy się pracować ze świadomością, że za chwilę może stać się coś, przy czym oberwanie dwumetrowego profilu jest dziecinną igraszką.
Zobaczymy co z tego wyniknie. Najważniejsze i tak jest to, że o archeologii znowu jest głośno. Zgodnie z popularnym powiedzeniem w szołbiznesie "nieważne jak, byleby mówili" :)

Epoka1 - ciąg dalszy

W poprzednim poście pisałem o systemie eksperckim [1] od strony
ideologiczno-teoretycznej, tym razem parę słów o technologii. Skrypt
systemu jest banalny, jego właściwa część składa się z kilku lini w
Pythonie [2]. Diabeł tkwi jednak w konstrukcji bazy wiedzy. Jest
zbudowana w oparciu o graf skierowany, gdzie poszczególne pytania są
jego wierzchołkami, natomiast łuki są odpowiedziami tak/nie. W
zależności od wyboru odpowiedzi wybierany jest ten wierzchołek do
którego ona prowadzi. Procedura powtarza się dopóki algorytm nie natrafi
na wierzchołek, z którego nie ma łuków wychodzących. Oznacza to, że
wierzchołek ten jest odpowiedzią. Tak więc system jest jednoznaczny.
Określone odpowiedzi pociągają za sobą JEDEN i tylko jeden rezultat.
Z drugiej strony system nie jest liniowy, gdyż jeden rezultat może być
osiągnięty kilkoma drogami, to znaczy niektóre wierzchołki mają stopień
wejściowy większy od 1.
Skrypt jest na tyle uniwersalny, że zbudowanie w oparciu o niego innego
systemu eksperckiego jest banalnie proste. Jak zwykle problem tkwi w
skonstruowaniu dobrej bazy wiedzy, co nie jest wcale takie proste.

[1] http://www.piglas.ys.pl/cgi-bin/system.py
[2] http://www.python.org

Tuesday, February 6, 2007

System ekspercki

Zgłębiam właśnie programowanie w logice (deklaratywne) i niejako przy okazji spłodziłem system ekspercki. Ponieważ zasada działania systemów jest oparta o metodę indukcyjną nie są one narzędziem idealnym, więc trzeba go stosować z rozsądkiem i świadomością, że nie jest to sztuczna inteligencja.
System pomaga rozpoznawać, z jaką epoką (paleolit - epoka żelaza) można powiązać dane stanowisko. Najlepiej by było to stanowisko osadowe i jedno fazowe, wtedy możliwość przekłamań w wynikach jest mniejsza.
Implementacja algorytmu nie jest jeszcze ukończona - brakuje między innymi wyświetlania dowodu, ale można go już z powodzeniem stosować.
Jak to działa.
System w drodze do ostatecznego wniosku zadaje pytania, które rozstrzygają kolejne wątpliwości. Zadaniem użytkownika jest odpowiedź na te pytania, zaznaczając opcję Tak lub Nie. W zależności od tego jakie odpowiedzi są udzielane, inny jest wniosek końcowy (w tym przypadku określenie epoki, w której stanowisko funkcjonowało).
System jest narazie bardzo prosty, jeśli nie prymitywny i ewolucjonistyczny, ale to ma być raczej przykład możliwości wykorzystania informatyki w archeologii, niż narzędzie przydatne w codziennej pracy.

Sunday, February 4, 2007

Otwarty standard dokumentu

Niedawno miałem okazje się przekonać, jak wygląda kompatybilność różnych wersji MS Worda. Wypełnianie rozbudowanej
tabeli w karcie AZP, w różnych wersjach edytora było niestety udręką, gdyż wersja 2000 zwyczajnie nie radził sobie z
dokumentem edytowanym wcześniej w Wordzie 2003.
Takich problemów nie było rzecz jasna w przypadku dokumentów w formacie ODT - zgodnych z międzynarodowym standardem ISO,
które można tworzyć przy pomocy licznych BEZPŁATNYCH i otwartych edytorów tekstu: OpenOffice.org [1], Abiword [2], czy
Kword [3],
dostępne w większości na platformę Windows.
Wracając do użytkowników Worda. Wraz z ukazaniem się wersji 2007 będą mieli jeszcze twardszy orzech do zgryzienia.
Microsoft poszedł w ślady konkurencji i stworzył nowy format dokumentu, oparty także na XML. Aby go otworzyć w starszych
wersjach Office'a konieczne jest pobranie pakietu Compatybility Pack [4], który jednak działa tylko w wersji 2003 i XP.
Dodatkowo gigant sponsoruje wtyczkę do edytora tekstu pozwalającą na odczytywanie i zapisywanie plików ODT [5].
Może więc warto przemyśleć przesiadkę na OpenOffice.org, lub jeśli komuś nie pasuje taka kobyła na lżejsze pakiety
biurowe?

[1] http://openoffice.org
[2] http://abisource.com
[3] http://koffice.org
[4] http://www.microsoft.com/poland/office/office2007/beta/converter.mspx
[5] http://odf-converter.sourceforge.net/

Friday, February 2, 2007

Science Commons - pewne prawa zastrzeżone

Dostęp do informacji jest podstawą rozwoju człowieka. Rzeczywistość
wygląda tak, że często do wiadomości, których nam potrzeba nie sposób
dotrzeć. Czy to są zamknięte w bibliotece na drugim końcu świata, czy
publikowane w wydawnictwach niedostępnych na prownicji. Jeśli już możemy zakupić takie wydawnictwo, barierą staje się jego cena, podytkowana zazwyczaj czystym rachunkiem opłacalności, czego oczywiście niesposób potępiać. Trudno wydać książkę w przyzwoitej formie za niską cenę, w nakładzie 200 egzemplarzy.
Lekarstwem na te bolączki jest oczywiście publikowanie w internecie. Po pierwsze koszty są o rząd niższe, po drugie dostępność do takiej książki/artykułu jest o wiele większa.Nic nie stoi na przeszkodzie, by drukowaną pracę udostępnić za darmo w internecie. Ambicją każdego autora jest dotarcie do najszerszej publiczności, ale umowy podpisywane z wydawnictwami często wykluczają taką formę wydawania prac. Wyjściem mogą być dodatki do umów, na podstawie których autor ma prawo do opublikowania swojej pracy na warunkach licencji Creative Commons [1]. Wzory takich dodatków (na razie w języku angielskim) zostały przygotowane w ramach siostrzanego do CC projektu Science Commons [2]. Dodatki dostępne są w czterech opcjach
- natychmiastowego udostępnienia na warunkach licencji CC [3]
- udostępnienia po wydaniu pracy na papierze [4]
- udostępnienia z opóźnieniem [5]
Perspektywa dotarcie do bardzo szerokiej publiczności jest niewątpliwie kusząca dla nauki tak "popularnej", ale w rzeczywistości nierozumianej
jak archeologia. Może warto zaryzykować.

[1] http://www.creativecommons.org
[2] http://www.sciencecommons.org
[3] http://tinyurl.com/2wxp9c
[4] http://tinyurl.com/32tdt4
[5] http://tinyurl.com/2kdqg3

Thursday, February 1, 2007

Stonehenge - nowe odkrycia, brak odpowiedzi

Magazyn National Geographic [1] na swojej stronie internetowej informuje
o odkryciu osady położonej w pobliżu najsłynniejszego obiektu megalitycznego na świecie - Stonehenge. Na powiązania osady z kręgiem
kamiennym z jednej strony wskazuje podobna chronologia bezwzględna
(C14), z drugiej strony położenie na jednym ciągu komunikacyjnym.
Okazało się też, że obiekt tego typu nie był wyjątkiem w okolicy, gdyż w
pobliżu odkryto dwa podobne do niego [2].
Wszystko to oczywiście jest piękne, pytanie tylko w jakim stopniu
poszerza wiedzę o przeszłości regionu i całej Europy. Nie od dziś
wiadomo, że Stonehenge to jeden z objawów funkcjonowania w młodszym
okresie epoki kamienia zjawiska określanego mianem Antlantyckiej
Cywilizacji Megalitycznej. Odkrycie osady ludzi, którzy PRAWDOPODOBIE w
wykorzysytawali kamienną konstrukcję było kwestią czasu, nadal nie
wiadomo i zapewne nigdy nie dowiemy się co rzeczywiście Stonehenge
znaczyło i jaką funkcję spełniało. Warto też przypomnieć, że
niekoniecznie musiało być to miejsce kultu druidów, jak tego chcą
niektórzy, gdyż krąg jest starszy od Celtów o około 2000 lat.

[1] http://news.nationalgeographic.com/news/2007/01/070130-stonehenge.html
[2] http://news.nationalgeographic.com/news/2007/01/070112-stonehenge.html