Od kilku lat używam Maca. Od początku używałem Thunderbirda do poczty, jako że Mail.app był zbyt biedny, i ogólnie nieużywalny. O ile Apple system zrobiło fenomenalny, o tyle program do poczty i przeglądarka ssą strasznie… ale to osobny temat ;)
W każdym bądź razie, jedną z najbardziej wyczekiwanych przeze mnie “featur” w Lion-ie miał być nowy Mail.app. Po przesiadce na Liona zacząłem się przygotowywać także do nowego Mail-a. Pierwsze podejście spalone…
Przy drugim poszło lepiej, do chwili obecnej do nowej aplikacji się przyzwyczaiłem, jest całkiem fajnie :)
Brakowało mi dwóch rzeczy, znanych z Thunderbirda:
- używania wskazanych folderów jako systemowych (szkice, wysłane etc)
- tożsamości (tak to się chyba w Thunderbirdzie nazywało)
Wczoraj doczytałem się jak zrealizować pierwszą rzecz:
- klikamy na folderze który chcemy ustawić jako systemowy (np. [Gmail]/Sent Mail)
- klikamy w górnym menu na pozycji Mailbox
- wybieramy opcję Use This Mailbox For
- klikamy folder systemowy, za jaki ma nam służyć wybrany wcześniej folder poczty (np. Sent)
To tyle, i tylko tyle, a jak ułatwia życie ;)
Filed under mail.app thunderbird tips mac
Niedawno uporządkowałem nieco moje vim-owe sprawy, odświeżyłem pluginy (były w bardzo starych wersjach - nie miałem jak ich sprawnie aktualizować, a skoro działały, to nie ruszałem…), i ogólnie uporządkowałem. Zacząłem od instalacji pathogena, później znalazłem repo gita do każdego z używanych przeze mnie pluginów (chwała niech będzie pomysłodawcy https://github.com/vim-scripts/). Każdy z pluginów dodałem jako submoduł do mojego repo plików vima, i tyle. No dobra, prawie tyle. Po wygenerowaniu tagów z pomocą pojawiły się pliki z tagami w folderach poszczególnych pluginów. A co na to git?
# modified: bundle/gundo (untracked content)
Kiepsko :(
Dla submodułów w git nie działa pliczek .gitignore w folderze głównym, w żaden sposób. Na początku udało się łatwo - dodałem po prostu .gitignore z treścią:
.gitignore
tags
do folderu każdego z submodułów, i było fajnie. Ba, nawet dziś napisałem prosty skrypt, który jechał mi po wszystkich folderach w bundle, i jeśli nie było tam symlinka do mojego wspólnego dla bundli pliku .gitignore, to go symlinkował.
Dodałem sobie zatem ostatnio kolejny jakiś plugin (chyba gist), zapuściłem tego prostego skrypciora, git st, i…
# modified: bundle/gist (untracked content)
:(
Skrypt nawalił? Bez sensu, tak proste rzeczy się nie psują ;) Okazało się, że w skrypcie sprawdzam czy już plik istnieje, a dla gist .gitignore był zdefiniowany. Właściciel repo dodał go, całkiem słusznie, do repo. Jeśli bym go skasował, i dodał swój, to git też by się czepiał. Bez sensu ;)
Wyjścia jakie znalazłem są dwa:
- w konfiguracji repo (.git/config) dodać wpis który spowoduje, że komenda status nie wyświetli nie śledzonych plików. Rozwiązanie do tyłka, bo wtedy nawet jak będę miał jakiś nowy plik w .vim/, to st mi go nie pokaże. No way.
- W konfiguracji każdego z submodułów dodać wpis, mówiący o tym, żeby tam nie pokazywać nie śledzonych plików. Też średnio, ale w momencie gdy nie mam w planach grzebać w tak zaciągniętych wersjach pluginów (jeśli już to przez forka), to rozwiązanie jest OK. Szczególnie, że robi się to w jednym pliku.
Skoro już wiadomo, że na chwilę obecną wchodzi w grę tylko jedno rozwiązanie (drugie), to jedziemy: vim .gitmodules, i dla każdego z wpisów dodajemy linijkę:
ignore = untracked
Voila, można commitnąć zmiany, wyrzucić wszystkie utworzone przeze mnie symlinki do .gitignore.bundle, i zapomnieć o temacie ;)
Filed under vim git tips
Potrzebowałem dzisiaj, z poziomu perla, wysłać maila. Mój hosting (uwaga, ref link) pozwala tylko na połączenia szyfrowane (SSL/TLS), zatem najprostsza możliwa opcja, czyli Net::SMTP, odpadła w przedbiegach :(
Drugą z kolei opcją był moduł Net::SMTP::TLS, ale jego nie ma w distro. Dziwne trochę, bo Megiteam reklamuje się jako hosting dla “nietypowych” platform (perl w naszym kraju jest nietypowy ;) ). No OK, ale czemu dziwne? Bo skoro zwykłe SMTP nie jest tam dozwolone, to powinien być odpowiedni support dla innych metod. No ale zlew, to nie jest duży problem. Przecież można zainstalować sobie własne moduły, także ten! :)
OK, w pomocy jest info, że wszystko jest przygotowane, wystarczy:
cpan Net::SMTP::TLS
Może w nowych kontach tak zadziała, ale ja tam jestem dość długo, i jakoś nie chce ;) Pluje się, że nie mam dostępu do /root/cośtam, albo do /usr/share/man/cośtam. No i pewnie, nie mam tam roota, więc rację ma ;)
Co zrobiłem: odpaliłem cpana, i tam:
o conf makepl_arg INSTALL_BASE=/home/mysz/www/.perl/
o conf commit
Po tym już bez problemu zainstalowałem sobie mój “upragniony” ;) moduł:
cpan Net::SMTP::TLS
oczywiście, w domowym folderze, nie globalnie. Zatem moja aplikacja (ugh, szuuumna nazwa…) nie do końca chciała działać (nie respektowała .environment), więc wystarczyło ją nauczyć gdzie szukać biblioteki:
use lib “$ENV{HOME}/.perl/lib/perl5”;
I wszystko już mi zaczęło działać jak należy :)
PS. Jeszcze jedna dziwna IMHO rzecz na Megiteam: perl w wersji 5.8.8, a już dawno jest 5.12.x. Strange, very strange…
Filed under perl cpan tips
Odłączyłem telefon od ładowarki ponad 2 doby temu. Później standardowo, kilkanaście minut rozmów/doba, ciągle włączone Wi-Fi + 3g (3g w zależności od dostępności znajomego Wi-Fi), jasność wyświetlacza na auto, etc. Trochę siedzenia “na necie” - czytanie newsów etc. Bez żadnych zmian w sofcie, żadnych killerów, nic. Ot, normalne życie telefonu. W tej chwili mam jeszcze 28% baterii.
Wcześniej przy takiej aktywności ładowałem telefon co dobę. Co zrobiłem, że tak ładnie teraz to działa?
W sumie… nic. Prawie nic. Ot, tydzień temu zmieniłem CyanogenMod z wersji 6.1 na 7.0. I to wszystko ;)
Filed under android cyanogen
Trochę namieszałem, i wysiadła mi synchronizacja kontaktów. Cały czas w ustawieniach synchro miałem komunikat:
Sync is currently experiencing problems. It will be back shortly.
I nic się nie dało z tym zrobić. A ja nie miałem 90% swoich kontaktów ;)
Standardowo Google był pomocny. Po wpisaniu komunikatu znajdujemy m.in. link do zgłoszenia na Google Code: http://code.google.com/p/android/issues/detail?id=2436
Tamtejszy komentarz numer 13 rozwiązuje cały problem. W skrócie: backupujemy sobie listę połączeń (ja używam MyBackup), wyłączamy wszelkie synchro, usuwamy dane aplikacji Contacts Storage, włączamy synchro, przywracamy listę połączeń. Voila! :)
Filed under android tips
Po przesiadce na Maca jakieś 2 lub 3 lata temu, brakowało mi sensownego narzędzia do szybkiego sprawdzenia, co mi zżarło zasoby. Owszem, mam iStat Menus, które pokazuje mi na pasku na górze ogólny stan systemu, mam własny skrypt, który w połączeniu z Geektool wyświetla mi na pulpicie aplikacje zajmujące najwięcej pamięci i zażynającej procka, ale to ciągle nie to. Mój skrypt jest odpalany co określony czas, czyli ma lagi. iStat Menus trzeba kilknąć i rozwinąć żeby coś zobaczyć. A ja i tak jestem zagorzałym (ale nie fanatycznym) konsolowcem, terminal mam zawsze otwarty, więc wolałbym coś sensownego w terminalu. Tak, wiem że jest top, ale wspominałem w poprzednim zdaniu o czymś sensownym. Tęskniłem za htopem ;)
Dziś w końcu ^harston podesłał mi linka do MacOSowej wersji htopa na GitHub (tak naprawdę podesłał mi linka do artykułu na GeekTechnica, ale kto by się czepiał drobiazgów - z tamtąd łatwo już trafić dalej ;) ). Dzięki niech będą ^harstonowi ;)
Filed under mac htop linux github
Od kilku dni bawię się trochę gitem. Przeniosłem się z kilkoma projektami na GitHuba (user: mysz), zapoznając się przy okazji z svn2git. W ramach zabawy i testów, próbuję przenieść firmowe repo z svn na gita właśnie - repo jest średniej wielkości, w tej chwili około 30k commitów. Chciałem popatrzeć jak się git zachowa przy czymś takim, ile będzie trwał import etc etc.
Po wydaniu komendy svn2git, dostałem komunikat błędu:
% ~/.gem/ruby/1.8/bin/svn2git -v svn://repo —authors=../authors.txt
Running command: git svn init —no-metadata —trunk=trunk —tags=tags —branches=branches svn://repo
Initialized empty Git repository in /Users/mysz/my.git/.git/
Running command: git config svn.authorsfile ../authors.txt
Running command: git svn fetch
Author: (no author) not defined in ../authors.txt file
Running command: git branch -l —no-color
Running command: git branch -r —no-color
Running command: git checkout -f master
error: pathspec ‘master’ did not match any file(s) known to git.
Running command: git gc
Nothing new to pack.
Poszedł jakiś komunikat o braku authora ‘(no author)’ w pliku authors.txt, ale niżej jest konkretny komunikat błędu: error: pathspec ‘master’ did not match any file(s) known to git, niestety nic nie mówiący, a Google nic sensownego do mojej sytuacji nie podpowiedziało :/ Zacząłem szukać i grzebać o co chodzi, cóż mi więcej pozostało…
Okazało się, że jednak trzeba było skupić się na tych autorach. Dziwne, niespecjalnie wyróżniający się komunikat. Ale co tam. Po dodaniu do ‘authors.txt’ wpisu:
(no author) = unknown author <***@nowhere>
wszystko nagle zaczęło działać. Magia? ;) No nic, import trwa…
ps. Generalnie, jeśli podajemy tychże autorów, to okazuje się że wszyscy, bez wyjątku, muszą tam występować. To taka drobna uwaga ;)
Filed under git svn github tips
Jako, że mam ciągłe problemy z brakiem miejsca na moim Desire, zacząłem kombinować. Z tego co wyczytałem, żeby i całkowicie Desire zaczął korzystać z karty SD jako miejsca na instalowanie aplikacji, muszą zostać wykonane dwa kroki:
- zainstalowanie ROMu który to obsługuje, lub Android w wersji obsługującej SD-Ext
- wyłączenie ochrony by HTC, zwanej przez nich @secuflag, a przez resztę świata: S-ON (a my dążymy do S-OFF :) )
Najbardziej znanym, polecanym przez developera Cyanogenmod (którego to ROMu używam od dłuższego czasu) sposobem na to ostatnie, jest użycie MODa AlphaRev. Żeby to osiągnąć, trzeba ściągnąć plik alpharev.iso, wypalić na płytę, zbootować komputer z tego, podpiąć telefon etc. Ja wybrałem wersję z użyciem VirtualBox, więc miałem nieco więcej zabawy (trzeba było dodatkowo klikać, żeby “podłączać” urządzenie USB do wirtualki ;) ). Później trzeba wykonać kilka dodatkowych kroków, ale baaardzo dokładna instrukcja znajduje się na forum Cyanogenmod, więc nie będę jej powtarzał: http://forum.cyanogenmod.com/topic/8504-gapps-package-updates/page__view__findpost__p__75149
Po całej zabawie mam w tej chwili w końcu ponad 130MB wolnego miejsca na instalowanie aplikacji i inne takie! :D

Filed under android desire
Po rezygnacji z HTC Sense, brakowało mi jakiegoś sensownego widgetu z agendą kalendarza. Z tego powodu zainstalowałem najpierw Gemini Calendar - posiada brzydki ale użyteczny widget 4x1, dobry akurat na pierwszy pulpit. Ale tam mieszczą się max 3 wydarzenia, a to czasem za mało jednak.
Wczoraj znalazłem nowy (dla mnie) widget: Android Agenda Widget, który w temacie tego typu potrzeb zaspokaja mnie całkowicie :) Poświęciłem mu jeden cały pulpit, 4x4, i jestem zadowolony :)
Filed under android widget
Na początku do takich szybkich ustawień, jak włącz/wyłącz GPS, WiFi etc, używałem widgetu Power Control. Z czasem znalazłem lepszą metodę do tego: programik QuickSettings. Można go sobie wygodnie skonfigurować, jakie opcje chcemy mieć w nim dostępne, jakie ustawienia zmieniać (a posiada sporo ustawień), w jakiej kolejności etc. Do tego można go skonfigurować tak, ze zostawi ikonkę w piasku powiadomień (zamiast skrótu na jednym pulpicie), lub jak w moim wypadku, pod klawiszem lupki, po dłuższym przytrzymaniu przycisku. Bardzo wygodne :)
Filed under android widget
Sposób na rozwiązanie jednego z większych problemów u mnie w pracy, gdy zaczynamy jakiekolwiek prace nad webmailem… Nie mam jak teraz sprawdzić, ale mam nadzieję ze działa ;)
Filed under outlook tips
Od momentu gdy pozbyłem się Sense Ui, strasznie brakowało mi jakiegoś fajnego gadgetu do pogody. Jak na razie najlepsze co znalazłem to Snowstorm (http://andbin.com/snowstorm/about), który w całkiem przyjemny sposób pokazuje prognozę pogody na najbliższe dni. Można go na różne sposoby oskórkować, dostosować pod siebie etc. Szkoda tylko że nie może być większy niż max 4x2 :( Ale ogólnie bardzo pozytywnie, w końcu mam pogodę na jednym z pulpitów :)
Filed under android widget
Ogólnie strasznie ssie w androidzie. Kupiłem na próbę Louder Volume Hack, ale coś się nie sprawdził. Ciągle kiepsko się słucha… Więc LVH oddałem, szkoda 2£. Ale i tak jest znacznie lepiej niż z gołym Sense UI - tam nie da się słuchać muzyki będąc na mieście, nie ma bata, wszystko jest w stanie zagłuszyć to co leci w słuchawkach. Pozostaje szukać dalej czegoś sensownego ;)
Filed under android
Oryginalna androidowa klawiatura bardzo ssie. Wielokrotnie lepsza jest domyślna klawiatura w HTC: HTC_ime, ale nie mam już Sense UI ani innych “naturalnych” dla HTC zabawek ;) Trzeba było poszukać czegoś innego…
Już od jakiegoś czasu strasznie ciekawiła mnie klawiaturka Swype, ale jakoś wcześniej, przed rootem, nie miałem motywacji na instalowanie jej. Ale teraz… teraz się skusiłem :) I dobrze zrobiłem :) Wymaga co prawda nieco wprawy, ale ogólnie doskonale się na niej pisze, nie straszne już są wyboje na drogach (podczas jazdy autobusem czy tramwajem), wszystko fajnie się “rysuje” ;)
Filed under android swype desire
Wczoraj, po rozmowie z ^lukaszwiecek coś mnie trafiło, i stwierdziłem że czas już zdobyć roota w moim Desire ;) Przyczyny są generalnie dwie: brak możliwości pełnego backupu, i brak płatnych aplikacji. O ile to drugie można obejść (poprzez kartę SIM z kraju gdzie płatne appki są dostępne), o tyle z tym pierwszym jest już ciężej.
No nic, jako że już jakiś czas temu zrobiłem sobie upgrade do Froyo, a nie znalazłem na razie metody na zrootowanie Desire na HBOOT 0.92, pozostało mu postąpić wg instrukcji z forum.android.com.pl i najpierw cofnąć HBOOT do 0.8, a następnie wgrać wybrany ROM. Po wspomnianej rozmowie, zdecydowałem się na Cyanogen, i jak na razie jestem zadowolony :) Ogólnie cała zabawa, poza sklerozą i nie wrzuceniem podanej na stronie autora moda paczki z GAppsami, poszło bez problemów, wg wspomnianej instrukcji.
Cała zabawa uświadomiła mi jedną rzecz: HTC odawala kawał dobrej roboty ze swoim HTC Sense - dzięki tej nakładce Android jest naprawdę ładny, bez tego trzeba jednak popracować trochę żeby też mieć tak ładnie ;) Ale da się, a ja mam teraz w końcu roota na swojej zabawce ;)
Filed under android desire cyanogen