Archive for the ‘Recenzje’ Category

JavaScript – mocne strony. Recenzja.

2 września 2010

O książce

Jakiś czas temu, głównie z powodu bardzo dobrych opinii (np. na stackoverflow.com), przeczytałem książkę JavaScript — mocne stronyJavaScript -- mocne strony, autorstwa Douglas Crockford-a (znanego guru JavaScript), wydaną przez wydawnictwo Helion.

Czy warto przeczytać?

Moja odpowiedź będzie krótka — naprawdę warto przeczytać.

Książka jest krótka, konkretna i na temat, więc dobrze się ją czyta.

I zawiera sporą dawkę wiadomości na temat prostej Javy bez typów, dzięki czemu pomaga uporządkować i docenić język JavaScript oraz uniknąć wielu błędów podczas kodowania.

Ja dowiedziałem się, między innymi, że:

  • JavaScript ma tylko jeden typ numeryczny — 64 bitowe liczby zmiennoprzecinkowe — nie ma liczb całkowitych.
  • Instrukcje switch, while, for, do mogą mieć etykietę umieszczoną przed instrukcją. Etykieta ta może być użyta w instrukcji break wewnątrz bloku instrukcji i być pomocna np. w wyjściu z zagnieżdżonych instrukcji for.
  • Obiekty są zawsze przekazywane przez referencję.
  • Obiekt Number ma metody:
    • Number.toFixed(fractionDigits),
    • Number.toPrecision(precision)

    czyli zaokrąglania nie trzeba tego implementować samodzielnie.

  • Wynik porównania dla operatorów == i != może być nieoczekiwany. Przykłady z książki:
    • '' == '0' //false
    • 0 == '' //true
    • 0 == '0' //true
    • false == 'false' //false
    • false == '0' //true

    Zalecane operatory to === i !==, które sprawdzają typ i wartość.

  • Metoda parseInt() ma dwa parametry. Drugi określa podstawę systemu liczbowego. I że liczby rozpoczynające się od 0 (zero) są traktowane jako ósemkowe.

    Czyli klasyczne parsowanie miesiąca w dacie zapisanej w postaci dd.mm.yyyy dla sierpnia i września zawiedzie… Rada autora — zawsze jawnie przekazywać drugi parametr.

Dwa ostatnie rozdziały są poświęcone dobremu stylowi programowania w języku JavaScript (sposób użycia języka i styl kodowania). Poniżej linki do oryginalnych tekstów:

Autor wprowadza też pojęcie module pattern, czyli sposób na uniknięcie zmiennych (i funkcji) globalnych.

Podsumowanie

Jeżeli jest się programistą, na co dzień używa się JavaScriptu i chce się wiedzieć więcej lub uporządkować swoją wiedzę na temat języka to książka JavaScript — mocne strony jest znakomitą pozycją.

Książka jest krótka, zawiera opis języka i wielu technik programowania dostępnych w JavaScriptcie.

Opisuje nie tylko mocne strony języka, ale także te słabe i nietrafione, których należy unikać.

Słowem — doskonała lektura dla każdego programisty używającego JavaScriptu.

Piękny kod. Tajemnice mistrzów programowania. Recenzja.

30 sierpnia 2010

Wstęp

Książka Piękny kod. Tajemnice mistrzów programowaniaPiękny kod. Tajemnice mistrzów programowania to wydane przez wydawnictwo Helion tłumaczenie Beautiful Code: Leading Programmers Explain How They Think zredagowana przez Andy-ego Oram-a i Grega Wilsona.

Autorzy

Piękny kod to zbiór 33 esejów na temat programowania z imponującą listą autorów. Wśród autorów są między innymi:

Treść

Poszczególne eseje omawiają fragmenty kodu, algorytmów (np. Map Reduce), programów, systemów (Ruby) i bibliotek (sterowników jądra Linuksa).

Autorzy posługują się różnymi językami programowania, od dobrze znanego C, poprzez Javę, Perl-a, Pyton-a do funkcyjnego Haskell-a.

