Kategoria:

Design Patterns PHP - Wzorzec Obserwator

W Steven Lloyd Watkin , wtorek 29 grudnia 2009 22:02

Czytałem Head First Design Patterns niedawno i postanowiłem napisać kilka wzorów jako przykłady PHP dla własnej korzyści. Pierwszy z nich, że zdecydowałem się na kod jest Observer Pattern . Formalna definicja Observer Pattern to:

Wzorzec obserwatora (podzbiór asynchroniczne Publish / Subscribe wzór ) jest oprogramowanie wzorca projektowego , w którym obiekt , zwany temat, utrzymuje listę jego utrzymaniu, obserwatorów nazywa, i powiadamia je automatycznie o wszelkich zmianach stanu, zazwyczaj przez wywołanie jeden z ich metod . Jest on głównie wykorzystywany do realizacji rozproszonych systemów obsługi zdarzeń.

Ponieważ systemy bardziej luźno upewniając się, że gdy zdarzenie wszystkich systemów, które wymagają znajomości aktualizacje te informacje. Na przykład, blogu, po zapisaniu post możemy być zmuszeni do aktualizacji wyszukiwarki (np. Lucene), aktualizacja naszej sitemap, tagi, e-mail subskrypcji użytkowników, itp. wzorzec obserwatora pozwala programistom na dodatkowe słuchaczy bez edycji swoich obserwacji obiektu . Poprzez wstrzyknięcie obserwatorów (tj. wyszukiwarki obserwatora aktualizacji Sitemap Generator, itp.) na temat (tzn. blogu system edycji) możemy pozwolić mu na wykonywanie wszystkich niezbędnych aktualizacji bez żadnych zmian.

Kontynuuj czytanie "PHP Design Patterns - Observer Pattern" »

Urząd Grid Computing przy Wirtualne środowiska - Część 3

W Steven Lloyd Watkin , piątek 04 grudzień 2009 23:37

Wprowadzenie

Pracuję w firmie, w której prowadzimy wiele miejsc pracy, przetwarzania wsadowego milionów rekordów danych każdego dnia i myślałam ostatnio o komputerach, które siedzą każdy dzień nic nie robi przez kilka godzin. Czy nie byłoby dobrze, gdybyśmy mogli korzystać z tych maszyn wzmacnia moc naszego systemu? W tym zbiorze artykułów mam zamiar sprawdzić potencjalne korzyści z zatrudniania biura sieci za pomocą środowiskach wirtualnych.

W części 2 przyjrzeliśmy się pracy serwer będzie działał, a jak praca powinna być skonfigurowana w celu osiągnięcia największą ilość przetwarzania przy jednoczesnym zapewnieniu, że każde zadanie jest przetwarzane bez wątpienia.

Przygotowanie pracowników - lub serwera LIMP

Kolejnym krokiem w procesie jest utworzenie wirtualnej pracowników. Do tego mam zamiar używać instalacji CentOS pomocą VirtualBox. Mam zamiar zainstalować MySQL i PHP na serwerze, znany również jako Limp (NUX Li, m ySQL, P HP) Servera (może zrobiłem, że nazwa góry).

  • Instalacja VirtualBox na komputerze windows (zgodnie link)
  • Pobierz i zainstaluj CentOS (aktualna wersja 5.3) w utworzonych maszyn wirtualnych

Nie ma sensu mnie będzie to tam prawdopodobnie 1.000 tutoriali tam (ok, jest jeden: Tworzenie i Managing CentOS maszynę wirtualną w VirtualBox ). Ważne, aby pamiętać, przypuszczam, że jest to, że zadzwonił do mojego wirtualnego GridMachine maszyny.

Jeśli chodzi o moje wybory klienta do wirtualizacji systemów operacyjnych i go nie ma istotnych powodów, duży wybór dla każdego. VirtualBox jest coś, czego używać na moim domowym komputerze i jest obsługiwany przez trzy najważniejsze systemy operacyjne. Wybrałem CentOS jako dobry OS stabilny i używam go na własnym serwerze WWW. Jestem wielkim zwolennikiem odpowiednie narzędzia do pracy (choć jestem stosowania "użytkowania najszybszy i najłatwiejszy dla Ciebie" mentalności tutaj), więc jeśli system operacyjny X działa kod szybsze i bardziej efektywne wykorzystanie, że zamiast:)

