4 bits blog
Cifrar una memoria USB
Julio 30th, 2009 - [Enlace local]
Hace poco se me ocurrió una forma de aprovechar una memoria USB (o pendrive) antigua (de 256MB) que tenía por ahí. Simplemente, utilizarla para guardar, todo cifrado, un archivo con un listado de contraseñas, documentos personales, claves GPG y/o SSH, …
Así que estuve buscando diferentes opciones, siendo importante que funcionase en Linux y en Windows (por si las moscas). Al final había dos opciones Truecrypt (el archiconocido) y dm-crypt (un gestor de dispositivos cifrados de Linux), me decanté por dm-crypt porque Truecrypt, curiosamente, no está en los repositorios de Debian y porque con dm-crypt no necesitaría de un programa a parte para utilizar mi dispositivo en Linux (aunque sí, en Windows).
Pasos a seguir
Directo al grano, estos son los pasos que realicé:
- Paquetes necesarios:
# apt-get install cryptsetup hashalot dmsetup
- Rellenar la memoria con datos aleatorios (no es necesario, aunque sí recomendable):
# dd if=/dev/urandom of=/dev/sdX
- Cargar los siguientes módulos si no lo están ya:
# modprobe aes # modprobe dm_crypt # modprobe dm_mod # modprobe sha256
- Crear el contenedor cifrado (pedirá la contraseña para poder luego descifrarlo):
# cryptsetup -v --key-size 256 luksFormat /dev/sdX NOMBRE-CONTENEDOR
- Formatear el contenedor (yo utilicé FAT para que funcione en Windows) para ello primero hay que montar el contenedor utilizando
cryptsetup:# cryptsetup -v luksOpen /dev/sdX NOMBRE-CONTENEDOR # mkfs.vfat /dev/mapper/NOMBRE-CONTENEDOR
- Y ya está, ya se puede montar:
# mount -t vfat /dev/mapper/NOMBRE-CONTENEDOR /mnt/usb_cifrado
Uso
Lo bueno de este método es que al enchufar la memoria en el ordenador Linux le pedirá la contraseña y se montará automáticamente. En la versión de GNOME que uso no lo monta, así que si te pasa esto siempre lo puedes montar ejecutando:
$ pmount-hal /dev/sdX
Y desmontar ejecutando:
$ pumount /dev/sdX
Para poder utilizar el dispositivo cifrado en Windows se necesita un programa llamado FreeOTFE que es compatible con este tipo de cifrado.
Basado en Manual de Cifrado de una particion concreta desde Linux Debian/Ubuntu.
» Leer más, comentarios, etc...
Blog de Julio César Pérez Arques
Esquema de un Sistema de Gestión de Desarrollo Software
Julio 30th, 2009 - [Enlace local]
UPDATE 090731: Se mejora la imagen del esquema y se subraya la importancia de la automatización de la alimentación del Sistema.
Me encuentro sumido en un proyecto de consultoría para definir un Sistema de Gestión de Desarrollo de Proyectos o Ecosistema Software. Así que aprovecho para compartir una primera versión del esquema lógico sobre el que estoy trabajando.
Wiki
Es el punto de entrada principal al Sistema.Contiene la información básica de cada proyecto y la organización.
Redirige al resto de aplicaciones del Sistema.
Permite la creación de documentación de forma colaborativa.
Control de cambios automático.
Documentación exportable a formato pdf.
Cms
Sistema de Gestión Documental para los documentos binarios, como word, powerpoint, etc.No toda la documentación puede estar en el Wiki.
Project Management
Visión de alto nivel de la gestión de proyectos.Cuadro de mandos ágil para directivos.
Gestiona resto de estados de un proyecto que no son Desarrollo.
Issue Management
Gestión del desarrollo de cada proyecto con sus versiones, tareas, equipo, trazabilidad, etc.Scm
Sistema de Gestión de Control de Fuentes (CVS, Subversion, Git,... etc.)Continuous Integration Server
Descarga, construye, prueba, analiza el código, crea informes de estado y despliega en el Demos Server los proyectos de forma automática y periódica.Demos Server
Servidor de demos del estado actual de cada proyecto.Otros
Notificaciones vía RSS y e-mail.Single Sign On.
Privacidad.
Integración con el IDE del equipo de desarrollo para automatizar la alimentación del Sistema y garantizar la trazabilidad.
Ahora toca analizar alternativas y seleccionar la que más se ajuste a las necesidades del cliente.
Los mayores problemas están en (1) el análisis del Wiki y el Cms por la cantidad de alternativas disponibles y (2) en la herramienta de Project Management porque cada organización tiene un punto de vista muy personal sobre la gestión de proyectos, lo que interesa y lo que no. Así que no descarto que haya que desarrollar una aplicación a medida como suelen tener todas las organizaciones.
» Leer más, comentarios, etc...
Fetishcode...Thinking in objects
Administración de Weblogic-JDeveloper.
Julio 30th, 2009 - [Enlace local]
A
» Leer más, comentarios, etc...
programania
Gestión de riesgos ágil e Impediment Backlog
Julio 30th, 2009 - [Enlace local]
Cuando escribí un esquema sobre lo que supone la gestión de proyectos de software, incluí la “Gestión de riesgos” como parte de la gestión tradicional de proyectos. Pero según voy investigando dentro de las metodologías ágiles no encuentro casi nada que hable explícitamente sobre cómo hacer ésta gestión de manera ágil.
Esto ocurre porque la gestión de riesgos en metodologías como SCRUM no se hace explícitamente, se hace de manera integrada en el propio proceso y, por lo tanto, de manera continua.
Quizá, la parte más explícita de la gestión de riesgos sea el Impediment Backlog. Un Impediment Backlog es una lista de incidencias que tienen que ser resueltas por el equipo y que el Scrum Master debe gestionar y asignar al alguien para que trabaje en ellas, y que será revisada en la reunión SCRUM diaria, tras la pregunta: ¿Qué está bloqueando el progreso del proyecto?
Creo que no vale la pena que explique nada más aquí porque, curiosamente, he encontrado el mejor artículo sobre el tema en castellano. Se trata de un análisis exhaustivo sobre los riesgos clásicos del desarrollo de software y cómo los afronta SCRUM. Contentísimo de que la blogosfera de habla hispana de artículos de ésta calidad, oiga.
» Leer más, comentarios, etc...
Picando Código
Ejemplos de que JavaScript puede desplazar a Flash
Julio 30th, 2009 - [Enlace local]