Lektura Pięknego kodu jest więc też znakomitą okazją do szybkiego spojrzenia na możliwości oferowane przez inne języki programowania.

W mojej pamięci szczególnie utkwiły rozdziały:

  • Wyrażenia regularne – C, wskaźniki i rekurencja — piękna, bo prosta i elegancka, implementacja wyrażeń regularnych w C,
  • Najpiękniejszy kod, którego nigdy nie napisałem — omawiający algorytm quicksort oraz elegancki sposób mierzenia jego złożoności,
  • Poprawny, piękny, szybki — zawierający parę rad na temat sprytnych optymalizacji,
  • Generowanie w locie kodu do przetwarzania obrazów — zaczął się kiepsko, ale wciągnął jak dobry kryminał,
  • Kod w ruchu — omawiający wpływ złożoności kodu na jego jakość i czytelność.

Przyznam się, że nie wszystkie rozdziały przeczytałem. Parę rozdziałów pominąłem.

Nie dlatego, że były kiepskie, tylko dlatego, że omawiały zagadnienia zbyt trudne (np. genom lub współbieżność) abym wieczorem mógł skupić się na tyle, aby coś z nich zrozumieć :(.

Podsumowanie

Jeżeli ktoś pasjonuje się programowaniem to Piękny kod jest książką dla niego. Znakomici autorzy, interesujące, a często fascynujące treści, dają wielokrotną szansę na zachwyt nad elegancją i prostotą przedstawianych rozwiązań.

Jak swego czasu zanotowałem na Twitterzeod czasu lektury Perełek oprogramowania nie czytałem tak dobrej książki na temat programowania (kodowania).

Recenzje. Zakupy w Tosia.pl

7 września 2009

Moja młodsza urosła już na tyle, że potrzebowała nowego fotelika samochodowego. Krótka sonda wykazała, że sklepy internetowe mają fotelik który wybrałem (taki sam ma starsza, więc wiedziałem, że fotelik jest w porządku) o ok. 10% taniej, niż naziemny sklep w Szczecinie.

Po rozpoznaniu reputacji sklepów wybór padł na sklep tosia.pl (alias www.90n.pl).

I to był dobry wybór. Fotelik przybył o czasie, z wypełnioną gwarancją, itd. Sklep wcześniej telefonicznie potwierdził, że adres dostawy, który podałem, jest poprawny (był nietypowy i wyglądał że ma literówkę), że tam fotelik ma być wysłany i przybędzie o czasie.

Czyli sprawnie, taniej niż lokalnie i profesjonalnie. Polecam!

Recenzje. Serwisy społecznościowe. Projektowanie

21 sierpnia 2009


Jestem po lekturze książki Serwisy społecznościowe. Projektowanie autorstwa Joshua Portera,
autora blogu Bokardo, wydanej przez wydawnictwo Helion.

W jednym zdaniu — książkę warto było przeczytać. Dlaczego?

Na studiach miałem inne niż Marek Kasperski 🙂 lektury, więc, choć większość zagadnień opisanych
w książce była mi już znana z blogu Bokardo, to miło i ciekawie było przeczytać to raz jeszcze w formie książki.

Książka składa się z dwóch części (nie znajdziecie ich w spisie treści).

Wstępu na temat działania sieci społecznościowych (sposobów i celów powstawania sieci, ich budowy itd.,)
i opisuje podstawowe zasady budowania aplikacji dla społeczności sieciowej — identyfikacji najważniejszej aktywności
użytkowników, ról w których występują użytkownicy, obiektów na których działają oraz funkcji niezbędnych do komfortowego wykonania najważniejszej aktywności.

Druga część książki jest bardziej ,,praktyczna” i składa się z
rozdziałów poświęconych projektowaniu poszczególnych aktywności w aplikacji — między innymi rejestracji,
ciągłemu korzystaniu i udostępnianiu/dzieleniu się zawartością.

Parę wniosków (część z nich dobrze znana) płynących z lektury:

  • Niech twoja aplikacja będzie prosta w użyciu (skupia się na jednej, najważniejszej, aktywności).
  • Zawsze tłumacz użytkownikowi co się teraz stanie i dlaczego potrzebujesz danych, o które prosisz.
  • Rejestracja ma być prosta i wymagana dopiero gdy jest to niezbędne do dalszego korzystania z aplikacji.
  • Użytkownik musi czuć się wyróżniony (np. poprzez samodzielnie budowany Profil skupiający się na informacjach tylko z dziedziny aplikacji) oraz mieć poczucie kontroli nad swoimi działaniami i danymi (prywatność).
  • Opcja udostępniania treści powinna być łatwa do zauważenia, prosta do wykonania oraz czytelna i wzbudzająca zaufanie dla adresata. I zachęcać do udostępnia — Porter podaje nawet listę powodów (np. stawianie udostępniającego w dobrym świetle) dla których użytkownicy mogą chcieć się podzielić informacją.

Wszystko to jest ilustrowane przykładami aplikacji sieciowych (m.in. Amazon, TripIt, YouTube i Facebook).

Ostatni rozdział jest poświęcony metodzie analizy lejka zmian — sposobowi mierzenia jakości poszczególnych opcji aplikacji (np. kroków rejestracji) lub aktywności użytkownika (np. od rejestracji do wykupienia abonamentu).

Dzięki analizie lejka można sprawdzić, na której stronie/formularzu naszej aplikacji najwięcej użytkowników naszej aplikacji ,,odpada”, a następnie
modyfikując podejrzany stronę/formularz, sprawdzić jak ta zmiana wpłynęła na sposób korzystania z aplikacji.

Zachęcam do lektury — książkę się dobrze i szybko czyta, a kolor znakomicie wyróżnia najważniejsze porady i wnioski przedstawione w książce.

Narzędzia. WinSplit Revolution, czyli zarządzanie oknami w Windows

6 lipca 2009

Od dawna uważam, że dwa duże monitory (na dziś minimum to 19″) powinny być standardem na biurku programisty. Sam przez parę lat miałem taką konfigurację w domu — teraz mam jeden monitor, ale za to córki dwie :).

