Mój plan na semestr letni

February 23rd, 2008

Przy okazji pobawiłem się Google Spreadsheet. ;)

http://spreadsheets.google.com/pub?key=pGWzSN9qMru5kSDOS6VN_Sg

pyhttpd - a tiny HTTP deamon written in Python

February 11th, 2008

It’s for my Python Course. It provides only very basic HTTP, but yet can be used for simple WWW hosting. Link.

Features:

  • GET and POST methods
  • New thread for new connection
  • Directory listing
  • Error pages
  • Document index
  • Deafult type and charset
  • Python scripts ;)
  • Configuration file
  • … and my own modules to handle these

TODOs:

  • Logging
  • Much more stability (exceptions handling, etc.)
  • Sending gzipped or chunked data (if accepted)
  • Range headers
  • … and many, many other

To run just edit pyhttpd.conf and change Port and Document root. Then type “python pyhttpd.py” and it should be now listening for connections.

How to run a python script and its output send to client? Pyhttpd checks if the requesting file is a python one. If so then it opens a python interpreter by a pipe, sends _GET and _POST dictionaries and file contents. And finally, sends interpreter outputs to client.

_GET and_POST are just dictionaries with variable names as keys. So if there is a foobar.py?i=500 request then _GET will be { ‘i’ : ‘500′ } (note that this is always a string value).

It’s GPL if someone asked.

Open source? A po cholerę mi kod źródłowy?

February 7th, 2008

Ostatnio często czytam stwierdzenia, że dostęp do kodu źródłowy nie jest przydatny zwykłym użytkownikom, którzy nie mają zielonego pojęcia o programowaniu. Krew mnie powoli zalewa, gdy o tym słyszę, więc powiem tak: otwarty kod źródłowy wolnego oprogramowania umożliwia innym programistom (niezależnym od autorów oprogramowania) analizować dany program, wykrywać i naprawiać jego błędy oraz tworzyć rozszerzenia i inne dodatki, dzięki czemu wszyscy użytkownicy (cała społeczność) ZYSKUJĄ (uff… długie zdanie).

Załóżmy,  że jakiegoś programu używa 200000 osób, jedna na tysiąc programuje, więc daje nam 200 programistów, zdolnych przejrzeć i poprawić nasz program. Korzystają wszyscy, nie tylko informatycy. Na tym to polega. Jasne? Mam nadzieję, że cześć osób zrozumie.

Dlaczego Nowy Rok jest pierwszego stycznia?

December 31st, 2007

Bo to pierwszy dzień roku - można odpowiedzieć. Ale dlaczego akurat w tym czasie, tzn. około dwa tygodnie po przesileniu zimowym? Nie jest to jakaś “ładna data” z żadnego punktu widzenia.

Nasz kalendarz gregoriański bazuje na kalendarzu juliańskim, stworzonym na rozkaz Juliusz Cezara w 46 roku p. n. e. To wie każdy. Wikipedia o kalendarzu juliańskim mówi nam:

Powodem reformy kalendarza było to, że wcześniej stosowany księżycowy kalendarz rzymski rozregulował się, w wyniku czego w 46 p.n.e. kalendarzowy grudzień wypadał we wrześniu. Dlatego, żeby ponownie zsynchronizować kalendarz z porami roku, rok 46 p.n.e. wydłużono o 90 dni.

Kalendarz rzymski zaczynał się idami marcowymi, jednak:

Pierwotnie pierwszym miesiącem roku był marzec, a 15 marca (Idy marcowe) rozpoczynali urzędowanie konsulowie. W 155 r. p.n.e. termin ten przesunięto o dwa i pół miesiąca wstecz, na 1 stycznia, gdyż w przeciwnym razie konsulowie desygnowani na ten rok nie zdążyliby na początek sezonu działań wojennych do Hiszpanii (gdzie aktualnie toczono wojnę). Ustaliło to początek cyklu pracy administracji państwowej (rzymscy urzędnicy byli wybierani na roczną kadencję) na pierwszego stycznia. I tak już zostało do tej pory.

Czyli wszystkiemu winna jest wojna w Hiszpanii jakieś 2162 lat temu, kiedy rzymscy urzędnicy musieli przesunąć początek roku administracyjnego na 1 stycznia. Bowiem kadencja urzędników trwała rok i co roku nowe osoby obejmowały urząd. Aby zdążyć na wojnę, trzeba było przesunąć to rozpoczęcie na 1 stycznia. Kalendarz ten był tylko administracyjnym. W religijnym nadal obowiązywał marzec jako początek roku. Nie udało mi się dociec, dlaczego i kiedy zmieniono też religijny.

Jak ptak lub jak żółw

December 26th, 2007

Zwolennicy wolnego oprogramowania mają zwykle problem z jego nazwą. Po angielsku “free” może znaczyć również darmowy, dlatego zaznacza się, że “free as in freedom”, a nie “free as in free beer”. Po polsku “wolny” to także przeciwieństwo “szybkiego”. Dzisiaj w nocy wymyśliłem fajne tłumaczenie: “wolny jak ptak” i “wolny jak żółw”. Fajne, prawda? Programy wolne jak ptak. ;)

Świąteczny spam

December 24th, 2007

Dlaczego w każde święta muszę dostawać pierdyliard życzeń, od każdego znajomego lub nawet nieznajomego? Czy takie życzenia coś znaczą? Też mogę sobie napisać skrypt, który roześle jakiś szablon życzeń do wielu osób, ale po co? Przecież to spam.

Ludzie! Opamiętajcie się! Waszych życzeń nawet nikt nie czyta!

Sinusoida

December 22nd, 2007

Ostatni tydzień był bardzo fajny. Kilka miłych zdarzeń się zbiegło w czasie. Ale już wtedy wiedziałem, że za kilka dni czeka mnie jakaś niemiła niespodzianka. Przecież nie może być zawsze tak cudownie. Życie to sinusoida.

I doczekałem się. Nawet mi to nie zepsuło humoru. Wręcz przeciwnie - nie myliłem się przecież. ;)

Matematyka jest piękna

December 11th, 2007

Do baru wchodzi nieskończona liczba matematyków. Pierwszy zamawia jeden kufel piwa, drugi pół kufla, trzeci jedną czwartą i tak dalej. Barman kręci głową z dezaprobatą i nalewa im dwa kufle.

Widzę Cię

December 5th, 2007

Kocham Google, serwisy społecznościowe i ten cały internetowy ekshibicjonizm. ;)

Jabber w Tlenie

November 22nd, 2007

Za pomocą wtyczki: http://area51.k2t.eu/type/wtyczki/ znalezione tu.

Nie testowane przeze mnie! Za wszelkie opinie będę wdzięczny.