Wakacje

Posted in Codzienność, Gentoo, Linux, PHP.pl on Maj 26th, 2006 by Tomasz Cudok – 1 Comment

Minęły już ponad dwa tygodnie od matury, mówiąc inaczej, mam już za sobą kilkanaście dni wakacji. Trochę naobiecywałem wcześniej, że zmienie tą brzydką skórkę na blogu na coś własnego i ogólnie będe więcej pisał. Jednak do tej pory skupiałem się na dwóch rzeczach. Pierwsza, odreagowanie matury, czyli generalnie obijanie się. Drugą rzeczą jest praca nad nowym elementem składowym PHP.pl. Ci którzy mają wiedzieć, wiedzą o co chodzi, ale ciii ;) Projekt jest już prawie skończony, czeka jeszcze na to żeby go dokładnie przetestować.

Tak więc kiedy obiecane zmiany na blogu? Wkrótce. W TODO mam jeszcze postawienia serwera XGL na Gentoo, tak żeby śmigało to z Gnome. Idzie powoli, ale może jutro się uda. Na całe szczęscie na #php.pl jest co najmniej kilka osób, na których pomoc mogę się zdać, tak więc w końcu udać się musi. A potem, w akcelerowanym 3d menadżerze okien będę mógł już kodować szybko i przejmnie. Przynajmniej takie jest założenie ;)

Wiosenne ożywienie

Posted in Codzienność on Maj 7th, 2006 by Tomasz Cudok – 2 Comments

Nie wiem czy to wisona, czy jakiś hormon mobilizujący mnie do pracy w związku z maturą. W każdym bądź razie, doznałem jakiegoś ożywienia. Wróciło kreatywne myślenie, zapał do pracy. Cieszy mnie to, bo na maturze z matematyki (to już w czwartek!) na pewno będzie to pomocne.

Żeby troszeczkę się rozładować i wykorzystać przypływ weny, pogrzebałem troche przy blogu. Dodałem do paska bocznego (tak się ten szablon w administracji WordPressa nazywa, dla mnie to prawe menu) informacje dotyczące mojej skromnej osoby. U dołu paska bocznego Pod informacjami o mnie zamieszczona została ikonka RSS. Jak można zauważyć, przeniosłem feeda na FeedBurnera. Stary jeszcze przez jakiś czas będzie działał, ale jeśli ktoś ma mnie zasubskrybowanego byłoby miło gdyby uaktualnił adres, to zero tam na dole w menu nieładnie wygląda ;)

Dodatkowo, mam już sposób na zbieranie dokładnych statystyk na temat bloga. Dzięki seaquestowi zdobyłem konto na Google Analytics. Wszystko działa sprawnie, ale danych za mało żeby wyciągać jakieś wnioski, więc o tym później.

A teraz kilka godzinek matematyki i do kina na Mission Impossible III. Trzeba się rozładować, bo jutro ustny angielski ;)

Cisza przed burzą

Posted in Codzienność on Kwiecień 17th, 2006 by Tomasz Cudok – 13 Comments

Projekt Matura 2006 wchodzi w ostateczną fazę. Przez następny miesiąc, tj do 16-tego maja, czyli dnia, kiedy mam ostatni egzamin (Polski, ustny), na blogu zapanuje całkowita cisza. Po zakończeniu tego projektu, przewidywany jest duży wzrost aktywności na blogu, jego restrukturyzacja i redesign. A na razie:

System.GetProcess("Matura").Priority = ProcessPriority.Highest;

Kanały RSS

Posted in Internet on Marzec 12th, 2006 by Tomasz Cudok – 10 Comments

Kanały RSS z dnia na dzień stają się coraz bardziej wszechobecne. Każdy większy wortal i prawie każdy blog już takowy posiada. Jednak w wielu miejscach, jedynym sposobem na to, żeby w ógole dowiedzieć się o istnieniu kanału, jest zauważenie w prawej części pasku adresu pomarańczowego/niebieskiego kwadracika/prostokącika. Dotyczy to tzw. przeglądarek alternatywnych, np. Firefoksa/Opery. Użytkownicy Internet Explorera o takim kanale się już nie dowiedzą, chyba że będą wypatrywali w źródle strony magicznej linijki:

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="..." />

Jednak nie o użytkowników IE mi się tutaj rozchodzi. Skoro informacja o alternatywych przęglądarkach do nich nie dociera, to wątpie by wiedzieli co to RSS ;) . Dla użytkowników przeglądarek alternatywnych, którzy nie chcą korzystać z wbudowanych przeglądarek kanałów RSS, jest to również niewygodne. Aby zdobyć adres kanału, zmuszeni są oni do dodania takiego kanału do wbudowanego czytnika (w FF będą to zakładki), bądź też szukania w źródle… Niewygodne, a co za tym idzie, czasem po prostu nie dodaje kanału do zewnętrznego czytnika, bo mi się zwyczajnie nie chce.

Stąd apel: dodawajcie link z adresem do kanału RSS na stronie. Oszczędzi to leniwym użytkownikom cierpień i frustracji, a użytkownikom IE być może pozwoli poznać jakąś nową technologie ;)

