Aplikacje, które kocham - Subversion - Drogi Pamiętniczku…

poniedziałek, 27 luty 2006, w kategoriach: Linux, Programowanie

System kontroli wersji to niezastąpiona aplikacja praktycznie dla każdej osoby pracującej więcej z komputerem. Szkoda więc, że traktuje je się jedynie jako narzędzie dla programistów i mało kto poza nimi, ma jakiekolwiek pojęcie, że coś takiego wogóle istnieje.

O co chodzi? System kontroli wersji to taki program, który pamięta jak wyglądały dane pliki w danym okresie czasu i pozwala ewentualnie cofnąć plik do wersji np. sprzed miesiąca czy porównać go z nią. Jeśli kiedykolwiek w trakcie pracy nad czymś popełniłeś błąd, który potem musiałeś długo cofać - takie narzędzie jest Ci potrzebne.

Ruby - wprowadzenie, część 4 - nareszcie coś poważnego

niedziela, 19 luty 2006, w kategoriach: Programowanie, Ruby

Zgodnie z zapowiedzią, bierzemy się za praktyczne programowanie. Przez następne pare odcinków będziemy rozwijać prostą, konsolową aplikacje będącą czymś w rodzaju PIMa, z naciskiem na wsparcie dla GTD (pasujące do tematyki strony). W trakcie pisania programu zaczną nam oczywiście wypływać na powierzchnię pewne niezbędne sprawy o których dotąd nie mówiliśmy, tak więc po drodze poruszymy mnóstwo pobocznych aspektów Ruby’ego. Wszystko będzie się działo dość spontanicznie, nie mam napisanych 10 odcinków tutoriala do przodu, więc asekuracyjnie proszę o wyrozumiałość :)

Odpuścimy sobie GUI, bo jego pisanie jest nudne, pozatym pojawia się problem znalezienia crossplatformowej biblioteki, trzeba opisać jej instalcję… Nudy, nudy, nudy. Skupimy się na esencji, na logice programu. Jeśli ktoś chcę, może potem w ramach ćwiczeń dopisać GUI, nie powinno być to szczególnie trudne.

Ruby - wprowadzenie, część 3 - Gdyby Chuck Norris programował, używałby języka Ruby

sobota, 11 luty 2006, w kategoriach: Programowanie, Ruby

Dziś zajmiemy się kluczową dla całego tutoriala koncepcją - programowaniem obiektowym. Ciężko będzie dalej zrobić cokolwiek fajnego np. w Rails, bez bardzo dokładnego zrozumienia co i jak z obiektami. Więc, jedziemy…

Podstawowym terminem w programowaniu obiektowym jest klasa - komputerowy model jakiejś rzeczywistej bądź abstrakcyjnej rzeczy. Na model ten składają się właściwości, opisane za pomocą zmiennych (zmienna będąca częścią klasy to pole) i zachowanie, możliwe czynności które mogą być przez tą rzecz wykonane, opisane procedurami (z kolei procedura będąca częścią klasy to metoda).

Ruby - wprowadzenie, część 2 - właściwe początki

środa, 8 luty 2006, w kategoriach: Programowanie, Ruby

Okej, pierwszą zaprawę mamy już za sobą. Dziś przyjrzymy się podstawowym “klockom”, z których później (w następnym odcinku) spróbujemy zbudować już coś wykonującego jakieś konkretne zadanie. Z góry zastrzegam, że staram się, żeby tekst był zrozumiały dla jak największej grupy osób, dlatego tłumacze tak łoptologicznie jak umiem, w związku z czym używam wielu uproszczeń i skrótów myślowych, które z formalnego punktu widzenia zapewne bywają niezbyt poprawne. Ale wytykać można, chętnie posłucham.

Ruby - wprowadzenie, część 1 - absolutne podstawy

sobota, 4 luty 2006, w kategoriach: Programowanie, Ruby

