Witaj na blogu prowadzonym przez Sebana. Spisuję tutaj swoje uwagi na różny temat. Przeważają tematy związane z Internetem, popieranymi przeze mnie rozwiązaniami dotyczącymi wykorzystania komputerów, oraz kilka innych.

Gedit z dopalaczem

14 września 2007 | Klucze: linux, Techblog
14 komentarzy. trackback

Dzisiejszy wpis będzie bardziej z kręgów linuksowych. Oglądając Railscasty bardzo spodobała mi się sprawność z jaką Ryan Bates operował edytorem TextMate. Postanowiłem zrobić sobie coś podobnego na Linuksie używając domyślnego edytora tekstu w Gnome Gedita.

Czcionka

Mi najbardziej do gustu przypadła czcionka Monaco. Można ten krój łatwo pobrać z internetu szukając frazy ,,monaco font''. O czcionkach pisał kiedyś już - Czcionki dla programistów: aby kod był czytelniejszy.

Kolory

Kolory jakie są używane w TextMate bardzo mi przypadły do gustu. Biała czcionka na czarnym tle, spokojne kolory wykorzystywane do kolorowania skladni specyficznej dla pliku. Kolory zabrałem z któregoś z gotowych zestawów ustawień dla Gedita. Był to albo gedittextmate, albo gedit-mate. Można właściwie wykorzystać gotowce i nie czytać już dalej.

Gedit like TextMate

Wtyczki

Gedita na już całkiem spory wybór wtyczek, warto sobie coś z tego wybrać. Ja opiszę te, które sam używam.

Class browser. Wtyczka umożliwa przeglądanie klas w plikach źródłowych ich metod i pól w bocznym panelu. Przydatne dla programistów

Lista znaczników umożliwa wstawienie gotowego do uzupełnienia szkieletu znacznika. Do wyboru znaczniki używane w XSLT, HTML, XUL jak również LaTeX (o tym dalej). Wtyczka ta dostępna jest standardowo z Geditem

Gemini. Zaznacza pasujące do siebie nawiazy, cuszysłowy, aposrtofy. Czasem tylko uda się wpisać podwójny zamykający nawias, ale poza tym działa fajnie.

Narzędzia zewnętrzne. Pozwala używać zewnętrznym programów. Np. przetrawienie właśnie edytowanego pliku za pomocą pdflatex, pozwala na używanie make. Ogólnie przydatny bywa. Również ta wtyczka jest jakoby w standardzie.

Przeglądarka plików. Wtyczka sprawia, że w bocznym panelu pojawia się drzewko z katalogami i plikami, wśród których można wybrać ten do edycji. Ta wtyczka jest w zestawie, ale jeśli komuś z jakiś względów się nie podoba to można wybrać Eddt. Wtyczka, której używanie według mnie jest konieczne.

Quick Highlightmode. Za pomocą kombinacji klawiszy Ctrl-Shift-H możemy wybrać styl podświetlania składni dla edytowanego pliku. Dla mnie bardzo fajna sprawa. Piszę sobie wpis na bloga ustawiam mu podświetlanie składni na HTML i wszystko wygląda ładnie.

SnapOpen. To jest wtyczka kopijuąca takie małe okienko otwierania pliku, z którego pomocą w szybki sposób mogę wybrać plik do edycji wpisując część jego nazwy. Pliki do edycji szukane są albo w katalogu z którego uruchomiliśme edytor lub w katalogu otwarym w panelu przeglądania plików. Zdecydowania fajna rzecz.

Snippets, czyli wstawki kodu. Coś absolutnie wspaniałego. Rzecz bez której nie wyobrażam sobie pisania jakiegokolwiek kodu. Za pomocą odpowiedniego skrótu lub przycisku Tab można wstawić do edytowanego dokumentu odpowiedni kawałek kodu np. szkielet konstrukcji if. Dużą ilość wstawek pryznoszą z sobą gotowe zestawy ustawień o których pisałem wyżej.

Gedit-LaTeX. To wtyczka przydatna tylko użytkownikom LaTeXa. Jeszcze z jej pomocą nie składałem większego dokumentu, ale wydaje się mieć spore możliwości. Przy najbliższej okazji napewno będę z niej korzysał.

Bardzo przyjemną sprawą może też być Auto completion plugin, dzięki któremu słowa były uzupełnianie za pomocą klawisza Tab. Ja go przestałem używać bo wciskanie tabulatora kolidowało czasem z używanymi wstawkami.

Tak jak chciał Night zrobiłem jakieś video z tego jak wygląda mój Gedit. Video nie jest najlepszej jakości. Można je zobaczyć w serwisievideo.google.com lub Gedit.ogg w formacie Ogg Theora.

Dzien programisty

13 września 2007 | Klucze: it, Ogólne
1 komentarz. trackback

Dziś 10016 dzień roku. Dzień uważany za święto programistów. Ponieważ zdarza mi się czasem coś napisać to obchodzę go hucznie dodając ten wpis. Złoże wszystkim programistom i programistkom życzenia

Od rana praca przy projekcie, termin bardzo blisko. Finished in 1.761383 seconds
55 examples, 0 failures
Super! Dzień toczy się dalej. Mail Praca - RoR. Bardzo super!

I własnie tego Wam wszystkim chcę życzyć, by testy zawsze przechodziły i byście mieli ciekawe oferty pracy!

Powtarzaj DRY

12 września 2007 | Klucze: programowanie, rails, Techblog
1 komentarz. trackback

Kto zna już Rails? Kto jeszcze nie zna? Dobra, dobra. Pytanie właściwie nie ma znaczenia bo dzisiejszy wpis będzie i dla jednych i dla drugich. Jak wiele lini kodu się powtarza w źródle twoich klas? Jak wiele z nich umieściłeś w osobnej metodzie? Dziś napiszę jak chociaż trochę w prosty sposób uporządkować kontroler. To dalej bo szkoda czasu.

Nazewnictwo

Łatwo sobie wyobrazić jakis serwis z podcastami. Są ludzie dodają sobie swoje podcasty, komentują je, tagują i co tam jeszcze można robić teraz w serwisach internetowych ery 2.0. Ale zaimijmy się bardziej szczegółowo podcastem. Co użytkownik może z nim zrobić: może go dodać, może go potem edytować, by poprawić jakieś literówki, inni mogą przeglądać szczegóły podcasu: jego opis i wszystko inne co ma opisywać podcast. Każdy chce mieć wartością treść w swoim serwisie, więc przyda nam się jakiś moderator by usuwał to co jest złe. Jakieś bluzgi czy bekanie do mikrofonu. Cztery proste czynności tworzenie, usuwanie, przeglądanie, edycja. Na ilę sposóbów mogę nazwać akcję tworzącą nowy podcast? Nawet ograiczając się do angielskiego bardzo łatwo podać kilka słów oznaczających prawie to samo: new, add, create. A jeśli w takim kontrolerze są wszystkie trzy nazywy to która tak napawdę tworzy nowy podcast w serwisie? DHH mówił o tym problemie a ja chcę powtórzyć. Sięgnij po CRUD. Zatem nazywajmy zawsze te podstawowe metody tak samo: create, show, update, destroy.

Pozwoliłem sobie dodać już częściową implementację tych akcji, brakuje tylko create.

Uporządkujmy

Pół biedy jeśli to wygląda tak jak na załączonym wyżej obrazku. Dużo gorzej jeśli na początku każdej z metod jest:

Przynajmniej trzy razy piszesz to samo! Mój sposób by sobie z tym poradzić to before_filter. Piszę sobie metodę: find_podcast

Spokojnie, spokojnie, nie podpalać się i nie wpisywać tej metody na początku każdej z metod. To też bez sensu. Pamiętajcie o before_filter.

