5 sposobów na efektywne korzystanie z emaila

Nie lubię wpisów o produktywności, ale z poczty elektronicznej korzysta wiele osób i przerażająca część robi to w sposób tragicznie nieefektywny. Przynajmniej moim zdaniem. Ponieważ email jest dla mnie od paru lat w pracy jednym z podstawowych sposobów komunikacji i narzędzi pracy, pozwolę sobie na opisanie paru prostych sposobów na efektywniejsze korzystanie z niego.

1. Korzystaj z IMAP

Jeśli zdarzyło się komuś stracić bezpowrotnie zawartość skrzynki z powodu utraty komputera czy padu jego dysku, korzystać z poczty elektronicznej w różnych miejscach czy na różnych komputerach i nie mieć dostępu do jakiegoś maila czy swojej odpowiedzi na jakiegoś maila bo został na innym komputerze to znaczy, że warto zacząć korzystać z IMAP[1].

Dodatkowa zaleta jest taka, że jeśli przesuniemy ręcznie maila do folderu (o tym zaraz), to będzie on w tym folderze wszędzie, a nie tylko na komputerze, na którym przesuwamy, ale wszędzie.

Wiem, że rada może wydać się dziwna, ale wiele osób, zwłaszcza tych, które zaczynały korzystać z poczty dawno temu, nadal korzysta z POP3. Szczególnie, że kiedyś IMAP nie był dostępny w darmowych usługach (przynajmniej większości z nich).

2. Foldery i filtry do sortowania poczty

Praktycznie każdy klient poczty umożliwia tworzenie reguł, na podstawie wielu kryteriów i wykonywanie na ich podstawie różnych czynności, takich jak usuwanie maili czy też przenoszenie ich do stosownego folderu. Zwykle ogranicza się to do kasowania spamu lub przenoszenia go do folderu spam, ale nic nie stoi na przeszkodzie, by sortować np. maile z przedszkola do folderu przedszkole, a maili z ciągiem znaków faktura czy vat do folderu faktury. Jeśli ktoś korzysta z list mailowych albo dostaje powiadomienia z automatów, to na pewno zna.

Oczywiście sortować można także ręcznie, po prostu przenosząc maile do odpowiednich folderów, posortowanych zagadnieniami. Zwykle jednak, szczególnie przy większej skali, wygodniej jest używać filtrów.

3. Sortowanie poczty na serwerze

Teraz zaprzeczę sam sobie, bo przed chwilą pisałem o filtrach w kliencie pocztowym. Rozwinięciem tego jest skorzystanie z filtrów na serwerze. Czyli takich definiowanych w panelu naszego ISP pocztowego. Mogą mieć mniejsze możliwości konfiguracji (m. in. dlatego warto mieć proste filtry, przy okazji łatwiej je zaprogramować i utrzymywać), ale sortowanie odbędzie się w momencie wejścia poczty na serwer, czyli wiadomości będą zawsze posortowane, a poza tym unikniemy problemu z synchronizacją filtrów. Kto ma dobre filtry w programie pocztowym, dużo poczty przychodzącej i musiał szukać ważnego maila przez webmail w nieposortowanych na pewno doceni. Rozwiązanie ma wadę – filtry dostępne na serwerach mogą być uboższe od tych wbudowanych w programy pocztowe, ale IMO warto się dostosować.

4. Wątkowanie

Warto korzystać z programu pocztowego, który umożliwia przełączenie się na widok z wątkami. O ile sam domyślnie sortuję pocztę chronologicznie, o tyle często przełączam się na widok z wątkowaniem, jeśli muszę znaleźć konkretnego maila w rozgałęzionym wątku. Niby cytowanie całości ma eliminować potrzebę cofania się do starszych wiadomości, ale zwyczajnie nie działa w przypadku rozgałęzień. Poza tym, w widoku z wątkami od razu widać kto, kiedy i komu odpowiadał, więc wygodniejsze i szybsze, niż grzebanie w cytatach.

5. Notatnik zawsze przy sobie

