Archiwum

Archiwum dla Grudzień, 2009

Spotkanie Czytelników Blogu Alexa 5.12

Grudzień 6th, 2009 [LocK] Brak komentarzy

To była bardzo długa sobota. Zaczęła się już w piątek o 22 kiedy to opuszczałem Szczecin, skończyła się dziś (tj. w niedziele) o 7 rano kiedy to wróciłem w miejsce skąd cała podróż się zaczęła. Celem spotkania było wspomniane w tytule Spotkanie czytelników blogu Alexa w Warszawie.

Do wyboru miałem 2 połączenia kolejowe Szczecin Główny -Warszawa Centralna:

  • wyjazd 21:30, 9h w pociągu, przyjazd 8:10
  • wyjazd 22:45, prawie 7h w pociągu, przyjazd 5:30

Bez większego namysłu wybrałem pierwszą opcję, gdyż najbardziej pasował mi czas przyjazdu pociągu, a w ciągu tych 9h można poczytać książkę i (prawie) wygodnie się zdrzemnąć w kuszetce. Podróż jest długa ale lepsze to niż błąkać się po Warszawie od 5:30 ;)

Na miejsce spotkania dotarłem jako pierwszy ;) . Po krótkim przywitaniu z Alexem, na własną prośbę, dostałem zadanie powycinania wizytówek to identyfikatorów … muszę powiedzieć, że obsługa gilotyny nie jest taka prosta na jaką wygalda ;) na szczęście znalazły się osoby które też chciały się o tym przekonać ;) , dzięki temu mogłem zająć się (prawie beztroskim) wkładaniem wyciętych wizytówek w identyfikatory ;) (co udawało się mi znacznie lepiej niż ich wycinanie ;) ).

Spotkanie zaczęło się punktualnie o 11. Zdziwiło to, że nie pojawił się komplet osób, mimo iż jasno w treści zaproszenia było napisane, żeby o nie możności przybycia poinformować organizatora (tj. Alexa) co skutkowało tym, że miejsce dostawała to osoba z listy rezerwowej. Szkoda, że tak się stało gdyż te miejsca mogły zostać wykorzystane przez interesujące osoby dając im sporą wartość dodaną.

Pierwszym punktem programu była autoprezentacja. Każdy dostał ~45 sekund na przedstawienie siebie odpowiadając na 5 pytań pomocniczych. Taki wstęp pozwolił poznać wszystkich uczestników, muszę przyznać że na spotkanie przyjechali na prawdę wyjątkowi i ciekawi ludzie, spora część z nich związana jest z ogólnie pojętą branżą IT (od programistów, przez managerów, po testerów) ale nie zabrakło też reprezentantów innych grup zawodowych (architektów, nauczycieli, artystów itp.). Alex na bieżąco omawiał popełniane przez nas błędy co dawało od razu materiał do przemyśleń i poprawek we własnym wystąpieniu.

Już przed wyjazdem wiedziałem, że mam problem z wystąpieniami publicznymi ale liczyłem na to, że autoprezentacja nie będzie wymagała wyjścia na środek … a tu się okazało inaczej. Wysłuchiwałem bacznie moich przedmówców oraz rad Alexa i na bieżąco “nanosiłem” poprawki na to co miałem w głowie. Kiedy zdecydowałem, że jestem już gotowy ruszyłem śmiało na środek … w czasie tych paru kroków dzielących moje miejsce od środka sali zapomniałem praktycznie wszystko … kiedy stanąłem przed zgromadzonymi cieszyłem się, że nie zapomniałem jak się nazywam i skąd przyjechałem ;) . W moim przekonaniu moja auto prezentacja wypadła dość słabo, brak było kontaktu wzrokowego z audytorium (nie pomogły nawet Alexa gestykulacje, żeby to poprawić :| ). Zapomniałem o najważniejszych rzeczach które mnie wyróżniają spośród innych … Ta “lekcja” była dla mnie bardzo przydatna, wpajana “wrodzona skromność” (uznawana za dobrą cechę) okazuje się bezużyteczna aktualnie, jeżeli nie zainteresujesz swoją osobą (nie ważne czy będzie to osoba rekrutująca, szef w pacy, czy poznana dziewczyna) innych to nie masz co liczyć na to że sami będą chcieli ciebie odkrywać. Skoro problem jest już określony teraz zostaje “tylko” go poprawić ;) zobaczymy co z tego wyniknie ;>