To według mnie jest DRY. Eliminacja powtarzającego się kodu, oszczędzanie palców czy jak jeszcze to nazwać. Paradoksalnie na napisanie find_podcast użyłem więcej linii niż zaoszczędziłem, ale według mnie tak jest estetyczniej, czytelniej. Ale DRY to nie tylko pisanie metod podobnych do find_podcast, to również ,,widoki częściowe'' - partiale (o których pisałem już na Jabbie), oraz metody pomocnicze.

Postanowiłem uzupełnić kod kontrolera jeszcze o metodę list, która będzie pokazywała listę wszystkich podcastów. Teraz find_podcast będzie wywoływane przed każdą metodą oprócz create.

Spostrzegawczy lub tacy, którzy już pisali w RoR powiedzą: ,,no dobra, ale teraz każdy może usunąć podcast''. Tak w tym momencie każdy może usunąć podcast. A nawet więcej! Teraz użytkownik może edytować wszystkie podcasty. Wolna amerykanka! A co jeśli nie uda się zapisać podcastu? Ale to jeśli będzie ktoś chciał przeczytać mogę napisać w sobotę.

Literatura

Na sam koniec przydatne artykuły, video czy textareazentacje:

Seban poleca Conduit

07 września 2007 | Klucze: linux, Techblog
3 komentarze. trackback

Masz konto na flickr, a nie wiesz jak przesłać tam swoje zdjęćia z f-spot? Nie chcesz do tego używać linuksowej Picasy (która według mnie wcale taka fajna nie jest)? Masz notatki w Tomboy na swoim pececie, ale chcesz mieć je jednocześnie na laptopie? Albo jeszcze lepiej, chcesz je mieć online w swoim ,,plecaczku'' na Backpackit. Albo chcesz zwyczajnie zsynchronizować swoje ~/documents z pamięcią USB, albo z laptopem, czy może znowu wysłać je w sieć na Box.net. Na te wszystkie pytania jest jedna krótka odpowiedź! A brzmi ona: Conduit!

Conduit

Czymże Conduit jest? to program synchronizujący docelowo wszystko ze wszystkim. Brzmi cudownie, ale ciągle brakuje pewnych rzeczy. Dokładnie możemy zobaczyć co da się synchronizować na stronie statusów. Na oficjalnych obrazkach Conduit widziałem jednak synchronizację ustawień Gnome, bardzo ciekawe. Ja już go używam jakiś czas synchronizowałem z jego pomocą sporo zdjęć z wakacji z serwisem Picasaweb, nie było żadnych problemów.

Może Conduit jeszcze nie powala możliwościami synchronizacji, ale za jakiś czas może mieć potężne możliwości. To co jest planowane na kolejną wersję można sprawdzić na liście do zrobienia Conduit. Szczególnie pożądana przeze mnie jest synchronizacja w dwóch kierunkach wpisów z Backpack z moim Tomboyem GTD.
program Conduit
Możliwości i kombinacji jest ... bardzo dużo. Ja mam kilka (większość na przyszłe wersje)

  • Zsynchronizować muzykę na Ipodzie, Odtwarzaczu MP3, z playlistą z Rhythmboxa. Może jeszcze jakaś synchronizacja z Jamendo?
  • Zsynchronizowanie wpisow z Joggera z jakimś katalogiem, każdy wpis to jeden plik tekstowy
  • Wspomniane wyżej ustawienia Gnome z inną maszyną poprzez sieć lokalną
  • Synchronizacja dokumentów Openoffice
  • Synchronizacja kontaktów w telefonie komórkowym z programem pocztowym lub Gmailem (lub czymś jeszcze innym)
Mało? To jaki Ty masz pomysły?

Railscasts, wszystkie odcinki

05 września 2007 | Klucze: rails, ruby, Techblog
13 komentarzy. trackback

