Comics: How does motivation work?


Idealny świat: dostajesz zadanie do zrobienia, wykonujesz je na przykład, w ciągu 4 godzin i... kończysz pracę na dzisiaj. Nie pracujesz od 09:00 do 17:00 tylko do wykonania zadania.
Czy taki scenariusz jest do realizacji?
Można na to spojrzeć z dwóch stron: czy firma, dla której pracujesz, pozwoli Ci na to? Czy jesteś, w stanie skupić się na pracy, w taki sposób, że nie pozwalasz się rozpraszać, a koncentrujesz się tylko na jednym?
Nie masz zbytniego wpływu na to pierwsze. Na to drugie już tak — więc lepiej jest skupić się na tym, na co sami mamy wpływ.
Celem takiego skupienia jest przestawienie myślenia: "pracuję, w trybie 8-godzinnym" na: "zamierzam dzisiaj zająć się tym zadaniem".
Nie skupiam się na wyniku mojej pracy, a na działaniu. Jeśli skupisz się wyłącznie na pracy, to wynik przyjdzie sam.
Pisząc "skupić się" mam na myśli taki sposób myślenia poprzez zadawanie pytania: "jaki powinien być mój pierwszy/następny krok?". Co mogę zrobić, aby przybliżyć się do realizacji zadania?
W taki sposób możemy skupić się na małej części, która przybliży nas do osiągnięcia naszego celu.
Jeśli chcesz poprawić efektywność własnej pracy, powinieneś nauczyć się zarządzać własnym skupieniem. Im lepiej to robisz, tym lepsze osiągniesz wyniki.
Dodatkowo powinieneś zarządzanie własnym skupieniem zamienić, w nawyk. Robiąc to regularnie: ćwiczysz i przestawiasz się na myślenie zadaniowe.
Pierwszą aplikacją, z której korzystałem była: Noisli: https://www.noisli.com/. Udostępnia ona zestaw kilku dźwięków, które dodatkowo można ze sobą łączyć. Aplikacja nie jest do końca bezpłatna. Wprawdzie można z niej korzystać i nic za to nie płacić, ale są pewne ograniczenia, w użyciu. Więcej informacji znajdziesz tutaj:
Całkowicie darmowe za to są dźwięki wrzucone na YouTube'a:
Thunder & Rain Sounds
Stormy Ocean Sounds at the Beach
Blizzard Sounds
Blizzard Snowstorm & Arctic Howling Wind Sounds
Ocean Ambience on a Tropical Island
Birdsong
Nature Sounds
Na YouTube jest tego mnóstwo.
W połowie roku zakupiłem aplikację Endel na telefon. Napisałem nawet recenzję, znajdziesz ją tutaj.
Aplikacja jest świetna! Mimo że trzeba za nią zapłacić, to spełnia moje oczekiwania. Bardzo polecam.
HTML 5 udostępnia programiście API do zapisywania i przechowywania danych o nazwie magazyn sieciowy. Mamy dwa rodzaje magazynów: magazyn lokalny: local storage oraz magazyn sesji: session storage.
Oba mechanizmy korzystają z tego samego interfejsu. Oznacza to, że wszystkie metody dostępne w magazynie lokalnym będą dostępne, w magazynie sesji.
Można zapytać, po co powstały i to jeszcze dwa dodatkowe funkcjonalności skoro istnieje coś takiego jak: cookies? To, co różni ciastka od local/session storage to, że dane w tym drugim są przechowywane wyłącznie po stronie klienta (po stronie przeglądarki). Nie można się do nich dostać po stronie serwera tak jak w przypadku ciastek. Ciastka mają także pewne ograniczenia co do ilości przechowywanych, w nich danych. Wprawdzie takie ograniczenie istnieje także po stronie magazynu sieciowego, ale tam możemy umieścić znacznie więcej danych.
Istnieje pewna różnica między magazynem lokalnym a sesji, ale o tym w dalszej części wpisu. Skupmy się teraz na wspólnym interfejsie.
Zapis i odczyt działa na zasadzie: klucz --> wartość.
Do magazynu lokalnego odwołujemy się za pomocą obiektu: localStorage. Do magazynu sesji mamy dostęp poprzez obiekt: sessionStorage.
Z tego powodu, że interejs dla obu magazynów jest taki sam, w przykłądach przyjąłem jedną nazwę dla magazynu storage. Wystarczy, że ją podmienisz na localStorage lub sessionStorage, a będzie działać.
Do pracy z danymi przyda nam się takie API:
Jeśli chcesz zapisać lub nadpisać dane możesz skorzystać z metody: setItem:
storage.setItem('someData', 'My data');
Pierwszy parametr to unikalny klucz, którym będziemy się posługiwać. Jeśli już taki klucz istnieje i go użyjesz do zapisu, to po prostu nadpiszesz poprzednie dane. Drugi argument to dane, które chcemy zapisać.
Istnieje inny sposób na zapis:
storage['someData'] = 'My data';
storage.extraData = '123';
Do pobrania zapisanych danych możemy użyć: getItem:
const data = storage.getItem('someData');
lub:
const data = storage['someData'];
const extraData = storage.extraData;
Jeśli chcemy skasować dane pod konkrentym kluczem korzystam z funkcji: removeItem:
storage.removeItem('someData');
Jeśli chcesz skasować wszystko, co zawiera magazyn sieciowy, użyj funkcji: clear:
storage.clear();
Obiekt magazynu sieciowego zawiera właściwość length. Zwraca ona ilość przechowywanych elementów, w magazynie:
storage.length;
Z kolei key przyjmuje jeden parametr: indeks danego elementu. W rezultacie zwraca nazwę klucza. Przykład:
for (let i = 0; i < storage.length; i++) {
const key = storage.key(i);
const value = storage[key];
console.log(key, value);
}
Tylko uwaga: nie będziesz mieć gwarancji, że kolejność jest zachowana, w jaki sposób je dodałeś do magazynu-implementacja zależy od przeglądarki.
Do magazynu sieciowego można zapisać tylko łańcuch znaków. Bardziej złożone typy danych musimy przekonwertować do stringa i wtedy możemy dane zapisać:
const myObject = {
title: 'Some object',
amount: 7,
tags: ['tag 1', 'tag 2', 'tag 3']
}
const objectToSave = JSON.stringify(myObject);
storage.setItem('myObject', objectToSave);
Po wczytaniu zapisanego obiektu musimy dokonać konwersji ciągu znaków w obiekt:
const myObject = JSON.parse(storage.getItem('myObject'));
console.log(myObject.title);
Magazyn dzieli się na dwa rodzaje: magazyn lokalny (local storage) oraz magazyn sesji (session storage). Oba mają ten sam interfejs. Ale są różnice między nimi:
Przede wszystkim dane przechowywane, w tym magazynie są trwałe — w takim sensie, że gdy użytkownik zamknie stronę, a następnie do niej wróci, to dane dalej tam będą. Dane, w takim magazynie przechowywane są, w obrębie domeny. Uwaga: znaczenie ma także protokół! Jeśli zapiszesz dane pod protokłem: http i będziesz próbować wczytać dane pod https mimo takiej samej domeny nie będziesz mieć do nich dostępu.
Dostęp do magazynu lokalnego mamy poprzez globalny obiekt o nazwie: localStorage.
Dane zapisane, w magazynie sesji są trwałe do momentu jej zamknięcia, to jest do zamknięcia zakładki przeglądarki.
Dostęp do magazynu sieci mamy poprzez globalny obiekt: sessionStorage.
Czy często masz tak, że któryś już raz piszesz ten sam tekst? Na przykład treść e-maila? Drobne frazy jak: "Pozdrawiam XYZ"? W którymś momencie robi się to nudne, a nawet wręcz uciążliwe. W którymś momencie doszedłem do wniosku, żeby to jakoś usprawnić.
Na szczęście jest rozwiązanie tego problemu! Espanso to darmowa aplikacja umożliwiająca użytkownikowi wykorzystanie skrótu tekstowego po wpisaniu którego zostanie wygenerowany szablon tekstowy wcześniej zdefiniowany przez użytkownika. Niesamowicie ułatwia i przyspiesza to pracę.
Aplikacja działa na systemach operacyjnych: Linux, Windows, MacOS. Została napisana w języku Rust.
W tym wpisie pokażę jak zainstalować wersję na Linux'a: a konkretnie na Ubuntu. Można to zrobić na kilka sposobów.
Możesz po prostu wykorzystać aplikację: "Ubuntu Software" i za pomocą wyszukiwarki znaleźć aplikację: Espanso.
Inny sposób to użycie komendy i instalacja za pomocą snapa. Wpisujemy:
sudo snap install espanso --classic
Już po zainstalowaniu aplikacji odpalamy komendę:
espanso start
Może się zdarzyć, że wyskoczy błąd, ponieważ może brakować jakichś pakietów. W takim wypadku wystarczy zainstalować brakujące pakiety i uruchomić powyższą komendę jeszcze raz.
Po uruchomieniu aplikacji wpisz obojętnie gdzie (na przykład w edytorze tekstowym) komendę:
:espanso
Zaraz po wpisaniu tego wyświetli się:
Hi there!
Jeśli chcesz dodawać własne szablony, musisz edytować plik konfiguracyjny. Gdzie znajduje się ten plik?
Wpisz komendę:
espanso path
Wyświetli się coś takiego:
Config: /home/user/.config/espanso
Packages: /home/user/.local/share/espanso/packages
Data: /home/user/.local/share/espanso
Pod Config znajduje się ścieżką do pliku z szablonami. Ten plik to: default.yml:
/home/user/.config/espanso/default.yml
Plik jest napisany w formacie YAML.
Wystarczy go otworzyć za pomocą edytora tekstowego i można dodawać własne szablony.
Istnieje jeszcze dodatkowa komenda, która uruchomi automatycznie edycję pliku z szablonami:
espanso edit
Uruchomi ona edycję pliku za pomocą domyślnego edytor tekstowego, w Twoim systemie operacyjnym.
Otwórzym plik default.yml do edycji. Zobaczymy coś takiego:
matches:
- trigger: ":espanso"
replace: "Hi there!"
Pod matches dodajemy nasze szablony. Z tej racji, że plik konfiguracyjny jest zapisany, w formacie YAML ważne są wcięcia.
Musimy zdefiniować dwie rzeczy:
Skrót - Po wpisaniu którego zostanie wygenerowany szablon tekstowy. Ustawiamy go pod trigger.
Treść - Szablon, którego chcemy używać. Ustawiamy go pod replace.
Czyli jeśli chcemy dodać coś w stylu:
Pozdrawiam
Marcin
Piszemy:
- trigger: ":pzdr"
replace: |
Pozdrawiam
Marcin
Oto lista komend przydatnych do użycia:
espanso start - Uruchamia aplikację w tle. Jeśli zrobiłeś to już wcześniej, to po ponownym uruchomieniu komputera nie będziesz musiał robić tego znowu.
espanso status - Informuję Cię czy aplikacja jest uruchomiona.
espanso path - Podaje ścieżki. Do pliku konfiguracyjnego itp.
espanso edit - Otwiera plik konfiguracyjny (zawierający szablony) do edycji, w domyślnym edytorze tekstu.
espanso log - Informuje o ewentualnych błędach. Jest to szczególne przydatnie kiedy pomylisz się, we wprowadzaniu danych do pliku z szablonami jeśli popełnisz jakiś błąd składniowy.
Espanso to aplikacja, która znacznie przyspieszyła moją pracę z tekstem. Ma bardzo wiele do zaoferowania. Oczywiście wszystkich rzeczy tutaj nie opisałem, ale możesz znaleźć więcej informacji na stronie z dokumentacją
We wrześniu opublikowałem 8 wpisów:
Angular:
Produktywność:
JavaScript:
Inne:
Git:
Przeczytałem trzy książki:
Przesłuchałem dwa audiobooki: