Categoría: Programacion

Pequeña actualización del blog

Esta vez le toca a la relegada parte de información del usuario y en modo experimental, una extensión de la info que tengan en la red. ¿cual es la idea? bueno, que cada usuario del blog tenga su "centro" donde puedan publicar sus links y demás referencias, msn, google talk, etc.

Editando el perfil se pueden agregar algunas cosas más como también una pequeña descripción de ustedes mismos, la idea es, con el tiempo, ir armando una pantallita donde cada usuario pueda compartir la información de sí mísmo que considere interesante o pertinente. Probablemente no les sirva demasiado si no son de frecuentar el blog o si no tienen usuario registrado, pero para los que postean aquí o los que pasan muy seguido, puede servirles de "conector" entre sus trabajos-vidas sociales habituales y otros lectores del blog.

Sigue funcionando el visor de usuarios online (medio como el culo :D) y ya surgirán nuevas funcionalidades, ni idea cuales, pero seguro se me ocurre algo :D

Es un condimento "social" en un blog, no se si hay muchos que hagan lo mismo, pero aquí está a elección de ustedes usarlo. También agregué un detalle para los comentarios que dejan los usuarios registrados, es decir, un pequeño inconito para ir exactamente a esa pantalla de información y así uno cuando quiere saber más de quien escribió tal o cual comentario, puede enterarse. Tampoco creo que esté inventando la rueda y no, no hay plugin para Wordpress... no tengo idea de cómo programarlo ahí pero no dudo que si alguno lo hace se atribuirá la idea y dirá que yo me copié :D

Los mails aparecerán solamente para otros usuarios registrados y logueados, esto veré si lo modifico en algún momento, pero por ahora está así "oculto" sólo logueado se pueden ver. Lo mismo para el listado de usuarios. Es que no creo que todos quieran que los anónimos visitantes vean que estan registrados aquí, así que sólo usuarios logueados pueden ver el listado de miembros.

¿y que pasó con el registro? ¿porqué está cerrado? lamentablemente no me venía funcionando el sendmail (la función que envía mails del servidor) así que deshabilité el sistema de registro por un rato, ya le daré más foco a ello, pero si alguno está desesperado y cree que la solución del alargamiento peneano está en registrarse en este blog, bienvenido sea, me envía un e-mail y armamos su cuenta :P

Es tan sólo experimental y para que lo use quien quiera, se aceptan sugerencias de que otros sistemas linkear (hasta ahora sólo puse a Flickr como ejemplo), total... como mucho me lleva 20 años programando resolver todos los caprichos :D, na, se aceptan también "soluciones", no sólo pedidos, jeje.

Y no, esto tampoco entra en el PostRev 0.7 que durante esta semana sale la versión final luego de los últimos detalles que me pasaron Zurdito y GFer, mis "betatesters"

Ahora bien, da un blog para ser un nodo de una red social? pregunta para bloggers 2.0, yo sigo siendo 1.0, pero esa es ya otra historia :D

Seguir leyendo el post »

Salida a producción a destiempo

Artículo techie-programador-nerd, no se quejen que hace rato que no sale uno de estos Guiño



Un caso muy particular está sucediendo con KDE4 y es que los desarrolladores estan por lanzarlo en una semana sin haberlo terminado. La excusa es "KDE4 no es KDE 4.0", como queriendo decir que cambia de versión pero todavía falta mucho para ser lanzado.

Esto puede sorprender a muchos que no son usuarios típicos de software libre, donde cada versión es un misterio si funcionará como queremos salvo en casos puntuales como Apache, Tomcat, MySQL, PHP y Firefox, el resto tiene esa tendencia de lanzar versiones que no estan al 100%. Otros dicen que no existe software terminado, que nunca se termina.

Pero esta tendencia, muy conocida por los que se instalan un Windows "nuevo", la tendencia del Service Pack es, a esta altura, algo negativo que sólo confunde a los usuarios. ¿Necesitamos que algo llegue al mercado incompleto? considerando que Firefox lanza betas y betas hasta llegar a la final y cuando sale el producto final no hay grandes bugs que impidan su uso, ¿es necesario lanzar KDE 4 sin terminarlo? recuerden que en el soft libre no siempre hay calendarios estrictos a seguir (el software pago si, el gratuito no tanto, el libre puede que si, etc.).

Microsoft lanzó Windows Vista y se habló desde un principio que todos los problemas estarían resueltos en el primer SP1 (Service Pack), es decir, comprás un software de 400u$s para enterarte que no está terminado y en un año lo verás funcionar correctamente. No es precisamente algo que el público quiere oír, ni menos hacer, instalar un parche gigante para algo que hoy debería funcionar bien.

"Release often and release early!" -Eric S. Raymond/Cathedral Bazaar

Para el "usuario final" no hay diferencias entre KDE4 y KDE 4.0, para los developers si, y es un error importante el no poder mirar desde el punto de vista del usuario final. Si creaste tantas expectativas con un proyecto y una fecha, o cumplís o admitís que no estas a la altura de dicha fecha/promesas, pero lanzarlo igual "total, que puede pasar...", es casi una burla a su propio trabajo... ¿o no?

Puede que no, dependiendo el objetivo de cada uno, si para ellos KDE es simplemente software y como nadie está obligado a usarlo, que no se quejen, bueno, podría ser, pero por algo se vienen atajando de "no hagan reviews de esto como si fuese un producto final". ¿Tanto costaba agregarle el "Beta 3" al costado? de esta forma nadie se quejaría, ya sabríamos que es software a medio cocinar, nadie se queja, hasta usar "Release Candidate" sirve, pero no, lo lanzan como 4.0 esperando que recién la 4.1 tenga las funcionalidades esperadas y 4.2 pulidas. No me gusta ese concepto. Pero muchos desarrolladores (tanto de soft libre como privativo, todos) tienen esa tendencia.

Está el ejemplo de Valve que lanzó su plataforma Steam cuando era un desastre y la fue emparchando hasta que más o menos estuvo pulida, para ese entonces Half Life 2 estaba siendo desarrollado y lanzaron esta plataforma para forzar a los jugadores de Counter Strike, Half Life y Day of Defeat a comprar licencias y dejar de usar los "truchos". Estuvieron meses lanzando parches que, para colmo, debían ser bajados por el mismo sistema y se tomaba todo el tiempo del mundo.

Al lanzamiento del Half Life 2, cualquier error en el soft, se bajaba otro parche enorme, es decir, ni el mismo juego era un release final, era un beta eterno.

Casi como Google que acostumbra lanzar todo en beta, ellos te dicen eso y se libran del problema de que el software esté incompleto o falle, es beta, jodete. Pero KDE4 no es beta, es KDE4, que no es 4.0, pero para la mayoría eso no es una diferencia.

Hay un escenario donde no se debe fallar y es, para mí, este mismo, los desarrolladores de software para consolas de videojuegos lo tienen bien claro, una vez que salió el DVD ya no pueden volver atrás, debe estar todo probado y testeado a la perfección, si no, no sirve, no hay vuelta atrás. Pero los desarrolladores de PC tienen una ventaja extra, no estan tan atados al medio físico y pueden, cuando quieren, lanzar parches y parches infinitos que dan soluciones más rápidas. Es un problema-virtud, un paradigma distinto y aplicado de distinta manera.

Por otra parte, y volviendo al caso de KDE 4, parece que la presión de SUSE es la que obligó a estas fechas, en vez de aplazar una vez más el lanzamiento, algo razonable debido al estado de algunas partes del software, hay que cumplir con una fecha específica, algo que no suena muy coherente en, justamente, el ambiente del software libre.

Por mi parte saben muchos que soy usuario de KDE, así que no escribo esto de criticón, se que los usuarios de Gnome dejarán comentarios diciendo lo maravilloso que es y un largo etcétera de cosas que no tendrán nada que ver con el artículo, la cuestión aquí es otra y mucho más importante. ¿cuanto está afectando al software libre o abierto esta tendencia de lanzamientos incompletos? porque pocos se salvan de semejante problema y falta de QA a la hora de lanzar versiones y, peor, utilizando excusas constantemente para deslindar responsabilidades.

¿No es más fácil decir que está incompleto y ya?

Seguir leyendo el post »

Iconos en links usando CSS

Hay una propiedad de CSS que no conocía, hasta ver este mini tutorial, que permite agregarle íconos a los links respectivos a la extensión del archivo:

a[href *="flickr.com/photos/"], a[href *="zooomr.com"], a[href *="imageshack.us"], a[href *="bubbleshare.com"], a[href *="sevenload.com/bilder/"] {

padding: 5px 20px 5px 0;

background: transparent url(icons/icon_pic.gif) no-repeat center right;

}



Se le puede asignar a cada enlace con una o más extensiones una imagen para imprimir y que se vea como en la imagen de ejemplo, tampoco es necesario agregarlo para todos, sólo las extensiones que nos interese, una entrada en el CSS y listo!

me pareció una excelente forma de aclarar los links a archivos, más aquí donde está el archivo CSS y las imagenes para descargarse.

Seguir leyendo el post »

12 señales de que eres un mal programador

Es probable que no coincidan con todas o se pongan como trolls efervescentes a defender alguno de los items tocados, pero si lo piensan con un poco de apertura mental se van a dar cuenta de la cantidad de errores que cometemos como programadores :D

1. Java es todo lo que necesitas.
No ves la necesidad de usar ningún otro lenguaje, ¿por qué no se puede hacer todo con Java? No te importa ver código en Python o Ruby que logra en 10 lineas lo que llevaría varias hojas de código Java. Además, seguramente las nuevas características de la próxima versión del lenguaje lo arreglaran de todas formas. (Esto es aplicable a casi cualquier lenguaje, pero ocurre que entre la comunidad Java parece estar más extendida esta forma de pensar)

2. El término "enterprisey" (NT: se trata de un término sarcástico utilizado para designar productos complejos más allá de lo necesario) no te suena a broma.
"Enterprise" no es sólo una palabra, es una filosofía, una forma de vida, un camino a la iluminación. Cualquier cosa que pueda ser escrita, desplegada o actualizada con un trabajo mínimo es descartada como un juguete que no "escalará" para futuros usos. Mientras tanto la mayor parte del trabajo real en tu oficina se hace enviando hojas de cálculo en Excel mientras esperan a que termines de construir tu nueva visión corporativa.

3.Te opones férreamente a las funciones/métodos de más de 20 líneas de código.
(o 30 o 10 o cualquier otro número) Lo siento, algunas veces una función larga es justamente lo que necesitas. Normalmente las funciones cortas son más sencillas de entender, pero algunas veces se pueden expresar más fácilmente en una sola función más larga. El código no debería hacerse más complejo sólo para adecuarse a criterios arbitrarios.

4. "¡OH DIOS MÍO! ¡PATRONES!"
Los desarrolladores que buscan constantemente la forma de aplicar patrones a cualquier problema de código con el que se encuentran están añadiendo una complejidad innecesaria. Lejos de ser algo que busques, deberías sentirte mal cada vez que tienes que utilizar un patrón de diseño, significa que estás escribiendo código que hace las cosas más complicadas y que puede ser de dudosa utilidad. Pero, ¡ey!, tu código tiene patrones, bien por ti.

5. Los ciclos de CPU son un recurso precioso y tu estilo de programación y lenguaje reflejan esas creencias.
Hay montones de problemas en los que tienes que tener muy en cuenta el consumo de CPU (modelado/simulación, procesado de señales, kernels de sistemas operativos, etc), pero no es tu caso. Para la mayor parte de los desarrolladores de software sus principales problemas de rendimiento están relacionados con las bases de datos y la entrada/salida. El único efecto de optimizar tu código para mejorar el uso de CPU será disminuir en 2 milisegundos el tiempo necesario para la próxima consulta a la base de datos. Mientras tanto el desarrollo de la aplicación se hace más lento, no puedes hacer frente a los nuevos requerimientos y te encuentras con problemas serios de calidad. Pero al menos estás ahorrándote montones de ciclos de CPU… eventualmente.

6. Piensas que ninguna función/método debería tener más de un return.
Esta la he oído alguna que otra vez, y normalmente la razón que me dan es que el código es más sencillo de analizar. ¿Según quién? Yo encuentro más fácil de leer un código más simple, y normalmente el tener más de un return simplifica el código.

7. Tus usuarios son estúpidos. Realmente estúpidos.
Simplemente no puedes creer lo estúpidos que son, olvidándose constantemente de hacer las cosas más sencillas del mundo y cometiendo errores tontos al usar tu aplicación. Nunca has considerado que quizás es tu aplicación la que es estúpida porque eres incapaz de escribir software decente.

8. Te enorgulleces enormemente del gran volumen de código que escribes.
Ser productivo es bueno, desafortunadamente escribir montones de líneas de código no es lo mismo que ser productivo. Los usuarios nunca comentan "Guau, este programa puede ser difícil de usar y estar lleno de errores, pero al menos sé que hay un montón de código por debajo." En lugar de ser productivo, generar toneladas de mal código retrasa a los demás desarrolladores y en el futuro su mantenimiento constituirá una pesada carga.

9. Copiar y pegar es genial, te ayuda a escribir código desacoplado.
Defiendes tu uso del copy paste con extraños argumentos sobre desacoplar código y eliminar dependencias, mientras ignoras el aumento del tiempo de mantenimiento y los problemas de duplicación de errores. A esto se le llama "racionalizar tus acciones".

10. Piensas que la gestión de errores consiste en capturar todas las excepciones, registrarlas, y continuar como si nada.
Eso no es gestionar errores, eso es ignorar errores y es el equivalente semántico al "on error next" de VB. Sólo porque hayas registrado el error en algún sitio no significa que lo estés tratando. Tratar errores es algo duro. Si no sabes qué hacer exactamente cuando te encuentras con un cierto error, simplemente deja que la excepción se propague y que un nivel más alto del código lo trate.

11. Modelas todo tu código en UML antes de escribirlo.
El modelado entusiasta de UML se lleva a cabo normalmente por aquellos que no escriben demasiado código, sino que se consideran arquitectos de software. Las herramientas de modelado atraen más a aquellos que piensan que el código se puede escribir en una sala de conferencias manipulando pequeños gráficos. Los gráficos no son el diseño, y nunca serán el diseño, para eso está el código.

12. Tu código borra datos importantes.
Escribiste un cierto código que se supone que debe sobrescribir los archivos de la aplicación con otros nuevos, pero se vuelve loco y borra todos los datos del usuario.

Leyendo varios de estos recuerdo cuantas veces discutí con fanáticos por puntos como el 1 o el 4 :D

Vía MundoGeek que lo tradujo, del original de Damien Katz, gracias a la fuente (!).

Seguir leyendo el post »

Buscando programador Java para móviles

Así rapidito y sencillo, ando necesitando consultoría de un developer de aplicaciones JAVA para teléfonos móviles, no es para mí pero aprovecho por aquí para buscar, por ahí uno me lee :P

No es para juegos, es para una aplicación offline-online, Java obviamente. Interesados escriban a fabiomb(arroba)gmail.com

Comentar »

El bot atacando infraganti

Me puse a ver las visitas online que había hace un ratito, y una de las particularidades de dicho script es que me dice que sección estan visitando en ese momento, como un log, para ver donde está cada uno en ese momento o que noticia se está viendo.

Muchas veces me encuentro con los spiders de Google o MSN inspeccionando el sitio, o con usuarios de este mismo blog, pero hoy me encontré con uno muy particular que decía algo así:

Anónimo 211.43.222.218 66 seg
http://www.fabio.com.ar/verpost.php?id_noticia=http://sabo.i-s-o.net/.
libwww-perl/5.65


¿libwww-perl? eso no es un browser, ¿pasar una url como variable? papito, eso todavía funciona pero fue cochino de tu parte :P

Y si, me encontré con varios intentos de XSS (Cross-site Scripting), pero lo más interesante del caso es que proviene de múltiples IPs, es obvio que alguien está queriendo divertirse con este blog con unos lindos proxys de por medio para que no lo agarre y es muy probable, también, que lo esté haciendo con un bot que hace todo esto por él (lammer)

Seguir leyendo el post »

Día del programador

Dicen que hoy es el día "no oficial" del programador, si, el día 256 del año :P (salvo que sea bisiesto, claro) así que, aunque no sea un día oficialmente reconocido, feliz día a todos los que disfrutan del código.

Alguno tiene más info del tema? alguna web que quiera imponerlo como fecha oficial? algo más o menos actualizado?

A todo esto, y como programador lo digo, el imbécil (se sintió dolido, dice) de "Chabacano", ese usuario de Wikipedia español que me persigue y me baneó sin mediación alguna, ahora quiere borrar mis artículos en wikipedia en inglés ¿alguien con ganas de ayudar por mi lado? porqué no se dedica a borrar los de Jacobo Winograd? :P

Actualizado: Ahí ta, lo encontré :D Programmer Day

Seguir leyendo el post »

Colegiatura un carajo

Como podría no apoyar a un egocéntrico programador autodidacta como Galli en su cruzada contra la colegiatura :D es que lo han estado atacando con argumentos tan fuertes que lo obligaron a hacer una retractación :D

En fin, con un poco de humor la tormenta que surgió ante su post en la cual convocaba a "una manifestación de licenciados matemáticos y físicos" surgido por una aberrante y cesgada propuesta reguladora , algo que ya discutimos en este mismo blog cuando escribí "Matriculación informática, aberración" y de la cual pude sacar varias conclusiones pero una primordial: los que principalmente piden las colegiaturas en sistemas son estudiantes o viejos, pero rara vez profesionales activos. Galli ya ha expresadio varios argumentos en otras ocasiones.

Miren que es un argento-españolizado con un ego enorme, pero sin dudas tiene razón y opino como él en este tema. Principalmente porque es como yo, jajaja las cosas que le han dicho son "sublimes"

Por suerte Ricardo sabe como arreglárselas con los enfermitos que le llegan a su blog.

Seguir leyendo el post »

Fancy Form

Excelente forma de presentar checkboxes y radiobuttons en un formulario con todo el estilo posible...

El presupuesto

Hace ya bastante tiempo que laburo en esto, no soy el mejor, tampoco el peor, comencé comercialmente por 1998 haciendo paginitas web y cd-roms, era otra época, claro, pero eso fue evolucionando. Lo que nunca cambió es la falta de criterio a la hora de pedir presupuestos y hacerlos de muchos en nuestro negocio.

Principalmente de parte de quien solicita un laburo, ojo, a veces no es el cliente directo, si no un intermediario que solicita un presupuesto a un tercero, que podemos ser nosotros, y que se queja de "que caro" cuando en realidad está siendo barato.

A la vez es muy común que muchos profesionales de sistemas, en sus primeros trabajos free-lance, se "ensarten" con presupuestos bajísimos por muchas horas y se la pasen trabajando casi gratis. Aprendí en este tiempo que lo último que hay que hacer es rebajarse para conseguir un cliente o mantenerlo, no tenemos que ser exagerados en lo que pedimos, pero tampoco tenemos que permitir que se nos "viole" con requerimientos absurdos.

Como no quiero que a otro le pase también, prefiero advertirlos por si se mandan en la aventura de hacer trabajos por cuenta propia.

Así que acá van algunos tips que aprendí, curiosidades con las que me encontré, imagenes que no tienen absolutamente nada que ver y un ejemplo reciente de un amigo, mail real y todo :P

Seguir leyendo el post »

127 Noticias (13 páginas, 10 por página)