Jogger.pl


Techblog jest moderowaną częścią serwisu Jogger.pl na której pojawiają się najciekawsze wpisy.

Najnowsze wpisy RSS

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?

(...)

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.

(...)


Przeglądaj strony: