TechLife devBlog

# Internet

Rzecz o przyszłości internetu

Inne, Internet, Techblog 19 czerwca 2010 00:29

Tekst ten spisuje w dużej mierze z własnej ciekawości, aby czytając go za kilka lat móc sprawdzić jak na ile trafnie udało mi się przewidzieć przyszłość.

Creative Commons (by-nc-nd) - JaulaDeArdilla Będąc w podstawówce czasami mogłem całe dnie przesiedzieć na klepaniu przeróżnych programów w BASIC-u na moim postkomunijnym Commodore 64 (pozdrowienia dla fanów C&A). Kiedy jednak nastała era PC a ja zacząłem szperać po internecie czy to u kumpli czy w kawiarenkach, wówczas zauważyłem, że mój nie podłączony do internetu komputer stawał się coraz mniej użyteczny. Oczywiście nadal można było zrobić na nim 1k przeróżnych rzeczy jednak był jakiś taki... pusty. Wtedy zdałem sobie sprawę, że internet to przyszłość, bez której nie będzie można niedługo żyć. Brak internetu będzie równie odczuwalny jak brak prądu.

Kiedy poszedłem do technikum, do klasy informatycznej, postanowiłem wybrać sobie jakiś język programowania, w którym zacznę się szkolić, tak aby na studiach a później w pracy zawodowej mieć już go w małym palcu. W tamtych czasach w królestwie programowania prym wiodły takie języki jak C, C++ czy Delphi, w których to można było naklepać jakiś programy użytkowe, które wówczas były w cenie. Ja jednak nie widząc innej przyszłości poza internetem postawiłem na naukę tworzenia dynamicznych stron internetowych i związanych z nimi języków skryptowych od PHP poczynając.

Na studiach zauważyłem, że moja wizja przyszłości szybko się wypełnia. Coraz więcej polskich firm zaczęło dostrzegać potencjał internetu. Każda firma chciała mieć własną stronę internetową, które stopniowo z prostych HTML-owych wizytówek zaczęły przekształcać się z coraz bardziej zaawansowane systemy zarządzania treścią, ewidencji sprzedaży czy wspomagania zarządzaniem. Te coraz bardziej funkcjonalne systemy szybko zaczęły przyjmować funkcje aplikacji desktopowych stopniowo je zastępując (stan na dzień dzisiejszy).

Creative Commons (by-nc-nd) - taberandrew Do zalet aplikacji internetowych nie muszę chyba nikogo przekonywać. Świadczy o tym chociażby fakt, że za ich pomocą ja piszę ten tekst a Wy go czytacie (i za chwilę skomentujecie). Poza tym większość z Was zapewne używa np. internetowego klienta poczty, który automagicznie się aktualizuje, naprawia, zyskuje nowe funkcje czy backupuje. Jest to ogromna przewaga nad aplikacjami desktopowymi, które mogą przestać działać na 100 sposobów (wirusy, utrata danych, awaria jednego z wymaganych komponentów systemowych), natomiast póki działa Wam przeglądarka (a do tego nie trzeba wiele) do puty będą działały aplikacje internetowe (mówię oczywiście cały czas o przeglądarkowych aplikacjach).

Ok, więc mamy stan na dzień dzisiejszy, ale co dalej? Otóż moim zdaniem następnym krokiem będzie zmniejszenie roli komputerów osobistych na rzecz internetowych chmur czyli olbrzymich farm serwerów. Dowody takiego trendu możemy znaleźć już teraz. Wystarczy sprawdzić jaki komputer szybciej przeszuka zasoby internetu - nowe 8-rdzeniowe cacko czy stary pentium 500MHz? Oczywiście zrobią to w tym samym czasie bo zamiast robić to same zapytają o to serwerownie Googla. A który z nich znajdzie szybciej mail od kumpla sprzed 3 miesięcy? Oczywiście żaden, bo zajmą się tym serwery Googla na których operuje Gmail. Przykładów jest oczywiście znacznie więcej, można przecież zapytać który poradzi sobie lepiej z konwersją wideo wrzucanego na YouTube. Oczywiście jest to kolejne niewłaściwie zadane pytanie bo żaden z nich nie zajmuje się już konwersją, robią to internetowe serwery. A kto zaczyna wykrywać nam teraz wirusy znajdujące się na dopiero co podłączonej pamięci USB? Nie, nie nasz antywirus ale zewnętrze oprogramowanie antywirusowe przebywające w chmurach, do których lekki klient, działający w naszym systemie, wysyła próbki do analizy.

Przyszłość jest w chmurach Widzimy więc, że kolejnym naturalnym krokiem na tej ścieżce jest odchudzenie komputerów osobistych do roli wyłącznie klientów internetowych chmur (patrz Chrome OS). Oczywiście nadal pozostają programy, których nie da się póki co wyprzeć z desktopów. Bo jak zastąpić programy typu Photoshop, CAD, programy do obróbki wideo czy zaawansowane graficznie gry przez aplikacje przeglądarkowe. To rzecz jasna nie stanie się w najbliższych latach, chociażby dlatego, że nie istnieje jeszcze odpowiednia technologia, w której te aplikacje mogły by powstać. IMO HTML5 dopiero będzie w stanie zapewnić dobry budulec dla aplikacji internetowych typu pakiety biurowe, a do reszty jeszcze daleko. Co prawda rzeczami typu Flash czy WebGL będzie się dało zapchać wiele dziur jednak gra napisana w WebGL choć do działania będzie wymagała wyłącznie przeglądarki to jednak całość operacji graficznych nadal pozostanie do wykonania po stronie klienta.

Creative Commons (by-nc-nd) - stadtstreicher79 Na końcu dochodzimy więc do punktu, w którym wszelkie operacje wymagające większej mocy obliczeniowej przerzuconą zostaną do chmur. Widzę to na podobnej zasadzie jak odbywają się sesje VNC. Nasz komputer będzie logował się do najbliższego nam centrum cyfrowego i stamtąd otrzyma gotowy do wyświetlenia na monitorze obraz. Zalet takiego systemu jest wiele. Po pierwsze znika problem skalowalności. Obecnie rynek gier komputerowych jest w znacznym stopniu motorem napędowym do zmiany podzespołów komputerowych na nowsze. Jednak w przypadku centrów cyfrowych problem ten nie istnieje. Jeżeli tylko będziemy chcieli pograć w najnowszą grę to po prostu w nią pogramy ponieważ system będzie miał do dyspozycji olbrzymie zasoby obliczeniowe, które będzie przydzielał użytkownikom w zależności od ich zapotrzebowania. Chociaż centra cyfrowe wydają się trochę nierealnym pomysłem to jednak nie odbiegają one za bardzo od dzisiejszych sieci energetycznych. Każdy z nas będzie podłączony do najbliższego centrum cyfrowego podobnie jak obecnie podłączony jest do najbliższej elektrowni i każdy będzie otrzymywał tyle mocy obliczeniowej ile aktualnie potrzebuje (podobnie jak z energią elektryczną). Z tej perspektywy sprawa wygląda już całkiem normalnie. Kolejna ogromna zaleta jest taka, że podobnie jak teraz wykwalifikowani pracownicy obsługują elektrownie, również specjaliści od sprzętu będą obsługiwali centra obliczeniowe. To zupełnie tak jak by każdy z nas miał w domu własnego informatyka. Skończą się zawirusowane systemy działające na ćwierć gwizdka, z którymi zwykły użytkownik nie daje sobie rady. Poza tym aktualizacja takiego centrum cyfrowego będzie wiązała się z wymianą macierzy dyskowej klasy 1 na macierz klasy 2, czy wymianą jednostki głównej posiadającej 4k procesorów klasy 1 na jednostkę z 100k procesorów klasy 2 i po bólu. Wreszcie komputerami zajmą się specjaliści a użytkownikom pozostanie... użytkowanie :-)

Co do zestawów komputerowych do szacuję, że będą one składały się wyłącznie z monitora, myszki i klawiatury (o ile ktoś nie wymyśli czegoś bardziej poręcznego) oraz urządzeń peryferyjnych typu kamera czy drukarka. Będą one spięte ze sobą siecią bezprzewodową. Wszystko inne znajdowało będzie się w chmurach. Ktoś spyta a co np. ze zgrywaniem zdjęć z aparatu skoro nie będziemy mieli obudowy komputera do której można będzie wsadzić kabel USB czy kartę pamięci. Otóż sprawa jest prosta, wszelkie urządzenia peryferyjne będą również klientami sieci internet i będą przesyłały dane prosto do chmur, a więc żadna obudowa z portami nie będzie nam potrzebna.

Na tym już zakończę moje przemyślenia co by niepotrzebnie nie wydłużać tekstu. To jak, kto się założy, że tak będzie? :-)

Google Font API

Internet, Techblog 19 maja 2010 23:29

Google pchnął dzisiejszego dnia sieć o dobre kilka kroków do przodu. Nie dość, że pojawił się projekt WebM, który prawdopodobnie raz na zawsze wydrze internetowe wideo z rąk Adobe i odda w ręce standardów, to jeszcze udostępniona dziś usługa Google Font API ma zamiar wzbogacić wreszcie strony w nowe fonty! Koniec cudowania z podmieniamiem tekstu przez obrazki, Flasha, canvasa czy inne cuda na kiju. Wreszcie wygląda to maksymalnie prosto i przejrzyście.

Wystarczy wybrać czcionkę z katalogu, wstawić odnoszący się do niej nagłówek:

‹link href='http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz' rel='stylesheet' type='text/css'›

I już możemy korzystać z czcionki w CSS-ie:

h1 { font-family: 'Yanone Kaffeesatz', arial, serif; }

Wynik:
Wynik

No wreszcie! Czyżby Google nadrabiało za wpadkę z WIFI?

PlayFlash czyli YouTube i MPlayer

Internet, Linux, Techblog 19 maja 2010 22:14

Jak wiemy VP8 jest już w drodze, jednak do czasu pełnego wdrożenia pozostanie nam jeszcze użerać się z Flashem na nie bardzo wspieranych przez Adobe platformach tj. Linux czy Mac. Ułomność obsługi Flasha widoczna jest zwłaszcza przy wideo w wyższych rozdzielczościach.

Powstało już wiele rozwiązań tego problemu jak np. podmiana playera Flashowego na MPlayera lub wywoływanie w konsoli skryptów, które jako parametr dostają adres URL do filmu na YouTube.

Rozwiązania te nie są jednak jak dla mnie zbyt wygodne, ponieważ MPlayer nie jest w stanie zastąpić playera Flashowego, z racji tego, że np. nie zbuforuje filmu od wybranego fragmentu czy też nie umożliwi nam zmiany rozdzielczości filmu. Natomiast uruchamianie skryptu z podaniem mu adresu URL jest co by nie mówić nieporęczne, bo po co klikać dziesięć razy skoro można dwa.

Wiadomo, że ładujący się film z YouTube'a tworzy plik w katalogu /tmp/ o nazwie FlashXX... Wystarczy więc wyłapać najnowszy plik z tego katalogu o takiej nazwie i uruchomić go za pomocą naszego ulubionego odtwarzacza. Całe sterowanie można wykonać za pomocą standardowego Flashowego playera YouTube np. wybór rozdzielczości i ustawienie odpowiedniego miejsca startu filmu (np. od 2 minuty) a później skryptem ukrytym w ikonce lub skrócie klawiszowym uruchomić nasz natywny player i rozsiąść się wygodnie w fotelu.

