Jeszcze jeden blog o programowaniu

Radosne twórczości leniwego programisty

Archive for the ‘Narzędzia’ Category

Jak odzyskać trochę czasu dzięki porządkom w telefonie

leave a comment »

Nie tak dawno temu zdarzyło mi się wysłuchać krótkiego podcastu od Developer Tea w którym to autor – Jonathan Cutrell – przedstawia bardzo prostą metodę na odzyskanie drobnych porcji czasu poprzez wprowadzenie niewielkich zmian w telefonie (i w sumie w każdym używanym intensywnie urządzeniu).

Trzeba mieć świadomość jednak, że nie sprawi to nagle, że przybędzie nam 5 godzin do całej doby do wykorzystania na inne aktywności, ale jak to ma miejsce w przypadku wielu takich małych optymalizacji – ich połączenie może być już całkiem zauważalne – nie tylko z punktu widzenia oszczędności czasu ale i naszego samopoczucia.

Wbrew pozorom nie chodzi o tak banalne i oczywiste rady jak: odinstaluj gry, odinstaluj aplikacje społecznościowe oraz wyłącz wszelkie powiadomienia.

Ta prosta zmiana zamyka się w reorganizacji ikon aplikacji, z których korzystamy najczęściej.

Zazwyczaj po odblokowaniu telefonu na ekranie główny miałem: zdjęcie syna w centrum ekranu, widget zegara w górnej części ekranu i dookoła katalogi tematyczne: Finanse, Nauka, Google, …
Ogólnie, gdy potrzebowałem coś zrobić, to najczęściej wymagało to najpierw przypomnienia sobie lokalizacji katalogu na ekranie, otwarcie go – ponownie, zlokalizowanie konkretnej aplikacji i dopiero jej uruchomienie. O ile w katalogu „Finanse” było tylko kilka aplikacji (aplikacja banku, PayPal, moBILET, Monefy) to inne katalogi wymagały nierzadko przewijania.
Ogólnie pole do popisu było spore.

I tak: wszystkie katalogi zostały delikatnie mówiąc zaorane. Pozostały jedynie 2 katalogi w dolnej części ekranu i 2 przyciski – okrojone tylko do aplikacji używanych przeze mnie codziennie. Jak czegoś potrzebowałem raz w tygodniu po prostu wylatywało.

W tej chwili wygląda to i używa się tego dużo lepiej.
Od lewej jest to przycisk Połączenia. Wcześniej trzymałem tutaj katalog z Połączeniem, Wiadomościami i Kontaktami – ale zauważyłem, że tych ostatnich nie używam wystarczająco często.
Następnie jest przycisk wyświetlania wszystkich zainstalowanych aplikacji.
Później katalog z aplikacjami Aparat i Galeria – podejrzewam, że też mógłby wylecieć, ale jeszcze nie zdecydowałem.
Na szarym końcu – najbliżej kciuka – katalog z najczęściej używanymi aplikacjami – oczywiście jeszcze odpowiednio posortowany: Chrome, Podcast Addict, Todoist, aplikacja banku, eReader Prestigio, Business Calendar i kilka innych – w tym komunikatory.

Katalogi i aplikacje są przypięte na dole, więc widoczne są na każdym ekranie – nie tylko startowym. Drugi ekran to tylko 2 widgety: aktualna lista z Todoist i Brain Focus (do techniki pomodoro) i wspomniana wcześniej przypięta u dołu ekranu lista.

Spotkałem się też z opinią, że przeglądarka to także aplikacja rozpraszająca – źródło, więc można także rozważyć jej usunięcie z szybkiego dostępu.

Przy okazji różnych poszukiwań znalazłem przyjemny dla oka (po instalacji odpowiednich motywów i niewielkiej konfiguracji) i szybki CM Launcher.

Cały odcinek podcastu do odsłuchania (7 minut): One Super Simple Tactic to Regain Your Time

Written by Filip Górczyński

2018.05.28 at 13:26:48

PyCharm – jedna konfiguracja na wielu instancjach

leave a comment »

Ponownie chciałbym pochwalić PyCharma – w sumie to wszystkie IDE od JetBrains.

Otóż narzędzie to pozwala nam na współdzielenie naszej ulubionej konfiguracji środowiska pomiędzy różnymi instancjami – jeśli używamy tego IDE w pracy i w domu to warto z tego skorzystać.
Oczywiście ma to też ten plus, że w przypadku kradzieży/zniszczenia możemy w całkiem prosty sposób odzyskać poprzednią konfigurację.

A sprawa jest całkiem prosta:

  1. Zakładamy nowe repozytorium, np. w serwisie GitHub (tak, może być też GitLab albo jakiekolwiek inne – ja lubię GitHub)
  2. W PyCharm wybieramy kolejno File > Settings Repository i ustawiamy konkretny Upstream URL na adres repozytorium
  3. Nadpisujemy zdalne (Overwrite Remote)
  4. To samo robimy na pozostałych instancjach nadpisując ustawienia lokalne (Overwrite Local)

