Categorie: General

PHP Design Patterns - model Observer

De Lloyd Watkin Steven , marţi 29 decembrie 2009 22:02

Am fost de lectură Şeful Prima Design Modele recent, şi au decis să scrie unele dintre modele ca exemple PHP pentru propriul meu interes. Primul care l-am decis să cod up este model Observer . Definiţia formală a Pattern Observer este:

Modelul observator (un subset al asincron publica / abonaţi model ) este un software de design model în care un obiect , numit subiectul, păstrează o listă cu persoanele aflate în întreţinerea acestuia, numite observatori, şi le anunţă în mod automat de orice modificări de stat, de obicei, prin apel la una dintre lor metode . Este folosită în principal pentru punerea în aplicare a sistemelor distribuite eveniment de manipulare.

Pe măsură ce sistemele devin mai slab cuplate asigurându-vă că atunci când un eveniment se intampla tuturor sistemelor care necesită cunoştinţe de aceste actualizări sunt informate. De exemplu, un post de blog, după salvarea unui post am putea avea nevoie pentru a actualiza un motor de căutare (de exemplu Lucene), actualizare sitemap noastre, tag-uri, utilizatorii de e-mail subscris, etc model observator permite dezvoltatorilor să adauge ascultători suplimentare fără obiect editarea lor observabile . Prin injectarea de observatori (de exemplu, o actualizare a unui motor de căutare observator, un generator de sitemap, etc) într-un subiect (de exemplu, sistem de blog-ul de editare post) ne putem permite să îşi îndeplinească toate actualizările necesare, fără nici o schimbare.

Continuaţi lectură "PHP Design Patterns - Observer Pattern" »

Office Grid Computing folosind medii virtuale - Partea 3

Prin Watkin Lloyd Steven , vineri 04 decembrie 2009 23:37

Introducere

Lucrez într-o companie unde vom rula lot multe locuri de muncă prelucrarea milioane de înregistrări de date în fiecare zi şi m-am gândit recent la toate maşinile care stau in fiecare zi nu face nimic pentru mai multe ore. Nu ar fi bine dacă am putea folosi aceste maşini să consolideze puterea de procesare a sistemelor noastre? În acest set de articole am de gând să se uite la beneficiile potenţiale ale angajarea unui birou grilă utilizând medii virtualizate.

În partea a 2- am uitat la un server de locuri de muncă va rula, şi cum de locuri de muncă ar trebui să fie configurat pentru a realiza cea mai mare cantitate de prelucrare în acelaşi timp asigurându-se că fiecare loc de muncă este procesat fără a eşua.

Configurarea lucrător dumneavoastră - sau server Limp

Următorul pas în procesul este de a configura muncitorii virtual. Pentru acest lucru am de gând să utilizeze o instalare a CentOS folosind VirtualBox. Am de gând să instaleze MySQL şi PHP pe server, de asemenea, cunoscut ca un Limp (Li vomica, m ySQL, P HP) Server (poate am făcut ca numele sus).

  • Instala VirtualBox pe maşinii dvs. cu Windows (urmaţi link)
  • Descărcaţi şi instalaţi CentOS (versiunea curenta 5.3) într-o maşină virtuală creată

Nu există nici un punct de gând să-mi acest acolo, probabil e 1.000 de tutoriale mare acolo (ok, aici e unul: Crearea şi Managing maşină virtuală CentOS sub virtualbox ). Punct important de notat este faptul că Cred că i-am sunat virtual GridMachine masina mea.

În ceea ce priveşte opţiunile mele de client virtualizare şi sistemul de operare merge nu există nici un motiv de mare convingător pentru fiecare alegere. VirtualBox este ceva Eu folosesc pe maşina de casa mea şi este susţinută de cele trei sisteme de operare majore. Am ales ca CentOS sale un sistem de operare stabil si bun sa-l folosesc pe serverul de web. Eu sunt un mare credincios în instrumentele potrivite pentru locul de muncă (deşi eu sunt aplicabile "utilizarea mai rapid şi mai uşor pentru tine" mentalitatea aici), aşa că, dacă sistemul de operare X ruleaza cod mai repede şi mai eficient utilizarea că, în loc:)

Important, asiguraţi-vă că VM dvs. utilizează DHCP, altfel pentru fiecare noua maşină virtuală ar trebui să fie configurat separat, care este ceva ce noi nu face folosind want.By DHCP nu avem nevoie pentru a configura setările de reţea individual pentru maşini de lucrător, DHCP va înmâna la IP-uri pentru tine. Prin urmare, puteţi copia maşina virtuală despre biroul fără a se preocupa de stabilire fiecare up (acest îmbunătăţeşte scalabilitatea şi reduce administrare lucrător).

Procesul ar trebui să vizeze obţinerea ar fi pentru a obţine o nouă maşină fizică, instala VirtualBox, şi apoi destul de mult de mobilizare a imagine virtuală, fără nimic altceva. Ar putea fi înţelept să setup toate lucrătorii pe o altă subreţea astfel încât să puteţi cel puţin vedea cât de multe masini sunt difuzate. Veţi avea nevoie, de asemenea, pentru a configura masini pe un închiriere pe termen lung sau DHCP leasing nelimitat.

Cum de a rula locuri de muncă pe lucrător

Acesta este un domeniu interesant şi există mai multe metode de locuri de muncă valabile pentru prelucrare pe muncitor. Aici voi discuta doar doua dintre cele mai evidente:

  • rularea script mereu: Un scenariu, fie el un script de shell, sau un script PHP este executat o singură dată pe muncitor si ruleaza ca parte dintr-o buclă infinită. Am actualizat această metodă ca fiind unul accident de script-ul şi potenţial muncitorii dvs. va înceta să ruleze fără un fel de intervenţie.
  • executarea Cron script bazat: la fiecare X minute daemon cron începe un apel la script-ul dvs. pentru a obţine lucrurile sa mearga. Fără unele verificarea acest lucru ar putea duce la mai multe copii multe dintre script-lucrător pe care rulează.

Decizia mea a fost să meargă cu cron, care incepe un script de shell la fiecare 10 minutes. shell script-ul meu îndeplineşte următoarele atribuţii:

  1. Obţine o listă şi grep acest proces pentru "php". În cazul în care nu a fost găsit apoi se continuă.
  2. Apel codul de locuri de muncă, în cazul meu, acest lucru ar fi ceva PHP bazate pe
  3. script de munca completeaza rula sale
  4. Gata să meargă din nou la apel corespunzătoare următoarea

bash script-ul meu arata ceva de genul următor:

  #! / Bin / sh
 dacă topor ps | grep-v grep |> grep php / dev / null
 apoi
     echo "de locuri de muncă este în prezent de procesare, ieşire"
 altfel
     echo "Iov nu se execută, începe acum"
     php yourJobProcessingScript.php
 Fi 

Nota: ecou sunt aproape complet inutil, dar poate ajuta la următoarea persoană care vine de-a lungul pentru a încerca şi să le editaţi.

Concluzionează că înfiinţarea de maşină virtuală lucrătorului, rapid, simplu şi uşor de a copia la fiecare nouă piesă de hardware, care este primit. "Inteligenţa" a sistemului de reţea într-adevăr nu este vizualizat în sistemul de operare, de-a face cu codul creat pentru a procesului de locuri de muncă, de configurare de locuri de muncă, şi în asigurându-se că locul de muncă se execută atunci când este cazul (adică atunci când gazda este inactiv ).

Configurarea Windows pentru a iniţializa Lucrătorii

Prima sarcină este de a lucra la comanda, necesare pentru funcţionarea maşinii virtuale din linia de comandă Windows. Dacă aţi instalat VirtualBox în locaţia implicită şi aţi numit lucrător GridMachine dvs., atunci comanda trebuie să încărcaţi până lucrător dumneavoastră este:

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

Cu toate acestea pentru a rula script-ul într-un "cap" de stat avem nevoie pentru a utiliza:

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

