Jeszcze jeden blog o programowaniu

Radosne twórczości leniwego programisty

Archive for the ‘Luźne’ 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

Wersje oryginalne i pirackie filmów

leave a comment »

UWAGA: Poniżej wyrażone opinie są moimi osobistymi i każdy ma prawo się z nimi nie zgadzać. Jeśli tak właśnie jest i chcesz złożyć skargę – naciśnij krzyżyk zamykający przeglądarkę.

Jakub „Unknow” Mrugalski opublikował ciekawy film, w którym porusza temat legalności oprogramowania przytaczając niezbyt przyjemną sytuację z życia. Źródło: Facebook

Korzystając z tej okazji chciałbym przedstawić inny problem, ale który także dotyczy legalności – filmów.
Jako ofiara konsumpcyjnego stylu życia oraz (nauczony przez mojego dziadka) chomikowania wszystkiego co popadnie kupuję filmy na DVD. Chociażby dlatego, że kiedyś nie mogłem sobie finansowo na to pozwolić. A że były/są filmy do których często z żoną wracamy – znając je (filmy) i tak na pamięć – to miło je mieć. Poza tym, VHSy ciężko już odtwarzać a Internety ktoś może nagle wyłączyć.

Dlaczego jednak uważam, że wersje „kupione” na torrentach są lepsze?

Ponieważ nie są naszpikowane spotami reklamowymi.

Płacąc za oryginalny film na DVD – zanim w ogóle zacznę film oglądać muszę się nasłuchać (i naoglądać), że pobranie filmu z Internetu to kradzież (właśnie dlatego zainwestowałem w legalną wersję). Oczywiście gdyby tego było mało muszą się jeszcze znaleźć reklamy filmów, które za miesiąc pojawią się w kinie. Po co, grzecznie się spytam?!
Ja rozumiem, że kasa się musi zgadzać, ale czemu kosztem zniechęcania klientów do płacenia za rozrywkę?

Jeśli jednak chodzi o problem poruszany przez Jakuba w kwestiach korzystania z oprogramowania bez licencji (oczywiście w niektórych sytuacjach) to podpisuję się nogiema i rencyma pod kilkoma komentarzami do tego filmu – w skrócie –  korzystanie z wersji elektronicznej nie zmniejsza ilości danego produktu u dostawcy, jednak może znacznie zwiększać prawdopodobieństwo kupna tego oprogramowania w przyszłości.

Written by Filip Górczyński

2018.04.27 at 07:30:15

Napisane w Luźne

Znam język programowania X, ale nie mam pomysłu na aplikację

leave a comment »

Tym razem temat trochę bardziej na luzie. Na grupach dyskusyjnych pojawia się często pytanie od początkujących programistów o pomysły na aplikację: a to na prywatny projekt, a to na jakąś pracę inżynierską czy magisterską, itp. Pytania te są dziwne, ponieważ bardzo często przyczyną rozpoczęcia nauki programowania jest niezadowolenie z używanych aktualnie narzędzi albo potrzeba zautomatyzowania sobie pracy. Oczywiście, jest jeszcze druga grupa ludzi, którzy usłyszeli/przeczytali, że „programowania można się nauczyć przerabiając tutorial i wtedy co miesiąc dostaje się górę kasy” – ale to w sumie temat na inny wpis 🙂

No dobra, wybraliśmy język programowania. Oczywiście, mówię tutaj o języku programowania – jeśli ktoś przerobił kurs HTML i/lub CSS to można powiedzieć, że dopiero „liznął” temat jako, że wspomniane technologie nie są językami programowania 🙂 Jak to jednak mówią – Nawet najdalszą podróż zaczyna się od pierwszego kroku.
Więc odbębniliśmy już 15 kursów i 150 tutoriali w wybranej przez nas technologii (oczywiście jest ona najlepsza ze wszystkich dostępnych :)), dowiedzieliśmy się jak poskładać dostępne klocki, żeby napisać program "Witaj świecie!\n"  powtarzany dowolną ilość razy. Ale w sumie co teraz? Chyba z tego „Witaj świecie” nie uda się wyciągnąć 15k na miesiąc. Może jednak zostawić wszystko i wyjechać „w góry na Mazury”?
Oczywiście jako początkujący programista (tzw. junior) mamy szansę na zatrudnienie. Szanse są, ale jest to uzależnione od zbyt wielu innych kryteriów – to też byłby dobry temat na oddzielny wpis.