Ruby to interpretowany, w pełni obiektowo zorientowany język programowania. Powstał w Japonii, jego twórcą jest Yukihiro Matsumoto “Matz”. Bazuje na pomysłach z najróżniejszych źródeł, jest mieszanką Perla, Pythona, Lispa, Smalltalka i w mniejszym stopniu wielu innych języków.

Cechy, które wyróżniają Ruby’ego spośród tłumu to całkowita obiektowość (bliższa Smalltalkowi niż C++), pełny dostęp do i możliwość modyfikacji całej biblioteki klas, genialny zestaw dodatkowych narzędzi (”budowniczy” ala make, biblioteka do testów modułowych, menadżer pakietów itp., przeglądarka dokumentacji na kształt perldoca), naprawde świetny parser XML, klauzury, bardzo duża zwięzłość (nigdy więcej pisania setnej funkcji ładującej zawartość pliku do tablicy itp.). Przy tym wszystkim język jest naprawde “żywy” i pragmatyczny, na sieci leży mnóstwo dowiązań do baz danych, toolkitów GUI itp., co bywa problemem w przypadku innych bardziej egzotycznych języków, mających szanse konkurować z Rubym na polu możliwości samego języka.

Aplikacje które kocham - Emacs, Edytor przez duże “E”

poniedziałek, 30 styczeń 2006, w kategoriach: Emacs, Programowanie

Wybór edytora dla programisty czy webmastera jest sprawą wręcz religijną, i dobrze. W końcu edycja tekstu jest jedną z podstawowych czynności jaką wszyscy bez wyjątku wykonujemy na komputerze, i nieważne czy jest to wypracowanie, e-mail czy też program albo strona www. Dlatego opanowanie dobrego edytora tekstu, może zaoszczędzić nawet zwykłym ludziom niejednokrotnie mnóstwo czasu, a już dla programisty / administratora / webmastera jest koniecznością. Ktoś kto dodatkowo opanuje dobrze shell i jakiś język skryptowy (Ruby, Perl, Python), będzie w stanie zautomatyzować każdą żmudną czynność, osiągając coś w rodzaju unixowej nirvany :> Kto przekonał się o “potędze czystego tekstu”, powinien także poświęcić chwile na pomyślenie jak tą potęge najlepiej wykorzystać.

Dlaczego Ruby?

niedziela, 14 sierpień 2005, w kategoriach: Programowanie, Ruby

Jak napisałem w “powitalnym” wpisie, uwielbiam programować w Rubym. Dlaczego? Co czyni ten praktycznie nieznany w Polsce język programowania unikalnym? Oto moje ulubione cechy:

1. Prawdziwa obiektowość. W Rubym nie ma typów prymitywnych, wszystko jest obiektem. Można więc napisać: (0.8).round albo: “cos”.upcase. Nawet nil (”nic”) jest instancją klasy. Jednocześnie nie oznacza to, jak w Javie, konieczności zadeklarowania przynajmniej jednej klasy. Jeśli więc chcemy, możemy programować w stylu proceduralnym, tyle, że w gruncie rzeczy, “za kurtyną” i tak kod ten staję się wnętrzem klasy.

2. Możliwość rozszerzania języka. Do każdej klasy, zarówno napisanej przez nas jak i tej będącej częścią biblioteki standardowej możemy dodać metody, składowe, lub nadpisać te już istniejące. Stwarza to możliwość programowania “bottom-up”, czyli dostosowania języka do wykonywanego zadania.

3. Narzędzia. Dodatkowe narzędzia Ruby’ego są niesamowite. Mamy więc Rake’a, czyli program do budowy skryptów ala Makefile, tyle że w czystym rubym, mamy ruby-gems, pozwalające na instalację za pomocą jednego polecenia dowolnej potrzebnej biblioteki czy pakietu dla Ruby’ego, mamy też “w standardzie” rozbudowany framework do pisania testów modułowych. Dostajemy też interaktywny interpreter i przeglądarka dokumentacji “ri”, przypominająca np. perldoc.