AppFog na gorąco

Odbierając dzisiaj pocztę, najmniej się spodziewałem informacji o uzyskaniu dostępu do wersji beta AppFog, o którym szczerze mówiąc, powoli zaczynałem zapominać. Na szczęście okazało się, że nie zapomniano o mnie i w mojej skrzynce wylądowało zaproszenie do nowej chmury, pozwalającej korzystać z dobrodziejstw nowych “zabawek” dla developerów. Ochocza zabrałem się do testowania i muszę przyznać, że coś w tym jest. Ponieważ opisuję wszystko “na gorąco”, część informacji może okazać się niepoprawna lub nieaktualna, ale mam nadzieję, że wybaczycie mi ten brak profesjonalizmu ;) Po zalogowaniu się do panelu administracyjnego otrzymujemy dostęp do wszelkich możliwych ustawień…

Wiadomości błyskawiczne w Railsach, czyli jak zmarnować sporo czasu na głupim błędzie

Błyskawiczne wiadomości, lub jak ktoś woli – wiadomości flash, to mechanizm pozwalający na jednorazowe przesłanie informacji o jakimś zdarzeniu. Najczęściej wykorzystywany razem z formularzami do edycji danych, idealnie spisuje się w swojej roli. Do czasu. W celu ułatwienia sobie życia, stworzyłem partial odpowiedzialny za wyświetlanie wiadomości flash w zależności od typu wiadomości. Plan wydawał się być doskonały, gdyby nie jeden mały szkopuł. Nieważne jak bardzo bym się nie starał, zmienna flash zawsze była nil. Okazało się (stackoverflow kolejny raz nie zawiódł), że partial nie może nazywać się w jedyny sensowny sposób, czyli _flash.erb. Po zmianie…

Polskie znaki w menu Active Admin

Z gotowymi narzędziami jest tak, że działają tylko w określonych przez autora warunkach. Wszelkie niestandardowe sytuacje, o ile nie zostały przewidziane, powodują nie lada problem. Taką niestandardową sytuacją na jaką się ostatnio natknąłem, jest wyświetlanie polskich znaków w menu Active Admina. Wystarczy, że zrobimy takie coś: ActiveAdmin.register User do menu :label => "Użytkownicy" end by na stronie pojawił się brzydki błąd 500, a w konsoli SyntaxError (E:/projekt/app/admin/users.rb:3: invalid multibyte char (US-ASCII) E:/projekt/app/admin/users.rb:3: invalid multibyte char (US-ASCII) E:/projekt/app/admin/users.rb:3: syntax error, unexpected $end, expecting keyword_end menu :label => "Użytkownicy" ^): Niestety jedyne rozwiązanie jakie zadziałało w moim…

Active Admin i błąd ArgumentError

Active Admin przedstawiany jest jako brakujący framwork administracyjny dla aplikacji opartych o Ruby on Rails. Korzystam z niego od pewnego czasu i muszę przyznać, że doskonale wywiązuje się ze swoich zadań. Wszystko byłoby pięknie, gdyby nie jeden drobny szkopuł. ArgumentError in Active_admin/devise/sessions#new Showing C:/Ruby193/lib/ruby/gems/1.9.1/gems/activeadmin-0.3.4/app/views/layoutsactive_admin_logged_out.html.erb where line #9 raised: different prefix: "C:/" and "E:/projekt/app/assets/stylesheets" Najdziwniejsze w całej tej sprawie jest to, iż błąd sam się naprawia i tak naprawdę nie do końca wiadomo, czy nie pojawi się w przyszłości. Z informacji znalezionych w sieci wynika, że błąd pojawia się tylko w przypadku, gdy aplikacja znajduje się…

Windows + Rails + MySQL = problem

Tajniki Railsów zgłębiam już od pewnego czasu. Przez cały ten czas korzystałem z SQLite jako bazy danych, nie myśląc nawet o MySQL. Aż do wczoraj, kiedy to postanowiłem zrobić aplikację opartą o Railsy i pochwalić się nią przed całym światem (do chwalenia się jeszcze droga daleka). Niestety już na samym początku pojawił się problem. Okazuje się bowiem, iż pod Windowsem występują dziwne problemy z instalacją gema mysql2. Zaczęło się od błędu: ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. Jak zwykle niezawodny Stackoverflow wskazał rozwiązanie problemu. Wystarczyło wywołać instalację gema z parametrami…

Tworzenie aplikacji w Ruby on Rails

Tworzenie aplikacji w Railsach jest niezwykle proste i w przypadku małej strony nie wymaga nawet pisania kodu. Wszystko załatwi za nas framework. Oczywiście w przypadku bardziej skomplikowanych stron, generator będzie tylko wygodnym dodatkiem ułatwiającym tworzenie aplikacji. Projekt zaczniemy od instalacji Railsów. W chwili obecnej stabilną wersją frameworka jest wersja 3.0.10 i to pod jej kątem przygotowałem poniższy opis. Railsy zainstalujemy poleceniem gem install rails Po instalacji możemy przystąpić do pracy. Najpierw tworzymy aplikację rails new aplikacja W konsoli pojawi się masa robaczków opisujących tworzenie kolejne zasobów. Jak robaczki przestaną się przemieszczać, przechodzimy do katalogu aplikacja…

Problemy z rake po utworzeniu projektu opartego o Ruby on Rails

Wydawać by się mogło, że nie ma nic prostszego od wygenerowania aplikacji opartej o Ruby on Rails. Niestety, rake dodany do instalacji Ruby’ego (przynajmniej w wersji na Windowsa) odmawia posłuszeństwa, zgłaszając błąd o treści: rake aborted! uninitialized constant Rake::DSL C:/Ruby192/lib/ruby/1.9.1/rake.rb:2482:in ‚const_missing’ Okazuje się, że rake od wersji 0.9 skutecznie utrudnia życie osobom korzystającym z Railsów. Rozwiązań problemu znalazłem kilka, jednak tylko jedno z nich wydało mi się zadowalające. Jedyne co musimy zrobić, to dodać w pliku Gemfile nowy wiersz. gem "rake", "0.8.7" Następnie w katalogu projektu wykonujemy polecenie bundle update rake I już. Od tej…

PHP vs Ruby – klasy

Podstawowym elementem wykorzystywanym podczas tworzenia aplikacji w PHP są klasy. Tworzenie strukturalnego kodu od dłuższego czasu jest passé, a każdy kto publicznie przyznaje się do tego procederu, staje się ofiarą “ewangelistów obiektowości”. Trzeba przyznać, iż twórcy PHP zadali sobie sporo trudu, aby programowanie obiektowe w PHP nie było powodem do kpin i od piątej wersji języka dodają coraz to nowe usprawnienia wspomagające obiektówkę. Odkąd zacząłem poznawać Ruby (oraz Railsy), zaczynam powoli dochodzić do wniosku, iż OOP w PHP jest nieco przekombinowane. Zwłaszcza w kontekście tworzenia aplikacji internetowych. Tworzenie klasy W obu językach tworzenie klasy wygląda…

Windows + rails server + SQLite = problem

Mimo iż PHP jest najwygodniejszym językiem do tworzenia stron www, postanowiłem na poważnie przysiąść do alternatywnej technologii. Do wyboru miałem Javę, .NET, Pythona oraz Ruby. Java odpadła już w przedbiegach, hostowanie aplikacji .NET jest strasznie drogie, a Python mnie nie polubił i mimo uslinych starań (i podobno lepszego frameworka) nie zagościł u mnie na dekstopie. Drogą eliminacji pozostało więc Ruby wraz ze swoim frameworkiem Ruby on Rails.