PS.
Wordpress ma takiego linka fabrycznie w menu ;)

Cisza…

Posted in Codzienność on Marzec 2nd, 2006 by Tomasz Cudok – 2 Comments

Dawno nic nie pisałem. Powód: nakładające się na siebie dwa czynniki, szkoła i praca. Szkoła, to w zasadzie tylko matematyka i angielski, na reszcie przedmiotów zwyczajnie nic się nie robi. Ot, uroki klasy maturalnej. W domu natomiast na zmianę przygotowuję się do matury z matematyki robiąc wszelakie zadania i programuję… dla pieniędzy. Niestety, okres, w którym pasja była ważniejsza niż zarobek chyba już przeminoł. Pocieszam się tym, że w zasadzie taka praca potrafi sprawiać dużo przyjemności i dawać satysfakcję, szczególnie gdy klient uruchamia serwis oparty na napisanym przeze mnie oprogramowaniu.

Mam nadzieję dotrwać tak do matury, do tego czasu częstotliwość pojawiania się nowych notek może być dość niska. Czasu na testowanie nowych bibliotek, frameworków, na śledzenie wszystkich zmian i nowości poprostu mi nieco szkoda, a co za tym idzie, nie za bardzo mam o czym pisać. Ale będe się starał, by do czerwca blog nie zwiędł z braku podlewania go nowymi wpisami ;)

Płytki z Ubuntu

Posted in Linux on Luty 15th, 2006 by Tomasz Cudok – 4 Comments

Kilka tygodni temu zamówiłem sobie płytki z Ubuntu Linux. Dziś dotarła do mnie porządnie zapakowana przesyłka. Dostałem 25 bardzo ładnych, twardych kopert, w każdej dwie płyki z Ubuntu, jedna instalacyjna i jedna live, czyli działająca bez instalacji. 20 jest przeznaczonych na standardowe pecety (architektura x86), 3 na 64-bitowce i 2 na Maca. W sumie mam 22 płytki do rozdania, bo po jednej z każdego typu sobie zostawie.

Oczywiście ani za płytki, ani za przesyłke nie musiałem nic płacić, wszystko jest za darmo. Dlatego też proszą, żeby zamawiać większe ilości płytek i rozdawać znajomym. Świetny sposób na promocje Linuksa. A kto za to płaci? Niejaki Mark Shuttleworth, miliarder z RPA, który przeznaczył na rozwój Ubuntu 10 milionów dolarów.

Ubuntu jest dobrą dystrybucją dla osób początkujących, na pewno nie odstrasza tym, że jest skomplikowany. Konsoli praktycznie nie trzeba używać, do wszystkich podstawowych zadań dostarczono narzędzia graficzne. Jeśli ktoś chce zacząć zabawę z Linuksem, albo chociaż sprawdzić, co to tak naprawdę jest, gorąco polecam tą dystrybucje.

Jeśli ktoś chce zamówić sobie płytki, można to zrobić poprzez tą stronę. Należy liczyć się z tym, że dostarczenie przesyłki potrwa co najmniej kilka tygodni. Jeśli ktoś ma możliwość odbioru osobistego u mnie, to chętnie się podziele płytkami, które dziś dostałem.

Kombinator ;)

Posted in C#, Programowanie on Luty 11th, 2006 by Tomasz Cudok – 1 Comment

Nie tak dawno temu, podczas przerabiania rachunku prawdopodobieństwa, nauczyciel dał nam do rozwiązania dość trudne zadanie na dodatkową ocenę. Przysiadłem do niego w domu i nie mogąc nic wymyślić, postanowiłem rozwiązać je metodą brute-force. Napisałem na szybko programik, który generował permutacje danego zbioru, każdy z otrzymanych w ten sposób zbiorów sprawdzałem pod kątem odpowiednich kryteriów w pętli i w ten sposób wynik znalazł się sam. Następnego dnia poszedłem się pochwalić nauczycielowi i zostałem mile zaskoczony. Otóż mój nauczyciel matematyki również lubi dłubać w kodzie. I tym sposobem dostałem zadanie specjalne – napisać program generujący permutacje, kombinacje, wariacje (z powtórzeniami i bez) podanego zbioru (max. 10 elementów). Jako, że zadanie było ciekawe, wziołem się za nie niemal natychmiast.

Oczywiście wybór platformy nie był trudny. Bez wahania wybrałem .NET i C#. Program napisałem w darmowym Visual C# Express 2005 Microsoftu. Główną trudnością było opracowanie w miare wydajnych algorytmów mutujących zbiory. Jednak szybko okazało się, że dużym problemem jest też wyświetlenie listy z milionem elementów. Tak więc przy dużych ilościach wynikowych zbiorów program upomina się o bezpośredni zapis do pliku, co jest zdecydowanie bardziej wydajne. W ten sposób, na moim sprzęcie, można sobie utworzyć plik ze wszystkimi permutacjami zbioru 10 elementowego (jest ich 10! = 3628800) w nieco ponad minutę. A algorytm permutacji można by pewnie sporo zoptymalizować, ponieważ jest on… rekurencyjny (lenistwo wzieło górę…).