Gdy już mamy zsynchronizowane, każda zmiana powinna być automatycznie pobierana z i wysyłana do repozytorium – jednak opcja Merge też w niektórych sytuacjach może się przydać 🙂

Written by Filip Górczyński

2018.04.20 at 15:44:06

GitHub – szablony dla Issue i Pull Request

leave a comment »

Ciekawą funkcją GitHuba – szczególnie przydatną w przypadku wieloosobowych zespołów są szablony dla nowo tworzonych Pull Requestów lub Issue.

Jeśli zależy nam na fajnej kulturze pracy z kodem możemy sobie takie szablony zaaplikować w swoich repozytoriach i na szczęście nie jest to skomplikowane i kończy się w momencie utworzenia plików o odpowiednich nazwach: issue_template.md oraz pull_request_template.md, na przykład w katalogu .github, który także tworzymy w naszym projekcie.

Jak widać po rozszerzeniu, pliki te to po prostu najzwyklejsze dokumenty Markdown, więc w ich treść można wrzucić wszystko, co Markdown jest w stanie obsłużyć: nagłówki, pogrubienie tekstu, kursywę, dowolne typy list, kawałki kodu czy co najfajniejsze – pola do zaznaczenia.

Prosty Issue Template:

oraz Pull Request Template:

W przypadku automatyzacji Pull Requestów można nasz szablon rozdzielić na kilka różnych plików i przekazując odpowiednie parametry w adresie – sterować wybieranym szablonem. Szczegóły można znaleźć na w dokumentacji GitHub.

Więcej przykładów oraz informacji znaleźć można w następujących repozytoriach: github-issue-templatesawesome-github-templates.

 

Written by Filip Górczyński

2018.03.12 at 17:04:18

Narzędzia do statycznej analizy kodu źródłowego w PyCharm

leave a comment »

Kilkukrotnie wspominałem już o IDE PyCharm i jego możliwościach. Oprócz kolorowania składni i obsługi kilku innych głupotek pozwala na przykład definiować narzędzia, które później możemy uruchamiać w trakcie pisania kodu.

Jako programiści Pythona możemy do tych narzędzi zaliczyć te dbające o jakość pisanego przez nas kodu. Oprócz standardowego PEP8 – który jest tylko czubkiem góry lodowej – osobiście chciałbym polecić także: flake8, pylint oraz radon.

flake8 jako linter sprawdza kod pod kątem zgodności ze standardami – dodatkowo rozszerza wspomniany przed chwilą PEP8 o kilka innych wartościowych usprawnień, np. takie związane z komentarzami, nazewnictwem zmiennych, itp.

Podobnie ma się sytuacja z pylint-em, jednak jego zaletą jest ocena naszego kodu z użyciem skali – każda zmiana może wpływać pozytywnie lub negatywnie zgodnie z następującym wzorem. Satysfakcją jest uzyskać ocenę 10.00/10.00 :). Oprócz oceny liczbowej otrzymujemy także zestawienie i najróżniejsze statystyki.

radon natomiast w całkiem przyjemny sposób prezentuje nam informacje na temat złożoności fragmentów naszego kodu – może nam się wtedy zapalić czerwona lampka, że pewne elementy powstałego kodu mogą potencjalnie stanowić wąskie gardło w aplikacji i są dobrym miejscem zaczepienia jeśli chodzi o refaktoryzację.

Zainstalujmy więc sobie narzędzia w czystym środowisku wirtualnym:

flake8 zostanie zainstalowany jako zależność podczas instalacji radon-a.

Klikamy „+” aby dodać nowe narzędzie. W otwartym okienku uzupełniamy jak poniżej:

Oczywiście dobrym pomysłem jest także grupowanie naszych narzędzi, np. ze względu na technologię oraz konfiguracja skrótów klawiaturowych:

Poniżej kilka zrzutów po uruchomieniu:

  • flake8:

  • pylint

  • radon

Więcej doczytać można w następujących źródłach:

  1. About style guide of python and linter tool. pep8, pyflakes, flake8, haking, Pylint.
  2. What is Flake8 and why we should use it?

Written by Filip Górczyński

2018.03.07 at 18:06:39

Grupowanie podprojektów w PyCharm

leave a comment »

Niezbyt często używaną funkcją PyCharma jest jego wsparcie dla dużych projektów w postaci możliwości dodawania nowych projektów w ramach bieżącego okna. Jeszcze mniej znaną (według mnie) funkcją pozwalającą zapanować nad wieloma projektami jest możliwość grupowania projektów w strukturze drzewa.

Co warto zrobić na początku – głównie z czysto estetycznych powodów – to ustalić jakiś całkowicie oddzielny katalog, który może pozostać pusty. Ewentualnie możemy trzymać jakieś „śmieci” związane z projektem, które nie muszą być, np. pod kontrolą wersji.

Zazwyczaj podczas tworzenia nowego projektu otwieramy go w nowym oknie PyCharm – i tak też zalecałbym zrobić dla dopiero co utworzonego katalogu „głównego”. To będzie nasz punkt startowy – a PyCharm będzie nam ładnie w tytule wyświetlał nowo powstały projekt główny.

