Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: batman, dodany: 16.12.2010 10:00, tagi: javascript

Dwa miesiące temu w Mozilla Labs pojawił się interesujący projekt, którego celem jest dostarczenie SDK, dzięki któremu każdy będzie mógł napisać swoją własną przeglądarkę internetową. Twórcy projektu nie zapomnieli o nim i wydali właśnie wersję 0.1.

Możliwości oferowane przez API nie są może powalające, ale i tak robią spore wrażenie, biorąc pod uwagę, że jest to HTML i Javascript. Chromeless 0.1 umożliwia:

  • śledzenie procesu ładowania strony
  • odbieranie informacji o certyfikacie SSL
  • przełączanie się w tryb pełnoekranowy
  • zapisywanie danych w profilach użytkowników

Jeśli macie ochotę napisać własną przeglądarkę, koniecznie odwiedźcie stronę projektu - http://mozillalabs.com/chromeless.

Autor wpisu: matipl, dodany: 15.12.2010 13:39, tagi: php

WorldZbliża się koniec roku i jedną z myśli, którą zapamiętam z 2010 jest coraz większa postawa roszczeniowa absolwentów, młodych ludzi, ale jeszcze nie pracowników – optymizm. Jak zwykle posłużę się przykładem z „własnego podwórka” – programistami, szczególnie języka PHP.

Ogrom osób, które w tym roku było na rozmowach kwalifikacyjnych (interview) żądało niebotycznych sum w zamian przedstawiając najczęściej puste CV – bierność. Przepraszam, w CV najczęściej dało się znaleźć uczelnie i kierunek, który dana osoba skończyła. Doświadczenie? Najczęściej żadne, lub zupełnie z innej bajki.

Papier absolwenta jest nic nie wart

Swoją drogą (to do osób wybierających się na studia) obecnie papier absolwenta IT jest nic nie wart – najważniejsze znów są umiejętności i sposób myślenia. Podobnie jest z kierunkami nie wymagającymi jakiś specjalistycznych laboratoriów – wykreśliłbym je, bo i tak większość musimy zrobić sami poza uczelnią. Ale co Państwo zrobiłoby z profesorami, którzy tylko książki potrafią cytować na wykładach?

Mnie to zadziwia, że osoba bez umiejętności potrafi żądać 5k zł na rękę wprost na rozmowie, bez ogródek. Ludziom się w głowach poprzewracało. Później w Sieci znajdujemy lament osób, które były na rozmowie i są zawiedzione polskim rynkiem pracy. Albo nawet nie były, a tylko widziały oferty pracy, np. Kamil we wpisie Przyszłość PHP.

Problem jest wyłącznie jeden – LENISTWO. Nasze społeczeństwo rozleniwiło się do granic możliwości (mimo, że uważają się za humanistów nie potrafią sklecić CV). Chyba dlatego nieraz zdarzają się głupie teksty „PRL wróć” gdzie mottem było „czy się stoi czy się leży dwa tysiące się należy”. Należy wziąć się w garść i zacząć działać. „Chcieć to móc” jest bardzo prawdziwym powiedzeniem i szczęśliwy ten, który potrafi je zrozumieć. Kiedyś ludzie zasuwali po 12h dziennie, a dodatkowo zajmowali się domem i dawali radę – nie mówię, że było to przyjemne, ale da się.

Działaj, bądź aktywny

Dlatego jeśli jeszcze się uczysz – działaj! Pomóż rozwijać open source’owe projekty, stwórz z kimś własny projekt – nabieraj doświadczenia (wpisów do CV). Dodatkowo czytaj manuale, how-to itp. Jeśli nie jest to branża IT wstąp do jakiegoś stowarzyszenia związanego z branżą i się udzielaj, działaj! Czytaj prasę specjalistyczną, bądź na bieżąco. To bardzo ważne w dzisiejszym, szybko zmieniającym się świecie. Najlepiej pozbyć się nawyku siedzenia w Sieci bez celu, oglądania seriali itp. Albo bardzo mocno to limituj. Żadnej wiedzy Tobie to nie przynosi, nie rozwija, a tylko powoduje, że rodzi się w Tobie…bierność. Później będziesz mieć problem, aby wykonać 1-czynność dziennie, nie mówiąc o szukaniu pracy. Początek może być trudny, ale później przyniesie to efekty i będziesz zdziwiony że mogło być inaczej.

Zarobki w PHP są niskie?