Skrypt jest banalnie prosty:

/usr/bin/mplayer /tmp/`ls /tmp/ -tr | grep Flash | tail -1`

Ja mam go podpięty pod ikonkę dzięki temu używanie wymaga dwóch kliknięć (pauza w playerze YouTube i odpalanie skryptu).

PlayFlash w akcji

GooglePreview dla Google Chrome

Internet, Kodowanie, Techblog 28 października 2009 22:56

Google preview to moja ulubiona wtyczka rozszerzenie dla Firefoksa, bez której wyniki wyszukiwania w Googlu po prostu nie wyglądają. Wstawia ona obok każdej pozycji miniaturkę strony, a ponieważ człowiek myśli obrazami więc o wiele szybciej można namierzyć szukaną witrynę. Niestety w przeglądarce Google Chrome (która ostatnio stała się moją podstawową przeglądarką) nic takiego nie istnieje. Istnieje już jednak system rozszerzeń (chociaż ukryty) oraz podstawowa dokumentacja, więc postanowiłem sam zapchać lukę.

Na początek przyda się nam developerska wersja Chroma (nie wiem czy wersja stabilna posiada tą funkcjonalność, jeżeli tak to niech mnie ktoś poprawi). Dla użytkowników ArchLinuksa polecam paczkę z AUR - google-chrome-dev.

yaourt -S google-chrome-dev

Aby uruchomić ukryty jeszcze mechanizm obsługi rozszerzeń należy uruchomić przeglądarkę z parametrem -–enable-extensions.

google-chrome -–enable-extensions

Teraz wystarczy już tylko pobrać przygotowane przeze mnie rozszerzenie i potwierdzić chęć instalacji

ChromePreview 0.38

Od tej chwili możemy się już cieszyć pięknymi miniaturkami

wyniki wyszukiwania

O ile wszystko dobrze poskładałem to rozszerzenie powinno się samo aktualizować (w razie W). Jeżeli ktoś jest zainteresowany bebechami to dołączam pliki:

Listę zainstalowanych rozszerzeń znajdziecie wstukując do paska adresu chrome://extensions/

EDIT: rozszerzenie znajdziecie w otwartej dzisiaj bazie rozszerzeń pod adresem https://chrome.google.com/extensions/detail/behjpjkdajdecgkkamhaplpkcbkceaie

Narzędzia do pracy grupowej poszukiwane

Internet, Kodowanie 4 czerwca 2009 15:40

Obecnie pracuję jako programista aplikacji internetowych w małym zespole. Realizujemy kilka projektów w miesiącu i dość trudno jest zapanować nad wszystkimi zadaniami, które trzeba wykonać. W przypadku większych projektów korzystamy z Trac'a, jednak do mniejszych nie nadaje się on za dobrze ponieważ trzeba dla każdego projektu tworzyć nową instancję i nie ma jak zrobić zbiorczego zestawienia. Rozglądałem się więc za jakimś kompleksowym rozwiązaniem, które dawałoby możliwość ogarnięcia kilku projektów wraz ze śledzeniem repozytoriów Subversion.

Powstało już wiele serwisów oferujących podobną funkcjonalność. Wśród najbardziej znanych wymienić można:

Główną wadą pierwszych trzech rozwiązań jest to, że nie można ich hostować na własnym serwerze a jedynie wykupuje się konto na serwerze producenta. Collabtive jest co prawda aplikacją na licencji GNU GPL i można postawić to u siebie, ale z kolei zupełnie nie obsługuje repozytoriów kodu.

I tutaj pytanie do Was. Czego Wy używacie w pracy? Być może jest jakiś fajny projekt który przeoczyłem.

PS. Swoją drogą to dziwne, że nikt jeszcze czegoś podobnego w Django nie zrobił.

« Nowsze | Strona 2 z 11 | Starsze »