Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: singles, dodany: 16.05.2013 21:09, tagi: internet

Pamiętam, jak całkiem niedawno rozmawiałem ze znajomym na temat konferencji, i mówiliśmy, że fajnie byłoby mieć w Polsce dużą (bo w Szczecinie jest jeszcze WebClusters, aczkolwiek cytuję: „Nie taka skala działalności” :) konferencję poświęconą stricte zagadnieniom skalowalności i wydajności. Kilka miesięcy później od organizatora – Fundacji ProIdea – dowiedziałem się, że w Poznaniu odbędzie się pierwsza edycja Atmosphere Conference, gdzie na głównej stronie widnieje wielkimi literami: PERFORMANCE & SCALABILTY. Niestety, budżet konferencyjny wyglądał słabo, tak więc musiałem obejść się ze smakiem, licząc na streaming online.

Jednak na 3 dni przed konferencją spotkała mnie miła niespodzianka – otrzymałem wejściówkę od Marcina Majchrzaka z Allegro, tak więc w poniedziałek rano wyruszyłem w “daleką” (czyli 15 minut tramwajem) podróż na miejsce konferencji, mając nadzieję że moje “modły” zostały wysłuchane. Czy się udało? Nie jestem w 100% zadowolony, ale to nie znaczy też że jestem niezadowolony. Zapraszam do relacji.

Atmosphere Conference 2013

PS. Żeby nie było – nie jestem niewdzięczny na zasadzie: “dostał wejściówkę i jeszcze narzeka”. Daleko mi do tego. Wierzę po prostu, że konstruktywny feedback to jest coś, czego oczekuje każdy organizator jakiegoś wydarzenia – niezależnie od jego wielkości.

Prelekcje

Bardzo krótko opiszę prezentacje które widziałem (z jednym wyjątkiem) w całości:

Scalling Agile@Allegro

Było o skalowalności, ale tej innej, mianowicie Krzysztof Dąbrowski opowiadał o tym, jak wprowadzali metodyki scrumowe w Allegro, oraz o tym, jakie błędy popełnili. Nie było „mięsa”, ale mimo wszystko prezentację uważam za całkiem ciekawą.

Infrastrcute for Startups

Dobrze poprowadzona prelekcja na temat tego, na czym skupiać się robiąc startup. W skrócie, najdrożsi są ludzie. Paul Hammond zwracał dużą uwagę na to, aby na początku istnienia startupu skupiać się na samym produkcie, a nie na takich rzeczach jak infrastruktura. Na własną serwerownię czas przyjdzie potem, kiedy już odniesie się sukces. Z tego co widzę, jest to dość popularne ostatnio podejście, z którym raczej się zgadzam. Dodatkowo padły nazwy kilku narzędzi, których Paul razem z kolegami używa w projekcie TypeKit. Slajdy znajdziecie tutaj.

Your CSS is a Mess

Prelegentem był Jonathan Snook, autor dość znanej w środowisku frontendowym ksiażki pt. SMACSS. Odniosłem wrażenie, że cała prezentacja była jako tako reklamówką tej pozycji, tym bardziej, że prawie w całości omówiony został rozdział „Core” z ww. pozycji.

Charity Platform Architecture

Jaka sama nazwa mówi, prezentacja skupiła się na opisie charytatywnej części Allegro. Ominął mnie początek, ponieważ zacząłem w drugiej sali, ale tamta prezentacja mnie nie wciągnęła, to też szybko przeszedłem tutaj.

Jeśli chodzi o merytoryczną zawartość prezentacji było OK, natomiast jeśli chodzi o prelegentów (co ważne, dwóch) – Marka Gawińskiego i Kamila Benedykcińskiego tutaj mam zastrzeżenia.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Kamil, dodany: 16.05.2013 20:38, tagi: javascript

Sprawdź co musisz zrobić, by nawet 10-krotnie przyśpieszyć Internet Explorer i tym samym ułatwić życie użytkownikom odwiedzającym Twoją stronę. …oczywiście to prowokacja. Internet Explorer w starszych wersjach to twór, który nie stał obok przeglądarki i nic tego nie zmieni. Jedynym rozsądnym wyjściem jest zainstalowanie nowoczesnej przeglądarki. Jak ułatwić życie posiadaczom Internet Explorera w starszych wersjach? [...]

Autor wpisu: matiit, dodany: 15.05.2013 18:29, tagi: php

Nawigacja

Laravel, widoki

Witaj w kolejnej części kursu Laravel. W ostatnim wpisie pokazałem Ci podstawy routingu oraz starałem się wytłumaczyć co to w ogóle jest ten routing. W dzisiejszej części wytłumaczę czym są widoki, dlaczego powinieneś ich używać oraz jakie dają Ci korzyści. Pokaże to na przykładzie małej aplikacji, którą napiszę w trakcie przedstawiania kolejnych części frameworka Laravel. Jaką aplikację przedstawię? Niestety nie wprowadziłem jeszcze chociażby bazy danych więc pole do popisu jest zawężone. Pomyślałem, że napiszę aplikację pozwalającą na szybkie skrócenie adresu URL. Przy okazji pokażę też jak zainstalować dodatkowe pakiety przez composer. Zaczynajmy!