Ważne jest upewnić się, że VM używa DHCP, w przeciwnym razie dla każdej nowej maszyny wirtualnej musiałyby być skonfigurowany oddzielnie, która jest coś, czego nie want.By wykorzystaniem DHCP nie musimy konfigurować ustawienia sieci indywidualnie do maszyn pracownika, DHCP strony obecnie IP dla Ciebie. Dlatego można skopiować maszyny wirtualnej o biurze nie martwiąc się o ustawienia każdego z nich up (zwiększa skalowalność i zmniejsza administracji pracownika).

Proces należy dążyć do osiągnięcia byłoby uzyskać nowy fizyczny komputer, zainstalować VirtualBox, a następnie prawie uruchomienie wirtualnego obrazu bez wielu innych. To może być mądry, aby ustawić wszystkich pracowników w innej podsieci, tak aby można przynajmniej zobaczyć, jak wiele komputerów z systemem. Musisz także skonfigurować komputery w długoterminową dzierżawę lub nieograniczonej dzierżawy DHCP.

Jak uruchomić Praca na pracownika

Jest to interesujący obszar i jest kilka ważnych metod przetwarzania miejsc pracy na pracownika. Tu po prostu omówić dwie najbardziej oczywiste:

  • Nieustannie działa skrypt: Skrypt, jest to skrypt lub skrypt PHP jest wykonywana raz na pracownika i działa w ramach nieskończoną pętlę. Mam promocje tej metody jako jednego wypadku scenariusza i potencjalnie swoich pracowników przestanie działać bez jakiejś interwencji.
  • Cron w oparciu wykonywania skryptu: co X minut demona cron rozpoczyna wezwanie do skryptu, aby rzeczy się dzieje. Bez pewnej kontroli może prowadzić do wielu, wielu kopii skryptu pracownik pracuje.

Moja decyzja była iść z cron, który rozpoczyna się skrypt co 10 minutes. My skrypt wykonuje następujące zadania:

  1. Pobierz listę procesów i grep to dla "php". Jeśli nie znaleziono następnie kontynuować.
  2. Call kod pracy, w moim przypadku byłoby to coś w oparciu PHP
  3. Pracownik kończy skrypt run
  4. Gotowy do ponownie na następne wywołanie odpowiednich

Mój skrypt wygląda tak:

  #! / Bin / sh
 jeśli ps ax | grep-v |> php grep / dev / null
 następnie
     echo "Praca jest przetwarzanie, zjazd"
 więcej
     echo "Praca nie jest uruchomiony, już teraz"
     yourJobProcessingScript.php php
 fi 

Uwaga: echo są prawie całkowicie pozbawione sensu, ale może pomóc kolejna osoba, która przychodzi, aby spróbować ich edycji.

To kończy ustawić pracownika maszynie wirtualnej, szybkie, proste i łatwe do kopiowania do każdego elementu sprzętu, który jest odbierany. "Inteligencji" systemu sieci naprawdę nie jest w wizualizowane OS, jej wszystko zrobić z kodem stworzony do pracy procesu konfiguracji pracy, i do zapewnienia, że ​​praca przebiega w stosownych przypadkach (np. gdy komputer jest bezczynny ).

Konfigurowanie systemu Windows do zainicjowania pracowników

Pierwszym zadaniem jest wypracowanie polecenia konieczne do uruchomienia maszyny wirtualnej z windows linii poleceń. Jeśli zainstalowałeś VirtualBox w domyślnej lokalizacji i masz nazwie firmy GridMachine pracownik to polecenie musi doładować pracownik jest:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" GridMachine startvm 

Jednak, aby uruchomić skrypt w "głowy" państwa musimy użyć:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe" startvm GridMachine-- VRDP = off 

Spowoduje to uruchomienie maszyny wirtualnej bez GUI i pozostawić do zapisywania stanu wdziękiem. Drugi argument wyłącza RDP więc nie jest to sprzeczne z okna RDP, lub przekazać wiadomość o nasłuchuje na porcie 3389. Nazwę maszyny wirtualnej jest wielkość liter!

Następnie musimy ustawić okien do inauguracją naszej VM pracownikiem, gdy maszyna pozostawała w bezruchu. Aby to zrobić (w systemie Windows XP) musisz go Start -> Wszystkie Programy -> Akcesoria -> Narzędzia systemowe -> Zaplanowane zadania jak poniżej:

zaplanowanych zadań

Następnie kliknij na "Dodaj zaplanowane zadanie", a następnie przejdź do dodać własny program. Przejdź do skryptu VBoxManage i kliknij OK. Harmonogram zadań dla każdej z opcji (my to zmienić w ciągu minuty) i kontynuować. Po pominięciem następnego ekranu Windows zapyta Cię, który chcesz uruchomić to zadanie, polecam albo "Administrator" lub tworzenia nowego uprzywilejowanego użytkownika. Pamiętaj, że nie chcemy ingerować w standardowe konto personelu na komputerze w dowolnym momencie. Kliknij przycisk Dalej i sprawdzić pokaż zaawansowane opcje do tego zadania.

Do końca biegu tekstowym dodać nasz "GridMachine startvm 'string i zapewnia, że działał tylko gdy jest zalogowany na stronie odznacz. Odwiedź obok Harmonogram zadań i harmonogram zmian spadek w dół do opcji "stanie bezczynności", wybierz czas chcesz, aby komputer był bezczynny przed przejściem do następnej karty.

Na koniec usuń zaznaczenie opcji, która stanowi Zatrzymaj zadanie, jeśli nie został uruchomiony kwota X czasu, ale należy zaznaczyć opcję Zatrzymaj zadanie, gdy urządzenie nie jest bezczynny.

harmonogram

To wszystko to dla przyjmującego okna konfiguracji!

Podsumowanie

W tej części musimy stworzyć maszynę wirtualną do akt pracownika, jak również sposób, w jaki nazywamy i wykonywać skrypty przetwarzanie zadania (dla siebie skrypt PHP). Stąd przyjrzymy się, jak skonfigurować nasze kopie systemu Windows do uruchomienia maszyny wirtualnej w trybie bez głowy, gdy komputer będzie bezczynny, i zapisać swój stan, gdy użytkownik powraca do korzystania z urządzenia. Mam nadzieję, że w tym momencie widzisz, jak łatwo jest stworzenie takiego systemu, a są swędzenie, aby uzyskać pewne eksperymenty samemu!

Następny raz

W części 4 zajmiemy się korzystać z narzędzi w celu zapewnienia, że korzystasz z najnowszej wersji kodu i źródeł danych, tak aby uzyskane wyniki są zawsze na bieżąco z najnowszymi informacjami i logiki biznesowej.

Polska nazw katalogów i aplikacji Facebook

W Steven Lloyd Watkin , piątek 10 kwietnia 2009 09:33

Jedną z rzeczy, zabawy Byłem zaangażowany w podczas pracy w Tracesmart jest katalog nazw . Zasadniczo zabraliśmy nasz ogromną bazę informacji i wyciągnął wielki stos statystyki o różnych nazwach.

Proces jest wszystko jedno, dużego wysiłku SEO w celu wyciągnięcia większego ruchu na stronie, ale jest również kilka ciekawych informacji i statystyk nazwę.

Oto przykład z powodu mojego imienia Lloyd Watkin lub więcej Przypuszczam, że prawidłowo Steven Watkin . Poświęć chwilę aby sprawdzić swoją nazwę na stronie Tracesmart, może być ciekawe;)

Mamy też nazwiska i dane statystyczne na temat katalogu nazwy strony, która mówi, co nazwy są wyszukiwane i, jak niedawno. Jego dość interesujące zobaczyć, nazwiska znanych ludzi, wznieść się statystyki, kiedy pojawiają się w mediach. Ostatnim przykładem jest to, że Liam Neeson , kto żona zmarła po wypadku na nartach w ostatnim czasie, choć oczywiście ludzie nie rację w sprawie pisowni (stąd ogromna liczba odsłon na tej nazwie) - Liam Nilson .

