Catégorie: Général

Design Patterns PHP - Pattern Observateur

Par Steven Lloyd Watkin , Mardi 29 Décembre 2009 22:02

J'ai lu Head First Design Patterns récemment et ont décidé d'écrire quelques-uns des motifs comme des exemples de PHP pour mon propre bénéfice. Le premier que j'ai décidé de coder le modèle Observateur . La définition formelle du modèle Observateur est le suivant:

Le modèle d'observateur (un sous-ensemble de l'asynchrones publication / abonnement pattern ) est un logiciel de design pattern dans lequel un objet , appelé le sujet, maintient une liste de ses personnes à charge, a appelé les observateurs, et les informe automatiquement de tout changement d'État, généralement par téléphone un de leurs méthodes . Il est principalement utilisé pour mettre en œuvre des systèmes distribués de gestion des événements.

Comme les systèmes deviennent plus faiblement couplés en s'assurant que quand un événement se produit tous les systèmes qui exigent la connaissance de ces mises à jour sont informés. Par exemple, un billet de blog, après avoir enregistré un message nous pouvons avoir besoin de mettre à jour un moteur de recherche (par exemple, Lucene), mettre à jour notre plan du site, les tags, les utilisateurs de messagerie souscrit, etc Le modèle Observateur permet aux développeurs d'ajouter des écouteurs supplémentaires sans avoir à éditer leur objet observable . En injectant des observateurs (c'est à dire un moteur de recherche mise à jour observateur, un générateur de sitemap, etc) dans un sujet (ie blog post système de montage), nous pouvons permettre à la de s'acquitter de toutes les mises à jour nécessaires, sans aucune modification.

Continuer 'Design Patterns PHP - Pattern Observateur «la lecture»

Grid Computing Office en utilisant des environnements virtuels - Partie 3

Par Steven Lloyd Watkin , Vendredi 4 Décembre 2009 23:37

Introduction

Je travaille dans une entreprise où nous courons le traitement batch de nombreux millions d'enregistrements de données chaque jour et j'ai pensé récemment à propos de toutes les machines qui sont assis autour de chaque et tous les jours à ne rien faire pendant plusieurs heures. Ce ne serait pas bien si on pouvait utiliser ces machines pour renforcer la puissance de traitement de nos systèmes? Dans cette série d'articles que je vais regarder les avantages potentiels d'employer un bureau de grille en utilisant les environnements virtualisés.

Dans la partie 2 nous avons regardé les emplois d'un serveur sera exécuté, et comment les emplois doivent être configurés afin d'atteindre le plus grand nombre de traitements tout en veillant à ce que chaque tâche est traitée sans échec.

Configuration de votre travail - ou d'un serveur LIMP

La prochaine étape dans le processus est de mettre en place vos travailleurs virtuels. Pour cela, je vais utiliser une installation de CentOS en utilisant VirtualBox. Je vais installer mySQL et PHP sur le serveur, aussi connu comme une boiterie (nux ​​Li, m ySQL, P HP) Servera (j'ai pu faire jusqu'à ce nom).

  • Installer VirtualBox sur votre machine Windows (suivre le lien)
  • Télécharger et installer CentOS (version actuelle 5.3) dans une machine virtuelle créée

Il est inutile de me passe à ce qu'il ya probablement 1000 's de tutoriels grand là-bas (OK, en voici une: Création et Managing CentOS machine virtuelle sous VirtualBox ). Le point important à noter est que je suppose que j'ai appelé ma machine virtuelle GridMachine.

Quant à mon choix du client de virtualisation et de système d'exploitation va il n'ya aucune raison convaincante pour chaque grande choix. VirtualBox est une chose que j'utilise sur mon ordinateur à domicile et est soutenu par les trois principaux systèmes d'exploitation. J'ai choisi CentOS comme un OS stable, bonne, et je l'utilise sur mon propre serveur Web. Je suis un grand croyant dans les bons outils pour le travail (même si je suis d'appliquer «l'utilisation la plus rapide et plus facile pour vous« la mentalité ici), donc si X système d'exploitation exécute votre code rapidement et plus efficacement utiliser à la place:)

Il est important de s'assurer que votre VM utilise le DHCP, sinon pour chaque nouvelle machine virtuelle aurait besoin d'être configurés séparément, ce qui est quelque chose que nous ne want.By utilisant DHCP nous n'avons pas besoin de configurer les paramètres réseau individuellement pour les machines des travailleurs, DHCP main IP pour vous. Par conséquent, vous pouvez copier votre machine virtuelle sur le bureau sans se soucier de la mise en place de chacun (ce qui améliore l'évolutivité et réduit l'administration travailleur).

Le processus que vous devriez viser à atteindre serait d'obtenir une nouvelle machine physique, installez VirtualBox, puis à peu près le déploiement de l'image virtuelle, sans beaucoup d'autre. Il pourrait être sage d'installer tous vos ouvriers sur un sous-réseau différent de sorte que vous pouvez au moins voir combien de machines sont en marche. Vous aurez également besoin de configurer votre machine sur un bail de longue ou illimitée bail DHCP.

Comment exécuter des tâches sur le travailleur

C'est un domaine intéressant et il ya plusieurs méthodes valables pour le traitement des travaux sur le travailleur. Ici, je vais juste parler des deux plus évidentes:

  • Perpétuellement exécution de script: un script, que ce soit un script shell ou un script PHP est exécuté une fois sur le travailleur et s'exécute comme partie d'une boucle infinie. J'ai réduit cette méthode comme un accident du script et potentiellement vos travailleurs cesseront de courir sans une certaine forme d'intervention.
  • L'exécution du script Cron base: toutes les X minutes le daemon cron coup d'envoi d'un appel à votre script pour faire avancer les choses. Sans quelques vérifications cela pourrait conduire à de nombreuses copies de votre course script travailleur.

Ma décision était d'aller avec cron qui débutera un script shell toutes minutes. 10 Mon script shell effectue les tâches suivantes:

  1. Obtenez une liste des processus et grep ce pour 'php'. S'il n'est pas trouvé avant de continuer.
  2. Appelez votre code de travail, dans mon cas ce serait quelque chose en fonction PHP
  3. Script travailleur remplit sa course
  4. Prêt à partir à nouveau sur le prochain appel appropriée

Mon script bash ressemble à quelque chose comme ce qui suit:

  #! / Bin / sh
 si ps ax | grep-v grep | grep php> / dev / null
 puis
     echo "l'emploi est en cours de traitement, la sortie"
 d'autre
     echo "Job ne fonctionne pas, commencer dès maintenant»
     php yourJobProcessingScript.php
 fi 

Remarque: le fait écho sont presque complètement inutile, mais peut aider la prochaine personne qui vient le long d'essayer de les modifier.

Cela conclut la mise en place de la machine virtuelle travailleur, rapide, simple et facile à copier à chaque nouveau morceau de matériel qui est reçu. Le «intelligence» du système de grille n'est pas vraiment dans le visualisés OS, son tout à voir avec le code créé pour traiter les tâches, la configuration d'emplois, et à faire en sorte que le travail s'exécute, le cas échéant (c'est à dire lorsque l'hôte est inactif ).

Configuration de Windows pour initialiser les travailleurs

La première tâche est de travailler à la commande nécessaire pour faire fonctionner la machine virtuelle à partir de la ligne de commande Windows. Si vous avez installé VirtualBox dans l'emplacement par défaut et que vous avez appelé votre GridMachine travailleur alors la commande nécessaire pour charger votre travailleur est:

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

Cependant, pour exécuter le script dans un «décapité» l'état, nous devons utiliser:

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

Cela va démarrer la machine virtuelle sans l'interface graphique et lui permettre d'enregistrer l'état de grâce. Le second argument s'éteint RDP afin qu'il n'entre pas en conflit avec Windows RDP, ou vous donner un message à l'écoute sur le port 3389. Le nom de la machine virtuelle est sensible à la casse!

Ensuite, nous aurons besoin de mettre en place des fenêtres pour lancer notre VM travailleur une fois la machine a été ralenti. Pour ce faire (sous Windows XP), vous aurez besoin d'aller sur Démarrer -> Tous les programmes -> Accessoires -> Outils système -> Tâches planifiées comme suit:

les tâches planifiées

Ensuite cliquez sur "Ajouter une tâche planifiée" suivie sur Parcourir pour ajouter un programme personnalisé. Accédez à votre script VBoxManage et cliquez sur OK. Programmez votre tâche pour l'une des options (nous allons changer cela en une minute) et continuer. Après sauter l'écran suivant Windows vous demandera qui vous voulez exécuter cette tâche, je vous suggère soit «Administrator» ou la création d'un nouvel utilisateur privilégié. N'oubliez pas que nous ne voulons pas interférer avec le compte personnel du standard sur la machine à tout moment. Cliquez sur Suivant et cochez la case Afficher les options avancées de cette tâche.

Pour la fin de la zone de texte exécuté ajoutez notre chaîne 'startvm GridMachine »et s'assurer que courir que lorsque vous êtes connecté est laissé décochées. Visitez la tâche prochain horaire et le changement du calendrier déroulant de l'option "en cas d'inactivité", choisissez la quantité de temps vous souhaitez que la machine soit inactif avant de passer à l'onglet suivant.

Enfin décocher l'option qui stipule arrêter la tâche si elle a été exécutée montant X de temps, mais ne cochez l'option pour arrêter la tâche si la machine n'est plus ralenti.

calendrier

Ça y est alors pour la configuration d'hôte fenêtres!

Résumé

Dans cette partie, nous avons mis en place une machine virtuelle à agir en tant que travailleur, ainsi que la manière dont nous appeler et d'exécuter des scripts de traitement de notre travail (pour moi-même un script PHP). De là, nous regardons comment mettre en place nos copies de Windows pour démarrer la machine virtuelle en mode headless lorsque l'ordinateur est inactif, et enregistrer son état lorsque l'utilisateur reprend l'usage de la machine. Espérons à ce point que vous voyez combien il est simple à mettre en place un tel système et sont impatient de faire quelques expériences vous allez!

Suivant le temps

Dans la partie 4 , nous allons chercher à utiliser les outils pour s'assurer que vous utilisez la dernière version des sources de code et de données afin que les résultats obtenus sont toujours à jour avec les dernières informations d'affaires et de logique.

UK noms de répertoire et application Facebook

Par Steven Lloyd Watkin , vendredi 10 avril 2009 9:33 am

Une des choses amusantes que j'ai été impliqué dans tout en travaillant pour Tracesmart est le répertoire des noms . Fondamentalement, nous avons pris notre énorme base de données et en sortit un gros tas de stats sur divers noms.

Le processus est tout un gros effort de référencement afin d'attirer plus de trafic vers le site, mais il fournit également quelques informations intéressantes et des statistiques nom.

Voici un exemple pour mon nom de Lloyd Watkin , ou je suppose plus correctement Steven Watkin . Prenez une minute pour regarder votre nom sur le site Tracesmart, pourrait être intéressant;)

Nous avons aussi des statistiques sur les données de noms de répertoire des noms page qui vous indique quels noms ont été recherchés et comment ces derniers temps. Son tout à fait intéressant de voir les noms des personnes célèbres de voler jusqu'à l'stats quand ils apparaissent dans les nouvelles. Un exemple récent est celui de Liam Neeson qui est femme est morte d'un accident de ski récemment, bien évidemment les gens ne sont pas tout à fait raison sur l'orthographe (d'où le grand nombre de hits sur ce nom) - Liam Nilson .

Application Facebook

Une fois le répertoire des noms a été créée nous avons entrepris de créer une application Facebook qui nous duely nommé « My Name ». L'application Facebook est une extension du nom de répertoire et fournit quelques statistiques supplémentaires. Pour ajouter le répertoire des noms à votre compte Facebook s'il vous plaît visitez le site:

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

Flickr et Yahoo: Détails de passe oublié

Par Steven Lloyd Watkin , jeudi 2 avril 2009 19h31

Il ya quelques mois j'ai changé mon mot de passe Flickr afin qu'un ami pourrait télécharger quelques photos d'elle. Un couple de mois plus tard, je trouve que j'ai oublié ce mot de passe et d'essayer de se souvenir de tous mes détails secrets de Yahoo! Est juste un cauchemar. J'ai eu mon adresse email Yahoo! depuis plusieurs années et je n'étais pas sûr quand et où (je vivais) lorsque j'ai signé - oh juste pour rendre plus claire cette Flickr utilise le système de connexion Yahoo!:)

Yahoo! avait pas aidé non plus, ils voulaient des détails précis et ne rejeter tout ce qui ne correspond pas. De plus, je n'étais pas autorisé à fournir une liste de possibles correspondant de détails qu'il avait d'être à droite sur chaque détail sinon elle serait rejetée. Je peux comprendre la sécurité, mais cela devenait une douleur dans le cul, surtout que j'ai pu récupérer mon nom d'utilisateur à mon adresse email habituelle sans aucun problème (pourquoi ne pas vous envoyer une réinitialisation il !?!?!). Au sommet de tout cela, ils voulaient les détails envoyés à leurs bureaux en Californie, soit par courrier ou par télécopieur, boo!

Reculez vers Flickr qui ont bien voulu envoyer un mail à mon adresse email enregistrée me demandant de détacher mon compte Yahoo! de mon compte Flickr. Hourra je pourrais alors signer avec un nouveau compte Yahoo! et rattacher mon compte Flickr à cette nouvelle connexion.

Après avoir attendu au moins une semaine à chaque fois pour répondre Yahoo! Flickr obtenu ce tous triés dans les 2-3 heures!

Bien fait Flickr, heureusement que vous êtes là vous occuper de vos clients:)

Maintenant, pour l'ennui de tout le monde ici, c'est encore un autre lien vers mon compte Flickr

Inspiré ... et guilted!

Par Steven Lloyd Watkin , le mercredi 11 Mars 2009 20h51

J'ai récemment mis en place un blog pour l'un des gars dans le travail - Matthew Hopkins - et de voir sa première quelques postes a m'a fait penser que j'aurais peut-être ajouter un peu de postes que sa fait un bon bout de temps et beaucoup s'est passé par rapport à 2008. Un autre l'un des gars dans le travail ne lui-même un blog pour, le bon vieux Stephen Griffiths alors jetez un oeil là aussi.

Je vais donc à avancer péniblement sur les messages et ajouter quelques rétrospectives sur ce 2008 qui s'est tenue pour moi et comment 2009 s'annonce:)

2008 WTF?!?

Par Steven Lloyd Watkin , jeudi 1er Janvier 2009 12:00 am

2008 a été une année étrange vieille, il ya plusieurs choses que j'ai vraiment aimé ce sujet, a et il ya certaines choses qui ont été maintenant oubliée et déplacé sur des ....

Plongée

Je n'ai pas fait beaucoup de la manière de la plongée, je pense que j'ai réussi dans environ 10 plongées toute l'année. L'une de ces plongées est la plongée sous-santas événement à Vobster Quay qui a réussi mieux que mes rêves. En fin de compte nous avons amassé plus de £ 1000 pour la RNLI , a obtenu une couverture sur la BBC et ITV, et avait autour de 80 plongeurs dans l'eau. Vobster était une mer de santas plongée sous-marine pour la journée! J'espère vraiment que j'arrive à faire plus de plongée en 2009 (beaucoup plus!), Remise en cela impliquera beaucoup de formation pour se familiariser à nouveau. Je m'ennuie de l'époque de monter sur le bateau, le soleil darde ses rayons, en saisissant un homard, d'emballage et de upa  rentrer à la maison pour quelques bières.

Running

A la fin de Janvier 2008, j'ai été impliqué dans un accident de voiture, frappé par derrière alors arrêté, rien de majeur ou alors j'ai pensé. Pendant plusieurs mois ma douleur au cou obtenu arrêter progressivement pire je marche. En fin de compte, j'ai contacté une société d'accident réclamations qui ont commencé à me traitement avec un chiropraticien à Cardiff où je suis toujours présents (Mars 2009 - la demande n'est toujours pas réglée non plus). La course est une autre de ces choses que je veux revenir à, je n'ai commencer avec Miles , mais entre les maladies, les blessures, et lui éventuellement de passer à Cambridge nous n'avons eu une poignée de fois. J'ai vraiment besoin d'un bon coup de pied le cul pour y aller à nouveau, bien que ma seule consolation est que j'ai été le cyclisme en arrière et avant de travailler pendant des mois, qui me fait du bien.

Déplacés

En Juillet 2008, j'ai emménagé dans un appartement avec Megan, nous obtenons à travers la peinture et la décoration et de le faire regarder vraiment Nicée - bien que nous sommes sorte de traîner nos talons avec la peinture ... encore.. L'appartement est en Adamsdown à Cardiff (je ne semblent jamais à se déplacer loin) et il est convenant nous tout simplement génial.

Les travaux

Le travail a été partout en 2008, j'ai commencé à la dérive un peu avant de prendre le travail à un agent laissant en tant que gestionnaire. Cela a aidé sans fin avec l' immobilier et le logiciel agence de location que j'ai été en développement. Mon plan pour l' immobilier et le logiciel agence de location est de le libérer comme un produit à faible coût lorsque j'aurai plus de temps pour clarifier les choses. D'après ce que m'a dit à propos des produits concurrents sur le marché, il est plus facile à utiliser et effectue de nombreux ou plusieurs des mêmes fonctions dans une meilleure façon:)

En avril 2008 à venir jusqu'à mon 22ème anniversaire à la fois Megan et ma mère a commencé à pousser pour moi de «faire une carrière», qui une idée difficile à avaler était vraiment ce dont j'avais besoin. Avoir ma propre entreprise était amusant, mais n'a pas fourni la stabilité nécessaire et à gagner un salaire de misère à l'agence n'était pas laisser objectif à long terme de carrière. Il a toujours été un cas d'attendre jusqu'à ce que je reçois mon logiciel terminée et je vais commencer à vendre, mais le temps a toujours été contre moi.

Ce qui suivit fut plusieurs entretiens avec quelques grandes entreprises dans certains grands domaines, plein de promesse de passer à un nouveau domaine, nouveau départ semblait grand. La meilleure offre de travail a été d'un grand fournisseur d'hébergement dans la région de Worcester et semblait idéal. Donc ce qui s'est passé? Eh bien j'avais développé une solution en ligne SMS revenir aux alentours de Noël qui avait été assis autour de ce qui ne fait pas beaucoup d'investisseurs ont été trouvés pour. Excellent Je pense et nous sommes partis. Tous ne se termine pas bien et après plusieurs mois de promesses non tenues et la hausse des niveaux de stress j'ai fait un stand et sortit. Travailler 60 heures par semaine, rentrer chez soi et faire un autre 3-4 heures de travail ainsi que tous les week-end et pour tout le stress qu'il a été l'une des meilleures décisions que j'ai jamais faite. (Ici, je tiens à remercier Megan, mes parents et mes amis qui étaient là moi, j'étais une bite stress dirigé par moments, et je suis désolé)

