A więc kupiłeś telefon z androidem. Pierwsze dni byłeś ostrożny, tylko instalacja aplikacji i ustawianie telefonu. A potem rootujesz telefon i pierwsze mody. Po paru modach zaczyna się robić nudno trochę bo ile można brać a nic nie dawać w zamian. Znasz pythona i postanawiasz stworzyć coś swojego na telefon. I w tym miejscu przydaje się ten krótki artykuł.
Continue reading ‘Py4A – Python w Androidzie’
Archive for the 'programowanie' Category
Formatowanie kodu jest ważne. To jest fakt. Ostatnio zetknąłem się z ciekawymi próbami sprawienia aby kod był bardziej czytelny, niestety nie udało mi się opisać tego przed moim znajomym. Polecam lekturę pod którą podpisuję się obiema rękami. Ze swojej strony pragnę dodać tylko bardzo „ciekawy” sposób definiowania zmiennych albo słowników. Za pewne można użyć go w innych przypadkach ale nie mam zamiaru marnować czasu na wymyślanie takich bzdur.
Continue reading ‘Przedszkole w edytorze’
Tytuł dosyć niezrozumiały ale w luźnym tłumaczeniu jest to pytanie „dlaczego nie używasz pep8 w Emacsie?”. Czym jest pep8? Jest to lista zaleceń odnośnie stylu kodowania. Tak, zgadza się, są to zalecenia więc nie są przymusowe ale na tyle logiczne oraz przemyślane, że warto je stosować. W końcu standaryzacja to nie jest nic złego jeśli jest stosowana z umiarem oraz w odpowiednim miejscu. Jeśli interesuje Cię implementacja sprawdzania składni pod kątem pep8 w locie w Emacsie to czytaj dalej. Continue reading ‘devs y u no pep8 in Emacs’
Django jest pisane w pythonie, python jak każdy porządny język obsługuje testy jednostkowe. A więc Django również. Dzisiaj przedstawię po krótce jak wygląda sprawa z testami w Django. Rozprawkę oprę o unittesty z tego prostego powodu, że podobają mi się bardziej niż doctesty. Nie znaczy to, że są lepsze po prostu służą do testowania innych przypadków, nie są pythonic ale ładnie obiektowe i ja je wolę po prostu.
Continue reading ‘django: unittest’
Piszesz aplikację w django, wysyłasz na serwer i musisz zmienić settings.py aby dostosowane były do wersji produkcyjnej. I tak za każdym razem, kiedy coś zmieniasz. Dodatkowo kod utrzymywany jest w systemie kontroli wersji i nie chcesz aby hasła były dostępne publicznie. Sprawa wydaje się skomplikowana ale tylko wydaje a rozwiązań jest sporo. Ja zaprezentuję to które ja wybrałem, a może nawet wymyśliłem, bo jest ono sumą paru rozwiązań. Przyznaję, że nie jest doskonałe ale przynajmniej nie muszę ręcznie zmieniać ścieżek ani danych dostępowych do bazy danych.
Continue reading ‘django: settings.py aplikacji w trybie devel i production’
Więc używasz systemu kontroli wersji, wysyłasz zmiany na serwer, pobierasz poprawki, inne branche, a wszystko to z podaniem hasła. I wreszcie trafia Cię szlag. Pomimo tego, że wpisanie hasła (po 10000 prób) zajmuje Ci mniej niż 1s jest to zmarnowana sekunda. Skoro używasz vcs czy dvcs to znaczy, że szanujesz swój czas a wpisywanie hasła w takich ilościach jest nieekonomiczne i należy to zmienić.
Continue reading ‘Z warsztatu kodera: po co te hasła?’
Bazaar jest w porządku, a skoro jest to należy go używać. Nie musi to być super przyjemne jeśli masz swój kod na serwerze i tam wysyłasz zmiany. Nie piszę o Launchpadzie tylko o własnym serwerze np: z dostępem ftp. Uciążliwym jest po każdym commicie logowanie przez ssh i odpalanie bzr up. Już pisałem jaki fajny jest bazaar? A to dlatego, że posiada pluginy. Z odsieczą programistom idzie plugin, którego nazwa jest w tytule posta a mianowicie push-and-update. Jak działa? Po każdym poleceniu push, sprawdza czy na serwerze znajduje się branch wymagający wykonania polecenia bzr up i jeśli tak to loguje się przez ssh aby je wykonać. Proste i skuteczne. Instalacja jest równie prosta, wszystkie informacje można znaleźć tutaj, a dla leniwych poniżej podaję przepis na instalację na koncie użytkownika.
bzr branch lp:bzr-push-and-update ~/.bazaar/plugins/push_and_update
Po commicie wystarczy bzr push. Uciążliwe może się stać wklepywanie haseł, ale jest to lepsze niż przeglądanie historii poleceń konsoli lub wpisywanie litanii ssh looser@serwer… od nowa.
Najnowsze komentarze