4GB skrzynki wystarczy każdemu!
Chyba tą zasadą kierowali się twórcy Mozilli Thunderbird, popularnego klienta
poczty. Mówiąc w skrócie - żadna skrzynka najniższego poziomu - to jest taka, która nie ma
podkatalogów - nie może mieć rozmiaru
większego jak 4GB. Rozumiem, że 4GB ładnie się opisuje za pomocą inta, ale przecież kompy już
od dawna radzą sobie z liczbami 64bitowymi. No nic.
4GB? Nigdy tego nie zapełnię!
Być może szary Kowalski nigdy nie zapełni, bo spam tyle nie waży, a setki zdjęć z wakacji nikt
nie wysyła mailem. Jednak jeżeli ktoś używa maila jako podstawowego sposobu komunikacji, wymienia
codziennie po kilka załączników, to po kilku miesiącach może się okazać, że miejsca już nie ma...
Szczególnie, że Thunderbird przechowuje dane luzem, a załączniki zakodowane są w Base64, więc ich rozmiar tyje o 1/3.
To co z tym zrobić?
Porządki raz na jakiś czas, posortowanie maili do odpowiednich katalogów - póki i one się nie
przepełnią - odsuwa widmo zapchanej skrzynki. Niestety czasami jest już za późno, wtedy program
odmawia współpracy, nie chce dobrze kasować maili i "porządkowanie skrzynki" też nic nie daje.
Cofnijcie się! Mam skrypt!
Ostatnio zdarzyła mi się taka sytuacja, musiałem ratować znajomą, której skrzynka właśnie
przekroczyła magiczną barierę i nie chciała schudnąć. Wtedy nie miałem czasu na eksperymenty i po
prostu użyłem splita z msys'a albo Cygwina.
Zapewne uszkodziłem kilka maili (poprzez przecięcie ich na pół), ale program znów działał jak
powinien.
Dziś napisałem skrypt w Lua, który dzieli plik na części
poprawnie.
Po wywołaniu bez parametrów wyświetli jak go użyć. Po podaniu jednego parametru - nazwy pliku
skrzynki - poda ile jest w nim maili i jaki (...)
Wydano Rakudo Star, czyli teoretycznie stabilną i
używalną (aczkolwiek niekompletną) implementację Perl 6 na maszynie wirtualnej Parrot.
Perl 6 to Perl wynaleziony prawie zupełnie na nowo. W przeciwieństwie do poprzednich wersji, Perl
6 powstaje jako dokumentacja, natomiast Rakudo to tylko jedna z jej implementacji. Jaki jest Perl
6? Cytując Larrego Walla, twórcę Perla: So... Perhaps the Perl 6 slogan should be "All
Your Paradigms Are Belong To Us"
. Jest zdecydowanie bardziej złożony od swojego poprzednika.
Szczerze, nieco niepokoiła mnie liczba nowych
koncepcji wprowadzanych do języka. Jednak nowy użytkownik wcale nie musi czuć się tym
zakłopotany (co najwyżej osoby implementujące Perla), nie trzeba wszak od razu znać wszystkich
funkcji, aby móc pisać. Po prostu Perl 6 daje więcej możliwości (TIMTOWTDI).
(...)
Wreszcie powstał - monitor serwerów XMPP/Jabber napisany w Ruby on Rails.
Odpytywanie serwerów odbywa się za pomocą rozszerzenia XEP-0199 XMPP Ping. Jest
to dodatkowy komponent dla serwerów Jabber/XMPP, który umożliwia wysłanie zapytania typu
xmpp:ping.
Pierwszą przeszkodą jaką napotkamy jest czas potrzebny na wykonanie zapytań. Użytkownik wchodząc
na stronę nie może czekać kilkunastu sekund, aż kontroler zapyta się serwerów czy są dostępne.
Oczywiście odpowiedzią jest -- wykonywanie zapytań niezależnie od użytkownika. Tutaj z pomocą
przychodzą nam gemy i pluginy, które wykonują pracę w tle.
Najprostszym rozwiązaniem będzie użycie gemu daemons oraz daemon_generator z gałęzi
rails3. Musimy korzystać z tej gałęzi, ponieważ generatory w stosunku do Railsów
w wersji 2.x nieco się zmieniły.
Zapraszam na stronę monitora: Monitor XMPP
Oraz pełną wersję wpisu: Monitor serwerów XMPP | Ruby
Blog
Jak już wspomniałem kilka dni
temu udało mi się ostatnio zakupić smartphone HTC Desire z Androidem 2.1 i HTC Sense UI na
pokładzie (specyfikacja dostępna na stronach producenta). Z
początku trudno było mi jednoznacznie stwierdzić, czy jestem zadowolony z zakupu. Obecnie, po
kilku dniach korzystania, jestem w stanie zweryfikować moje poglądy. Oto i krótka oraz
zdecydowanie subiektywna recenzja tego telefonu. Zapraszam do lektury.
(...)
Ostatnio piszę o książkach. Właściwie tylko i wyłącznie o książkach. Dziś nie będzie inaczej -
kontunuję książkowy temat. Dziś kilka moich spostrzeżeń o książce Distributed
Programming with Ruby Marka Batesa. Wspomniana ksiązka wydana jest przez wydawnictwo
Addison-Wesley. Wcześniej opisywałem kilka książek z tego wydawnictwa Refactoring. Ruby
Edition i Ruby.
Wzorce Projektowe Miałem również kontakt z innymi ksiązkami tego wydawnictwa takimi jak The
Ruby Way i The Rails Way, które według mnie są na wysokim poziomie. Niestety Distributed
Programming with Ruby to najsłabsza książka z wyżej wymienionych. Jeśli tamte mogłem oceniać na
4.5/5 lub nawet 5/5 to ta książka może liczyć na 3/5.
Książka to fajny przekrojowy materiał przez kilka bibliotek, które można wykorzystać. Ale mam
wrażenie, że gdyby wyciąć połowę z tych 250 stron to książka nic by nie straciła. Książka ogólnie
bardzo pomagała mi w zaśnięciu. Szczególnie druga część, gdzie były omawiane takie biblioteki
jak:
-
RingyDingy - brzmi jak imie dla pasa,
ostatni commit 15.12.2006.
-
Starfish - ostatni commit 06.12.2007
- (...)
Tym razem dodatek do PyNKa - proof of concept pokazujący jak na podstawie komentarzy w profilu na
NK można ustalić urodziny delikwenta. Praktycznie nie testowane (tylko nowy kod, zero debug
outputu, tylko u mnie), wykrywa tylko frazę "najlepszego", w nowym kodzie nie chciało mi się
sprzątać. Pisane jakieś 2-3h. Kod poniżej oraz tutaj.
(...)
Podczas międlenia mojego ostatniego
wpisu wynikła potrzeba włączenia markdownu. Nie przepadam, a dlaczego to można się dowiedzieć
klikając linka powyżej.
Część implementacji (z joggerową włącznie) ma tę nieprzyjemną właściwość że psuje
niezabezpieczone (czyli nieowinięte < i >, itp.) linki. Wystarczy że link ma np. znaki
_
i zostaje przez markdown popsuty
.
Napisałem okropnego łamańca javascriptowego który ma niezabezpieczone linki (w sprytny sposób)
wyszukiwać i obudowywać < i >. Te które siedzą gdzieś w backtickach (`) albo w
indentniętych sekcjach zostawia w spokoju.
Chciałem zrobić tak że napiszę cośkolwiek z marszu a potem od nowa jak święty elektrycy
przykazał, ale wpierw posiłkowałem się oficjalnym dingusem, po czym okazało się jogger ma
trochę
innego markdowna niż oficjalna wersja. Dałem więc sobie spokój z pisaniem od nowa
(nie chce mi się katalogować różnic pomiędzy poszczególnymi markdownami) i uploadnoąłem
niedokończyony kłębek if-ów, for-ów i takich tam. Lubię to uczucie pisania w bejziku ;)
Btw, czy joggerowy markdown jest jakoś opisany albo ma chociaż upublicznioną gramatykę ?
Wcześniej napisałem że skrypt wyszukuje linki w sprytny
sposób, zaraz umieszczę komentarz
który ma zilustrować (i przy okazji przetestować) sytuacje które mi na szybko przyszły do głowy.
Tzn. do textarea wkleję zawartość pliku http://szymon.jogger.pl/files/test.1.txt.
Zainteresowanych konferencją Front Trends 2010 informuję,
że wczoraj wieczorem została otwarta rejestracja na wspomniane wydarzenie. Najtańszy zestaw
biletów rozszedł się jak świeże bułeczki, zaś w chwili pisania tej notki zostało jeszcze 21 sztuk
"Early Birdsów". Polecam! Tej konferencji nie można przegapić.
Krótka ściągawka pokazuje, co dokładnie jest zwracane przez daną metodę. A tutaj jest skrypt, który automagicznie utworzył poniższe
tabelki ;)
(...)
Wzorem roku ubiegłego, zebrałem informacje ze strony WOŚP a konkretnie woodstockowego rozkładu
jazdy Dużej Sceny, Małej Sceny oraz Akademii Sztuk Przepięknych i utworzyłem w arkuszu kalkulacyjnym
timeline. Tym razem postanowiłem się nim z Wami podzielić.
(...)
Nie wiem czy to jakaś rewelacja, czy nie, na pewno ktoś już zauważył, że coś tu nie gra. Ale może
zacznę od początku... Zdarzyło Ci się kiedyś zerknąć w kod strony Google'a? Mi tak.
(...)
There can't be anything more straightforward than displaying icons beside links/buttons, can it?
After all it's just a CSS class for generic icon with background-image inline style.
Or maybe separate CSS class for each icon? After all, there's only so many of them. Or even
partial view that takes image, caption, and link as parameters and spits out complete piece of
HTML?
(...)
Adblock Plus pozwala na blokowanie wyświetlania niechcianych elementów lub całych stron na różne
sposoby. Niniejsze opracowanie wyjaśnia możliwości ich wyboru i to jak mogą być stosowane.
Oprócz zintegrowanej karty dźwiękowej mam także zewnętrzną. Od jakiegoś czasu (wydaje mi się, że
od update'u do 10.04) moje Kubuntu odtwarzało dźwięk dość wybiórczo: odgłosy systemowe działały
zawsze, Amarok też, ale flash w FF (i innych przeglądarkach) tylko gdy mu się chciało ;) - tj.
jeśli po starcie systemu działało, to już do wyłączenia, jeśli nie, to także aż do wyłączenia.
Nie miałem za bardzo czasu zgłębiać problemu i zwaliłem to na flasha - po jego przeinstalowaniu
dźwięk wrócił... na kilka uruchomień systemu. ;) W końcu zacząłem potrzebować Skype'a i znalazłem
powód do rozwiązania problemu. Analiza wykazała, że jeśli dźwięk nie działa, to prawie wszędzie:
inne odtwarzacze, Skype, etc. I właśnie dzięki Skype (i słuchawkom ;) ) zauważyłem, że dźwięk
jest, tylko idzie z zintegrowanej karty - Kubuntu mimo "wyklikania" nie ustawia tego poprawnie.
Chwilę zajęło mi znalezienie w Google rozwiązania, więc umieszczam tutaj - w pliku
/etc/modprobe.d/alsa-base.conf poniżej linijki
# Prevent abnormal drivers from grabbing index 0
należy umieścić:
options snd_hda_intel index=1
(gdzie snd_hda_intel to moja zintegrowana karta). Zapobiega to wybraniu jej przez system jako
"domyślnej", dzięki czemu skończył się hazard przy uruchamianiu. :)
Lubię różnego rodzaju inicjatywy, które pozwalają rozwijać się zawodowo. Dlatego ucieszyłem się,
kiedy na devpytania.pl ktoś zareklamował konkurs Daj się poznać
realizowany przez Macieja Aniserowicza.
(...)