Aceasta va porni maşina virtuală, fără GUI şi lăsaţi-o pentru a salva de stat cu graţie. Al doilea argument se opreşte RDP aşa că nu intră în conflict cu ferestre RDP, sau vă dau un mesaj despre ascultare pe portul 3389. Numele maşinii virtuale este sensibil caz!

Apoi, va trebui să setaţi Windows până la a lovi cu piciorul off VM nostru lucrător de îndată ce aparatul a fost inactiv. Pentru a face acest lucru (pe Windows XP), veţi avea nevoie pentru a merge Start -> All Programs -> Accesorii -> System Tools -> Scheduled Tasks ca de mai jos:

sarcinilor planificate

faceţi clic pe Următorul pe "Add Scheduled Task", urmată de a căuta pentru a adăuga un program personalizat. Navigaţi la script-ul dvs. VBoxManage şi faceţi clic pe OK. Programul de activitate pentru oricare dintre opţiunile (vom schimba această intr-un minut) şi a continua. După sărind peste ferestrele urmatorul ecran vă va întreba cine doriţi să executaţi această sarcină, aş sugera fie "administrator" sau de a crea un nou utilizator privilegiat. Amintiţi-vă noi nu vrem să se amestece cu personalul cont standard pe masina de la orice punct. Faceţi clic pe opţiunile următoare şi verificaţi arată avansate pentru această sarcină.

La sfârşitul casuta alerga adăuga şir "GridMachine startvm" noastre şi să se asigure că rula numai atunci când este conectat în stânga unticked. Vizitaţi sarcina programul următor şi de a schimba programul drop jos la opţiunea "atunci când idle", alege suma de timp doriţi ca aparatul să fie inactiv înainte de a trece la următoarea filă.

Pînă la urmă opţiunea care prevede opri activitatea dacă a fost difuzate suma X de timp, dar nu bifaţi opţiunea de a opri sarcina în cazul în care maşina nu mai este inactiv.

program

Asta e, atunci pentru configurare gazdă ferestrele!

Rezumatul

În această parte ne-am înfiinţat-o maşină virtuală să acţioneze ca un lucrător, precum şi modul în care noi o numim si executa script-urile noastre de locuri de muncă de prelucrare (pentru mine un script PHP). De aici ne uităm la cum să înfiinţeze copii noastre de Windows pentru a porni maşina virtuală în modul de cap atunci când calculatorul devine inactiv, şi de a salva starea sa atunci când utilizatorul reia de utilizare a maşinii. Sperăm că în acest moment vedeţi cât de simplu este de a înfiinţa un astfel de sistem şi sunt mâncărime pentru a obţine unele experimente tine merge!

Următorul timp

În partea 4 , vom fi uitat la utilizarea instrumentelor pentru a se asigura că rulaţi cea mai recentă versiune a datelor şi sursele de cod, astfel încât rezultatele obţinute sunt intotdeauna la curent cu cele mai recente informaţii de afaceri şi de logică.

Marea Britanie Numele Director şi aplicaţia Facebook

Prin Watkin Lloyd Steven , 10 aprilie 2009 Vineri 09:33

Unul dintre lucruri amuzante am fost implicat în acelaşi timp de lucru pentru Tracesmart este directorul nume . Practic am luat baza noastra de date informaţii imens si a scos un teanc mare de statistici cu privire la diferite nume.

Procesul este tot un efort SEO mare în scopul de a atrage mai mult trafic pentru site-ul, dar oferă de asemenea, unele informaţii interesante şi statistici nume.

Iată un exemplu pentru numele meu Lloyd Watkin , sau cred că mai corect Steven Watkin . Ia un minut pentru a căuta numele tau pe site-ul Tracesmart, ar putea fi interesant;)

Avem, de asemenea, statistici nume date pe directorul numele paginii pe care vă spune ce nume au fost percheziţionate şi cât de recent. Sale destul de interesant pentru a vedea nume de persoane celebre de a zbura sus statistici atunci când acestea apar în ştiri. Un exemplu recent este cel al Liam Neeson , care sotia lui a murit dintr-un accident de schi recent, deşi, evident, oamenii nu sunt destul de dreapta pe ortografie (prin urmare, numărul imens de hit-uri de pe acest nume) - Liam Nilson .