Facebook aplikacji

Po katalogu nazwisk powstała stawiamy na temat tworzenia aplikacji Facebook które duely o nazwie " My Name ". Aplikacja Facebook jest rozszerzenie katalogu nazwisk i zapewnia dodatkowe statystyki. Aby dodać katalog nazw do konta Facebook stronie internetowej:

http://apps.facebook.com/my-name/

Flickr i Gadu: Forgotten dane logowania

W Steven Lloyd Watkin , czwartek 02 kwietnia 2009 19:31

Kilka miesięcy temu zmieniłem hasło Flickr tak, że przyjaciel może przesyłać zdjęcia do niego. Kilka miesięcy później znalazłem, zapomnieli, że hasło i starając się zapamiętać wszystkie szczegóły z mojej tajemnicy Yahoo! jest po prostu koszmar. Miałem Yahoo! adres e-mail od kilku lat i nie byłem pewny, gdzie i kiedy (żyłem), kiedy zapisałem się - oh tak aby lepiej o tym Flickr Yahoo! wykorzystuje system logowania:)

Yahoo! nie było pomóc albo chcieli podać dokładne dane i odrzuci wszystko, co nie pasuje. Plus nie wolno mi było podać listę możliwych pasujących szczegóły należało prawo w każdym szczególe przeciwnym wypadku zostanie ona odrzucona. Potrafię zrozumieć bezpieczeństwa, ale to był już ból w dupę, zwłaszcza, że ​​mogłem odzyskać moją nazwę użytkownika na mój adres e-mail zwykle bez żadnych problemów (dlaczego nie można wysłać reset nie !?!?!). Na szczycie tego wszystkiego chcieli dane przesyłane do ich biura w Kalifornii albo pocztą lub faksem, boo!

Cofnij się w serwisie Flickr, który prosimy wysłać maila na mój adres e-mail do mnie z prośbą, aby odłączyć Yahoo! konto z mojego konta Flickr. Hooray mogłem następnie zarejestrować się z nowym kontem Yahoo! i założyć konto Flickr, aby ten nowy login.

Po odczekaniu co najmniej tydzień za każdym razem na Yahoo! odpowiedzi Flickr, ale to wszystko posortowane w ciągu 2-3 godzin!

Well done Flickr, na szczęście tam jesteś, patrząc po Twoich klientów:)

Teraz na każdy nuda oto kolejny link do mojego konta Flickr

Zainspirowany ... i guilted!

W Steven Lloyd Watkin , środa 11 marca 2009 20:51

Ja niedawno założyć blog na jeden z facetów w pracy - Matthew Hopkins - i patrząc na swych pierwszych kilku stanowisk, ma mi myśleć, że może powinienem dodać kilka stanowisk jego był natomiast dobre i dużo działo się w ciągu 2008 roku. Innym jednym z facetów w pracy robi się blog, stary dobry Stephen Griffiths więc spojrzeć tam.

Więc będę tyrać na retrospektywnej i dodać kilka postów o tym, co 2008, która odbyła dla mnie i jak 2009 zapowiada się:)

2008 WTF?!?

W Steven Lloyd Watkin , czwartek 01 stycznia 2009 00:00

2008 był dziwny stary rok, jest kilka rzeczy Bardzo podobała mi o to, i istnieje kilka rzeczy, które zostały już zapomniane i przeniósł się z ....

Nurkowanie

Nie zrobiłem dużo w drodze nurkowania Myślę, że udało mi się o około 10 zanurzeń cały rok. Jeden z tych nurkowań santas nurkowania imprezy w Vobster Quay który był bardziej udany niż moje najśmielsze oczekiwania. W końcu zebrała ponad 1000 funtów na RNLI , ale transmisja w BBC i ITV, i miał około 80 nurków w wodzie. Vobster była morzem santas nurkowanie za dzień! I naprawdę nadzieję, że mogę zrobić więcej nurkowania w 2009 r. (tylko!), Powrót do zaangażuje wiele szkoleń, aby uzyskać komfortowe ponownie. Brakuje mi dni od daty otrzymania na łodzi, słońce promienieje w dół, chwytając homara, pakowanie upa i pozycji startowej na kilka piw.

Bieganie

Pod koniec stycznia 2008 r. brałem udział w wypadku samochodowym, uderzony z tyłu, podczas gdy zatrzymał się, nic wielkiego i tak myślałem. Przez kilka miesięcy mój ból szyi, ale stopniowo gorzej zatrzymanie mnie działa. W końcu skontaktowałem Firma twierdzi wypadku, który rozpoczął się mnie leczenia kręgarz w Cardiff, które jestem wciąż uczestniczy (marzec 2009 r. - wniosek jeszcze nie został rozstrzygnięty albo). Bieganie jest jedna z tych rzeczy, które chcę wrócić do Zacząłem z Miles ale między chorób, urazów, i go w końcu przeniósł się do Cambridge, ale obecnie tylko kilka razy. I naprawdę trzeba dobrze kopać tyłek dostać się ponownie, chociaż moja jedyna pociecha jest to, że byłem na rowerze z powrotem i przednie do pracy na miesiąc, który robi mi dobrze.

Przesunięte

W lipcu 2008 roku przeniósł się do mieszkania z Megan, stajemy się poprzez malowanie i dekorowanie i coraz to wygląda na bardzo Nicea -. Chociaż jesteśmy jakby przeciągając naszych piętach z obrazem ... a jednak. Mieszkanie jest w Adamsdown w Cardiff (nigdy nie wydają się iść daleko) i jest dostosowany do nas po prostu wspaniały.

Praca

Praca była w każdym miejscu w 2008 roku, zacząłem trochę dryfuje przed podjęciem pracy w agencji wynajmu jako menedżer. Pomogło to nie koniec z najmu nieruchomości i oprogramowanie agencji , że jestem rozwijających się. Mój plan na nieruchomości i dzierżawy oprogramowania agencji jest uwolnienie go jako niski koszt produktu, gdy mam więcej czasu, aby je wyczyścić się. Z tego co mi powiedziano na temat produktów konkurencyjnych na rynku, jest łatwiejszy w obsłudze i spełnia wiele lub więcej takie same funkcje w lepszy sposób:)

W kwietniu 2008 zbliża się do moich 22-ci urodziny zarówno Megan i moja matka zaczęła naciskają na mnie do 'get kariery ", które ciężko przełknąć pomysł był naprawdę, co potrzebne. Prowadzenie własnej firmy było zabawne, lecz nie dostarczyły potrzebnych stabilności i zarabiać grosze na wynajem nie było agencji długoterminowym celem kariery. Zawsze był przypadek czekać, aż mi się moje oprogramowanie i będę gotowy zacząć sprzedawać, ale czas był zawsze przeciwko mnie.

Co było po kilka wywiadów z jakiejś wielkiej firmy w niektórych wielkich obszarach, pełne obietnic o przeprowadzce do nowego obszaru, nowy początek wydawał się wielki. Najlepsze oferty pracy była z dużym dostawcą usług hostingowych w obszarze Worcester i wydawał się idealny. Co się stało? Cóż miałem opracowane rozwiązania online SMS powraca Boże Narodzenie, które zostały siedzieć nie robi wiele, które były dla inwestorów. Doskonała pomyślałem i poszliśmy. Wszystko nie kończy się dobrze i po kilku miesiącach złamanych obietnic i podnoszący się poziom stresu zrobiłem stoiska i wyszedł. Praca 60 godzin w tygodniu, wracam do domu i robić co innego 3-4 godziny plus pracy przez cały weekend i stres dla wszystkich była to jedna z najlepszych decyzji, jaką kiedykolwiek wykonane. (W tym miejscu chciałbym podziękować Megan, moi rodzice, i moi przyjaciele, którzy stali obok mnie, jestem stres-headed penisa w czasie, i przykro mi)