Flash Sucks
A partir de uno de mis primeros posts, ya dejé clara mi posición respecto a la tecnología Flash de Adobe (Macromedia) con Flash: 5 razones para no usarlo. Si bien tuve que usarlo para dibujar un dinosaurio, y otra vez un auto, en clases de Hipermedia, e incluso fui justo con Flash para barrapunteros como tú (un palo y una flor como dije por ahí).
Aaah, los viejos tiempos de Picando Código… (nostalgia). En fin, mi opinión no ha cambiado. Hoy estoy todavía más de acuerdo con la idea de que Flash debería ser totalmente desplazado por JavaScript (AJAX, frameworks, etc.) e incluso con HTML 5 y la inclusión del tag , ya se puede prescindir totalmente de él.
En el blog de Andrés Nieto (quien aparentemente comparte mi opinión sobre el futuro de Flash) me encontré este enlace: 16 Impressive Flash-Like Javascript Animation Inspirations, Tutorials and Plugins
Son 16 ejemplos de cosas increíbles logradas puramente con JavaScript
Post dedicado a Máxxximo y Grilix, que creo comparten mi rechazo hacia Flash
» Leer más, comentarios, etc...
Ingenieria de Software / Software Engineering
Cambios al SWEBOK
Julio 29th, 2009 - [Enlace local]
Pablo Fernando Sánchez en su blog escribe sobre los cambios que tendrá la guía de SWEBOK, interesante post para tomarlo en cuenta aquellos inmersos en el tema de la Ingeniería de Software.
» Leer más, comentarios, etc...
MadeInFlex
Oferta Laboral - Inteligencia Aplicada
Julio 29th, 2009 - [Enlace local]
Descripción de la Empresa:
Invitamos a desarrolladores de software, con experiencia en programación orientada a objetos y uso de patrones,
para participar en un importante proyecto cuyo modelo se está llevando a cabo en el estado de Nuevo León.
Buscamos desarrolladores de Java, PHP, ActionScript, y de preferencia aunque no indispensable, con experiencia en Flex y Flash.
» Leer más, comentarios, etc...
programania
Gestión del conocimiento en proyectos de software
Julio 29th, 2009 - [Enlace local]
Hay un concepto que, sorprendentemente y por más que pregunto a colegas que trabajan en diferentes empresas, se deja de lado en muchas empresas de desarrollo de software: la gestión del conocimiento. Y dado el sector en el que nos movemos, parece un punto clave. Me parece que cualquier empresa debería ser capaz de responder a:
- ¿Quién utilizó, qué tecnología, cuándo?
- ¿Quién ha desarrollado qué producto y, por tanto, conoce su Lógica de Negocio?
- ¿Qué pasa si el programador X se marcha de la empresa? ¿se lleva todo su conocimiento? ¿Quién más lo tiene?
- ¿Todo el mundo debe tener los mismos conocimientos? ¿Tenemos diferentes perfiles?
- ¿Cuál va a ser la estrategia para que un recien salido de la facultad llegue a tener los mismos conocimiento que un Senior de su perfil?
Lo más triste es que pienso que la mayoría de estas cosas se podrían solucionar teniendo a una persona que se encargara de pensar un poco en ello. No sé si el problema es que la existencia o no de esa persona depende exclusivamente de que alguien, de manera proactiva, decida dedicarle algo de tiempo, o que algunas empresas tienen en la dirección cabezas que sólo piensan de manera financiera (beneficios = presupuesto – (coste del programador * número de programadores))…
Dejó aquí un artículo interesante y las técnicas básicas que propone:
- Pair Programming: ayuda a revisar el código, tomar decisiones de diseño, y trasvasar conocimiento entre programadores.
Wiki: es una manera ágil y rápida de compartir documentación, modificarla, y mantenerla totalmente actualizada (sabiendo quién hizo qué cambios).
Coding Standards Document: si todo el mundo escribe código igual, el mantenimiento es mucho más sencillo y evita que un código solo sea mantenible por quien lo programó.
Mailing List: o montarte “un twitter” para el proyecto (con Prologue o con lo que sea) ayuda a preguntar y responder dudas sobre el proyecto rápidamente.
Hacer saber a la gente que has arreglado un problema: esto se refiere a que una persona pueda entra en el código programado por otra y modificarlo para solucionar un problema, comentádoselo luego a los demás, y depende de la manera en que gestiones el código.
» Leer más, comentarios, etc...
programania
Agile Patterns: the technical cluster
Julio 29th, 2009 - [Enlace local]
Os aconsejo leeros el libro Patterns of Agile Practice Adoption. Se trata de un libro un tanto esquemático pero bastante exhaustivo que analiza las prácticas ágiles poniéndolas en forma de patrones (qué es, cuándo usarlo, qué implica, etc.). Ademas, explica bastante bien los objetivos de las prácticas ágiles, e introduce un concepto, los Business Smells (cómo detectar cuando algo va mal) muy interesante.
Además, describe cómo ir adoptando las prácticas ágiles de manera paulatina, en forma de iteraciones. Una lectura realmente interesante para todos aquellos que pretendemos ir introduciendo las prácticas ágiles en nuestro proceso de desarrollo.
Además, en la parte final de libro, agrupa las prácticas ágiles por Technical Clusters, esto es, conjuntos de prácticas analizadas en los capítulos anteriores.
Lectura fácil y clarificadora. ¡ya os la estáis bajando!
» Leer más, comentarios, etc...
Bitácora de Javier Gutiérrez Chamorro (Guti)
null is null
Julio 29th, 2009 - [Enlace local]
Puede parecer de perogrullo, pero null es null.
Sorprendentemente para Internet Explorer 7, en determinados contextos, que null sea null o que no sea un objeto, según se desprende del mensaje de error en inglés null is null or not an object, puede no ser bueno.
» Leer más, comentarios, etc...
Picando Código
Recordatorio: Evento del JUGUY Web 2.0 en Java EE
Julio 29th, 2009 - [Enlace local]
Si bien ya fue publicado, vale recordar que el próximo jueves se realiza el evento sobre Web 2.0 en Java EE del JUGUY en Montevideo:
Web 2.0 en Java EE (frameworks y productividad)
Presentación del Evento
1. ¿Qué es el Juguy?
Somos un grupo de desarrolladores Java, que formamos una comunidad abierta, independiente y sin fines de lucro, conformada tanto por novatos como por experimentados arquitectos de software. Entre los objetivos del grupo se encuentra la promoción del conocimiento técnico relacionado con la tecnología Java, proporcionando de esta forma una plataforma de crecimiento técnico y profesional a sus participantes, como así también a la industria local y regional.
El grupo se creo en diciembre de 2006 contando a la fecha con más de 1000 técnicos registrados de Uruguay y la región.
2. Objetivos del Evento
Promover:
- La tecnología Java.
- Metodología y arquitectura Java EE
- Desarrollos ágiles en Java EE
- Frameworks y herramientas para el desarrollo de aplicaciones Web 2.0 en Java
3. Detalle del evento
Agenda
- 18:00 – Charla de presentación del evento
- 18:30 – Grails in action
Descripción: Grails es uno de los principales frameworks de desarrollo de aplicaciones Web en Java EE. Esta charla pretende presentar este framework ejemplificando y viendo casos prácticos. Expositores: Ing. Alejandro Mateo, Ing. Pablo Kamil, Ing. Leandro Bertolami - 19:30 – JBoss Seam + Richfaces + JGenUI
Descripción: Analizar Jboss Seam como framework de aplicación utiilizando un proyecto open source uruguayo para generar código sobre esta tecnología
Expositores: Ing. Horacio Vico, Lic. Rodolfo Vazquez - 20:20 – GWT in action
Expositores: Ing. Enrique Rodriguez - 21:00 – Mesa redonda sobre tecnologías para la capa de presentación (GWT, Seam,Grails, Java FX, JSF)
¿Dónde y Cuándo?
Lugar: Aula Magna de la Universidad Catolica del Uruguay
Fecha: 30 de julio de 2009
Horario: de 18:00 a 21:30 horas.
Público objetivo
Estudiantes, docentes, técnicos y profesionales informáticos. Las charlas tendrán un nivel basico y medio.
Contacto
Correo: info@juguy.org
Sitio web JUGUY: http://www.juguy.org
» Leer más, comentarios, etc...
Picando Código
Visita de Corinto Meffe a Uruguay
Julio 28th, 2009 - [Enlace local]
Copio y pego de un mail enviado por Enrique Verdes a la lista de correos del UYLUG:
Corinto Meffe, uno de los principales promotores del Software Libre en el Gobierno Brasileño, estará de visita en Uruguay y dará una charla pública. Agradezco que difundan.
El Centro Linux lo invita a la charla que dara Corinto Meffe (Gerente de Innovaciones Tecnologicas del Gobierno de Brasil) a dictarse el dia 30 de julio a las 18 horas en la Sala Zitarrosa.
Software publico: Desarrollo económico y producción colaborativa
La experiencia brasileña de dos años del software publico, que ya sustenta resultados de colaboración el la producción de software y al mismo tiempo genero un modelo de negocios sustentable para el software con uso de licencia libre. Una experiencia premiada y que tiene apoyo del Programa de Las Naciones Unidas para El Desarrollo con Objetivo de llevarla para otros países.
» Leer más, comentarios, etc...
MadeInFlex
BlazeDS más cerca de Spring
Julio 28th, 2009 - [Enlace local]
Hace ya algunas semanas, los chicos de SpringSource sacaron a luz ( ya lleva unos cuantos meses en beta ) un nuevo proyecto que han estado cocinando de la mano de Adobe. Se trata del proyecto Spring BlazeDS Integration y, como su propio nombre indica, es una librería que facilita la integración de BlazeDS con Spring, el framework líder para desarrollar y ejecutar aplicaciones enterprise Java.
Como resultado de esta colaboración, SpringSource presenta un producto profesional para desarrollar Rich Internet applications basadas en Spring, en la parte servidora, y Adobe Flex en la parte de presentación.
Seguramente, dentro de poco sacaremos algún tutorial sencillo enfocado a mostrar todas sus features( y en Español ) pero, de momento, podéis empezar a echarle un vistazo en:
Spring for BlazeDS Integration
Como features a destacar:
- Mejor gestión de remoting y messaging destinations, tanto desde ficheros XML como por anotaciones en las clases de servicio
- Spring Security support
- Integración del MessageBroker dentro del contexto de Spring
Y con el adelanto que ya están trabajando en la compatibilidad con Spring 3.0 y LCDS.
» Leer más, comentarios, etc...
programania
Functor Objects
Julio 28th, 2009 - [Enlace local]
La verdad es que después de mucho discutir(por aquí, aquí, o aquí) sobre las ventajas de las lamba functions, closures, etc. en PHP 5.3, todavía no tengo muy claro cómo aplicarlo a mi código. En MundoGris, defienden que apenas hay cosas útiles, y que debemos fijarnos en el nuevo “magic method” __invoke como lo que realmente resultará útil. El __invoke nos permitirá crear clases que funcionan como funciones (ideales para luego reutilizarlas con array_map, array_filter,etc…). A continuación un ejemplo directamente copypasteado de MundoGris:
class GreaterThan { private $limit; public function __construct($limit) { $this->limit = $limit; } public function __invoke($number) { return $number > $this->limit; } } function filterGreaterThan($array, $limit) { $array = array_filter($array, new GreaterThan($limit)); }
Como vemos, GreatherThan es una clase con un método __invoke que array_filter utilizará para elegir aquellos miembros del array que sean mayores que $limit. Me ha parecido una solución útil e interesante.
» Leer más, comentarios, etc...
programania
¿Está PHP preparado para la empresa?
Julio 28th, 2009 - [Enlace local]
» Leer más, comentarios, etc...
xailer.info (esp)
Actualización de componentes para Xailer 2
Julio 27th, 2009 - [Enlace local]
Debido a los cambios en la última beta de Xailer 2 y el nuevo xHarbour es necesario actualizar las DLLs con los componentes externos que se han publicando durante las últimas semanas.
La actualización incluye:
Gdp
TRoundButton y TRoundGroupBox
TEditFilename/Directory y TEditCalculator
TCaptureBitmap
TSysShutdown
TServerInfo (publicada en los foros pro).
El ZIP contiene todos los componentes actualizados para la última beta de Xailer 2.
» Leer más, comentarios, etc...
programania
Métricas en la gestión de proyectos: estimaciones, costes, plazos y user stories
Julio 27th, 2009 - [Enlace local]
Ya estemos utilizando Kanban, SCRUM o Feature Driven Development, si estamos intentando aplicar cualquier metodología ágil necesitaremos elaborar un Product Backlog del proyecto donde cada ítem represente una user story (o una feature, o …). Además, deberemos priorizar esos items para ver cuales son más importantes y añaden más valor, e implementarlos primero.
Una de las claves a la hora de poner manejar cómodamente las user stories, elegir en qué iteración desarrollarlas y poder estimar cuanto tiempo tardaremos o si estamos cumpliendo el plan previsto, es hacer que sean del mismo tamaño (o, al menos, de un tamaño similar). Esto no siempre será posible, pero hay que intentar dividir una user story en varias, o juntarlas, para conseguir la mayor homogeneidad posible.
Para poder estimar el tiempo que nos llevará una user story, tenemos varias técnicas:
- por analogía: “si un item me costó 3 horas, y éste es del mismo tamaño, éste también me costará 3 horas.” Cuidado con ésta manera de estimar porque si te equivocas en tu primera estimación, propagarás el error al resto de estimaciones…
- descomposición: si no soy capaz de estimar cuanto me costará un story point, quizá pueda subdividirlo en una serie de story points más fáciles de estimar. Nunca llevar esto demasiado lejos, podemos perder mucho tiempo descomponiendo más y más y más…
- WideBand Delphi: para cuestiones realmente difíciles de estimar. Se trata de un proces en el que se implica a varios programadores y se busca el consens a base de rondas iterativas. Para ver exactamente cómo se haría: aquí.
- … y juegos típicos de SCRUM como el Planning Poker.
Una vez que tengamos nuestra estimación para los items más prioritarios, podremos ver cuantas horas y cuantos programadores serán necesarios para llevar a uen puerto la iteración en el tiempo estimado. Ésta es nuestra primera métrica: Iteration velocity, esto es, el número de horas (o de story points) resultos multiplicado por el número de programadores que participarán.
Si la Iteration Velocity de cierta iteración que va a durar tres semanas se ha planificado en 45 user stories, y pasada una semana sólo se han resuleto 3 user stories, se puede ver claramente que el equipo se está retrasando. Esto se suele representar mediante un gráfico BurnDown.

Diariamente el programador introducirá las horas reales que le están suponiendo los story points. Las horas reales, son una métrica muy evidente. Si estamos por debajo de lo estimado, habrá que añadir story points a la iteración, y si estamos por encima, habrá que ver por qué, y en caso de no haber remedio, disminuir el número de story points de la iteración para poder llevarla a buen puerto.
Si la iteración va mal, y no nos va a dar tiempo a completarla como lo planificamos habrá que ver por qué. A eso nos ayudarán un par de métricas:
- unplanned items: esto es, el número de items que hemos descubierto que había que hacer para poder realizar las funcionalidades desarrolladas. Esto puede darse por varios motivos. El primero es no haber detectado una dependencia (para poder hacer el item x, debería hacer primero el Y), y el segundo es un mala fase de análisis y diseño, que nos haga ahora descubrir cosas sobre nuetro software que ya deberíamos saber.
- defects: si el mismo equipo que se dedica al desarrollo se dedica a la solución de defectos encontrados en las iteraciones anteriores, y el número de defectos encontrados es alto, puede ser que nuestro equipo se esté dedicando a solucionar defectos en vez de desarrollar nuevas funcionalidades, y que esto lo esté retrasando.
- Alcance del producto. Es el número total de funcionalidades a implementar.
- Calidad: medido de forma fiable mediante el número de defectos total del sistema.
- Coste: muchas veces medido como el número de recursos necesario (programadores y número de horas por programador).
- Tiempo: plazos y fechas estimadas.

Razones para elegir una funcionalidad y priorizar:
- El valor financiero de tener una funcionalidad concreta.
- El coste de desarrollar (y seguramente mantener) la nueva funcionalidad.
- Lo que aprendemos sobre el producto al desarrollar esa funcionalidad.
- La cantidad de riesgo que desaparece al desarrollar esa funcionalidad.
Y, por último, dejo aquí un interesante artículo sobre preguntas que podemos hacernos a la hora de controlar el desarrollo de un proyecto, y cómo obtener las respuestas en un entorno SCRUM.
» Leer más, comentarios, etc...
MadeInFlex
Fx4 IV: Spark containers
Julio 25th, 2009 - [Enlace local]
En este nuevo artículo veremos los nuevos containers de Fx4, los spark containers. Aunque Fx4 también proporciona los Halo containers, Adobe recomienda que usemos Spark containers siempre que sea posible, debido a que la arquitectura ha sido mejorada y optimizada. Como ejemplos de esta optimización tenemos que para mejorar el rendimiento de las aplicaciones, algunos Spark containers no permiten skinning y otro ejemplo sería que los Spark containers permiten el intercambio de layouts.
» Leer más, comentarios, etc...
Fetishcode...Thinking in objects
JDeveloper en Linux.
Julio 24th, 2009 - [Enlace local]
A
» Leer más, comentarios, etc...
xailer.info (esp)
Nueva versión de Xailer 2
Julio 24th, 2009 - [Enlace local]
Estimados usuarios de Xailer,
Ya está disponible una nueva versión de Xailer 2 Beta en la cual hemos conseguido subsanar algún error más debido al rediseño de los ‘Datacontrols’ y además incluimos el nuevo control TListView completamente acabado, incluida su documentación.
Os adelantamos que antes del mes de agosto publicaremos una última versión de Xailer 2 Beta que seguramente incluirá soporte nativo de PostgreSQL, para ya publicar la versión definitiva de Xailer 2.0 en la primera quincena de septiembre.
Podéis encontrar la nueva versión de Xailer 2 Beta en el siguiente enlace:
http://www.xailer.com/files/xailer20beta.exe
También podéis descargar la versión xHarbour, que no ha cambiado desde la anterior publicación, 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
Pero: ¿para qué sirve Twitter?
Julio 24th, 2009 - [Enlace local]
Aprovecharé la estupenda traducción de la entrevista sobre Guy Kawasaki que hicieron en ALT1040 para hablar de Twitter, de la misma manera que hablé el otro día sobre Facebook, ¿para qué nos sirve a los desarrolladores twitter y cómo podemos aprovecharlo para ganar tráfico y hacer marketing on-line?
Twitter una sencilla red social donde se pueden escribir mensajes de 140 caracteres, la gente puede seguirte y tu puedes seguir a gente. La formas de comunicarte son:
- publicar esos mensajes en tu status que verán todos tus seguidores
- escribir mensajes directos a una persona en concreto
- mensajes @, que son aquellos que se publican en tu status pero que contestan a un tweet concreto de otro usuario.
- Que un seguidor haga un “retweet” de un mensaje publicado por tí, de tal manera que no sólo lo vean tus seguidores, sino sus seguidores también.
Además, Twitter permite potentes búsquedas entre lo que la gente está twitteando, que además te permiten descubrir nueva gente interesante y suscribirte a ella. La gente que más exito está teniendo en Twitter, es aquella que está publicando contenido interesante.
Además, Twitter tiene una API que permite postear automáticamente contenido que venga de una aplicación que estés programando o de una fuente RSS por ejemplo. Así que si tienes un blog, puedes ganar en seguidores (y en tráfico) vinculando tu cuenta twitter a tu blog. También se puede utilizar el API para publicar incidencias en un servidor, por ejemplo, y que la gente relacionada con ese servidor pueda seguirlo (las aplicaciones del API de Twitter son infinitas).
Pese a que se habla de Twitter como el SMS-Killer (el día que todos los móviles tengan 3G, twitter te permitirá comunicarte de forma sencilla en mensajes cortos ), Twitter a día de hoy todavía es usado por gente bastante tekki (aunque esto va cambiando poco a poco). El tipo de audiencia que tendremos, comparando con Facebook, es una audiencia más tecnológica.
En definitiva, integrar una web o blog con Twitter es tan sencillo y el potencial aumento de tráfico puede ser tan grande que vale la pena hacerlo…
» Leer más, comentarios, etc...
programania
Seguridad y Zend Framework
Julio 24th, 2009 - [Enlace local]
Dejo a continuación una interesante presentación que habla sobre cómo implementar seguridad en un desarrollo con Zend Framework. Habla sobre temas básicos como autenticación , validación o filtrado, así como Cross Site Request Forgery, Session Hitchjacking, SQL Injection, etc. Está muy bien porque repasa aquellos mecanismos de seguridad automáticos que tiene el ZF y da consejos para hacer más seguro aquello que no lo es.
Presentación sobre seguridad en Zend Framework [PDF]
» Leer más, comentarios, etc...
programania
Internacionalización en PHP 5.3
Julio 23rd, 2009 - [Enlace local]
PHP 5.3 es mucho más de lo que parece. Quizá nos hayamos centrado mucho en discutir la utilidad de las PHP closures, o en funcionalidades copiadas a Java como Namespaces o PHAR, pero la versión 5.3 nos trae nuevos módulos como el de internacionalización, que me ha dejado bastante sorpredido. Tiene muy buena pinta. Copio y pego directamente de l artículo de sentidoweb:
Artículo original: devzone.
» Leer más, comentarios, etc...
EsLoMas.com
El movimiento NoSQL va cogiendo fuerza
Julio 23rd, 2009 - [Enlace local]
Este mes de Julio está siendo especialmente movidito en el ámbito de las bases de datos, a raíz de un encuentro en San Francisco, en el que se han reunido alrededor de 150 desarrolladores partícipes de la comunidad “nosql”. El objetivo del encuentro era presentar a los participantes el funcionamiento de las bases de datos distribuidas no relacionales, así como un repaso a diversos proyectos existentes.
En Computerworld, en su artículo No to SQL? Anti-database movement gains steam hacen un interesante repaso de las características de este movimiento.
Los miembros de esta comunidad comparten una visión común en cuanto a que los sistemas de bases de datos relacionales (RDBMS) clásicos son lentos, complejos, caros e ineficientes para muchos de los problemas existentes en las aplicaciones de Internet actuales, especialmente en el ámbito de la Web 2.0 y las redes sociales. Frente a estos sistemas clásicos, proponen la utilización de sistemas más eficientes y baratos para gestionar la información, como los almacenes de datos basados en clave-valor como BigTable (Google) o Cassandra (Facebook), o incluso almacenes en memoria como Memcached, la utilización de shardings sobre estos almacenes para ofrecer almacenamiento distribuido, y sistemas como Hadoop que permitan el trabajo sobre estos almacenes distribuidos.
» Leer más, comentarios, etc...
Najaraba.com: Software libre, negocios y más.
¿somos ingenieros los del software?
Julio 22nd, 2009 - [Enlace local]
Seguro que ya te has enterado del revuelo que se ha armado con el artículo en IEEE de Tom diMarco, sobre su cambio de parecer con el control y métricas en los proyectos de software.Las métricas que inicialmente expuse en mi libro Controlling Software Projects: Management, Measurement and Estimation, han definido la forma en la que muchos ingenieros construian el software y planificaban el trabajo