Facebook Application

După ce directorul numele a fost creat ne-am propus crearea despre o aplicaţie facebook pe care am duely numit " My Name ". Cererea facebook este o extensie de nume de director şi oferă unele statistici suplimentare. Pentru a adăuga directorul de nume de la contul dvs. facebook vă rugăm să vizitaţi:

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

Flickr şi Yahoo: Login Detalii uitat

De Lloyd Watkin Steven , joi, 02 aprilie 2009 07:31

Acum câteva luni mi-am schimbat parola mea Flickr, astfel încât un prieten ar putea încărca unele fotografii la ea. Un cuplu de luni mai târziu, mi se pare că am uitat parola şi încercaţi să vă amintiţi toate detaliile meu secret de la Yahoo este doar un coşmar. Am avut adresa mea de e-mail Yahoo pentru mai mulţi ani şi nu am fost sigur că atunci când sau în cazul în care (am fost de viaţă), atunci când am semnat - oh doar pentru a face acest lucru mai clar Flickr foloseste Yahoo sistem de login:)

Yahoo s-au nici un ajutor, fie, ei au vrut detalii exacte şi ar respinge orice lucru care nu se potrivesc. Plus eu nu i sa permis să furnizeze o listă de detalii posibile de potrivire a trebuit sa fie dreapta pe fiecare detaliu altfel ar fi respins. Pot să înţeleg de securitate, dar aceasta a fost obtinerea o durere în fund, mai ales ca am putut prelua numele meu de utilizator la adresa mea de e-mail de obicei fără probleme (de ce nu ai putut trimite o resetare acolo !?!?!). La început de toate acestea ei au vrut detaliile trimise la birourile lor în California, fie prin e-mail sau fax, boo!

Pas înapoi pentru a Flickr, care trimite un e-mail cu amabilitate la adresa mea de e-mail înregistrată mi cere să detaşa contul meu Yahoo! din contul meu Flickr. Ura am putea semna apoi în sus cu un cont Yahoo! nou şi a se ataşa contul meu de Flickr pentru acest nou login.

După o aşteptare de cel puţin o săptămână de fiecare dată pentru Yahoo a primit acest răspuns Flickr toate sortate în termen de 2-3 ore!

Bine făcut Flickr, din fericire esti acolo cauta dupa clienţii dvs.:)

Acum, pentru plictiseală tuturor aici e încă un alt link la contul meu de Flickr

Inspirat ... şi guilted!

Prin Watkin Lloyd Steven , miercuri 11 martie 2009 20:51

Am înfiinţat de curând un blog pentru unul dintre baieti in munca - Matei Hopkins - şi de a vedea câteva mesaje primul său a făcut să mă gândesc că poate că ar trebui să adăugaţi câteva posturi ca sa fost un timp bun şi o mulţime de sa întâmplat în 2008. Un alt unul dintre baieti in munca are el însuşi un blog pentru, bun vechi Stephen Griffiths, astfel încât să ia o privire acolo.

Aşa că am de gând să plod pe şi se adaugă câteva posturi retrospectiv despre ceea ce 2008 a avut loc pentru mine şi modul în care 2009 este conturarea sus:)

2008 WTF?!?

Prin Watkin Lloyd Steven , joi o ianuarie 2009 12:00

2008 a fost un an ciudat vechi, există mai multe lucruri am bucurat cu adevărat despre el, Â şi există unele lucruri pe care acum au fost uitate si sa mutat pe cu ....

Scufundare

Eu nu am făcut mult în modul de scuba diving cred ca am reusit in jurul aproximativ 10 scufundari pe tot parcursul anului. Una dintre aceste se scufundă a fost scuba Santas eveniment la Vobster Quay, care a fost mai mult succes decât cele mai nebuneşti vise mele. În final am ridicat peste o 1000 de lire sterline pentru RNLI , a primit de acoperire pe BBC şi ITV, şi a avut aproximativ 80 de scafandri în apă. Vobster a fost o mare de Santas scuba diving pentru a doua zi! Eu chiar sper să mă fac mai mult scufundări în 2009, (mult mai multe!) Noţiuni de bază înapoi în ea va implica o mulţime de formare profesională pentru a obţine confortabil din nou. Mi-e dor de zile de la obţinerea pe barca, soarele strălucind în jos, hapsân un homar, ambalare  upa şi poziţia acasă pentru câteva beri.