Cztery tygodnie później wylądowałem sobie pracę w firmie o nazwie Tracesmart w Cardiff Bay jako PHP Developer. Po przejściu badań i wywiadów zacząłem cały stos entuzjazmu (jak można sobie wyobrazić, co było trochę mało na jakiś czas). Tracesmart wykonać osób poszukujących, ludzi wykrywania, przetwarzania danych wyborczych roll, z udziałem wielkiej ilości danych. Byłem tam już za ok. 5 miesięcy (biorąc pod uwagę, że jestem rzeczywiście pisania tego w marcu 2009) i kocham to co minutę. Jestem pchanie się na co dzień, mają wielkie środowisku pracy (moim biurku z widokiem na zatokę!), Dobrych kolegów! Byłem zaangażowany w kilka dobrych projektów (innych stanowisk do naśladowania) i jestem naprawdę dumny z pracy robię tam.

2009 ....

Pomimo rozpoczęcia 2009 w Niemczech cierpiała z powodu wirusa Novo 2009 jest wielki do tej pory. Megan i Spenta czasie New Years w Niemczech i Amsterdamie. Amsterdam jest piękne i Dom Anny Frank miał prawdziwy ogromny wpływ na mnie, gdzieś pewno będziemy powrotu. Trwają prace naprawdę dobrze. Moja szyja jest coraz lepiej więc za kilka tygodni będę udać się do tych pierwszych kilku działa strasznie po raz kolejny. Jedyne, co naprawdę muszę to dobre kilka nurkowań (lub wakacje nurkowania), żeby wrócić do swing rzeczy!

php.ini niestandardowe z Plesk

W Steven Lloyd Watkin , środa 13 sierpnia 2008 15:53

Mamy serwer dedykowany z redakcji! Â, na których prowadzimy szereg dziedzin , które istnieją na wirtualne serwery działające pod Plesk . W każdym razie, w większości z moich domen chcę ukryć ostrzeżenia i błędy bezpieczeństwa zachować do plików dziennika, jednak na niektórych z moich domen (takich jak jestem rozwijających się) Chcę pokazać, co trochę paskudny ostrzegania i błędów wydaje.

Jeśli mogę edytować PHP . INI "php.ini> To ma wpływ na każdego domeny na serwerze, a nie dobry pomysł zwłaszcza gdy kilku z tych witryn jest w pełni żyć wersji Tak, aby obejść ten należy umieścić plik o nazwie vhosts.conf w katalogu conf, na przykład /var/www/vhosts/<my_domain>/conf/vhost.conf .

Po dodaniu dodatkowego kodu, na przykład I znowu tym

 php_value error_reporting E_ALL php_value display_errors On 

następnie uruchamiając następujące polecenie (to rekonfigurację wszystkich dziedzinach jej tylko szybciej bardziej leniwi niż wpisując nazwę domeny ,

 # /usr/local/psa/admin/bin/websrvmng -a 

Jeśli czujesz się nieco zwinny, to możesz zawsze wpisać się w pełnej wersji, która jest,

 # /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=<my_domain> 

Po tej komendy, jeśli spojrzeć na httpd.include plik, zobaczysz, że Twój httpd.include będzie zawierać linię dla vhost.conf, coś takiego:

 Include /srv/www/vhosts/domain.com/conf/vhost.conf 

Bolometr Theory

W Steven Lloyd Watkin , czwartek 21 czerwca 2007 13:18

Miałem mnóstwo e-maili (także około 5 $) z prośbą o wprowadzenie do teorii bolometr strony Miałem się na stronie. Więc to jest tak jak wcześniej, ale niektóre z linków do innych bitów części starego usunięte stronie:)

Wstęp do teorii bolometr













Panorama tematu przez Themocracy

5 użytkowników online
3 osób, 2 boty, 0 użytkowników
Max odwiedzających dziś: 14 na 12:11 UTC
W tym miesiącu: 26 z 05.7.2011 00:35 UTC
W tym roku: 130 w 28-03-2011 22:40 UTC
Cały czas: 130 w 28-03-2011 22:40 UTC