Skąd ta przerwa ?

Cóż ostatnie dwa miesiące były dla mnie dość wyczerpujące … praca, studia i summer of code nie pozostawiały mi zbyt wiele czasu i energii na udzielanie się tutaj. Na szczęście wszystko jak na razie idzie bardzo dobrze … może z wyjątkiem studiów bo czeka mnie jeszcze (średnio przyjemna) batalia wrześniowa …

Na chwilę obecną mogę odłożyć sobie studia na półkę i zająć się przyjemniejszymi rzeczami ;). Właśnie kończę implementować (a właściwie to dokumentować (sic!) już powstały kod) drugi z zaplanowanych czterech milesone’ów w projekcie Cocoon 3 monitoring, tak więc połowa mojego projektu zbiega się praktycznie idealnie z połową summer of code.

Na chwilę obecną mogę uchylić rąbka tajemnicy odnośnie kolejnego posta … będzie on dotyczył dynamicznej rejestracji MBean’ów oraz dynamicznego wymuszenia ich “hierarchizacji” z wykorzystaniem Spring JMX (brzmi tajemniczo, zwłaszcza druga część ;)). Mam nadzieje, że uda mi się zebrać w sobie i w przeciągu najbliższego tygodnia (… no może dwóch) opublikować ten wpis 😉

Własne zapasowe repozytorium GIT

Oto prosty sposób na przeniesienie repozytorium GIT na pendrive, czy inną przenośna pamięć.

  1. Dla uproszczenia dodamy sobie nasze wymienne repozytorium do pliku /etc/fstab w tym celu:
    ls -l /dev/disk/by-uuid # odnajdujemy na liście nasz urządzenie,
    w moim przypadku sdb1
    mkdir /mnt/git-gsoc # tworzymy odpowiedni katalog do montowania
    chown lock:lock /mnt/git-gsoc # zmieniamy właściciela

    przy użyciu ulubionego edytora edytujemy /etc/fstab. Dodajemy następującą linie:

    UUID=<uuid z pierszego polecenia> /mnt/git-gsoc	<system plików> user,rw,noauto 0 0
  2. Teraz przydało by się zawartość naszego obecnego repo przenieść do nowego …  wystarczy skopiować główny katalog repozytorium 😉 (prostota git’a)

Mając już sklonowane repozytorium przydał by się jeszcze jakiś skrypt który za nas wykona zbędne rzeczy (tj. podmontuje pamięć, odpali git-deamon, a potem po sobie posprząta ;)).

#! /usr/bin/bash
# Copyrighted, 2009
# Developed by Dariusz Luksza &lt;dariusz[at]luksza[dot]org&gt;
# License: GPL v2
 
case "$1" in
connect)
	echo -n Montuje urzadzenie ...
mount /mnt/git-gsoc &amp;&gt; /dev/null
if  [ "$?" -eq "0" ]
then
		echo " DONE."
		echo -n Startuje git gaemona ...
		git daemon --export-all --base-path=/mnt/git-gsoc/backup --detach \
			--pid-file=/mnt/git-gsoc/git-daemon.pid --enable=receive-pack --listen=localhost
		echo " DONE."
exit 0
else
		echo Wystapil blad podczas montowania, sprawdz urzadzenie!
exit 1
	fi
	;;
disconnect)
if [ -e /mnt/git-gsoc/git-daemon.pid ]
then
		echo -n Zatrzymuje git daemona ...
kill `cat /mnt/git-gsoc/git-daemon.pid`
rm /mnt/git-gsoc/git-daemon.pid
		echo " DONE."
		echo -n Odmontowuje urzadzenie ...
sync
		umount /mnt/git-gsoc/
		echo " DONE."
exit 0
else
		echo Daemon nie zostal uruchomiany
		exit 1
	fi
	;;
*)
	echo Uzycie:
	echo "    " $0 "[connect|disconnect]"
	;;

Oczywiście każdy sam musi sobie dostosować ścieżki dostępu 🙂

Kiedy mamy już wszystko poustawiane warto by sprawdzić czy wszytko działa poprawnie tj. uruchamiamy powyższy skrypt z parametrem connect i po chwili powinniśmy mieć uruchomionego daemona GITa. Teraz wystarczy do naszego lokalnego repozytorium dodać to które właśnie utworzyliśmy:

git remote add backup git://localhost/&lt;nazwa repo&gt;

