Kategori: General

PHP Design Patterns - Observer Pattern

Ved Steven Lloyd Watkin , tirsdag 29 december 2009 22:02

Jeg har læst Head First Design Patterns for nylig og har besluttet at skrive nogle af de mønstre som PHP eksempler for min egen fordel. Den første, som jeg har besluttet at kode op, er det Observer Pattern . Den formelle definition af Observer Pattern er:

Observatøren mønster (en delmængde af den asynkrone offentliggøre / abonnere mønster ) er en software design mønster , hvor en genstand , der kaldes emnet, vedligeholder en liste over sine pårørende, kaldet observatører, og meddeler dem automatisk i nogen stat ændringer, som regel ved at kalde en af deres metoder . Det er hovedsageligt bruges til at implementere distribuerede begivenhed håndteringssystemer.

Som bliver systemerne mere løst koblet at sikre, at når en begivenhed der sker alle systemer, der kræver viden om disse opdateringer er informeret. For eksempel, et blog-indlæg efter at spare en stilling vi kan have behov for at opdatere en søgemaskine (fx Lucene), opdatere vores sitemap, tags, e-mail tegnede brugere osv. Observatøren mønster giver udviklere mulighed for at tilføje yderligere lyttere uden at redigere deres observerbare objekt . Ved at injicere observatører (dvs. en søgemaskine opdatering observatør, en sitemap generator, osv.) i et fag (dvs. blog-indlæg redigeringssystem) kan vi give det til at udføre alle de nødvendige opdateringer uden ændringer.

Fortsæt læsning 'PHP Design Patterns - Observer Pattern' »

Office Grid Computing bruger virtuelle miljøer - Del 3

Ved Steven Lloyd Watkin , fredag ​​4 dec 2009 23:37

Indledning

Jeg arbejder i en virksomhed, hvor vi kører mange batch jobs behandling millioner af optegnelser af data hver dag, og jeg har tænkt for nylig om alle de maskiner, der sidder rundt om hver eneste dag at gøre noget i flere timer. Ville det ikke være godt, hvis vi kunne bruge disse maskiner til at styrke den regnekraft af vores systemer? I denne række artikler, jeg har tænkt mig at kigge på de potentielle fordele ved at ansætte en kontor nettet ved hjælp af virtualiserede miljøer.

I del 2 har vi kigget på de arbejdspladser, en server vil køre, og hvordan arbejdspladser skal konfigureres for at opnå størst mulig behandling og samtidig sikre, at hver opgave er behandlet uden fejl.

Opsætning af din arbejdstager - eller Limp server

Det næste skridt i processen er at oprette din virtuelle medarbejdere. Det vil jeg tænkt mig at bruge en installation af CentOS bruge VirtualBox. Jeg har tænkt mig at installere mySQL og PHP på serveren, også kendt som en halte (Li nux, m ySQL, P HP) Servera (jeg kan have gjort dette navn op).

  • Installer VirtualBox på din Windows-maskine (følg link)
  • Hent og installer CentOS (nuværende version 5.3) inden for en skabt virtuel maskine

Der er ingen punkt mig at gå til dette er der nok 1.000 's store tutorials derude (ok, her er en: Oprettelse og Managing CentOS virtuel maskine under VirtualBox ). Det vigtige punkt at bemærke jeg formoder er, at jeg ringede til min virtuelle maskine GridMachine.

For så vidt angår mit valg af virtualisering klient og operativsystem gå der er ingen store tvingende grund for hvert valg. VirtualBox er noget jeg bruger på mit hjem maskine og er støttet af de tre store operativsystemer. Jeg valgte CentOS som er en god stabil OS og jeg bruger det på min egen webserver. Jeg er en stor tilhænger af de rigtige værktøjer til opgaven (selvom jeg anvender brug den hurtigste og nemmeste for dig "-mentalitet her), så hvis styresystemet X kører din kode hurtigere og mere effektivt at bruge det i stedet:)

Vigtigere at sikre, at din VM bruger DHCP, ellers for hver ny virtuel maskine skulle være konfigureret separat, hvilket er noget vi ikke want.By bruger DHCP vi behøver ikke at konfigurere netværksindstillinger individuelt for arbejdstager-maskiner, vil DHCP hånd ud IP'er for dig. Derfor kan du kopiere din virtuelle maskine omkring kontoret uden at bekymre sig om opsætning hver en op (det forbedrer skalerbarhed og reducerer arbejdstager administration).

Den proces, du bør sigte mod at opnå ville være at få en ny fysisk maskine, installere VirtualBox, og derefter stort set installere det virtuelle billede uden meget andet. Det kan være klogt at sætte alle dine medarbejdere på et andet subnet, så du kan i det mindste se, hvor mange maskiner der kører. Du skal også oprette dine maskiner på en lang lejekontrakt eller ubegrænset leje DHCP.

Sådan køres Jobs på arbejdstagerens

Dette er en interessant område, og der er flere gyldige metoder til behandling job på arbejdstager. Her vil jeg blot diskutere de to mest oplagte:

  • Bestandigt at køre script: Et script, det være sig et shell script, eller et PHP script der udføres én gang på arbejdstageren og kører som en del af en uendelig løkke. Jeg har tilbagediskonterede denne metode som et brag af manuskriptet og potentielt dine medarbejdere vil ophøre med at køre uden en form for intervention.
  • Cron baseret script udførelse: Hvert X minutter cron dæmonen starter et opkald til dit script til at få tingene i gang. Uden nogle at markere dette kan føre til mange mange kopier af din arbejdstager script kører.

Min beslutning var at gå med cron, som skydes i gang en shell script hver 10 minutes. Min shell script udfører følgende opgaver:

  1. Få en proces liste og grep dette for 'php'. Hvis ikke fundet derefter fortsætte.
  2. Ring til dit job kode, i mit tilfælde ville det være noget PHP baseret
  3. Arbejdstager script afslutter sin køre
  4. Klar til at gå igen på næste indkaldelsens

Min bash script ser ud som følgende:

  #! / Bin / sh
 hvis ps ax | grep-v grep | grep php> / dev / null
 Derefter
     echo "Job i øjeblikket behandling, frakørsel"
 andet
     echo "Job er ikke kører, skal du starte nu"
     php yourJobProcessingScript.php
 fi 

Bemærk: ekko's er næsten helt meningsløst, men kan hjælpe den næste person, der kommer sammen for at prøve og redigere dem.

, Der konkluderer oprettelsen af ​​arbejdstagerens virtuelle maskine, hurtig, enkel og let at kopiere til hver ny stykke hardware, der er modtaget. Den »Klogskab« af forsyningsnettet er virkelig ikke i visualiseret OS, dens al at gøre med den kode skabt til at behandle job, jobbet konfiguration, og i at sikre, at opgaven skal udføres når det er hensigtsmæssigt (dvs. når værten er ledig ).

Opsætning af Windows til Initialiser Workers

Den første opgave er at arbejde ud kommandoen til at køre den virtuelle maskine fra vinduerne kommandolinjen. Hvis du har installeret VirtualBox på standardplaceringen, og du har navngivet din arbejdstager GridMachine derefter kommandoen kræves for at indlæse dine arbejdstager er:

  "C: \ Programmer \ sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Men at køre scriptet i en »hovedløs 'state vi nødt til at bruge:

  "C: \ Programmer \ sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Dette vil starte den virtuelle maskine uden GUI og lad det spare staten elegant. Det andet argument slukker RDP, så det ikke er i konflikt med vinduer RDP, eller give dig en besked om at lytte på port 3389. Den virtuelle maskine navn er store og små bogstaver!

Derefter skal vi nødt til at indstille vinduer på op til kick off vores arbejdstager VM, når maskinen er inaktiv. At gøre dette (på Windows XP), du bliver nødt til at gå på Start -> Alle Programmer -> Tilbehør -> Systemværktøjer -> Planlagte Opgaver som nedenfor:

planlagte opgaver

Klik derefter på 'Tilføj Scheduled Task "efterfulgt af gennemse for at tilføje en brugerdefineret program. Naviger til din VBoxManage script og klik ok. Planlæg din opgave for enhver af de muligheder (vi vil ændre dette i et minut) og fortsætter. Efter at have sprunget det næste skærmbillede vinduerne vil spørge dig, hvem du vil køre denne opgave, vil jeg foreslå enten 'Administrator' eller oprette en ny bruger med rettigheder. Husk at vi ikke ønsker at blande med den standard personale konto på maskinen på noget tidspunkt. Klik på Næste og kontrol viser, avancerede indstillinger for denne opgave.

Til slutningen af tiden tekstfeltet tilføje vores "startvm GridMachine 'streng og sikre, at der kun kører, når logget ind er tilbage markering. Besøg tidsplanen opgaven næste og ændre tidsplanen drop ned til muligheden ", når inaktiv ', vælge den mængde tid, du gerne vil have maskinen til at være ledig, før man går videre til den næste fane.

Endelig jasket den mulighed, der hedder stoppe opgave, hvis det har kørt X mængde tid, men sætter kryds mulighed for at stoppe den opgave, hvis maskinen ikke længere er ledig.

tidsplan

Det var det så for Windows host setup!

Resumé

I denne del har vi oprettet en virtuel maskine til at fungere som en arbejdstager, samt den måde, som vi kalder og udføre vores job forarbejdning scripts (for mig selv et PHP script). Herfra kan vi se på, hvordan man opsætter vores kopier af Windows til at starte op den virtuelle maskine i hovedløs tilstand, når computeren bliver ledig, og gemme sin tilstand, når brugeren genoptager brugen af ​​maskinen. Forhåbentlig på dette punkt, du ser, hvor nemt det er at oprette et sådant system og er kløe at få nogle eksperimenter i gang selv!

Næste gang

I del 4 vil vi se på brugen af værktøjer til at sikre, at du kører den seneste version af kode og data-kilder, således at opnåede resultater er altid up-to-date med de nyeste forretningsoplysninger og logik.

UK Navne Directory og Facebook Application

Ved Steven Lloyd Watkin , April 10, 2009 09:33 Fredag

En af de sjove ting, jeg har været involveret i, mens de arbejder for Tracesmart er navne biblioteket . Dybest vi tog vores store informationsdatabase og trak en stor bunke statistik om forskellige navne.

Processen er alle en stor SEO indsats for at trække mere trafik til webstedet, men det giver også nogle interessante oplysninger og navn statistikker.

Her er et eksempel for mit navn Lloyd Watkin , eller jeg formoder mere korrekt Steven Watkin . Tag et minut til at kigge op dit navn på Tracesmart stedet, kunne være interessant;)

