Noticias Weblogs Foros Wiki Código

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

PHPBSD.net » webmaster

Nueva edición de la PHP UK Conference

Febrero 24th, 2009 - [Enlace local]

Este Viernes 27 de Febrero nuestros amigos de phpLondon organizan su conferencia anual de PHP, la PHP UK Conference 2009, sin duda una de las conferencias de PHP con más renombre y una de las que cae relativamente cerca (si vives en España).

Este año pinta realmente interesante con presentaciones muy variadas, puedes revisar la agenda completa en la web del evento. Entre otros temas se hablará sobre como vivir (o sobrevivir) con los frameworks PHP, mitos sobre symfony, un poco de REST, Flex y AIR, Drizzle, PHP 5.3 y 6.0 (namespaces, funciones lambda, etc.)... incluso uno de Microsoft nos "intentará" descubrir Windows como servidor para aplicaciones PHP (esto no me lo pierdo).

Aunque entre viaje, estancia y entrada asistir tiene un coste considerable es una pequeña aventura PHP que merece la pena. Como siempre en este tipo de eventos a parte de los nuevos conocimientos que se puedan adquirir se ha de valorar la posibilidad de networking con un buen número de gurus en la materia.

PS: y si el presupuesto no te lo permite (o en tu empresa no quieren pagártelo) siempre puedes esperar a la siguiente edición de la PHP Barcelona Conference :)

Entradas relacionadas:


» Leer más, comentarios, etc...

más que código - Articulo - Programación

Crear una versión para móviles

Febrero 23rd, 2009 - [Enlace local]

La semana pasada preparé la versión para móviles de Libro de Notas. La versión para móviles se puede ver aquí: Libro de Notas – Versión Movil.

Recuerdo que hace años, la creación de un sitio para móviles tenía su complicación, porque se utilizaba toda una pila de protocolos y lenguajes propios. La verdad es que hoy en día resulta sencillo. Para crear una versión móvil:

» Leer más, comentarios, etc...

PHPBSD.net » webmaster

Administrar servidores web vía SSH sin contraseña

Febrero 22nd, 2009 - [Enlace local]

Desde hace muchos años y por mucho que evolucione el desarrollo web e internet el SSH, al igual que el CVS/SVN, sigue siendo una de las herramientas más usada para administrar aplicaciones web y sus respectivos servidores.

Una de las funciones que para mi resulta más útil del SSH a parte de lo evidente que es poder iniciar sesión en nuestro servidor, es poder ejecutar comandos remotamente y así fácilmente poder escribir scripts (PHP y/o de shell) que interactúen entre máquinas. Por ejemplo para subir la última release de nuestra web a producción, borrar cachés de disco, reiniciar algún que otro Apache que se ha quedado tonto, etc.

Algo que resulta muy útil en estos casos es poder usar SSH entre distintas máquinas sin necesidad de ir introduciendo la contraseña. Para conseguirlo, y entendiendo bien el riesgo de seguridad que puede suponer, hemos de seguir los siguientes pasos:

[1] Iniciamos sesión en el servidor A con el usuario que queremos dejar libre de contraseña y ejecutamos:

$ ssh-keygen -t rsa

[2] Añadimos la clave publica generada (.ssh/id_rsa.pub) al archivo de claves aceptadas del servidor B, por ejemplo vía SCP:

$ scp .ssh/id_rsa.pub usuario@B:.ssh/authorized_keys

Se ha de tener en cuenta que el anterior comando sobreescribe el archivo y podemos tener más de una clave aceptada en authorized_keys.

[3] Listos! Desde el servidor A ya podemos entrar en B sin contraseña. Si estamos logueados con el usuario correcto sólo será necesario ejecutar:

$ ssh B

Al programar en PHP por supuesto que siempre tienes la alternativa de realizarlo todo vía peticiones HTTP aunque para determinadas tareas y situaciones los scripts CLI son una gran alternativa (y los puedes hacer muy chulos usando ncurses).

Entradas relacionadas:


» Leer más, comentarios, etc...

PHPBSD.net » webmaster

Actualizar un WordPress a la última versión

Febrero 21st, 2009 - [Enlace local]

Es un procedimiento muy sencillo que está perfectamente detallado en la documentación de WordPress aunque quizás faltan un par de puntos por explicar un poco mejor.

Si nuestra intención es hacer borrón y cuenta nueva con nuestro blog eliminando todos los archivos pero conservando la base de datos los pasos a seguir son los siguientes:

[1] Como siempre antes de empezar cualquier tarea parecida backup de todo. Incluso es buena idea montar el blog entero en otro sitio para después poder comparar el viejo con el nuevo.

[2] Desactivamos todos los plugins y seleccionamos el tema por defecto. Aunque en nuestro caso como tenemos intención de borrar todos los archivos el nuevo WordPress desactivará todo lo que no encuentre.

[3] Borramos todos los archivos anteriores. Si tenemos el wordpress mezclado con otras cosas el comando en cuestión es algo como:

$ rm -rf index.php license.txt readme.html wp-* xmlrpc.php

[4] Descomprimimos la última versión de WordPress en el mismo sitio donde teníamos la anterior.

[5] Editamos el nuevo wp-config.php y añadimos los datos de conexión y nombre de la BD.

[6] Comprobamos en qué codificación está trabajando nuestro WordPress. Por ejemplo con:

mysql> show create table wp_posts;

Nos fijamos en el CHARSET utilizado y definimos DB_CHARSET con el mismo valor. En el caso de ser "utf8" no tenemos que tocar nada pero si estamos con "latin1" es necesario indicarlo en wp-config.php con:

define('DB_CHARSET', 'latin1');

[7] Iniciamos el programa de actualización apuntando el navegador a la URL habitual del dashborad (p.e. http://tublog.es/wp-admin/)

[8] Automáticamente aparecerá un mensaje diciendo que debemos proceder con la actualización de la BD. Hacemos clic en "Siguiente" y cruzamos los dedos... si todo va bien te aparecerá algo como "Update successful".

[9] WordPress casi actualizado!

Digo casi porque casi seguro vamos a necesitar realizar alguno de lo siguientes pasos adicionales:

Entradas relacionadas:


» Leer más, comentarios, etc...

Ideas + Ingeniería del Software

¿Qué hacer cuando los usuarios/clientes se ponen nerviosos?

Febrero 20th, 2009 - [Enlace local]

Como dirían en El Hormiguero... "¡Los usuarios, ese gran desconocío''!"



Hoy se nos han puesto nerviosos los usuarios/clientes. Hacemos aplicaciones a medida, y hace un par de semanas tuvimos la última reunión (aún hay requisitos sin cerrar, pero bueno, tenemos claro que tenemos que aprender a convivir con eso). Nos han perido que quieren ver algo cuanto antes (obviamente cambiando la planificación acordada).



Ante una situación así se me ocurren tres alternativas:

a) Como no es lo pactado, nos ceñimos a lo hablado, así que dentro de mes y algo nos vemos. Hasta entonces, dejadnos tranquilos.

b) Ok, el cliente siempre tiene la razón, así que nos adaptamos. Cambiamos la duración del sprint, adelantando la demo, aunque reduciendo el número de historias de usuario que presentamos.

c) Nos mantenemos como estamos, pero, como el cliente siempre tiene la razón, os daremos versiones previas de prueba (abriendo acceso a alguno de nuestros servidores).



La a) es la típica en la programación por contrato, la ortodoxa, la que te enseñan en clase. Tiene sus ventajas y sus inconvenientes. Por un lado, sí, estás en tu derecho de "plantarte", ya que así está acordado. Pero por otro, no satisfaces la solicitud del cliente. Personalmente no me gusta. Predispones al usuario a tirar a la basura lo que le enseñes en la fecha acordada. Y, no lo olvidemos, en ese momento pueden tener razón (sí, señores, los desarrolladores también nos equivocamos).



La b) es la que inicialmente pensamos. No es demasiado mala, ya que no aumenta la "densidad de trabajo", y contenta a los usuarios. Pero presenta varios problemas. La duración del sprint no se debe cambiar, y mucho menos por gente no comprometida. Además, es tarea específica del Scrum Master evitar este tipo de situaciones. Y, dejando ya de lado Scrum, te permite menos margen de error. Aunque la "densidad de trabajo" no cambie, es más difícil cumplir el plazo.



La c) es la que finalmente se va a tomar. No sólo no rompe reglas de la metodología, sino que va a potenciar que el trabajo se haga como se debe. Ya habíamos quedado clara la "definición de hecho" y la integración contínua, así que en cualquier momento se podría desplegar el código del repositorio para probar. Y, además, permite satisfacer la necesidad del usuario (¡incluso mejor que con la opción b), ya que podrá ver más antes) e implicarle más. Tendremos feedback antes, minimizando el impacto del cambio de requisitos. Queda claro (tanto para el equipo como para el usuario) que la fecha de la demo es cuando debe estar el producto estable, que hasta entonces sólo estará viendo una versión en desarrollo.



En teoría todo pinta bien, ya veremos en la práctica :)

» Leer más, comentarios, etc...

PHPBSD.net » webmaster

PHPBSD.net actualizado!

Febrero 18th, 2009 - [Enlace local]

Por fin me he sacado de encima una de las tareas pendientes más pesada que me había propuesto para este año: actualizar este blog a la última versión de WP, la 2.7.1.

Ahora que ya está hecho (y parece que todo funciona) confieso que he migrado desde una versión de WordPress 2.0.4 con más de 20 plugins, modificaciones por todos sitios, etc. en definitiva ha sido todo un mini-proyecto por mi culpa, ya sabía yo que este día llegaría y que con la cantidad de modificaciones que le había hecho al anterior WP fliparía :)

Decir que ha sido un borrón y cuenta nueva sólo conservando la base de datos, en un siguiente post ya contaré los detalles, pero por la parte que le toca a WP el proceso ha sido bastante limpio y sencillo a excepción de algún problema de codificación, ahora WP trabaja con UTF-8 por defecto.

PS: Todo sea para intentar darle algo más de vida a este blog.

Entradas relacionadas:


» Leer más, comentarios, etc...

Ideas + Ingeniería del Software

Redes Sociales (I): el arranque en frío

Febrero 15th, 2009 - [Enlace local]

Las redes sociales basan su funcionamiento en el comportamiento de las personas que las conforman, y, como sistema humano que son, presentan ciertos fenómenos más o menos indeseables.

Uno de ellos es el fenómeno del arranque en frío. En general se refiere a que, dada una situación inicial de un sistema o un elemento (en función del contexto el significado de inicial varía), su estado posee una gran inercia, por lo que es difícil que comience a funcionar.

Esta propiedad, como otras tantas cosas en informática, puede verse a muchos niveles. La aplicación más amplia puede ser el arranque en frío de la red en sí misma: por lo que sea planificas la creación de una nueva red social -justo lo que el mundo necesita-, pero al no tener usuarios los usuarios no se registran, en forma de problema recursivo. El éxito de una red social es el uso que de ella den los usuarios y sus interacciones, por lo que, al estar vacía, tiene poco valor.

Se proponen varias soluciones:

Yo añadiría otras:

Si nos "acercamos", encontramos un nuevo caso de problema de "arranque en frío": el de el contenido nuevo. La primera vez que leí al respecto fue referido a last.fm, el servicio en el que los usuarios envían sus preferencias musicales. El problema es, esencialmente, que hay contenido que parte con tanta ventaja (Los Beatles, Rolling, Radiohead, Coldplay...) que es difícil que el nuevo cobre relevancia. Yo lo notaba con la característica de "reproducir artistas similares" del magno reproductor Amarok. Pusiese lo que pusiese, a eso de una o dos horas los Beatles o los Rolling hacían de agujero negro: al final el contenido que suena acaba estando relacionado con ellos, y se convierten en lo único que reproduce el sistema.

Este problema es difícil de combatir por su propia esencia. De hecho, alguno podría discutir que no se debe combatir, y que el éxito del contenido de una red no debe estar manipulado. Si las fotos de rosiehardy son tan buenas, ¿por qué no debe estar abonada a la portada del explore?

Como para todo, hay soluciones, al menos parciales:

» Leer más, comentarios, etc...

Ideas + Ingeniería del Software

Estrategias motivadoras ‘alternativas’

Febrero 12th, 2009 - [Enlace local]

Mi pareja lleva una agencia de viajes Ecuador en Valladolid (enlace patrocinado ;) ) y hoy me contaba que en uno de los cursos a los que va a ir son muy dados a hacer que la gente participe a base de premios. Cuando alguien responde una pregunta, le dan un detalle (un imán o similar). Obviamente el "premio" no es la finalidad, ni del curso ni de los asistentes, pero convierten algo que normalmente es aburrido y unidireccional en algo más divertido y, sobre todo, más participativo.

Siempre habrá alguno que diga que esto es algo estúpido e incluso una falta de respeto, poco profesional, que es como las sardinas de las focas o los plátanos de los monos... ¿Vosotros lo veis así? Yo no. Ojo, sólo hablo de premios "alternativos", no incentivos "de verdad" (económicos o, en general, caros, eso es tema para otro post).

En mi opinión, estos premios alternativos son más que un juego, que permite establecer una relación de confianza mayor. Los resultados son claros: más gente va al curso, la que va se lo pasa mejor, y además, participa.



¿Incentivos como estos son aplicables a la gestión de proyectos o, en general, a una empresa de desarrollo de software? No hablo de algo que vaya a aumentar la productividad de forma generalizada o una nueva bala de plata, sólo algo positivo, de escasa importancia. Últimamente estoy teniendo que dar más charlas de las que me gustaría, y noto que son bastante pesadas. Hago lo posible por mejorar la participación, pero no es fácil. Incluso el trabajo diario se podría intentar hacer algo más ameno (sí, ya sé que es trabajo, y sí, sé que no somos niños y no hay por qué convertir todo en un juego, pero a nadie le amarga un dulce).

Alguno hay ya en marcha: para Hudson, el sistema de integración contínua, hay un plugin que se llama "El Juego de la Integración Contínua". En resumidas cuentas, se dan puntos por "hacer las cosas bien": añadir pruebas, participar en compilaciones correctas, mejorar las métricas de calidad... Yo lo he instalado en nuestro servidor, en unas semanas os diré cuál es el balance.

Obviaremos el sistema de logros para Eclipse ;)

No se necesita nada tecnológicamente elevado, con una caja de cartón puede valer. Un par de personas en el anterior despacho hicimos una hucha de fails, cada vez que cometíamos una burrada poníamos 10 céntimos.



¿Qué opináis? ¿Tenéis trucos para hacer vuestras exposiciones más llevaderas? ¿Y en el trabajo?

» Leer más, comentarios, etc...

design-nation.blog/es

Keep Your Word 1.4.2 es “Staff Pick” en Apple downloads

Febrero 12th, 2009 - [Enlace local]

Keep Your Word 1.4.2 ha visto la luz hoy mismo, junto con su acompañante para iPhone (Keep Your Word Reader).

La principal novedad de esta versión es el cliente para iPhone, gratis por ahora, que permite llevarse a cualquier parte un diccionario o una parte del mismo.

Pero eso no es lo único nuevo. Flash cards imprimibles, y varios bugfixes completan el release.

Y como decía en el título, KYW es, en este momento, featured download y portada en apple.com/downloads

» Leer más, comentarios, etc...

.: El Blog de Inwe :. » Programación

Resolver sudokus con MySQL

Febrero 11th, 2009 - [Enlace local]

Me ha resultado curiosa la siguiente forma de resolver sudokus, y es con una “simple” consulta MySQL, la cual nos puede resolver cualquier sudoku y en tiempo record. La consulta, no es precisamente corta, ya que hay que incluir en ella cada cuadrado, es decir, en un sudoku normal, las 81 posiciones (9 filas y 9 columnas), y especificar los valores que se conocen a priori.

Podéis probar la consulta: Sudoku.sql

Via: Juokaz.com

Entradas relacionadas

» Leer más, comentarios, etc...

Ideas + Ingeniería del Software

Resolución de problemas

Febrero 8th, 2009 - [Enlace local]

Uno de los indicadores más claros, en mi opinión, de la validez (aptitud y actitud, principalmente) de alguien en un trabajo es la forma en la que afronta un problema. Por ejemplo, plantear un problema en una aplicación web en una entrevista de trabajo, puede permitir conocer muchas cosas del entrevistado:

Cuando alguien me pide ayuda y su discurso está plagado de "no sé", "esto debería funcionar", "antes iba bien", tiemblo, y si encima se remata con un "no, no he probado eso" o "espera que miro qué pone el error", directamente se me cae el alma a los pies. Es habitual decir que un ingeniero se dedica a resolver problemas. Viendo la ineptitud que a veces presentamos para hacerlo, no me extraña que nadie considere la Informática una Ingeniería.



Me encantan 'C.S.I.' y 'House'. Ambas tienen en común que el leitmotiv es la resolución de un problema. La primera se centra en la recopilación de pruebas, mientras que la segunda es sobre investigación del problema en sí y prueba y error. De hecho, ofrecen dos perspectivas diferentes de cómo afrontar un problema:

En mi opinión en informática la resolución de errores se asemeja a House. Cuando encuentras un fallo (aparece un síntoma), hay que...

  1. Pensar posibles lugares problemáticos (posibles enfermedades): ¿problema de configuración del servidor? ¿Fallo en la lógica de negocio? ¿Problema con el acceso a datos?

  2. Hacer los análisis no costosos ni intrusivos: "¿está enchufado?" "¿El usuario y password son correctos?" "¿La base de datos está levantada?".
  3. Priorizar (por probabilidad y coste) los problemas posibles, y comenzar la prueba y error. Nota: quita el tratamiento después de cada prueba (deja el código como estaba).
A éstos añadiría un punto 0 que no encaja en la analogía: prepara una prueba que primero demuestre que hay un problema, y que después te sirva para demostrar que lo has resuelto.

» Leer más, comentarios, etc...

Ideas + Ingeniería del Software

¿Los usuarios a la tecnología o la tecnología a los usuarios?

Febrero 8th, 2009 - [Enlace local]

Hace un mes abría una incidencia con Orange porque la velocidad de sincronización me había bajado aproximadamente a la mitad. El otro día me llamaban para cerrar la incidencia, indicándome que la culpa sería de Telefónica, que habría venido más ADSLs en la zona, por lo que la velocidad se reduce. Intenté no pagar mi indignación con la pobre señorita del teléfono, pero hay varias cosas que claman al cielo...

Dejemos al margen mis problemas con Orange. En Nubeblog enlazaron, casi coincidiendo con lo anterior, unos datos sobre que las PYMES pasan (sic) del Cloud Computing.

Estos dos hechos me llevaron a una discusión filosófica (soy mucho de filosofar contra mí mismo). ¿Cuántos detalles técnicos debe conocer un usuario?



¿Para qué quiere una PYME saber qué es el Cloud Computing? ¿Para qué quiero yo saber que mi problema es porque tienes malas condiciones respecto a la reventa de la línea? Dime que me vas a hacer un backup a través de Internet a un 10% de mi coste actual. Dime que no se puede ofrecer un servicio de más calidad en mis condiciones y ofréceme otra oferta... Ahorrate lo demás, ¡no me importa!



Haz buenos productos sin entrar en tecnicismos y detalles que no le aportan nada al usuario. Lo demás es autobombo (o excusas).

» Leer más, comentarios, etc...

knocte :: MonoTema

My first .NET runtime wishlist item

Febrero 4th, 2009 - [Enlace local]

Heh, I came up with this while coding a patch for Banshee:public class TestStaticInits{  public static readonly X var = new X ("Hello" + world);  private static string world = " World";}public class X{  public X (string s)  {    Console.WriteLine (s);  }  public override string ToString () { return "Bye"; }}public class WishList{  public static int Main(string[] args)  {    Console.WriteLine (

» Leer más, comentarios, etc...

.: El Blog de Inwe :. » Programación

Informático freilan de todos los santos

Febrero 3rd, 2009 - [Enlace local]

Interesante oferta de empleo que hemos visto esta tarde por Infojobs. Buscando las ofertas que hay por Murcia, nos encontramos con la siguiente, e interesante oferta, donde buscan informáticos freilan para meter contenidos en páginas wed:

Informático freilan

Lo curioso de la cosa es, que a día de hoy, ya habían 17 personas inscritas.

Enlace: Infojobs

Entradas relacionadas

» Leer más, comentarios, etc...

Ideas + Ingeniería del Software

X enlaces de los X últimos días

Febrero 1st, 2009 - [Enlace local]

Unas cuantas cosas de las que he compartido en Google Reader en los últimos días.



¿Tu informático está trabajando?

Estados mentales de un informático, desde el 100% improductivo hasta el flow.



Seven Principles of Lean Software Developement

La semillita que papá puso en mamá para dejar de parchear el desarrollo en cascada mediante desarrollo por contratos, de la cual salieron las metodologías ágiles.



Salesforce.com Agile Transformation

Soy un adicto de los casos reales. Aquí vemos cómo Salesforce.com adoptó metodologías ágiles.



Can You Cure the Copy/Paste Disease?

Sí, sé que sufro micromanagementitis, pero nunca dejaré de amenazar con cortar dedos a quien cortapegue, y me gustan los artículos que me dan la razón (soy así :) ).



Agile in the Trenches

Más casos reales. Creo que un caso así demuestra la utilidad, a veces puesta en duda, de un Scrum Master.



OFFTOPIC: Que llueva, que llueva

La convivencia en pareja trajo consigo una negociación en la que intercambiamos los gorgoritos de los triunfitos por las carreras de Alonso, los Nadal - Federer, y unos cuantos tuercebotas. Dicho sin prosa, a cambio de ver deporte sin discutir, durante unos meses al año tengo que soportar Operación Triunfo.

El programa en sí no es tan terrible. El esfuerzo de la música en directo no es habitual en televisión estos días, y que todos, participantes e invitados, interpreten en directo, es bueno. Y siempre hay alguno que canta bien, eso es así. Además la música de fondo siempre es muy buena (en el último año escuché Muse, Coldplay, Los Planetas, Arcade Fire...), ya sólo queda que promocionen esa en vez del último hit de Vale Music. No me gusta el lado reality, pero, por encima de todo, me disgusta la idiotización musical que este programa ha producido. En los últimos castings se hacía patente: la mayor parte de los adolescentes que engordaban las infinitas colas de candidatos habían vivido sólo con Operación Triunfo. Cuando se les ponía a prueba con una canción no conocían la versión original, sino la del anterior triunfito. Se piensan que triunfar es salir de ese programa. Dadme a un currante de garitos madrileños como Luis Ramiro, Marwan o Andrés Lewin, y retirad del mercado los clones prefabricados.

Al grano, que me voy por las ramas.

En las últimas ediciones el principal interés pasó del escenario al jurado, a Risto Mejide. Tengo que admitir que, como el 90% de la audiencia, disfruto sus minutos como un niño. Su personaje de publicista hiriente y odioso me encanta, pero lo que se puede ver más allá me parece también del máximo interés. Más allá de su fachada, nos ha dejado estos días un artículo directo, sincero y, en mi opinión, terriblemente acertado. Quien quiera estancarse en la mediocridad y dejarse llevar por el torrente de la crisis, que lo haga. Pero que no venga luego lloriqueando.



Programación Basada en Google

Desconozco si Julio César Pérez figura en esas listas de gurús, pero su blog me encanta. Pocas entradas, pero admirablemente escritas, y siempre de valor. En general es un tipo práctico (atajos de Eclipse, ejemplos de código...) pero esta vez hace una reflexión muy acertada sobre un antipatrón de desarrollo que todos reconocemos.

» Leer más, comentarios, etc...

Información legal y técnica