Wszyscy, którzy interesują się Ruby on Rails pewnie dobrze znają screencasty, których autorem jest Ryan Bates. Ci którzy nie znają, muszą poznać.

Całkiem niedawno zapragnąłem mieć wszystkie odcinki (nie widziałem wszystkich) u siebie na dysku i oglądać je w wolnej chwili. Jednak przechodzenie po koleji ze strony odcinka na stronę kolejnego epizodu to nie jest ciekawe zajęcie. Ale kim byłby programista, który robiłby to ręcznie? Chwilę pomyślałem i już wiedziałem.

Co potrzebowałem: Railscasts RSS, REXML, net/http, Wget jako mały pomocnik do ściągania plików, no i Ruby oczywiście. Całość trochę zamieszałem, wrzuciłem do jednego skryptu i voila! Skrypt ściąga wszystkie wydane epizody w formacie mov (cały Railsowy światek jest raczej makowy), a na dzień dzisiejszy jest ich 69. Da dysku sporo zajmują, ale chyba warto.

Warto też odnotować istnienie serwisu peepcode.com. Udostępnia on również screencasty o tematyce Ruby/Ruby on Rails, ale z tą jedyną różnicą, że są one płatne. Jeden odcinek kosztuje 9$. Jest jednak możliwość obejrzenia ,,free samples''. Ja osobiście nie widziałem żadnego odcinka, więc nie będę się pisał nic więcej na temat tej serii.

Barcamp. Byłem.

02 września 2007 | Klucze: it, Techblog
10 komentarzy. trackback

Barcamp to poznańskie spotkanie ludzi z branży IT, spotkanie wzorowane jest na wrocławski spotkaniach branżowych GrillIT. Pierwsza edycja poznańskiego Barcampu odbyła się w ostatni weekend, 1 września. Pojechałem tam razem z Bartkiem Rycharskim. Według listy uczestników zamieszczonej na stronie imprezy powinno się zjawić około 130 osób. W rzeczywistości było ich chyba trochę mniej, ale i tak frekwencja mile zaskoczyła organizatorów. Zaplanowanych było sześć prezentacji, odbyło się pięć. Nie będę na to narzekał bo końcówka była trochę nużąca dla mnie, dla Bartka również.

Pierwszą prezentacja mówiła o o serwisie partype.pl. Tematyka serwisu zdecydowanie nie w moich kręgach zainteresowań, ale prezentacja było ok. Nic ponad to. Twórcy mają problem z wypełnieniem serwisu treścią i pozyskaniem użytkowników. ktoś chce im pomóc i się zarejestruje?

Za to druga prezentacja była dla mnie bombowa. Pokazywała serwis dla podróżników. Niby takie nic prawda? Serwis jak wiele innych już w internecie. Ale ten naprawdę mi się spodobał. Bartek Raciborski ma fajny pomysł na realizację tego i w jaki sposób czerpać pieniądze z takiego serwisu. Serwis ma niecodzienną domenę: travels.to, ale Bartek Raciborski bardzo dobrze potrafił obronić zasadność takiej domeny. Po pierwsze domeny takie jak: last.fm czy del.icio.us przyjęły się bardzo dobrze. Po drugie adresy w stylu bartek.travels.to (prowadzący do strony z podróżami Bartka), albo travles.to/china (opisująca podróże do Chin) wydają się być fajnym pomysłem. Twórcy tego serwisu podróżniczego nie mają problemów z wypełnieniem serwisu początkową treścią, czy pozyskiwaniem użytkowników. Jeśli ktoś się zainteresował tym to polecam zajrzeć na bloga Travels.to.