Niby prosty programik, a dzięki niemu nabyłem całkiem sporo doświadczenia w programowaniu aplikacji okienkowych pod Windowsa. Wytworzyłem sobie styl nazewnictwa kontrolek, doświadczyłem na własnej skórze, że zaprojektowanie ładnego GUI nie jest wcale takie proste jak się może wydawać, przyswoiłem sobie parsowanie dokumentów XML w .NET. A przy okazji nauczyłem się na pamięć wzorów na obliczenie ilości wyników poszczególnych operacji kombinatorycznych. Uwielbiam łączyć przyjemne z pożytecznym ;)

Program do działania wymaga zainstalowania .NET Framework 2.0.

Kombinator 1.0
Kombinator 1.0 – źródła

Jak Cudi został piekarzem…

Posted in PHP, Programowanie on Luty 10th, 2006 by Tomasz Cudok – 7 Comments

Ostatnio, głównie ze względów finansowych, wróciłem do programowania w PHP. Pierwszą rzeczą jaką robi się po długiej przerwie w programowaniu w danym języku jest sprawdzenie, czy ktoś w międzyczasie nie znalazł sposobu by umilić kodowanie. I rzeczywiście, komuś udało się to zrobić.

Jakieś pół roku temu świat usłyszał o Ruby on Rails. Jest to framework do tworzenia aplikacji internetowych, napisany w języku Ruby. Najważniejszą jego cechą jest to, że nie trzeba się szczególnie wysilać, żeby stworzyć jedne z bardziej pracochłonnych elementów strony, jak np. formularze. RoR zachwycało prostotą, było to RAD w pełnym tego słowa znaczeniu, choć w podejściu zupełnie innym niż to znane z J2EE czy ASP.NET. Zamiast pracochłonnej obsługi zdarzeń i tworzenia ogromnych plików konfiguracyjnych w XML’u, RoR oferował jak największą automatyzacje zadań. Zamiast plików konfiguracyjnych są konwencje nazw plików, klas, metod i zmiennych. Niby ograniczanie swobody, ale przy okazji pozwala zachować porządek w kodzie.

O RoR można się jeszcze długo rozpisywać, ale ja miałem pisać o pieczeniu. Konkretniej, o pieczeniu ciasta. Mowa o frameworku CakePHP, który chyba najbardziej obrazuje to jak wyglądałby Rails gdyby był pisany w PHP. Chociaż PHP nie posiada tylu ‘magicznych’ kruczków składniowych co Ruby, w kilku względach jest od niego lepsze. Po pierwsze, jest powszechnie instalowane na serwerach. Z Ruby… bywa bardzo różnie. Po drugie, szkoda uczyć się, bądź co bądź skomplikowanego języka jakim jest Ruby, tylko po to by nie móc tego wykorzystać.

Muszę przyznać, że twórcom Cake’a bardzo dobrze udało się oddać RoRowy sposób pisania aplikacji. Piszę w nim średnio skomplikowanego CMSa i choć czasami widać w tym frameworku braki i błędy, to w niektórych miejscach pokazuje prawdziwą potęgę. Przykład, tworzenie panelu administracyjnego. Modele tworzą się praktycznie same, kontroler to kilka linijek kodu. Dzięki helperom w prosty sposób tworze sobie formularz, podpinam pod wszystko bibliotekę Prototype i w ciągu 30 minut mam panel zarządzania podstronami, oparty o AJAXa, z pięknymi efektami przejściowymi. Gdybym chciał to pisać bez Cake’a, zajęłoby to co najmniej 10 razy więcej czasu.

O CakePHP będę na pewno jeszcze nie raz tutaj pisał w miarę tworzenia kolejnych projektów. Już teraz udało mi się go mocno rozbudować o własne funkcje (komponenty, helpery, elementy itd.), a pracuje z nim dopiero od wczoraj. Zachęcam do testowania, można sobie stworzyć bardzo wygodną platformę do tworzenia aplikacji przy minimum wysiłku.

Cudi’s devBlog – (re)reaktywacja

Posted in Codzienność on Luty 9th, 2006 by Tomasz Cudok – 2 Comments

W dzisiejszych czasach ciężko nazwać deweloperem kogoś, kto nie ma swojego devBloga. Sam zaliczyłem dwie, nieudane zresztą, próby prowadzenia takiego. W obu przypadkach zaszkodziły awarie darmowych serwerów, ich niestabilność i ślamazarność. Po prostu odechciewało się takie coś prowadzić. Dlatego postanowiłem wykupić domene i trochę miejsca na serwerze, aby móc stworzyć devBloga z prawdziwego zdarzenia. Postaram sie pisać często i już nie tylko o programowaniu, ale także trochę o codzienności, no i o polityce. Będę również więcej pisać o opensource, skupiając się głównie na wojnie przeglądarek, która mi, jako webdeveloperowi, jest najbliższa.