Zgaduję, że nie mamy się jeszcze za bardzo czym pochwalić potencjalnemu pracodawcy, więc jedną z najlepszych rzeczy jakie możemy zrobić gdy zaczynamy budować swoją przyszłość zawodową jako najlepszy developer w branży IT to zbudowanie swojego portfolio. Oczywiście, generalizuję w tej chwili. Przykładowo takich Panów jak Guido van Rossum czy Douglas Crockford nie zatrudnia się ze względu na ich bogate portfolio 🙂

Tu pojawia się pewnie w wielu głowach pytanie: Spoko, to co mam napisać?
Odpowiedzią na to pytanie niech będzie ta krótka lista – dłuższe listy z konkretnymi propozycjami projektów znaleźć można już pod dostępnymi linkami:

  1. Aplikacja na Androida z pomysłami podzielonymi na kategorie oraz stopnie trudności – Programming Ideas 2
  2. Lista niewielkich mini-programów do napisania o różnych stopniach trudności – Dailyprogrammer w serwisie Reddit
  3. What Should I Make? Beginner Programming Project Ideas
  4. Przytaczana w wielu miejscach lista: Martyr2’S Mega Project Ideas List!
  5. Kolejna lista z propozycjami projektów
  6. Krótka, pogrupowania lista Over 1,500 Coding Project Ideas z kilkoma różnymi źródłami
  7. Top 27 Programming Project Ideas For Beginners
  8. 5 Project Ideas To Help You Learn Programming Faster
  9. Ideas for Coding Projects
  10. 1000+ Beginner Programming Projects
  11. „I Need Practice Programming”: 49 Ideas for Game Clones to Code

Jak widać, pomysłów jest naprawdę całkiem sporo. Gdyby postawić sobie za cel wykonać nawet połowę z tych projektów – życia by nie starczyło. Oczywiście, nie polecam rzucać się od razu na jakiś ekstremalnie duży projekt, ponieważ istnieje ryzyko, że się szybko zniechęcisz.

Ponadto, jeśli już wciągnęło Cię programowanie i/lub potrzebujesz miejsca na „praktykowanie” swoich umiejętności, poniżej kilka dodatkowych zasobów do codziennych ćwiczeń:

  1. https://py.checkio.org/
  2. https://www.codewars.com/
  3. https://coderbyte.com/
  4. https://codefights.com/
  5. http://exercism.io/
  6. http://codekata.com/
  7. http://www.codeabbey.com/

Niewątpliwą zaletą tych stron jest możliwość konkurowania z innymi programistami i podglądanie często rewelacyjnych rozwiązań, które poszerzą naszą wiedzę na temat danego języka. Nawet do głowy by nam nie przyszło jak ładnie czy zwięźle można rozwiązywać niektóre problemy.

 

Written by Filip Górczyński

2018.02.25 at 18:07:37

Który edytor do programowania w języku Python jest najlepszy?

leave a comment »

PyCharm, Vim, Sublime Text, Emacs, VS Code, Atom, gedit, geany, Komodo Edit – to chyba najczęściej pojawiające się propozycje edytorów dla programistów Pythona we wszelakich wątkach w sieci w odpowiedzi na pytanie: Który edytor powinienem używać do programowania w Pythonie?

TL;DR:
Jeśli jesteś początkującym programistą – praktycznie każdy edytor z kolorowaniem składni najprawdopodobniej będzie dobry.
A jeśli masz doświadczenie w programowaniu – na pewno znalazłeś już edytor, który najbardziej odpowiada Twoim osobistym preferencjom.


Dla osób – zwłaszcza początkujących – chciałbym polecić materiał przygotowany przez Pana Mirosława Zelenta – niedługi filmik, który świetnie opisuje kwestie wyboru edytora, odpowiedniego kolorowania składni, itp. wśród początkujących adeptów sztuki programowania:

W dużym skrócie, jeśli nie wiesz czym są zmienne, pętle, instrukcje warunkowe – ogólnie nie znasz jeszcze składni konkretnego języka, wybieranie środowiska do programowania jest w danym momencie najmniej istotne – nie uczyni to w żaden sposób z Ciebie lepszego programisty, a tylko odciągnie Cię od konkretów – nauki samego programowania.

Dodatkowo, każda odpowiedź na pytanie postawione w tytule wprowadza u początkujących jeszcze większy zamęt, ponieważ najczęściej jest ona zupełnie odmienna od każdej ją poprzedzającej.

Wybór edytora czy konkretnego super hiper IDE jest efektem naszych osobistych preferencji (które mogą ulegać zmianie w czasie naszego rozwoju), czasu spędzonego z konkretną technologią oraz przede wszystkim naszego wolnego czasu.
Przykładowo możemy postanowić, że chcemy korzystać z edytora Vim – podobno po zainstalowaniu i skonfigurowaniu odpowiednich wtyczek, mapowań przycisków i kilku innych rzeczy można zacząć tego używać do pisania w Pythonie (znam sporo osób, które takie rozwiązanie bardzo sobie chwalą). Jednak jeśli jesteś początkującym lub masz wiele innych obowiązków/priorytetów i nie możesz pozwolić sobie na poświęcenie kilku wieczorów na ustawienie wszystkiego jak należy oraz opanowania choćby kilku podstawowych skrótów klawiaturowych to rozwiązanie nie jest dobre dla Ciebie. Może jeszcze nie teraz. Może się okazać, że z pewnych względów – nawet po kilku podejściach nigdy dane rozwiązanie nie przypadnie Ci do gustu.
Alternatywnie (np. do Vim) możemy pobrać i uruchomić PyCharm – także w wersji darmowej (Community) dla niekomercyjnych projektów. Uruchamiamy i praktycznie mamy wszystko od razu w ramach całego środowiska: Terminal, integrację z Django/Flask/Pyramid, interpreterami czy środowiskami wirtualnymi Pythona – wszystko z całkiem ładnym i spójnym interfejsem graficznym.

Oczywiście  są jeszcze inne rozwiązania: Atom, VS Code, Sublime Text – mające nadal wielu zwolenników. Wydaje mi się, że do pisania prostych programów edytory te (często w połączeniu z linią poleceń) są w zupełności wystarczające; do dużych projektów jednak nie do końca.
Osobiście w przeszłości korzystałem z kilku powyższych narzędzi i najbardziej do gustu przypadł mi Atom oraz Visual Studio Code. Tego drugiego nadal od czasu do czasu używam. Ostatecznie do pracy przy większych projektach przesiadłem się na PyCharm Professional. Jednak nadal – są to tylko moje osobiste preferencje. Zupełnie tak jak z kolorowaniem składni – jeden uwielbia białe tło, inny czarne, a jeszcze ktoś inny bijące po oczach niebieskie.

Podsumowując: nie uważam, że którykolwiek z powyższych edytorów czy IDE jest zły. Nie uważam też, że którykolwiek z nich jest rozwiązaniem właściwym w każdym przypadku. Jak każde oprogramowanie, także i te mają mnóstwo zalet i wad.
Co będzie dobre dla Ciebie? Jeśli zaczynasz programować to większości funkcji i tak nie wykorzystasz, więc wybór może być całkowicie losowy. Zainstaluj sobie jedno z powyższych narzędzi, spędź w nim kilka tygodni i podejmij decyzję, postępuj tak dopóki nie trafisz na narzędzie w pełni pasujące do Twoich problemów. Jeśli spędziłeś już trochę czasu z kodem i wiesz, czego naprawdę potrzebujesz w pracy wybierz jedno narzędzie i naucz się go możliwie najlepiej – warto rozważyć uczenie się co najmniej jednego skrótu klawiaturowego dziennie.

Każda wojna – język A jest lepszy niż język B, edytor X jest lepszy od edytora Y czy system operacyjny L jest lepszy od systemu operacyjnego W – jest tylko i wyłącznie marnowaniem cennego czasu.

BONUS: Dla początkujących programistów Pythona na korzyść PyCharma może przemawiać jego wersja z wbudowanym kursem Pythona. Warto zapoznać się wówczas z PyCharm EDU.

Written by Filip Górczyński

2018.02.14 at 21:28:43

Instalacja fontu Consolas w Ubuntu

leave a comment »

Instalacja fontu Consolas w Ubuntu została bardzo dobrze opisana na kilku stronach, ale dla kompletności pozwolę sobie powtórzyć i skrócić.

Instalujemy odpowiednie pakiety


$ sudo apt-get install font-manager

$ sudo apt-get install cabextract

Do pliku ~/Pulpit/consolas.sh wrzucamy:


#!/bin/sh
set -e
set -x
mkdir temp
cd temp
wget http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe
cabextract -L -F ppviewer.cab PowerPointViewer.exe
cabextract ppviewer.cab

Otwieramy terminal ctrl+alt+t i przechodzimy do katalogu z naszym plikiem (Pulpit). Nadajmy prawo do wykonania chmod +x consolas.sh i uruchamiamy ./consolas.sh.

Chwilę pomieli wyrzucając na ekran wykonywane instrukcje, zaciągnie archiwum CAB z fontami od Microsoftu i zapisze w katalogu temp na Pulpicie.

W terminalu wpisujemy font-manager i uruchomi się niewielkie okienko:

 

 

 

 

 

 

 

Na dole z lewej strony znajdziemy 5 przycisków; pierwszy z prawej strony pozwoli nam zainstalować nowe fonty. Wybierzemy katalog ~/Pulpit/temp gdzie powinien znaleźć kilka – między innymi te z rodziny Consolas. Wybieramy pliki pasujące do CONSOLA*.TTF, pozwalamy Font Manager na przeładowanie biblioteki i już powinniśmy mieć wybrane fonty w systemie.

Po zainstalowaniu wszystko jest niby super, ale gdy wejdziemy np. na StackOverflow zauważymy, że przykładowe źródła przedstawiane są fontem "Consolas Bold Italic" , która wskazuje na plik CONSOLAZ.TTF – mimo, że w CSS określone jest jasno „Consolas”. Nie znam dokładnej przyczyny takiego zachowania, ale rozwiązaniem tego problemu jest po prostu zmiana nazw plików w katalogu /home/USER/.fonts/Library/C/z:


CONSOLAB.TTF
CONSOLAI.TTF
CONSOLA.TTF
CONSOLAZ.TTF

na


CONSOLASB.TTF
CONSOLASI.TTF
CONSOLAS.TTF
CONSOLASZ.TTF

czyli po prostu dodanie literki Sw nazwie.

Written by Filip Górczyński

2017.06.16 at 06:33:03

ffmpeg – dzielenie dużego filmu na krótsze kawałki

leave a comment »

Z nieznanych mi do końca przyczyn tańsze odtwarzacze DVD (ale te posiadające port USB) nie radzą sobie za dobrze z systemami plików innymi niż FAT32. Oczywiście, nie byłoby to aż tak problematyczne, gdyby nie fakt, że w takim systemie plików nie da się umieścić pliku większego niż 4 GB. Jak wiadomo filmy w dobrej jakości to dużo gigabajtów. Jedną z alternatyw jest podłączenie do telewizora laptopa lub Raspberry Pi i odtwarzanie bezpośrednio z tego urządzenia – większość ludzi posiada już NTFS lub ext3/ext4, więc większy plik nie będzie problemem.

