Zmiana wersji node.js za pomoca nvm

Node.js zagoscil juz w swiecie programistycznym na dobre i czesto nawet jesli nie tworzysz produktu w JavaScript, to nadal jakas czesc projektu wymaga node’a.

Czasem tez wymagana jest konkretna wersja node.js. Istnieje kilka sposob na zainstalowanie wlasciwej wersji, ja pokaze tu jedna z prostszych, wykorzystujaca nvm (Node Version Manager).

Na poczatek

  • zainstalowany node.js
  • umiejetnosc korzystania z wiersza polecen
  • 3 minuty

Wpis ten dotyczy nvm i node na MacOS, ale roznice dla Linuksa czy Windowsa nie powinny byc duze.

Czytaj dalej Zmiana wersji node.js za pomoca nvm

Progressive enhancement – tworzenie stron dla kazdego odbiorcy

Kazdy z nas lubi tworzyc cos bardzo nowoczesnego i przyjaznego programiscie. Pewnie nikt z nas (procz 3 osob ciagle odwiedzajacych te strone za pomoca IE 6) nie znosi tworzyc czegos dla starych i wrednych srodowisk.

Niestety, czasem nie wszystko zalezy od nas. Musimy pojsc na kompromisy i zapewnic takze starym, zgrzybialym srodowiskom podstawowe wsparcie. Istnieje kilka sposob na tworzenie takich stron. W ponizszej prezentacji glownie chcialbym sie skupic nad progressive enhancement (progresywne ulepszanie) oraz wspomniec o kilku innych, np. graceful degradation.

Czytaj dalej Progressive enhancement – tworzenie stron dla kazdego odbiorcy

JavaScript – sterowanie kontekstem wywolania funkcji

Ostatnio na blogu cisza, ale nie oznacza to, ze niczego nie pisze 😉

Czasu niestety zawsze malo, ale znalazlem niedawno chwile na napisanie dluzszego artykulu zbiorczo traktujacego o pracy z operatorem `this’ oraz `new’. Artykul zostal podzielony na dwie czesci:

Milej lektury!

Tworzenie obiektów za pomocą Object.create (ECMAScript 5)

JavaScript nie stoi w miejscu. Cały czas trwają prace nad różnymi API wchodzącymi w skład HTML 5, jak również nad rdzeniem języka – ECMAScript.

