Witaj na blogu prowadzonym przez Sebana. Spisuję tutaj swoje uwagi na różny temat. Przeważają tematy związane z Internetem, popieranymi przeze mnie rozwiązaniami dotyczącymi wykorzystania komputerów, oraz kilka innych.
Instalacja MongoDB w MegiTeam
29 września 2009 | Klucze:
mongodb,
programowanie,
ruby,
Techblog
3 komentarze. trackback
Jeśli ktoś czyta na bieżąco blog highscalability to pewnie zauważył co jakiś czas pojawiające się hasło noSQL, lansowane przez SQL hejterów. Jedną z kilku alternatyw dla relacyjnych baz danych jest MongoDB, więcej informacji na temat samej bazy danych można przeczytać na jej stronie. W naszym małym, polskim grajdołku gdzie dostęp do nieograniczonej ilości baz danych MySQL/PostreSQL w ramach hostingu współdzielonego jest rarytasem na próżno szukać wsparcia dla baz danych takich jak MongoDB lub CouchDB. Na szczęście MegiTeam pozwala zarówno na nieograniczoną ilość baz MySQL/PostresSQL jak i na instalację MongoDB.
Do zbudowania MongoDB używane jest narzędzie Scons, które wymaga Python 2.5. Domyślnie na współdzielonym hostinguMegiTeam zainstalowany jest Python 2.4, ale można łatwo to zmienić. W pliku ~/.environment należy dopisać linię: PATH=$HOME/.python/bin:/usr/local/python2.5/bin:$PATH:/var/lib/gems/1.8/bin/ A co do Scons, po ściągnięciu i rozpakowaniu źródeł powinno wystarczyć coś takiego: python setup.py install --prefix=$HOME/.python. Ja osobiście skorzystałem z przychylności admina, ktory mi zaisntalował Sconsa. Ponieważ mam współdzielony hosting możliwe, że inni użytkownicy serwera również mają dostęp do scons, radzę sprawdzić.
Po ściągnięciu źródeł MongoDB w katalogu wydajemy polecenie scons all Budowanie MongoDB trochę trwa, więc radzę zrobić sobie w tym czasie herbatę lub zając się czymś innym. Warto też upewnić się, że na hostingu współdzielonym starczy nam miejsca. Trzeba mieć przygotowane ok. 270 MB. Po zbudowaniu należy skopojować pliki do jakiegoś katalogu ujętego w PATH. cp mongo mongod mongodump mongoexport mongofiles mongoimportjson mongorestore mongos ~/bin
Zabawki
- sterowniki pozwalające połączyć się z MongoDB z poziomu PHP, Ruby, Python, Java, Perl, C++, ...
- kilka slajdówz prezentacji o MondoDB
- Mongo Mapper ORM (?) korzystający z MongoDB
- małe wprowadzenie do MongoDB napisane na blogu EngineYard
Po co to komu?
Czy aplikacja oparta na MongoDB ma szanse dobrze działać?. Osobiście ciężko mi coś na ten temat powiedzieć. Tomasz Stachewicz z Aenimy odgrażał się, że przed RuPy postara się pokazać "pierwszą w Polsce" aplikację w Railsach używającą MongoDB. Trzymam kciuki! Na RuPy 2009 mają odbyć się dwie prezentacje poświęcone MongoDB. Mike Dirolf zrobi wstęp do MongoDB, a Obie Fernandez pokaże jak połączyć Rails i MongoDB.
Walidacja gema na githubie
14 września 2009 | Klucze:
Ogólne,
ruby,
Techblog
Dodaj komentarz. trackback
Github to wspaniały serwis! Nic nowego tym nie odkryłem. Można nie używać gita, można go nie lubic, ale sam Github fajny jest i basta!
Próbowałem ostatnio wysłać do githuba zmiany, które miały być stworzyć nową wersję gema, którego sobie piszę. Po zrobieniu git push dostałem maila
The gem build failed with the following error: /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': Insecure operation - gem_original_require
Okazało się, że to nie jest nic niezwykłego, kilka osób przede mną też się z tym spotkało. Okazuje sie, że Github nie na wszystko pozawala przy budowaniu gema. Proponuję używać tego skryptu walidacji gemspeca zanim wyśle się zmiany do Githuba. Całość moich poprawek zamknęła się w jednym commitcie (usunięcie require i Dir.glob).
Innym ciekawym rozwiązniem na które trafiłem przy tym problemie jest Jeweler. Jest to takie cudeńko, które po krótkiej konfiguracji da nam do dyspozycji kilka pożytecznych zadań rake. Jewelera można również używać jako generatora nowych projektów, który posiada całkiem fajne opcje (tworzenie repo, rodzaj pisanych testów, wybór sposobu hostowania gema).