Kiedy już wszyscy się przedstawili nastąpiła przerwa na kawę/herbatę i kuluarowe rozmowy. W gwarze jaki panował przed salą ciężko było prowadzić w/w rozmowy … aczkolwiek sam gwar wskazywał na to, że większości się to “jakoś” udawało, co powodowało ciągłą eskalację problemu przekrzykiwania się na wzajem ;)

Po przerwie zajęliśmy się problemem poczucia własnej wartości. Za dużo miejsca i czasu zajęło by mi opisywanie w całości tej części spotkania. Ogólny zarys jaki pozostał w mojej głowie po niej jest taki, że za niskie poczucie własnej wartości po części odpowiada nasze otoczenie które wyraża swoją “opinię” na nasz temat chcąc poprawić sobie własne samopoczucie. W takich wypadkach Alex proponuje poprosić naszego rozmówce o sprecyzowanie co ma na myśli mówiąc, że jesteśmy “idiotami”, “półgłówkami” itp. gdyż takie opinie mogą nie być poparte żadnymi racjonalnymi powodami. Z drugiej strony to my sami powodujemy u siebie zaniżenie poczucia własnej wartości stawiając sobie zbyt wysoko poprzeczkę, starając się dążyć do tego żeby być idealnym. Nawet jeżeli udało by się nam zostać “ideałem”, to z takim ideałem ciężko się żyje innym. Kolejną sprawą jest to, że przez naszą “wrodzoną skromność” mamy skłonność do bagatelizowania i zaniżania wartości naszych sukcesów/osiągnięć. Często wydaje się nam, że jeżeli sukces nie był trudny w osiągnięciu to nie jest on czymś z czym możemy być dumni, zapominając o tym, że posiadając pewne predyspozycje zrobienie pewniej rzeczy dla nas jest łatwiejsze niż dla innych … ot chociażby dostanie czegoś z górnej półki jest łatwiejsze dla osób wyższych ;) . Z predyspozycjami mentalnymi/psychicznymi czy też zdolnościami/talentami jest podobnie jak z wzrostem, nie każdy jest wysoki.

Następnie nastąpiła dłuższa przerwa na posilenie się … kanapki były wyborne ;>. Gwar przed salą trochę opadł bo część uczestników rozmawiała w sali, tak więc zrobiło się też bardziej przestronnie. Można było dłużej porozmawiać z innymi uczestnikami spotkania ;)

Po tej przerwie zaczęła się dyskusja na temat “sprzedawania się”. W sumie IMHO był to taki szybki pokaz jak aktywnie uczestnicząc w rozmowie, zadając pytania otwarte, można wyciągnąć od rozmówcy potrzebne informacje np. jakie cech powinna mieć osoba starająca się o awans. Wnioskując dalej można też by powiedzieć, że zadając odpowiednie pytania można manipulować (dla niektórych słowo “manipulować” jest w tym kontekście zbyt duże, IMHO pasuje znakomicie) całym tokiem rozmowy i rozmówcą. Alex udzielał masy rad, o co pytać, jak pytać, jak odpowiadać w dodatku na żywo przeprowadził parę warsztatów z uczestnikami gdzie ich rozmowa (nazwijmy ją umownie) “kwalifikacyjną” została potem przez Niego omówiona pod kątem popełnionych błędów, również Alex udzielał rad jak taki błąd poprawić, po czym rozmowa odbywała się ponownie z tym samym scenariuszem w czasie której to błędy powinny zostać poprawione. Porównanie takich dwóch rozmów uświadamia jak ważna jest umiejętność wprawnego używania języka polskiego oraz samo opanowanie Bez opanowania, nawet kiedy pytania jakie trzeba zadać są napisane na kartce, zdarzają się pomyłki; stres bierze górę nad chłodną oceną sytuacji … i cały misterny plan może posypać się jak domek z kart.

