Mar
5
2010
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.
Planuję jeszcze nad kilkoma dodatkami, ale nie wiem jeszcze dokładnie co i jak. Muszę to przemyśleć. Jak na razie szablon tworzy to, co w prawie każdej aplikacji istnieje. Modele można rozbudować wg własnych potrzeb ale mamy już dobry punkt początkowy.
Zapraszam do testowania i wyrażania swoich uwag.
no comments | tags: github, Rails, rails templates, Ruby | posted in Programowanie, WebDeveloping
Dec
12
2009
Jeżeli tworzymy kilka aplikacji w ruby on rails, to przeważnie początkowe etapy są do siebie bardzo podobne. Np. inicjalizacja kontroli wersji (np. w sposób jaki jest opisany w poprzednim artykule), instalacja ulubionych pluginów, usuwanie zbędnych plików, Czy też inne operacje. Na szczeście do pomocy przychodzą nam Templates, które zostały wprowadzone w rails 2.3. Teplate to nic innego niż plik ruby, w którym wpisujemy komendy w przygotowanym do tego języku domenowym (DSL). Po przygotowaniu takiego szablonu inicjujemy projekt rails z parametrem -m ścieżka_do_szablonu.rb. Rails od razu po wykonaniu inicjacji projektu od razu uruchomi podany plik.
rails my_app -m ~/szablon_startowy.rb
tak samo jak URI, możemy uzywać URL:
rails my_app -m http://marioosh.5dots.pl/szablon.txt
(powyższy plik nie istnieje więc nie testujcie
)
ostatnim sposobem jest inicjacja szablonu przed odpowiednie zadanie rake z ustawienie zmiennej LOCATION:
rake rails:template LOCATION=~/szablon_startowy.rb
› Continue reading
no comments | tags: Rails, rails templates, Ruby | posted in Programowanie, WebDeveloping
Dec
11
2009
Za każdym razem, gdy rozpoczynam pracę z projektem, muszę skonfigurować Git, aby repozytorium nie zawierało zbędnych plików.
Cała operacja jest wykonywana w kilku krokach, gdzie pierwszym z nich będzie stworzenie nowej aplikacji rails na naszym komputerze. Następnie musimy zaiinicjować kontrolę wersji.
$ rails my_app
$ cd my_app
$ git init
$ git status
...
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# README
# Rakefile
# app/
# config/
# db/
# doc/
# log/
# public/
# script/
# test/
› Continue reading
no comments | tags: GIT, Rails, Ruby, SCM | posted in Programowanie
Nov
4
2009
Po aktualizacji systemu do MacOS X 10.6 (Snow Leopard) zauważyłem, że nie startuje moja baza danych Mysql. Sprawdziłem ręcznie co jest nie tak:
cd /Library/StartupItems/MySQLCOM
sudo ./MySQLCOM start
Could not find MySQL startup script!
aha! Poszedłem więc do /usr/local i zrobiłem link symboliczny
sudo ln -s mysql* mysql
Po ponownej próbie uruchomienia bazy danych otrzymałem komunikat:
Starting MySQL database server
Czyli wszystko ok.
no comments | tags: MacOS X, Mysql, Snow Leopard | posted in Ogólne, Programowanie
Nov
4
2009
Podczas pracy w terminalu, czasem zdaża mi się, że wynik, który otrzymuję muszę sprawnie przenieść do jakiegoś programu okienkowego. W przypadku dłuższych listingów przekierowywuję output na plik tekstowy i z niego potem odczytuję w drugim programie. Pracując na MacOS X znalazałem ułatwienie mojej pracy. Programy pbcopy i pbpaste odpowiedzialne są za wklejanie do i z pamięci podręcznej. Przekierowując output podczas np. listowania folderu na pbcopy mamy dostęp do tego listingu używając zwykłej fukncji ‘Wklej’ dowolnego okienkowego programu.
no comments | tags: MacOS X | posted in Programowanie
Oct
27
2009
Prawie cały dzień spędziłem na bezefektywnej próbie uruchomienia starego jBossa wygrzebanego z backup’u na moim Macu. Po dłuższych analizach znalazłem przycznę. Otóż, podczas startu, serwer ustawiał zmienną java.io.tmpdir. W systemie MacOS X w takim momenie zostaje utworzony nowy folder w /private/var/folders.Problemem jest to, że w nazwie tego folderu występują znaki plus +, które przez niektóre mechanizmy (np. Xerces) są traktowane jako spacje. Obejściem tego problemu jest ustawienie parametru java.io.tmpdir w JAVA_OPTS. JAVA_OPTS="-Djava.io.tmpdir=/tmp/". Zmienna ta w przypadku serwera jBoss jest ustawiana w pliku run.conf, więc należy go edytować i dopisać co podałem.
no comments | tags: Java, java.io.tmpdir, jBoss, MacOS X | posted in Programowanie
Aug
20
2009
Jak obiecałem w jednym z poprzednich artykułów opiszę jak wygląda praca z projektem za pośrednictwem zdalnego repozytorium.
Większość projektów nie jest prowadzona samodzielnie, jest w niego zaangażowane kilku (-nastu, -dziesięciu) innych programistów. Każdy z nich może lokalnie prowadzić własną ścieżkę, ale z doświadczenia wiem, że przydaje się jedno wspólne repozytorium. Punkt centralny dla naszej pracy.
› Continue reading
1 comment | tags: GIT, SCM | posted in Programowanie
Aug
19
2009
Zgodnie z zapowiedziami projekt DM Server prowadzony przez SpringSourcezostał zmigrowany z Subversion na GIT. Jest to już drugi projekt tej grupy, który przeniósł się na ten system kontroli wersji (pierwszy to Grails). › Continue reading
no comments | tags: GIT, SCM, Spring | posted in Programowanie
Aug
17
2009
Na codzień pracuję z IntelliJ IDEA. W tym IDE bardzo podoba mi się funkcja “szufladkowania zmian” podczas pracy z kontrolą wersji. Na codzień korzystam z Subversion i zdarza mi się z tej funkcji skorzystać. Na czym ona polega? Otóż, zdaża się, że pracujemy nad sporym kawałkiem kodu i już dość dużo zmian poczyniliśmy, gdy nagle dostrzeżemy błąd w aplikacji, który chcielibyśmy zmienić, zanim skommitujemy resztę zmian. Powyższa funkcja IntelliJ IDEA pozwala nam na odłożenie dotychczasowej pracy (czyli zmian od ostatniego commita) do szufladki – po czym, możemy poprawić błąd, scommitować zmiany i następnie z szufladki “wyjąć” kod, który napisaliśmy aby kontynuować pracę.
Wielce mnie ucieszyło, gdy zobaczyłem podczas pracy z GIT, że ma on taką funkcję wbudowaną out-of-the-box. Nazywa się ona ‘Stash’.
Wykonuje ona operację dokładnie tak jak opisałem powyżej, czyli…
1. Pracując z dłuższym kawałkiem kodu, mamy już sporo zmian, gdy dostrzegamy błąd aplikacji, który natychmiastowo powinniśmy poprawić.
2. Wykonujemy komendę
> git stash save "nazwa stasha"
Wykonanie tej operacji zachowa nasze dotychczasowe zmiany gdzieś na boku, a master tree przywróci do stanu HEAD.
3. Możemy poprawić nasz błąd i wykonać commit
> git commit -a -m "bugfix #2382
4. Przywracamy stan poprzedni, aby kontynuować pracę:
co jednocześnie usunie naszą “szufladkę”, jeżeli nie chcemy usuwać aby móc do tego stanu jeszcze wrócić wykonujemy komendę :
5. Kontynuujemy pracę.
Git Stash ma więcej możliwości, bo takich wirtualnych szufladek możemy tworzyć dowolną ilość i przywracać stan z każdej z nich. Możemy zatem poprogramować w stylu “co by było gdyby…” i wybrać najbardziej odpowiednią wersję napisanego kodu (dotyczy to zwłaszcza młodych programistów, którzy niejednokrotnie nie są pewni podejmowanych decyzji w programowaniu).
Młody czy stary programista – polecam GIT i funkcję stash.
Więcej o tej komendzie znajdziecie tutaj.
no comments | tags: GIT, IntelliJ, SCM | posted in Programowanie
Jul
27
2009
Znam kilka metodologii powstawania programów, jak na przykład na bazie testów (Test Driven Development). Jednak przy ostatnim projekcie, poznałem nowy: Hate Driven Development – jak tylko siadam przed komputerem w pracy to przechodzą mi dreszcze po plecach. Tak nienawidzę obecnego projektu, że aż dostaję niezłego kopa w produktywności. Chcę jak najszybciej go skończyć i o nim zapomnieć
… Chyba wcisnę tą definicję na wikipedię
1 comment | posted in Humor, Programowanie