Jeśli już korzystamy z programu pocztowego i jest on zawsze otwarty, to można wykorzystać edytor maili jako… notatnik. Brak jakiegokolwiek szukania programu do zrobienia notatki, czekania na uruchomienie, problemów z wyborem miejsca, gdzie zapisać plik (wiadomo, że notatka trafi do folderu szkice/drafts; warto nadać tytuł odpowiadający treści). Formatowanie jak w edytorze mailowym jest zwykle wystarczające[2], chociaż osobiście uważam, że przy szybkich notatkach nie warto bawić się w jakiekolwiek formatowanie, co najwyżej można użyć punktowania. Co więcej, jeśli korzystamy z IMAP, to taka notatka jest niezależna od komputera, na którym ją piszemy – nie trzeba jej przesyłać, będzie od razu dostępna z różnych maszyn. Zresztą notatki i tak zwykle robię po to, żeby wysłać później maila.

PS. Kiedyś napisałem i leżało w szkicach. Może komuś się przyda.

[1] W zasadzie z IMAPS, czyli jego szyfrowanej wersji, ale po pierwsze to oczywiste, a po drugie wpis ma traktować o efektywniejszym korzystaniu z poczty email, a nie o bezpieczeństwie. Konsekwentnie odpuszczam ten temat w całym wpisie.

[2] Jeśli ktoś korzysta z HTML. Jeśli ktoś pisze – jak ja – w plain text, to temat formatowania zupełnie odpada, zresztą uważam, że formatować warto na końcu, jak mamy całą treść.

Własna namiastka dyndns

Po ostatniej akcji Microsoftu z przejęciem i zablokowaniem domen należących do No-IP miałem przez moment umiarkowany problem z dostępem do jednej z moich maszyn, bo nie znałem IP. Nic krytycznego i szybko rozwiązałem, ale stwierdziłem, że warto by się zabezpieczyć na przyszłość. Początkowo chciałem uruchomić po prostu innego dostawcę dyndns, z inną domeną, co dałoby całkiem niezłą – jak mi się wydaje – redundancję w tym względzie, ale prowizorycznie uruchomiłem coś innego, własnego i znacznie prostszego. W komentarzu do poprzedniego wpisu padło pytanie co dokładnie zrobiłem, więc opisuję.

Tak się składa, że mam serwer dedykowany ze stałym IP (nie jest konieczne zamiast tego można skorzystać z domeny), na którym stoi serwer WWW (lighttpd). Na wszystkich maszynkach potrzebujących dyndns mam dostęp do crona (zresztą, korzystałem z crona już przy zwykłym koncie dyndns, patrz update wpisu). Rozwiązanie jest proste: klient wywołuje okresowo unikatowy URL na moim serwerze, serwer okresowo parsuje log w poszukiwaniu tego unikatowego ciągu znaków i zapisuje IP z którego nastąpiło odwołanie w określonym pliku.

Poniżej wklejki ze wszystkimi onelinerami (gotowiec dla lighttpd, w przypadku innego serwera WWW trzeba dostosować):

# po stronie klienta*/5 * * * * /usr/bin/wget -4 -q -O /dev/null http://mojadomena.com/losowyciagznakow4346456543324645 > /dev/null
 # po stronie serwera*/5 * * * * /usr/bin/awk '/losowyciagznakow4346456543324645/ {ip=$1} END {print ip}' /var/log/lighttpd/access.log > /var/www/dyndns_host1.txt
 # pobranie IPwget -O - http://mojadomena.com/dyndns_host1.txt

Po namyśle, rozwiązanie nawet lepsze niż drugi dostawca dyndns. Mniej kont, prostsza konfiguracja, mając stałe IP na upartego można całkowicie uniezależnić się od DNSów, jeśli ktoś odczuwa potrzebę.

Oczywiście nie od razu tak to wyglądało, w szczególności po stronie serwera był grep, awk, tail w użyciu. Ale skoro da się wszystko załatwić awk (a nie tylko wyświetlanie określonej kolumny, chyba najczęstsze zastosowanie awk…), to czemu nie? Tu polecam zbiór przydatnych onelinerów w awk.

UPDATE: IPv6 się popularyzuje. Okazało się, że mój skrypt nie działa poprawnie, bo łączenie między maszynami następuje po IPv6. Dodany parametr -4 do wget w celu naprawy tego problemu.

Raspberry Pi – sterowanie LED i odczyt temperatury CPU i dysku

