Thunderbird: Niezbędnik

03 grudnia 2008, 01:15:40 by Karol "Zal" Zalewski

Klient poczty elektronicznej, a może coś więcej?

Thunderbird (zainstaluj pod Ubuntu) to mój ulubiony klient poczty elektronicznej. Obok Psi (zainstaluj) oraz telefonu VoIP stanowi podstawową platformę komunikacji ze światem zewnętrznym. I nie tylko. Dzięki różnego rodzaju dodatkom ułatwia również organizację wolnego czasu, którym dysponuję, oraz dostarcza interesującej funkcjonalności. Oto i mój niezbędnik!

Zarządzanie czasem i zadaniami w Thunderbirdzie

Zaczynam od instalacji dodatku Lightning. Dostarcza on Thunderbirdowi funkcjonalności Sunbirda - tj. obsługi kalendarzy oraz zadań. Lightning sam w sobie jest interesujący, ale... Byłoby miło, gdyby dało się go zintegrować z Google Calendarem, prawda? Provider for Google Calendar rozwiązuje tę palącą sprawę. A jakby tego było mało - Remember The Milk Provider umożliwia podpięcie listy zadań z serwisu Remember The Milk. W ten oto prosty sposób i kalendarze, i zadania będą dostępne zarówno z lokalnego komputera, jak i z Internetu.

Bezpieczeństwo, why not?

Thunderbird posiada natywne wsparcie dla standardu SMIME. O ile jednak standard ten przyjął się już pośród odbiorców biznesowych, tak dla zwykłego użytkownika przez jakiś czas będzie on jeszcze trudny do wykorzystania. A wszystko to za sprawą infrastruktury klucza publicznego (PKI), której towarzyszy stosunkowo wysoka cena certyfikatu kwalifikowanego (niekwalifikowane wydaje m.in. CAcert). Warto zatem pomyśleć, o innym rozwiązaniu. A jest nim...

GNU Privacy Guard (GPG) - zdecentralizowany system umożliwiający szyfrowanie i podpisywanie danych z wykorzystaniem dobrodziejstw asymetrycznych algorytmów szyfrujących. Całość opiera się o standard OpenPGP i całkiem ładnie integruje się z Thunderbirdem. Aby ułatwić zadanie z pewnością przyda się dodatek o nazwie Enigmail (zainstaluj). Później wystarczy już tylko zapoznać się z publicznymi serwerami zawierającymi klucze publiczne użytkowników OpenPGP (tzw. keyservers) np. serwerem MIT.

Na zakończenie

A Wy z jakich dodatków korzystacie? Co polecilibyście innym użytkownikom Thunderbirda?

PS. Nagłówki w tekście to dobry pomysł, czy zbyt sztywne rozwiązanie? ;-D

[EDIT] W komentarzach pod bieżącym wpisem pojawiło się też kilka dodatków wartych uwagi. Oto i one:

Texmaker: Wieloplatformowy edytor LaTeX-u

16 listopada 2008, 09:15:43 by Karol "Zal" Zalewski

Już kilka razy wspominałem o LaTeX-u (systemie składu tekstu), który opiera się na idei WYSIWYM w przeciwieństwie do edytorów tekstu typu Microsoft Office, czy też OpenOffice.org, które można zaliczyć do kategorii WYSIWYG, a złośliwi powiedzą, że jest to tak właściwie WYSIWTF?! (nawiązanie do UserFriendly). Aby wykorzystać możliwości LaTeX-a wystarczy zwykły windowsowy Notatnik, linuksowy VIM, czy też Emacs. Ale...

Texmaker

Dobry edytor znacząco ułatwia i przyśpiesza pracę nad dokumentami tworzonymi w LaTeX-u. A już ideałem jest edytor, który nie tylko jest wygodny i funkcjonalny, ale również funkcjonujący na wielu platformach w sposób nie odbiegający od standardowego. To jest właśnie moment w którym chciałbym Wam zaprezentować Texmakera.

Texmaker ułatwia poruszanie się po dokumencie wyświetlając jego strukturę na bieżąco. Bogate menu ze znakami specjalnymi oraz tworzone dynamiczne menu najczęściej używanych znaków z pewnością ułatwią wprowadzanie bardziej skomplikowanych wzorów matematycznych. Pełne wsparcie dla Unicode, podświetlanie i uzupełnianie składni, sprawdzanie pisowni czy też historia zmian to już standard w tego typu narzędziach. Możliwość podpięcia własnych tagów i komend pod skróty klawiszowe jest natomiast nieczęsto spotykana. W przypadku większości problemów dokumentacja w znaczącym stopniu pomaga rozwiązać problem.

Instalacja całego środowiska LaTeX-a wraz z edytorem Texmaker pod dystrybucjami Linuksa wywodzącymi się z Debiana nie należy do zadań trudnych. Tak właściwie jest to trywialne. Pod Windowsem natomiast należy pamiętać o wcześniejszej instalacji dystrybucji LaTeX-a np. MiKTeX. Po zainstalowaniu MiKTeX-a oraz Texmakera warto w konfiguracji tego pierwszego odnaleźć zarządzanie paczkami i dociągnąć paczki językowe związane z językiem polskim (polecam wybrać też serwer z którego będą one ściągane - najlepiej ftp.gust.org.pl), a w przypadku tego drugiego - zmienić w konfiguracji edytora kodowanie plików tekstowych na UTF-8. Jeżeli zaś chodzi o sprawdzanie pisowni - Texmaker korzysta ze słowników OpenOffice.org. Tak skonfigurowana całość powinna być gotowa do pracy.

Życzę Wam długiej i przyjemnej przygody z LaTeX-em! :-)

LaTeX: Kompilator online!

09 listopada 2008, 19:27:53 by Karol "Zal" Zalewski

LaTeX to świetne narzędzie, które można wykorzystać do realizacji wielu zadań - począwszy od listów i studenckich sprawozdań, przez różnego rodzaju prezentacje, a kończąc na publikacjach naukowych i artykułach. Problem jest tylko jeden - nawet jeżeli sami posiadamy system operacyjny z zainstalowaną dystrybucją naszego ulubionego narzędzia to i tak na innych komputerach często będzie niedostępna. A ile razy zdarzało się nam zapomnieć o dodaniu jakiegoś elementu w tekście, a nasz osobisty komputer grzecznie stał w domu? ;-D Jest na to rozwiązanie!

Niektórzy zdają się na konto shellowe na komputerze na którym zainstalowana jest odpowiednia dystrybucja. Nie jest to jednak rozwiązanie dostępne dla każdego. W związku z tym warto przyjrzeć się kompilatorom LaTeX-a w wersji online! Rozwiązanie proste i eleganckie.

Wszystkie umieszczone wyżej narzędzia przetestowałem pod kątem kompilacji mojego przykładowego pliku i przekształcenia go do PDF-a.

PS. Sprawdzałem również MonkeyTeX oraz LaTeX Lab. Zapowiadają się interesująco - Google Docs w wersji "lejtekowej". Niemniej jednak miały problemy z obsługą mojego przykładowego tekstu.

Blog Torrent: Własny i prosty tracker BitTorrenta!

08 listopada 2008, 23:47:23 by Karol "Zal" Zalewski

Blog Torrent (strona domowa) to tracker BitTorrenta przeznaczony do łatwej i szybkiej instalacji (do 5 minut) na serwerach o ograniczonych możliwościach (wymagany serwer WWW z obsługą PHP, opcjonalnie wsparcie dla Pythona i MySQL). Nie jest rozwijany od 2005 roku, ale nadal przydatny i posiadający bardzo interesującą funkcjonalność.

Transmission

W ramach projektu Blog Torrent udostępnione zostały dwa programy - dla Windowsa oraz MacOS-a - które służą do łatwego generowania oraz wysyłania plików torrentowych na stworzony przez nas tracker.

W celu prezentacji przykładu przyjmę, iż mamy dostęp do dwóch komputerów - serwera (na którym działa Blog Torrent) oraz naszego osobistego komputera udostępniającego dane. W przypadku Linuksa chcąc udostępnić dane musimy samodzielnie utworzyć plik .torrent. Do tego celu można wykorzystać np. Transmission (przyjemny klient BitTorrenta) lub program CreateTorrent. O instalacji tego ostatniego wspominać nie będę (tar xzf foobar.tar.gz; cd foobar; ./configure; make; make install) - natomiast składnia jego jest następująca:

./createtorrent --announce http://example.org --port 80 --path /BlogTorrent/announce.php udostępniany_plik udostepniany_plik.torrent

Następnie wystarczy udać się na stronę naszego Blog Torrenta (serwer) i wysłać nowo utworzony plik .torrent. Aby nasze działanie miało jakikolwiek sens warto zatroszczyć się o to, aby nasz komputer osobisty był "seederem", czyli komputerem udostępniającym dane. Wystarczy w tym celu uruchomić na nim klienta BitTorrenta, otworzyć utworzony przez nas plik .torrent i wskazać udostępniany przez nas plik, jako plik docelowy. Klient wykryje, iż tak naprawdę wszystkie dane znajdują się już na naszym komputerze i będzie jedynie wysyłał dane przestawiając się w tryb wysyłania.

To, co jest najbardziej interesującą funkcją Blog Torrenta to "server sharing". W tym celu serwer na którym znajduje się Blog Torrent musi posiadać obsługę Pythona. Do czego służy wspominana funkcja? Po przesłaniu pliku .torrent na serwer uruchamia on własnego klienta BitTorrenta biorąc tym samym udział w wymianie danych i stając się "seederem" po pobraniu wszystkich udostępnianych danych z naszego osobistego komputera. Funkcja ta przeznaczona jest dla osób z dostępem do serwera o dużej przestrzeni dyskowej, którego właściciel nie ma nic przeciwko takim działaniom ;-)

Przykładowa instalacja Blog Trackera znajduje się w mojej domenie bittorrent.4zal.net. Niestety, nie jest możliwa do przeprowadzenia na niej komunikacja klientów BitTorrenta, co oznacza, iż nie wspiera ona "server sharing".

[EDIT] Można też zainteresować się programami TBsource, OpenTracker oraz PHPBTTracker+.

Miniblog: WPA (TKIP) złamane!

07 listopada 2008, 10:27:02 by Karol "Zal" Zalewski

Wedle doniesień ze świata, nastąpiły już udane ataki na sieci zabezpieczone WPA z wykorzystaniem TKIP. I to ataki wymagające jedynie od 12 do 15 minut.

Co prawda, udało się przechwycić jedynie informacje zmierzające od routera do klienta, ale to i tak świadczy o pewnej słabości WPA.

Część kodu stworzonego przez specjalistów ds. zabezpieczeń, którzy dokonali ataku, trafiło już do Aircrack-ng. Podczas ataku wykorzystali technikę packet injection celem uzyskania dużej ilości danych od routera. Dalsze szczegóły ataku owiane są tajemnicą.

Zaleca się przejście na WPA2 lub WPA z wykorzystaniem AES-a.

ThinkPad, HDAPS i Neverball

06 listopada 2008, 15:23:56 by Karol "Zal" Zalewski

Zapewne Psychol opublikuje już niedługo opis instalacji modułów jądra (hdaps oraz thinkpad_ec) pod Ubuntu umożliwiających wykorzystanie akcelerometrów znajdujących się w laptopach z serii ThinkPad. Nim to jednak nastąpi chciałbym Wam przedstawić, co można zrobić wykorzystując wspomniane HDAPS oraz przykładowo grę Neverball.

Mam nadzieję, iż pomimo słabego oświetlenia i niskiej jakości kamery widać (o dźwiękach nie wspominając), iż Thinkpad nieźle sobie radzi w roli kontrolera do gier. Ciekawe, co na to dysk twardy ;->

[EDIT] Z mojej strony instalacja wyglądała następująco:

sudo apt-get install tp-smapi-source hdapsd neverball
sudo m-a -t a-i tp-smapi-source
sudo modprobe hdaps
sudo modprobe thinkpad_ec
 
neverball

Czas: Linux vs Windows XP

03 listopada 2008, 23:31:08 by Karol "Zal" Zalewski

Zapewne wielu z Was wie, iż Linux domyślnie przyjmuje, iż czas dostępny z poziomu BIOS-u to UTC. W momencie, gdy użytkownik systemu Linux chce uzyskać aktualny czas, system pobiera informacje o czasie z BIOS-u (UTC) i odpowiednio je modyfikuje w zależności od preferencji samego użytkownika (np. na CET/UTC+1 lub CEST/UTC+2) podając w efekcie czas lokalny. Rozwiązanie to sprawia, iż całość jest niezwykle elastyczna i przewidziana m.in. dla użytkowników z wielu krajów operujących na tym samym systemie. Zachowanie to można oczywiście zmienić, ale nie jest to wskazane.

Natomiast Windows XP zachowuje się zupełnie inaczej. Przyjmuje on, iż BIOS udostępnia czas lokalny (np. środkowoeuropejski czas zimowy - CET/UTC+1). Chyba nie trzeba wspominać o tym do czego to prowadzi w sytuacji, w której to mamy do czynienia z kilkoma systemami operacyjnymi na tej samej maszynie. Istnieje proste rozwiązanie tego problemu polegające na modyfikacji rejestru systemu Windows tak, aby czas udostępniany przez BIOS był traktowany, jako czas uniwersalny.

W celu dodania odpowiedniego klucza w rejestrze systemu Windows należy uruchomić program "Edytor rejestru" ("Start" -> "Uruchom..." -> "regedit"), a następnie dodać klucz typu DWORD (wartość 1) o ścieżce:

  • Mój komputer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ TimeZoneInformation \ RealTimeIsUniversal

Zalecane jest również korzystanie z serwerów NTP np. polskich:

  • 212.244.36.227 / tempus1.gum.gov.pl
  • 212.244.36.228 / tempus2.gum.gov.pl

PS. Pod Ubuntu zachowanie odnośnie zegara systemowego można zmienić poprzez modyfikację zmiennej UTC w pliku "/etc/default/rcS".

Lifehack: Getting Things Done

20 października 2008, 20:12:01 by Karol "Zal" Zalewski

Getting Things Done (GTD) to w skrócie metoda zarządzania tymi wszystkimi naszymi żółtymi karteczkami i zadaniami na nich zapisanymi tak, aby uzyskać jak najwyższą efektywność oraz nie przeciążyć swej pamięci. Opisana w roku 2001 przez Davida Allena zyskała ogromną popularność. Prosta i skuteczna! Urządzenia elektroniczne nie są wymagane do jej wdrożenia w życie, ale z pewnością ułatwią man pracę. Dlatego też warto zapoznać się z poniżej przedstawionym oprogramowaniem.

Chandler - Windows

BasKet Note Pads to narzędzie przeznaczone dla Linuksa (dla Windowsa też powstanie), które podbiło moje serce (zasługa vmario). Jakiś czas temu korzystałem jeszcze z TomBoya, ale po zapoznaniu się z BasKetem i GTD sytuacja uległa zmianie. Darmowy, prosty w obsłudze, przemyślany i posiadający spore możliwości. A do tego całkiem nieźle radzi sobie z metodą GTD i dobrze wygląda. Zdecydowanie polecam!

RememberTheMilk.com to serwis internetowy znacznie ułatwiający pamiętanie "wszystkich tych ważnych rzeczy, o których zdarza nam się zapomnieć". Posiada wersję darmową i płatną (25 USD za rok), ale zarówno w pierwszej, jak i drugiej bezproblemowo integruje się z Google Calendar (również z Google Apps), GMailem (wykorzystuje wtyczkę do Firefoksa) i Twitterem. Oprócz listy zadań oferuje również możliwość przypominania o zadaniach mejlem, SMS-em (w Polsce obsługuje obecnie tylko Plus GSM) oraz wiadomością IM (m.in. Jabber, AIM, GG, ICQ, Skype itp.). W porównaniu do BasKeta ma kilka zalet - jest to usługa niezależna od systemu operacyjnego, dostępna z każdego zakątka globu, a do tego oferująca możliwość przypominania o zadaniach SMS-em. Warto się nią zainteresować :-)

PS. Warto też zainteresować się Chandlerem, wieloplatformowym "selforganizerem", który jest stosunkowo młodym, ale interesującym projektem. Zapraszam do obejrzenia zrzutów ekranowych.

Lifehack: Budzik idealny

11 października 2008, 13:20:16 by Karol "Zal" Zalewski

Jakiś czas temu u jednego z Joggerowiczów, a dokładniej u Piotra Koniecznego, zauważyłem notkę dotyczącą cudownego budzika o równie cudownej cenie (w okolicach 150 USD). Budzik ten na podstawie ruchów oraz tętna osoby go noszącej podczas snu był w stanie wykryć, czy śnimy głęboko (faza NREM), czy też płytko (tuż po fazie REM). Wybudzenie po fazie REM jest dla nas oczywiście najprzyjemniejsze i to też właśnie czyni wspomniany budzik. W przypadku niepowodzenia - wybudza nas, jak zwykły budzik.

Cóż jednak zrobić, gdy nie ma się nadmiarowych pieniędzy? Jest i na to sposób! Wystarczy jedynie pomyśleć ;-]

Budzik

Z góry zaznaczam, iż poniższy sposób znalazłem, gdzieś w czeluściach polskiego Internetu, ale nie jestem w stanie odnaleźć informacji o pierwotnym pomysłodawcy. W razie, gdybyście taką wiedzę posiadali - dajcie znać.

Idea jest prosta. Potrzebujemy dwóch budzików. Jeden z nich będzie najprostszym z możliwych budzików, którego celem będzie wybudzenie nas o zadanej godzinie w momencie, gdyby drugiemu z nich nie udało się tego zrobić wcześniej. Musi być głośny i skuteczny! Ustawiamy go na godzinę o której musimy już wstać np. o 7:30.

Drugi budzik musi być stosunkowo cichy. Na tyle, aby nie obudził nas gdy śnimy głęboko, a zrobił to bez problemu, gdy kończymy fazę REM. Najlepiej, gdyby posiadał funkcję "śpiocha" tj. o ustalonym przez nas czasie zaczął budzić przez minutę, wyłączył się i spróbował ponownie za 5-10 minut. Wielce prawdopodobnym jest, iż zdołamy obudzić się tuż po fazie REM. Istotnym jest, aby budzik ten rozpoczął pobudkę minimum 30 minut wcześniej od poprzedniego. W naszym przypadku mowa tutaj o 7:00.

Zwykły budzik w roli budzika numer 1 oraz budzik w telefonie komórkowym, jako budzik numer 2 powinny się sprawdzić. O ile oczywiście wcześniej zadbamy o odpowiednie wyregulowanie głośności tego drugiego. W najgorszym przypadku i tak obudzimy się wraz z pierwszym budzikiem. Ja od przyszłego tygodnia zaczynam eksperymenty.

Miłej pobudki! ;-D

[EDIT] Pierwotnym pomysłodawcą okazał się być BeSmart.pl.

Darmowe miejsca na kod: CVS, SVN, Git i wiele innych!

08 października 2008, 19:22:47 by Karol "Zal" Zalewski

Jakiś dalej, jak wczoraj wspominałem Wam o udanej próbie zmuszenia MS Visual Studio do pracy z SVN-em. Klienta zatem już mamy. A co z serwerem?

Subversion Logo

Nie każdy ma okazję postawienia własnego serwera SVN-a. W takim przypadku warto zainteresować się darmowymi rozwiązaniami, które do zadań niekomercyjnych często w zupełności wystarczają ;-] Oto i one!

Assembla - w skrócie: ogromne możliwości związane z zarządzaniem projektem i pracą grupową, 200 MiB na repozytorium (SVN, Git oraz Mercurial) oraz... żadnej wzmianki o zasadach użytkowania. Trudno nawet określić, czy dotyczy on w wersji bezpłatnej jedynie projektów Open Source. Niemniej jednak wielu użytkowników wskazuje na to, iż licencja projektów nie jest w żaden sposób wymuszana, a sam serwis jest godny polecenia.

BountySource - interesujący hosting opierający się o SVN oraz Otwarte Oprogramowanie. Umożliwia proste zarządzanie projektem oraz przekazywanie tzw. nagród. Brak informacji o ograniczeniach licencji projektu, czy też objętości kodu. Warto również wspomnieć o jasnych warunkach użycia.

CVSDude - nawet nie warto wspominać o tejże usłudze ;-) Udostępnia serwer CVS-a oraz SVN-a, ale... ograniczając całkowitą objętość repozytorium do 2 MiB i możliwość dostępu jedynie przez jednego użytkownika! Może w wersjach płatnych lepiej to wygląda. W ostateczności można spróbować wysłać maila do obsługi w momencie tworzenia oprogramowania Open Source - wtedy warunki są możliwe do negocjacji. Warunki usługi nie odróżniają się zbytnio od innych.

Github - "We're down for maintenance." ;-D Uzupełnię ten fragment po tym, jak serwis wstanie.

Google Code - hosting ze stajni Google przeznaczony dla niekomercyjnych projektów Open Source. Na dzień dobry otrzymujemy dostęp do SVN-a z limitem objętości repozytorium do 100 MiB. Do tego dochodzi miejsce dla plików (też 100 MiB), Wiki projektu oraz proste zarządzanie znalezionymi błędami. Stosunkowo wolna i mało funkcjonalna oferta. Warunki usługi nie zaskakują.

Launchpad - hosting Canonicala dla projektów Open Source. W przeciwieństwie do innych tego typu usług, na Launchpadzie jedynym właściwym systemem kontroli wersji jest Bazaar. Do tego dochodzi tracker (nie tylko kodu, ale również błędów), własne repozytorium dla Ubuntu oraz system wspomagania tłumaczenia projektu. Kolejny raz nikt nie wspomina o ograniczeniach pojemnościowych usługi. Na twórców projektu nałożone jest jednak sporo ograniczeń związanych z licencją. Reszta warunków bardzo przejrzysta.

SourceForge.net - to chyba jedna z najstarszych usług związanych z Otwartym Oprogramowaniem. Udostępnia serwer CVS-a, SVN-a, Wiki, trackera, możliwość udostępniania plików, serwer WWW wraz z bazą danych (PHP, MySQL, możliwość podpięcia własnej domeny oraz obsługę Perla, Pythona, Tcl i Rubiego poprzez CGI) oraz narzędzia związane z zarządzaniem projektu. Czytając warunki użytku znalazłem informację o tym, iż wszystkie programy umieszczane na SourceForge.net muszą być Otwartym Oprogramowaniem. W całym serwisie nie znalazłem informacji odnośnie ograniczeń pojemnościowych wspomnianych usług. Zastrzegają sobie również prawa do tego, aby w przyszłości móc wykorzystać pozostawiony u nich kod do rozbudowy ich serwisu. Z tego, co widzę jest to typowe zagranie tego typu serwisów - np. Google Code.

Unfuddle - hosting wspierający repozytoria Git oraz SVN. W wersji bezpłatnej najeżony ograniczeniami. Na repozytoria można przeznaczyć 200 MiB, co jest normą. Problemem okazuje się liczba osób mogących uczestniczyć w projekcie - 2. Zaletą jest brak obostrzeń dot. licencji hostowanego projektu. W warunkach użytkowania usługi nie znalazłem niczego, co mogłoby mnie bardziej zrazić do usługi.

W przypadku, gdyby ktoś gustował w przeżyciach podnoszących adrenalinę warto zainteresować się serwisem OpenSVN. Dlaczego? Zdarzyło im się nie tylko przejść w stan offline na dwa tygodnie, ale również utracić część projektów...

A Wy, które z nich polecacie? Może znacie inne darmowe oferty? Zapraszam do dyskusji! :-)

Visual Studio 2005: Współpraca z SVN

07 października 2008, 22:38:27 by Karol "Zal" Zalewski

Do tej pory pracując w zespole studenckim (pozdrowienia dla Owcy i Psychola) pisaliśmy głównie projekty w Javie. Wykonując je korzystaliśmy z dwóch najpopularniejszych IDE - NetBeans oraz Eclipse. Narzędzia te nie miały żadnego problemu z wewnętrzną obsługą systemów kontroli wersji takich, jak CVS, czy też SVN, z którego to właśnie korzystaliśmy. Czasy się jednak zmieniają...

Obecny projekt mamy zamiar napisać korzystając z C♯ oraz Microsoft Visual Studio 2005 (darmowa wersja pobrana z MSDNAA). I tutaj zaczynają się schody - Visual Studio 2005 nie posiada natywnego wsparcia dla SVN. Jak sobie z tym poradzić nie wydając pieniędzy i działając w świetle prawa?

Mamy na to sposób ;-)

AnkhSVN został zapoczątkowany, jako projekt na ostatnim roku studiów przez Arilda Finesa. Co najważniejsze, jego rozwój był nadzorowany przez Karla Fogela - jednego z ojców Subversion. Przeznaczony dla Visual Studio 2002, 2003 (wersja 1.x) oraz nowszych (wersja 2.x) bezproblemowo integruje się ze wspomnianym IDE. Jeszcze dwa lata temu zawierał sporo bugów, ale teraz sytuacja uległa znaczącej poprawie. Polecam to rozwiązanie.

TortoiseSVN nie jest niestety wtyczką do Visual Studio, ale... Został stworzony do obsługi SVN-a i robi to doskonale! Bezproblemowo integruje się z eksploratorem Windowsa, a w związku z tym jest niezależny od IDE. Polecany przez wielu programistów.

Wspomnieć można jeszcze o VisualSVN. Projekt płatny, wymagający do poprawnego działania TortoiseSVN, a do tego nie jest tak dobry, jak AnkhSVN ;-)

PS. Przy okazji znaleźliśmy świetny program do tworzenia prostych diagramów Gantta. Darmowy, wieloplatformowy (Java) GanttProject. Według naszego diagramu na niniejszą notkę miałem czas do najbliższego czwartku ;-D

Lifehack: Last.fm i niższy koszt subskrypcji

03 października 2008, 21:14:33 by Karol "Zal" Zalewski

Czym jest Last.fm z pewnością każdy z Was wie. A ten kto nie wie z pewnością się dowie - jest to mocno spersonalizowane radio internetowe. Wspaniała sprawa!

Dzisiaj postanowiłem pierwszy raz wykupić subskrypcję. Miesięczną, aby móc wypróbować Last.fm w wersji rozszerzonej. Wszedłem na stronę służącą do wpłaty odpowiedniej należności i mocno się zdziwiłem. Zapłacić można korzystając z czterech walut!

  • 2,50 EUR
  • 3,00 USD
  • 1,50 GBP
  • 350 JPY

Ceny wyjątkowo okrągłe, a jak wiemy - kursy walut już tak pięknie nie wyglądają. Innymi słowy - można zapłacić więcej, lub mniej. A my (w szczególności ja sam) chcemy zapłacić mniej ;-D

Korzystając ze średnich kursów walut (chociaż lepsza byłaby cena sprzedaży) na dzień dzisiejszy (tj. 3 X 2008) sporządziłem takie oto obliczenia:

  • 2,50 EUR = 2,50 * 3,4188 PLN = ~8,55 PLN
  • 3,00 USD = 3,00 * 2,4676 PLN = ~7,40 PLN
  • 1,50 GBP = 1,50 * 4,3607 PLN = ~6,54 PLN
  • 350 JPY = 3,50 * 2,3453 PLN = ~8,21 PLN

Co to oznacza? To, iż obecnie przy wyborze subskrypcji na 12 miesięcy można zaoszczędzić aż do 24,12 PLN (wybierając płatność w walucie brytyjskiej zamiast Euro). Jest to całkiem pokaźna sumka biorąc pod uwagę całkowite koszty subskrypcji.

Pamiętajcie! Różnice w kursie walut mają ogromne znaczenie! Różne firmy mają różną politykę cenową w różnych krajach, która nie zawsze pokrywa się z samymi kursami walut.

PS. PayPal ponoć nie jest idealny (eufemizm), ale współpraca z ROR-em w mBanku oraz zapłata za usługę wyszła mu całkiem nieźle. Podejrzewam, że problemy z nim związane dotyczą głównie osób prowadzących działalność gospodarczą z jego wykorzystaniem.

Internetowy Turniej Programów Walczących 2008

30 września 2008, 20:36:34 by Karol "Zal" Zalewski

Zapraszam wszystkich do udziału w Internetowym Turnieju Programów Walczących (ITPW 2008)! Turniej odbędzie się między 8, a 23 października 2008 roku.

Zawody polegają na napisaniu w ciągu 15 dni programu grającego w pewną grę. Rozwiązania, czyli programy walczące, biorą udział w turnieju walcząc między sobą w pojedynkach. Wygrywa ten uczestnik, którego program zdobędzie najwięcej punktów. Nagroda główna - MacBook Air!

Dostępne języki: Pascal, C, C++, Java oraz OCaml.

Całość organizowana jest przez zaprzyjaźnione ze Sferą Koło Naukowe Informatyków UW. Niedługo rozwieszę na PG plakaty, które od nich otrzymałem.

Pamiętajcie również, iż co roku Koło Naukowe Sfera (PG) organizuje Pomorski Turniej Programów Walczących (PTPW) w którym także warto uczestniczyć :-)

Subversion w 5 krokach: SVN, SASL, DD-WRT i Ubuntu

10 września 2008, 19:21:03 by Karol "Zal" Zalewski

Posiadacze routerów Linksysa z serii WRT54GL (i innych) z pewnością myśleli kiedyś nad instalacją alternatywnego oprogramowania. DD-WRT/OpenWRT wraz z modyfikacją polegającą na dodaniu wsparcia dla kart SD to dobry początek, jeżeli myśli się o małym, cichym serwerze działającym w trybie 24/7.

Subversion Logo

Dzisiaj pokażę Wam, jak postawić na wspomnianym routerze (i nie tylko) serwer SVN ze wsparciem dla SASL. Do edycji plików polecam edytor Vi.

Po pierwsze: potrzebny nam jest dostęp do pakietów z OptWare. Opis instalacji wsparcia dla OptWare można znaleźć na Wiki projektu DD-WRT. Korzystając z poniższych komend na routerze należy zainstalować pakiety svn oraz cyrus-sasl wraz z zależnościami:

ipkg install svn
ipkg install cyrus-sasl

Po drugie: należy zatroszczyć się o to, aby serwer SVN był włączany przy każdym starcie routera. W skryptach startowych (DD-WRT: interfejs webowy, Administration -> Commands -> Startup) należy dodać poniższą linijkę:

/opt/bin/svnserve --daemon --root=/katalog_glowny_repo_SVN

Po trzecie: po utworzeniu własnego repozytorium (komenda svnadmin create nazwa_repo w katalogu głównym repozytoriów) warto zainteresować się plikami znajdującymi się w katalogu głównym repozytorium. Mowa o pliku /scieżka_do_repo/conf/svnserve.conf w którym to powinny znaleźć się następujące linie:

[general]
anon-access = read
auth-access = write
authz-db = authz

realm = Identyfikator_repo_bez_spacji

[sasl]
use-sasl = true
min-encryption = 0
max-encryption = 256

Zmienna realm jest tutaj niezwykle istotna. Dla każdej takiej zmiennej osobno będziemy dodawać użytkowników, dlatego też, jeżeli dwa repozytoria będą posiadać taką samą zmienną realm to będą też dzielić użytkowników mogących z nich korzystać. Zmienne min-encryption oraz max-encryption mówią o tym, jakie długości kluczy będą możliwe do wykorzystania podczas szyfrowania przesyłanych danych (0 - oznacza brak szyfrowania, 1 - jedynie podpis cyfrowy przesyłanych danych). Uwaga! Aby anonimowy użytkownik mógł pobierać dane z repozytorium bez podawania hasła zmienna min-encryption musi wynosić 0, a w poniżej opisanym pliku musi się znaleźć opcja ANONYMOUS. Warto też zatroszczyć się o istnienie pliku authz w katalogu z svnserve.conf z regułami dostępu do repozytorium (szerszy opis w samym pliku, który powstanie po utworzeniu nowego repozytorium).

Po czwarte: należy utworzyć plik /opt/lib/sasl2/svn.conf o następującej zawartości:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: ANONYMOUS DIGEST-MD5

Możliwe do wykorzystania mechanizmy (mech_list) są opisane w dokumentach zawartych katalogu /doc/ w paczce z Cyrus SASL. Skupmy się na umieszczonych powyżej - DIGEST-MD5 umożliwia autoryzowanie oraz szyfrowanie połączeń z użytkownikami zawartymi w pliku /opt/etc/sasl2 (powstanie po pierwszym utworzeniu użytkownika), który to musi posiadać uprawnienia umożliwiające odczytanie go przez program svnserve. ANONYMOUS umożliwia natomiast pobranie danych bez posiadania konta na serwerze SVN (konieczna jest modyfikacja w pliku svnserve.conf - patrz wyżej). Uwaga! Przy metodzie DIGEST-MD5 hasła w pliku sasl2 są przechowywane w formie czystego tekstu.

Jak dodać użytkownika? To proste - wystarczy wydać polecenie:

saslpasswd2 -c -u zmienna_realm nazwa_użytkownika

Pamiętajcie o tym, aby zmienna realm odpowiadała tej ustawionej w pliku konfiguracyjnym repozytorium. Po wydaniu polecenia zostaniecie poproszeni o dwukrotne powtórzenie hasła użytkownika i... to wszystko ;-) Serwer działa!

Wszystkich użytkowników w systemie można wylistować komendą sasldblistusers2, a usuwać komendą saslpasswd2 -d -u zmienna_realm nazwa_użytkownika.

Po piąte: Ubuntu 8.04 nie posiada we własnym repozytorium klienta w wersji wyższej, niż 1.4.x. Zaś klient w wersji 1.5.x jest wymagany w celu pełnej współpracy z serwerem SVN w ww. konfiguracji. Aby uzyskać dostęp do nowszego klienta należy dodać listy repozytoriów odpowiednie (zawierające nową wersję klienta) repozytorium. Należy to zrobić poprzez dodanie do pliku /etc/apt/sources.list następujących linii:

deb http://ppa.launchpad.net/clazzes.org/ubuntu hardy main
deb-src http://ppa.launchpad.net/clazzes.org/ubuntu hardy main

Teraz wystarczy zaktualizować listę pakietów (sudo aptitude update) oraz uaktualnić pakiet subversion.

Powyższa konfiguracja nie wymaga, aby każda osoba chcąca pobrać dane z serwera SVN posiadała własnego użytkownika oraz hasło. Może je pobrać anonimowo nie korzystając z szyfrowania. Tak, jak to robię poniżej:

svn checkout svn://svn.serwer.net/repozytorium

A tak wygląda zgłaszanie nowego kodu dla użytkownika, który spełnia odpowiednie reguły.

svn commit --username nazwa_użytkownika -m "Drobna zmiana"

Linksys WRT54GL: SD Mod

08 września 2008, 19:11:46 by Karol "Zal" Zalewski

Wspomniana wcześniej próba modyfikacji routera Linksysa WRT54GL polegająca na instalacji 1 GB karty SD została zakończona sukcesem.

Linksys WRT54GL SD Mod

Zmieniłem nieco poprzednie plany i do instalacji całości wykorzystałem jedynie: kartę mikroSD z adapterem SD (13 PLN), taśmę klejącą oraz kawałek skrętki (w celu wydobycia 7 kabelków). Uznałem, iż wymiana karty będzie na tyle rzadka, iż nie trzeba robić otworów w obudowie, a jedynie dolutować kable idące od płyty głównej do adaptera SD, a całość przykleić pod płytą główną tak, jak to widać poniżej.

Linksys WRT54GL SD Mod - SD pod płytą główną

Wątpię, abym tam jeszcze kiedykolwiek zajrzał, ale w razie potrzeby demontaż obudowy nie jest pracochłonny, a adapter zamiast prawdziwej karty SD uchroni mnie od ponownego lutowania.

Linksys WRT54GL SD Mod - Menu DD-WRT

Obecnie mam zamiar postawić tam prosty serwer WWW, FTP oraz SVN-a zapewne :-) Odczyt/zapis z i na kartę wynosi około 250KiB/s, więc nie jest to demon prędkości, ale do zastosowań domowych z pewnością wystarczy.

Szczegóły techniczne dot. modyfikacji można znaleźć na Wiki OpenWRT. Naprawdę nic więcej do jej wykonania nie potrzeba, a spolszczenie ww. instrukcji byłoby niepotrzebne ;-]

[EDIT] Oprogramowanie warto dodawać korzystając z Optware. Router bez problemu radzi sobie z obsługą małego serwera WWW, FTP i SVN.

Starsze wpisy |