Noticias Weblogs Foros Wiki Código
Sponsors:

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

PlanetaCódigo en inglés

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.

Archivos

Idea: Juanjo Navarro

Diseño: Albin

Nuevos Programadores

Cómo aprender a programar desde cero?

Enero 7th, 2009

Esta es una pregunta que me han hecho más de una vez a través del formulario de contacto, y es una de las más difíciles de responder, por eso decidí publicar este post con la esperanza de que con los comentarios se pueda ayudar a quienes quieren introducirse en el maravilloso mundo de la programación.

Yo, en lo personal, no aprendí sólo, hice la carrera Analista Programador en ORT, que me dió las bases para entender algunas cosas y el resto lo fui aprendiendo, primero dedicando horas a probar cosas en mi casa y más tarde, cuando empecé a trabajar, fui aprendiendo por medio de necesidad. Por cierto, creo que trabajando se aprende más que en cualquier escuela.

Pero creo que para aprender a programar por cuenta propia, lo más importante es tener ganas y mucha paciencia. Si tienes esas 2 cualidades, entonces te puede llegar a ser muy fácil, o al menos más fácil que si tienes poca paciencia, y ni hablar si no te gusta o tienes pocas ganas de aprender. Después de todo, lo más interesante de ser programador es que todos los días aprendes algo nuevo.

En cuanto a qué hacer para aprender, yo siempre aconsejo empezar por la teoría, por ejemplo un buen libro de Programación Orientada a Objetos, como para ir aprendiendo conceptos. Después de tener los conceptos claros, es hora de elegir un lenguaje y empezar a probar, para elegir el lenguaje hay que tener en cuenta varios factores, primero que nada la plataforma y luego qué se desea hacer. Yo recomendaría empezar con un lenguaje de bajo nivel, como C/C++, ya que hay muchos conceptos que no se aprenden si utilizas lenguajes de más alto nivel, por ejemplo VB.Net.

Y en principio es todo lo que puedo aconsejar, espero que los comentarios ayuden a mejorar la idea de este post y poder así ayudar a quienes quieren ser Nuevos Programadores Autodidactas.

Posts aleatorios

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

Variable not found

Top posts 2008 en Variable not found

Enero 6th, 2009

img style="float:right; margin:0 0 10px 10px;" src="http://2.bp.blogspot.com/_O9D62hXq-ng/SV9mrpVuyxI/AAAAAAAAA-M/7n4_aQHEdrk/s400/medalla.jpg" border="0" alt="Medalla olímpica" id="BLOGGER_PHOTO_ID_5287057387573660434" /A lo largo de 2008 se han publicado en a href="http://www.variablenotfound.com" title="Variable not found"Variable not found/a un total de 90 posts, se dice pronto. Y a href="http://www.guzmanurrero.es/index.php/Literatura/Hay-de-todo-como-en-botica.html" title="El origen de la expresión 'hay de todo, como en botica'"como en botica/a, seguro que hay de todo: buenos, malos, divertidos, tostones insoportables, útiles, absurdos, prácticos, teóricos, frikadas...br /br /A continuación enumero las entradas que más visitas han tenido durante 2008, lo cual probablemente es un parámetro objetivo del interés que han despertado y siguen despertando algunos temas. No todas ellas han sido redactadas en 2008, algunas vienen de atrás, pero su popularidad ha hecho que sigan recibiendo visitas a pesar de su antigüedad.br /br /En primer y segundo lugar respectivamente, y con gran diferencia respecto a sus inmediatos seguidores, los posts "a href="http://www.variablenotfound.com/2008/04/otras-101-citas-clebres-del-mundo-de-la.html" title="Otras 101 citas célebres del mundo de la informática"Otras 101 citas célebres del mundo de la informática/a" y "a href="http://www.variablenotfound.com/2008/02/101-citas-clebres-del-mundo-de-la.html" title="101 citas célebres del mundo de la informática"101 citas célebres del mundo de la informática/a" se llevan la palma. Ambas entradas han sido ampliamente referenciadas, meneadas, citadas, resumidas, e incluso copiadas y pegadas literalmente hasta la saciedad.br /br /El tercer lugar lo ocupa "a href="http://www.variablenotfound.com/2007/09/bordes-redondeados-en-webs-sin-esfuerzo.html" title="Bordes redondeados en webs sin esfuerzo con Nifty Corners Cube"Bordes redondeados en webs sin esfuerzo con Nifty Corners Cube/a", un post de 2007 donde comentaba el uso de las librerías Nifty como vía para redondear elementos de páginas web sin luchar contra Photoshop. Gracias a esta continuada afluencia de visitantes escribí a href="http://code.google.com/p/niftydotnet" title="Web del proyecto NiftyDotNet"NiftyDotNet/a y a href="http://www.variablenotfound.com/search/label/niftydotnet" title="Posts sobre NiftyDotNet"algunos posts/a para presentarlo y comentar sus posibilidades.br /br /A continuación, la cuarta posición la ocupa un breve tutorial sobre cómo "a href="http://www.variablenotfound.com/2007/05/llamar-mtodos-estticos-con-aspnet-ajax.html" title="Llamar a métodos estáticos con ASP.NET Ajax"Llamar a métodos estáticos con ASP.NET Ajax/a", donde describía el uso de Pagemethods para el intercambio de información entre cliente y servidor en aplicaciones web. Como ya ocurrió a href="http://www.variablenotfound.com/2008/01/top-posts-2007-en-variablenotfoundcom.html" title="Top posts 2007 en variablenotfound.com"el año pasado/a, a href="http://www.variablenotfound.com/search/label/ajax" title="Ajax en Variablenotfound.com"Ajax/a sigue siendo una temática por la que muchos lectores se acercan a este rinconcillo de la red, y ha seguido así tras la entrada en escena de a href="http://www.variablenotfound.com/search/label/ajax" title="jQuery en Variablenotfound.com"jQuery/a como a href="http://www.variablenotfound.com/2008/09/jquery-microsoft-y-t.html" title="jQuery, Microsoft y tú"producto oficial/a de las herramientas de desarrollo de Microsoft.br /br /La quinta posición va para los "a href="http://www.variablenotfound.com/2007/12/13-consejos-para-comentar-tu-cdigo.html" title="13 consejos para comentar tu código fuente"13 consejos para comentar tu código/a", un post de finales de 2007, que ha continuado atrayendo lectores. Como curiosidad, he de añadir que ha sido traducido al a href="http://www.devtopics.com/13-tips-to-comment-your-code/" title="13 tips to comment your code" hreflang="en"inglés/a, al a href="http://www.cnblogs.com/Willson/archive/2008/07/23/1249805.html" title="13 consejos para comentar tu código, ¡en chino!"chino/a y no sé si a algún otro más, y al menos en el primero de ellos ha tenido una difusión impresionante.br /br /En el post a href="http://www.variablenotfound.com/2008/10/las-10-cosas-que-ms-fastidian-los.html" title="Las 10 cosas que más fastidian a los programadores"Las 10 cosas que más fastidian a los programadores/a comentaba los resultados de una consulta realizada en a href="http://www.stackoverflow.com" hreflang="en" title="Visitar Stackoverflow.com"Stackoverflow/a sobre factores de irritación frecuentes en los desarrolladores, ampliándola con otros puntos de propia experiencia.br /br /La séptima posición la ocupa la entrada a href="http://www.variablenotfound.com/2007/11/evitar-el-postback-al-pulsar-un-botn-en.html" title="Evitar el postback al pulsar un botón en ASP.Net ""Evitar el postback al pulsar un botón en ASP.Net"/a, creado a partir del análisis de palabras clave por las que se llegaba a Variable not found, en las que se veía claramente que los problemas con el postback y, en general el modelo de eventos de ASP.NET, eran causas de dolor de cabeza para los desarrolladores. En el post detallaba algunos escenarios por los que podría interesarnos anular la vuelta al servidor de un formulario, describiendo distintos métodos para conseguirlo.br /br /En el puesto número ocho, las a href="http://www.variablenotfound.com/2008/01/32-tcnicas-de-produccin-de-ideas.html""32 técnicas de producción de ideas"/a, enumeraba un buen puñado de técnicas utilizadas para favorecer la creatividad y generar ideas.br /br /img src="http://2.bp.blogspot.com/_O9D62hXq-ng/RvvsMj32JmI/AAAAAAAAAJk/FznlrxNcIQQ/s320/cola.jpg" style="float: right; padding: 0 0 10 10; width: 150px;" alt="Gente, mucha gente" /Le sigue en número de visitas todo un clásico, a href="http://www.variablenotfound.com/2007/09/10-motivos-por-los-que-tu-blog-te-ayuda.html" title="Tu blog te ayuda a encontrar empleo""10 razones por las que tu blog te ayuda a encontrar empleo"/a, un post en el que meditaba sobre las ventajas que podría aportar un blog a la hora de buscar trabajo, en este competitivo mundo que estamos.br /br /Por último, a href="http://www.variablenotfound.com/2008/11/20-desastres-famosos-relacionados-con_2936.html" title="20 desastres famosos relacionados con el software""20 desastres famosos relacionados con el software"/a, una traducción autorizada de un post a href="http://www.devtopics.com/20-famous-software-disasters/" title="20 famous software disasters" hreflang="en"en inglés/a donde enumeraba problemas provocados, en mayor o menor medida, por el software.br /br /Ya por debajo de estos se encuentran entradas también muy populares, pero no lo suficiente como para colarse en este Top Ten, como a href="http://www.variablenotfound.com/2008/03/crea-un-traductor-en-tu-web-con-google.html" title="Crea un traductor en tu web con Google AJAX Language API""Crea un traductor en tu web con Google AJAX Language API"/a, a href="http://www.variablenotfound.com/2008/05/8-curiosidades-que-quizs-no-conocas.html" title="8 Curiosidades sobre los emoticonos""8 Curiosidades sobre los emoticonos"/a, a href="http://www.variablenotfound.com/2008/05/qu-huele-tu-cdigo.html" title="El aroma de tu código""a qué huele tu código"/a, o los a href="http://www.variablenotfound.com/search/label/aspnetmvc" title="Posts sobre ASP.NET MVC"posts sobre ASP.NET MVC/a, que tímidamente van tomando posiciones en el ranking.br /br /¡Ah, aprovecho para desearos a todos un feliz y próspero 2009! :-)br /br /Publicado en: a href="http://www.variablenotfound.com"www.variablenotfound.com/a. pa href="http://feeds.feedburner.com/~a/vnf?a=TW12KD"img src="http://feeds.feedburner.com/~a/vnf?i=TW12KD" border="0"/img/a/pdiv class="feedflare" a href="http://feeds.feedburner.com/~f/vnf?a=SLEwgM.P"img src="http://feeds.feedburner.com/~f/vnf?i=SLEwgM.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/vnf?a=XbxYNJ.P"img src="http://feeds.feedburner.com/~f/vnf?i=XbxYNJ.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/vnf?a=27EoVA.P"img src="http://feeds.feedburner.com/~f/vnf?i=27EoVA.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/vnf?a=PX8nHt.p"img src="http://feeds.feedburner.com/~f/vnf?i=PX8nHt.p" border="0"/img/a a href="http://feeds.feedburner.com/~f/vnf?a=PVN58x.p"img src="http://feeds.feedburner.com/~f/vnf?i=PVN58x.p" border="0"/img/a a href="http://feeds.feedburner.com/~f/vnf?a=1kbsfk.p"img src="http://feeds.feedburner.com/~f/vnf?i=1kbsfk.p" border="0"/img/a /divimg src="http://feeds.feedburner.com/~r/vnf/~4/504714166" height="1" width="1"/

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

Picando Código

Disponible revista Linux+ DVD Enero 2009

Enero 6th, 2009

Disponible la primer revista Linux+ del año, ¡ya en el número 50! El tema central de esta edición es el eCommerce, además cuenta con la exitosa Ubuntu 8.10 en el DVD incluido.

Linux + DVD Enero 2009

eComercio

En el DVD adjunto:

# Ubuntu 8.10 Intrepid Ibex
LiveDVD

# CPC Negocio Virtual
Un año de hosting gratuito del que puedes disfrutar gracias a ConsultorPC

Y los siguientes artículos:

* eComercio: Negocio abierto 24 horas
* Tiendas Online en móvil: Futuro de eComercio
* SEM: Técnicas de marketing en buscadores
* Comercio electrónico: una oportunidad ante la crisis
* Airpwn: Aprendemos a asegurar nuestra red inalámbrica
* Creación de una distribución personalizada: Guíamos el proceso paso a paso
* OpenOffice Calc: Tomando decisiones más importantes
* Inguma: Investigando vulnerabilidades de nuestro sistema

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

Picando Código

Desarrolladores .NET: ¿los turistas Norteamericanos de la industria del Software?

Enero 6th, 2009

.netÉste post está basado en algo que leí en un blog que conocí hace un tiempo de un desarrollador .NET americano, Russell Ball. El blog se llama Caffeinated Coder, y ahí ya hay algo que comparto con éste desarrollador: la cafeína y picar código.

Aviso que este post generó mucha polémica en el blog original, ya que ataca la sensibilidad de los Norteamericanos. No se lo tomen a pecho, es totalmente subjetivo y una opinión.

El autor escribió éste artículo con un punto de vista muy interesante, tomando en cuenta que es desarrollador .Net él mismo, además de Norteamericano. Compara a los desarrolladores .NET en la industria del software, con los turistas Norteamericanos en el resto del mundo. Es una comparación, a mi criterio acertada en los fundamentos que plantea.

Como todos sabemos, comenta, una gran parte de la industria desprecia a Microsoft como compañía. Se concentra en el siguiente corolario:

El mismo segmento de la industria de software que no quiere a Microsoft también ve a los desarrolladores que usan herramientas y lenguajes de Microsoft como intrínsecamente menos habilidosos y menos capaces.

El estereotipo sobre los desarrolladores .NET es que no conocerían una “mejor práctica de software” o entender un principio de ciencias de la computación si los mordiera recursivamente en el trasero. Inmediatamente me acordé de la frase “Visual te hace todo solo.” Muchos desarrolladores o estudiantes que he conocido, generalmente se cierran en lo que saben de Microsoft .NET y no salen de eso.

¿Porqué existe éste estereotipo y está merecido?

Luego de recibir algunos comentarios bastante duros, pensar y pasar por fases de rabia, negación y racionalización (no lo olviden, él es desarrollador .net), Ball llegó a la siguiente conclusión:

Los desarrolladores que no se ganan a vida de tecnologías basadas en Redmond no quieren a los desarrolladores Microsoft por algunas de las mismas razones que las personas de otros países no quieren a los Norteamericanos. Advierte a sus compatriotas, que si están sorprendidos, es la verdad. Y la mayoría de nosotros lo sabemos, que la mayoría de la gente en el mundo no los quiere en general.

Sin entrar a nombrar las ofensas sociales, políticas, económicas y culturales que realizan sin darse cuenta a diario, se concentra en una ofensa psicológica general:

Los Norteamericanos son intrínsecamente molestos porque rara vez invierten algún esfuerzo en aprender algo acerca del mundo exterior.

Por ejemplo, un Norteamericano que conoce a alguien bien educado de otro país, estadísticamente hablando se va a encontrar que:

  1. El Norteamericano no va a hablar el lenguaje del otro, aunque el otro probablemente hablará Inglés.
  2. El Norteamericano no podrá ubicar el país del otro en un mapa, aunque el otro probablemente podría nombrar los 50 estados.
  3. El Norteamericano no sabrá quién es el líder nacional del país del otro, mientras que el otro no sólo sabrá el nombre del Presidente Norteamericano, sino también dará un resumen de las explotaciones de su política exterior en sus últimos dos períodos del cargo.

Se entiende la falta de interés y diplomacia por parte del Norteamericano. Lo que ve Ball es una dinámica similar con los desarrolladores .NET quienes olvidan totalmente al resto de los desarrolladores. El autor fue acusado en Reddit de “dividir el mundo de los lenguajes de programación en ‘lenguajes de Microsoft’ y ‘otros lenguajes’, nombrándolo “un buen punto”. Gracias a este razonamiento, se decidió por “viajar un poco”, para conocer más sobre las ofertas del resto del mundo del software.

Obviamente, como con todo, no se debe generalizar. Hay muchos desarrolladores .net que no cumplen con este estereotipo, y muchos turistas estadounidenses distintos al “general”. De todas formas, es un paralelismo interesante y debatible.

Seguramente los desarrolladores .net se sentirán ofendidos al leer este post, pero tienen que tomar en cuenta que fue escrito por un desarrollador .net, y es una apreciación personal y general. Una opinión que define de forma bastante acertada la opinión que el resto de los programadores tiene sobre ellos.

Como he dicho en otros posts sobre programación, considero que: un programador debe ser “programador” o “desarrollador” (ahí podemos entrar en otra discusión de qué es cada uno…), no “programador Java”, o “desarrollador PHP” o “desarrollador .Net”.

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

niko's mini factory

Links for 2009-01-05 [del.icio.us]

Enero 6th, 2009

ul lia href="http://chuslago.com/blog/"Expedicioacute;n Caixanova al Polo Sur/a/li /ul

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

Pensamientos ágiles

Lo más visto en Pensamientos ágiles durante el 2008

Enero 6th, 2009

Vaya vacaciones que me he pegado :) Han sido dos semanitas de vuelta en casa disfrutando de todo eso que se añora cuando vives en el extranjero. Es un tópico, pero quien se puede resistir a esas tapitas de pulpo, la empanada, el raxo con pimientos, ufff... bueno que empiezo a salivar y esto no era lo que os quería contar. br /br /El año pasado ya escribí a href="http://brigomp.blogspot.com/2008/01/los-artculos-ms-vistos-en-pensamientos.html"una entrada/a en la que hacía un resumen de lo mas leido en este blog durante el 2007. Pues obviamente tocará hacer lo mismo pero ahora con el 2008:br /br /ulbr /lia href="http://brigomp.blogspot.com/2008/05/cinco-preguntas-para-tu-prxima.html"Cinco preguntas para tu próxima entrevista de trabajo si te gusta el software/a. En esta entraba comentaba las que desde mi opinión pueden ser cinco buenas preguntas para evaluar si una empresa es un buen lugar de trabajo desde el punto de vista del aprendizaje y el software./libr /lia href="http://brigomp.blogspot.com/2008/02/qu-te-hace-falta-para-ser-el-mejor.html"¿Qué te hace falta para ser el mejor programador del mundo?/a. Y otra sobre entrevistas, y es que esta es una pregunta que puede caer. En mi opinión, modestia y un buen equipo a tu lado./libr /lia href="brigomp.blogspot.com/2008/04/est-uml-en-decadencia.html"¿Está UML en decadencia?/a Y es que a la hora de la verdad el PowerPoint le ha ganado la partida al UML. La gente o no lo sabe, o no lo usa bien, o simplemente reinventa su propio sabor de UML. ¿Ha fracasado? Opiniones para todos los gustos./libr /lia href="http://brigomp.blogspot.com/2008/03/anlisis-de-rendimiento-y-la-necesidad.html"Análisis de rendimiento y la necesidad de contratar especialistas/a. Lanzar una aplicación sin un análisis de rendimiento es una locura. Realizar un análisis de rendimiento sin tener los recursos ni las personas necesarias, es casi tan locura como lo anterior. Una solución: especialistas./libr /lia href="http://brigomp.blogspot.com/2008/04/opinin-sobre-spring-batch.html"Opinión sobre Spring Batch/a. A principios de año tuve la oportunidad de jugar con este framework, que me dejó buen sabor de boca y sobre el que publiqué mis opiniones personasl./libr /lia href="htp://brigomp.blogspot.com/2008/03/aprovechando-lucene-en-memoria.html"Aprovechando Lucene en memoria/a. Lucene es un framework enormemente flexible que permite construir índices en memoria para realizar búsquedas. En este post intento explicar como./libr /lia href="http://brigomp.blogspot.com/2008/07/algunas-notas-sobre-el-proceso-de.html"Algunas notas sobre el proceso de desarrollo en Linkedin/a. En Julio encontraba una presentación sobre el proceso de desarrollo en Linkedin. Me pareció tan buena que quise compartir algunas notas en este blog./libr /lia href="http://brigomp.blogspot.com/2008/09/el-arquitecto-j2ee-en-versin-espaola.html"El arquitecto de software en versión española/a. Se busca arquitecto de software con un año de experiencia en Java, para proyectos de primer órden. Deberá ser capaz de capturar los requisitos, modelarlos, desarrollar la aplicación, crear el plan de pruebas e impartir formación. Demasiado común./libr /lia href="http://brigomp.blogspot.com/2008/08/jlibrary-12-ve-por-fin-la-luz-historia.html"jLibrary 1.2 ve por fin la luz: Historia de una release/a. jLibrary 1.2 veía la luz y tocaba explicar como había sido el desarrollo. Quizás el proyecto no ha tenido todo el éxito que a mi me hubiese gustado pero el desarrollo ha sido muy interesante./libr /lia href="http://brigomp.blogspot.com/2008/04/la-vida-del-freelance.html"La vida del Freelance/a. Y un poco de humor en el puesto número diez./libr //ulbr /br /Y colorín colorado, un nuevo año se ha acabado. Y aunque con retraso espero que tengáis un muy feliz año 2009. pa href="http://feeds.feedburner.com/~a/Pensamientosgiles?a=KGyOya"img src="http://feeds.feedburner.com/~a/Pensamientosgiles?i=KGyOya" border="0"/img/a/pdiv class="feedflare" a href="http://feeds.feedburner.com/~f/Pensamientosgiles?a=AjAqTh.P"img src="http://feeds.feedburner.com/~f/Pensamientosgiles?i=AjAqTh.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/Pensamientosgiles?a=blkYsh.p"img src="http://feeds.feedburner.com/~f/Pensamientosgiles?i=blkYsh.p" border="0"/img/a a href="http://feeds.feedburner.com/~f/Pensamientosgiles?a=5eZwav.P"img src="http://feeds.feedburner.com/~f/Pensamientosgiles?i=5eZwav.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/Pensamientosgiles?a=EA1VIL.P"img src="http://feeds.feedburner.com/~f/Pensamientosgiles?i=EA1VIL.P" border="0"/img/a /divimg src="http://feeds.feedburner.com/~r/Pensamientosgiles/~4/504143973" height="1" width="1"/

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

Picando Código

FaltaUno.com: Red Social de Fútbol

Enero 6th, 2009

FaltaUno.com

Una de las promesas de este año. Vengo usando FaltaUno desde las primeras versiones beta, y ha progresado enormemente desde entonces. ¿Qué es FaltaUno?:

FaltaUno.com es la primera red social deportiva que te permite organizar tus partidos de fútbol 5 de una forma más rápida y fácil.

Registrate, buscá e invitá a todos tus amigos y ya podés buscar la cancha que más te guste, ya que podés ver cada una en un mapa dinámico de Montevideo y con solo hacer click vas a saber los horarios, precios, cantidad de canchas y hasta si hay techada.

Ahora podés crear tu partido e invitar a los que quieras de tus contactos o directamente a equipos si creaste uno.

A todos les llegará la invitación acá en la página y también vía mail con todos los detalles del partido.

Hacemos que organizar sea fácil, asi te dedicás a jugar!

Como lo dice su descripción, es una red social basada en el concepto de organizar partidos de fútbol. Es una de esas ideas que por su sencillez y practicidad, tiene un potencial enorme.

FaltaUno.com

Tengo que admitir que no soy un jugador regular de fútbol (ah, ¿ya se lo imaginaban? :P ), pero sí juego cada tanto (aunque paso más tiempo en el piso que con la pelota). Y un problema que se presenta bastante seguido es que falte un jugador (así entré a jugar al último partido de fútbol 5 que jugué, donde tuve varios accidentes con el piso…).

FaltaUno pretende simplificar la organización de un partido y mitigar el riesgo de que falte algún jugador. Por ahora el sitio está orientado a jugadores de Montevideo, Uruguay, pero tiene la intención de crecer a más departamentos del país, y probablemente… ¡EL MUNDO!

Al armar un partido, podemos encontrar las canchas en un mapa de la ciudad con Google Maps, y ver su información: precio, baños, si es cerrada, y todo con la practicidad de ver la ubicación y datos de contacto.

Desarrollado con un enfoque bien red social, tenemos la posibilidad de invitar amigos, ver canchas, organizar partidos, calificar amigos, crear equipos y enviarnos mensajes. Pueden leer más detalles al respecto en FaltaUno.com: funcionalidades. Prometen implementar nuevas funcionalidades a futuro como organizar campeonatos, acceder desde Facebook y Google, chatear y subir fotos y videos de los partidos.

En un momento se comentó la intención de poder avisar de un partido por SMS y que el jugador confirmara o su asistencia por este mismo medio. Esto se torna sumamente práctico, pero debe ser complicado por el tema de los costos de los SMS.

En conclusión, FaltaUno.com es un emprendimiento muy interesante por parte de programadores compatriotas, al que le veo mucho futuro por la excelente idea y lo bien implementado. Desde acá le deseo mucha suerte y los invito a todos a probar FaltaUno.com.

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

Picando Código

Arrancando 2009…

Enero 6th, 2009

Como habrán notado me tomé unos cuantos días de “licencia” del blog en estas fiestas. De todas formas es una buena excusa para despegarse un rato de la computadora y aprovechar para hacer otras cosas (playa, piscina, Nintendo DS, cerveza, asados, etc.).

Ya en el primer lunes del año, volvemos a la marcha. La verdad que después de unos días libres en el trabajo, cuesta volver a arrancar, pero ya estamos encaminados.

Para este año se vienen muchos retos laborales, y nuevos emprendimientos. Ya empecé con al menos uno de los tantos proyectos personales de esos que uno tiene rondando en la cabeza por un buen tiempo. Cuando esté algo más armado, comentaré al respecto.

¡Un saludo para todos los que leen! Y espero que sigan haciéndolo en este 2009 y se siga sumando gente a la “comunidad” de Picando Código.

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

xailer.info (esp)

Otro pasito más para Xailer 2.0

Enero 5th, 2009

Antes que nada, desearos a todos un prospero año nuevo y daros las gracias por la confianza depositada en Xailer que esperamos continúe en el futuro.

Volvemos a la carga con una nueva actualización del futuro Xailer 2.0 con importantes novedades que seguro van a ser de vuestro agrado. Pero lo que más me gustaría resaltar de esta nueva versión que publicamos es que es completamente funcional y segura. Os recomendamos sin duda a que empecéis a utilizarla en vuestros propios proyectos.

En cuanto empecéis a utilizar la capacidad de compilación en modo multiproceso os aseguro que no volveréis a usar la versión 1.9 ya que los tiempos de compilación y enlazado se reducen a menos de la cuarta parte en el caso de ordenadores con cuatro nucleos. Para más información sobre esta nueva característica consultar el siguiente artículo en este mismo blog: Compilar en modo ‘turbo’

En esta nueva actualización se incluyen importantes novedades (aparte de un montón de pequeñas mejoras) como:

Esta nueva versión incorpora la posibilidad de realizar DLLs de pcode que por supuesto también pueden incluir cualquier tipo de recurso. Este tipo de DLLs sólo pueden ser ejecutadas desde un programa escrito con Xailer ya que la máquina virtual no se encuentra en la DLL sino en el propio ejecutable. Este es el primer paso necesario para conseguir algo que muchos de vosotros habéis demandado como son los controles de terceros, la personalización de cualquier control nativo del IDE y la creación de asistentes.

Además de estas nuevas funcionalidades que pretendemos incluir en el IDE de Xailer a corto plazo, la creación de DLLs puede ser muy útil en vuestros propios proyectos ya que os permitirá que, por ejemplo, cada módulo importante de vuestra aplicación se encuentre en una DLL, y por lo tanto cuando haya cualquier modificación o mejora de dicho módulo, sólo haya que suministrar la correspondiente DLL al cliente, cuyo tamaño es siempre muy inferior al ejecutable ya que sólo incluye el pcode.

No hemos tenido tiempo de hacer un ejemplo de utilización de las DLLs, pero esperamos poder publicarlo en breve y tampoco hemos podido hacer toda la batería de pruebas que nos hubiese gustado por lo que si alguno de vosotros se anima a utilizarlas contáis con toda nuestra colaboración ya que es una prioridad para nosotros que está nueva prestación funcione de forma correcta.

Con la nueva versión que publicamos, la utilización del depurador se hace mucho más intuitiva y rápida, ya que el botón de compilar incluye un menú en el cual se puede realizar la compilación de sólo los módulos necesarios, la compilación completa del proyecto, la creación del ejecutable final y una opción de menú adicional que permite habilitar o deshabilitar el depurador, mostrándose un pequeño ‘bug’ en la imagen del botón cuando el depurador está habilitado. Os recordamos que desde la primera entrega de Xailer 2 está disponible la generación de módulos compilados diferenciados con y sin información de depuración, de esta forma, cada vez que cambiemos la forma de compilación, no será necesario recompilar el proyecto completo.

La nueva opción de ‘Ejecutable final’ permite realizar de una forma sencilla la creación del ejecutable que realmente va a entrar en producción, es decir, el ejecutable que va a ser utilizado por el usuario final. Para ello el programa muestra un pequeño diálogo inicial en el que se permite modificar la información de versión del ejecutable, a continuación pulsando el botón de ’siguiente’ el programa nos pedirá las opciones que deseamos realizar:

La primera opción nos permite indicar si sólo se deben compilar los módulos que realmente requieren su compilación o por el contrario se han de compilar todos los módulos del proyecto. De forma automática se deshabilita el depurador durante este proceso ya que no tiene sentido que el usuario final utilice una versión del programa que incluya información de depuración.

La opción de comprimir el ejecutable con UPX permite reducir el tamaño del ejecutable de forma considerable sin perder ninguna velocidad. Esta opción es muy recomendable, sobre todo si los ejecutables se van a instalar en un disco de red, ya que en dicho caso los tiempos de carga del mismo son mayores y por lo tanto si reducimos su tamaño dicho tiempo de carga será menor. Es posible indicar algún parámetro para dicho proceso. Por defecto, incluye un parámetro necesario para no comprimir la sección de exportación, que sólo es necesario en el caso de que se utilice ‘Advantage Database server’. Consultar la documentación de UPX (directorio Xailer\bin) para más información.

La tercera opción permite ejecutar un instalador cuando el proceso de creación del ejecutable final haya terminado. Para ello se incluye un control de edición que permite ejecutar nuestro instalador preferido, no siendo necesario poner la ruta completa del ejecutable sino tan sólo el nombre del fichero a abrir ya que el propio IDE se encarga de encontrar el programa asociado a la extensión de dicho archivo. En este control de edición es posible utilizar una serie de macros como directorio del proyecto, nombre del proyecto (sin extensión), directorio del ejecutable final y nombre del ejecutable (sin extensión).

Os recomendamos, sin duda alguna, la utilización del producto gratuito InnoSetup en conjunción con ISTool para la creación de vuestros instalables. El propio instalador de Xailer está construido con estas herramientas.

Otra de las grandes novedades de esta actualización, que ha sido igualmente muy demandada, es la posibilidad de manejar con el inspector de objetos más de un control a la vez. En versiones anteriores cuando se seleccionaba más de un control, el inspector de objetos mostraba las propiedades del último control seleccionado, y si cambiamos cualquier propiedad del mismo, tan sólo se modificaban las propiedades de dicho control. A partir de ahora cuando se seleccionan más de un control, en el inspector de objetos se muestra el conjunto de propiedades comunes a todos los controles. En el caso de que no todos los controles tengan los mismos valores en cada una de sus propiedades el valor de dicha propiedad aparecerá en blanco. Lógicamente si cambia el valor de cualquier propiedad, todos los controles seleccionados reflejaran el cambio. Lo mismo se aplica también a los eventos.

Una de las pocas limitaciones que tiene el motor de bases de datos SQLite en su versión gratuita es la imposibilidad de guardar la información de forma encriptada. Esta limitación se convierte en un handicap importante en la actualidad debido a las leyes restrictivas existentes sobre protección de datos. Existen versiones de pago de SQLite que incluyen dicha funcionalidad pero o son muy caras o exigen la compra del software por cada instalación que se realice. Por dichos motivos decidimos incorporar nuestro propio sistema de encriptación al motor de bases de datos SQLite de forma que se pueda utilizar sin tener que pagar royalty alguno y ya es actualmente completamente operativo, pudiendo encriptar o desencriptar cualquier base de datos con una simple llamada a una función. La velocidad del motor SQLite con tablas encriptadas no sufre ninguna ralentización. En nuestras pruebas las diferencias eran prácticamente nulas. También hemos modificado el administrador de bases de datos SQLite que incorpora el IDE para que soporte bases de datos encriptadas.

De la mano de Pedro Gil nos llega una importante novedad para los que utilizáis el control TRichEdit y es la posibilidad de convertir fichero RTF en HTML así como la conversión de ficheros en formato DOCX que es el nuevo formato de Word para versiones de Office 2007.

Actualmente estamos trabajando duro en áreas como:

La próxima actualización de Xailer 2.0 se publicará como producto comercial como Xailer 2.0 pre-release, abandonando definitivamente la venta de Xailer 1.9, aunque lógicamente seguiremos ofreciendo soporte de dicha versión. Pero os animamos a todos al cambio, como no podría ser de otra forma ;-)

Podéis descargar la nueva versión desde el siguiente enlace:

http://www.xailer.com/files/xailer20beta.exe

Requiere nueva versión de xHarbour que podéis descargar desde la siguiente dirección:

http://www.xailer.com/files/xharboursetup2.exe

Os recordamos que está versión de Xailer sólo está disponible para usuarios con suscripción activa. Leer el artículo Novedades de Xailer 2.0 para más información.

Un cordial saludo,

[El equipo de Xailer]

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

programania

Aproximación a JavaFx

Enero 5th, 2009

Buenas a todos hace tiempo que no escribía, en parte, porque he estado ocupado intentando investigar sobre Web Services. Vista la demanda de mi post me pareció interesante indagar más, pero al parecer, están siendo duros de pelar y mi tiempo libre no alcanza para abordarlos como deberían, no obstante, no cejaré en mi empeño y más tarde o más temprano conseguiré algo digno de ser publicado en Programania.

Ahora me interesaría indagar sobre JavaFx, hace tiempo que llevo leyendo sobre esta tecnología y todavía no me he metido con ella, es decir, este es un post de aproximación. He leído muchas cosas y me gustaría saber que hay de verdad en todo ello, o dicho de otra manera, en la práctica real del día a día que me ofrece JavaFx.

He leído en las crónicas de los sabios y gurús de Java que esta teconología pretende frenar el avance de Adobe como multiplataforma y de Microsoft, vamos que lo mismo va a valer para aplicaciones de escritorio, que para móviles, que para hacer Rich Internet Applications.

Yo soy el primero que un día me planté y me cisqué en Swing con todas las fuerzas de mi ser, de hecho, me he quejado en varias ocasiones o he dicho que había que avanzar en otra dirección, pero esto a priori, me parece demasiado bonito para ser verdad, así que de momento, voy a establecer mis bases a modo de carta a los reyes magos de Java para ver que puntos se cumplen.

Queridos reyes magos de Java me gustaría que JavaFx cumpliera estas cosas:

Son cuatro puntos, pero me parece que es como pedir la luna y las estrellas si se me cumplen finalmente el primero y el tercero puedo darme con un canto en los dientes.

Os dejo una serie de enlaces que he encontrado y me han parecido interesantes, agradecería que si alguno de vosotros tiene manuales completos, comentarios sobre esta tecnología e incluso pequeños proyectos de avance que me fueran de ayuda me los mandara y prometo nombrar a todos y cada uno de los colaboradores en el siguiente post.

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

Picando Código

[Plugin WordPress] UserAgent-Spy 0.6

Enero 5th, 2009

WordPressHace poco les comentaba de una nueva versión de List Category Posts, hoy publico la versión 0.6 de UserAgent-Spy. UserAgent-Spy es un plugin para WordPress que permite mostrar el navegador web y sistema operativo usado por la persona que comentó.

Los cambios para la versión 0.6 de UserAgent-Spy son:

* Detecta la versión del navegador web.
* Detecta versiones de Windows: Windows 7, Vista, XP, 2000, ME, NT 4, NT, 98, CE
* Reescribí la detección de versión de IE.
* Agregué dos navegadores que no conocía: Kazehakase y Sleipnir.

Esta actualización va dedicada a El Francotirador, por postear sobre el plugin en su blog, y motivar la actualización en:
Browser Sniff: ¿qué navegador y sistema operativo usan tus lectores?

Todavía me falta implementar la compatibilidad con la nueva función de comentarios en hilo de WordPress 2.7. No he tenido tiempo de estudiarlo a fondo, pero ni bien pueda lo termino.

Todavía faltan varios navegadores web por detectar y mostrar, además de Sistemas Operativos. A quienes tengas WordPress en su blog, los invito a probarlo, y agradezco críticas, opiniones, sugerencias y reportes de errores, nuevos navegadores y Sistemas Operativos que no estén siendo detectados.

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

Ideas + Ingeniería del Software

Reseña: Peopleware

Enero 4th, 2009

span class="dropcaps"P/spanspan class="blsp-spelling-error" id="SPELLING_ERROR_0"eopleware/span es span style="font-size:100%;"otro/span de esos clásicos que todos los informáticos deberíamos leer. Es un libro atípico, porque habla de la Ingeniería del Software en términos de personas, sentimientos, emociones...br /br /A continuación, la tabla de contenidos con el argumento de cada capítulo.br /br /span style="font-weight: bold;font-size:180%;" Contenido del libro/spanbr /span style="font-weight: bold;"span style="font-size:130%;"Parte I: La gestión del recurso humano/spanbr //spanspan style="font-size:100%;"El software lo desarrollan personas, no máquinas, span class="blsp-spelling-error" id="SPELLING_ERROR_1"adecuemonos/span a eso./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 1: En algún lugar, en este momento, un proyecto va a fracasarbr /span style="font-weight: bold;"span style="font-weight: bold;"/span/span/span/spanspan style="font-size:100%;"Los proyectos software fracasan, principalmente, por cuestiones sociológicas, no técnicas.br //spanspan style="font-weight: bold;"span style="font-size:100%;"Capítulo 2: Haz una hamburguesa de queso, vende una hamburguesa de quesobr /span style="font-weight: bold;"span style="font-weight: bold;"/span/span/span/spanspan style="font-size:100%;"El desarrollo de software es inherentemente diferente de la producción (industrial)./span Es un error aplicar técnicas de producción (pensar en las personas como máquinas) al desarrollo.br /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 3: span class="blsp-spelling-error" id="SPELLING_ERROR_2"Vienna/span span class="blsp-spelling-error" id="SPELLING_ERROR_3"waits/span span class="blsp-spelling-error" id="SPELLING_ERROR_4"for/span span class="blsp-spelling-error" id="SPELLING_ERROR_5"you/span/span/spanspan style="font-size:100%;"br //spanspan style="font-size:100%;"span style="font-style: italic;"(Dejo el nombre del capítulo en inglés por ser un extracto de una canción de span class="blsp-spelling-error" id="SPELLING_ERROR_6"Billy/span span class="blsp-spelling-error" id="SPELLING_ERROR_7"Joel/span, 'span class="blsp-spelling-error" id="SPELLING_ERROR_8"Stranger/span'.)/spanbr /Más horas de trabajo no implica ni más ni mejor trabajo, para las personas el trabajo no es lo más importante. La adicción al trabajo span style="font-style: italic;"sí/span es un problema./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 4: Calidad - si el tiempo lo permitebr //span/spanspan style="font-size:100%;"Comprometer la calidad no es una buena estrategia: mina la span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"autobr /estima/span de la gente./span De hecho, a la larga una mayor calidad redunda también en una mayor productividad.br /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 5: Revisión a la Ley de span class="blsp-spelling-error" id="SPELLING_ERROR_10"Párkinson/spanbr //span/spanspan style="font-size:100%;"No es cierto que el trabajo de desarrollo se expanda hasta abarcar todo el tiempo disponible para él./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 6: span class="blsp-spelling-error" id="SPELLING_ERROR_11"Laetril/spanbr //span/spanspan style="font-size:100%;"No existen los remedios mágicos ni las soluciones que multiplican la productividad./spanbr /br /span style="font-weight: bold;"span style="font-size:130%;"Parte span class="blsp-spelling-error" id="SPELLING_ERROR_12"II/span: El entorno de la oficina/spanbr //spanspan style="font-size:100%;"Factores externos a las personas que afectan a la productividad./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 7: La política de mobiliariobr //span/spanspan style="font-size:100%;"Las políticas de mobiliario no parecen estar pensadas en pro de las personas (y, por tanto, tampoco de su productividad).br //spanspan style="font-weight: bold;"span style="font-size:100%;"Capítulo 8: "Es imposible hacer nada aquí de 9 a 5"br //span/spanspan style="font-size:100%;"Factores como el ruido o el espacio están más correlacionados con la productividad que la experiencia o el lenguaje de programación.br /br /El capítulo 8 expone datos muy interesantes sobre un estudio que los autores han realizado durante años. Dan un ejercicio a dos candidatos de cientos de empresas, y relacionan los resultados con factores ambientales.br /br //spanspan style="font-weight: bold;"span style="font-size:100%;"Capítulo 9: Ahorrar dinero con el espaciobr //span/spanspan style="font-size:100%;"La cantidad y calidad del espacio para el trabajador es fundamental.br /span style="font-weight: bold;"Interludio/span/spanspan style="font-weight: bold;"span style="font-size:100%;": Medición de la productividad y span class="blsp-spelling-error" id="SPELLING_ERROR_13"OVNIs/spanbr //span/spanspan style="font-size:100%;"Medir la productividad es difícil, pero puedes medir span style="font-style: italic;"algo/span que al menos te permita saber tu posición respecto a la competencia.br //spanspan style="font-weight: bold;"span style="font-size:100%;"Capítulo 10: Tiempo span style="font-style: italic;"mental/span contra tiempo span style="font-style: italic;"de cuerpo presente/spanbr //span/spanspan style="font-size:100%;"Para que el tiempo se aproveche al máximo el cerebro debe entrar en un estado llamado "de flujo", al que cuesta llegar pero del que es muy fácil salir por culpa de interrupciones./span Para maximizar la productividad hay que maximizar la proporción de "tiempo de flujo" respecto al "tiempo de cuerpo presente".br /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 11: El teléfonobr //span/spanspan style="font-size:100%;"Un mundo sin teléfono sería algo fantástico, pero como no parece posible, hay que conseguir minimizar el impacto de las llamadas: silenciar el timbre (o al menos bajar el volumen), utilizar sistemas alternativos, etc./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 12: El retorno de la puertabr //span/spanspan style="font-size:100%;"El entorno de oficina tradicional, de dos, tres o cuatro personas, con paredes y puertas, se ha perdido, equivocadamente, en favor de entornos diáfanos, con mucho ruido y sin span class="blsp-spelling-error" id="SPELLING_ERROR_14"privacidad/span./spanbr /br /En este capítulo se expone un interesante estudio sobre la música y el trabajo. Si bien la parte lógica/matemática del trabajo no se ve afectada, la parte creativa se ve anulada si estas escuchando música.br /span style="font-size:100%;"br //spanspan style="font-weight: bold;"span style="font-size:100%;"Capítulo 13: Realizando pasos de paraguasbr //span/spanspan style="font-size:100%;"span style="font-style: italic;"Nota: para los curiosos, podéis consultar el a href="http://forum.wordreference.com/showthread.php?t=238064"significado de 'paso de paraguas' ('span class="blsp-spelling-error" id="SPELLING_ERROR_15"umbrella/span span class="blsp-spelling-error" id="SPELLING_ERROR_16"step/span')/a, que no tiene traducción directa./spanbr /En este capítulo se exponen varios conceptos de arquitectura y decoración de interiores para hacer un mejor entorno de trabajo: situación de las ventanas, de los muros, de los espacios compartidos... El resumen más correcto, aunque impreciso, sería decir que "hay que construir como se lleva haciendo desde hace miles de años"./spanbr /br /span style="font-weight: bold;"span style="font-size:130%;"Parte span class="blsp-spelling-error" id="SPELLING_ERROR_17"III/span: La gente correcta/spanbr //spanspan style="font-size:100%;"Cómo (y por qué) conseguir a los mejores, mantenerlos, y aprovecharlos al máximo./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 14: El factor span style="font-style: italic;"span class="blsp-spelling-error" id="SPELLING_ERROR_18"Hornblower/span/spanbr //span/spanspan style="font-size:100%;"span style="font-style: italic;"Nota: 'span class="blsp-spelling-error" id="SPELLING_ERROR_19"Hornblower/span' aquí se refiere a a href="http://en.wikipedia.org/wiki/Horatio_Hornblower"span class="blsp-spelling-error" id="SPELLING_ERROR_20"Horatio/span span class="blsp-spelling-error" id="SPELLING_ERROR_21"Hornblower/span/a, protagonista de una serie de novelas de C.S.Forrester sobre las guerras napoleónicas./spanbr /La gente es diferente, y eso es bueno. No hay que potenciar la similitud y la span class="blsp-spelling-error" id="SPELLING_ERROR_22"entropía/span, sino todo lo contrario. A menor span class="blsp-spelling-error" id="SPELLING_ERROR_23"entropía/span (entendida como igualdad), más trabajo hecho.br //spanspan style="font-weight: bold;"span style="font-size:100%;"Capítulo 15: Contratar un malabaristabr //span/spanspan style="font-size:100%;"span style="font-style: italic;"/spanEn las entrevistas de trabajo no basta con preguntar a los candidatos, hay que ver sus habilidades en la práctica./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 16: Feliz de estar aquíbr //span/spanspan style="font-size:100%;"El coste de la rotación es muy elevado (más de 5 meses de trabajo), hay que conseguir strikemantener a la gente/strike que la gente quiera quedarse./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 17: Sistema span class="blsp-spelling-error" id="SPELLING_ERROR_24"autoreparable/spanbr //span/spanspan style="font-size:100%;"Cuando se automatiza un sistema humano, por ejemplo al aplicar una Metodología, se pierde gran parte del valor humano./span Concretamente, cuando el valor de una Metodología es hacer algo uniforme, mejor sería conseguirlo mediante formación, herramientas, y revisión por parejas.br /br /span style="font-weight: bold;"span style="font-size:130%;"Parte span class="blsp-spelling-error" id="SPELLING_ERROR_17"IV/span: Crecer equipos productivos/spanbr //spanspan style="font-size:100%;"span style="font-style: italic;"Nota: he traducido 'growing' como 'crecer', aunque/span span style="font-style: italic;"no suene demasiado bien, para mantener la metáfora agrícola./spanbr /Ya tienes la gente, ahora tienes que hacerla trabajar en equipo./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 18: El todo es más que la suma de las partesbr //span/spanspan style="font-size:100%;"Tienes que conseguir hacer que el equipo esté totalmente cohesionado en pos de un fin común./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 19: El span style="font-style: italic;"Black Team/spanbr //span/spanspan style="font-size:100%;"El a href="http://www.t3y.com/tangledwebs/07/tw0706.html"span style="font-style: italic;"Black Team/span/a es/span el paradigma de equipo cohesionado. Fue un equipo de testers de IBM, temido por los desarrolladores por su eficacia, aún cuando todo el equipo inicial había cambiado.br /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 20: "Equipocidio"br //span/spanNo es fácil determinar qué debes hacer para conseguir un gran equipo, pero sí hay varias cosas que span style="font-style: italic;"no/span debes hacer: gestión defensiva, burocracia, separación física, fragmentar el tiempo de la gente, reducir la calidad del producto, establecer hitos imposibles y control de camarilla.br /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 21: Cena de espaguetibr //span/spanspan style="font-size:100%;"El mejor jefe es aquel que consigue gestionar sin que parezca que hace nada./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 22: Open Kimonobr //span/spanspan style="font-size:100%;"La mejor gestión es aquella en la que se confía plenamente en los miembros del equipo y en la que la autoridad se ejerce de forma natural, no mediante imposiciones.br //spanspan style="font-weight: bold;"span style="font-size:100%;"Capítulo 23: Química para la formación de equiposbr //span/spanspan style="font-size:100%;"Para que una organización siga una estrategia correcta de formación de equipos, debe cuidar lo siguiente: culto a la calidad; proporcionar realimentación positiva; sentimiento de élite; alentar la heterogeneidad; preservar los equipos exitosos; proporcionar dirección estratégica, no táctica./spanbr /br /span style="font-weight: bold;"span style="font-size:130%;"Parte span class="blsp-spelling-error" id="SPELLING_ERROR_17"V/span: Debería ser divertido trabajar aquí/spanbr //spanspan style="font-size:100%;"span style="font-style: italic;"/spanspan style="font-style: italic;"/spanEl trabajo no debería ser algo aburrido, una carga, algo negativo... Debería ser divertido, interesante, enriquecedor.../spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 24: Caos y ordenbr //span/spanspan style="font-size:100%;"La tendencia natural en el trabajo es ir hacia el orden, pero introducir deliberadamente elementos novedosos, aumentando el caos, disminuyendo así la entropía, es positivo./spanbr /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 25: Electrones libresbr //span/spanspan style="font-size:100%;"Hay gente que no encaja en puestos /spanespecíficos, pero que aportan gran valor a la empresa. No siempre es necesario regirse por estrictas jerarquías.br /span style="font-weight: bold;"span style="font-size:100%;"Capítulo 26: Holgar Danskbr //span/spanspan style="font-size:100%;"Introducir los cambios parte de la iniciativa individual./span Si algo es sensato, hazlo, que será más fácil de lo esperado, encontrarás ayuda.br /br /span style="font-weight: bold;font-size:180%;" Valoración personal/spanbr /Peopleware es un libro excepcional. No se limita a obviedades, y no se limita a exponer problemas. Entra en muchos temas en profundidad, incluso aportando datos concretos, y aporta soluciones (por ejemplo, enumerando alternativas al uso de Metodologías). Es un libro imprescindible, que nunca envejecerá, y útil no sólo para span style="font-style: italic;"jefes/span. Provocador y agitador a todos los niveles. Hay muchísimas cosas aplicables constantemente. Yo ya me estoy haciendo una lista...

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

RiCKi's Blog » programacion

2008 ..Año viejo..

Enero 4th, 2009

2008 Recuento de los daños..

Buenas tardes a todos amigos, por fin ha empezado el nuevo año 2009 trayendo de la mano nuevos objetivos, nuevas metas pero con un año mas de experiencia para realizarlas.

Tenía bastante tiempo que no publicaba nada en mi blog y es que últimamente no he tenido tanto tiempo como quisiera para hacerlo. Aunque no cumplí todos los objetivos propuestos el año pasado, estoy muy feliz porque los que si alcancé son realmente gratificantes para mi.

Este año ha traído ademas mucho significado para mi por los acontecimientos que han sucedido.

Primero. Logré hacer un puesto de estable en mi trabajo, que me permitirá desarrollarme profesionalmente y que me permitirá ante todo, comer y vestir :-), ademas hay tendré oportunidades de crecer.

Segundo. Realicé mi examen profesional y lo aprobé, lo que hoy me define como Licenciado en Informática (y ya no como pasante). En definitiva una gran experiencia, desde el día que me registré para presentarlo hasta el día en que recibí los resultados. Ha sido una de las experiencias mas satisfactorias, reconfortantes y bonitas que he vivido, pues, en lo personal fue un gran logro que vino acarreado por los años en que me he dedicado a leer sin parar, investigar y las noches enteras de desvelo que he vivido (¿ya era justo que el desgaste físico rindiera frutos no?).

Tercero. Reescribí mi mensajero de msn (GLiveMessenger) 4 o 5 veces en el año, es chistoso pero tambien una prueba superada (aunque no esta terminado, su propósito se cumplió)

Cuarto. Adquirí una nueva laptop (llamada Artemisa) y la antigua (Apolo 11) aun tiene mis viejos datos :).

Y algunas otras cosas ..

Termine el año mucho mejor de lo que lo empecé (en definitiva). Hoy con menos faltantes de los que tenía exactamente un año atrás. Canté, reí, lloré y creo que aprendí mucho este año.

Aprendí que nunca dejas de conocerte, que el amor duele pero que no te mata (y eso es lo peor) ..Aprendí también que aún existen personas buenas en este mundo, que aún existen personas en las que se puede confiar, que no todo el mundo esta corrompido y que dios aprieta pero no ahorca.. Este año pasado también me enseño que a veces parece que estas totalmente perdido cuando realmente no lo estas y que siempre hay una salida adecuada a los problemas (la resolución).

Este año es un gran año para mi, lo recibo con expectación pero también con alegría de saber que es una nueva oportunidad de trabajar, crecer, aprender, evolucionar pero sobre todo de vivir, pues tan solo la vida es la oportunidad mas grande de ser quien quieras ser.

Los saludo con mucho gusto, y les deseo de todo corazón que sus propósitos para este año sean alcanzados (sin omitir desde luego que para ello hay que esforzarse).

Una gran abrazo de parte de su amigo.

Ricardo Medina.

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

The New Cult of Dead Cow » desarrollo

Novedades en Mysql 5.1

Enero 3rd, 2009

Via: Mysql 5.1 nutshell

Share/Save/Bookmark

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

Ideas + Ingeniería del Software

WTF como ejercicios en entrevistas y en formación

Enero 3rd, 2009

span class="dropcaps"A/span estas alturas del año ya habréis visto el a href="http://www.pcworld.com/article/156240/.html?tk=rss_main"código responsable del cuelgue masivo de los Zune/a:br /prespan style="font-family:courier new;" while (days 365) {/spanspan style="font-family:courier new;"br / if (IsLeapYear(year)) {br //span span style="font-family:courier new;"if (days 366) {/span span style="font-family:courier new;" br / days -= 366;/spanbr / span style="font-family:courier new;"year += 1;/spanbr / span style="font-family:courier new;"}br / /span span style="font-family:courier new;"} else {/spanbr / span style="font-family:courier new;"days -= 365;/spanbr / span style="font-family:courier new;"year += 1;/spanbr / span style="font-family:courier new;"}br / /span span style="font-family:courier new;"}/spanbr //preEste código no creo que entre en la categoría de a href="http://thedailywtf.com/"WTFs/a, a todo el mundo se le puede patinar un igual. Sin embargo, me viene de perlas para uno de los trabajos que voy a tener en los próximos días: preparar ejercicios de programación para formación y contratación (¿por qué será que span style="font-style: italic;"recruiting/span me parece más preciso?). En un a href="http://iiso.blogspot.com/2008/11/mi-opinin-sobre-las-enseanzas.html"post anterior en el que hablaba de mi opinión sobre la aptitud y actitud profesional/a, a href="http://jcesarperez.blogspot.com/"Julio César Pérez/a comentaba lo siguientebr /blockquoteLa pregunta estrella era implementar una funcion recursiva que calculara el factorial de un numero entero en cualquier lenguaje. Sólo el 10% la hicieron bien y todos los candidatos eran como mínimo ingenieros./blockquoteYa me habían mirado raro a veces por opinar que las entrevistas hay que orientarlas en ese sentido, pero desde que supe que a href="http://google.dirson.com/post/3593-preguntas-curiosas-entrevista-google/"Google pide programar en una pizarra/a me he sentido reafirmado: las entrevistas deben ser prácticas.br /br /br /span style="font-weight: bold;font-size:130%;" Contexto/spanbr /Trabajo en un entorno parcialmente universitario, por lo que una de nuestras razones de ser es la ocupación de estudiantes, con las ventajas e inconvenientes que esto conlleva.br /br /span style="font-weight: bold;font-size:130%;" Requisitos/spanbr /Necesito una forma de...br /ullipoder evaluar en una entrevista de trabajo los conocimientos (si hablamos de gente con experiencia) o la aptitud (si hablamos de becas) de una persona./lilifacilitar la autoformación del personal, nuevo o no, que se va a incorporar a proyectos con nuevas tecnologías./li/ulspan style="font-weight: bold;font-size:130%;" Alternativas de implementación/spanbr /ulliPara las entrevistas, recopilar una serie de WTFs y trozos de código, tanto correctos como no, y preguntar al entrevistado por ellos./liliPara la formación, plantear ejercicios cortos con tareas de no más de una o dos horas, en el que se busque escribir código lo más impecablemente posible. Una vez completado el ejercicio, alguien revisaría el código escrito para pulir entre los dos todo lo mejorable./li/ulEsto último de la revisión, aunque algo exigente (ocupa a dos personas en código de prueba) me parece fundamental. En mi opinión, span style="font-weight: bold;"pensar que una persona aprende a programar símplemente programando es falso/span. Conozco gente que programa mal y lo seguirá haciendo toda su vida, porque ni lee código de otros, ni libros, y nadie le corrige sus errores. Especialmente en entornos de formación, la figura del revisor me parece fundamental.br /ulliCalidad de código en el motor de integración contínua como formación: tanto instalar plugins de Eclipse como generar informes de calidad de código pueden ser positivos para aprender. Si se presta atención a los warnings de FindBugs, PMD o Metrics se puede aprender mucho (¡a la vez que mejoras la calidad!)./li/ulPD: aquí, al hablar de "código WTF" me refiero a código con una elevada medida de "WTF" como en la siguiente viñeta:br /br /a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/smitty/2245445147/"img style="cursor: pointer; width: 500px; height: 453px;" src="http://farm3.static.flickr.com/2203/2245445147_ff54c5997d.jpg" alt="" border="0" //a

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

Ingenieria de Software / Software Engineering

PM o Team Leader

Enero 2nd, 2009

p align="justify"a href="http://leccionesaprendidas.blogspot.com/2007/09/project-manager-vs-team-leader.html"Bues post de Lecciones aprendidas/a haciendo una correcta diferenciaci#243;n entre lo que es un L#237;der de Proyecto y un Administrador de Proyecto, aunque en M#233;xico no se tiene la madurez, la cultura ni el poder econ#243;mico para mantener todo esos roles, desde mi #243;ptica los skills para el mercado Mexicano que debiera tener qui#233;n vaya al frente de un equipo es:/p p1) Administraci#243;n de Proyectos/p p2) Conocimiento t#233;cnico medio/p p3) SoftSkills (Liderazgo, disciplina, toma de decisiones, presencia etc)/p

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

Navegapolis

Scrum no es un invento… ¿o sí?

Enero 1st, 2009

pimg src="http://navegapolis.net/images/blog/5/aportaciones.jpg" border="0" alt="aportaciones" width="125" height="82" align="right" /Doce antilde;os antes de que Ken Schwaber presentara la metodologiacute;a scrum, el quot;modelo de desarrollo evolutivoquot; definiacute;a un ciclo de vida iterativo e incremental, que concretaba los requisitos de cada iteracioacute;n... /ppnbsp;/ppnbsp;/ppimg src="http://navegapolis.net/images/blog/5/evol1.jpg" alt="evolutionary model" width="400" height="293" /nbsp; img src="http://navegapolis.net/images/blog/5/evol2.jpg" alt="evolutionary development model" width="400" height="334" //pp align="right"Alan M. Davis quot;Software Life Cycle Modelsquot; /ppEl propio ken Schwaber con una objetividad sobre su visioacute;n de scrum, y de su innegable aportacioacute;n, que le honra; afirma: quot;Yo no inventeacute; scrum. Scrum es probablemente una coleccioacute;n de las mejores praacute;cticas que muchos profesionales han descubierto durante antilde;osquot; /pp align="right"Ken Schwaber,nbsp; quot;a href="http://www.youtube.com/watch?v=IyNPeTn8fpo#t=2m25s"I did not invented scrum/a quot; (Scrum et al.)/ppnbsp;/p

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

The New Cult of Dead Cow » desarrollo

Encuesta sobre Pidgin

Enero 1st, 2009

logopidginApoya el desarrollo de pidgin, el cliente de Mensajeria universal en Linux ( junto con Kopete :P ), llenado esta sencilla encuesta ( en ingles ).

Share/Save/Bookmark

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

Picando Código

Último post de 2008

Diciembre 31st, 2008

Muy probablemente este sea el último post del año en el blog. El 2008 fue un año bastante interesante, con mucha cosa hecha, aprendida, etc.

En una de esas escribo un resumen del año en algún momento.

¡Feliz 2009 para todos!

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

Picando Código

En el top 1000 de autores de Plugins de WordPress

Diciembre 31st, 2008

En el sitio W-Shadow se publicó la lista Top 10 WordPress Plugin Developers, el top 10 de desarrolladores de plugins para WordPress:

Las brillantes personas que crean herramientas sobresalientes y las comparten con la comunidad WordPress.

Basado en la cantidad de descargas de wordpress.org, también tiene una lista mas extensiva del top 1000. La actualización del 27 de diciembre de 2008 me deja en el puesto 573:

Top 1000 WordPress Plugin Authors - ¡Yo!

Top 1000 WordPress Plugin Authors - ¡Yo!

¡Qué orgullo! Esperemos superar las cifras (2834 descargas en 2 plugins) para el 2009.

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

Nuevos Programadores

LINQ To SQL: Ordenar resultados por criterios múltiples

Diciembre 31st, 2008

Ayer me encontré con una situación en el trabajo, en la cual tenía que hacer una consulta con LINQ y devolver los resultados ordenados por 3 criterios, algo que en SQL haríamos de la siguiente manera:

SELECT *
FROM tblSocios
ORDER BY Numero, Apellido, Nombre

Y realmente no sabía como implementar eso mismo con LINQ, primero intenté hacer varios OrderBy en una misma sentencia, intentar hacer un predicate que devolviera más de una propiedad por la cual ordenar, pero nada resultó, hasta que apareció la solución: OrderBy y ThenBy.

Entonces el equivalente a la sentencia SQL anterior en LINQ sería:

Dim socios = From s in DataContext.tblSocios
socios = socios.OrderBy(Function(x As tblSocios) x.Numero).ThenBy(Function(x As tblSocios) x.Apellido).ThenBy(Function(x As tblSocios) x.Nombre)


También te puede interesar:

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

Cerebro en la Sombra » Técnico

Otras utilidades para un servidor de correo

Diciembre 31st, 2008

A veces un servidor de correo puede sernos de muchísima utilidad si sabemos cómo manejarlo correctamente. En el artículo de hoy veremos como utilizar nuestro MTA para ejecutar automáticamente acciones cuando se recibe un determinado email o con los parámetros que definamos. Una vez conozcamos la teoría plantearemos dos casos prácticos como ejemplo.

Para comenzar necesitaremos un servidor Linux con Qmail como MTA. Supongo que cualquier otro servidor de correo servirá (Sendmail, Postfix), yo lo personalizo en Qmail porque es el que conozco y utilizo, pero estoy seguro de que con los demás se puede hacer lo mismo.

La teoría

Para entender cómo funciona la idea debemos entender primero cómo Qmail realiza la entrega de mensajes en los buzones locales. Es un tema sobre el que hay bastante literatura buscando en Google pero que puede no quedar muy claro en una lectura rápida. Es el famoso lío de los archivos .qmail.

Cada vez que se crea un usuario del sistema se debe crear, si va a recibir emails, un archivo .qmail-default en su directorio de usuario.

  1. [jiglesias@lerez ~]# cat /home/jiglesias/.qmail-default
  2. ./Maildir/

Normalmente este archivo se crea automáticamente ya que al instalar qmail se habrá creado una copia de este archivo en el esqueleto de creación de usuarios /etc/skel:

  1. [jiglesias@lerez ~]# ls -la /etc/skel
  2. total 56
  3. drwxr-xr-x  4 root root  4096 Jul 29 18:29 .
  4. drwxr-xr-x 97 root root 12288 Dec 30 04:08 ..
  5. -rw-r–r–  1 root root    33 Feb  1  2008 .bash_logout
  6. -rw-r–r–  1 root root   176 Feb  1  2008 .bash_profile
  7. -rw-r–r–  1 root root   124 Feb  1  2008 .bashrc
  8. drwx——  5 root root  4096 Aug 29  2007 Maildir
  9. -rw-r–r–  1 root root    12 Jan  2  2008 .qmail-default
  10. -rw-r–r–  1 root root   658 Sep 12  2006 .zshrc

Para el que no lo sepa, el esqueleto son los archivos que se copiarán al directorio de usuario (con los permisos de éste) cada vez que se crea uno nuevo. Si quieres que todos tus usuarios tengan algún archivo automáticamente, éste es tu sitio. En nuestro caso vemos que además del .qmail-default está el directorio Maildir, el de entrega por defecto del correo en qmail. Teniendo un usuario este archivo y este directorio, podrá recibir correo.

Vale vale, vas muy deprisa. Todavía no has explicado para que sirve el .qmail-default ese.  Cierto. Los archivos .qmail indican las reglas de entrega de los mensajes en base a dos parámetros:

Supongamos un usuario (jiglesias)  que recibe el correo de dos cuentas distintas (jiglesias@… y osus@…).

Por defecto todo su correo irá a su buzón ya que es lo que indica el archivo .qmail-default. Queremos ahora que el comportamiento sea distinto dependiendo de la cuenta a la que vaya dirigido, creamos entonces los archivos .qmail para las direcciones:

Podemos incluso ir un poco más lejos con un archivo .qmail-jiglesias-default, y controlaríamos el correo que vaya a cualquier dirección del tipo jiglesias-XXXX@…, es decir, cualquier dirección que comience por jiglesias- será controlada por este archivo .qmail.

En el caso básico, que es el que veíamos, la entrega se realiza al buzón de correo del usuario (el directorio Maildir) pero podríamos hacer otras cosas en función del contenido del archivo .qmail encargado de procesar la entrega del correo:

Reenvío a otra cuenta:

  1. [jiglesias@lerez ~]# cat /home/jiglesias/.qmail-jiglesias
  2. reenvio@osusnet.com

Reenvío a un programa/script:

  1. [jiglesias@lerez ~]# cat /home/jiglesias/.qmail-osus
  2. |preline /usr/bin/programa

Combinación de los anteriores

  1. [jiglesias@lerez ~]# cat /home/jiglesias/.qmail-jiglesias
  2. ./Maildir/
  3. reenvio@osusnet.com
  4. |preline /usr/bin/programa

El caso que nos interesa es el segundo, es decir, pasar la entrega del email a un script que se encargará de analizar el email y tomar decisiones.

Te habrá llamado la atención el |preline del archivo .qmail. Es el sistema que prepara un email para ser procesado y entregado a otro script añadiendo algunas cabeceras. La salida del script que reciba el email es importante ya que de ella depende el resultado de la entrega final de email, en concreto es importante saber que si queremos rechazar un email habrá que terminar el script con un exit (100), esto indicará a qmail que debe rechazar ese mensaje. Veremos más adelante la utilidad de esta salida.

La práctica

Una vez sabemos cómo pasar el control de un email recibido a un script, veamos como tratarlo. Lo haremos con un script PHP. En nuestro archivo .qmail haremos algo como:

  1. [jiglesias@lerez ~]# more .qmail-jiglesias
  2. |preline /usr/bin/php /home/jiglesias/prueba.php

Con esto hemos terminado el trabajo en el servidor de correo. Veamos ahora como parsear el email desde PHP.

Lo primero que debemos hacer es recoger el contenido del email desde el script a través de la entrada estándar,  después ya podemos procesar el email como una cadena de texto.