Parę dni temu zamówiłem opisywanego wcześniej Banana Pi, którego mam nadzieję użyć jako następcę Raspberry Pi w NAS. Nie wiem co stanie się z obecnym rpi, więc dla pamięci zapiszę parę przydatnych rzeczy, których używam.

Oczywiście do Raspberry Pi można podłączyć LEDy, termometry i ogólnie cuda na kiju (czy tam raczej na GPIO), ale warto też wiedzieć, że jest wbudowany czujnik, z którego można czytać temperaturę CPU. Podobnie jak LED, którym można sterować. Wszystko z wiersza poleceń Linuksa, bezpośrednio z powłoki, bez dodatkowych skryptów czy też bibliotek.

Temperatura CPU

Nie pamiętam już źródła, ale temperaturę CPU w Raspberry Pi odczytać można z /sys/class/thermal/thermal_zone0/temp Jednostka w której jest podawana to tysięczne stopnia Celsjusza, więc pewnie warto będzie zamienić na coś bardziej ludzkiego, np. na stopnie Celsjusza z dokładnością do jednej dziesiątej stopnia (zaokrąglanie):

awk '{printf("%.1f\n",$1/1e3)}' /sys/class/thermal/thermal_zone0/temp

Temperatura dysku

Skoro już sprawdzamy temperaturę, to warto też czytać ją z dysku, o ile taki mamy podłączony do Raspberry Pi. Główna zaleta jest taka, że mniej podatna na chwilowe zmiany i bardziej związana z temperaturą otoczenia. Praktycznie każdy dysk ma czujnik temperatury i można czytać z niego dane przy pomocy S.M.A.R.T. Pobranie samej wartości w stopniach Celsjusza z /dev/sda:

/usr/sbin/smartctl -A /dev/sda | grep -i temp | awk '{print $10}'

Ponieważ zdarzyło mi się raz, że nazwa dysku podczas pracy zmieniała się z /dev/sda na /dev/sdb (nie mam pojęcia czemu) i miałem dziurę w logach, to w skrypcie do logowania obu tych danych stosuję na to obejście (przy okazji pozwoli na czytanie z większej ilości dysków). Cały skrypt (który uruchamiam z crona co godzinę):

#!/bin/bashlogger -t temperature "RPi `awk '{printf("%.1f\n",$1/1e3)}' /sys/class/thermal/thermal_zone0/temp`"for i in `ls /dev/sd?`; dologger -t temperature "Disk `/usr/sbin/smartctl -A $i | grep -i temp | awk '{print $10}'`"done

Sterowanie LED

Większość opisów sterowania LED przy pomocy Raspberry Pi dotyczy tych podłączanych przez GPIO, ale samo rpirównież umożliwia użytkownikowi sterowanie jednym z wbudowanych LEDów. Od razu ostudzę zapał – jest to jedna zielona dioda z kilku LEDów w różnych kolorach świecących się i migających podczas pracy, więc użyteczność OOTB jest mierna. Można się oczywiście bawić w zasłonięcie pozostałych LEDów czy wyprowadzenie na obudowę „światłowodem” tej jednej, albo wyprowadzenie jej w określone miejsce na obudowie, co niewątpliwie zwiększy czytelność, ale to już trochę inna bajka. Polecenia przepisane z wpisu Raspberry Pi – Control the on board LED lights (polecam wpis; blogi znikają, wolę mieć backup).

Wyłączenie triggera (domyślnie pokazuje aktywność mmc0):

echo none > /sys/class/leds/led0/trigger

Zapalenie LED:

echo 1 >/sys/class/leds/led0/brightness

Zgaszenie LED:

echo 0 > /sys/class/leds/led0/brightness

Nie wykorzystuję tego w praktyce z uwagi na wspomnianą małą widoczność. Można w prosty sposób oprogramować i sygnalizować… cokolwiek, w dodatku na minimum 3 stanach (zgaszony/migający/zapalony). Przy odrobinie chęci można dodać obsługę częstotliwości migania. Jeśli chodzi o potencjalne zastosowania, to pierwsze co mi przyszło do głowy, to sygnalizacja temperatury z poprzednich akapitów. Wersja z kilkoma częstotliwościami świetnie nadaje się do informowania o aktualnym zużyciu pasma.