wtorek, 30 grudnia 2008

Bajzel w Pythonie

Uwielbiam Pythona!
Uwielbiam jego filozofię, łatwość i szybkość pisania kodu, przejrzystość kodu... (mógłbym wymianiać jeszcze długo)

Jest jednak rzecz, która ciągle nie daje mi spokoju - bajzel (oczywiście nie taki jak w PHP, ale jednak bajzel).

Spokojnie, już mówię dlaczego.

1. Funkcje wbudowane

from math import sqrt
print sqrt(4)
Ale:

print pow(2,2)
Dlaczego nagle nie muszę importować modułu math?!



2. Używanie funkcji zamiast metod

a = u'Hello World!'
print a.count('l')
Ale:

a = u'Hello World!'
print len(a)
Czemu obliczanie liczby wystąpień znaku wykonywane jest poprzez metodę obietku, a obliczanie długości stringa poprzez funkcję?!



3. Bałagan w nazewnictwie

a = raw_input('a: ')
print a
Ale:

a = 'Hello World!'
print a.isupper()
Dlaczego w części funkcji poszczególne słowa oddzielane są podkreślnikiem (_) a w innych nie?!



Miałem nadzieję, że wraz z przyjściem Pythona 3.0 (czy też Pythona 3000 - jak kto woli) te niekonsekwencje zostaną usunięte. Nie zostały. Może kiedyś w końcu ktoś zrobi z tym porządek!

Jeżeli będę "odnajdywał" kolejne takie kwiatki, będę je do tej listy dopisywał.

niedziela, 28 grudnia 2008

Instalacja i konfiguracja LAMP w Ubuntu

Instalacja LAMP pod Ubuntu (czy każdym innym debiano-podobnym systemie)):

Wydajemy polecenie:
sudo aptitude install apache2 php5 mysql-server
Przyda się też kilka bibliotek:
sudo aptitude install libapache2-mod-auth-mysql libapache2-mod-php5 php5-mysql
Niektórym przyda się też z pewnością phpMyAdmin:
sudo aptitude install phpmyadmin

piątek, 26 grudnia 2008

Przypowieść o synu marnotrawnym...

Tak, wiem, tytuł może dziwny i nie pasuje do bloga programisty, ale w pełni oddaje to o czym chcę napisać.

Od pewnego czasu (chyba już ponad półtora roku) używam Linuxa. Co prawda na dysku zainstalowany był ("zniknął" ~miesiąc temu) Windows, ale używałem go bardzo żadko.

Pierwsze próby z Linuxem (Mandriva) zaczęły się ~3 lata temu, jednak z przyczyn różnych zakończyły się niepowodzeniem i powróciłem do "jedynego słusznego systemu". Dwa lata później znowu postanowiłem zainstalować Linuxa (tym razem Ubuntu). Na początku oczywiście pojawiała się masa problemów, jednak z pomocą google dało się je rozwiązać. W między czasie próbowałem także innych dystrybucji (Fedora, Debian, openSuse, Mint) jednak zawsze powracałem do Ubuntu. A to problemy z kartą graficzną, błędy w używanych przeze mnie pakietach itp.

Niedawno znowu postanowiłem spróbować czegoś innego. Wybór padł na Fedorę. Po ściągnięciu ogromnego pliku ISO (ponad 4 Gb! Dla porównania Ubuntu zajmuje jedynie 700 Mb), długiej instalacji i jeszcze dłuższej aktualizacji pakietów zacząłem konfigurować system. Problem pojawił się przy konfiguracji serwera Apache. Za cholerę nie dało się zmienić DocumentRoot. To znaczy dało się go zmienić, ale pojawiały się jakieś problemy z uprawnieniami. Uznałem, że może jestem za głupi i zainstalowałem Ubuntu. Nie wiem co mnie podkusiło, aby wybróbować też tak wychwalaną dystrybucję jak ArchLinux. Nie musiałem na szczęście ściągać ponad 4 Gb danych, wystarczył obraz ISO o wielkości ~200 Mb. Po instalacji (która o dziwo przebiegłą bardzo sprawnie, pomimo braku graficznego instalatora!) pojawił się ukochany przez niektórych (nie mam pojęcia za co) czarny ekran. Po długiej (aczkolwiek któtszej niż w Fedorze) aktualizaji oraz instalacji serwera X, Gnome oraz GDM mogłem zalogować się do systemu. Mogłem?! Oczywiście, że nie! Nagle bowiem przestała działać klawiatura i myszka! Nie miałem już siły na dalsze "kombinowanie" - wracam do Ubuntu...

Tak wiem - niektórzy powiedzą, że polegam tylko na graficznych konfiguratorach i instalatorach, ale mi, zwykłemu (no, nie do końca) użytkownikowi potrzebny jest system, który działa! Nie chcę siedzieć godzinami nad konfiguracją czy kompilacją aby uzyskać 0.001% przyśpieszenia działania systemu! Chcę natomiast zainstalować system i po chwili móc go używać. I to używać do wszystkiego - oglądania filmów, słuchania muzyki, pisania dokumentów itp.

Hello World!

Jak każdy "szanujący się" blog, ten także musi zaczynać się od słynnych słów "hello world". Tradycyjnie też muszę powiedzieć parę słów o tym kim jestem i czym ten blog będzie się zajmował.

A więc kim jestem? Jak już pewnie część zauważyła w nagłówku strony, nazywam się Krzysztof Zalewski. Jestem z zamiłowania (aczkolwiek wiążę z tym także plany zawodowe) programistą. Głównie programistą webowym, czyli tym człowiekiem, który siedzi i pracuje, aby użytkownicy mogli dodawać newsy, komentować artykuły, głosować w sondach itp.

O czym będzie ten blog? Głównie o programowaniu. O językach programowania, frameworkach, narzędziach itp.
Jak się okazało "w trakcie" będzie tutal duużo narzekania! :D
W sumie ciężko powiedzieć. O ogólnie pojętej informatyce (programowaniu, systemach operacyjnych itp.), ale nie tylko.