Całe spotkanie skończyło się kilka minut przed godziną 20. Po spotkaniu jeden z uprzejmych uczestników podwiózł mnie na dworzec PKP, za co Jemu serdecznie dziękuję ;) . Los tak chciał, że na dworcu spotkałem jednego z uczestników spotkania z którym mogłem porozmawiać w czasie oczekiwania na nasze pociągi ;)

Podróż powrotna trwała 9h, o 6:30 byłem już w Szczecinie … tak to się zakończyła ta wyjątkowa sobota.

Podsumowując całość. Na prawdę cieszę się, że pomimo mojej długiej nie aktywności na blogu Alexa mogłem uczestniczyć w tym spotkaniu. Tych kilka (no kilkanaście) godzin w pociągu na prawdę było warte całej atmosfery, poznanych ludzi i ogromu wiedzy jaką w ciągu kilku godzin tego spotkania zdobyłem. Na prawdę podziwiam w Alexie jego wiedzę, profesjonalizm, charyzmę oraz przede wszystkim to, że potrafił dla nas znaleźć czas oraz mimo przebytej kilka dni wcześniej choroby nie odwołał spotkania. Podziwu godny jest też sposób prowadzenia przez Alexa całego spotkania, trwało ono 9 godzin, a ani przez chwile nie czułem znużenia czas ten zleciał mi szybciej niż nie jeden wykład na uczelni, a czas trwania obu jest nie porównywalnie inny.

Żałuję tego, że nie zdobyłem się na odwagę żeby aktywniej uczestniczyć w spotkaniu oraz lepiej się zaprezentować na początku spotkania … może uda się to kiedyś naprawić ;) .

Zdjęcie większości uczestników jak i podsumowanie spotkania autorstwa Alexa dostępne jest tutaj.

Prywatne repo git’a cz.2

Grudzień 2nd, 2009 [LocK] Brak komentarzy

W poprzednim poście de facto mało zajmowaliśmy się git’em … szczerze powiedziawszy to skonfigurowaliśmy tylko lighttpd które to później będzie nam potrzebne do uruchomienia cgit‘a czyli interfejsu www w którym będziemy mogli obejrzeć sobie nasze repo. Dziś za to zajmiemy się instalacją i konfiguracją gitosis.

Czym jest gitosis i o czego będzie nam potrzebne?

Cóż, podobnie jak sam git, gitosis jest zestawem skryptów ułatwiającym prace z repozytorium. Zestaw tych skryptów odpowiedzialny jest za kontrolę dostępu do repo jak i za sam dostęp do niego.

Jak działa gitosis?

“Integruje” się ono z serwerem SSH, “integruje się” to za wiele powiedziane, bo sshd wykorzystywane jest tylko do autoryzacji użytkowników oraz transferu danych z i do repo. Samo gitosis nie uruchamia dodatkowego daemona, jak już wspomniałem korzysta z sshd.

Jak przebiega proces autoryzacji ?

Podobnie jak w GitHub‘ie najpierw trzeba dodać nasz klucz publiczny, żebyśmy mogli zostać z autoryzowani, następnie przy każdej próbie połączenia z repo będzie on wykorzystywany do przeprowadzenia autoryzacji … nie ma w tym żadnej wielkiej filozofii, dorzycamy nasz klucz i wszystko po prostu działa.

Ok, więc może w końcu do sedna … zaczynamy od zainstalowania pakietu gitosis w systemie:

apt-get install gitosis

Proces instalacji sam utworzy w systemie konto użytkownika (standardowy login to gitosis), założy mu katalog domowy (standardowo: /srv/gitosis). Jeżeli bardzo chcemy to możemy to zmienić korzystając ze standardowej komendy usermod dla uproszczenia ja będę się posługiwał standardową nazwą użytkownika. Pozostaje nam tylko inicjalizacja i konfiguracja:

sudo -H -u gitosis gitosis-init < id_rsa.pub