Quatre semaines plus tard, je me suis atterri un emploi avec une société appelée Tracesmart à Cardiff Bay comme PHP Developer. Après avoir passé les tests et les entretiens que j'ai commencé avec un tas d'enthousiasme (comme vous pouvez imaginer les choses avaient été un peu faible pour un certain temps). Tracesmart effectuer des personnes à la recherche, les gens de traçage, listes électorales de manipulation de données, portant sur des quantités énormes de données. J'ai été là dès maintenant pour environ 5 mois (donnée Je suis en fait cela dans l'écriture Mars 2009) et j'adore chaque minute. Je me poussant chaque jour, ont un excellent environnement de travail (mon bureau donne sur la baie!), De bons collègues! J'ai été impliqué dans certains projets bien (d'autres postes à suivre) et je suis vraiment fier du travail que je fais là.

2009 ....

Malgré partir de 2009 en Allemagne atteintes du virus Novo 2009 est une grande jusqu'ici. Megan et moi Spenta heure de New ans en Allemagne et à Amsterdam. Amsterdam est magnifique et la maison d'Anne Frank a eu un réel effet profond sur moi, quelque part, nous allons certainement revenir. Le travail se passe très bien. Mon cou est de mieux en mieux si dans un couple des semaines de temps je vais la tête hors de ces quelques premières fonctionne une fois de plus affreux. La seule chose que j'ai vraiment besoin maintenant, c'est une bonne plongées peu (ou un séjour de plongée) pour revenir dans le swing de choses!

Php.ini personnalisé avec Plesk

Par Steven Lloyd Watkin , Mercredi 13 août 2008 3:53 pm

Nous avons un serveur dédié avec ukFast A sur lequel nous courons un certain nombre de domaines qui existent sur ​​les serveurs virtuels fonctionnant sous Plesk . Quoi qu'il en soit, sur la plupart de mes domaines, je veux cacher les avertissements et erreurs de la sécurité garder les fichiers de log, mais sur certains de mes domaines (tels que ceux que je suis en développement sur) Je veux montrer à tous les méchants peu d'avertissement et d'erreur qui apparaît.

Si je modifie mon PHP . INI "php.ini> cela affecte tous et chacun de domaine sur le serveur, pas une bonne idée surtout quand plusieurs de ces sites sont de vivre pleinement les versions  Ainsi, afin de contourner ce dont vous avez besoin de mettre un fichier appelé vhosts.conf dans votre répertoire conf, par exemple, /var/www/vhosts/<my_domain>/conf/vhost.conf .

Une fois que vous avez ajouté votre code supplémentaire, par exemple, j'ai à nouveau inclus,

 php_value error_reporting E_ALL php_value display_errors On 

suivi en exécutant la commande suivante (cette reconfigure l'ensemble de vos domaines de sa juste plus rapide plus paresseux que de taper le nom de domaine ,

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

Si vous vous sentez un peu agiles, alors vous pouvez toujours taper la version complète, qui est,

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

Après cette commande si vous regardez à httpd.include fichier, vous verrez que votre httpd.include aura une ligne include pour votre vhost.conf, quelque chose comme ceci:

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

Théorie Bolometer

Par Steven Lloyd Watkin , Jeudi 21 Juin 2007 13:18

J'ai eu des tonnes de courriels (et environ 5: $) poser des questions sur l'introduction à la page «théorie bolomètre« J'avais l'habitude d'avoir sur le site. Donc ici il est juste comme avant, mais avec certains des liens vers d'autres morceaux de pièces de l'ancien site supprimé:)

Introduction à la théorie de bolomètres













Thème Panorama par Themocracy

7 visiteurs en ligne aujourd'hui
3 invités, 4 bots, 0 membres
Max visiteurs aujourd'hui: 15 à 00:38 UTC
Ce mois-ci: 22 à 00h30 UTC 06/08/2011
Cette année: 130 à 28-03-2011 22:40 UTC
Tout le temps: 130 à 28-03-2011 22:40 UTC