Programowanie w upał

Dawno nie było wpisu na luzie, to coś skrobnę tym razem.

Przez ostatnie tygodnie pracowałem nad aplikacją w Ionic’u, co dało się zauważyć w poprzednich wpisach. Praca nad aplikacją mobilną jest trochę inna niż praca nad aplikacją np. w PHP, bo trzeba to testować na różnych urządzeniach, co ma dużą zaletę: można się co jakiś czas oderwać od komputera.

Zacząłem trochę pracować na stojąco, gdyż przy ostatnim remoncie w mieszkaniu znalazłem stolik do laptopa który, jak się okazało, mogę postawić na biurku i na nim położyć mysz i klawiaturę i w ten sposób stworzyć sobie miejsce do pracy na stojąco. Statyw na monitory mam na tyle konfigurowalny, że łatwo mogę przestawiać sobie ustawienie do pracy na siedząco i na stojąco.

Ostatnie tygodnie to również okres długotrwałych upałów w Europie. Niestety nie mam klimatyzacji w pokoju w którym pracuję, a jedynie wiatrak, więc przy temperaturach przekraczających 30 stopni Celsjusza siedzenie na krześle bywa uciążliwe. Wszystko więc się fajnie zbiegło, bo popracowałem sobie na stojąco, często się przechadzając po pokoju podczas testów appki na telefonie czy tablecie, a że pracuję w domu to mogłem sobie pozwolić na pracę w samych spodenkach, oczywiście z wyjątkiem wideo-konferencji z klientem. Klienta mam teraz z Holandii i mówił on, że u nich też jest upał, więc sytuację termiczną mamy podobną 🙂

I to na razie tyle.

Pozdrawiam czytelników.

Api w Laravelu – zwracanie odpowiedzi zamiast przekierowań

Dawno mnie tu nie było, bo byłem na urlopie a zaraz po nim wskoczyłem do nowego projektu i jakiś czas zastanawiałem się o czym napisać. Natrafiłem na jedną rzecz, której użyłem już w kilku projektach, dlatego myślę, że warto o tym napisać.

Jeśli robiłeś API w Laravelu, możliwe że spotkałeś się z takim zachowaniem, że gdy walidacja requestu nie przechodzi, wykonywane jest przekierowanie. Zamiast tego, lepiej byłoby dostać w odpowiedzi JSON z informacją o błędzie. Jak to zrobić? Już pokazuję.

Czytaj dalej Api w Laravelu – zwracanie odpowiedzi zamiast przekierowań

Ionic – wrażenia po napisaniu pierwszych aplikacji

Jakiś czas temu pisałem o mojej Wyszukiwarce Rymów. Ten projekt jest moim poligonem doświadczalnym, dlatego wróciłem do niego podczas nauki Ionica i przepisałem wersję mobilną na ten właśnie framework.

Aplikację na androida znajdziecie tutaj natomiast starą wersję pisaną w javie tutaj.

Wcześniej, w ramach zapoznania z Ioniciem napisałem też prostą gierkę typu memory: klik.

Skoro więc poznałem już co to jest ten Ionic, opowiem wam czego się dowiedziałem.

Porównanie Ionic i Java

Przy pisaniu aplikacji Wyszukiwarka Rymów w dwóch wersjach (Java i Ionic) poziom trudności był podobny. Ionic wymagał ode mnie mniej konfiguracji, więcej rzeczy działało od ręki. Debugowanie aplikacji wyglądało podobnie, przy czym mi bardzo przypadła do gustu aplikacja Ionic DevApp, która pobiera nowe buildy przez wifi. Wystarczy na komputerze uruchomić ionic serve -c i aplikacja sama będzie się odświeżać do nowych wersji.

Java zapewne lepiej się sprawdzi przy rozwiązaniach bardziej natywnych, które w Ionicu obsługiwane są przez pluginy, a te nie zawsze dają się zmusić do współpracy od pierwszego kontaktu (mowa tutaj głównie o pluginach w wersjach beta).

Ionic – Próg wejścia

Jeśli znasz conajmniej podstawy Angulara w wersj od 2 w góre, to poradzisz sobie bez problemu. Jeśli jeszcze nie znasz Angulara, również możesz spróbować – możesz się nauczyć Angulara już na aplikacjach w Ionicu.

Ionic ma fajne kontrolki do budowania interfejsów użytkownika, z których korzystać można tak samo jak z tagów html i robi się to bardzo szybko.

Moim zdaniem Ionic jest łatwy w nauce, dokumentacja jest czytelna, odpowiedzi na wiele pytań i rozwiązania wielu problemów znajdziesz w sieci.

Czy polecam Ionica?

Zecydowanie Tak!

Ubuntu – odtwarzanie stereo na urządzeniu wielokanałowym

Od kilku lat używam interfejsu audio U46XL zarówno do nagrywania muzyki, jak i do zwykłego odtwarzania. Miałem jednak z nim problem w ubuntu, ponieważ pulseaudio rozpoznaje tą kartę jako urządzenie w standardzie 5.1 i dźwięk był brzydki. Kombinowałem jak zmusić pulseaudio do traktowania mojego interjesu jako urządzenia stereo, nawet rozważałem napisanie własnego sterownika. Znalazłem jednak inne rozwiązanie, w dodatku bardzo proste.

Okazuje się, że pulse audio remiksuje dźwięk ze standardu stereo do 5.1 i trzeba tą funkcjonalność po prostu wyłączyć.

Aby to zrobić, należy w pliku /etc/pulse/daemon.conf ustawić:

enable-remixing = no

i zrestartować demona pulseaudio:

pulseaudio –kill

Po tym zabiegu dźwięk stał się normalny, a moje uszy przestały się bronić przed słuchaniem muzyki z mojego ubuntu.

No to słucham… nagranie zgrane z winyla do formatu flac brzmi cudnie!

Hakerski ekran w React JS

W ramach ćwiczenia React’a napisałem dziś prostą aplikację.

Do jej napisania zainspirował mnie jeden z odcinków „Twin Peaks” w którym na ekranie komputera było widocznych kilka konsolek z przewijającymi się danymi, kodem, itp. Moja wersja jest na razie dość prosta, ale zamierzam to rozbudować jak znajdę na to czas.

Repozytorium znajduje się tutaj.

Aby odpalić aplikację, sklonuj repozytorium i uruchom: npm start. Polecam uruchomić przeglądarkę z apką w trybie pełnoekranowym!

Demo aplikacji można zobaczyć tutaj.

Aplikacja wyświetlająca pogodę w Laravel + ReactJS

Dziś, w ramach samoszkolenia się z React’a, napisałem prostą appkę w Laravelu, która używa customowych komponentów napisanych w react’cie do wyświetlenia aktualnej pogody w zadanym mieście.

Aplikacja działa tutaj (oraz tutaj) i wyświetla pogodę dla miasta Tomaszów Mazowiecki.

Nic nie stoi na przeszkodzie, żebyś sklonował(a) sobie repozytorium i uruchomił(a) aplikację podającą pogodę dla Twojej miejscowości.

PyGame, dzisiejsze modyfikacje: nazwa pomieszczenia, wiatrak

Pamiętacie projekt gry, który opisałem w tym artykule?

Dziś dodałem wyświetlanie nazwy pomieszczenia w którym aktualnie znajduje się postać. Nazwa ta wyświetla się w lewym dolnym rogu.

Zmianę w kodzie można zobaczyć tutaj:
https://github.com/jakubthedeveloper/kuba-pygame1/commit/5792b52a11448f66b5b9f4dd78d493f5ad99138c

W kolejnych commitach dodałem również obracanie się wiatraka, żeby dodać grze nieco ruchu.

Odgłosy majowej natury

3 maja

Właśnie minął półmetek mojego dziewięciodniowego urlopu. Odpoczywam sobie od programowania, a oddaję się kontaktom z naturą. Dziś odbyłem 50-cio kilometrową wycieczkę rowerową z rejestratorem audio, nagrałem trochę żab i ptaków. Oto link do nagrania: https://bit.ly/2IeAFAM.

„Pragmatyczny Programista. Od czeladnika do mistrza” Andrew Hunt, David Thomas

Nie ma co tu kryć, książki o programowaniu są często nudne, zwłaszcza jeśli są to suche, techniczne opisy kolejnych technologii. Chciałbym Państwu jednak zaprezentować książkę, którą czyta się doskonale i wynosi się z niej bardzo dużo.

Tytuł: „Pragmatyczny programista. Od czeladnika do mistrza
Autorzy: Andrew Hunt, David Thomas

Słowa które najlepiej oddają jakość tej książki, to cytat zawarty na tylnej okładce:

„Gdybym organizował teraz jakiś projekt, zrobiłbym wszystko, aby zatrudnić autorów tej książki. (…) A gdyby to się nie udało, szukałbym ludzi, którzy przynajmniej przeczytali ich książkę”. 

– Ward Cunningham, słynny amerykański programista, pionier w dziedzinie wzorców projektowych oraz programowania ekstremalnego

Ja sam przeczytałem tą książkę w bardzo dobrym momencie, kiedy mam już za sobą sporo projektów w których działałem częściowo (np. tylko jako developer) lub całościowo – od pierwszych rozmów z klientem po działający biznes. Dało mi to możliwość odnoszenia czytanych rozdziałów do konkretnych sytuacji z moich projektów. Panowie A. Hunt i D. Thomas w bardzo przystępnym języku prezentują inny sposób myślenia o wytwarzaniu oprogramowania, wynosząc je niemal do rangi sztuki.

Nawet jeśli po przeczytaniu streszczenia i spisu treści stwierdzisz, że już to wszystko wiesz, i tak sięgnij po tę książkę, zaczniesz w inny sposób postrzegać to co wydaje ci się, że znasz już doskonale.

Gorąco polecam!

Książka jest dostępna wydawnictwie Helion.