i używać uchwytu backup 😉

Miłej zabawy ;>

Java4Poeple ’09

Kogo nie było, a  mógł być niech żałuje. Na prawdę warto było się zjawić. Osoby które uczestniczyły w zeszło rocznej edycji tej konferencji (de facto pierwszej) mogły narzekać na dyskomfort auli w której obywały się wykłady … ale w tym roku było zupełnie inaczej, zmieniło się miejsce prelekcji na WNEiZUS (czyli Wydział Nauk Ekonomicznych i Zarządzania Uniwersytetu Szczecińskiego … mam nadzieję że nic nie pokręciłem ;>) gdzie miejsca były na prawdę wygodne. Jakoś prezetacji stała na prawdę na wysokim poziomie, z resztą jak zawsze … mi osobiście najbardziej się podobały dwie prezentacje o:

  • git’cie (prelegent: Andrzej Śliwa): jako podsumowanie mogę powiedzieć tylko tyle, że nie wiedziałem, że można używać git’a jako swoistego backend’u do repozytoriów cvs i svn (polecenia git-svn i git-cvs jak również git svn i git cvs); ogólnie wiedziałem czym jest git, z czym to się je i jak powstał … ale dyskusja która się wywiązała w trakcie prelekcji w mojej opinii doprowadziła do wniosku, że do póki git nie będzie miał dobrego wsparcia w IDE (tj. eclipse którego sam namiętnie używam) to dla części developerów (tj. nie koniecznie dla mnie) task “migracja na git” pozostaje pozycją na liście TODObtw. dyskusje które się odbyły w czasie prelekcji IMHO były bardzo pozytywne, oby więcej takich aktywnych wykładów (taki sposób gdzie interakcja (nie koniecznie  zamierzona) ze słuchaczami jest duża trafia do mnie najbardziej)
  • grails: w tym wypadku Jacek Laskowski (mało kto go nie zna, a zwłaszcza jego blog’a) jak zawsze stworzył show, mimo że nie zawsze było ono przewidywane, ale kto jak kto … Jacek Laskowski potrafi obrócić na swoją korzyść wszystkie wpadki … showman’ów takich jak on na prawdę nie spotyka się wielu (znowu jestem pod wrażeniem jego prezentacji …). Z aktualnie znanych mi podejść do przedstawionego tematu tj. RDwA (Rapid Development web Applications) grails jest bardzo podobne do framework’ów Python’owych tj. Django i web2py, jedyną jego przewagą jest scaffold (rusztowanie) tj. coś co na etapie prototypowania pozwala zapomnieć o wszysktim innym, a potem potrafi wygenerować kod, tego właśnie brakuje w wspomnianych Django i web2pyaczkolwiek są tego (jak zawsze) złe i dobre strony. Ogólnie grails zachwyca zwłaszcza tym, że do hosting ciągle wymaga tylko JVM, po za tym prostota jest na prawdę duża … ale jeżeli musiał bym się uczyć nowego języka, jakim jest niewątpliwie jest groovy (na króym bazuje grails) wolał bym wybrać python’a i np. Jython ;> Fajnie że TO (tj. grails i groovy) działa na JVM ale osobiście wolę Python’a jeżeli chodzi o języki skryptowe ;>

Tym razem po konferencji odbyło się spotkanie integracyjne. Osobiście chciał bym podziękować Pawłowi Szulcowi oraz grupie JUG’owców z Lublina (o ile dobrze pamiętam ;>) za “panele dyskusyjne“. Jednocześnie chciał bym wszystkich przeprosić za NCDC‘owe dyskusje w czasie “integracji“, w takich przypadkach trzeba nam przerywać ;> serio mowie teraz … no ewentualnie zadawć pytania, żeby być też w miarę w teacie ;> OK, było jak było (IMHO było super) za rok trzeba powtórzyć konfereencję (Leszek, możesz liczyć na mnie tj. na moją pomoc), po za tym zapraszam wszystkich (Ciebie czytelniku też !!) na spotkania SzJUG nie tylko prelekcje ale też i spotkania przy piwie, nie bójcie się nas, nie gryziemy, nie parzymy itp.

Na prawdę mówię serio, każda nowa osoba jest mile widziana, bo każdy nowy człowiek to nowy wątek w  dyskusji, a na tym nam zależy ;> przedewszystkim nie bać się !!