Pytania o narzędzia powtarzają się co jakiś czas w mailach i komentarzach, dlatego dziś dzielę się z Wami zestawem moich zaufanych aplikacji, z których korzystam.
Jestem przekonany, że oprogramowanie i urządzenia, z których korzystamy, są tylko narzędziami wspomagającymi nas na drodze do obranego celu – wbrew temu, co mówią producenci wydający co pół roku nową wersję, która jest o rząd wielkości „lepsza” od poprzedniej.
Sam nie przywiązuję dużej wagi do narzędzi. Nie czekam na premierę nowego telefonu, nie instaluję nowych aplikacji. Nie czytam portali ani blogów technologicznych. Staram się być maksymalnie pragmatyczny i jeżeli coś spełnia swoją funkcję, nie szukam zamienników.
Temat narzędzi postanowiłem podzielić na dwie części. W tym wpisie skupiam się na oprogramowaniu. Kolejny wpis poświęcę na hardware, a więc wszystkie urządzenia, które pomagają mi w codziennej pracy.
Prócz aplikacji bezpośrednio związanych z Data Science, dzielę się również tymi, które są powiązane z szeroko pojętą produktywnością tak jak np. system operacyjny, czy aplikacja typu GTD.
ps. Jeśli chciałbyś wypróbować jedną z nich, to linki znajdują się na końcu wpisu. 🙂
1. System operacyjny.
- PC – Manjaro Linux KDE – od kilkunastu lat jestem wiernym użytkownikiem Linux-a. Korzystałem głównie różnych dystrybucji opartych na Ubuntu (Mate, elementary) i różnych środowiskach graficznych. Miały one jedną wspólną wadę – problemy ze stabilnością.
Około 3 lata temu po jednej z większych aktualizacji problemy ze stabilnością Ubuntu powróciły. Znajomy z pracy dał mi pendrive z nową dystrybucją, którą polecił sprawdzić. Tak natknąłem się na Manjaro, które jest ze mną do dziś. Nie wchodząc w szczegóły, napiszę tylko, że wszystko działa bez zastrzeżeń. Szczerze polecam.
- Telefon – LineageOS + F-Droid – czy zastanawiałeś się kiedyś, czemu 2-letnie telefony z Androidem zaczynają się zawieszać? Ich wydajność z wiekiem drastycznie spada. Przyczyn takiego stanu rzeczy jest wiele. Jedną z nich jest oprogramowanie dostarczane przez Google i producentów telefonów. LineageOS, to „czysty” Android, bez ekosystemu Google i bez żadnych dodatkowych nakładek na system. Wszystko działa, jak należy nawet na moim niemal 7-letnim telefonie.
A co z aplikacjami? Jak żyć bez Google Play Store? Problem ten adresuje F-Droid. Jest to sklep, w którym swe aplikacje udostępniają setki (tysiące?) programistów.
Możesz się zastanawiać, po co „bawić się” z instalacją systemów, które wymagają dodatkowego nakładu czasu na start. Przecież można korzystać z Windows, MacOS, Google Android, czy iOS, które wyglądają i działają wystarczająco dobrze. Ceną tej wygody jest nasza prywatność. Jednocześnie nie chcę Cię przekonywać do przejścia na stronę Open Source. Wyrażam jedynie swoje zdanie i szanuję wybory innych. Warto mieć jednak świadomość co jest dodatkową opłatą w dokonywanych transakcjach.
2. Programowanie.
- Cały ekosystem Anacondy – zaliczam do niego Jupyter Notebook (moje główne IDE, bez którego nie wyobrażam sobie pracy), Spyder i wszystkie niezbędne biblioteki, które widzisz w moich projektach. W 95% przypadków ograniczam się do Pandas, Scikit-Learn, NumPy, SciPy i MatplotLib.
- Sublime Text – natknąłem się na niego na jednej z konferencji branżowych w okolicach 2009 roku. Wart każdej złotówki. Posiada masę przydatnych funkcjonalności i skrótów klawiszowych przyspieszających pracę. W połączeniu ze zwykłym Linux-owym terminalem do ok. 2014 roku służył mi jako minimalistyczne i jedyne środowisko, w którym kodowałem.
Nie wiesz jak rozpocząć analizę danych? Sprawdź ten wpis, w których pokauję 5 prostych kroków rozpoczynających analizę danych.
3. Aplikacje do zarządzania zadaniami.
- Everdo – niezbyt popularna aplikacja typu GTD rozwijana przez Belgijskiego programistę. Pomimo iż nie jest najtańsza (312 zł, po kursie Euro na dzień 11.07.2020), to uważam, że podobnie jak Sublime Text jest w 100% warta swej ceny.
Absolutnie nie wyobrażam sobie pracy bez niej. Planuję z nią przyszłe inicjatywy, wykonuję cotygodniowy przegląd zadań i „odhaczam” kolejne elementy z listy rzeczy do zrobienia. Dzięki niej mam poczucie, że panuję nad wszystkimi obszarami w swoim życiu.
Kiedyś przez pewien czas używałem Nozbe, Wunderlist i Todoist. Żadna z nich nie umożliwia tak dobrego zarządzania wieloma obszarami życia, jak Everdo (praca zawodowa, blog, rodzina, dom, sport, etc.). Szczerze polecam!
4. Cyfrowy notatnik.
- Standard Notes – wieloplatformowa, nastawiona na prywatność aplikacja do tworzenia notatek. Robi tylko jedną rzecz, lecz robi ją bardzo dobrze. Kiedyś korzystałem z Simplenote, lecz po pojawieniu się kilku zastrzeżeń związanych z prywatnością i szyfrowaniem danych, postanowiłem przejść na Standard Notes.
5. Pozostałe.
- Ghostwriter – aplikacja z której korzystam do tworzenia wpisów na blog. Umożliwia pisanie w trybie bez rozpraszaczy. Tworzę w niej tej wpis. 🙂
- WordPress – platforma do zarządzania treścią publikowaną na stronach internetowych, napisana z użyciem PHP, JS i MySQL. Na niej oparty jest mój blog.
- Protonmail – szwajcarska skrzynka mailowa, której autorzy skupiają się na prywatności i bezpieczeństwie.
- Liferea – czytnik RSS.
- SuperMemo – aplikacja do nauki metodą popularnych fiszek. Korzystam z niej do utrwalania wiedzy związanej z Data Sciecnce oraz do nauki języków. Posiada aplikacje dostępne na najpopularniejsze systemy operacyjne. Umożliwia synchronizację.
- Strava – jedyna aplikacja-portal społecznościowy, z której regularnie korzystam. Jestem fanem kolarstwa, a Strava jest odpowiednikiem Endomondo dla kolarzy. Obserwujesz treningi znajomych i udostępniasz swoje. Dzięki niej wieczorami ćwiczę swoją prokrastynację. 😉
- Signal – kolejna aplikacja dotykająca tematu prywatności. Signal jest komunikatorem umożliwiającym rozmowy i wymianę wiadomości z zapewnieniem najwyższego poziomu prywatności. Jakiś czas temu polecał ją sam Edward Snowden.
A Ty, z jakich narzędzi korzystasz? Podziel się w komentarzu pod wpisem swoimi sprawdzonymi aplikacjami. 🙂
Linki:
- Manjaro
- LineageOS
- Sublime Text
- Anaconda
- Everdo
- Standard Notes
- ghostwriter
- WordPress
- Protonmail
- Supermemo
- Strava
- Signal
PODOBAŁ CI SIĘ TEN ARTYKUŁ?
Jeśli tak, to zarejestruj się, by otrzymywać informacje o nowych wpisach.
Dodatkowo w prezencie wyślę Ci bezpłatny poradnik :-)
Zaimponowałeś mnie Pan w tym momencie – również dużo z tego u mnie w posiadaniu jest, ale również dziękuję za podpowiedzi co warto sprawdzić. Dziwne że nic Pan nie wspomniałeś o Colabie, bo sama Anaconda bez karty GFX to może okazać się deko sława 🙁 Pozdro!
Dziękuję za komentarz i za miłe słowo. Fajnie, że te informacje okazały się wartościowe 🙂
Co do Colab, to nie wspomniałem o nim, ponieważ ten wpis dotyczył jedynie software. Właśnie pracuję nad wpisem „Narzędzia z których korzystam – część 2” w którym skupiam się na hardware. Chmurę postanowiłem podciągnąć pod sprzęt, ponieważ tłumaczy ona „mierną” specyfikację mojego prywatnego komputera. Pozdrawiam 😉
Bardzo ciekawy zestaw narzędzi. Sam od kilku tygodni zaczynam przygodę z Pythone’m i wybór padł właśnie na Anacondę. Dodatkowo również przymierzam się na migrację na Linuxa ale prawdopodobnie będzie to Ubuntu. A później kto wie 😉 Chętnie wypróbuję również ProtonMaila. Nie słyszałem wcześniej akurat o tym kliencie poczty.
Na blog trafiłem wczoraj i bardzo mi się podoba. Raczej będę stałym bywalcem! 🙂
Dziękuję Adrian za podzielenie się swoimi dośwsiadczeniami i za miłe słowa. 🙂 Witam w Pythonowo – Linuksowej rodzinie. Ubuntu to dobry wybór. Zazwyczaj jest ono pierwszym typem początkujących. Jak zacznie sprawiać problemy, to pamiętaj o Manjaro. 😉 Powodzenia w nauce! 🙂
Dziękuję bardzo 🙂 Wczoraj decyzja padła na Ubuntu i już pierwsze koty za płoty, że się tak kolokwialnie wyrażę 😉 System bardzo mi się spodobał i chłonę każdą informację jaką mogę na jego temat. Jak na razie największym minusem jest, że nie wiem dlaczego ale Anacondę mogę odpalić jedynie z poziomu terminala. Niemniej pewnie i do tego dojdę co tam namieszałem 🙂
To zupełnie normalne. Podobnie jest z samym jupyter-notebook – też jest uruchamiany z poziomu terminala. Na linuksie niektóre elementy działają i wyglądają nieco inaczej niż na Windows. 🙂
Mój zestaw:
System operacyjny: MX Linux
Telefon: chętnie przetestuję ten LineageOS przy okazji
Natomiast jeśli mowa o telefonach polecam zapoznanie się z aplikacją Termux: emulator terminala, a równocześnie pełnoprawne środowisko Linux – można instalować normalne oprogramowanie i korzystać np. z pip3, czyli korzystać z Pythonowych bibliotek. Można łączyć się zdalnie przez SSH to i z Termux. Cenne narzędzie – szczególnie w czasach, gdy moc obliczeniowa telefonów rośnie i można tę moc wykorzystać w coś więcej niż do grania w gry 😉
Edytor: Sublime Text (lubię), ostatnio doszkoliłem się w edytorze Vim (możliwość działania bezpośrednio w terminalu pozwala na większą uniwersalność – można pisać wszędzie: zdalnie przez SSH – także na słabych sprzętach, albo na telefonie w aplikacji Termux)
Anaconda, conda – tak, uniwersalne i wygodne all-in-1; warto nadmienić, że Spyder intensywnie się rozwija i co jakiś czas pojawią się nowsze wersje.
Jupyter Notebook ma tę zaletę, że nawet instalowany luzem z repozytoriów (bez Anacondy) działa na najsłabszych komputerach – oczywiście obliczenia to inna sprawa, ale samo uruchomienie i używanie/pisanie jest płynne – to bardzo duża zaleta.
Zresztą można też łączyć się z nim zdalnie, czyli może być zainstalowany na mocnej maszynie (obliczenia), a uruchomiony na słabszej.
GhostWriter vs FocusWriter – z tych dwóch wybieram jednak Focus Writer 😉
Bezpieczna (szyfrowana) poczta: mam konto na Tutanota.com (alternatywa dla ProtonMail, warto poznać/przetestować, bo dynamicznie się rozwijają.
Ostatnio trafiłem na Google Colab – bardzo przydatne (są zalety, wszystko gotowe do akcji, są też pewne drobne niedogodności – rozłączanie kernela/środowiska), chociaż czerpię przyjemność z uruchamiania Jupyter lokalnie u siebie i lubię to jak wygląda i jak działa.
Chmury mają zalety, ale też mogą rozleniwiać.
Optymalnie jest móc, wiedzieć i potrafić samemu zorganizować sobie środowisko lokalnie u siebie (bo nigdy nie wiadomo, kiedy trafi do nas sprzęt, który będzie miał MOC i możliwości – już teraz są dostępne w przystępnyc cenach taki komputerki jak np. Nvidia Jetson Nano i trochę wyższe modele, Nano niewiele droższe od Raspberry Pi, a pozwalające na więcej w obszarze ML/AI), a kiedy to wygodne/potrzebne/efektywne korzystać z chmur/y.
Lepiej wiedzieć, potrafić i móc więcej niż mniej 😉
Warto korzystać z najbardziej wygodnych dla nas i jednocześnie efektywnych narzędzi – ale ostatecznie chodzi przede wszystkim o to, żeby gwoździe były wbite dobrze i do końca, czy to młotkiem, siekierą, kamieniem czy czymkolwiek co jest pod ręką.
Najważniejsze jest wbijanie gwoździ, a nie najnowsza wersja młotka 😉
Dlaczego Linux? Oprócz tego, że darmowy. Czy daje jakąś przewagę?
Hej Piotr. To, że Linux jest darmowy jest dla mnie wręcz pomijalne. Zalet jest całe mnóstwo. Można je podzielić na kilka obszarów (ja wymienię i opiszę w kilku zdaniach te, które są dla mnie najważniejsze):
1. Użyteczność i funkcjonalność.
Wiersz poleceń, masa przydatnych narzędzi i elastyczność. Pracują na Linux dopasowujesz system „pod siebie”, np. tworzysz one-linery (skróty użytecznych poleceń, które automatyzują powtarzalne czynności). Python na każdej dystrybucji z której dane mi było korzystać działał out of the box.
Narzędzia takie jak: grep, find, możliwość korzystania z pipe-a, emacs, vim.
2. Open Source + bezpieczeństwo + prywatność.
Zacznę od tego, że bardzo podoba mi się historia i kultura związana z Linuxem. Zasada prostoty i społeczności rozwijającej coś dla wspólnego dobra.
Otwarty kod źródłowy minimalizuje ryzyko związane z prywatnością danych i śledzeniem użytkowników, które w komercyjnych systemach (Windows, Mac OS) jest to… nazwijmy to „wyzwaniem”.
3. Dostępność.
Znakomita większość serwerów działa na Linux właśnie. To na serwerach jako Data Scientiści wdrażamy swoje rozwiązania. Umiejąc pracować np. z wierszem poleceń na dowolnym serwerze czujesz się jak ryba w wodzie i rozwiązanie podstawowych problemów nie stanowi trudności.
Konfiguracja środowiska zdalnie przez ssh? Nie ma sprawy.
Brakuje bibliotek? Trzeba coś doinstalować? Żaden problem.
Wystawienie api zwracającego score? Pewnie! 🙂
Edycja kodu na serwerze w Vim/Emacs/nano? Ok! 😉
4. Stabilność.
Różnego rodzaju „zawieszki” na Linux są rzadkością. Nie pamiętam kiedy ostatnio resetowałem komputer. Wiele systemów działających na Linux pozostaje uruchomionych miesiącami, a aktualizacje są wykonywane bez restartów.
W temacie Linux-a i jego użyteczności w Data Science polecam tę publikację. Pozdrawiam! 🙂
Lingeaos może być ciekawa. Pytanie, czym ją zainstalować na telefonie przy pomocy manjaro?
Tak, można. 🙂 Przechodziłem przez to. Proces standardowy, jak przy każdym linuxie.
Dziękuję za odpowiedź. Czy mógłbyś się podzielić za pomocą jakich narzędzi to osiągnąć?
Mam stary telefon LG i chciałbym go reaktywować. ale poradników do Manjaro jest w tym temacie mało.