Gdy jednak mimo wszystkich sprzyjających okoliczności nadal chcielibyśmy podzielić plik z filmem (np. gdybyśmy chcieli go na dyskietkach wysłać do ZUS) z pomocą przyjść może narzędzie ffmpeg i poniższe polecenia:


$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.avi -ss 00:00:00 -t 01:00:00 -async 1 -c copy ~/The.Greatest.Movie.Ever.Sold-part.1.avi
$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.avi -ss 01:00:00 -t 01:55:23 -async 1 -c copy ~/The.Greatest.Movie.Ever.Sold-part.2.avi

Parametr -ss HH:MM:SS określa początek – moment, od którego chcemy zacząć wycinać.

Parametr -t HH:MM:SS określa nam czas, jaki chcemy wyciąć. W przypadku pierwszego polecenia będzie to 1 godzina od początku filmu.

Parametr -async to synchronizacja audio – wartość 1 wg dokumentacji oznacza „wypełnienie i przycinanie” – w praktyce jak to działa – nie mam pojęcia :).

Parametr -c określa kodek, w przypadku podania wartości copy zostanie on skopiowany z pliku źródłowego. O ile dobrze kojarzę, możemy to zamienić na odpowiednie –vcodec i –acodec.

Inna sprawa, że nie każdy odtwarzacz DVD radzi sobie z różnymi formatami plików (np. mkv, mp4) i aby skonwertować plik z filmem z formatu MP4 do AVI może się przydać polecenie:


$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.mp4 -qscale 0 -vcodec mpeg4 -acodec ac3 ~/The.Greatest.Movie.Ever.Sold.avi

gdzie parametr -i określa nasz plik wejściowy, -qscale 0 to ewentualna utrata jakości – nas interesuje konwersja bezstratna. -vcodec mpeg4 to kodek wideo i -acodec ac3 to kodek audio. Nie możemy podać wartości copy jak w poprzednich poleceniach ponieważ konwertujemy na inny format pliku, a przez to interesują nas inne kodeki. Na końcu podajemy nazwę pliku wyjściowego, którego docelowy rozmiar zapewne będzie trochę większy od pliku wejściowego.

Samo ffmpeg to nie tylko cięcie czy konwersja filmów, dlatego po więcej możliwości warto skierować się do pomocy tego narzędzia: ffmpeg -h full lub stronę projektu ffmpeg.org

Written by Filip Górczyński

2017.06.14 at 07:57:44

PyCode Carrots w Poznaniu

2 Komentarze

PyCode Carrots logo

W dniach 27.11.2015-29.11.2015 w Instytucie Matematyki i Informatyki Uniwersytetu im. Adama Mickiewicza w Poznaniu odbyły się warsztaty PyCode Carrots. Z 500 zgłoszeń zostało wybranych 48 osób. Na 3 uczestników warsztatów przypadał 1 mentor + organizatorzy, więc wydarzenie całkiem udane. Miałem przyjemność bycia jednym z mentorów.

12274350_1070684122950778_2519210851228097787_n

Na Twittera spływały na bieżąco różności z imprezy – co można w większości znaleźć pod #goCarrots, #PyCode oraz @ggCarrots.

Oczywiście nie brakowało przerw od programowania w postaci prezentacji robotów Lego oraz zawodów sumo dla robotów, prezentacji Oculus oraz Sphero, szkolenia z umiejętności miękkich (głównie nt. Elevator Pitch), prezentacji firm oraz projektów oraz wystąpienia przedstawiającego możliwość przenoszenia jedzenia z gier do świata rzeczywistego.

Warto wspomnieć także o konkursach, w których do wygrania były m.in książki związane z Pythonem.

Dziękuję wszystkim uczestnikom, organizatorom i mentorom za wspólnie spędzony czas i wszystko, czego się od siebie nauczyliśmy.

Written by Filip Górczyński

2015.12.01 at 09:22:55

%d blogerów lubi to: