Routing w Rails 3, nowości

Jednym z ważniejszych plików konfiguracyjnych aplikacji napisanej w Ruby on Rails jest plik routes.rb. Plik zawiera mapowania do wszystkich zasobów aplikacji, aby były (lub nie były) dostępne przez URL. W rails 3 wprowadzono sporo zmian w tej kwestii, chciałbym po krótce opisać chociaż najważniejsze z nich. Po pierwsze zniknęło słowo map, dobrze znane z poprzedniej wersji frameworka. Uprościło to trochę zapis. Np. w poprzedniej wersji taki zapis:

można teraz zapisać jako:

[…]

By | Lipiec 29th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania Routing w Rails 3, nowości została wyłączona

Pickle na Rails3

Aplikacja, którą piszę w RubyOnRails idzie tak wolno i wymaga tyle refaktoringu, że postanowiłem ją przepisać w Rails3. Na szczeście projekt jest w początkowej fazie a większość pracy dotyczyła samego wyglądu aplikacji więc przenosić się można. Podczas przygotowywania środowiska jednak napotkałem na jeden problem. Gem, którego chętnie używam do testowania – Pickle – nie za bardzo chciał współpracować z rails 3. Problemem były generatory, których składnia w nowych railsach trochę się zmieniła. Znalazłem jednak rozwiązanie, polecane nawet przez samego autora. Otóż należy użyć forka projektu zrobionego prze codegrama, który rozwiązał ten problem. Jak to zrobić? […]

By | Lipiec 16th, 2010|Categories: Programowanie|Tags: , , |Możliwość komentowania Pickle na Rails3 została wyłączona

Test Driven Development

Chciałbym popełnić kilka artykułów na temat Agile, ale zanim to zrobię, chcę wyjaśnić na czym polega Test Driven Development (TDD), które jest ściśle powiązane z tą metodologią. Test Driven Development – ogólny przegląd Programowanie oparte na testach (bo tak to można przetłumaczyć) różni się od tradycyjnego, że testy pisane są przed kodem. Ciężko to zrozumieć zanim się tego nie zrobi, a jeszcze ciężej zrozumieć, że ta metoda na prawdę działa. Otóż zanim weźmiemy się za programowanie jakieś funkcjonalności najpierw piszemy do niej test. Gdy go uruchomimy – wiadomo – oznaczony zostanie kolorem czerwonym jako błędny. Drugim krokiem jest napisanie „tak mało kodu jak to tylko możliwe, jednak wystarczająco, aby test przeszedł. Trzecim ostatnim krokiem, jest poprawienie kodu (zarówno programu jak i testu) aby zwiększyć jego czytelność i funkcjonalność, nie psując przy tym testu. Trzeci krok nie jest obowiązkowy. Metodologia ta mówi także, że ten proces nie powinien zająć mniej niż 10 minut. […]

By | Lipiec 13th, 2010|Categories: Programowanie|Tags: |Możliwość komentowania Test Driven Development została wyłączona

WebSocket Interface

Jedną z ciekawszych nowinek, które mają być wprowadzone wraz ze standardem HTML 5 jest (a może „są”…) WebSockets. To do czego WebSockets mają służyć idzie opisać jednym zdaniem: ” Strony internetowe za pomocą protokołu WebSockets mogą nawiązać DWUSTRONNE połączenie ze zdalnym serwerem.” Do tej pory, komunikacja była jednostronna. Ze strony zostało wysyłane zapytanie i serwer zwracał odpowiedź. Wprowadzenie technologii AJAX zautomatyzowało trochę ten proces, uruchomiony w przeglądarce javascript automatycznie wysyłał zapytanie i obsługiwał nadesłaną odpowiedź. Mimo iż to przypomina dwustronną komunikację – nadal jest ona jednostronna. Czasami takie zapytania są powtarzane w bardzo krótkich okresach czasu (20-30 sekund) – nazywa się to HeartBeating (bicie serca). Główny problem jednak pozostaje taki sam: generowane jest wiele zapytań, które serwer musi obsłużyć. Na szczęście AJAX pozwala na minimalizację pytania i aktualizację tylko części strony, a nie pobieranie całej strony co kilkadziesiąt sekund, jednak problem pozostaje problemem. […]

By | Lipiec 12th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania WebSocket Interface została wyłączona

Szybka instalacja Drupala za pomocą Drush

Z doświadczenia wiem, że wszystkie czynności, które mogę wykonać z konsoli zabierają mi mniej czasu niż w interfejsie graficznym. No może przesadziłem, że wszystkie – przynajmniej większość z nich. Jeżeli zatem jest alternatywa, to zawsze wybiorę rozwiązanie konsolowe. Dobrym przykładem jest narzędzie Drush. Jest to narzędzie, które pozwala nam z konsoli zainstalować drupala, moduły do niego, łączyć się z bazą danych i w pewnym stopniu administrować witryną z poziomu konsoli. Możliwości jest wiele, polecam zatem do samodzielnego ich sprawdzenia. Pierwszym krokiem, który musimy uczynić jest zainstalowanie drusha. Musimy go pobrać z tej strony, oraz rozpakować w dowolnym folderze. Następnie utworzyć link symboliczny do takiego miejsca, aby był w zasięgu zmiennej PATH. […]

By | Lipiec 9th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania Szybka instalacja Drupala za pomocą Drush została wyłączona

Pakowanie aplikacji za pomocą ChocTop

Aplikacje działające w systemie MacOS X charakteryzują się specyficznym modelem dystrybucji. Otóż aplikacje takie są spakowane jako obraz dysku typu DMG. Taki obraz montuje się jako zewnętrzny nośnik i dopiero widzimy co jest w środku. Dodatkowo folder widoczny po zamontowaniu możemy w dowolny sposób upiększyć. Można dowolnie ustawić tło okienka i jego wielkość, można zmienić domyśle położenie ikonki i programu i jej wielkość. Wszystko po to, aby system nie był taki „suchy i jednolity”. Dodatkowo tak przygotowany obraz dysku umieszczamy gdzieś w sieci aby był dostępny do pobrania. Wszystko to musimy jednak robić ręcznie …chyba, że korzystamy z narzędzia ChocTop. ChocTop jest specjalnie przygotowanym instalatorem działającym z lini poleceń, który przygotowany jest jako gem ruby’ego. […]

By | Lipiec 7th, 2010|Categories: Programowanie|Tags: , , , |Możliwość komentowania Pakowanie aplikacji za pomocą ChocTop została wyłączona

Jak powinna wyglądać dobra historyjka użytkownika?

W zwinnym procesie wytwarzania oprogramowania, ważnym elementem są historyjki użytkownika (user stories), na podstawie, których generowane są zadania do wykonania i testy akceptacyjne. Jakie cechy powinna mieć dobra historyjka? Przede wszystkim powinna być skierowana na klienta. W najlepszym wypadku powinna być napisana przez samego klienta, ale nie zawsze mamy taką możliwość. Przede wszystkim powinniśmy podczas definiowania historyjki używać zdań zrozumiałych dla klienta. Zdanie „zwiększenie przestrzeni wokół pola wyszukiwania” jest o wiele więcej mówiące dla większości czytelników niż „zmiana margin i padding w szablonie stylu strony”, które to zdanie jest zrozumiałe właściwie tylko dla programistów. Unikanie żargonów i skrótów myślowych jest kluczowe. Najlepiej jest gdy podczas definiowania historyjek „wcielimy się” w rolę klienta i z tej prespektywy będziemy je definiować. […]

By | Lipiec 6th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania Jak powinna wyglądać dobra historyjka użytkownika? została wyłączona

To że Windows jest…

dziurawy, to wie chyba każdy, kto interesuje się chociaż trochę bezpieczeństwem komputerów. Jednak dzisiaj potwierdziła to jedna z największych firm informatycznych świata - Google. Po ostatnich atakach chińskich hakerów na komputery stacjonarne pracowników firmy, zdecydowali oni, na całkowite porzucenie tego systemu operacyjnego. Do tej pory pracownicy Google mogli wybrać system operacyjny, na którym chcą pracować: [...]

By | Czerwiec 1st, 2010|Categories: MiszMasz|Możliwość komentowania To że Windows jest… została wyłączona

Zdalne, współdzielone repozytorium GIT.

Kilka miesięcy temu opisałem jak pracować ze zdalnym repozytorium Git. Został tam opisany najprostrzy sposób jak swój projekt umieścić na serwerze. Jednak gdy chcemy ten projekt współdzielić z innymi programistami możemy napotkać kilka problemów. Chciałbym jako uzupełnienie tamtego artykułu napisać krok po kroku jak skonfigurować zdalne repozytorium tak aby kilku programistów mogło się z nim łączyć przez ssh. Czynności, które musimy wykonać po stronie serwera: Wybieramy miejsce na repozytorium, np. „/opt/repos/git” i przechodzimy do niego.

Tworzymy grupę systemową git i dodajemy do niej użytkowników, którzy mają dostęp do repozytorium Zmieniamy uprawnienia plików w ten sposób, aby członkowie tej grupy mieli prawo zapisu we wszystkich podfolderach tego katalogu. Zablokować zapis dla innych.

[…]

By | Marzec 15th, 2010|Categories: Programowanie|Tags: |Możliwość komentowania Zdalne, współdzielone repozytorium GIT. została wyłączona

Rails Template

Idąc za ciosem postanowiłem wydłubać własny szablonik do startu z aplikacjami. Jest on dostępny na githubie i można śmiało z niego korzystać. Co robi szablonik? inicjuje repozytorium Git, dodaje niektóre miejsca i pliki do ignore’a po czym zatwierdza resztę. instaluje platformę testową RSpec, RSpec-Rails, Cucumber, Factory_Girl i Webrat. instaluje authologic i declarative_authorization, tworzy model do dodawania artykułów oraz cruda do niego. tworzy model użytkownika, ról  i sesji tworzy widoki dla artykułów, panel logowania i edycja profilu. tworzy dwie początkowe role: user i admin. nadaje uprawnienia: gość może czytać artykuły, założyć konto i się zalogować, użytkownik może się wylogować, dodać artykuł, edytować lub usunąć własny artykuł, edytować swój profil, admin może wszystko. […]

By | Marzec 5th, 2010|Categories: Programowanie|Tags: , |Możliwość komentowania Rails Template została wyłączona