El fin de semana estuve confirmando pagos de los cursos y aún hay algunas vacantes y bastantes alumnos atrasados, por lo que para poder iniciar con los grupos completos vamos a tener que postergar provisoriamente un día el inicio de los cursos (martes 6/10).
Al finalizar el lunes (hoy) se evaluarán los cursos que inician mañana y cuales se postergan una semana hasta el próximo lunes para poder cerrar con el cupo previsto de alumnos.
¡Si aún no pudiste confirmar tu lugar, hoy es el día!
Ni bien tenga novedades les estoy enviando un email a todos los usuarios registrados
Sepan disculpar estos inconvenientes.
Como convertirse en un "Desarrollador PHP Senior" y no morir en el intento... escrito por Enrique Place
Discusión: "¿cuál es tu grado de madurez en POO?"
Todo surgió respondiendo una consulta en un foro y me pareció interesante discutirlo aquí. Les comparto los "niveles" o "etapas" que considero que todo desarrollador pasa cuando decide dejar atrás la programación estructurada.
Generalmente todos empiezan por el primero y luego pocos llegan hasta el último (la mayoría solo logra llegar al 2 y se estancan en el 3):
Puedes seguir desarrollando estructurado y apoyarte en algunos objetos, pero lo ideal es que te vayas adecuando a la forma de trabajo con objetos y estructures todo el sistema de esta forma (y eso empieza por "pensar en objetos", no en código).
Nuevamente, "crear clases y jugar con objetos" es algo que todos podemos hacer, pero desarrollar "orientado a objetos" es un tema más de tener los conceptos claros que de saber la sintaxis de cómo se codifica.
Recomiendo que antes de preguntar qué es o qué no es POO, revisar el apartado de Wikipedia sobre POO y paradigmas de programación y las diferencias entre ellos.
¿Tú, en qué nivel de madurez estás? ¿crees que hay otros niveles o etapas más? ;-)
Generalmente todos empiezan por el primero y luego pocos llegan hasta el último (la mayoría solo logra llegar al 2 y se estancan en el 3):
- "Programación Estructurada": el inicio, desde donde parten, la "nada" ;-)
- "Programación Estructurada con uso de Objetos": usan objetos "sueltos / aislados", no los saben relacionar entre ellos, se reusan a leer material con "conceptos", creen que es mejor aprender a través del "prueba y error".
- "Programación Orientada a Objetos Sin Conceptos Claros": "creen que lo hacen bien" pero luego heredan clases mecánicamente pensando que es el mejor mecanismo para reusar código.
- "Desarrollo 100% OO": personas que invirtieron sabiamente su tiempo para aprender primero los conceptos para luego poder aplicarlos de forma correcta
Puedes seguir desarrollando estructurado y apoyarte en algunos objetos, pero lo ideal es que te vayas adecuando a la forma de trabajo con objetos y estructures todo el sistema de esta forma (y eso empieza por "pensar en objetos", no en código).
Nuevamente, "crear clases y jugar con objetos" es algo que todos podemos hacer, pero desarrollar "orientado a objetos" es un tema más de tener los conceptos claros que de saber la sintaxis de cómo se codifica.
Recomiendo que antes de preguntar qué es o qué no es POO, revisar el apartado de Wikipedia sobre POO y paradigmas de programación y las diferencias entre ellos.
¿Tú, en qué nivel de madurez estás? ¿crees que hay otros niveles o etapas más? ;-)
Primeros pasos en Zend Framework: cómo "aprender a pescar"
Una de las prácticas que trato constantemente de inculcar es que "aprendan a pescar" y a no "depender que los alimenten en la boca".
Durante un curso, y particularmente después que termine, deberían siempre seguir estos pasos respetando el orden:
Durante un curso, y particularmente después que termine, deberían siempre seguir estos pasos respetando el orden:
Paso 1) "Siempre consulta primero el manual oficial"
Buscar en el manual oficial http://framework.zend.com/manual/en/
Intenta tratar de identificar el componente que provee la funcionalidad. Por ejemplo, si no sabes el significado de los parámetros del método render(). Este método es parte del componente Zend_Controller - zend.controller.action y concretamente aquí comenta los parámetros zend.controller.action.viewintegration.render

Paso 2) "Consulta la API online del Framework"

En caso de no encontrar una explicación o esta sea breve, consultar la API online que se genera a partir de los fuentes a través del uso de PHPdoc - http://framework.zend.com/apidoc/core/ (en el combo superior pueden seleccionar el componente que quieren visualizar, Zend_Controller, y luego buscar la clase Zend_Controller_Action).

Paso 3) "¡Usa el código, Luke!"
Como complemento hasta pueden consultar el mismo código fuente de la librería, que ahí se aprende también mucho de cómo funciona el framework y hasta buenas prácticas de desarrollo: revisa el código de /library/Zend/Controller/Action.php

Paso 4) "Usa Google"
Y recién, solo recién, navegar en Google buscando artículos (y con cuidado, hay que aprender a discernir qué es bueno y qué es malo, ya que hay mucha basura).
En Resumen
Todo esto lo sacan navegando el menú de documentación del sitio oficial framework.zend.com, y desaconsejo terminantemente empezar primero buscando en google y creyendo en el primer artículo que encuentran en el buscador (aunque sea de mi autoría ;-)), ya que hay demasiados charlatanes que hablan sin saber y conceptualmente pueden llevarnos a cometer errores o adoptar malas prácticas.

Que te sirva, aprende a pescar por tu cuenta y no esperes que te resuelvan tus propios problemas ;-)
[SURFORCE]: ¡Últimos cursos del año!
¡Estimados lectores, se vienen los últimos cursos del año! Hace unas semanas que se están recibiendo los pagos de las inscripciones:
- Fecha de inicio de los cursos: Lunes 5/Octubre
- Fecha límite para hacer los pagos: Viernes 2/octubre
¡No pierdas tu lugar! ¡De lo contrario, hasta el año que viene! ;-)
Para poder realizar la inscripción empieza por registrarte como usuario en SURFORCE
PD: cualquier duda o asesoramiento puedes enviarnos un email a info en surforce.com
Cajón del recuerdo: reflotando viejos posts anteriores a PHPSenior
Se dio la casualidad que para armar el post anterior tuve que salir a buscar en mi "base de recuerdos" (los posts de mis blogs) para poder responder algunos temas que alguna vez traté. Inquieto como siempre, me puse a buscar en mi blog personal (el primero de todos los blogs que creé) y que luego, buscando especializar, dieron lugar a este blog, PHPSenior (al principio tenía tres, PHP5, Smarty y Pear, que luego se fusionaron en este blog ;-)).
Algunos recuerdos de cuando hablaba de todo un poco, pero particularmente sobre desarrollo web, web 2.0, servidores, etc, y que no han perdido vigencia (y no me gustaría que se olvidaran, al día de hoy los busco cuando quiero volver a repetir algo que hice por hace mucho tiempo ;-)).
Un resumen de los post más interesantes que puedo rescatar:
2005
2006
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas."
– El espectro del Titanic (Arthur C. Clarke, 1998)
Espero que algunos de estos recuerdos les sirva ahora. ;-)
Algunos recuerdos de cuando hablaba de todo un poco, pero particularmente sobre desarrollo web, web 2.0, servidores, etc, y que no han perdido vigencia (y no me gustaría que se olvidaran, al día de hoy los busco cuando quiero volver a repetir algo que hice por hace mucho tiempo ;-)).
Un resumen de los post más interesantes que puedo rescatar:
2005
2006
Smarty: Formato numérico y formato de fecha
PostgreSQL: ¿Cómo hacer respaldos rotativos de una base de datos?
PostgreSQL: ¿la base de datos empezó a consumir exageradamente espacio de disco?
Cambiar la hora de los servidores GNU/Linux
PostgreSQL: crear tablas temporales a partir de una consulta SQL
¿Cuando usar AJAX? ¿Cuando no usar Ajax?
Conceptos: "Mashup" (aplicación web híbrida)
Usabilidad: "¿Como se mueve el ojo humano en una web?
Agendar para que los servidores GNU/Linux se apaguen a una hora específica
Consejos y sugerencias para empezar un blog
Frase: "capa de abstracción"
¿"Interfases" o "interfaces"? ¿"echo" o "hecho"?
Ejemplo práctico de lo que es un "Análisis de Usabilidad"
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas."
– El espectro del Titanic (Arthur C. Clarke, 1998)
Espero que algunos de estos recuerdos les sirva ahora. ;-)
Pregunta recibida: "¿Consejos para hacer las interfaces web?"
Esta semana recibí un email de una ex-alumna que me solicitaba mi recomendación sobre qué hacer y cómo las "interfaces web" en sus desarrollos PHP. Les comparto mi respuesta que puede ser útil a más de uno con la misma duda:
"En sí lo que estoy usando y recomiendo para los desarrollos web es algún framework general, como es Zend Framework. Con eso ya resuelves todo el problema de estructurar un proyecto, cómo organizarlo, además de múltiples clases que resuelven muchos temas repetitivos (como la persistencia, armado de la interfaz, etc). En las vistas tienes "funciones" que provee Zend (llamadas View Helpers) que simplifican mucho el trabajo (no deja de ser html o html generado a través de funciones), luego, la otra parte se hace con un buen uso de css y javascripts, y siguiendo la filosofía "productiva", te recomiendo usar siempre un framework, como bien podría ser jQuery.
No sé cómo estás con estos temas, pero la base es saber bien HTML + CSS (sin tablas) y luego complementarlo con JS (usando un framework para aumentar la productividad)
Enlaces recomendados
¿Ustedes qué opinan? ¿agregarían algo más? ;-)
"En sí lo que estoy usando y recomiendo para los desarrollos web es algún framework general, como es Zend Framework. Con eso ya resuelves todo el problema de estructurar un proyecto, cómo organizarlo, además de múltiples clases que resuelven muchos temas repetitivos (como la persistencia, armado de la interfaz, etc). En las vistas tienes "funciones" que provee Zend (llamadas View Helpers) que simplifican mucho el trabajo (no deja de ser html o html generado a través de funciones), luego, la otra parte se hace con un buen uso de css y javascripts, y siguiendo la filosofía "productiva", te recomiendo usar siempre un framework, como bien podría ser jQuery.
No sé cómo estás con estos temas, pero la base es saber bien HTML + CSS (sin tablas) y luego complementarlo con JS (usando un framework para aumentar la productividad)
Enlaces recomendados
- "Por qué usar tablas es estúpido" (inglés)
- "3 Capas de Presentación"
- "¿Debería utilizar estándares Web?"
- y nunca está de más leer las guías breves de divulgación de la W3C (en inglés hay más información)
¿Ustedes qué opinan? ¿agregarían algo más? ;-)
Plagio, segundo intento: "Desarrollador Senior" versus "PHP Senior"
Parece broma, pero por accidente leyendo el sitio de illasaron.com llego a la siguiente noticia y me encuentro con que la misma persona del plagio anterior vuelve a la carga con un blog "poco original" (creado poco después del incidente que tuvimos), vuelve a copiar contenidos de este blog y ahora "los trabaja un poco más", cambia más palabras y sigue sin hacer referencia a su fuente original.


En mi cabezal dice desde hace años:
PHP Senior
Como convertirse en un "Desarrollador PHP Senior" y no morir en el intento... escrito por Enrique Place de SURFORCE
Ahora el agrega:
Desarrollador Senior
Como convertirse en un "Desarrollador web Senior" y no frustrarse en el intento... escrito por Arley Triana
Leyendo muy por arriba veo que tiene otro artículo parecido a uno que escribí, pero ahora le cambia más palabras para que sea más difícil de distingir... aunque sigue siendo evidente:
Copio la captura del plagio que realizó en el blog anterior, y no puedo salir de mi asombro que siga intentando cambiar algunas palabras para que sea más difícil darse cuenta (hasta usa mi propio uml que hice con Argo)... pero sigue siendo tan evidente:
Antes decía su Plagio Version 1: "tener una clase BaseDeDatos" ahora dice "tener una clase Database", antes decía "devuelve un objeto llamado bd" ahora dice "devuelve un objeto llamado $conn", pero mantiene los subtítulos "¿Ventajas / usos?" y los cambia por "¿Ventajas y usos?", etcétera, etcétera (si tienes tiempo encuentra las diferencias entre sus propias versiones de plagios que son bastantes y muy cómicas).
¿Soy muy paranoico o estamos ante un sorprendente caso de estupidez humana?
Más información
Artículo original y el Plagio Versión 2, todo por el mismo "autor", Arley Triana


En mi cabezal dice desde hace años:
PHP Senior
Como convertirse en un "Desarrollador PHP Senior" y no morir en el intento... escrito por Enrique Place de SURFORCE
Ahora el agrega:
Desarrollador Senior
Como convertirse en un "Desarrollador web Senior" y no frustrarse en el intento... escrito por Arley Triana
Leyendo muy por arriba veo que tiene otro artículo parecido a uno que escribí, pero ahora le cambia más palabras para que sea más difícil de distingir... aunque sigue siendo evidente:
Copio la captura del plagio que realizó en el blog anterior, y no puedo salir de mi asombro que siga intentando cambiar algunas palabras para que sea más difícil darse cuenta (hasta usa mi propio uml que hice con Argo)... pero sigue siendo tan evidente:
Antes decía su Plagio Version 1: "tener una clase BaseDeDatos" ahora dice "tener una clase Database", antes decía "devuelve un objeto llamado bd" ahora dice "devuelve un objeto llamado $conn", pero mantiene los subtítulos "¿Ventajas / usos?" y los cambia por "¿Ventajas y usos?", etcétera, etcétera (si tienes tiempo encuentra las diferencias entre sus propias versiones de plagios que son bastantes y muy cómicas).
¿Soy muy paranoico o estamos ante un sorprendente caso de estupidez humana?
Más información
Artículo original y el Plagio Versión 2, todo por el mismo "autor", Arley Triana
Cambio de fecha de inicio de cursos: 7/Septiembre
Hasta esta hora estuve confirmando los pagos de los cursos y aún hay alumnos atrasados, por lo que para poder iniciar con los grupos completos vamos a tener que postergar una semana el inicio de los mismos.
Se extenderá el plazo hasta el próximo viernes (7/9) para estar al día con el pago del curso y posteriormente SIN EXCEPCIONES no se recibirán más pagos y los cursos darán inicio el próximo lunes 7 / Septiembre.
Aún quedan algunos lugares en los cursos para llegar al tope máximo de 20 alumnos, así que quién envíe el pago inmediatamente obtiene el lugar disponible que aún no se ha pago.
Para quienes sí hicieron el pago correspondiente, sepan disculpar el cambio de fecha. Desde ya les pido a todos que ingresen a http://usuarios.surforce.com y revisen que sus pagos y su asignación a su grupo se encuentra actualizada, de la misma forma, quienes compraron el libro de POO para PHP5, ya pueden bajarlo en conjunto con todo el material extra.
En caso contrario, por favor nos envían un email y lo revisamos.
Opciones del sistema:
- Resumen de Compras, para ver todos los pagos acreditados
- Cursos > Tus Grupos
- Libros > Actualizaciones
- Libros > Material Extra
Cualquier duda o problema estoy a sus órdenes.
¡Última semana, si no te inscribiste aún, luego no hay más excusas! ;-)
¡Última semana, si no te inscribiste aún, luego no hay más excusas! ;-)
Copiar sin citar = Plagio
La verdad que estoy bastante molesto con este caso de Plagio. No es la primera vez que veo que una persona copia literalmente contenidos de este blog y los copia íntegros, y para peor, sin citar:
"Una persona comete plagio cuando copia o imita algo que no le pertenece haciéndose pasar por el autor de ello. Dicha acción, al estar protegida la obra legalmente por el derecho de autor, podría conllevar un juicio y una posible imposición de multas y la obligación de indemnizar los daños y perjuicios."
Claramente los contenidos de este blog tienen licencia Creative Commons (ver pié del sitio) y se aplican algunas restricciones. Existen distintas versiones de la licencia que puedes optar según tus intereses: en este caso puedes copiar, redistribuir y hacer obras derivadas, siempre y cuando cites al autor y no sea con fines comerciales (no quiere decir que no puedas lucrar con los contenidos, pero para eso debes pedir permiso).
Lo correcto sería que hiciéramos un comentario de un artículo que nos pueda gustar, hacer alguna cita de algún párrafo, pero no copiar íntegro el contenido que no permite distinguir si lo escribimos nosotros u otra persona (a menos que lo aclares explícitamente, avises cuando inicia algo que no escribiste, le agregues comillas, etc), pero esto es lo peor y ya muestra muy mala intención.
Esta persona, el Ingeniero Arley Triana Morín, vive en Cuba y hace un año tuvimos una pequeña discusión: me envió un email haciendo una consulta técnica y como no le respondí "inmediatamente", directamente me insultó.
Ahora bien, estaba borrando suscripciones a blogs desde mi Google Reader y de casualidad tenía a esta persona registrada. Luego de revisar un rato y encontrar "familiares" algunos temas y artículos (a veces mi memoria me juega malas pasadas), me percato que son copia literal de contenidos de este blog que escribí hace algún tiempo.
Nota: para peor cambia los enlaces que hacen referencia a otros articulos de este mismo blog por las copias en su propio blog (muy prolijo), ni que decir eliminar algunos párrafos con comentarios personales o cambiar levemente algún título.
A las pruebas me remito.
En resumen: Arley, yo por lo menos te "cito", y soy el autor original.
¿Por qué usar un (zend) framework?
Estas preguntas me la han hecho muchas veces, así que es buen momento para compartirlas en el blog :-)
Por ejemplo, no tienes que crearte tu propia clase de persistencia para recuperar o guardar datos, lo cual incluye además de lo básico, muchas funcionalidades que te ahorran tiempo y hasta te dan mayor seguridad por controles internos que ya incorporan de fábrica.
Si le sumamos que el esquema de trabajo es MVC, ya te da una forma de organizar tus sistemas, donde colocar cada cosa, etc, que te permite estandarizar y ahorrar mucho tiempo.
Un ejemplo bastante común: tú quieres validar un email que recibes de un formulario, en vez de tener que implementar toda esa parte (y hacerlo bien) puedes hacer uso de clases existentes como Zend_Validate_EmailAddress()
Listo, sigues adelante y programas el resto de lo importante de tu sistema, ya que lo que te importa es terminar el trabajo, entregar el sistema y cobrar al cliente.
De alguna forma, muy resumida, te "profesionaliza".
No sé si quedó claro el ejemplo ;-)
PD: se podría decir que lo importante no es si usas Zend Framework (más allá que yo lo use), creo que deberías por lo menos conocer alguno y estudiarlo en profundidad para sacarle provecho en el reuso de componentes y experiencia de la empresa o grupo que lo desarrolló. Siempre existirán ventajas, más si tu eres un equipo reducido de desarrolladores y el framework fue hecho por un equipo más grande y especializado en su diseño y desarrollo, no lo hicieron en su tiempo libre.
"Apóyate en hombros de gigantes"
- ¿Para qué sirve un framework?
- ¿Por qué Zend Framework?
- ¿Cuales son las ventajas de no hacer todo yo?
- etc
Por ejemplo, no tienes que crearte tu propia clase de persistencia para recuperar o guardar datos, lo cual incluye además de lo básico, muchas funcionalidades que te ahorran tiempo y hasta te dan mayor seguridad por controles internos que ya incorporan de fábrica.
Si le sumamos que el esquema de trabajo es MVC, ya te da una forma de organizar tus sistemas, donde colocar cada cosa, etc, que te permite estandarizar y ahorrar mucho tiempo.
Un ejemplo bastante común: tú quieres validar un email que recibes de un formulario, en vez de tener que implementar toda esa parte (y hacerlo bien) puedes hacer uso de clases existentes como Zend_Validate_EmailAddress()
$email = $this->getRequest()->getPost(' email', 'none@example.com');
$validator = new Zend_Validate_EmailAddress();
if ($validator->isValid($email)) {
// email seems valid
} else {
// email seems invalid; Outputting the reasons
} Listo, sigues adelante y programas el resto de lo importante de tu sistema, ya que lo que te importa es terminar el trabajo, entregar el sistema y cobrar al cliente.
De alguna forma, muy resumida, te "profesionaliza".
No sé si quedó claro el ejemplo ;-)
PD: se podría decir que lo importante no es si usas Zend Framework (más allá que yo lo use), creo que deberías por lo menos conocer alguno y estudiarlo en profundidad para sacarle provecho en el reuso de componentes y experiencia de la empresa o grupo que lo desarrolló. Siempre existirán ventajas, más si tu eres un equipo reducido de desarrolladores y el framework fue hecho por un equipo más grande y especializado en su diseño y desarrollo, no lo hicieron en su tiempo libre.
"Apóyate en hombros de gigantes"
Suscribirse a:
Entradas (Atom)
Entradas populares
-
He visto mucha documentación que habla sobre el tema de los métodos "getter / setter", o traducido al castellano los métodos ...
-
Esto es lo que pasa cuando tienes entornos que no son homogéneos y cada aplicación se encuentra ubicada en distintas márgenes de un "rí...
-
Uno de los problemas que me he encontrado con la versión 5 de PHP es la falta de la representación de los "paquetes" desde el prop...
-
Este es un resumen de conclusiones que se vertieron en una discusión sobre el tema en Foros de Web , donde se plantea la duda de si PHP5 ...
-
Este es un ejemplo publicado a partir de la duda de un usuario , y como son preguntas que se hacen reiteradamente, les dejo el ejemplo aquí ...
-
Esta reflexión se la escribo a todos los "Programadores PHP": Al día de hoy la mayoría de los institutos o universidades de muchos...
-
El Patrón " Singleton " sirve para cuando buscamos restringir la creación de instancias de un objeto, obligando que solo se pueda ...
-
Bueno, luego de revisarlo una y otra vez (y otra vez) ya se encuentra terminada la primer versión del libro que junta toda la experiencia ac...
-
Hace un tiempo que vengo recomendando esta presentación como punto de partida para definir un estándar de desarrollo en una empresa. En ambi...
-
Estoy viendo muy seguido en foros que frecuento regularmente a muchos programadores que quieren dar " el gran salto " y evolucion...