Dziś coś o nowości z ECMAScript 5 metodzie `Object.create’ pozwalającej na wygodne tworzenie obiektów. Przedstawiłem już wiele sposobów na tworzenie obiektów w JavaScript. Większość z nich była jednak mniej lub bardziej naginaniem podstawowych mechanizmów języka,aby przybliżyć jego działanie do oczekiwań programistów Java-pochodnych (pamiętajmy, nawet potocznie Java != JavaScript).

Czytaj dalej Tworzenie obiektów za pomocą Object.create (ECMAScript 5)

Drugi meet.js w Gdańsku

Kolejne spotkanie z cyklu meet.js miało wczoraj miejsce „tradycyjnie” w Inkubatorze Starter w Gdańsku. Po raz kolejny trójmiejscy front-endowcy pokazali, że są chętni dzielenia sie wiedzą dotyczącą JavaScript. Na widowni zasiadło znowu ponad 100 osób (dokładnych statystyk nie znam, ale chyba było odrobinę mniej osób niż zeszłym razem).

Jeśli chodzi o prezentacje to myślę, że także można być usatysfakcjonowanym – Node.js, MongoDB, łańcuchy prototypów oraz asm.js. Z pewnością dało to niezły obraz aktualnych trendów w JS i technologiach pobocznych.

Moim zdaniem najciekawsze było wystąpienie Błażeja Krysiaka – „MongoDB – NoSQL’owa baza danych w JS”. Prezentacja niezwykle przejrzysta, techniczna, ale z doskonale zachowaną proporcją między kodem, a poziomem abstracji pozwalającym wynieść wiele osobom, które pierwszy raz słyszały o nierelacyjnych bazach danych. Brawo!

Ponoć przez wakacje czeka nas przerwa w spotkaniach meet.js. Mam nadzieję, że po letniej przerwie wracamy z nowymi, ciekawymi prelekcjami.

Książka: „HTML5. Zaawansowane programowanie”

HTML5. Zaawansowane programowanieHTML5. Zaawansowane programowanie

HTML5 zawitał na dobre pod strzechy wraz z najnowszymi wersjami popularnych przeglądarek. Oczywiście, nie wszystko jest już wspierane (na to WHATWG daje światu czas do 2022 r.), jednak nawet tylko część aktualnie zaimplementowana w najważniejszych przeglądarkach na rynku daje niesamowite możliwości.

Chciałbyś rysować na stronie (wektorowo czy też bitmapy?), chciałbyś mieć lepszą komunikację między zakładkami? Między stronami? Między sesjami (bez użycia ciasteczek)? Chcesz używać WebSocketów? A może policzyć coś w osobnym wątku bez blokowania interfejsu?

Tak, nadal mówię o programowaniu za pomocą natywnego JavaScript. Bez wtyczek. Bez kompilatorów. Bez problemów. Z użyciem nowych API dostarczanych przez specyfikacje HTML5.

Starczy reklamy technologii. O tym, że HTML5 będzie przyszłością sieci już chyba nie trzeba nikogo przekonywać. Natomiast na pewno warto zareklamować książkę „HTML5. Zaawansowane programowanie” autorstwa Petera Lubbersa, Briana Albersa i Franka Salima. Nie jest to książka, z której początkujący nie-programista nauczy się programować. Nie ta pozycja, nie taki cel postawili sobie autorzy. Natomiast każdy webdeveloper dobrze radzący sobie z programowaniem dostanie bardzo czytelny i przyjemny w lekturze przegląd nowych możliwości JavaScriptu. Każdy rozdział dotyczy innego API (m. in. canvas, websocket, web workers itp.). Nie jest to jedynie lista dostępnych pól nowych obiektów, ale konkretne „żywe” przykłady. Bardzo podobały mi się także ramki z dodatkowymi uwagami autorów – przestrogi przed możliwymi pułapkami, rady i pomocne uwagi. Czytaj dalej Książka: „HTML5. Zaawansowane programowanie”

Zrzuty ekranu za pomocą JavaScript (HTML5 – canvas)

Wraz z nadejściem HTML5 i jego wielu rewolucyjnych API nastała era rzeczy, które dawniej wydawały się trudne / bardzo trudne / niewykonalne (niepotrzebne skreślić).

Jedną z takich funkcji jest możliwość rysowania za pomocą JavaScriptu na płótnie (ang canvas). Służy do tego znacznik <canvas /> oraz odpowiednie API przypominające podobne rozwiązania z innych języków programowania.

Rysowanie ekranu na płótnie

Nie, nie miałem aż tak wiele czasu, aby napisać to samemu. Miałem jednak trochę, aby wygoogle’ować ciekawą bibliotekę. Padło na bardzo przyjemną w użyciu html2canvas. Kod tej biblioteki przed spakowaniem ma prawie 3k linii, co trochę zniechęca do pisania tego własnoręcznie.

Do zastosowania biblioteki zachęca także przyjazna licencja (MIT) oraz kilka bardzo przydatnych funkcji. Zobaczmy jednak prosty przykład zastosowania:

[javascript]html2canvas(document.body, {
onrendered: function(canvas) {
document.body.appendChild(canvas);
}
});[/javascript]

demo online Czytaj dalej Zrzuty ekranu za pomocą JavaScript (HTML5 – canvas)

Meet.js zawitał do Gdańska!

Choć sama inicjatywa spotkań front-endowców w postaci meet.js nie jest w Polsce nowa, to w Trójmieście takie spotkanie odbyło się po raz pierwszy.

Powiedzieć, że zainteresowanie było duże, to skłamać. Początkowo planowane w pubie Polufka, kameralne spotkanie, przerodziło się w jeden z większych eventów około programistycznych, jakie w ostatnim czasie odbywały się w naszym grodzie. Ostatecznie zdecydowano o przeniesieniu prezentacji do Gdańskiego Inkubatora Przedsiębiorczości.

Miałem niekrytą przyjemność przedstawienia tematu „Modularny JavaScript”. Był to mój debiut na tego typu spotkaniach i bardzo dziękuję za responsywność publiczności. Mam nadzieję, że to nie ostatnie słowo meet.js w tej części naszego kraju. Czytaj dalej Meet.js zawitał do Gdańska!