Categorie: Algemeen

PHP Design Patterns - Observer Pattern

Door Steven Lloyd Watkin , dinsdag 29 december 2009 22:02

Ik heb het lezen van Head First Design Patterns onlangs hebben besloten om een ​​aantal van de patronen te schrijven als PHP voorbeelden voor mijn eigen voordeel. De eerste dat ik heb besloten om de code up is de Observer Pattern . De formele definitie van het Observer patroon is:

De waarnemer patroon (een subset van de asynchrone publish / subscribe patroon ) is een software ontwerp patroon waarin een object , genaamd het onderwerp, houdt een lijst bij van haar nabestaanden, genaamd waarnemers, en waarschuwt ze automatisch van een staat veranderingen, meestal door te bellen een van hun methodes . Het wordt vooral gebruikt om gedistribueerde event handling systemen te implementeren.

Zoals geworden systemen meer loosely coupled ervoor te zorgen dat wanneer een gebeurtenis gebeurt alle systemen die vereisen dat de kennis van deze updates worden geïnformeerd. Bijvoorbeeld, een blog post, na het opslaan van een post moeten we wellicht een zoekmachine (bijv. Lucene) update, onze sitemap, tags, e-mail ingeschreven gebruikers, enz. De waarnemer patroon kunnen ontwikkelaars om extra luisteraars toe te voegen zonder het bewerken van hun waarneembare object . Door het injecteren van waarnemers (dwz een zoekmachine update waarnemer, een sitemap generator, enz.) in een onderwerp (dat wil zeggen blog post editing systeem) kunnen we toestaan ​​dat de aan alle nodige updates uit te voeren zonder enige veranderingen.

Continue reading 'PHP Design Patterns - Observer Pattern' »

Office Grid Computing met behulp van virtuele omgevingen - Deel 3

Door Steven Lloyd Watkin , vrijdag 04 december 2009 23:37

Inleiding

Ik werk in een bedrijf waar we lopen veel batch jobs verwerking miljoenen records van de gegevens elke dag en ik heb onlangs na te denken over alle machines die zitten elke dag niets te doen voor enkele uren. Zou het niet goed zijn als we zouden kunnen gebruiken om systemen die machines versterking van de rekenkracht van onze? In deze reeks van artikelen die ik ben gaan kijken naar de potentiële voordelen van het gebruik van een kantoor raster met behulp van gevirtualiseerde omgevingen.

In deel 2 hebben we gekeken naar de banen van een server wordt uitgevoerd, en hoe werkgelegenheid moet worden geconfigureerd om te mislukken bereiken grootste hoeveelheid van de verwerking tegelijkertijd voor te zorgen dat elke taak wordt verwerkt zonder.

Het opzetten van uw werknemer - of "limp-server

De volgende stap in het proces is het opzetten van uw virtuele werknemers. Voor dit ga ik een installatie van CentOS met behulp van VirtualBox te gebruiken. Ik ga te installeren mySQL en PHP op de server, ook wel bekend als een slap (Li nux, m ySQL, P PK) Servera (Misschien heb ik die naam up).

  • VirtualBox installeren op je Windows machine (volg link)
  • Download en CentOS (huidige versie 5.3) te installeren in een virtuele machine gemaakt

Het heeft geen zin mij gaat dit er waarschijnlijk 1,000 's van grote tutorials die er zijn (ok, hier is een: maken en Managing CentOS virtuele machine onder virtualbox ). Het belangrijkste punt om op te merken denk ik is dat ik belde mijn virtuele machine GridMachine.

Zover gaat mijn keuzes van virtualisatie-client en het besturingssysteem is er geen grote dwingende reden voor elke keuze. VirtualBox is iets wat ik op mijn eigen machine en wordt ondersteund door de drie grote besturingssystemen. Ik koos voor CentOS als een goede stabiele OS en ik gebruik het op mijn eigen webserver. Ik ben een groot voorstander van het juiste gereedschap voor de job (hoewel ik het toepassen van 'gebruik maken van de snelste en makkelijkste voor jou' mentaliteit hier), dus als het besturingssysteem X-code, voert je sneller en efficiënter te gebruiken in plaats dat:)

Belangrijk Zorg ervoor dat uw VM DHCP gebruikt, anders is voor elke nieuwe virtuele machine zou moeten apart worden geconfigureerd dat is iets wat we niet want.By via DHCP we hoeven niet individueel te configureren netwerkinstellingen voor werknemer machines, zal DHCP hand uit IP's voor je. Dus u kunt uw virtuele machine over het kantoor zonder zich te bekommeren over het instellen van een ieder up (dit verbetert de schaalbaarheid en vermindert de werknemer administratie).

Het proces dat je moet streven te bereiken zou zijn om een ​​nieuwe fysieke machine te verkrijgen, VirtualBox installeren, en vervolgens vrij veel het virtuele beeld te zetten zonder veel anders. Het is misschien verstandig om setup al uw werknemers op een ander subnet, zodat u kunt tenminste zien hoeveel machines draaien. U moet ook het opzetten van uw machines op een erfpacht of een onbeperkte lease DHCP.

Hoe te Jobs draaien op de werknemer

Dit is een interessant gebied en er zijn diverse geldige methoden voor de verwerking van banen op de werknemer. Hier zal ik gewoon bespreken de twee meest voor de hand liggende:

  • Voortdurend het uitvoeren van scripts: Een script, zij het een shell-script, of een PHP-script wordt een keer uitgevoerd op de werknemer en loopt als onderdeel van een oneindige lus. Ik heb scherp geprijsde deze methode als een crash van het script en mogelijk uw werknemers zullen ophouden te lopen zonder enige vorm van interventie.
  • Cron gebaseerd script execution: Elke x minuten de cron daemon start een oproep om uw script op gang te krijgen. Zonder enige controle kan dit leiden tot vele, vele kopieën van uw werknemer script draait.

Mijn besluit was om te gaan met cron die start een shell-script om de 10 minutes. Mijn shell script voert de volgende taken:

  1. Hier krijg je een lijst met processen en grep dit voor 'php'. Als deze niet gevonden dan verder.
  2. Bel uw taak-code, in mijn geval zou dit iets zijn gebaseerd op PHP
  3. Werknemer script voltooit zijn run
  4. Klaar om opnieuw te gaan op de volgende geschikte oproep

Mijn bash-script ziet er als volgt uit:

  #! / Bin / sh
 Als ps ax | grep-v grep | grep php> / dev / null
 dan
     echo "Job is momenteel de verwerking, de afslag"
 anders
     echo "Job is niet draait, start nu"
     php yourJobProcessingScript.php
 fi 

Opmerking: de echo's zijn bijna volledig zinloos, maar kan hen helpen de volgende persoon die langs komt om te proberen te bewerken en.

Dat concludeert de set-up van de werknemer virtuele machine, snel, eenvoudig en gemakkelijk te kopiëren naar elke nieuwe stuk hardware dat wordt ontvangen. De 'slimheid' van het net niet echt in de gevisualiseerde OS, zijn alle te maken met de code die te verwerken banen, de baan configuratie, en ervoor te zorgen dat het werk wordt uitgevoerd wanneer nodig (dat wil zeggen wanneer de host inactief is ).

Het opzetten van Windows Werknemers Initialise

De eerste taak is te werken buiten de opdracht nodig zijn om de virtuele machine van de Windows command line uit te voeren. Als u hebt geïnstalleerd VirtualBox in de standaard locatie en je hebt de naam van uw werknemer GridMachine vervolgens de opdracht nodig is om te laden van uw werknemer:

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

Maar om het script in een 'headless' staat die we moeten gebruiken uit te voeren:

  "C: \ Program Files \ zon \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Dit start de virtuele machine zonder dat de GUI en laat het netjes op te slaan staat. Het tweede argument gaat uit RDP, zodat het niet in strijd is met windows RDP, of geeft u een boodschap over luisteren op poort 3389. De virtuele machine naam is hoofdlettergevoelig!

Vervolgens moeten we naar windows opgezet om kick off van onze werknemer VM zodra de machine inactief is geweest. Om dit te doen (op Windows XP) je nodig hebt om te gaan Start -> Alle Programma's -> Bureau-accessoires -> Systeemwerkset -> Geplande Taken als volgt:

geplande taken

Klik vervolgens op 'Geplande taak toevoegen ", gevolgd door bladeren naar een aangepast programma toe te voegen. Navigeer naar uw VBoxManage script en klik op OK. Plan uw taak voor een van de opties (we zullen deze verandering in een minuut) en ga verder. Na het overslaan van het volgende scherm Windows zal u vragen wie je deze taak wilt uitvoeren, zou ik stel ofwel 'Administrator' of het creëren van een nieuwe bevoorrechte gebruiker. Onthouden we willen niet te bemoeien met de standaard personeel account op de machine op elk punt. Klik op Volgende en controle blijkt geavanceerde opties voor deze taak.

Naar het einde van de run tekstvak toe te voegen onze 'startvm GridMachine' string en ervoor zorgen dat alleen wordt uitgevoerd wanneer ingelogd wordt overgelaten afgevinkt. Bezoek het schema taak de volgende keer op en neer te veranderen het schema vallen op de optie 'idle', de hoeveelheid tijd die u wilt de machine inactief moet kiezen voordat u naar het volgende tabblad.

Ten slotte uitvinken van de optie die staten stoppen met de taak als deze is het draaien van X hoeveelheid tijd, maar vink de optie om de taak te stoppen als de machine is niet meer actief is.

schema

Dat is het dan voor de Windows host setup!

Samenvatting

In dit deel hebben we het opzetten van een virtuele machine op te treden als een werknemer, alsook de manier waarop we bellen en uit te voeren onze taak de verwerking van scripts (voor mezelf een PHP-script). Vanaf hier kijken we naar hoe het opzetten van onze exemplaren van Windows om het opstarten van de virtuele machine in headless mode wanneer de computer inactief, en sla de staat wanneer de gebruiker hervat gebruik van de machine. Hopelijk op dit punt je ziet hoe eenvoudig het is om een ​​dergelijk systeem en staan ​​te popelen om wat experimenten te gaan jezelf!

Volgende keer

In deel 4 zullen we kijken naar het gebruik hulpmiddelen om ervoor te zorgen dat je de logica de nieuwste versie van de code en gegevensbronnen zodat de verkregen zijn resultaten altijd up-to-date met de nieuwste zakelijke informatie en.

VK Namen Directory en Facebook Applicatie

Door Steven Lloyd Watkin , Vrijdag 10 april 2009 09:33

Een van de leuke dingen die ik ben betrokken geweest bij tijdens het werk voor Tracesmart is de namen van directory . In principe hebben we onze enorme database met informatie en haalde er een grote stapel statistieken over de verschillende namen.

Het proces is al een grote SEO inspanning om meer verkeer te vestigen op de site, maar het biedt ook een aantal interessante informatie en de naam van statistieken.

Hier is een voorbeeld voor mijn naam Lloyd Watkin , of denk ik meer correct Steven Watkin . Neem even de tijd om te zoeken je naam op de Tracesmart site, interessant kan zijn;)

We hebben ook namen statistieken gegevens over de namen van directory pagina die u vertelt wat namen zijn doorzocht en hoe recent. Zijn heel interessant om te zien beroemde namen van mensen vliegen de statistieken als ze verschijnen in het nieuws. Een recent voorbeeld is dat van Liam Neeson , die de vrouw stierf een ski-ongeluk onlangs uit, maar natuurlijk mensen niet helemaal gelijk over de spelling (vandaar de enorme aantallen hits op deze naam) - Liam Nilson .

Facebook applicatie

Zodra de namen van de directory is aangemaakt we over het creëren van een Facebook-applicatie die duely we de naam ' My Name '. De Facebook-applicatie is een uitbreiding van de namen directory en biedt een aantal extra statistieken. Met het oog op de namen map toe te voegen aan uw Facebook-account kunt u terecht op:

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

Flickr en Yahoo: Forgotten Login Details

Door Steven Lloyd Watkin , donderdag 2 april 2009 19:31

Een paar maanden geleden veranderde ik mijn Flickr-wachtwoord, zodat een vriend zouden sommige shots te uploaden naar het. Een paar maanden later ik vind dat ik ben vergeten dat wachtwoord en proberen om al mijn geheime details te herinneren van Yahoo! is net een nachtmerrie. Ik had mijn Yahoo! e-mail adres voor meerdere jaren en ik was niet zeker wanneer of waar (ik woonde) toen ik me aanmeldde - oh gewoon om dit duidelijker Flickr gebruikt Yahoo! login systeem:)

Yahoo! waren geen of te helpen, ze wilden exacte details en zou alles wat niet paste verwerpen. Plus ik was niet toegestaan ​​om een ​​lijst van mogelijke matching details moest naar rechts op elk detail anders zou worden afgewezen bieden. Ik begrijp de veiligheid, maar dit was het krijgen van een pain in the ass, vooral als ik kon mijn gebruikersnaam ophalen naar mijn gebruikelijke e-mail adres zonder enige moeite (waarom zou je niet een reset daar stuur !?!?!). Op de top van dit alles wilden ze de gegevens verstuurd naar hun kantoren in Californië, hetzij per mail of fax, boo!

Stap terug naar Flickr die zo vriendelijk een e-mail sturen naar mijn e-mailadres vraagt ​​me naar mijn Yahoo account los van mijn Flickr-account. Hoera Ik kon vervolgens aanmelden met een nieuwe Yahoo!-account en bevestig mijn Flickr-account hebben om dit nieuwe login.

Na het wachten minstens een week elke keer voor Yahoo! antwoord Flickr heb dit allemaal gesorteerd binnen 2-3 uur!

Goed gedaan Flickr, gelukkig ben je daar op zoek na uw klanten:)

Nu voor verveling iedereen is hier nog een link naar mijn Flickr account

Geïnspireerd ... en guilted!

Door Steven Lloyd Watkin , woensdag 11 maart 2009 20:51

Ik heb onlangs het opzetten van een blog voor een van de jongens in het werk - Matthew Hopkins - en het zien van zijn eerste paar berichten heeft me denken dat ik misschien moet 2008 Toevoegen een paar berichten als haar is een goede tijd en heel veel is gebeurd voorbij. Nog een van de jongens in het werk heeft zelf een blog, good old Stephen Griffiths dus neem een kijkje er ook.

Dus ik ga ploeteren op en sommige retrospectieve posts over wat 2008 aangehouden voor mij en hoe 2009 is de vormgeving up toe te voegen:)

2008 WTF?!?

Door Steven Lloyd Watkin , donderdag 1 januari 2009 0:00

2008 was een vreemde oude jaar is er een aantal dingen die ik echt genoten van over, een en er is een aantal dingen die nu zijn vergeten en gaat over met ....

Duiken

Ik heb niet veel gedaan in de manier van duiken Ik denk dat ik erin geslaagd om ongeveer 10 duiken het hele jaar. Een van deze duiken was het scuba Santas evenement Vobster Quay, die was succesvoller dan mijn wildste dromen. Op het einde hebben we al meer dan  £ 1000 voor de RNLI , kreeg de dekking op de BBC en ITV, en duikers hadden rond de 80 in het water. Vobster was een zee van duiken Santas voor de dag! Ik hoop echt dat ik meer te weten komen duiken doen in 2009 (nog veel meer!), Om terug in het zal veel van de opleiding te betrekken om weer comfortabel. Ik mis de dagen van het verkrijgen van op de boot, in de zon stralend naar beneden, greep een kreeft, verpakking up  en naar huis voor een paar biertjes.

Running

Aan het einde van januari 2008 was ik betrokken bij een auto-ongeluk, van achteren aangereden, terwijl gestopt, niets groot of zo dacht ik. Gedurende enkele maanden mijn nek pijn werd steeds erger het stoppen van mij draait. Op het einde heb ik contact opgenomen met een schadegevallen bedrijf die begon om me behandeling met een chiropractor in Cardiff waar ik ben nog steeds aanwezig (maart 2009 - de vordering is nog steeds niet of afgewikkeld). Hardlopen is een van die dingen die ik wil terug naar, begin ik deed met Miles , maar tussen ziekten, blessures, en hem uiteindelijk verhuizen naar Cambridge kregen we alleen een handvol keer. Ik moet echt een goede schop onder de kont te krijgen weer op gang, hoewel mijn een troost is dat ik zijn rug en voorgrond te werken voor maanden die aan het doen is me een aantal goede fietsen.

Verhuisd

In juli 2008 verhuisde ik naar een flat met Megan, we krijgen door het schilderen en versieren en krijgen zij op zoek naar echt Nicea -. Alhoewel we soort van slepen ons op de hielen met het schilderij ... nog steeds. De flat is in Adamsdown in Cardiff (ik nooit lijkt te ver te verplaatsen) en is passend bij ons gewoon geweldig.

Het werk

Het werk was all over the place in 2008, begon ik af drijven een beetje voor te gaan werken bij een verhuurder als manager. Dit hielp geen einde aan de boedel en verhuurbureau software dat ik aan het ontwikkelen was. Mijn plan voor de boedel en verhuurbureau software is om het vrij te geven als een low cost product als ik wakker meer tijd hebben om het te duidelijk. Van wat ik heb verteld over concurrerende producten op de markt is het makkelijker te gebruiken en voert veel of meer van dezelfde functies op een betere manier:)

In april 2008 komt tot aan mijn 22e verjaardag zowel Megan en mijn moeder begon te duwen voor mij om 'een carrière', die een harde idee om te slikken was echt wat ik nodig had. Runnen van mijn eigen bedrijf was leuk, maar heeft niet de benodigde stabiliteit en verdienen een schijntje op het reisbureau was geen lange termijn carrière doel. Het was altijd een zaak van wachten tot ik mijn software klaar en ik zal beginnen met de verkoop, maar de tijd was altijd tegen mij.

