Ten wpis jest całkowicie nietechniczny a związany z życiem prywatnym. Można nawet śmiało powiedzieć, że z życiem prywatnym każdego z nas – w mniejszym lub większym stopniu – ale jednak. Jeśli więc poszukujesz treści stricte technicznych, to nic takiego ciekawego tutaj się nie pojawi.
07.11.2019 byłem na pogrzebie taty i później postanowiłem popełnić krótki wpis z moimi przemyśleniami na facebookowej grupie „Jestem tatą”.
Po komentarzach i reakcjach członków tej grupy uznałem, że spotkał się z całkiem pozytywnym odzewem (wpis, chociaż tata chyba też) i pomyślałem, że może nie byłoby głupim pomysłem podzielić się nim w innej społeczności.
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.
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.
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:
Aplikacja na Androida z pomysłami podzielonymi na kategorie oraz stopnie trudności – Programming Ideas 2
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ń:
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.
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.
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.
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.
Tym razem bardzo krótki wpis w formie pytania, na które może ktoś będzie mógł udzielić wartościowej odpowiedzi.
Przeglądając Google Trends dla co popularniejszych frameworków PHP zacząłem się zastanawiać na co mogą wskazywać większe ilości zapytań o dany framework do Google.
I pojawiło się pytanie: kiedy ja najczęściej wpisuję nazwę frameworka/biblioteki w Google? Najczęściej kiedy napotykam na problem a sam framework nie ułatwia zadania w rozwiązaniu problemu lub robi to w nie do końca oczywisty sposób.
Czy tym samym ilość zapytań ze słowem kluczowym wskazującym na interesujący nas framework/bibliotekę nie powinna nas informować, że im mniej zapytań tym lepiej, ponieważ wybrane rozwiązanie jest najmniej problematyczne?
ponieważ już jutro w Poznaniu rusza druga edycja nauki programowania w Pythonie pod szyldem PyLadies chciałbym serdecznie zaprosić wszystkich, którzy nie wiedzą gdzie lub boją się wystartować z nauką programowania.
Start: 21.10.2015 r., godzina 18:30, Politechnika Poznańska, Centrum Wykładowe – Piotrowo 2, Sala L 1.121.
Harmonogram (wstępny plan z możliwymi zmianami w przyszłości):
21.10 PyTrening 2.0 # 0 Spotkanie organizacyjne. 28.10 PyTrening 2.0 # 1 Wprowadzenie. Instalacja Pythona. Wstęp do konsoli. windowsowej/basha. „Hello World”. 04.11 PyTrening 2.0 # 2 Linux. 18.11 PyTrening 2.0 # 3 Wstęp do algorytmiki 25.11 PyTrening 2.0 # 3.1 Scratch 02.12 PyTrening 2.0 # 4 Typy danych 09.12 PyTrening 2.0 # 5 Słowniki, sety 16.12 PyTrening 2.0 # 6 Pętle 13.01 PyTrening 2.0 # 7 Praca z plikami 20.01 PyTrening 2.0 # 8 Funkcje, moduły 27.01 PyTrening 2.0 # 9 PODSUMOWANIE 02.03 PyTrening 2.0 # 10 List comprehension, map, zip, lambda 09.03 PyTrening 2.0 # 11.0 Klasy 16.03 PyTrening 2.0 # 11.1 Dziedziczenie 06.04 PyTrening 2.0 # 12 Web scraping 13.04 PyTrening 2.0 # 13 Flask 20.04 PyTrening 2.0 # 14 Alchemy 27.04 PyTrening 2.0 # 15 Okienka – GUI 11.05 PyTrening 2.0 # 16 Unit testing, TDD 18.05 PyTrening 2.0 # 17.0 Zadania z całego roku. Utrwalenie wiedzy – część I 01.06 PyTrening 2.0 # 17.1 Zadania z całego roku. Utrwalenie wiedzy – część II 08.06 PyTrening 2.0 # 18 PODSUMOWANIE
O ile wiem to oprócz uczestników bardzo mile widziani są także mentorzy.
Od pewnego czasu chcę wyprzedać większość książek, które posiadam a które w dużej mierze dotyczą branży IT. Nazbierało się trochę tego przez te wszystkie lata, a przy przeprowadzkach to wyjątkowe utrudnienie.
Aktualna lista książek wystawiona jest na Allegro – nie wklejam jej tutaj, ponieważ lista regularnie ulega zmianie: