Jun 28
Pregúntame
icon1 Daniel Hernández | icon2 $this | icon4 06 28th, 2008| icon3$comentarios = 0 »

Y yo te contestaré en la medida de lo posible.

He estado echando un vistazo a las estadísticas del blog y me he dado cuenta de que mucha gente viene aquí buscando respuestas. Así que, he decidido crear una página a parte (accesible desde el menú superior y desde la barra lateral) para que me hagáis esas preguntas que tengáis sobre PHP, Java (J2SE o J2EE), Zend Framework, Eclipse, MySQL, Oracle o Apache.

Ante todo, quiero dejar claro que yo no soy ningún gurú y que seguramente no tenga respuesta para la mayoría de las preguntas. Pero entre otras cosas, esta iniciativa es para aprender, así que si no sé responder algo de primera mano, investigaré y de esa forma yo también aprendo ;)

Ya sabéis: si tenéis alguna pregunta, dirigíos a la página y os responderé en cuanto pueda y por estricto orden cronológico ;)

Jun 15
Javascript y PHP
icon1 Daniel Hernández | icon2 Javascript, PHP | icon4 06 15th, 2008| icon3$comentarios = 2 »

He estado esta tarde programando una migración de una base de datos para un amigo (bueno, esta tarde he terminado el script). Y ahora que ya lo tengo terminado y funciona todo bien y tal, pues quería aprovechar para practicar un poco con interfaces dinámicos con javascript y AJAX.

Lo que yo tengo es un script PHP que hace varios selects a una base de datos y luego va insertando cada fila en otra base de datos, además de inserts adicionales por aquello de las relaciones entre tablas, para que funcione todo. Sin saber nada de AJAX yo pensaba que permitía comunicar bidireccionalmente servidor con cliente. Pero después de buscar un poco, la conclusión a la que puedo llegar es que no. AJAX te sirve para hacer peticiones concretas al servidor una vez la página está ya servida. Mi gozo en un pozo.

Lo que yo quería hacer era ir mostrando unas barras de progreso a medida que iba insertando filas en la base de datos, pero por lo que veo me va a resultar un poco imposible. Se me ha ocurrido una solución un tanto extraña, pero que creo que va a funcionar.

La idea es la siguiente: cargar la página y, una vez cargada, mediante el conocido evento onLoad de javascript, arrancar una función javascript que vaya llamando al script de PHP. De esa forma conseguiré ir actualizando las barras de proceso en tiempo real, pero me temo que va a tardar bastante más en ejecutar. Bueno, habrá que probarlo.

Ya os contaré.

Jun 11

Las MakTools comienzan a tomar forma. Una forma cutre y que no sirve para nada, pero tienen :P

Hoy he empezado a desarrollar las maktools. De momento sólo tengo una página que muestra un listado con las futuras herramientas que habrá disponibles. Apenas sin estilos y sin poder hacer otra cosa que ver ese listado. Pero bueno, ya le voy cogiendo el tranquillo al Zend Framework, que es lo realmente importante de todo esto. He conseguido que funcione tanto en local como en el hosting, incluyendo un acceso a base de datos, que es donde están almacenadas las herramientas de la lista que se puede ver.

En fin, poco a poco iré desarrollando las herramientas. La primera de ellas se llamará zfpc (Zend Framework Project Creator) y la intención es que cree un árbol de directorios y una serie de ficheros y los comprima en un zip que se pueda bajar el usuario. El contenido del zip será una aplicación Zend Framework con un hola mundo. Servirá únicamente para que dando un nombre de carpeta se obtenga el árbol de directorios y los ficheros imprescindibles para comenzar a desarrollar la aplicación. Puede parecer una tontería, pero estoy seguro de que ahorrará mucho tiempo a los que lo usen ;)

Por el momento, nada más. La dirección de las maktools es http://maktools.dhernandeza.com.

Jun 5

Ayer estuve en la página oficial del Zend Framework y estuve viendo unos screencasts grabados por un tal Mitchell Hashimoto en los que explicaba cómo montar tu primera aplicación con el framework. En inglés, claro, y, como siempre, se olvidaba de la parte que quizá sea la más importante: la instalación y configuración del servidor. Además, la mayoría de la ayuda y tutoriales acerca del Zend Framework que puedes encontrar está en inglés, así que he pensado que a medida que vaya aprendiendo a utilizarlo voy a ir grabando mis propios vídeos a modo de tutorial, comenzando por uno en el que me instale el servidor desde cero, para que así cualquiera pueda empezar a programar con este framework que tanto me está gustando.

Así que, voy a ver si busco programitas con los que capturar vídeo y audio a la vez y voy haciendo algunos screencasts de esos de prueba ;)

Con un poco de suerte, aprenderé a montar aplicaciones chulas y me quedarán unos tutoriales guapos (baja Modesto…) :P

Jun 4

¡Está vivo! -que dirían otros ;P

Acabo de llevar a cabo la primera prueba para ver si funciona el Zend Framework en el hosting y ¡funciona! Lo podéis comprobar en la url temporal zftest.dhernandeza.com. No se puede llamar ni aplicación a la prueba, que lo único que hace es mostrar una pantalla en blanco con la típica frase ‘Hello World’.

Pero la cuestión es que funciona :D Así que, hoy o mañana me pondré a saco con las MakTools ;)

Jun 3
MakTools
icon1 Daniel Hernández | icon2 Proyectos personales | icon4 06 3rd, 2008| icon3$comentarios = 0 »

Estoy diseñando una serie de aplicaciones que me van a ser bastante útiles. En principio sólo a mí, pero las subiré a mi dominio para que las pueda usar quien quiera ;)

Las llamaré MakTools por razones evidentes (o eso creo yo). Quiero programarlas en PHP y MySQL usando el Zend Framework, como primera opción, o el Cake PHP si no puedo el de Zend. En cuanto pueda quiero subir algo para probar si funciona el Zend Framework en este hosting. Espero que sí.

Si funciona, quiero hacer, de momento, 3 aplicaciones:

  • Un sistema de gestión de tareas. Para poder llevar un control semanal de las tareas que quieres hacer.
  • Un sistema de gestión de películas. ¿Nunca te ha pasado que quieres ver una película y al final se te olvida y te acuerdas a los 4 meses? A mí sí, y me jode. Con esta aplicacioncilla, cada uno podrá apuntar qué películas quiere ver, cuándo se estrenan y tal.
  • Un sistema de gestión de series. Veo tantas que a veces llega un punto en que no recuerdo por qué capítulo iba de alguna de ellas. La idea de este programita es ir apuntando las series que vas viendo, hasta qué capítulo te has bajado y por qué capítulo vas visionando ;)

Si no funciona, en un principio desecharé la idea, pero quizá acabe haciéndolo de todas formas, ya lo veré. En un futuro, puede que no muy próximo, me gustaría currarme también un sistema de gestión de cómics, para que cada cual pudiera tener un control sobre cómics que esté dibujando: fichas de personajes, guiones de los capítulos, argumento, las imágenes de las páginas escaneadas…

En fin, ya veremos ;)

¿Qué os parece la idea?

May 8
Caña al pl/sql
icon1 Daniel Hernández | icon2 Trabajando | icon4 05 8th, 2008| icon3$comentarios = 0 »

Que es de goma :P

Llevo ya casi dos semanitas en el proyecto nuevo -aunque técnicamente, han sido sólo 7 días-. Los primeros días estuve mirando documentación y habituándome a las herramientas. Le eché un vistazo al código -no todo, claro- y fui aprendiendo un poquito de pl/sql. El segundo día ya resolví una incidencia muy chorra: cambiar un parámetro de dos llamadas al mismo procedimiento en pl/sql. Era una chorrada, pero en mi primer contacto con dicho lenguaje fui capaz de hacerlo. No está mal.

Ahora ya llevo unos días programando mi primer paquete en pl. Ya he escrito mis primeras funciones y procedimientos en este lenguaje y, aunque me gusta porque llevaba mucho tiempo sin programar en serio, me da un poco de asco porque es prácticamente calcado a pascal, lenguaje que odio a muerte desde que estudié en la Politécnica. Pero bueno, estoy programando, ya hay cositas que van funcionando y estoy bastante cómodo, tanto programando como con los compañeros. Esto promete ;)

La única pega está en el apartado personal, pero de eso no hablaré aquí.

Un saludo!

Apr 29
Proyecto interesante
icon1 Daniel Hernández | icon2 Trabajando | icon4 04 29th, 2008| icon3$comentarios = 0 »

Llevo ya dos días en el proyecto nuevo. No me ha dado tiempo a mucho: desinstalar las viejas aplicaciones -ya que conservo mi PC-, instalar las nuevas herramientas, familiarizarme con el Developer, el Toad, el Crystal Reports, el Eclipse y todos los programas que voy a utilizar, echarle un vistazo al framework del cliente, empezar a pegarme con J2EE y con pl/sql. Hasta he resuelto una incidencia -muy chorra, mi primer contacto con pl/sql-.

Pero tiene muy buena pinta. Es un proyecto para ICM (Informática de la Comunidad de Madrid) en Java + Oracle y se utilizan cosas chulas como Crystal Reports. Y creo que es bastante interesante aprender a manejar el framework que utiliza la Comunidad de Madrid en sus desarrollos en Java porque, si por la razón que fuera, se acabara este proyecto -aunque parece que tiene para largo- o yo me quisiera ir, estoy adquiriendo unos conocimientos que serían valorados en otros proyectos para la propia Comunidad.

Me está gustando, de momento ;)

Apr 15
Preparativos para una nueva etapa
icon1 Daniel Hernández | icon2 $this | icon4 04 15th, 2008| icon3$comentarios = 0 »

Nueva etapa por varios motivos.

La primera de las razones es que he conseguido un cambio de proyecto. Actualmente trabajo para una de las empresas tecnológicas más grandes de España. Y, como siempre, esa grandeza no supone una ventaja para el trabajador de a pie, el que nada en piscinas de mierda y saca adelante el trabajo a base de latigazos y sonrisas. No obstante, se supone que en este tipo de empresas las ventajas se ven a largo plazo, así que de momento me interesa quedarme. Pero, desde luego, no me quedo porque la empresa invite a hacerlo. Con una subida que todavía no he catado -y ya estamos a mediados de abril- y que se rumorea va a ser del 7% que no compensa en absoluto el trabajo que hacemos y la cantidad de horas que echamos; una formación inexistente, la única formación a la que he tenido acceso de momento me la ha ofrecido Comisiones Obreras; una posibilidad de promoción prácticamente nula; un salario muy inferior al que tendría si me marchara a cualquier otra empresa con esta tecnología (Banksphere); en fin, con estas cosas y alguna más, la verdad es que no se puede decir que mimen demasiado a sus desarrolladores, así a nadie le apetece quedarse. ¿De qué me sirve que haya ventajas a largo plazo si cuando necesito  un buen salario es ahora para poder ahorrar para irme de casa?

La tecnología con la que trabajo tampoco ayuda y es la razón de que haya pedido un cambio de proyecto que a estas alturas -tras casi dos años de experiencia con esto- ya necesito. Cuando me contrataron me engañaron diciéndome que era para programar en Java. No tardamos en descubrir mis compañeros y yo que de Java aquello tenía poco. Bueno, en realidad mucho, pero no lo escribe el desarrollador. El 90% del trabajo con Banksphere es muy parecido a utilizar un paquete de ofimática. Haz click aquí, crea esto, define sus propiedades, arrastra, lanza flechitas, pon cajitas y bolitas y mira qué bonito todo. Las maquetas se crean de una forma parecida a los formularios de Visual Basic, pero mucho peor. En Visual Basic siempre puedes irte al código fuente para afinar las cosas. Aquí no. De hecho, el resultado de una maqueta en el navegador, el código fuente, es absolutamente ilegible. Apenas hay etiquetas HTML y ni siquiera se cierra la etiqueta body. Se importan no sé cuántas librerías de javascript que hacen -de forma chapucera- todo el trabajo. Por supuesto, no funciona en otro navegador que no sea Internet Explorer.

Cuando entré en el proyecto actual ya estaba desanimado. Pero la perspectiva del proyecto era muy buena: “un proyecto de Java y SQL”, se nos dijo. Poco a poco nos dimos cuenta de que la realidad no se ajustaba a lo que cabía esperar. De Java, nada. Nos fueron reduciendo el Java que habíamos planeado hasta dejarlo en 0. SQL sí que hay mucho. Pero chapucero y limitado. Sólo podemos usar las 4 sentencias básicas -a saber, select, update, insert y delete-; no podemos usar claves autincrementales y en su lugar debemos usar secuencias que no funcionan bien; no podemos hacer left join; no podemos hacer join de más de 5 tablas; no podemos usar procedimientos almacenados ni triggers; no podemos usar select count o select distinct; no podemos hacer subselects; en definitiva, no podemos hacer nada decente o interesante. Mi novia es bastante buena con pl/sql y en bases de datos en general y cuando tengo algún problemilla siempre recurro a ella. Es gracioso ver cómo las soluciones que me va encontrando a los problemas que le planteo son rechazadas una y otra vez porque “no podemos hacer eso”. La verdad es que si lo piensas bien, somos unas máquinas del SQL por las virguerías que tenemos que hacer para sacar las queries. Porque, además, para terminar de ayudar, hay algunas cosas que, simplemente, no funcionan en Banksphere.

Así que, entre lo absurdo de la metodología del cliente -por ejemplo, nos tiraron para atrás los casos de uso porque eran demasiado detallados-, las limitaciones de la tecnología que nos obliga a chapucear constantemente, las limitaciones del cliente que no nos deja hacer determinadas cosas “por razones de eficiencia”, lo terriblemente mala que es la herramienta que usamos para programar -que se cuelga constantemente, o se cierra sin previo aviso, o le da por no guardarte los cambios, o por cerrarse la aplicación completa al cerrar una pestaña, o tienes que cerrar una vista de Eclipse porque se ha jodido y no se ven bien las cosas-, pues todo eso junto desquicia a cualquiera, creo yo. Bueno, a cualquiera a quien le guste programar. Los que están aquí como podrían estar de camarer@s en cualquier lado -es un decir-, aquellos a los que no les gusta la informática siquiera y están aquí porque es una profesión con futuro y que no se paga mal, pues a esos les da igual y aquí siguen tan contentos. Pero yo no puedo más. Noto cómo me apago cada vez más, a cada chapuza, a cada nueva limitación, a cada eslabón menos de la cadena con que nos ata el cliente. Estoy desmoralizado y desanimado y el siguiente paso es deprimido. Mejor cambio de proyecto.

Y en eso estoy ahora. Cuando le dije a mi jefe que me iba, que estaba haciendo entrevistas y que no tardaría un mes en dejar la empresa, le entraron las prisas. En pocos días habíamos hablado con nuestro director y me habían prometido que si me quedaba a terminar mi parte del proyecto en el que estoy ahora me buscarían otro proyecto. Y así lo hicieron. Tuve una entrevista con la gente de otro proyecto y se ve que gusté. Y mi currículum al parecer tiene parte de culpa, a pesar de que no es nada del otro mundo. Pero bueno, no seré yo quien se queje :P El nuevo proyecto es apasionante -si se le compara con lo que he estado haciendo hasta ahora-: Java puro, programando mis clases como debería ser, con una base de datos Oracle -típico, así aprenderé también sobre Oracle, que hasta ahora ni lo había olido- y un cliente que parece importante, aunque todavía no sé si eso es bueno o malo. Parece ser que hacen pocas horas. Eso va a ser casi lo mejor, porque ahora mismo no tengo hora de salida. Sé cuándo entro, pero es imposible saber el tiempo que voy a estar aquí y así no hay quien se organice las tardes en casa, con la cantidad de cosas que quiero hacer. Este proyecto está pésimamente gestionado, pero de eso ya hablaré en otro momento -o no-.

Y para prepararme, estoy retomando la lectura de mi biblia de J2EE. Como con Banksphere apenas escribes código y el poco Java que podemos picar es en métodos sueltos para cosas específicas y trabajando con los tipos de datos propietarios del cliente, no me va a servir de mucho la experiencia que tengo. Pero le voy a poner muchas ganas, quiero aprender todo lo que pueda. Así que, me estoy leyendo mi tomo de más de mil páginas para que me vayan sonando las cosas. En teoría el próximo lunes, día 21, estaré en el nuevo proyecto, pero es más que probable que me tenga que quedar en éste un par de días más. Pero no importa, estoy consiguiendo huir de Mordor.

La segunda razón de la nueva etapa es el hosting que me he cogido en bluehost. Tengo muchísimo espacio que aprovechar. De momento he creado este blog que va a tratar exclusivamente de mis experiencias en el mundo de la informática, sobre todo en el área de programación. Hablaré de mis proyectillos, de las cosas que vaya desarrollando, de lo que ya haya desarrollado que pondré por aquí para que os lo podáis bajar y trastear con ello. Además, como me gusta el software libre, colgaré el código de lo que vaya desarrollando, para que me lo rajéis de arriba abajo y poder aprender de mis propios errores, que serán muchos y variados. Hablaré también de noticias relacionadas con aplicaciones web o con tecnologías de programación web como PHP o javascript. No pretendo ser un referente en el ’sector’, sino simplemente compartir mis vivencias y aprender de todos vosotros todo lo que pueda ;) Quién sabe, puede que incluso proponga algún proyecto grande y serio y podáis colaborar conmigo y compartir la gloria y la fama :P

Bueno, nos vemos en La Puerta Negra…