Czy zarobki w PHP są tak różne od innych języków programowania? Nie, jedyna różnica jest taka że jest mnóstwo ofert dla koderów HTML ze znajomością PHP, które w szerokim spojrzeniu najbardziej widać. Jeśli postaramy się i zdobędziemy umiejętności, nie będzie to mieć znaczenia czy programujemy w PHP, Javie czy Delphi. Zarobki będą porównywalne, bo liczy się stan umysłu, a nie narzędzie.

A jeśli nie masz doświadczenia, umiejętności poza teorią to musisz się liczyć, że pierwsze 3-6 miesięcy przyjdzie Tobie pracować za mniejszą stawkę. Zawsze można być Panem własnego losu i w przypadku branży IT zostać freelancerem, ale uważam że na początku nie jest to dobry pomysł – w firmie sporo się nauczysz od starszych kolegów i koleżanek.

Kredyty i emerytura

I na koniec chciałem pociągnąć wątek optymizmu. Wspomniany optymizm, przecenianie własnych umiejętności związany jest również z kredytami. Polacy ciągną do kredytów na potęgę, szczególnie tych hipotecznych wierząc, że przecież są młodzi i za kilka lat będą zarabiać bajońskie sumy.

Jasne, istnieje kilkanaście procent osób którym się udaje i bardzo szybko rośnie ich pensja (ale ich też mogą zwolnić, stąd prośba: fundusze awaryjne i bezpieczeństwa). Ale większość osób często nie wyjdzie poza pułap dzisiejszych 2-3 tys. zł na rękę. Z różnych powodów. Do tego pamiętajmy, że widzimy w różowych okularach przyszłość. Ale nic to nie da, gdy stopy procentowe pójdą w górę, a ceny nieruchomości w Polsce spadną.

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

Autor wpisu: batman, dodany: 13.12.2010 08:00, tagi: zend_framework

Jednym z ostatnich etapów serii PHP w chmurze będzie uruchomienie aplikacji opartej o Zend Framework. Ponieważ aplikacje PHP hostowane na Windows Azure uruchamiane są w ramach serwera IIS, postanowiłem już zawczasu sprawdzić czy IIS nie będzie sprawiał problemów. Wynik testów przerósł moje najśmielsze oczekiwania. Okazało się, że IIS oferuje szereg usprawnień, które znacząco poprawiają komfort pracy z aplikacją.

Pierwszą czynnością jaką należy wykonać jest upewnienie się, czy na serwerze IIS działa PHP (dokładny opis instalacji PHP na IIS znajdziecie tutaj). Jeśli wszystko działa, można przejść dalej, czyli do utworzenia aplikacji ZF. Czynność tą wykonuje się identycznie jak w przypadku serwera Apache. Podczas korzystania z Apache dla każdej aplikacji tworzyłem wirtualnego hosta i przypisywałem do niego domenę. Postanowiłem nie zmieniać przyzwyczajeń i przenieść ten sposób na IIS. Okazało się to prostsze niż myślałem. W celu stworzenia “wirtualnego hosta”, należy otworzyć menedżera IIS, kliknąć prawym przyciskiem myszy na katalog Witryny i z menu wybrać opcję Dodaj witrynę sieci Web… Spowoduje to otwarcie okna dialogowego takiego jak na poniższym rysunku.

dodawanie-witryny

W oknie tym musimy wypełnić trzy pola:

  • nazwa witryny – nazwa pod jaką będzie wyświetlana nasza witryna w menedżerze IIS
  • ścieżka fizyczna – ścieżka do katalogu, w którym znajduje się plik index.php (domyślnie jest to katalog public)
  • nazwa hosta – host pod jakim nasza aplikacja będzie dostępna. Nie zapomnijcie dodać tej nazwy do pliku hosts

Pozostałe pola nie są nam do niczego potrzebne, więc zostawiamy je bez zmian.

Aplikację można już przetestować. Wpisanie w przeglądarkę nazwy hosta przypisanego do witryny, spowoduje wyświetlenie głównej strony naszej aplikacji. Niestety nic więcej na tym etapie nie będziemy w stanie uzyskać. Należy pamiętać, że współczesne frameworki PHP (ZF nie jest tutaj wyjątkiem) przekierowują cały ruch (za wyjątkiem requestów do istniejących zasobów) na plik index.php. Do tego celu wykorzystywany jest moduł mod_rewrite i plik .htaccess. Na szczęście IIS również posiada możliwość z przepisywania adresów. Służy do tego moduł URL Rewrite, który niewiele się różni od swojego apache’owego odpowiednika. Doinstalowanie tego modułu do IIS jest tak samo proste (a nawet prostsze) jak instalacja PHP i polega na zaznaczeniu odpowiedniego checkboxa w Web Platform Installer. Więcej informacji na temat URL Rewrite znajdziecie na stronie modułu (za jakiś czas popełnię wpis na ten temat).

Po zainstalowaniu URL Rewrite wystarczy utworzyć plik web.config w katalogu głównym aplikacji (domyślnie jest to public) i uzupełnić jego treść:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<system.webServer>
		<rewrite>
			<rules>
				<rule name="Fizyczne zasoby" stopProcessing="true">
					<match url="^.*$" />
					<conditions logicalGrouping="MatchAny">
						<add input="{REQUEST_FILENAME}" matchType="IsFile" pattern="" ignoreCase="false" />
						<add input="{REQUEST_FILENAME}" matchType="IsDirectory" pattern="" ignoreCase="false" />
					</conditions>
					<action type="None" />
				</rule>
				<rule name="Rewrite" stopProcessing="true">
					<match url="^.*$" />
					<action type="Rewrite" url="index.php" />
				</rule>
			</rules>
		</rewrite>
	</system.webServer>
</configuration>

Oczywiście powyższe reguły można wyklikać, więc dla każdego coś miłego.

W tym momencie mały w pełni działającą aplikację opartą o Zend Framework, stojącą na serwerze IIS. Nie miałem jeszcze okazji dokładnego przetestowania takiej konfiguracji, jednak nic nie wskazuje na to, aby pojawiły się jakieś problemy.

Autor wpisu: batman, dodany: 10.12.2010 12:00, tagi: php

Wczoraj (9.12.2010) wydana została wersja 1.1 menadżera PHP, który w znaczny sposób ułatwia zarządzanie konfiguracją PHP na serwerze IIS. Wydana wersja poza funkcjonalnością dostępną w poprzedniej wersji zawiera:

  • poprawioną detekcję konfiguracji (php.ini) zgodną ze specyfikacją
  • automatyczną konfigurację dyrektywy date.timezone
  • możliwość dodawania rozszerzeń do PHP – dodanie rozszerzenia będzie skutkowało skopiowaniem go poprawnej lokalizacji oraz dodaniem stosownego wpisu do php.ini

Nową wersję PHP Managera można zainstalować przy pomocy Web Platform Installera klikając w poniższy link (Web PI):

wpibadgesilver1

Autor wpisu: sokzzuka, dodany: 10.12.2010 09:36, tagi: php

Właśnie wyszły nowe „małe” wersje PHP z lini 5.3.x i 5.2.x. Szczegóły co do zmian można znaleźć w postach Johannesa Schultera i Ilii Alshanetskiego . Obie wersje przynoszą tylko poprawki błędów i poprawę bezpieczeństwa. PHP 5.2.15 jest ostatnim wydaniem z linii 5.2.x  i z tym wydaniem linia 5.2.x zostaje oficjalnie zabita. Long live PHP ;)

Autor wpisu: batman, dodany: 10.12.2010 08:00, tagi: javascript

Co jakiś czas zachodzi potrzeba wyszarzenia strony w związku z żałobą. Zazwyczaj podmienia się w tym celu grafikę na czarnobiałą lub w przypadku przeglądarki Internet Explorer stosuje się odpowiedni filtr. Niestety nie ma jednej prostej metody, która zadziałałaby od razu bez konieczności wykonywania dodatkowych czynności. A raczej nie było. W bezkresie Internetu znalazłem ciekawą bibliotekę Javascript, która za jednym zamachem załatwia problem wyszarzenia strony we wszystkich popularnych przeglądarkach.

Biblioteką tą jest grayscale. Zasada działania jest prosta. W przypadku IE stosowany jest filtr, dla wszystkich pozostałych przeglądarek canvas. Użycie grayscale jest banalnie proste i sprowadza się do wywołania jednej funkcji na elemencie, który chcemy wyszarzyć (przykład ze strony autora).

var el = document.getElementById( 'myEl' );
grayscale( el );
 
// Alternatively, pass a DOM collection
// (all elements will get "grayscaled")
grayscale( document.getElementsByTagName('div') );
 
// Even works with jQuery collections:
grayscale( $('div') );

Przykład działania znajdziecie w demo przygotowanym przez autora biblioteki.

Na koniec drobna uwaga. Grayscale mieli obrazki piksel po pikselu, a co za tym idzie będzie działał bardzo wolno w przypadku stron przeładowanych grafiką. Korzystajcie z tego rozwiązania z rozwagą.

Autor wpisu: batman, dodany: 08.12.2010 22:00, tagi: php

W poprzednim wpisie poświęconym przechowywaniu danych w chmurze Windows Azure, opisałem czym są bloby oraz jak z nich korzystać. Dzisiaj skupimy się na drugim mechanizmie służącym do przechowywania danych w chmurze – kolejkom. Wbrew pozorom nie jest to błahy temat, ponieważ dzięki kolejkom właśnie mamy możliwość tworzyć aplikacje, które ze sobą rozmawiają.

Czym są kolejki?

Jak sama nazwa wskazuje, kolejki są mechanizmem przechowującym dane w… kolejce FIFO (z pewnymi odstępstwami, ale o tym za chwilę). Innymi słowy informacja zapisana do kolejki zostanie obsłużona w momencie, gdy wszystkie informacje dodane wcześniej zostaną obsłużone.

Zastanawiacie się pewnie po co takie mechanizm? Odpowiedź jest prosta. Aplikacje w chmurze nie są monolitem, który wie wszystko o wszystkim. Aplikacje są podzielone na mniejsze bloki, które nie muszą nic wiedzieć o pozostałych blokach. Takie rozproszenie funkcjonalności wymaga, aby bloki (a dokładniej role – o rolach napiszę osobny wpis) mogły komunikować się między sobą. I tutaj z pomocą przychodzą kolejki. Jeden blok otrzymuje dane, które należy przetworzyć. Ponieważ może zająć to dużo czasu, oddelegowuje tą czynność do odpowiedniego bloku, który zajmuje się tym zadaniem, a sam kontynuuje pracę. Najlepiej będzie pokazać to na przykładzie.Załóżmy, że mamy w chmurze aplikację www – galeria zdjęć. Do każdego zdjęcia, które doda użytkownik, tworzone są miniaturki oraz dodawany jest znak wodny. Co więcej, dodawane zdjęcia są w wysokiej rozdzielczości. W klasycznym modelu, tworzenie miniaturek oraz dodanie znaku wodnego odbędzie się tuż po dodaniu zdjęcia, co spowoduje chwilowy brak dostępu do serwisu do czasu, aż zdjęcie zostanie “przemielone”. W chmurze można zrobić to następująco. Użytkownik dodaje zdjęcie, rola web informuje przy pomocy kolejki rolę worker, że pojawiło się zdjęcie abc.jpg i “wraca” do użytkownika, który może kontynuować pracę. Rola worker mieli obrazek i może, ale nie musi poinformować (również przy pomocy kolejki) o zakończeniu pracy.

Jak to wygląda w praktyce?

Kolejki są jeszcze prostsze w użyciu niż bloby. W zasadzie korzystanie z nich sprowadza się do kilku prostych funkcji. Zacznijmy od utworzenia kolejki.

require_once 'Microsoft/WindowsAzure/Storage/Queue.php';
$client = new Microsoft_WindowsAzure_Storage_Queue();
$queue = $client->createQueue('kolejka');

var_dump($queue);

Powyższy kod wyświetli

object(Microsoft_WindowsAzure_Storage_QueueInstance)#7 (1) {
  ["_data:protected"]=>
  array(3) {
    ["name"]=>
    string(7) "kolejka"
    ["metadata"]=>
    array(0) {
    }
    ["approximatemessagecount"]=>
    int(0)
  }
}

Do tak przygotowanej kolejki można już dodawać wiadomości.

$client->putMessage('kolejka', 'do it!', 120);

Pierwszym argumentem funkcji jest nazwa kolejki, do której dodawana jest wiadomość, drugim argumentem jest treść wiadomości (maksymalnie 8KB), ostatnim czas życia wiadomości w sekundach. Parametr ten jest opcjonalny i domyślnie ustawiony na maksymalny możliwy czas, czyli 7 dni. Wiadomości po osiągnięciu tego czasu są usuwane z kolejki. Jest to o tyle ważne, że w przypadku problemu z jakąś wiadomością, nie zablokuje ona aplikacji na stałe, tylko na czas życia konkretnej wiadomości.

Kolejkę można przeglądać na dwa sposoby: pobrać wiadomości do obsługi lub podejrzeć wiadomości. Pobranie wiadomości oznacza, że wiadomość jest oznaczana w kolejce jako obsługiwana, dzięki czemu nie będzie miała miejsca sytuacja, w której jedną wiadomość obsługuje kilka ról na raz. Domyślnie wiadomość oznaczana jest jako obsługiwana na czas 30 sekund. Można ten czas zwiększyć maksymalnie do 2 godzin. Po jego upłynięciu, wiadomość wraca do kolejki na swoje miejsce (a dokładniej rzecz biorąc, staje się ponownie widoczna w kolejce). I przez to właśnie, kolejki w Windows Azure nie są prawdziwymi kolejkami FIFO.

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.