Categoría: General

PHP Patrones de Diseño - Diseño de Observadores

Por Lloyd Watkin Steven , martes 29 de diciembre 2009 22:02

He estado leyendo Head First Design Patterns recientemente y he decidido a escribir algunos de los patrones como ejemplos de PHP para mi propio beneficio. El primero que me he decidido a codificar es el patrón Observer . La definición formal del patrón Observer es:

El patrón observador (un subconjunto de los asincrónica de publicación / suscripción patrón ) es un software de patrón de diseño en el que un objeto , llamado el tema, mantiene una lista de sus dependientes, los observadores llamados, y les notifica automáticamente de cualquier cambio de estado, por lo general, llamando uno de sus métodos . Se utiliza principalmente para implementar sistemas distribuidos de control de eventos.

Puesto que los sistemas se vuelven más imprecisa asegurarse de que cuando un evento ocurre todos los sistemas que requieren el conocimiento de estas actualizaciones se informó. Por ejemplo, una entrada de blog, después de guardar un mensaje que tenga que actualizar un motor de búsqueda (por ejemplo, Lucene), actualizar nuestro mapa del sitio, las etiquetas, correo electrónico usuarios suscritos, etc El patrón observador permite a los desarrolladores añadir detectores adicionales sin modificar su objeto observable . Mediante la inyección de observadores (es decir, un motor de búsqueda de observador actualización, un mapa de su sitio, etc) en un sujeto (es decir, sistema de edición blog post) podemos permitir que el que para llevar a cabo todas las actualizaciones necesarias sin ningún cambio.

Continuar leyendo 'PHP Design Patterns - Observador Patrón' »

Oficina de Computación Grid utilizando entornos virtuales - Parte 3

Por Lloyd Watkin Steven , 04 de diciembre Viernes 2009 23:37

Introducción

Yo trabajo en una empresa donde corremos muchos puestos de trabajo de procesamiento por lotes millones de registros de datos cada día y he estado pensando sobre todos los equipos que se sientan alrededor de cada uno y cada día sin hacer nada durante varias horas. ¿No sería bueno si pudiéramos utilizar esas máquinas para reforzar la capacidad de procesamiento de nuestros sistemas? En esta serie de artículos que voy a ver los beneficios potenciales del empleo de una oficina de la red utilizando entornos virtualizados.

En la parte 2 vimos los puestos de trabajo de un servidor se ejecutará, y cuántos empleos se debe configurar con el fin de lograr la mayor cantidad de procesamiento, mientras que garantizar que cada puesto de trabajo se procesa sin falta.

Configuración de su trabajo - o servidor LIMP

El siguiente paso en el proceso es la creación de sus trabajadores virtuales. Para ello voy a utilizar una instalación de CentOS con VirtualBox. Voy a instalar MySQL y PHP en el servidor, también conocido como una cojera (Li nux, m ySQL, HP P) Servera (yo pueda haber hecho el nombre arriba).

  • Instalación de VirtualBox en su máquina Windows (seguir el enlace)
  • Descargue e instale CentOS (versión actual 5.3) dentro de una máquina virtual creada

No tiene sentido que me va a este probablemente hay 1,000 's de las grandes clases particulares por ahí (bueno, aquí va una: Creación y Managing máquina virtual con VirtualBox CentOS ). El punto importante a señalar es que supongo que llamé a mi GridMachine máquina virtual.

