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" :)