Category: Software

Tip : Corrección de la actualización automática de WordPress

Si alguna vez han intentado actualizar la versión de WordPress mediante la opción de “Actualización automática”, probablemente a algunos les aparecío el mensaje:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2355240 bytes) in /home/mysite/public_html/wp-includes/http.php on line 133X.

El problema se debe principalmente a que algunos plug-in instalados no sean completamente soportados por WP o requieren de configuración adicional, para continuar unicamente se deben de desactivar todos los plug-in y ejecutar nuevamente la actualización automática, una vez finalizado el proceso se deben de activar los plug-in que se requieren.

Espero que este tip sea de utilidad, en mi caso me salvo del clásico WP Upgrade.

Hacer Unit Test != Aplicar TDD

Cada nuevo proyecto involucra el tener que interactuar con nuevos grupos de trabajo, nuevas personas y nuevos retos, pero recientemente algo que me ha  llamado mucho la atención es el hecho de que varias personas dicen conocer acerca de ciertas metodologías de desarrollo de software, no es que yo me considere una eminencia en todas las materias, pero si cuando no tengo mucha idea sobre un tema, primero escucho y después investigo de que trata.

Volviendo al inicio (“bottom line”), en una reciente plática con un equipo de trabajo, se estaba discutiendo el tema de las pruebas unitarias y el cómo se van a emplear en el proyecto, algunos mencionaron que nunca las habían empleado, otros habían solo leído o escuchado sobre de ellas y otros decían que tenían amplia experiencia y que incluso habían aplicado TDD (Test-Driven Development)…interesante punto!

Cuando les pedía a los que “habían” empleado TDD comentarán sobre sus experiencias y utilidad, surgieron los siguientes puntos:

-          Comentaban que su tiempo de implementación alargaba en tiempo de desarrollo del proyecto.

-          Que se hacía complicado cumplir con las coberturas de código.

-          Al final terminaban haciendo muchas pruebas unitarias.

-          Que el IDE ya generaba automáticamente las pruebas y aplicaba el TDD…..?

Después de escuchar los comentarios no pude evitar comentar: hacer pruebas unitarias NO es aplicar TDD!, decirle a un Wizard que tome nuestros componente y automáticamente genere las pruebas unitarias NO es TDD!. Muchas veces no se logran comprender los verdaderos beneficios (o desventajas) de aplicar tal o cual práctica ó nos mal acostumbramos al flujo de trabajo que sigue cierta herramienta y creemos que así es como esta se aplica (todo gracias a la mercadotecnia!).

TDD es una práctica que se encuentra enfocada en aplicar dos principios básicos: Escribir primero las pruebas unitarias  y Refactoring de código. Para la definición de las pruebas unitarias se requiere tener claramente definidos los requerimientos (punto importante!), y una vez que se tengan claros aplicar los siguientes puntos:

a)      Tomar un requerimiento (con su respectivo caso de uso) que sea factible de iniciar su implementación o que sea más representativo.

b)      Definir la prueba unitaria con un nombre que describe el requerimiento.

Ejemplo:  IniciarSesiónConTokenDeSeguridadTest().

c)       Verificar que la prueba falla, se supone que en un principio esta se encuentra vacía y no tiene código.

d)      Implementar la prueba unitaria, es decir empezar a codificar a fin de realizar la implementación que cumpla con el propósito de la prueba unitaria.

e)      Ejecutar la prueba unitaria y verificar que funcione.

f)       Aplicar refactoring del código a fin de eliminar redundancias y reducir la implementación.

g)      Opcionalmente detectar posibles comportamientos que no se encontraban claramente especificados en el requerimiento implementado.

Revisando los puntos anteriores, el uso de este tipo de prácticas permite reducir la cantidad de errores y principalmente, permite al desarrollador confiar en su código al momento de la implementación de las pruebas unitarias, además de que las pruebas permiten mostrar el avance del trabajo y poder  demostrar escenarios de comportamiento que nuestros usuarios puedan revisar de forma simple.

Como toda práctica tiene sus ventajas y desventajas, por lo que su uso debe de estar condicionado a la experiencia de quienes lo van a implementar y se encuentren a gusto con trabajar de este modo. En mi caso lo he aplicado y me ha funcionado bastante bien, pero como siempre en gustos (y prácticas) se rompen géneros!

Git on Windows

Reciente he empezado a emplear GIT como herramienta personal de control de versión en MacOSX, ya que considero que una de las buenas prácticas para realizar nuestro trabajo y aquellos proyectos de tipo personal, es siempre tratar de emplear una herramienta de Control de Versiones (nunca se sabe cuando el gato se comerá nuestro código).

Platicando con otros colegas sobre los diferentes herramientas de control de versiones  y GIT,  les intereso mucho el tema, hasta que  surgieron las siguientes preguntas : ¿Porqué cambiar Subversion?, ¿ Pero …funciona en MS Windows?…. interesante!

Primero mi intención no es decir cual es mejor que la otra, las dos son opciones bastante útiles y han demostrado su eficacia, así que más que basarse en recomendaciones, así como las metodologías, es cuestión de gustos!

Pasando a la segunda pregunta, en mis primeros días con Git recuerdo haber leído sobre algunos esfuerzos para emplearlo en SO Windows, y unos de los proyectos que más avance tiene en ese tema es msysgit, el cual permite proporcionar el ambiente necesario para la ejecución en MS Windows.

Por default Git proporciona una herramienta visual llamada Git GUI, pero es una versión bastante limitada y en ocasiones no “muy amigable de usar” y en ocasiones usar Git desde línea de comandos puede ser todo una “ciencia oscura”, por lo cual otra herramienta útil para cuestiones de integración con el SO y consulta visual es TortoiseGit, un versión basada en la excelente herramienta para Subversion TortoiseSVN.

Incluso he realizado pruebas de instalación y uso de las herramientas en Windows 7 y funcionan a la perfección, recomiendo a quienes les interese dar un “test-drive” con Git, una vez que lo conozcan seguro les agradará o al menos con el fin de conocerlo y criticarlo.

Creación de Prototipos en Línea

Creo que el algún momento de los que nos dedicamos al desarrollo de aplicaciones hemos tenido que diseñar prototipos, muchas de las veces se empieza en papel o directamente sobre el designer del ambiente de desarrollo, en fin recientemente me tope con una excelente herramienta RIA llamada “Mockups”, la cual te permite realizar prototipos para aplicaciones tanto Web como de escritorio.

El bastante sencillo su uso y permite realizar bosquejos muy claros, así como importar o exportar el resultado en formato XML.

Otro punto importante es que se trata de una aplicación basada e Adobe AIR lo cual permite que sea multiplataforma.

Un ejemplo del resultado:
myImage-2.png

2009, New look!

En este inicio de año decidí actualizar mi blog actualizando la versión de WordPress a la 2.7 y aplicando un nuevo template al diseño, el cual despues de pasar un buen rato escogí este diseño.

Volviendo a la versión 2.7 de WordPress me parecio interesante la nueva distribución y sobre todo el nuevo editor de post, en verdad que las personas detrás de este proyecto le han invertido para lograr una mejor  usabilidad, a los que aun no se actualizan les recomiendo revisar esta nueva versión esta simplemente genial!.

Y como propósitos de este blog para este año 2009:

1. Postear mas seguido (mínimo 2 veces por mes).

2. Recomendar libros.

3. Agregar algunos efectos adicionales con JS

4. Escribir mejor y redactar post cada vez más interesantes!

Android: Open Source Project

El día de ayer se anuncio que  Android se convierte en proyecto Open Source poniendo a disposición de la comunidad de desarrollo el código fuente, con lo cual se proporciona una plataforma completa para el desarrollo de aplicaciones moviles, además de contar con Android Market en donde no cobran por publicar las aplicaciones.

Considero que esta medida de ofrecer una alternativa para impulsar aun más el desarrollo para equipos moviles, pretende hacer competencia a Apple en su carrera con el iPhone, App Store y el iPhone SDK, más aun despues de que Apple retirará la NDA que impedía hablar hacerca del desarrollo para iPhone.

No por nada Microsoft ya esta trabajando en las versiones 7 y 8 de Windows Mobile, además de que también cuenta con una tienda de aplicaciones, aunque de momento no ofrece nada relevante.