Czysty projekt

Na początek będziemy potrzebować utworzyć nowy projekt. Jeśli nie pamiętasz jak to zrobić, wróć po prostu do jednego z poprzednich plików. Ja już to zrobiłem i mój projekt leży w katalogu ~/Documents/secondProject. Na razie jest całkowicie defaultowy. Jeśli i Ty już masz czysty projekt: przejdźmy do zastanowienia się jak będzie wyglądał nasz skracacz linków.

Projektowanie aplikacji

Nazwa nagłówka jest trochę na wyrost, ale nieważne. Zacznijmy od zaprojektowania interfejsu naszej nowej aplikacji, potem będziemy się martwić implementacją. Podaję przykładowy projekt interfejsu. Widać, że jest tylko jedna funkcja, która ma działać. Projekt interfejsu 0 Projekt interfejsu 1 Będziemy używać widoków, a więc na początek pokrótce napiszę czym są widoki. Widoki to nic innego jak pliki .php, które składają się głównie z kodu html. Na szczęście do tych plików można dodawać zmienne, pętle itd. W Laravel istnieje silnik szablonów nazywający się Blade. Posiada on bardzo prostą składnie:


// Wyświetlenie zmiennej

{{ $zmienna }}

// Wyświetlenie zmiennej escape'ując (??;D) znaki specjalne

{{{ $zmienna }}}

// Wyświetlenie zmiennej jeśli jest ustawiona, jeśli nie, tekst alternatywny

@if (isset($zmienna))

{{$zmienna}}

@else
Zmienna nie jest ustawiona
@endif

// Pętla foreach, analogicznie while i for

@foreach ($zmienna as $i)

{{$i}}

@endforeach

// Wczytanie innego szablonu

@include('nazwaszablonu')

System szablonów Blade posiada jeszcze kilka bardzo fajnych opcji, o których powiem potem. Na początek warto wiedzieć, że pliki z szablonami zapisujemy w katalogu app/views/. Stwórzmy sobie przykładowy widok:

<meta charset="utf-8" />Nauka widoków</pre>
<h1>Mój pierwszy szablon</h1>
<pre>

Zapisz taki plik w katalogu app/views pod nazwą na przykład index.blade.php (to jest wymagane rozszerzenie, blade.php. Teraz przypomnij sobie lekcję o route’ach, zrobimy tak, aby dla strony głównej wyrenderował (wyświetlił) się nasz nowo utworzony widok. Do tego istnieje konstrukcja return View::make(‚nazwa_widoku’).


Route::get('/', function(){

return View::make('index'); // jeśli plik się nazywa index.blade.php

});

Nie podajemy rozszerzenia! Poza tym jeśli mielibyśmy w views podkatalog, to rozłączamy podkatalogi kropką. Na przykład jeśli ścieżka do pliku widoku byłaby: app/views/blog/index.blade.php – to podajemy w kodzie:


return View::make('blog.index');

To na prawdę proste i intuicyjne, szybko przywykniesz. Wyrenderuj więc nasz pierwszy widok. Powinieneś zobaczyć po prostu ten kod HTML (wyrenderowany przez przeglądarkę). Oczywiście zrobisz to poprzez wejście w przeglądarce na katalog główny projektu.

Kolejną ważną rzeczą jaką warto wiedzieć o widokach są parametry do nich przekazywane. Spójrz na poniższy kod:


// app/route.php

Route::get('/', function(){

$some_var = "blablabla";

return View::make('index', ['name' => $some_var ]);

});

// app/views/index.blade.php</pre>
<h1>{{ $name }}</h1>
<pre>

Nie jest zbyt trudno odgadnąć co robi dany kod. Po prostu przekazujemy do widoku zmienną (której to zmiennej możemy zmienić nazwę). Zasada jest taka, że w tablicy jako klucz występuje nazwa, pod jaką będzie widziana zmienna w widoku, a jako wartość -> ta właśnie zmienna. Możemy przekazywać więcej niż jedną zmienną po prostu dodając do tablicy kolejne pary klucz->wartość.

Masz teraz podstawowe pojęcie o widokach. Kończę teraz pierwszą część tego wpisu, zostawiając Cię z zadaniem zaprojektowania widoków dla aplikacji, której projekt podałem na screenshotach. W części drugiej dodamy do aplikacji silnik! Serdecznie zapraszam w sobotę!

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: singles, dodany: 14.05.2013 21:34, tagi: javascript

Kolejną książką, którą otrzymałem do zrecenzowania od Wydawnictwa Helion, jest pozycja o tytule HTML5 Zaawansowane programowanie. Prawda, jest taka, że jeszcze się nie otrząsnąłem po traumie związanej z pozycją o CSS3, tak więc potrzebowałem kolejnej dobrej książki żeby zatrzeć złe wrażenie. A recenzowana dzisiaj pozycja jak najbardziej na miano książki dobrej w moim odczuciu zasługuje.

Uprzedzając – czy jest to artykuł sponsorowany? W jakiś sposób tak – książka zostanie u mnie i zostanie przeznaczona na nagrodę na następnym meet.php. Czy moje opinie są sponsorowane? Zdecydowanie nie.

HTML5 Zaawansowane prpgramowanie

HTML5 Zaawansowane programowanie

Tematyka

Sprawa z HTML5 jest ciekawa – „wszyscy” o tym mówią, a i wtedy używając tego określenia mając na myśli coś innego. Książka ta dość dokładnie opisuje nowości wprowadzone w ramach szeroko pojętego HTML5 i omawia je dość dokładnie.

Możemy poczytać na temat:

  • Canvas API (aczkolwiek, z powodów oczywistych nie poświęcono temu zagadnieniu tyle miejsca co w przypadku poprzednio recenzowanej przeze mnie pozycji)
  • SVG
  • tagów <video> i <audio> oraz ich obsługi z poziomu JS
  • GeolocationAPI
  • Cross Document Messaging (postMessage) oraz XHR2
  • WebSockets
  • nowych typach elementów formularzy i API z nimi związnych
  • drag & drop
  • WebWorkerów
  • WebStorage (localStorage, sessionStorage, trochę o WebSQL)
  • localCache

Jak widzicie, zakres poruszonego materiału jest całkiem spory i nie przychodzi mi do głowy nic, czego mogłoby brakować, tym bardziej że zagadnienia potraktowane są naprawdę nieźle, jak na wprowadzenie do danego tematu.

Treść

Screenshoty występują tam gdzie to potrzebne – nie ma ich dużo, ale obrazków pokazujących jak dodać plik z dysku całe szczęście nie znajdziecie;) Jak zwykle, przyczepiam się do tego, że [obrazki] pozycjonowane są do lewej, a nie do środka, ale to kwestia gustu.