Trzecie wystąpienie to prezentacja LinkLift (strona teraz chyba w przebudowie bo wyglądała ładniej) serwisu pośredniczącego w sprzedaży lików tekstowych. Michał Lisicki i Aleksandra Dobrakowska mówili o znaczeniu linków tekstowych i o serwisie LinkLift. Firma zainteresowała mnie już wcześniej, kto wie czy nie umieszczę jakis linków od nich u siebie na blogu. A myślę, że wielu użytkowników Joggera z tego skorzysta. Zdradzę tyko, że obok słowa ,,współpraca'' Aleksandra wymieniła słowo ,,jogger''.

Potem była przerwa podczas której wszyscy oblegali bar i kupowali napoje różne, różniste. Porozmawiałem chwilę z chłopakami z Hostingrails.pl. Była mała dyskusja, później również o tym rozmawiałem z Wiktorem Schmidtem, o programistach RoR. Wniosek był jeden: programistów brakuje bo nie ma zainteresowania tą technologią firm (zainteresowanie jednak jakieś jest), ale firmy nie wykonują w Railsach projektów bo nie ma programistów. Takie błędne koło. Wymieniłem też kilka zdań na temat Joggera.

Druga część była dla mnie mniej interesująca i opiszę ją bardziej szczątkowo. Wiktor Schmidt mówił o technice ,,długiego ogona'' w AdSense. Temat ciekawy dla ludzi od marketingu, reklamy w internecie. Ja słuchałem, dowiedziałem się kilku nowych rzeczy i to wszystko. Potem Jan Mazurczak, redaktor naczelny portalu Tutej.pl mówił o tworzeniu portalu lokalnego w internecie. Jeśli ktoś interesuje się mediami i dziennikarstwem w internecie to prezentacja ta by go pewnie zainteresowała.

Podsumowując: ,,kupa wiary'', nowe znajomości, dwie dla mnie ciekawe prezentacje, udana impreza.
W sieci można już przeczytać relację z Barcamp i obejrzeć wywiady.
Dziwne by było, gdyby Tutej.pl nie napisało o poznańskim Barcampie.
Na sam koniec już. Na stronie pewnie pojawi się jakieś wideo, jakieś zdjęcia, materiały z prezentacji. Warto zajrzeć.

Seban Redux

02 września 2007 | Klucze: Ogólne
3 komentarze. trackback

Wyjaśnienia

Niecały rok temu (10 miesięcy) również sporo zmieniałem w swoim życiu. Postanowiłem uporządkować i usprawnić swoje życie. Zacząłem stosować Getting Things Done oraz Hipster PDA (cały czas z tego korzystam). Jednak w tamtych zmianach najważniejsze było coś innego. Coś bardziej osobistego i dlatego o tym (i o takich rzeczach) tutaj nie napiszę. Efekt jest taki, że tamta zamiana jest już nieaktualna. Obecnie zachodzące zmiany mają (mam nadzieję) większy zasięg i dużo większy wpływ na całe moje życie. Powoli z czasem będę odkrywał co to za zmiany. Cierpliwości. Ważną zmianą jest również przeniesienie bloga z Jabby na Joggera.

Zapowiedzi

Oczywiście postaram się w wolnym czasie regularnie pisać. O czym będę pisał? Mam już kilka pomysłów na wpisy, starczy na dwa miesiące (zakładając jeden wpis na tydzień). Postaram się kontynuować tematykę z poprzedniego bloga. Na pewno nie zabraknie tutaj wpisów mówiących o LaTeXu, o Ruby on Rails, języku Ruby, czasem pewnie też o innych językach programowania. Na pewno nie zabraknie też Linuksa i wolnego oprogramowania. Pewnie będzie jeszcze trochę o problemach jakie spotkałem i nadal spotykam pracując przy moich projektach. Co jeszcze? Nie wiem.

To jak już wszystko wyjaśniłem ... Do usłyszenia!
Ciągle jest problem z zaimportowaniem wpisów z ostatniego półrocza, ale mam nadzieję, że uporam się z tym (przy pomocy Sparrowa). Póki co wszystkie wpisy są dostępne pod adresem jabba.pl/seban