Do zalet pracy z dwoma monitorami chyba nie trzeba nikogo przekonywać — znacznie większe pole robocze, brak konieczności ciągłego przełączenia się pomiędzy parą okien (na przykład: dokumentacja/IDE, IDE w trybie debug/aplikacja czy nawet TweetDeck/przeglądarka WWW 🙂 ).

Niestety, praca z dwoma monitorami, a nawet jednym dużym, sprawia parę problemów podczas pracy z wieloma aplikacjami (oknami):

  1. Przenoszenie okien pomiędzy monitorami jest kłopotliwe — wymaga oderwania się od klawiatury, paru klików i skupienia podczas przenoszenia okna na drugi monitor.
  2. Podział pulpitu pomiędzy parę okien aplikacji — jeden duży monitor (np. 20″ — 1600×1200) może udawać dwa mniejsze (jak ma pivot) monitory 1200×800.

    Jednak ręczne ustalanie rozmiarów okien i przeciąganie ich we właściwe miejsce to droga przez mękę :(.

Na szczęście istnieje darmowe rozwiązanie tego problemu — aplikacja WinSplit Revolution. WinSplit to darmowa aplikacja pozwalająca na zarządzanie położeniem okien w systemie Windows przy pomocy klawiatury.

Nie będę jej opisywał w szczegółach — zrobił to już Jeff Atwood z Coding Horror.

Jeff jest także autorem prezentacji na stronie domowej WinSplit Revolution.

Oczywiście WinSplit to nie jedyne rozwiązanie. Zanim znalazłem WinSplit-a, używałem aplikacji SplitView.

Jednakże SplitView nie ma dla mnie obecnie żadnej przewagi nad WinSplit Revolution:

  • Ma mniejszą funkcjonalność,
  • Jest płatny,
  • Od stycznia 2009 wydaje się nie być rozwijany :(.

Każdemu kto pracuje z dwoma monitorami lub jednym dużym polecam WinSplit Revolution — naprawdę mocno ułatwia pracę.

Narzędzia. Enso, czyli konsola dla Windows

30 czerwca 2009

Czym jest Enso?

Enso Humanized to niezwykle użyteczna aplikacja ułatwiająca pracę w systemie Windows.

Sposób działania Enso najlepiej pokazuje prezentacja przygotowana przez twórców aplikacji. Zapraszam do obejrzenia!

W skrócie — Enso pozwala na wykonywanie wielu podstawowych operacji tylko przy pomocy klawiatury. Po po naciśnięciu klawisza CAPS LOCK (domyślnie — można to zmienić) pojawia się okno w którym możemy wpisać komendę.

Jak działa Enso?

Dzięki Enso można między innymi, choć nie tylko:

  • nawigować pomiędzy oknami lub zakładkami przeglądarki — komenda GO,
  • zamykać okna i zakładki — komenda CLOSE,
  • minimalizować (MAXIMIZE) i maksymalizować (MAXIMIZE) okna,
  • zamykać aplikacje — komenda QUIT,
  • uruchamiać programy, otwierać dokumenty i strony internetowe — komendy OPEN i OPEN WITH,
  • uruchamiać wyszukiwarkę Google — komenda GOOGLE,
  • prowadzić proste obliczenia — komenda CALC,
  • sterować odtwarzaczem multimediów — komendy PLAY, PAUSE, VOLUME UP, itp.

Enso można także nauczyć nowych komend dzięki komendzie LEARN AS.

Wady Enso

Enso ma też niestety też dwie wady.

Wersja 2.0 pozostała w stanie beta i nie jest zbyt stabilna. Da się z tym żyć, choćby z powodu braku dobrej alternatywy), choć zazwyczaj Enso zawodzi gdy jest najbardziej potrzebne.

Community-enso — wersja rozwijana przez społeczność open source, niestety, także ma tą wadę :(.

Druga wada to brak wersji dla systemu Linux.

Alternatywa dla Enso

Popularna alternatywa dla EnsoLaunchy obsługuje niestety tylko niewielką część funkcjonalności Enso — np. nie wiem jak w Launchy przełączać się pomiędzy oknami, czy sterować odtwarzaczem multimediów.

Wszystkich nieprzekonanych polecam raz jeszcze prezentację pokazującą Enso w działaniu.

Narzędzia. ClipX czyli jak zarządzać historią schowka w Windows

22 czerwca 2009

Każdy deweloper/programista ma swoje ulubione narzędzia — edytor tekstu, środowisko zintegrowane, manager plików czy system kontroli wersji — a przynajmniej mieć powinien :).

Z pomocą tych narzędzi tworzy kod. Kod tym lepszy, czym lepsze są narzędzia programisty i większa jego wiedza o tym jak tych narzędzi używać.

Ja też mam takie narzędzia. Jedno z nich to ClipX — darmowy manager schowka dla Microsoft Windows.

Ten mały program łata jedną z największych wad mechanizmu Copy & Paste w Windows — brak historii schowka i możliwości korzystania z poprzednich elementów schowka. Wady, z punktu widzenia programisty, ogromnej :).