Vi har også fået navne statistiske data på navnene biblioteket side, som fortæller dig, hvilke navne er blevet undersøgt og hvordan nylig. Dens ganske interessant at se kendte folks navne flyve op i statistikken, når de optræder i nyhederne. Et nyligt eksempel er, at Liam Neeson , der kone døde af et uheld på ski for nylig, selv om det naturligvis folk ikke er helt lige på stavning (derfor det store antal af hits på dette navn) - Liam Nilson .

Facebook Application

Når de navne bibliotek blev oprettet vi i gang med at skabe en Facebook applikation som vi duely navnet ' My Name '. Den Facebook applikation er en udvidelse af navne biblioteket og giver nogle yderligere statistikker. For at tilføje navnene mappe til din Facebook-konto kan du besøge:

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

Flickr og Yahoo: Glemt login-oplysninger

Ved Steven Lloyd Watkin , torsdag 2 April 2009 19:31

For et par måneder siden jeg har ændret min Flickr adgangskode, så en ven kan uploade nogle billeder til den. Et par måneder senere blev jeg synes jeg har glemt, at password og prøver at huske alle mine hemmelige oplysninger fra Yahoo! er bare et mareridt. Jeg havde min Yahoo! e-mail-adresse i flere år, og jeg var ikke sikker på, hvornår eller hvor (jeg var levende), da jeg tilmeldte - åh bare for at gøre dette klarere Flickr bruger Yahoo! login system:)

Yahoo! var ingen hjælp at hente, de ville have præcise detaljer og ville afvise alt der ikke passer. Plus jeg fik ikke lov til at give en liste over mulige matchende detaljer det måtte være rigtigt på alle detaljer ellers ville blive afvist. Jeg kan forstå sikkerhed, men dette var ved at blive en smerte i røven, især da jeg kunne hente mit brugernavn til min sædvanlige e-mail-adresse uden nogen problemer (hvorfor kunne du ikke sende en nulstilling der !?!?!). Oven i alt dette, de ønskede oplysninger sendes til deres kontorer i Californien, enten via mail eller fax, boo!

Træd tilbage til Flickr, som så venlig at sende en mail til min email adresse bede mig om at frigøre min Yahoo! konto fra min Flickr-konto. Hurra Jeg kunne derefter tilmelde dig med en ny Yahoo! konto og vedhæfte min Flickr-konto til denne nye login.

Efter at have ventet i mindst en uge ad gangen Yahoo! til at svare Flickr fik alt dette sorteret inden for 2-3 timer!

Godt klaret Flickr, heldigvis er du derude på udkig efter dine kunder:)

Nu til alles kedsomhed her er endnu et link til min Flickr-konto

Inspireret ... og guilted!

Ved Steven Lloyd Watkin , onsdag 11 marts 2009 20:51

Jeg har for nylig oprettet en blog for en af de fyre i arbejde - Matthew Hopkins - og se hans første par indlæg har gjort mig til at tænke, at jeg måske skulle tilføje et par indlæg som sin været en god stykke tid og masser, der er sket i løbet af 2008. En anden af fyrene i arbejde ikke selv en blog til, gode gamle Stephen Griffiths så tag et kig der også.

Så jeg har tænkt mig at traske om og tilføje nogle retrospektive indlæg om hvad 2008 holdt for mig og hvordan 2009 er at forme sig:)

2008 WTF?!?

Ved Steven Lloyd Watkin , torsdag 1 januar, 2009 00:00

2008 var et mærkeligt gammelt år, er der flere ting, jeg virkelig nød over det, Â og der er nogle ting, som nu er blevet glemt og gik videre med ....

Dykning

Jeg har ikke gjort meget i vejen for dykning jeg tror det lykkedes mig rundt omkring 10 dyk hele året. En af disse dyk var scuba santas arrangementet på Vobster Quay, der var mere succesfuld end min vildeste drømme. I sidste ende har vi rejst over 1000 £ for RNLI , fik dækning på BBC og ITV, og havde omkring 80 dykkere i vandet. Vobster var et hav af dykning santas for dagen! Jeg håber virkelig jeg kommer til at gøre mere dykning i 2009 (mange flere!), At komme tilbage til det indebærer masser af træning at blive fortrolig igen. Jeg savner de dage at få på båden, sol straalende ned, greb en hummer, pakning UPA A og overskrift hjem for et par øl.

Løb

Ved udgangen af ​​januar 2008 var jeg involveret i en bilulykke, ramt bagfra, mens stoppet, intet større eller så jeg tænkte. Over flere måneder min nakkesmerter fik gradvist værre stoppe mig kørende. I sidste ende kontaktede jeg en skadesager selskab, der begyndte at få mig behandling med en kiropraktor i Cardiff, hvor jeg stadig går (marts 2009 - kravet stadig ikke afgjort enten). Løb er en anden af de ting jeg ønsker at komme tilbage til, jeg gjorde begynde med Miles men mellem sygdomme, skader, og ham til sidst at flytte til Cambridge vi fik kun en håndfuld gange. Jeg har virkelig brug for en god kick op bum at komme i gang igen, selv om min ene trøst er, at jeg har været cykling tilbage og derfor til at arbejde i flere måneder, som gør mig nogle gode.

Flyttet

I juli 2008 flyttede jeg ind i en lejlighed med Megan, vi får gennem maleriet og udsmykning og få det ser rigtig Nicea -. Selv om vi er en slags trække vores hæle med maleriet ... stadig. Lejligheden er i Adamsdown i Cardiff (jeg synes aldrig at flytte langt) og er passer os bare fantastisk.

Arbejde

Arbejdet blev over det hele i 2008, jeg startede driver en lille, før du tager arbejde på en udlejning agent som manager. Det hjalp ikke med udgangen ejendom og udlejning agentur software , at jeg var under udvikling. Min plan for ejendom og udlejning agentur software er at frigøre det som en billig vare, når jeg har mere tid til at klare det op. Fra hvad jeg fortalte om konkurrerende produkter på markedet, er det nemmere at bruge og udfører mange eller flere af de samme funktioner på en bedre måde:)

I løbet af April 2008 kommer op til min 22 års fødselsdag både Megan og min mor begyndte at presse på for mig at 'få en karriere «, som en hård idé at sluge var virkelig, hvad jeg havde brug for. Kører min egen virksomhed var sjovt, men ikke give den nødvendige stabilitet og tjene en almisse på at lade agenturet var ikke lang sigt karriere mål. Det var altid et tilfælde af vente, indtil jeg får min software færdig, og jeg vil begynde at sælge det, men tiden var altid imod mig.