Wat volgde was een aantal interviews met enkele grote bedrijven in een aantal grote gebieden, vol belofte van een verhuizing naar een nieuw gebied, nieuwe start leek geweldig. De beste baan aanbod werd met een grote hosting provider in de Worcester regio en leek ideaal. Dus wat is er gebeurd? Nou had ik een online SMS-oplossing terug rond kerst, dat had gezeten in de buurt niet veel doen waardoor investeerders werden gevonden voor. Uitstekende ik dacht en daar gingen we. Alle eindigde niet goed en na enkele maanden van gebroken beloftes en toenemende stress heb ik een standaard en liep naar buiten. Werken 60 uur per week, thuiskomen en het doen van nog eens 3-4 uur plus hele weekend werken en voor alle stress was het een van de beste beslissingen die ik ooit heb gemaakt. (Hier wil ik graag Megan, mijn ouders en mijn vrienden die daar stond me te bedanken, ik was een stress-koppige lul op keer, en het spijt me)

Vier weken later kwam ik mezelf een baan bij een bedrijf genaamd Tracesmart in Cardiff Bay als een PHP Developer. Na het passeren van de tests en de interviews ben ik begonnen met een hele stapel van enthousiasme (zoals je je kunt voorstellen dingen waren een beetje laag is voor bepaalde tijd). Tracesmart te voeren op mensen die zoeken, mensen opsporen, kiezerslijst data handling, waarbij grote hoeveelheden data. Ik heb er nu al voor ongeveer 5 maanden (aangezien ik eigenlijk het schrijven van dit in maart 2009) en ik hou van elke minuut. Ik ben duwen me elke dag, hebben een geweldige werkomgeving (mijn bureau kijkt uit over de baai!), Goede collega's! Ik ben betrokken geweest bij een aantal goede projecten (andere berichten te volgen) en ik ben echt trots op het werk dat ik daar aan het doen.

2009 ....

Ondanks vanaf 2009 in Duitsland lijden van de Novo-virus 2009 is geweldig tot nu toe. Megan en ik Spenta Oud en Nieuw in Duitsland en in Amsterdam. Amsterdam is prachtig en het Anne Frank huis had een echte diepgaand effect op mij, ergens zullen we zeker terug te keren naar. Het werk is echt goed gaat. Mijn nek is beter en steeds beter dus in een paar weken tijd heb zal ik uit het hoofd voor die eerste paar vreselijke loopt weer. Het enige wat ik nu nodig heb is een goed paar duiken (of een duik vakantie) om terug te krijgen in de gang van zaken!

Aangepaste php.ini met Plesk

Door Steven Lloyd Watkin , woensdag 13 augustus 2008 15:53

We hebben een dedicated server met ukFast  waarop we lopen een aantal domeinen die bestaan ​​op virtuele servers draaien onder Plesk . Hoe dan ook, op de meeste van mijn domeinen wil ik verstoppen waarschuwingen en voor de veiligheid fouten houden aan de log-bestanden, maar op een aantal van mijn domeinen (zoals die ik ben ontwikkelen op) Ik wil elke kleine vervelende waarschuwing en foutmelding dat zien verschijnt.

Als ik mijn PHP . INI "> php.ini Dit heeft invloed op elk domein op de server, niet een goed idee vooral wanneer meerdere van de sites volledig live versies  Dus om dit te omzeilen moet je bestand op te slaan een opgeroepen vhosts.conf in je conf directory, bijvoorbeeld /var/www/vhosts/<my_domain>/conf/vhost.conf .

Als je eenmaal hebt toegevoegd je aanvullende code, wederom ik bijvoorbeeld inbegrepen,

 php_value error_reporting E_ALL php_value display_errors On 

gevolgd door de volgende opdracht (dit herconfigureert al uw domeinen zijn gewoon sneller luier dan typen in de domeinnaam ,

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

Als je gevoel een beetje lenig dan kunt u altijd het type uit de volledige versie, die is,

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

Na deze opdracht als je kijkt naar bestand httpd.include, zal zien dat je httpd.include zal hebben onder lijn voor uw vhost.conf, zoiets als dit:

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

Bolometer Theorie

Door Steven Lloyd Watkin , donderdag 21 juni 2007 13:18

Ik heb ton van e-mails (en ongeveer 5: $) vragen over de inleiding van 'bolometer theorie' pagina die ik gebruikte om op de site. Dus hier is het net als voorheen, maar met enkele van de links naar andere stukjes van delen van de verwijderde oude site:)

Inleiding tot de theorie bolometer













Panorama Thema door Themocracy

8 bezoekers nu online
7 gasten, 1 bots, 0 leden
Max bezoekers vandaag: 13 om 03:27 am UTC
Deze maand: 26 op 07-05-2011 0:35 UTC
Dit jaar: 130 bij 28-03-2011 22:40 UTC
Alle tijd: 130 op 28-03-2011 22:40 UTC