Pozostałe projekty, które chcemy mieć widoczne w PyCharmie w odpowiedniej strukturze dodawać będziemy już w taki sposób:

Przechodząc do sedna sprawy wszystko rozbija się o nazewnictwo katalogów. Jeśli uporządkujemy projekty na dysku nadając im odpowiednie człony (prefixy) rozdzielane kropką, PyCharm zatroszczy się o resztę.

Po dodaniu kolejnych projektów będą w elegancki sposób pogrupowane w paczki, jak poniżej:

Nic więcej się nie zmienia i np. nadal posiadamy udogodnienie w postaci konfigurowania środowisk Pythona dla każdego projektu indywidualnie.

Oczywiście powyższe nie dotyczy osób, które są zwolennikami trzymania w PyCharm każdego projektu oddzielnie – jak zawsze ma to swoje plusy i minusy.

Written by Filip Górczyński

2018.03.05 at 07:34:15

Śledzenie czasu spędzonego w IDE – integracja WakaTime i PyCharm

leave a comment »

Nie tak dawno temu w ramach kolejnych prób ze śledzeniem swojego czasu spędzonego na pisaniu kodu trafiłem na WakaTime.
Dla moich potrzeb wystarczyła instalacja w PyCharm, ale inne wspierane środowiska programowania wraz z instrukcjami instalacji przejrzeć możemy na stronie WakaTime Editors.

Sama instalacja w PyCharm to tak naprawdę znalezienie i zainstalowanie wtyczki o nazwie – zgadza się – WakaTime. W opisie wtyczki jest dokładna instrukcja instalacji.

I w sumie to tyle. Po kilku godzinach pisania kodu możemy wejść na dashboard, gdzie zaprezentują nam się ładne statystyki, jakich języków używaliśmy najczęściej, w jakich projektach czy ile czasu danego dnia spędziliśmy w IDE.

Jak spora część narzędzi online także to ma swoje plany cenowe. Nam może wystarczyć darmowy, który pozwala m. in. na statystyki z ostatnich 2 tygodni. Otrzymujemy jednak narzędzie wakadump, które pozwala nam pobierać statystyki na wypadek, gdybyśmy chcieli je dalej wykorzystać.

Warto wspomnieć, że gdy z jakichś powodów coś się posypie ze środowiskiem lub będziemy chcieli zmienić klucz API to zmiany wystarczy wprowadzić w pliku: ~/.wakatime.cfg

Written by Filip Górczyński

2018.03.01 at 08:27:49

Ukrywanie plików określonego typu w Visual Studio Code

with one comment

O ile jestem wielkim zwolennikiem narzędzi ze stajni JetBrains to od czasu do czasu – gdy potrzebuję zapisać coś na szybko – zdarza mi się korzystać z innego całkiem przyjemnego edytora – VSCode.

Narzędzie to ma to do siebie, że realne przyjemności zaczynają się dopiero, gdy skonfigurujemy je po swojemu i na szczęście sprawa jest dużo prostsza niż w Vim-ie :).

Po otwarciu w edytorze jakiegokolwiek projektu możemy zauważyć (albo raczej nie zauważyć), że w strukturze katalogów nie pojawiają się katalogi kilku powszechnie używanych systemów kontroli wersji: .git, .svn, .hg. Ukrywane są też pliki .DS_Store. Sprawa fajna i przydatna, ale jeśli zdarzy nam się pisać projekt, np. w Angularze to szybko dojdziemy do wniosku, że drzewo katalogów jest zaśmiecone i nieczytelne, m.in. ze względu na automatycznie generowane pliki – których w edytorze i tak najczęściej nie wykorzystamy.

Pozostaje nam zmienić odrobinę ustawienia edytora. Sama konfiguracja to po prostu edycja plików; dostęp do mich uzyskujemy poprzez File > Preferences > Settings (lub bezpośrednio z klawiatury Ctrl + ,).
W lewym panelu znajdziemy listę ustawień domyślnych, z prawej – ustawienia użytkownika. I właśnie ta prawa część interesuje nas najbardziej. A to co chcemy zrobić to nadpisać wartość dla atrybutu "files.exclude".

Z mojej strony chciałbym zaproponować ukrycie w drzewie katalogów dodatkowych 2 typów plików: *.js.map oraz plików *.js – o ile istnieje dla nich plik o takiej samej nazwie ale rozszerzeniu *.ts.

Dla kompletnie zielonych – interesują nas linie 9 i 10 :).

I jeszcze na koniec taka mała wskazówka, jeśli posiadamy otwartego, np. PyCharma (nie wiem jeszcze, czy inne IDE JetBrains posiadają taki sam skrót klawiaturowy) to – dzięki tylko 4 palcom – możemy otworzyć edytor-notatkę z konkretnym podświetlaniem składni bez tworzenia nowego pliku w strukturze projektu: Ctrl + Alt + Shift + Insert.

Written by Filip Górczyński

2018.03.01 at 07:54:16

%d blogerów lubi to: