Archivo de la categoría: Herramientas de desarrollo

Temas relacionados con herramientas de desarrollo de software y su utilización.

Crear nuevo proyecto ASP Net MVC

En este post trataremos de explicar como crear un nuevo proyecto ASP.NET MVC.

Los pantallazos de esta entrada están tomados de Visual Studio 2010 Ultimate pero el proceso de creación para otras versiones de Visual Studio es similar.

Lo primero que debemos hacer una vez abiero Visual Studio es ir a Archivo -> Nuevo -> Proyecto

ASPNET MVC NUEVO

Aparecerá una ventana en la que nos dejará elegir el tipo de proyecto. Del menú de la izquierda seleccionaremos Web y en el cuerpo de la ventana podremos elegir ASP.NET MVC Web Application o bien ASP.NET MVC Empty Web Application.

Nuevo proyecto MVC

La diferencia entre ambas es que para la primera vienen implementadas ciertas funcionalidades mientras que para la segunda únicamente crea el «esqueleto» de una aplicación MVC.

En ambos casos se crean las referencias a las librerías MVC de .Net necesarias para su uso.

Nosotros seleccionaremos la primera opción: ASP.NET MVC Web Application.

Es posible que dependiendo de tu versión de Visual Studio te pregunte en este punt o si deseas crear un proyecto dentro de la solución para tests, esto lo seleccionarás si deseas hacer código de pruebas.

Una vez hecho todo esto Visual Studio creará por medio de una plantilla toda una estructura de carpetas y ficheros necesarios para la correcta implementación de un proyecto MVC:

ASPNET MVC Estructura inicial

Problema con git en windows – fatal: could not read password

Primero vamos a ponernos en la situación que me encontraba:

Había instalado NetBeans  7.4 (versión php) y tenía un proyecto al que quería hacer un control del código fuente. Por suerte en esta versión de NetBeans existía un plugin instalado de git con lo que en principio todo iba a parecer fácil…

Decidí instalar el repositorio origen en un servidor de internet y pronto me decidí por bitbucket.org. Allí me registré y me dispuse a crear un repositorio para luego trabajar en local y subir los cambios a este servidor.

Cuando en bitbucket le das a comenzar me da la opción de crear un repositorio vacío o subir un repositorio existente desde un equipo local, esta última opción era la que yo quería porque el proyecto estaba ya bastante avanzado. Según me indicaba el propio bitbucket debía introducir las siguientes líneas:


$ cd /path/to/my/repo

$ git remote add origin https://usuario@bitbucket.org/usuario/repositorio.git

$ git push -u origin --all

$ git push -u origin --tags

Las dos primeras líneas se ejecutaron sin ningún problema pero cuando llegué a la tercera me topé con el siguiente error:

fatal: could not read Password for ‘https://usuario@bitbucket.org’: No such file or directory

Después de buscar soluciones por internet encontré esta herramienta.

Se trata de una consola parecida pero que te permite ejecutar estos comandos sin ningún problema.

Manejo y registro de errores php en tiempo de ejecución

Es posible que al ejecutar un sitio web php con apache aparezcan en pantalla errores de tipo notice, warning, error…

El modo en que se muestran o advierten al usuario es lógicamente administrable a través de sus ficheros de configuración.

Antes de nada hay que aclarar que php ofrece distintos niveles de manejo de errores y logging.

Las constantes de nivel de errores

Los niveles de error en php son:

  • E_ALL: todos lo errores y advertencia.
  • E_ERROR: errores fatales en tiempo de ejecución.
  • E_RECOVERABLE_ERROR:  errores en tiempo de ejecución capturable. Si no se captura pasa a ser de tipo E_ERROR.
  • E_WARNING: advertencias en tiempo de ejecución. (no son errores fatales).
  • E_PARSE: errores en tiempo de compilación.
  • E_NOTICE: avisos en tiempo de ejecución (son advertencias que suelen derivar de bugs en el código, pero que son posiblemente intencionados).
  • E_STRICT: avisos en tiempo de ejecución para que php sugiera cambios en el código para asegurar compatibilidad con dicho código
  • E_CORE_ERROR: errores fatales que ocurren durante la inicialización de php.
  • E_CORE_WARNING: advertencias que ocurren durante el arranque de php.
  • E_COMPILE_ERROR: errores fatales en tiempo de compilación.
  • E_COMPILE_WARNING: advertencias en tiempo de compilación.
  • E_USER_ERROR: mensajes de error generados por el usuario mediante el código.
  • E_USER_WARNING: mensajes de advertencia creados por el usuario.
  • E_USER_NOTICE: mensajes de aviso creados por el usuario por código.
  • E_DEPRECATED: aviso sobre una parte de código que no será funcional en versiones futuras de php.
  • E_USER_DEPRECATED: aviso generado por el usuario que no será funcional en posteriores versiones de php.

Estos errores se mostrarán o no dependiendo de la configuración de php.ini. Este fichero se encuentra en la instalación típica de php dentro de Apache.

Los parámetros más importantes que se utilizan para configurar el manejo de errores  y logs son:

  • error_reporting
  • display_errors

Con error_reporting podemos establecer qué nivel o niveles de errores se mostrarán de todos los que hemos expuesto anteriormente.

Los valores más comunes para la configuración de este parámetro son:

  • Valor por defecto en la mayor parte de instalaciones:
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
  • Valor idóneo para etapas de desarrollo:
error_reporting=E_ALL
  • Valor sugerido para producción:
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT

Con la directiva display_errors podemos decidir si queremos que los errores se muestren en las páginas (en forma de html) a la hora de visualizar el resultado de nuestro código php. Esto puede ser muy útil cuando se trabaja en local o en proyectos que aún no están subidos a producción pero es totalmente indeseable cuando la web está desplegada en producción. Elegir una de las dos:

display_errors=On; Esta configuración mejor en desarrollo
display_errors=Off ; Esta configuración en producción

Configurar Virtual Host con Apache en Windows

Al montar Apache en Windows puede ser que te encuentres con el problema de descargar un sitio web que funciona correctamente en el servidor pero que al ejecutarlo en local (aunque sí que cargue) pierde estilos, enlaces, javascript y más cosas. Es posible que las rutas que utiliza ese código sean rutas relativas y al situarlo físicamente en tu workspace deje de funcionar.

La solución a este problema tiene un nombre: Virtual Hosts. Con este módulo se permite configurar múltiples sitios dentro de un mismo servidor dándoles los nombres que deseemos.

Existen numerosas formas de configuraciones de virtual hosts en Apache, yo trataré en este post de explicar la forma más común de configuración que consiste en crear varios hosts virtuales dentro de una misma dirección IP. (Si deseas más información puedes acceder a la página de documentación de Apache donde existen numerosos ejemplos).

Comencemos por editar el archivo de configuración de apache httpd-vhosts.conf. Este fichero se encuentra dentro de la ruta donde tengas instalado Apache dentro de la ruta apache\conf\extra. 


<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/ejemplo1.com"
ServerName ejemplo1.com</VirtualHost>

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/ejemplo2.com"
ServerName ejemplo2.com

</VirtualHost>

...

Hasta este punto tendremos configurado Apache para albergar diversos sitios web con distinto nombre dentro de este servidor. Nos falta un segundo paso que nos permitirá que cuando introduzcamos en el navegador el nombre de uno de los sitios locales no se vaya a Internet a buscarlos sino a la ruta que nosotros le hemos establecido.

  • Ir a c:\windows\system32\drivers\etc\ y editar con el bloc de notas el archivo hosts
  • Insertar al final:

127.0.0.1 localhost
127.0.0.1 ejemplo1.com

127.0.0.2 ejemplo1.com

Escribiremos tantas líneas con los nombres de sitio como queramos acceder localmente.

Ahora solamente deberás abrir el navegador y meter la url que has establecido como servername, por ejemplo: local.ejemplo1.com 

Desplegar aplicaciones android en un entorno real con Eclipse

De la misma manera que podemos utilizar un simulador virtual para desplegar nuestras aplicaciones android podemos instalarlas en un dispositivo real mediante un cable USB. Para ello debemos tener instalado el componente ‘Google USB Driver package’ en nuestro equipo. La mejor manera de hacerlo es a través de Android SDK Manager en la carpeta ‘Extras’. Nota: este driver es un controlador genérico para todos los móviles pero es posible que en algún dispositivo en concreto sea mejor utilizar el driver específico del modelo del fabricante.

Una vez instalado el componente debemos preparar nuestro terminal en modo depuración USB. La ubicación de esta opción depende de nuestro teléfono/tablet. Suele encontrarse en Ajustes -> Aplicaciones -> Desarrollo o en Ajustes -> Sistema -> Opciones de desarrollo.

Ya podemos visualizar el dispositivo desde Eclipse, para ello iremos a la opción de menú Windows -> Show View -> Devices.

Para desplegar la aplicación en el terminal real definiremos el Target del proyecto como manual y lo ejecutaremos pulsando botón derecho sobre él y seleccionaremos Run as -> Android Application. Seleccionaremos nuestro terminal y esperaremos a que se instale. Algunas veces es necesario configurar el móvil para que permita aplicaciones con orígnenes desconocidos (aplicaciones no instaladas desde Google Market).

Desplegar aplicaciones en el emulador de dispositivos Android con Eclipse

La SDK de android dispone de un emulador de dispositivos Android virtuales. Dentro de esta herramienta existen terminales virtuales con distintas características tanto como de hardware como de software. Esto nos permite probar la compatibilidad de nuestras aplicaciones para todo tipo de terminales android.

Desde Eclipse podemos acceder al administrador de dispositivos virtuales de android pulsando Window > Android Virtual Device Manager. La ventana abierta nos mostrará la lista de los disposivos virtuales android que tengamos instalados en nuestra directorio sdk de android. En esta lista nos indicará que API utiliza cada uno así como la plataforma, CPU (procesador que incorpora cada dispositivo), etc…

Si en esta lista no tenemos ninguno o queremos añadir uno nuevo pulsaremos sobre el botón New. Los campos a rellenar serán:

  • AVD Name: nombre que usaremos para identificar el dispositivo.
  • Device: permite seleccionar un terminal que se usará únicamente como interfaz.
  • Target: API/versión de Android que usará el terminal.
  • CPU/ABI: generalmente asociado a la target seleccionada anteriormente.
  • Keyboard: si está activado se mostrará un teclado para escribir.
  • Skin: activada permite enseñar una skin con controles de hardware.
  • Front Camera / Back Camera: si el desplegable está activado podremos seleccionar como funcionará la cámara. Tiene tres opciones:
    • None: no se utilizará la cámara
    • Emulated: cámara simulada.
    • Web Cam: si nuestro equipo dispone de webcam.
  • Memory Options: estableceremos las opciones de RAM y capacidad de la máquina virtual.
  • Internal Storage: capacidad de la memoria interna del terminal.
  • SD Card: capacidad de la tarjeta de memoria.
  • Emulation Options:
    • Snapshot: permite guardar el estado del dispositivo antes de cerrarlo. Es muy recomendable activarlo ya que mejora el rendimiento de trabajo sobre el emulador.

Para el despliegue de nuestro programa en un emulador lo que debermos hacer es pulsar con el botón derecho en la raíz del proyecto y seleccionar del menú la opción Run as > Run Configurations. En la ventana abierta aparecerán varias pestañas, seleccionamos la primera ‘Android’ y seleccionamos si no lo está nuestro proyecto con el botón de exploración. Posteriormente pasamos a la pestaña Target donde podremos seleccionar el dispositivo que se arrancará. También podemos hacer que nos pregunte con que configuración queremos simular (Always prompt to pick device) o dejar que automáticamente inicie el dispositivo con el recomendado para nuestra proyecto.

La SDK de android dispone de un emulador de dispositivos virtuales. Dentro de esta herramienta existen terminales virtuales con distintas características tanto como de hardware como de software. Esto nos permite probar la compatibilidad de nuestras aplicaciones para todo tipo de terminales android.

Desde Eclipse podemos acceder al administrador de dispositivos virtuales de android pulsando Window > Android Virtual Device Manager. La ventana abierta nos mostrará la lista de los disposivos virtuales android que tengamos instalados en nuestra directorio sdk de android. En esta lista nos indicará que API utiliza cada uno así como la plataforma, CPU (procesador que incorpora cada dispositivo), etc…

Si en esta lista no tenemos ninguno o queremos añadir uno nuevo pulsaremos sobre el botón New. Los campos a rellenar serán:

  • AVD Name: nombre que usaremos para identificar el dispositivo.
  • Device: permite seleccionar un terminal que se usará únicamente como interfaz.
  • Target: API/versión de Android que usará el terminal.
  • CPU/ABI: generalmente asociado a la target seleccionada anteriormente.
  • Keyboard: si está activado se mostrará un teclado para escribir.
  • Skin: activada permite enseñar una skin con controles de hardware.
  • Front Camera / Back Camera: si el desplegable está activado podremos seleccionar como funcionará la cámara. Tiene tres opciones:
    • None: no se utilizará la cámara
    • Emulated: cámara simulada.
    • Web Cam: si nuestro equipo dispone de webcam.
  • Memory Options: estableceremos las opciones de RAM y capacidad de la máquina virtual.
  • Internal Storage: capacidad de la memoria interna del terminal.
  • SD Card: capacidad de la tarjeta de memoria.
  • Emulation Options:
    • Snapshot: permite guardar el estado del dispositivo antes de cerrarlo. Es muy recomendable activarlo ya que mejora el rendimiento de trabajo sobre el emulador.

Para el despliegue de nuestro programa en un emulador lo que debermos hacer es pulsar con el botón derecho en la raíz del proyecto y seleccionar del menú la opción Run as > Run Configurations. En la ventana abierta aparecerán varias pestañas, seleccionamos la primera ‘Android’ y seleccionamos si no lo está nuestro proyecto con el botón de exploración. Posteriormente pasamos a la pestaña Target donde podremos seleccionar el dispositivo que se arrancará. También podemos hacer que nos pregunte con que configuración queremos simular (Always prompt to pick device) o dejar que automáticamente inicie el dispositivo con el recomendado para nuestra proyecto.

Mover WordPress a otro dominio

Si tienes que mover WordPress a otro dominio supone mucho más que mover los ficheros y la base de datos, desde luego esto último es imprescindible, pero hay que tomar acciones adicionales para borrar/modificar antiguas referencias al antiguo nombre de dominio o localización que se haya mantenido dentro de la base de datos.

Según la ayuda de WordPress tenemos dos opciones:

  • Realizar una búsqueda y reemplazo únicamente en la tabla wp_posts.
  • Usar una herramienta que realiza cambios en la base de datos de una manera segura. La herramienta en cuestión es: Database Search And Replace Script in PHP

Yo he podido probar la segunda opción y te diría que es la mejor porque dudo que en todos los casos valga únicamente con reemplazar en la tabla wp_posts.

Herramientas para optimización masiva de imágenes

Existen muchos programas que te permiten optimizar imágenes para la web, entre todos ellos puede estar cualquier editor gráfico, desde el clásico photoshop hasta gimp, paint.net…
El problema de todos estos excelentes programas es que si tienes una cantidad inmensa de imágenes o fotografías que debes colgar en la web (por ejemplo para un catálogo de productos) deberías ir una a una modificándolas. Esto además de ser un trabajo pesado requiere un gran tiempo que muchas veces no tenemos.
De momento he encontrado dos herramientas muy útiles que nos permiten optimizar muchas imágenes con unos pocos clicks.

  • Image Resizer for Windows. Con este programa podemos cambiar de manera personalizada el tamaño de las imágenes disminuyendo su peso. Una vez instalado tan solo debemos hacer botón derecho en la carpeta que contiene las imágenes y pinchar en resize images. De esta manera se creará una nueva carpeta conservando la original donde se ubicarán las nuevas fotografías redimensionadas.
  • Image Optimizer. Esta aplicación funciona de una manera similar a la anterior permitiéndote reducir considerablemente el peso de cualquier imágen o grupo de imagenes contenidas en un directorio. Problema: en la versión de prueba se añade una pequeña etiqueta con publicidad sobre la herramienta.

Iré ampliando esta lista progresivamente si descubro alguno más interesante.

Instalación y configuración entorno de desarrollo Android

Lo primero que debemos hacer antes de realizar nuestra primera aplicación Android es preparar el entorno de desarrollo. Una gran ventaja del desarrollo con Android es que se trabaja con tecnologías libres.

Yo he escogido la integración de la SDK de Google con el IDE de Eclipse ya que es la más ampliamente utilizada hoy en día. Existen otros IDEs como NetBeans que también pueden utilizarse ya que está así mismo integrado con la SDK de Google.

Antes de empezar es necesario disponer del siguiente software en su estación de trabajo:

  • Java Runtime Environment (JRE) y Java Development Kit de Oracle (JDK), tanto el JRE como el JDK son necesarios para arrancar el IDE Eclipse. Se pueden obtener en http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Eclipse: puede descargarse en su página www.eclipse.org. Existen muchas versiones de eclipse, ya que cada una está orientada para los lenguajes y entornos de programación que deseemos. En nuestro caso elegiremos Eclipse IDE for JAVA Developers. Nota: Eclipse no se instala simplemente se descomprime en el directorio que nosotros deseemos.

En este momento podremos probar a arrancar Eclipse, si no existe ningún problema es que hemos instalado correctamente los puntos anteriores.

Es en este punto donde necesitamos descargar el software de android disponible en la página: http://developer.android.com/sdk. Descomprimimos la última versión disponible en cualquier directorio de nuestro equipo.

Ahora deberemos ejecutar SDK Manager e instalar las APIs de Android que necesitemos para nuestros desarrollos. Particularmente yo he instalado todas las APIs superiores a 10 ya que conforman la mayor cuota del mercado. Aquí hay que tener paciencia ya que la instalación se hace online y depende de la velocidad de conexión a internet que disfrutemos.

El último paso será integrar en Eclipse un plugin que permite utilizar el SDK de Android. Para ello arrancaremos Eclipse y en el menú Help > Install New Software. Sobre la ventana de diálogo pulsaremos el botón Add e introducimos las siguiente URL: https://dl-ssl.google.com/android/eclipse/.

Cuando se carguen la lista de opciones a instalar seleccionamos el paquete Developer Tools al completo y pulsamos el botón siguiente para iniciar la descarga.

Una vez instalado hay que indicar a Eclipse donde se encuentran las API del SDK Manager. Para ello abrimos la pantalla de configuración de Android desde el menú Window > Preferences > Android de Eclipse. Ahí seleccionamos la carpeta de instalación del SDK de Android.

Mostrar números de línea en visual studio

Este post indica la manera de mostrar números de línea en visual studio.

Por defecto en una instalación nueva de visual studio no se visualizan los números de línea en el editor.

sin numeros de linea visual studio

Para mostrarlos solo deberemos ir a la opción de menú «herramientas» (tools) situado en el menú superior y seleccionar «opciones» (options).

opciones

Se abrirá una ventana con todas las opciones. En el árbol de la izquierda elegiremos «Editor de texto» (Text Editor) y del desplegable seleccionaremos «Todos los lenguajes» (All Languages).

Una vez dentro en la sección display activaremos el check con la propiedad «Números de línea».

numeros de linea visual studio 2

Ahora tendremos visibles los números de línea para todos los archivos que abramos con visual studio.

numeros de linea visual studio 3