Zalety ClipX to:

  • Łatwa integracja z Windows — prosty instalator, łatwo dostępna i przemyślana konfiguracja (klawisze skrótów, liczba i typ pamiętanych elementów).
  • Obsługa wszystkich aplikacji Windows. No prawie wszystkich, bo ClipX gryzie się z dodatkiem MZ-Tools do antycznego środowiska VB6.
  • Możliwość przechowywania kopii zapasowej kodu w schowku 🙂 — czyli łatwego odnalezienia na liście użytych elementów, fragmentów kodu z przed paru dni. Ta właściwość już nieraz bardzo ułatwiła mi życie.

Wszystkich, którzy jeszcze nie używają ClipX, zachęcam do spróbowania. Naprawdę warto!

Recenzje: Szacowanie oprogramowania: kulisy czarnej magii

31 maja 2009

Książka Steve’a McConnell’a Szacowanie oprogramowania: Kulisy czarnej magii to pouczająca, choć dość nudna niestety, lektura, omawiająca dokładnie podstawowe techniki szacowania oprogramowania, ich możliwe zastosowania, wady i zalety poszczególnych metod estymacji oraz częste błędy popełniane podczas szacowania oprogramowania.

Już rozdział drugiSprawdzenie swoich umiejętności szacowania — jest niezwykle pouczający. Brutalnie obnaża jak kiepscy jesteśmy w szacowaniu oraz jak fatalnie źle rozumiemy proces szacowania i jego dokładność.