Gdzie id_rsa.pub jest naszym kluczem publicznym używanym przez naszego klienta ssh … fajnie to brzmi ale co to właściwie jest ? ;) Dokładny opis jak taki klucz sobie wygenerować (i co z nim zrobić) znajduje się tutaj. Generalnie powinien być to klucz który będzie identyfikował naszą maszynę z której będziemy się łączyć do repozytorium (tj. klucz prywatny i publiczny powinny być zapisane w katalogu ~/.ssh na twoim desktopie/laptopie, tylko klucz publiczny w celu instalacji go w konfiguracji gitosis powinieneś skopiować na serwer na którym instalujesz repozytorium). Powyższa komęda powinna zainicjalizować repozytorium git/gitosis oraz dodać wskazany klucz publiczny jako klucz administratora. Jeżeli mamy szczęście to po wykonaniu poniżeszej komędy na naszym desktopie/laptopie (tj. na tym na którym znajduje się para ~/.ssh/id_rsa i ~/.ssh/id_rsa.pub):

git clone gitosis@adres_serwera:gitosis-admin.git

Jeżeli powyższa komenda nie wykona się poprawnie (jak to było w moim przypadku) zmuszeni jesteśmy skonfigurować gitosis ręcznie. W tym celu udajemy musimy przeedytować plik /srv/gitosis/.ssh/authorized_keys (tak wiem, że nie powinno się go edytować … ale co nam pozostaje ?) i zmienić “domyślny” login na identyczny z tym podanym w komentarzu do naszego klucza prywatnego (to jest to co podaliśmy za przełącznikiem -C podczas jego tworzenia), wartość klucza publicznego (to jest ten dziwny ciąg znaków za ssh-rsa) oraz na samym końcu ponownie wstawiamy wartość z naszego komentarza. Po wykonaniu tych zmian i ich zapisaniu ponownie próbujemy sklonować repozytorium z konfiguracją (czyli jeszcze raz wydajemy poprzednią komendę) … jeżeli znowu nie wykona się poprawnie … cóż czasem trzeba sobie radzić samemu ;)

Ok, zakładam że w końcu uda się pobrać z serwera konfigurację z serwera … tak, na prawdę gitosis przechowuje swoją konfigurację w formie jednego z repozytoriów. Jest to dość wygodne, gdyż nie wymusza na nas logowania się na serwer celem zmiany konfiguracji (w wypadku dodania użytkownika repozytorium, czy też nowego projektu). W każdej chwili możemy sobie ta konfigurację pobrać, zmodyfikować, “wepchnąć” z powrotem i usunąć ;) jak dla mnie bomba ;) .

Co do samej konfiguracji to składa się ona z 2 rzeczy:

  • pliku z konfiguracją (znajdują się tam definicje repozytoriów, grup i praw dostępu)
  • katalogu z kluczami publicznymi użytkowników

W katalogu keydir/ znajdują się klucze publiczne użytkowników, w postaci:

uzywany_login.pub

najczęściej login ma postać adresu email, więc przykładowy plik dla użytkownika wlodek@luksza.org będzie się nazywał wlodek@luksza.org.pub … jest to niezmiernie skomplikowane, nieprawdaż ;)

W przypadku kiedy chcemy dodać nowego użytkownika bądź repozytorium musimy przeedytować plik gitosis.conf, jego opis można znaleźć tutaj. W przypadku użytkowników należy pamiętać o zgodności nawy użytkownika z nazwą pliku zawierającą jego klucz publiczny. Dodatkowo warto wspomnieć o tym, że dla każdego repozytorium możemy zdefiniować właściciela (parametr owner ;) ) oraz opis (description), są to przydatne parametry zwłaszcza podczas eksploracji repozytorium przy użyciu cgit‘a czy też gitweb‘a.

Kiedy już wykonamy wszystkie zmiany commit’ujemy je do lokalnego repo, a potem wypychamy do głównego:

git commit -a
git push

W ten prosty sposób administrujemy repozytorium git’a zarządzanym przez gitosis ;)

BTW. Chyba szykuje się nam zmiana na miejscu domyślnego repo Eclipse Fundation możliwe, że nowe repo będzie obsługiwane przez git’a, “pierwsze” takie przesłanki można znaleźć tutaj.