Google Cloud Storage

W poprzednim poście pokazałem jak uzyskać dostęp do usług Google Cloud. Ten post pokaże w jaki sposób stworzyć pierwszy projekt i użyć Google Cloud Storage.

Wszystkie dane, które umieszczamy w cloud storage znajdują się w bucketach. Można o nich myśleć, jak o takich katalogach nadrzędnych. Każdy bucket musi posiadać unikalną nazwę w obrębie całego clouda (nie mogą istnieć 2 buckety o tej samej nazwie w obrębie całej usługi, różni użytkownicy nie mogą mieć bucketów o tej samej nazwie). W ramach bucketu możemy tworzyć pliki i foldery podobnie jak na dysku twardym.

Czytaj więcej o Google Cloud Storage

Google Cloud – Wstęp

Post ten będzie wstępem do opisu usług dostępnych w ramach Google Cloud. W ramach tego artykułu opiszę jak stworzyć projekt, który będzie używany w kolejnych postach. Uzyskamy dostęp do usług Google takich jak Storage, Visio, Places, Youtube itp. Wymaganiem jest posiadanie konta Google. Jeśli nie posiadasz takowego możesz je w każdej chwili stworzyć nieodpłatnie, do tego „chłopacy z gugle” dorzucają $300 na testowanie ich usług. Czytaj więcej o Google Cloud – Wstęp

Django – dodawanie obsługi nowych komend przez manage.py

Czasami potrzebujemy wykonać jakieś proste, powtarzalne czynności, które można łatwo zautomatyzować. Django posiada mechanizm, który umożliwia dodawanie nowych komend uruchamianych przez manage.py. Wywołanie komendy będzie miało postać:

Dodatkowo, możemy w ten sposób zaprogramować jakieś zadania uruchamiane cyklicznie poprzez crona. Dzięki temu nie musimy wywoływać adresu url tylko uruchamiamy polecenie z linii komend.
Czytaj więcej o Django – dodawanie obsługi nowych komend przez manage.py

Spring Security w Spring Boot

Często przygotowując aplikację webową chcemy posiadać sekcję która będzie dostępna tylko dla zalogowanych użytkowników lub jakiś panel administracyjny który pozwoli na zarządzanie stroną. Spring udostępnia gotowy mechanizm autentykacji i autoryzacji użytkowników z którego możemy w łatwy sposób skorzystać. W poście postaram się pokazać jak w najprostszy sposób skonfigurować autentykację, czyli logowanie użytkownika do systemu. Kod który używam jest możliwie jak najprostszy, pomijam tutaj używanie widoków i innych komponentów skupiając się tylko na tym co jest niezbędne do rozpoczęcia pracy z security.

Czytaj więcej o Spring Security w Spring Boot

Spring Boot – Widoki

W poprzednich postach pisałem jak zacząć przygodę ze Spring Bootem oraz jak się połączyć z bazą danych. Dotychczas dane do przeglądarki zwracane były jako stringi. Jak już pewnie się domyślasz istnieją lepsze sposoby aby ładnie zaprezentować nasze dane, a do tego oddzielić logikę aplikacji od prezentacji.

Spring wspiera różne technologie widoków. Od tradycyjnych JSP(http://pl.wikipedia.org/wiki/JavaServer_Pages), do Themyleaf (http://www.thymeleaf.org/), Twig (http://twig.sensiolabs.org/, implementacja dla Javy JTWIG: http://jtwig.org/), FreeMarker, Groovy czy Velocity.

Widoki JSP mają kilka znanych ograniczeń, przez co powinny być unikane. Osobiście lubię widoki TWIG dlatego skupie się na nich, inne silniki szablonów implementuje się w analogiczny sposób.

Kod źródłowy gotowego projektu można znaleźć pod adresem: https://github.com/mloza/spring-boot-views

Czytaj więcej o Spring Boot – Widoki

Spring Boot – Interakcja z bazą danych czyli Spring Data JPA

W poprzednim poście pokazującym jak zacząć ze Spring Bootem pokazałem jak stworzyć Hello World dla aplikacji web. Przyszedł czas aby do naszą aplikację połączyć z bazą danych. Będzie nam potrzebne kilka rzeczy:

  • Baza danych
  • Model – klasy POJO z adnotacjami które będą reprezentować schemat bazy danych (więcej o tym za chwilę)
  • Repozytoria – Klasy lub interfejsy które będą definiowały operacje które można wykonać na modelu (takie jak zapisanie obiektu w bazie, wyszukiwanie obiektów itp)

Mogą tutaj pojawić się elementy projektu które pokazywałem w poprzednim poście więc zachęcam do jego przeczytania. Zacznijmy po kolei.

Czytaj więcej o Spring Boot – Interakcja z bazą danych czyli Spring Data JPA

Spring Boot – szybkie tworzenie aplikacji web w Javie

Stworzenie nawet prostej aplikacji w Javie zwykle bywa czasochłonne. Trzeba stworzyć dużo plików xml zawierających konfiguracje, która zazwyczaj jest taka sama lub bardzo podobna dla każdej aplikacji, następnie uruchamianie kontenera, deployowanie aplikacji i inne powtarzalne czynności. Jednak istnieje alternatywa!

Spring Boot

Projekt ten powstał aby ułatwić wszystkim start ze Springiem, eliminuje potrzebę zabawy z tworzeniem konfiguracji xml-owej, gotową aplikację można stworzyć i uruchomić za pomocą jednej klasy. Idealnie nadaje się do projektów studenckich i szybkiego prototypowania aplikacji. Jedyne wymagania jakie stawia przed użytkownikiem to znajomość Mavena.
Czytaj więcej o Spring Boot – szybkie tworzenie aplikacji web w Javie

Testy w Django z użyciem Selenium

Tworząc nawet najprostszą aplikację bardzo szybko dochodzimy do momentu w którym „przeklikanie” głównych ścieżek w aplikacji zaczyna być bardzo czasochłonne i nużące. Wprowadzenie nowych funkcji zaczyna być irytujące. Jest to szczególnie uciążliwe w interpretowanych językach, gdzie informację o ewentualnych błędach dostajemy dopiero po wejściu na stronę lub wykonaniu jakiejś akcji. Gdzieś nawet widziałem cytat:

Kto informuje o błędach? W Javie kompilator, w PHP klient

Kolejnym problemem jest gdy mamy do przejścia jakiś dłuższy scenariusz aby sprawdzić jakąś funkcjonalność. Po kilku przejściach i rosnącym zdenerwowaniu, gdy funkcjonalność wciąż nie chce działać sprawia, że pomijamy część elementów które mogą mieć wpływ na działanie (lub nie działanie). Takie scenariusze możemy mnożyć dowolnie. Dlatego warto zastanowić się nad zautomatyzowaniem takich powtarzalnych czynności. Do tego świetnie nadaje się biblioteka Selenium, która bardzo ułatwia testowanie z użyciem prawdziwej przeglądarki.
Czytaj więcej o Testy w Django z użyciem Selenium

Django + pyenv-vierualenv + mod_wsgi

Ostatnio potrzebowałem skonfigurować Django z Pythonem w wersji innej niż tą którą posiadam w systemie. Natknąłem się na pyenv który pozwala na posiadanie kilku wersji Pythona w systemie i uruchamianie programów z którą wersją chcemy. Sama instalacja pyenv i dodanie kolejnych wersji nie nastręcza problemów jednak pojawiają się one przy konfiguracji z Django i mod_wsgi do serwera Apache.

Czytaj więcej o Django + pyenv-vierualenv + mod_wsgi