En cuanto a mis opciones de virtualización de cliente y el sistema operativo vaya no hay gran razón de peso para cada elección. VirtualBox es algo que yo uso en mi máquina de casa y con el apoyo de los tres principales sistemas operativos. Elegí CentOS como un buen sistema operativo estable y lo uso en mi propio servidor web. Soy un gran creyente en las herramientas adecuadas para el trabajo (aunque estoy solicitando la «utilización más rápida y más fácil para usted 'mentalidad de aquí), así que si el sistema operativo X se ejecuta el código más rápido y más eficiente uso que en su lugar:)

Es importante asegurarse de que su máquina virtual utiliza DHCP, de lo contrario para cada máquina virtual de nuevo tendrá que ser configurado por separado que es algo que no want.By mediante DHCP no es necesario configurar los ajustes de red de forma individual para las máquinas de los trabajadores, DHCP mano de IPs para usted. Por lo tanto usted puede copiar su máquina virtual sobre la oficina sin tener que preocuparse sobre la configuración de cada uno hacia arriba (esto mejora la escalabilidad y reduce la administración de los trabajadores).

El proceso que deben tratar de lograr sería la de obtener una máquina física nueva, instale VirtualBox, y luego más o menos implementar la imagen virtual sin necesidad de mucho más. Podría ser sabio para configurar todos sus trabajadores en una subred diferente, para que pueda al menos ver cuántas máquinas se están ejecutando. También tendrás que configurar los equipos en un contrato de arrendamiento a largo o ilimitado concesión DHCP.

Cómo ejecutar trabajos en el trabajador

Esta es un área interesante y hay varios métodos válidos para los trabajos de transformación en el trabajador. Aquí sólo voy a hablar de los dos más obvios:

  • Perpetuamente ejecutar el script: Un script, ya sea un script de shell o un script PHP se ejecuta una vez en el trabajador y se ejecuta como parte de un bucle infinito. He descontado este método como un accidente de la secuencia de comandos y, potencialmente, a sus trabajadores dejarán de funcionar sin algún tipo de intervención.
  • ejecución Cron guión basado: Cada X minutos el demonio cron se inicia una llamada a la secuencia de comandos para que funcione. Sin alguna comprobación de esto podría llevar a muchas copias de la secuencia de comandos de trabajo en ejecución.

Mi decisión fue ir con cron que arranca un script de shell cada 10 minutes. Mi script de shell realiza las siguientes tareas:

  1. Obtener una lista de procesos y grep esto para 'php'. Si no lo encuentra y luego continúe.
  2. Llame a su código de trabajo, en mi caso esto sería algo basado en PHP
  3. script trabajador termina su ejecución
  4. Listo para ir de nuevo en la convocatoria correspondiente al lado

Mi script bash se ve algo como lo siguiente:

  #! / Bin / sh
 si ps ax | grep grep-v |> grep php / dev / null
 a continuación,
     echo "El trabajo está procesando, la salida"
 más
     echo "El trabajo no se ejecuta, comienza ahora"
     php yourJobProcessingScript.php
 fi 

Nota: los ecos son casi completamente inútil, pero puede ayudar a la próxima persona que viene a tratar de editarlos.

Con esto concluye la puesta en marcha de la máquina virtual de trabajo, rápido, simple y fácil de copiar a cada nueva pieza de hardware que se recibe. La 'inteligencia' de la red de distribución realmente no es visualizada en el sistema operativo, su todo que ver con el código creado a los trabajos de proceso, la configuración del trabajo, y en asegurarse de que el trabajo se ejecuta en su caso (es decir, cuando el anfitrión está inactivo ).

Configuración de Windows para los trabajadores de iniciación

La primera tarea es trabajar en el comando necesario para ejecutar la máquina virtual desde la línea de comandos de Windows. Si has instalado VirtualBox en la ubicación predeterminada y ha nombrado a su GridMachine trabajador entonces el comando necesario para cargar a su trabajador es:

  "C: \ Archivos de programa \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Sin embargo, para ejecutar el script en un 'cabeza' del Estado tenemos que usar:

  "C: \ Archivos de programa \ Sun \ VirtualBox \ VBoxHeadless.exe" startvm GridMachine - VRDP = off 

Esto iniciará la máquina virtual sin la interfaz gráfica de usuario y le permiten guardar el estado de gracia. El segundo argumento se apaga RDP por lo que no entra en conflicto con las ventanas RDP, o darle un mensaje acerca de la escucha en el puerto 3389. El nombre de la máquina virtual se distinguen mayúsculas y minúsculas!

A continuación, tendrá que configurar las ventanas para dar inicio a nuestra máquina virtual de los trabajadores una vez que la máquina ha estado inactiva. Para hacer esto (en Windows XP) que necesita para ir a Inicio -> Todos los programas -> Accesorios -> Herramientas del sistema -> Tareas programadas de la siguiente manera:

las tareas programadas

Luego haga clic en "Agregar tarea programada" seguido de vaya a agregar un programa a medida. Vaya a la secuencia de comandos VBoxManage y haga clic en Aceptar. Programe su tarea para cualquiera de las opciones (vamos a cambiar esto en un minuto) y continuar. Después de saltar de las ventanas de pantalla siguiente le preguntará que desea ejecutar esta tarea, me gustaría sugerir o "Administrador" o crear un nuevo usuario privilegiado. Recuerde que no queremos interferir en la cuenta personal de serie en la máquina en cualquier momento. Haga clic en las opciones de mostrar el siguiente y comprobar avanzadas para esta tarea.

Hasta el final de la caja de texto ejecutar añadir 'startvm' GridMachine nuestra cadena y asegurar que funcionen únicamente cuando se conecte se deja sin marcar. Visite el siguiente horario de trabajo y el cambio horario de la caída hasta la opción 'cuando esté inactivo ", elija la cantidad de tiempo que desea que la máquina se espera antes de pasar a la siguiente pestaña.

Por último desmarque la opción que dice detener la tarea si se ha estado ejecutando X cantidad de tiempo, pero no marca la opción para detener la tarea si la máquina ya no es ociosa.

horario

Eso es todo luego de la configuración del host de Windows!

Resumen

En esta parte hemos creado una máquina virtual para que actúe como un trabajador, así como la forma en que nos llame y ejecutar scripts de procesamiento de la tarea (para mí un script PHP). Desde aquí vamos a ver cómo crear nuestras copias de Windows para poner en marcha la máquina virtual en modo de cabeza cuando el equipo queda libre, y guardar su estado cuando el usuario se reanuda el uso de la máquina. Esperemos que en este momento estás viendo lo fácil que es crear un sistema y están ansiosos por obtener algunos experimentos se va!

La próxima vez

En la parte 4 vamos a estar buscando en el uso de herramientas para asegurar que se está ejecutando la última versión de los datos y códigos fuente para que los resultados obtenidos son siempre al día con el negocio de la información más reciente y la lógica.

Reino Unido nombres de directorios y aplicaciones de Facebook

Por Watkin Lloyd Steven , 10 de abril Viernes 2009 9:33 am

Una de las cosas divertidas que he estado involucrado en el mismo tiempo de trabajo para Tracesmart es el directorio de nombres . Básicamente tomamos nuestra base de datos de información enorme y sacó un montón de estadísticas sobre los nombres de varios.

El proceso es un esfuerzo de SEO grandes con el fin de atraer más tráfico al sitio, sino que también proporciona información interesante y estadísticas nombre.

He aquí un ejemplo de mi nombre Lloyd Watkin , o supongo que más correctamente Steven Watkin . Tome un minuto para buscar su nombre en el sitio Tracesmart, podría ser interesante;)

También tenemos las estadísticas de los nombres de datos en el directorio de nombres de página que le indica qué nombres han sido objeto de búsqueda y cómo recientemente. Es bastante interesante ver los nombres de personajes famosos de volar hasta las estadísticas cuando aparecen en las noticias. Un ejemplo reciente es el de Liam Neeson , que la esposa murió a causa de un accidente de esquí hace poco, aunque obviamente la gente no está del todo bien en la ortografía (de ahí el gran número de accesos a este nombre) - Liam Nilson .

Aplicación de Facebook

Una vez que el directorio de nombres fue creada nos pusimos a la creación de una aplicación de Facebook que duely llamado ' Mi Nombre ". La aplicación de Facebook es una extensión del directorio de nombres y proporciona algunos datos adicionales. Con el fin de agregar el directorio los nombres de su cuenta de facebook por favor visite:

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

Flickr y Yahoo: ¿Ha olvidado Detalles Login

Por Lloyd Watkin Steven , jueves 02 de abril 2009 19:31

Hace unos meses cambié mi contraseña de Flickr para que un amigo podría subir algunas fotos a la misma. Un par de meses después me parece que he olvidado la contraseña y tratando de recordar todos los detalles de mi secreto de Yahoo! es sólo una pesadilla. Yo tenía mi dirección de correo electrónico Yahoo! durante varios años y no estaba seguro de cuándo o dónde (yo vivía) cuando me inscribí - oh sólo para hacer esto más claro Flickr utiliza Yahoo! sistema de entrada:)

Yahoo! hubo ayuda, ya sea, querían detalles exactos y que rechazan todo lo que no se han encontrado. Además de que no se le permitió presentar una lista de posibles detalles a juego que tenía que estar en lo correcto en cada detalle de lo contrario, sería rechazado. Puedo entender la seguridad, pero se trataba de conseguir un dolor en el culo, todo lo que pude recuperar mi nombre de usuario a mi dirección de correo electrónico habitual sin ningún problema (¿por qué no se envía un reset no !?!?!). Además de todo esto que querían los detalles enviado a sus oficinas en California, ya sea por correo o fax, boo!

Paso atrás en Flickr que la amabilidad de enviarnos un correo electrónico a mi dirección de correo electrónico registrada en pedirme que separar mi cuenta Yahoo! de mi cuenta de Flickr. ¡Viva yo podría firmar con una cuenta de Yahoo! nueva y vuelva a mi cuenta de Flickr para este nuevo inicio de sesión.

Después de esperar por lo menos una semana cada vez por MSN a responder Flickr se han solucionado todos estos dentro de 2-3 horas!

Bien hecho Flickr, gracias a Dios que está por ahí el cuidado de sus clientes:)

Ahora para el aburrimiento de todo el mundo aquí está otro enlace a mi cuenta de Flickr

Inspirado ... y eran culpabilizados!

Por Lloyd Watkin Steven , 11 de marzo 2009 Miércoles 20:51

Recientemente he creado un blog para uno de los chicos en el trabajo - Matthew Hopkins - y mirando a sus puestos de primeros me ha hecho pensar que tal vez yo debería añadir unos pocos puestos como su estado un buen rato y mucho ha sucedido en 2008. Otro de los chicos en el trabajo se hace un blog, el bueno de Stephen Griffiths para echar un vistazo allí también.

Así que me voy a plod y añadir algunos puestos retrospectiva sobre lo que 2008 que tuvo lugar para mí y cómo se perfila 2009:)

2008 WTF?!?

Por Lloyd Watkin Steven , jueves 01 de enero 2009 12:00a.m.

2008 fue un año raro, hay varias cosas que me gustó mucho al respecto, Â y está ahí algunas cosas que ya se han olvidado y pasó con ....

Buceo

No he hecho mucho en el camino de buceo Creo que he conseguido en torno a unos 10 inmersiones durante todo el año. Una de las inmersiones fue el buceo santas evento en Vobster Quay, que tuvo más éxito que mis sueños más salvajes. Al final se recaudaron más de £ 1000 para la RNLI , tiene cobertura en la BBC y la ITV, y tenía alrededor de 80 buzos en el agua. Vobster era un mar de santas de buceo para el día! Realmente espero llegar a hacer más de buceo en 2009 (mucho más!), Volviendo a ella implica mucho entrenamiento para sentirse cómodo otra vez. Echo de menos los días de subir al barco, el sol radiante abajo, agarrar una langosta, embalaje  upa y regresar a casa a tomar unas cervezas.

Ejecución

A finales de enero de 2008 estuve involucrado en un accidente automovilístico, golpeado por detrás, mientras que se detuvo, nada importante o eso creía yo. Durante varios meses, mi dolor de cuello empeoró progresivamente detener mi marcha. Al final entré en contacto con una compañía de reclamos por accidentes que comenzó a recibir mi tratamiento con un quiropráctico en Cardiff que todavía estoy asistiendo (marzo de 2009 - la demanda aún no se resuelve tampoco). El funcionamiento es otra de esas cosas que quiero volver, me empezó con Miles , pero entre las enfermedades, lesiones y lo finalmente trasladarse a Cambridge sólo tenemos un puñado de veces. Realmente necesito una buena patada en el culo para ponerse en marcha otra vez, aunque mi único consuelo es que he estado en bicicleta hacia atrás y tanto para trabajar por meses, lo que me está haciendo algo bueno.

Movido

En julio de 2008 me mudé a un piso con Megan, que estamos recibiendo a través de la pintura y la decoración y conseguir que se vea realmente Nicea -. Pesar de que es una especie de arrastrar nuestros talones con la pintura ... todavía. El piso está en Adamsdown en Cardiff (Nunca parecen moverse ahora) y nos está satisfaciendo simplemente genial.

Trabajo

El trabajo era por todo el lugar en 2008, empecé un poco a la deriva antes de que empiece a trabajar en un agente que deja como gerente. Esto ayudó a no terminar con la masa y dejar que el software agencia que estaba en desarrollo. Mi plan para el patrimonio y la agencia de alquiler de software es para lanzarlo como un producto de bajo costo cuando tengo más tiempo para aclararlo. De lo que me dicen acerca de los productos competidores en el mercado es más fácil de usar y realiza muchas o más de las mismas funciones de una manera mejor:)

Durante abril de 2008 viene a mi cumpleaños número 22 tanto Megan y mi madre comenzó a empujar para que yo 'conseguir una carrera, que una idea difícil de aceptar fue realmente lo que necesitaba. Dirigiendo mi propia empresa fue muy divertido, pero no proporcionó la estabilidad necesaria y ganando una miseria en la agencia de alquiler no era objetivo a largo plazo de la carrera. Siempre fue un caso de esperar hasta que llegue el software terminado y voy a empezar a venderlo, pero el tiempo siempre fue contra mí.

Lo que siguió fue varias entrevistas con algunas empresas grandes en algunas áreas grandes, llenos de la promesa de pasar a un área nueva, nuevo comienzo parecía muy bien. El mejor trabajo fue con un gran proveedor de alojamiento en la zona de Worcester y parecía ideal. ¿Y qué pasó? Bueno, yo había desarrollado una solución en línea de SMS de vuelta alrededor de la Navidad que se habían sentado alrededor de no hacer mucho más que los inversores se han encontrado. Excelente lo que pensaba y nos fuimos. No todo terminó bien y después de varios meses de promesas incumplidas y el aumento de los niveles de estrés que hice un soporte y se marchó. Trabajo 60 horas a la semana, llegando a casa y hacer otra 03.04 horas más de trabajo todos los fines de semana y para todo el estrés era una de las mejores decisiones que he tomado. (Aquí me gustaría dar las gracias a Megan, mis padres y mis amigos que estaban junto a mí, que era un pene con el estrés cabeza a veces, y lo siento)

Cuatro semanas más tarde me consiguió un trabajo con una compañía llamada Tracesmart en Cardiff Bay como PHP Developer. Después de pasar las pruebas y las entrevistas que se inició con un montón de entusiasmo (como se puede imaginar las cosas hubieran sido un poco baja por algún tiempo). Tracesmart realizar las personas que buscan, la gente la localización, el censo electoral, el manejo de datos, con la participación de grandes cantidades de datos. He estado allí desde hace unos 5 meses (dado que estoy realmente a escribir esto en marzo de 2009) y me encanta cada minuto de él. Me estoy empujando todos los días, tienen un gran ambiente de trabajo (mi escritorio vistas a la bahía!), Buenos colegas! He estado involucrado en algunos proyectos buenos (otros mensajes a seguir) y estoy muy orgulloso del trabajo que estoy haciendo allí.

2009 ....

A pesar de partir del 2009 en Alemania afectados por el virus Novo 2009 es muy buena hasta ahora. Megan y yo Spenta hora de Nueva Años en Alemania y Amsterdam. Amsterdam es hermosa y la casa de Ana Frank tuvo un profundo efecto real en mí, en algún lugar que definitivamente voy a regresar a. Se está trabajando muy bien. Mi cuello es cada vez mejor por lo que en un par de semanas voy a salir a las primeras series terrible pocas una vez más. La única cosa que realmente necesitamos ahora es una inmersiones algunos buenos (o unas vacaciones de buceo) para volver al ritmo de las cosas!

Php.ini personalizado con Plesk

Por Lloyd Watkin Steven , 13 de agosto Miércoles 2008 15:53

Tenemos un servidor dedicado con ukFast  en el que nos encontramos una serie de dominios que existen en los servidores virtuales que se ejecutan en Plesk . De todos modos, en la mayoría de mis dominios quiero esconderme y advertencias de seguridad para mantener los errores a los archivos de registro, sin embargo en algunos de mis dominios (como los que estoy desarrollando a) quiero mostrar todas las advertencias poco desagradable y error que aparece.

Si modifico mi PHP . INI "php.ini> esto afecta a todas y todos los dominios en el servidor, no una buena idea sobre todo cuando varios de los sitios están totalmente en vivo versiones  Así que para evitar esto es necesario poner un archivo llamado vhosts.conf en el directorio conf, por ejemplo, /var/www/vhosts/<my_domain>/conf/vhost.conf .

Una vez que haya añadido el código adicional, una vez más, por ejemplo, yo incluido,

 php_value error_reporting E_ALL php_value display_errors On 

seguido ejecutando el siguiente comando (esto vuelve a configurar todos los dominios de su justo más rápido más perezoso que escribir el nombre de dominio ,

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

Si te sientes un poco ágil a continuación, siempre se puede escribir la versión completa que es,

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

Después de este comando si se mira a httpd.include archivo, verá que su httpd.include tendrá una línea para incluir su vhost.conf, algo como esto:

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

Teoría bolómetro

Por Lloyd Watkin Steven , jueves 21 de junio 2007 13:18

He tenido toneladas de correos electrónicos (y cerca de 5 $) preguntando por la introducción de la página "teoría bolómetro" Yo solía tener en el sitio. Así que aquí es igual que antes pero con algunos de los enlaces a otros fragmentos de piezas de la antigua sede eliminado:)

Introducción a la teoría bolómetro













Panorama Tema por Themocracy

6 visitantes en línea
4 personas, contra los robots de 2, 0 miembros
Número máximo de visitantes de hoy: 14 a 07:34 am UTC
Este mes: 26 a 05/07/2011 12:35a.m. UTC
Este año: 130 en 28-03-2011 22:40 UTC
Todo el tiempo: 130 en 28-03-2011 22:40 UTC