Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: singles, dodany: 16.06.2011 20:12, tagi: internet

Ostatnio rozwiązania „chmurowe” przeżywają rozkwit, a tylko czas pokaże, czy cała chmura, to tylko chwilowa moda, kolejny buzzword, czy jednak nowy kierunek rozwoju aplikacji internetowych. W dzisiejszych czasach w chmurze trzymamy coraz więcej danych – poczta, dokumenty, a coraz mniej treści jest przechowywanych na naszych lokalnych dyskach, a coraz więcej streamowanych z sieci. Nadal jednak wszystkie media uploadowane na wszelakie strony trzeba odpowiednio „obrobić”. Zdjęcia pomniejszych i zoptymalizować. Filmy przekonwertować na format odpowiedni dla sieci Web, utworzyć miniaturkę. Coraz częściej treści tego typu trzymane są na wszelkiego rodzaju CDNach – np Amazon S3.

A narzędzie, które mam zamiar dzisiaj opisać, realizuje wszystkie wymienione funkcje za nas. A jego nazwa to Transloadit.

Co to takiego?

Otóż to, transload.it to narzędzie służące do wszelkiego rodzaju konwersji materiału graficznego na inny format, udostępniające proste API oparte na JSONie. Metody API nazywane są w ramach systemu robotami, a na obecną chwilę jest ich 6. Oto one:

  • /image/resize – zmiana rozmiarów obrazów, kąta nachylenia, kompresji, z kilkoma strategiami przycinania oraz możliwością tworzenia watermarków.
  • /video/encode – enkodowanie wideo. Tutaj także mamy do wyboru różne strategie przycinania obrazu, możliwość dodania znaku wodnego. Dodatkowo, parametry filmu końcowego możemy ustalać ręcznie (za pomocą opcji ffmpeg, gdzie przekazujemy parametry bezpośrednio do enkodera) bądź wybierać z gotowych presetów: m.in: webm, flash czy też iphone-high.
  • /video/thumbs – tworzenie miniatur przesłanych plików video.
  • /http/import – przydatne w momencie, kiedy chcemy dokonać operacji na pliku znajdującym się już w sieci. Normalnie, musielibyśmy taki plik pobrać, i ręcznie uploadować do serwisu. W przypadku skorzystania z tego robota, podajemy tylko url zasobu, a aplikacja zajmie się resztą.
  • /s3/store – umożliwia automatyczne skopiowanie plików wynikowych na Amazon S3. Wystarczy podać nasze dane autoryzacyjne, a po kompresji automatycznie nasz plik zostanie uploadowany do chmury S3.
  • /cloudgiles/store/ – funkcja podobna jak powyżej, z tym że dla Rackspace Hosting.

Transloadit.com - /video/encode robot

Jak to wykorzystać?

Bardzo prosto. Otóż to, w parametrze action naszego formularza ustawiamy adres http://api2.transloadit.com/assemblies, ewentualnie dodajemy plugin jQuery do pokazywania postępu ładowania, a w specjalnym parametrze formularza przekazujemy instrukcje dla robotów (możemy je zdefiniować bezpośrednio, albo podać tylko tzw/ template_id, czyli identyfikator formularza znajdującego się na serwerze). Przykładowy zestaw poleceń prezentuje się następująco:

    {
        "steps":{
            "encode":{
                "use": ":original",
                "robot": "/video/encode",
                "preset": "iphone"
                "width": 320,
                "height": 240
            },
            "thumbs":{
                "use": ":original",
                "robot": "/video/thumbs",
                "count": 4
            },
            "export":{
                "use": ["encode", "thumbs"],
                "robot": "/s3/store",
                "bucket": "your-bucket",
                "key": "your-key",
                "secret": "your-secret"
            }
        }
    }

Po załadowaniu pliku wykonane zostaną następujące czynności:

  1. Wideo zostanie przekonwertowane do formatu rozumianego przez iPhone’a, z rozdzielczością 320×240.
  2. Z wideo zostaną wyeksportowane 4 miniaturki (co ważne, stanie się to równocześnie z pierwszą czynnością, dzięki zastosowaniu parametru :original)
  3. Każdy plik po zakończeniu zostanie wyeksportowany do chmury Amazona.

A co się dzieje w momencie, kiedy nie mam konta na Amazonie? Jak pobrać moje pliki?

Po zakończeniu konwersji w odpowiedzi informacje w JSONie, a tam między innymi URL do efektów pracy narzędzia. Jest on aktywny przez kilka godzin – cytując dokumentację:

The url where you can access this file. This is either a url to your S3 bucket, or a temporary url on one of our servers. Temporary urls will expire after a few hours, so you need to make sure to move your files elsewhere if you aren’t using a storage robot.

Prawda że proste?

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

Autor wpisu: batman, dodany: 16.06.2011 08:15, tagi: jquery

Jeśli kiedykolwiek będziecie musieli wykonać klikalną mapę Polski, zapomnijcie o technologii Flash. Tak się składa, iż niejaki Winston Wolf (po naszemu Łukasz Popardowski), stworzył arcydzieło w postaci mapy Polski i udostępnił źródła. Mapa działa na wszystkich przeglądarkach (za wyjątkiem quasi przeglądarki – IE6). Największą zaletą mapy nie jest wbrew pozorom jej uniwersalność, lecz pliki *.psd, dzięki którym możemy dopasować mapę do wymogów naszego projektu. Co więcej, mapa została przygotowana w pięciu rozmiarach, co znacznie ułatwia skorzystanie z tego projektu.

Więcej szczegółów, pliki do pobrania oraz dokumentacja, dostępne są pod adresem http://winstonwolf.pl/css,polska.html.

P.S. Korzystanie z mapy Polski (oraz Europy) jest bezpłatne.

Autor wpisu: batman, dodany: 15.06.2011 07:46, tagi: zend_framework

Wydanie drugiej wersji Zend Frameworka jest coraz bliżej. Świadczyć może o tym fakt pojawienia się trzeciej deweloperskiej wersji frameworka, a wraz nią takich zmian jak:

  • refaktoring komponentu Markup
  • refaktoring komponentu Zend\Tool oraz CodeGenerator
  • przeniesienie nowych funkcjonalności z wersji 1.11
  • refaktoring komponentu LiveDocx
  • dodanie komponentu EvenManager
  • propozycja komponentu DI

Niestety dokumentacja nadal jest na etapie tworzenia i jedyne co nam pozostaje, to wydobywanie informacji ze slajdów – http://www.slideshare.net/weierophinney/zend-framework-20-patterns-tutorial. Jedyny fragment dokumentacji, to wiki opisujące DI wraz z przykładami – http://framework.zend.com/wiki/display/ZFDEV2/Zend+DI+QuickStart. Już nie mogę się doczekać wersji beta (i nieco obszerniejszej dokumentacji).

Autor wpisu: Wojciech Sznapka, dodany: 14.06.2011 23:35, tagi: php, symfony, symfony2

The most important thing you should provide with your re-usable bundles is unit tests set. Lately I solved two major cases which Symfony2 hasn’t got out of the box: testing services, defined in Dependency Injection Container and running model tests with fixtures in fully isolated environment. Testing services defined in DIC Since DIC in Symfony2 [...]

Autor wpisu: Tomasz Kowalczyk, dodany: 14.06.2011 23:01, tagi: css

Myślę, że nie popełnię dużego błędu, jeśli powiem, że każdy, kto kiedykolwiek potrzebował tłumaczenia pewnych informacji z nieznanego języka na "swój", na pewno trafił kiedyś na narzędzie Google Translate. Jest to bezsprzecznie jeden z najlepszych translatorów na rynku, także trudno się dziwić, że jest tak powszechnie wykorzystywany. Także my, twórcy stron internetowych często korzystamy z [...]

Autor wpisu: batman, dodany: 14.06.2011 08:00, tagi: php

Pod koniec maja odbyła się konferencja Dutch PHP Conference. Chciałoby się powiedzieć jedna z wielu konferencji na temat PHP, jakie odbywają się w ciągu roku. Dlaczego jednak właśnie tak konferencja mnie zainteresowała? Bynajmniej nie z powodu Zend Frameworka 2, o którym wczoraj zaćwierkałem. Zainteresowała mnie, ponieważ o PHP mówiono w kontekście nowoczesnych rozwiązań, pokazując że język ten nie powiedział jeszcze ostatniego słowa. Pozwala mieć to nadzieję na przyszłość oraz w to, że mimo ciągłych tarć w ekipie odpowiedzialnej za PHP, język nadal będzie się rozwijał.

Przez ostatnie kilka lat PHP utknęło w wersji 5 i nawet wydanie wersji 5.3, wprowadzające szereg zmian do języka, nie jest w stanie zatrzeć negatywnego wrażenia spowodowanego porzuceniem prac na wersją 6 i brakiem jasnej drogi rozwoju. Pół roku temu cieszyłem się na zmiany mające pojawić się w wersji 5.4, a nieco ponad miesiąc temu webhostig.pl zastanawiał się czy uda się wydać najnowszą wersję jeszcze w tym roku. Nie wygląda to za dobrze.

Na szczęście są na świecie programiści wierzący w siłę PHP, co doskonale udowodniła wspomniana konferencja. Do najciekawszych tematów poruszanych podczas jej trwania można zaliczyć między innymi:

Wygląda na to, że PHP ma się dobrze i powoli wyrasta z brzydkiego kaczątka służącego głównie jako zaawansowany system szablonów. Może nadeszła pora aby wymienić ludzi odpowiedzialnych za PHP zasiadających na najwyższych stołkach? Skoro nie potrafią przedstawić żadnej konkretnej wizji rozwoju, powinni ustąpić miejsca osobom, które będą potrafiły to zrobić.

P.S. Listę wszystkich prezentacji znajdziecie pod adresem http://techportal.ibuildings.com/2011/05/31/dpc11-sessions-and-slides/.

Autor wpisu: batman, dodany: 13.06.2011 08:00, tagi: php

Programowanie w PHP najczęściej wiąże się z posiadaniem lokalnej kopii projektu. Pół biedy gdy nad projektem pracujemy sami. Wówczas lokalne środowisko można dopasować do środowiska produkcyjnego, dzięki czemu unikniemy konieczności utrzymywania kilku wersji kodu dla różnych środowisk (wbrew porom jest to częsta praktyka).

Z pomocą przychodzi nam projekt o nazwie Vagrant. Jest to narzędzie stworzone z myślą o tworzeniu wirtualnych środowisk dla deweloperów, bazujące na dobrze znanym i lubianym VirtualBoksie oraz języku Ruby (działa również na Windowsie).

Instalacja Vagranta wbrew pozorom jest banalna (nawet w przypadku systemu operacyjnego Windows). Na początek potrzebujemy dwóch rzeczy – VirtualBox oraz interpretera Ruby. VirtualBox pobierzemy pod adresem www.virtualbox.org, a interpreter języka Ruby – rubyinstaller.org/downloads. Po pobraniu i zainstalowaniu powyższych VirtualBoksa oraz Ruby, możemy przystąpić do instalacji Vagranta. W przypadku Windowsa konieczne może się okazać zainstalowanie DevKita również dostępnego pod adresem rubyinstaller.org/downloads.

Po zainstalowaniu wszystkich niezbędnych aplikacji możemy przejść do instalacji tej właściwej. W tym celu w wierszu poleceń wykonujemy:

gem install vagrant

Po instalacji Vagranta dodajemy nowy box (wirtualne środowisko) oraz je uruchamiamy:

vagrant box add base http://files.vagrantup.com/lucid32.box
vagrant init
vagrant up

Wykonanie pierwszego polecenia może zająć nieco czasu, ponieważ powoduje ono pobranie z sieci pliku o rozmiarze około 250MB. Kolejne polecenia wykonają się o wiele szybciej.

Na koniec wystarczy połączyć się po ssh do maszyny wirtualnej i korzystać z niej jak z każdego innego systemu, do którego łączymy się po ssh (na Windowsie będziemy potrzebować Putty).

Dokładny opis instalacji oraz łączenia się do maszyny wirtualnej znajdziecie na stronie projektu – vagrantup.com. Warto również obejrzeć film, prezentujący możliwości Vagranta.

Vagrant – Getting Started from Mitchell Hashimoto on Vimeo.

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

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.