Jakość wydania

Książka wydana jest w miękkiej oprawie, na grubym białym papierze (żadne EKO). Kod jest drukowany czcionką o stałej szerokości (jednakże komentarze w nim już nie), czcionka normalnego tekstu jest czytelna, aczkolwiek obawiam się, że dla niektórych może być zbyt „gęsto”.

Tłumaczenie

Do tłumaczenia nie mam zarzutów, prawie żadnych. Komentarze do kodu są po polsku, jednak wszelakie nazwy zmiennych czy też funkcji są w „jedynym słusznym języku”.

Poza jednym wyjątkiem, który rzucił mi się w oczy – w dziale o geolokalizacji mamy przykład kodu, w którym zdefiniowano funkcję updateStatus po to, aby później w tym samym fragmencie dumnie używać aktualizujStatus ;)

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Kamil, dodany: 12.05.2013 19:09, tagi: javascript, jquery

Obiekt Deferred ułatwia zarządzanie i obsługę asynchronicznych zadań (wykonywanych po jakimś czasie), jak choćby odbieranie odpowiedzi poprzez AJAX, obsługę wielu animacji czy organizację kodu obsługującego zdarzenia interfejsu aplikacji. Celem obiektu Deferred oraz obietnic (deferred.promise) jest tworzenie prostego, łatwego do czytania kodu czy odseparowanie logiki aplikacji od funkcji obsługujących zdarzenia interfejsu. W poprzednim wpisie opisałem jak [...]

Autor wpisu: stormfly, dodany: 01.05.2013 13:41, tagi: php

Posiadając wersje językowe na stronie internetowej jesteśmy zobowiązani do stworzenia mechanizmu tłumaczenia tekstów (przeważnie stałych, bo pozostałe wprowadzimy korzystając z CMS), które występują na witrynie. Jednym z rozwiązań, który dzisiaj omówię, jest wykorzystanie...

Autor wpisu: bastard13, dodany: 29.04.2013 09:38, tagi: oop

a zaczęło się to tak...

Wydajność mojego zespołu zwiększyła się w ostatnich miesiącach kilkukrotnie. Oczywiście jest to powód do zadowolenia, ale generuje to również wiele code review, które wcześniej czy później trzeba przejrzeć. Co prawda, nie wszyscy muszą oglądać wszystko, ale tak czy inaczej, ich ilość ostatnimi czasy jest przytłaczająca. Zazwyczaj rano przy kawie przeglądam ich listę i po kolei, jeden po drugim, zamykam bądź oglądam, w zależności od tego, ile osób przede mną już miało przyjemność patrzyć na ten kod. Tak też zrobiłem ostatnio. Gorąca, czarna, parzona i aromatyczna kawa powoli cuciła mnie i przywracał do świata żywych, a ja w między czasie przedzierałem się przez kolejne linijki kodu. W pewnym momencie trafiłem na bardziej złożone zadanie i po ilości klas byłem w stanie stwierdzić, że zrozumienie wszystkiego będzie wymagało ode mnie trzeźwości umysłu i skupienia, o jakie ciężko we wczesnych godzinach porannych. Ale któż powiedział, że życie lekkie jest:) Łyk, już tylko ciepłego, napoju i do dzieła.Czytaj więcej »
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.