Archive for the ‘programowanie’ Category

Google Developer Day 2011 na gorąco

20 listopada 2011

W sobotę, 19 listopada 2011, byłem na konferencji Google Developer Day 2011 w Berlinie.

Wstęp

Było warto pojechać, choć dowiedziałem się mniej niż rok wcześniej w Monachium na GDD 2010.

Wykład otwierający rozpoczął się powitaniem deweloperów oraz prezentacją berlińskich uczelni (współorganizatorów GDD).

Potem nastąpiła seria prezentacji nt. nowości od Google (Android 4.0, nowości w GAE, nowe API).

Poniżej krótkie podsumowanie sesji które widziałem (i jednej której nie było).

Making Your Web Apps Accessible Using HTML5 and ChromeVox

Mike opowiadał o tworzeniu stron i aplikacji webowych dostępnych dla osób z upośledzeniami (niewidomych, z ograniczonym widzeniem i takich które z różnych powodów nie mogą korzystać z myszki).

Wszystko ilustrował przykładami z użyciem wbudowanego w Google Chrome screen readera Chrome Vox.

Parę zanotowanych myśli:

  1. Jeżeli używasz tabel to jesteś na złej konferencji.
  2. Bądź leniwy – użyj właściwych elementów.
  3. Użyj ARIA rules jeżeli potrzebujesz.
  4. Pierwszy krok ku testom dostępności – odłącz mysz i sprawdź, czy możesz nadal pracować.
  5. Zapewnij nawigację klawiaturą.

Dla zainteresowanych — slajdy użyte podczas prezentacji.

Google App Engine Overview & Update

Sesja poświęcona była Google App Engine (GAE) – platformie oferowanej przez Google do uruchamiania własnych aplikacji napisanych z wykorzystaniem Pythona, Javy lub Go.

Parę zanotowanych myśli:

  1. Google dostarcza plugin do Eclipse. Istnieje też wsparcie dla NetBeans i Idea.
  2. GAE oferuje możliwość cofnięcia wersji dostępnej produkcyjnie od poprzedniej wersji (a nawet do 10 wersji w wstecz).
  3. Z GAE można uruchamiać aplikacje Django.
  4. Aplikacje używające ORM Django lub standardów JDO/JPA mogą działać zarówno na GAE jak i w innym środowisku (czyli można je łatwo wycofać z GAE).
  5. Chcesz płacić mniej – zoptymalizuj swoją aplikację.

Slajdy które widziałem były bardzo podobne do tych dostępnych tutaj.

Sam w ramach ostrzenia mojej piły tworzę aplikację ebook deals for developers. Środowisko jej miłe w obsłudze, można się wiele nauczyć i łatwo udostępnić aplikację bez ponoszenia kosztów hostowania aplikacji.

Bleeding Edge HTML5

Sesja była poświęcona ,,najnowszym nowościom’’ w Google Chrome.

Było parę fajnych demo, gorzej z praktycznym wykorzystaniem pokazanych nowości, bo są one dostępne właściwie tylko w Google Chrome :(.

Za to obiecująco wyglądają web intents.

Slajdy użyte podczas sesji Bleeding Edge HTML5.

Trzy kolejne sesje

Sesja Go on App Engine nie odbyła się (prowadzący po krótkich poszukiwaniach odnalazł się w Australii) –- szkoda :(.

Na sesji  Dart: a new programming language for structured web programming niewiele nowego się dowiedziałem — ale miałem kryzys skupienia i mogłem coś przespać :).

Google będzie promować Dart-a i obiecuje dbać o to aby był szybki. Na razie, obawiam się, to tylko zabawka w wersji alpha…

Paru następców JavaScriptu już mamy (choćby CoffeScript) – Dart jest pewnie lepszy, ale to nie znaczy, że wygra.

Sesja V8 Performance Tuning Tricks poświęcona optymalizacji JavaScriptu wykonywanego na V8 (silnik JavaScript wykorzystywany w Google Chrome) była ciekawa, ale głównie w akademickim tego słowa znaczeniu :). Było warto zobaczyć, ale przydatność w praktyce dla mnie — raczej średnia.

Dla mnie najciekawszą informacją było to, że V8 można uruchomić z linii poleceń (do wykorzystania z VIM-em i JSLint-em pod Ubuntu).

DevTools Tips and Tricks

Ostatni wykład. Było warto zobaczyć. Dowiedziałem się, że parę rzeczy, których mi brakowało w DevTools istnieje. Dowiedziałem się też o paru rzeczach dostępnych z konsoli DevTools:

  • $0 zwraca aktualnie wybrany/zaznaczony w drzewie DOM element.
  • copy() kopiuje wartość argumentu do schowka – np. gdy zaznaczonym elementem jest obrazek (element IMG) to copy($0.src) skopiuje ścieżkę obrazka do schowka.
  • Przydatne skróty klawiszowe (lista dostępna po naciśnięciu znaku ? na klawiaturze).

Slajdy z sesji Chrome Dev Tools Tips and Tricks.

Podsumowanie

Było warto pojechać. Nawet pomimo tego, że nowości było nie za wiele, a na paru wykładach liczyłem na więcej.

Reklamy

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).

Czy Webdeweloper może ignorować IE — może!

28 września 2009

Wprowadzenie

Oglądałem ostatnio zdjęcia w serwisie Flickr.

Przyglądałem się funkcji komentowania zdjęć i zauważyłem zaokrąglone rogi przycisków Preview i Save Comment oraz okna z wyjaśnieniami How do I format my comment?

Jako człek ciekawy, sprawdziłem jakiej to metody użyli programiści Flickr.com, aby uzyskać efekt zaokrąglonych rogów…

Zaokrąglone rogi w serwisie Flickr.com

Jest wiele metod (bazujących na miksie tabel i obrazków) uzyskania efektu zaokrąglonych rogów — większość to, moim zdaniem, doskonałe przykłady przerostu formy nad treścią.

Programiści Flickr.com zrobili to, moim zdaniem, niezwykle elegancko. Użyli styli CSS -moz-border-radius, które działają we wszystkich nowoczesnych przeglądarkach (Firefox, Chrome, Safari, Opera) poza…, a jakże, Internet Explorer-em — każdym :(.

flickr.com

Zaokrąglone rogi w serwisie Flickr.com

Podsumowanie

Dzięki prostemu rozwiązaniu działającemu w oparciu o style CSS, można osiągnąć ten miły dla oka i mózgu efekt niewielkim nakładem pracy i — co o wiele ważniejsze — bez rozdmuchiwania kodu HTML i rozmiaru przesyłanej strony.

Flickr.com i Yahoo pokazały też, że można zignorować niedostatki przeglądarki Internet Explorer, dzięki czemu zyskują:

  1. Użytkownicy innych przeglądarek — bo strony ładują im się szybciej,
  2. Programiści — bo mają kod prostszy do napisania i utrzymania,
  3. Testerzy — bo przyciski są standardowe i standardowo działają (fokus, zatwierdzanie klawiszem Enter i Spacja).

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!

O zabawnych komentarzach w kodzie na Stack Overflow…

26 kwietnia 2009

Na Stack Overflow padło znakomite pytanie.

Jedna z lepszych odpowiedzi które czytałem jest tutaj.