Hvad der fulgte var flere interviews med nogle store virksomheder i nogle store områder, fuld af løfter om at flytte til et nyt område, ny start syntes stor. Den bedste jobtilbud var med en stor udbyder i Worcester område og syntes ideel. Så hvad skete der? Godt jeg havde udviklet en online SMS-løsning tilbage omkring jul, at havde siddet omkring ikke gør meget, som investorerne blev fundet for. Fremragende Jeg troede og slukker vi gik. Alle endte ikke godt, og efter flere måneders brudte løfter og stigende stressniveau jeg lavet en stand og gik ud. Arbejdstid 60 timer om ugen, der kommer hjem og gør noget andet 3-4 timer plus arbejdet hele weekenden og for alle de stress det var en af ​​de bedste beslutninger, jeg nogensinde har lavet. (Her vil jeg gerne takke Megan, mine forældre, og mine venner, der stod ved mig, jeg var en stress-ledet pik på tidspunkter, og jeg er ked)

Fire uger senere landede jeg mig et job med en virksomhed ved navn Tracesmart i Cardiff Bay som en PHP Developer. Efter at have passeret test og interviews jeg startede med en hel bunke af begejstring (som du kan forestille dig ting havde været en smule lav til engang). Tracesmart udføre folk, der søger, mennesker opsporing, valglisten datahåndtering, der involverer store mængder af data. Jeg har været der nu i ca 5 måneder (givet at jeg faktisk skriver dette i marts 2009), og jeg elsker hvert minut af det. Jeg er at presse mig selv hver dag, har et godt arbejdsmiljø (mit skrivebord udsigt over bugten!), Gode kolleger! Jeg har været involveret i nogle gode projekter (andre stillinger for at følge), og jeg er virkelig stolt af det arbejde, jeg gør der.

2009 ....

Trods begyndende 2009 i Tyskland, der lider af Novo virus 2009 er stor hidtil. Megan og jeg Spenta Nytår tid i Tyskland og Amsterdam. Amsterdam er smuk og Anne Franks hus havde en reel gennemgribende effekt på mig, et sted vi vil helt sikkert vende tilbage til. Arbejdet går rigtig godt. Min hals bliver bedre og bedre, så i et par uger vil jeg hovedet ud for de første par forfærdelige kører igen. Det eneste jeg virkelig har brug for nu, er et godt par dyk (eller et dyk ferie) til at komme tilbage i swing ting!

Custom php.ini med Plesk

Ved Steven Lloyd Watkin , onsdag 13 august 2008 15:53

Vi har en dedikeret server med ukFast  som vi kører en række domæner , der findes på virtuelle servere, der kører under Plesk . Anyway, på de fleste af mine domæner jeg vil gemme væk advarsler og sikkerhed holde fejl til log-filer, men på nogle af mine domæner (som dem, jeg er at udvikle på) Jeg ønsker at vise hver lille grimme advarsel og fejl, at vises.

Hvis jeg redigerer mine PHP . INI "> ini dette påvirker hver eneste domæne på serveren, ikke en god ide, især når flere af de steder er fuldt live-versioner  Så for at omgå dette skal du sætte en fil med navnet vhosts.conf i din conf mappe, for eksempel, /var/www/vhosts/<my_domain>/conf/vhost.conf .

Når du har tilføjet dine ekstra kode, igen jeg for eksempel medtaget,

 php_value error_reporting E_ALL php_value display_errors On 

efterfulgt af at køre følgende kommando (dette konfigurerer alle dine domæner det bare hurtigere lazier end at skrive i domænenavnet ,

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

Hvis du føler dig en smule adræt så kan du altid skrive det fulde version, som er,

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

Efter denne kommando, hvis man ser på httpd.include fil, vil se at din httpd.include vil have en inkludere linie til din vhost.conf, noget som dette:

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

Bolometer Teori

Ved Steven Lloyd Watkin , torsdag 21 juni, 2007 13:18

Jeg har haft tonsvis af e-mails (også omkring 5: $) spørger om introduktion til "bolometer teori 'side, som jeg plejede at have op på hjemmesiden. Så her er det lige som før, men med nogle af de links til andre stumper af dele af det gamle fjernet site:)

Introduktion til bolometer teori













Panorama Tema ved Themocracy

12 besøgende online nu
6 gæster, 6 bots, 0 medlemmer
Max besøgende i dag: 17 kl 09:40 UTC
Denne måned: 26 kl 2011/07/05 12:35 UTC
I år: 130 kl 28-03-2011 22:40 UTC
Alle tider: 130 kl 28-03-2011 10:40 UTC