Książka składa się z trzech części:

  1. Podstawowe elementy szacowania
  2. Podstawowe techniki szacowania
  3. Szczególne wyzwania związane z szacowaniem

Szacowanie oprogramowania: Kulisy czarnej magii opisuje nie tylko naukowo–techniczne metody szacowania, ale także te praktyczne jak szacowanie przez analogię, czy metodę Wideband Delphi.

Książka zawiera też wiele przykładów zastosowania poszczególnych technik estymacji oraz ich skuteczności i chociażby z tego powodu warto ją przeczytać.

Niestety spora liczba tabel, liczb i wykresów powoduje, że książka nie nadaje się na lekturę do poduszki (chyba, że dla dziecka — jak Code Complete :)).

Dwa najważniejsze wnioski płynące z książki są takie:

  1. Nie szacuj tego, co można policzyć.
  2. Najdokładniejsze szacowanie można podać na podstawie danych historycznych.

Dla ciekawych — o książce wielokrotnie pisał Jeff Atwood na swoim blogu coding horror.

Naprawdę tanie książki w Dedalus.pl

15 maja 2009

Szukałem ostatnio książki Wariaci rządzą domem wariatów.

Po rozważeniu standardowych ofert Merlin.pl i Empik.pl, postanowiłem spróbować zakupów w księgarni Dedalus.pl.

Nie był to pierwszy raz, gdy książka w Dedalus.pl była znacząco tańsza, niż u naszych gigantów. Nawet po uwzględnieniu kosztów przesyłki Dedalus.pl był prawie dwa razy tańsza niż przy zakupie w Empiku z odbiorem w salonie (czyli bez kosztów wysyłki).

Sam zakup przebieg sprawnie, szybko dostałem potwierdzenie złożenia zamówienia, prośbę o zapłatę wraz ze wszystkimi potrzebnymi danymi (numer konta, numer zamówienia itd.), potwierdzenie zaksięgowania wpłaty oraz wysłania przesyłki.

Paczka wysłana standardową przesyłką Poczty Polskiej dotarła szybko, a sama książka jest w doskonałym stanie technicznym.

Tak więc polecam spróbować zakupów w Dedalus.pl.

Recenzje. Zarządzanie Projektami Informatycznymi. Eseje

14 marca 2009

Zarządzanie projektami informatycznymi. Eseje. autorstwa Joe Marasco to jedna z ciekawszych książek na temat zarządzania projektami, jaką przeczytałem (listę otwierają Zdążyć przed terminem oraz Czynnik ludzki — skuteczne przedsięwzięcia i wydajne zespoły).

Ciekawy rozdział Moja droga do informatyki o historii informatyki w USA po drugiej wojnie światowej, modelowanie zjawisk występujących podczas trwania projektów informatycznych przy pomocy narzędzi znanych z fizyki (autor jest doktorem fizyki), ilustracje problemów przykładami z życia (np. dlaczego niewskazane jest aby zarząd projektował oprogramowanie w rozdziale Lekcja historii) oraz dialogi z Roscoe Leroy-em to największe zalety książki.

Szczególnie warta polecenia jest część trzecia — Z punktu widzenia menadżera projektów z rozdziałami:

  • Coś za coś — wprowadzający pojęcie piramidy projektu,
  • Estymacja,
  • Harmonogramy,
  • Rytm — rozdział szczególnie wart uwagi.

Książka przedstawia świeże spojrzenie na problemy zarządzania projektami informatycznymi. Jest napisana prostym językiem, a opisywane problemy są ilustrowane ciekawymi przykładami.

Polecam ją każdemu kogo interesuje zarządzanie projektami informatycznymi.