Funcţionare

La sfârşitul lunii ianuarie 2008 am fost implicat într-un accident de masina, a lovit din spate în timp ce sa oprit, nimic major sau aşa am crezut. Peste câteva luni durerea mea sa gât progresiv, mai rău oprire mă de rulare. În final, am contactat un accident companie care susţine inceput sa-mi tratament cu un chiropractician în Cardiff care eu sunt încă participă (martie 2009 - cererea încă nu este soluţionat fie). Rularea este un alt unul din acele lucruri vreau să mă întorc la, am început cu Miles , dar între boli, leziuni, şi-l în cele din urmă se deplasează la Cambridge am luat doar o mână de ori. Chiar am nevoie de o lovitură bună de până vagabond să plec din nou, deşi singura mea consolare este că am fost cu bicicleta înapoi şi înainte de a lucra pentru luni, care este de a face-mi ceva bun.

Mutat

În iulie 2008, m-am mutat într-un apartament cu Megan, suntem obtinerea prin pictură şi decorare si obtinerea-l caută într-adevăr la Niceea -. Deşi suntem un fel de tragere tocuri noastre cu pictura ... încă. Apartamentul este în Adamsdown în Cardiff (I niciodată nu par să se deplaseze în prezent) şi este stofă ne doar mare.

Locul de muncă

Munca a fost peste tot în 2008, am pornit la drum deriva un pic înainte de a lua locul de muncă până la un agent de închiriere ca manager. Acest lucru a ajutat cu nici un sfarsit imobiliare şi închirierea software-ul agenţiei că am fost în curs de dezvoltare. Planul meu pentru agenţii imobiliare şi software-ul închiriere este de a se elibera ca un produs low-cost atunci când am timp mai mult să-l clar sus. Din ceea ce am spus despre produse concurente de pe piaţă, este mai uşor de folosit şi îndeplineşte multe sau mai multe dintre aceleaşi funcţii într-un mod mai bun:)

În timpul aprilie 2008 vine la ziua mea de nastere 22 atât Megan şi mama mea a inceput sa presiuni pentru mine de a "obţine o carieră", ceea ce o idee greu de înghiţit a fost cu adevărat ceea ce am nevoie. Rularea firma mea a fost distractiv, dar nu a oferit stabilitatea necesară şi câştiga un salariu de la agenţia de închirierea obiectivul nu a fost o cariera pe termen lung. A fost întotdeauna un caz de aşteptaţi până când am terminat obţine software-ul meu şi voi începe să-l vând, dar timpul a fost mereu împotriva mea.

Ce a urmat a fost o serie de interviuri cu unele companii mari, în unele zone mari, plin de promisiunea de a trece la un nou domeniu, nou început părea mare. Cea mai buna oferta de locuri de muncă a fost cu un furnizor mare de găzduire în zona Vatra Dornei şi părea ideal. Deci, ce sa întâmplat? Ei bine, am dezvoltat o soluţie online SMS înapoi în jurul de Crăciun, care a fost şedinţei în jurul nu face mult care investitorii au fost găsite pentru. Excelent m-am gândit şi în afara ne-am dus. Toate nu sa sfârşit bine şi după mai multe luni de promisiuni sparte şi creşterea nivelului de stres am făcut un stand şi a ieşit. De lucru 60 de ore pe săptămână, venind acasă şi de a face un alt 3-4 ore de lucru, plus toate week-end şi pentru toate stres a fost unul dintre cele mai bune decizii le-am făcut vreodată. (Aici aş dori să mulţumesc Megan, părinţii mei, şi prietenii mei, care stătea de mine, am fost o pula, stres capete uneori, şi îmi pare rău)

Patru săptămâni mai târziu, am aterizat eu un loc de muncă cu o companie numita Tracesmart în Cardiff Bay ca un PHP Developer. După trecerea testelor şi interviuri am inceput cu o gramada de entuziasm (cum vă puteţi imagina lucrurile au fost un pic mai scăzute pentru cândva). Tracesmart efectua căutarea oameni, oameni urmărirea, electoral rola de manipulare a datelor, care implică cantităţi uriaşe de date. Am fost acolo acum pentru aproximativ 5 luni (dat am scris de fapt acest lucru în martie 2009) şi iubesc fiecare minut din ea. Sunt împingându-mă în fiecare zi, au un mediu de mare de lucru (biroul meu are vedere spre golful!), Colegii bun! Am fost implicat în unele proiecte bune (alte posturi să urmeze), si eu sunt foarte mândru de munca fac acolo.

2009 ....

În ciuda incepand cu 2009, în Germania, care suferă de virusul Novo 2009 este mare până acum. Megan şi am spent timp Anul Nou în Germania şi Amsterdam. Amsterdam este frumoasa si casa Anne Frank a avut un real efect profund asupra mea, undeva vom fi cu siguranta se întorc la. Munca este merge foarte bine. gâtul meu este tot mai bine şi mai bine, astfel în câteva săptămâni de timp voi capul afară pentru cele ruleaza primele câteva groaznic din nou. Singurul lucru pe care I într-adevăr nevoie acum este un bun DIVES câteva (sau o zi de sărbătoare se arunca cu capul) pentru a obţine înapoi în leagăn de lucruri!

php.ini Custom cu Plesk

Prin Watkin Lloyd Steven , miercuri 13 august 2008 15:53

Avem un server dedicat cu ukFast  pe care le executa o serie de domenii care exista pe servere virtuale care rulează sub Plesk . Oricum, pe cele mai multe dintre domeniile mele vreau să ascund departe avertismente şi pentru securitate menţine erori la fişierele jurnal, toate acestea, pe unele dintre domeniile mele (cum ar fi cele eu sunt în curs de dezvoltare pe) vreau sa arate fiecare mic avertisment urât şi de eroare care apare.

Dacă editez PHP ". INI php.ini> acest fapt afectează fiecare domeniu de pe server, nu, o idee bună în special atunci când mai multe site-uri sunt pe deplin versiunile live  Deci, în scopul de a obţine în jurul acestui aveţi nevoie pentru a pune un fisier numit vhosts.conf în directorul conf dumneavoastră, de exemplu, /var/www/vhosts/<my_domain>/conf/vhost.conf .

După ce aţi adăugat codul suplimentar, din nou, de exemplu am inclus,

 php_value error_reporting E_ALL php_value display_errors On 

urmată de rularea următoarea comandă (acest reconfigureaza toate domeniile dvs. trebuie doar sa mai repede lazier decât să tastaţi în numele de domeniu ,

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

Dacă vă simţiţi un pic agile atunci puteţi întotdeauna tastaţi în versiunea completă, care este,

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

După această comandă dacă te uiţi la httpd.include fişier, vor vedea că httpd.include dvs. va avea o linie include vhost.conf pentru dvs., ceva de genul asta:

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

Bolometer Teoria

De Lloyd Watkin Steven , joi douăzeci şi unu iunie 2007 01:18

Am avut de tone de e-mailuri (bine de aproximativ 5: $) solicitarea cu privire la introducerea pagina de "teoria bolometer" I folosit pentru a avea pe site-ul. Deci, aici este la fel ca înainte, dar cu unele dintre link-uri către alte biţi a unor părţi din site-ul vechi scos:)

Introducere în teoria bolometer













Panorama Tematica de Themocracy

4 vizitatori acum online
2 vizitatori, 2 impotriva, 0 membrii
Max vizitatori azi: 12 la 09:44 UTC
În această lună: 26 la 07-05-2011 12:35 UTC
În acest an: 130 la 28-03-2011 22:40 UTC
Tot timpul: 130 la 28-03-2011 10:40 UTC