Debido a este acelerado proceso por dominar la parte de los mobiles, los desarrolladores ahora cuenta con una gran variedad dependiendo de los gustos y preferencias, lo importante es ver cual de todas es la que ofrece los mejores recuersos y herramientas.

 

Google Chrome

En el Blog de Google se anuncia un nuevo proyecto llamado Chrome, el cual es el nuevo “Internet Browser” opensource basado en WebKit (motor de renderizado para Safari), además de incorporar un nuevo motor para Javascript llamado por el momento V8, el cual promete ser bastante rápido y poderoso en comparación con otros.

Al parecer Google espera con este proyecto expandir su oferta de servicios y con este nuevo “browser” dar un mejor soporte a sus aplicaciones Web (GMail, GDocs, GCalendar).

A continuación un extracto de la noticia:

” “launch early and iterate.” While this approach is usually limited to our engineers, it apparently applies to our mailroom as well! As you may have read in the blogosphere, we hit “send” a bit early on a comic book introducing our new open source browser, Google Chrome. As we believe in access to information for everyone, we’ve now made the comic publicly available — you can find it here. We will be launching the beta version of Google Chrome tomorrow in more than 100 countries.”

Por el momento no existen imagenes que permitan conocer a detalle la aplicación lo único que se ofrece es una explicación en forma de “comic” en donde se explican los motivos de la creación de Chrome

Red Gate Software Adquires .Net Reflector

Hoy me acabo de llegar un correo de notificación en donde Lutz Roeder autor  de .NET Reflector, de una de las utilerías que todo desarrollador .NET debe de tener, en donde avisa que en adelante se dedicará a nuevos horizontes y ahora dejará la responsabilidad de .Net Reflector a la empresa Red Gate Software.

 A continuación una extracción del correo:

“After more than eight years of working on .NET Reflector, I have decided it is time to move on and explore some new opportunities.

I have reached an agreement to have Red Gate Software continue the development of .NET Reflector. Red Gate has a lot of experience creating development tools for both .NET and SQL Server. They have the resources necessary to work on new features, and Reflector fits nicely with other .NET tools the company offers.”

En la página de Red Gate Software ya se anuncia la adquisición del proyecto.

Con esto lo lógico es que ahora existirá una versión comunitaría y otra que será con licenciamiento,  ojala la gente de Red Gate Software considere a la comunidad y no se pierda en el enfoque de hacer solo negocio, ya que esta es una herramienta muy utilizada que cuenta con bastantes Add-ins.

Habrá que estar atentos con el futuro de .Net Reflector

Evitar el molesto backup del iPod/iPhone en iTunes

Al momento de bajar aplicaciones del App Store (o algúna canción, podcast,etc) y pasarlo al iPod Touch /iPhone, se inicia el molesto y lento proceso de “backup” del dispositivo, este proceso puede llegar a tardar hasta 10 min. dependiendo de la cantidad de información almacenada!!! un verdadero fatidio si solo se requiere pasar una Aplicación o actualizar un PodCast!!

Para evitar lo anterior existe una aplicación llamada “Backup Disabler“, para MAcOSX, la cual evitar el molesto “backup” de forma segura con solo presionar un botón, bastante simple!!.
677BD15E-7129-4113-A7D6-44155BE908C8.jpg

Para plataforma Windows existe una solución por parte de “UnEasySilence” solo que más complicada de realizar, pero funciona!

Apple App Store: Primera revisión

appstore_appstoreimage_20080612.jpg

Recientemente decidi actualizar mi iPodTouch con el Firmware 2.0, es decir pague el costo de actualización con tal de poder bajar aplicaciones del App Store. Durante este tiempo ha probado ciertas cantidad de aplicaciones tanto gratis como de paga que quisierá recomendar mediante la siguiente lista, completando las recomendaciones de Dx:

Free
1. NetNewsWire
2. Twitterrific (en efecto en iPod/iPhone en grátis!)
3. Remote
4. iPint
5. WordPress
6. myLite
7. Funambol
8. Google Apps
9. Tap Tap
10. SudokuFree

Purchase
1. FileMagnet (leer Pdf,Docs y otros formatos de documentos)
2. Things
3. Sketches
4. Monkey Ball
5. Cubic Man Deluxe
6. Crash Bandicoot

Alguién tiene más recomendaciones?

WordPress Themes