October 11, 2007 at 12:06
· Filed under: Narzędzia
Z końcem września na oficjalnym blogu railsów pojawiła się informacja o nadchodzącej wersji 2.0. Przeskok od wersji 1.0 do 2.0 to zawsze jest trauma i dla projektu i dla jego użytkowników. O zmianach i ZMIANACH w railsach 2.0 mówiło się od jakiegoś czasu. Nie ma się co dziwić - projekt wyrósł z lokalnej anomalii do popularnego frameworka używanego przez wiele serwisów. Zmiany są więc konieczne zwłaszcza, gdy coraz częściej przebąkuje się o enterprajsowych zapędach RoR. Sam także miałem przygotowaną swoją prywatną listę oczekiwań wobec nowych railsów. Dopiero dziś miałem odrobinę czasu i zaległem w wannie, aby na spokojnie poczytać o tym co nadchodzi. Poczytałem i… przyznam trochę się rozczarowałem.
Read the rest of this entry »
[
rails]
Permalink
September 18, 2007 at 15:54
· Filed under: Recepty, Narzędzia
Przydarzyła mi się ostatnio konieczność napisania konwertera do logów. Chodziło z grubsza o zamianę logów wyplutych z aplikacji railsowej na format khm khm XML :) tak aby można było logi wygodnie analizować za pomocą narzędzia Apache Chainsaw (o sposobie wykorzystania tego narzędzia w Railsach pisałem już wcześniej ). Sprawa wydaje się trywialnie prosta, piszemy kawałek kodu w Rubym który wczytuje poszczególne linie z pliku wejściowego, a każdą linię poddaje działaniu RegExpów i sprawa gotowa ale…
Read the rest of this entry »
[
logger ruby tool]
Permalink
August 1, 2007 at 18:58
· Filed under: Narzędzia
Dziś na swoich stronach firma Atlassian poinformowała o przejęciu firmy Cenqua. Po przeczytaniu tej informacji pomyślałem - no nareszcie.
Przyglądając się bliżej produktom obu firm aż dziw bierze, że tak długo były to dwa odrębne byty biznesowe:) Obie firmy oferują bardzo ciekawe (i naprawdę wzajemnie się uzupełniające) narzędzia developerskie, obie korzystają z tej samej technologii. Obie mają podobny system licencjonowania swoich produktów i obie aktywnie wspierają ruch open source. Ceny także mają niestety podobne :)
Przy kilku projektach pracując z rozproszonym zespołem miałem okazję korzystać z tandemu Atlassian Jira (bugtracker) i Atlassian Confluence (wiki na sterydach). Byłem bardzo zadowolony z możliwości obu tych narzędzi, zwłaszcza z wygodnej integracji między nimi. Warto rozważyć ich zakup jeżeli pracuje sie z większym zespołem (i większym budżetem). Dodam, że narzędzia doskonale wpasowywują się w przeróżne dziwactwa (tak, tak Wojtku - to Ciebie mam na myśli :)) narzucane przez szefów działów IT, czy też szefów tych szefów.
Firmę Cenqua poznałem jako autorów naprawdę przyjemnego narzędzia FishEye. Jest to webaplikacja która nadaje webową twarz repozytorium kodu. Takie ostro podkęcone ViewCVS. Jak przydatna jest możliwość przeglądania komitów via web przekonał się każdy kto miał okazję choć raz pracować zdalnie. FishEye współpracuje zarówno z CVS jak i SVN dając możliwość wygodnego przeglądania repozytorium kodu, historii zmian dokonywanych przez poszczególnych członków zespołu itp. Bolesna jest tylko trochę cena.
Dosłownie kilka dni temu miałem natomiast okazję poeksperymentować z najnowszym dzieckiem Cenqua o nazwie Crucible. Jest to narzędzie do przeprowadzania inspekcji kodu (code review). Jest to jedna z praktyk postulowanych w różnych metodykach agilowych. Brzmi może przerażająco, ale chodzi po prostu o możliwość przeglądania i komentowania kodu nawzajem przez członków zespołu. Z mojego doświadczenia wynika, że jest to jedna z najbardziej efektywnych metod podnoszenia jakości kodu, oraz najszybsza metoda nauki (czy jak to mawiają mądrzy ludzie redystrybucji wiedzy w zespole). Interesujące jest to, że o ile bugtrackerów i wiki mamy tyle ile nieprzymierzając frameworków webowych w Javie i php razem wziętych, o tyle narzędzi do code review jest jak na lekarstwo. Naliczyłem wszystkiego kilka sztuk (niech was nie zwiedzie długa lista na sourceforge’u - większość to tylko vaporware :(( ) W swoim czasie zawiedziony kompletnym brakiem alternatywy zmuszony byłem nawet stworzyć samodzielnie narzędzie do code review (ale dzięki niemu poznałem chłopaków pracujących wówczas nad Crucible). Po przejrzeniu możliwości jakie daje aktualna wersja Crucible nie mogę niestety jeszcze polecić go do zastosowania w projekcie. Moim zdaniem brak integracji z bugtrackerem oraz jeden na stałe zaszyty schemat workflow to spore wady.
Jak widać z tego zgrubnego przejrzenia flagowych produktów obu firm połączenie obu zespołów daje spore nadzieje na przyszłość. Trudno się oprzeć wrażeniu, że Atlassian staje się takim Borlandem2.0 (oczywiście mam na myśli Borlanda z jego najlepszych czasów). Mam cichą nadzięję, że występowanie wszystkich narzędzi pod jedną marką wpłynie także pozytywnie na ich cenę :)
[
tool]
Permalink
July 16, 2007 at 22:19
· Filed under: Narzędzia, Koncepcje
W ostatni piątek firma Joyent na swoim blogu obwieściła, że otwiera kod swoich produktów dwóch Connector i Slingshot. Oba projekty dostały swoje miejsce na developerskim serwisie Joyent, a cały developerski świat dostęp do SVN ze źródłami. Nie muszę chyba specjalnie wyjaśniać jak ekscytującą dla każdego developera jest możliwość zapoznania się ze źródłami prawdziwej, sporej (aż chciałoby się powiedzieć enterprajsowej :)) aplikacji zwłaszcza napisanej w railsach. Sam z ogromną ciekawością pobrałem źródła Connectora i przyjrzałem się części z rozwiązań zastosowanych przez Joyent. Szczególnie byłem ciekaw jaka biblioteka została przez autorów wybrana do obsługi wersji językowych. Okazało się, że Connector korzysta ze starego dobrego Get Text (za pośrednictwem pluginu Ruby Get Text ), to odkrycie oszczędziło mi sporo czasu i utwierdziło mnie w przekonaniu, że spośród wszystkich dostępnych bibliotek warto jednak oprzeć się na tym sprawdzonym rozwiązaniu. Źródła Connectora zawierają jeszcze kilka ciekawych smaczków, ale nie będę psuł tu przyjemności samodzielnego ich odkrywania :)
Druga z otworzonych aplikacji ma szanse wywołać sporą rewolucję. Slingshot to rodzaj pomostu między webem a desktopem. Działa jako środowisko uruchomieniowe, które pozwala uruchomić aplikację railsową tak jakby była aplikacją dekstopową. Sami autorzy tak tłumaczą działanie Slingshota:
It provides a consistent and stable environment for a Rails application to run off Windows and Macintosh OS X. We remove all dependencies and conflicts with system binaries. Additionally, Joyent Slingshot allows developers to customize their environment as they please. Install any gems, plugins, binaries, whatever. We can handle it. Joyent Slingshot is like a virtual machine for a Rails application to run on.
Krótki screencast pokazujący jak w praktyce może wyglądać praca z tak ‘zainstalowaną’ aplikacją railsową robi niemałe wrażenie.
Podsumowując, dostaliśmy ciekawą okazję skonfrontowania swoich doświadczeń i umiejętności z kodem prawdziwej aplikacji. Aplikacji, która powstała z myślą o rozwiązywaniu realnych problemów i zarabianiu na tym pieniędzy, żaden tam 1001 quasi-engine blogowy czy inny prawie-sklep, tu jest prawdziwa krwista tkanka sporej aplikacji.
Zastanawiam się co skłoniło ludzi z Joent do takiego kroku. Nie chcę tu snuć spiskowych teorii, ale gdy przyjrzymy się stykowi open-source i biznesu dostrzeżemy raczej odwrotną tendencję. To raczej rokujące projekty OS dostają patronat/wsparcie komercyjne powoli wchodząc do portfolio produktów firm sponsorów. Czasem ten proces wychodzi na dobre sponsorowanym projektom, czasem następuję kanibalizacja i stopniowa śmierć projektu OS. Dużo rzadziej mamy do czynienia z sytuacją odwrotną, szczególnie gdy ma ona dotyczyć całego kompletnego komercyjnie stworzonego produktu nie komponentu / biblioteki. Tym bardziej warto docenić odwagę Joyent za tak śmiały i… trochę szalony krok.
[
rails ruby]
Permalink
July 12, 2007 at 02:27
· Filed under: Narzędzia, Koncepcje
Nie wiem czy web2.0 się już zestarzało i odeszło (zgodnie z sugestywną prezentacją Marcina na ostatnim bootstrapie), czy też dopiero wchodzi w wiek nastoletni. Faktem jest, że wraz z wysypem serwisów ometkowanych jako webdwazerowe pojawiła się także moda na udostępnianie funkcjonalności serwisu lub jej części przez API. Krok ten dla większości serwisów to bardziej próba wykorzystania potencjału developerów żyjących gdzieś tam hen, hen w fałdach długiego ogona niż decyzja podyktowana realnymi potrzebami klientów/użytkowników serwisu, ale zjawisko przybiera na sile. Nie jest to w żadnym razie krytyka z mojej strony - raczej obserwacja. Trudno nie zauważyć, że ta moda na API umożliwiła powstanie wielu serwisów nadających nowe znaczeniu słowu ‘integracja’. Inna sprawa, że przytłaczająca większość tych serwisów nie prezentuje zbyt wielkiej wartości nawet jako oprogramowanie - nie mówiąc już o biznesie. Właśnie ten ostatni aspekt zainteresował mnie szczególnie.
Przejrzałem API kilkunastu serwisów (oraz warunki korzystania z nich) zastanawiając się czy twórcy serwisów starają się budować jakieś przychody związane z korzystaniem z API, czy tylko jest to objaw swoistego developerskiego ekshibicjonizmu :)
Read the rest of this entry »
[
api mashup]
Permalink