viernes, 19 de abril de 2013

WP - Desinstalar instancia de SQL Server u otros componentes

Para ingresar ventana de desinstalación de componentes de SQL Server debe ejecutarse el siguiente comando:

ARPWrapper.exe /Remove

Esta aplicación se encuentra ubicada en la carpeta Setup Bootstrap, ubicada en la carpeta de instalación de la instancia de SQL Server. Por ejemplo, en el caso de tratarse de SQL Server 2005, esta carpeta se encuentra por defecto en la siguiente ruta:

C:\Archivos de programa\Microsoft SQL Server\90\Setup Bootstrap

Me disculpo porque de momento no tengo instalado SQL Server correctamente en mi computadora, por lo que no puedo mostrarles con más detalle los pasos para desinstalar una instancia de SQL Server, u otros componentes.

Publicado originalmente el 09/03/2012, en http://itsouvenirs.wordpress.com/2012/03/09/desinstalar-instancia-de-sql-server-u-otros-componentes/.

WP - Tutorial de Symfony 2 - 1. ¿Qué es Symfony?

Creo que la mejor forma de iniciar el tutorial es a partir de la pregunta: ¿qué es Symfony? Bueno, yendo al grano, Symfony es un Famework de desarrollo web para PHP. Creo que esta definición no es suficiente ¿verdad?. Entonces, adéntremonos un poco más en el concepto, historia y personalidad (por así decirlo) de Symfony, partiendo desde el concepto básico de framework.

1. Framework de desarrollo

La primera pregunta que viene a nuestra mente es: ¿qué es un framework?. Un framework (Marco de trabajo, en español), dentro del ámbito de la computación, es una metodología, es decir, un conjunto de pautas a seguir para el desarrollo de una aplicación. Estas pautas también se extienden a la estructura y funcionamiento interno de una aplicación, ya que incluyen patrones que deteminan su arquitectura. Sin embargo, un framework no se queda solamente en un concepto abstracto, sino que también provee un conjunto de componentes de software prefabricados de fácil integración, que permiten poner en práctica dichos patrones, y permiten dar forma a la aplicación de una manera más sencilla.

2. Framework de desarrollo web PHP

El concepto de framework es extenso y aplicable a múltiples áreas de la computación, por lo que hay que delimitarlo a nuestro caso en particular. Symfony es un framework orientado específicamente al desarrollo web, es decir, a la construcción de sitios web robustos con contenido generado dinámicamente. Adicionalmente, Symfony es un framework creado especialmente para ser utilizado con el lenguaje de programación PHP, que es un lenguaje de programación interpretado del lado del servidor, y permite generar el contenido que se muestra en las páginas web de forma dinámica. Y no solamente eso, sino que Symfony en sí mismo ha sido desarrollado propiamente en PHP.

3.Un poco de historia…

Symfony fue creado originalmente por Fabien Potencier, fundador y dueño de la compañía francesa de software Sensio Labs, con el objetivo de facilitar y hacer más rápido el desarrollo de sitios web dentro de su compañía, a través de la automatización de tareas comunes. Fabien se basó en los framework Mojavi y Ruby On Rails, para la creación del framework.

Logo de Symfony usado en las versiones 1.x
La creación de Symfony inició en el año 2003. La primera versión del framework fue lanzada en el año 2005, y se utilizó para la creación de un sitio de comercio electronico. Luego de ser utilizado en otros proyectos más, Symfony fue lanzado bajo la licencia MIT como software libre, con el objetivo de donarlo a la comunidad creciente de programadores web, y además aprovechar su retroalimentación para la corrección de defectos y el enriquecimiento del proyecto.

La primera edición de Symfony continuó siendo mejorada hasta llegar a la versión 1.4. Cabe mencionar que paara esta primera versión, miembros de la empresa Sensio Labs crearon  una documentación bastante práctuca y detallada, en la que se incluyen las muy conocidas guías prácticas Askeet y Jobeet. Posteriormente se inició la creación de una segunda versión del framework, que fue lanzada en el año 2011, y cuya última versión estable hasta la fecha es la que utilizaremos en el presente tutorial.

¿Por qué lo llamaron “Symfony” y no “CualquierNombreFramework”? Porque Fabien quería una nombre corto que tuviera una letra ‘s’ (de Sensio) y una letra ‘f’ (de framework), que fuera fácil de recordar y que no estuviera asociado a otra herramienta de desarrollo. Además, no le gustan las mayúsculas. “Symfony” era muy parecido a lo que estaba buscando, aunque no es una palabra correcta en el idioma inglés (la palabra correcta es “symphony”), y además estaba libre como nombre de proyecto. La otra alternativa era “baguette”. (Symfony 1.2, la guía definitiva)

Actualmente Symfony es utilizado, en sus distintas versiones, en una amplia gama de sitios web, como Yahoo! Bookmarks, Delicious, Dailymotion, Opensky, eRepublik, entre otros.

4. Symfony como filosofía y comunidad

Creo que ya se aclaró un poco más la definición de Symfony como framework, y además se conoció brevemente su historia. Pero en realidad Symfony es algo más que un framework, es también una filosofía y una comunidad. Es una filosofía porque es provisto bajo una licencia de código abierto, con el ideal de que otros desarrolladores lo personalicen y enriquezcan con su propia imaginación. Por otra parte, es una comunidad, ya que tras Symfony, existe un amplio conjunto de desarrolladores que hacen posible su existencia, no solo dentro de Sensio Labs, sino alrededor del mundo.

5. Referencias

6. Enlaces de interés

Publicado originalmente el 25/02/2012, en http://itsouvenirs.wordpress.com/2012/02/25/tutorial-de-symfony-2-1-que-es-symfony/.

WP - Tutorial de Symfony 2

Symfony, un framework de PHP creado por Fabien Potencier (Francia) y desarrollado por una amplia comunidad de programadores alrededor del mundo.

Finalmente me estoy tratando de organizar y hacer tiempo para aprender a usar Symfony 2, el cual es un Framework para PHP que me ha llamado mucho la atención. Descubrí este Framework hace un par de años, cuando tenía intenciones de aprender a programar en PHP, y tuve el gusto de usar la versión 1.4 de este Framework en mi proyecto de graduación el año pasado, quedando fascinado de todas las facilidades que este Framework brinda.

Mientras vaya aprendiendo, iré elaborando un pequeño tutorial paso a paso que incluirá desde la preparación del ambiente de desarrollo en Linux (particularmente Fedora 16), hasta la elaboración de una pequeña aplicación web. Espero ir compartiendo periódicamente mis avances en este blog.

Publicado originalmente el 19/02/2012, en http://itsouvenirs.wordpress.com/2012/02/19/tutorial-de-symfony-2/.

jueves, 4 de abril de 2013

WP - Configuraciones iniciales de Ubuntu 9.0.4 en VirtualBox 3.0.4

A continuación describiré como instalar las “Guest additions” de VirtualBox en el sistema operativo huésped (guest) Ubuntu 9.0.4, y luego compartir una carpeta con el sistema operativo anfitrión (host) Windows XP. Estos pasos posiblemente apliquen a versiones superiores de VirtualBox y de los sistemas operativos mencionados.

1. Instalar las “Guest Additions”

Las “Aplicaciones del huésped” son herramientas que permiten una interacción fluida entre el sistema operativo anfitrión (host) y el huésped virtualizado (guest), así como el uso apropiado del hardware que posee nuestra máquina. Entre las ventajas que permiten estas aplicaciones, figura la integración del mouse entre el huésped y el anfitrión, así como el ajuste de resolución automático del huésped, y otras opciones de vídeo.

A continuación se listan los pasos para la instalación de las aplicaciones del huésped (en nuestro caso, Ubuntu 9.0.4), virtualizado en VirtualBox 3.0.4:

a) Iniciar el sistema operativo Ubuntu en VirtualBox, y iniciar sesión.

b) Una vez iniciada la sesión de usuario en Ubuntu, en el menú de VirtualBox, elegir Dispositivos > Instalar Guest Additions (Aplicaciones del huésped). Esto montará una imagen de disco CD-ROM en Ubuntu.

c) Abrir una ventana de terminal, y moverse a la carpeta media, que es la carpeta en donde aparecen los dispositivos extraíbles.

cd ../../media

d) Abrir el CD, y ver el contenido de éste, para elegir la versión de aplicaciones de huésped que mejor se ajuste a nuestra computadora.

cd cdrom

El contenido del CD es el siguiente:

$ ls
32Bit        VBoxLinuxAdditions-amd64.run    VBoxWindowsAdditions.exe
64Bit        VBoxLinuxAdditions-x86.run      VBoxWindowsAdditions-x86.exe
AUTORUN.INF  VBoxSolarisAdditions.pkg
autorun.sh   VBoxWindowsAdditions-amd64.exe

Para nuestro caso, ya que la versión de Ubuntu es para sistemas operativos de 32 bits, se instalará el paquete de herramientas VBoxLinuxAdditions-x86.run, mediante el siguiente comando:

sudo sh ./VBoxLinuxAdditions-x86.run

Para continuar la instalación, se solicitará ingresar la contraseña de administrador.

e) Una vez finalizada la instalación, se debe reiniciar el sistema operativo huésped.

2. Crear un directorio compartido

Es muy posible que querramos acceder a archivos o carpetas de nuestro sistema operativo anfitrión. Por ello, el uso de carpetas compartidas resulta útil, pues permite tener un fácil acceso a tales contenidos, sin las complicaciones de tener copias extra de éstos archivos en nuestro disco duro virtual, consumiendo espacio innecesariamente.

a) Para poder utilizar los directorios compartidos, elegimos en el menú de VirtualBox, la opción Dispositivos > Directorios compartidos. Luego, hacemos clic en el botón “Add new shared folder” (dibujo de una carpeta con un signo +), y en la ventana “Agregar compartición”, seleccionamos la carpeta que queremos compartir de nuestro sistema operativo anfitrión (en Folder Path), y le asignamos un nombre (en Folder Name). De preferencia debe ser un nombre fácil de recordar, en minúsculas, y sin caracteres extraños. Finalmente, elegimos la opción de “Hacer permanente”, para que este directorio siempre esté disponible.

b) Luego, abrimos una ventana de terminal en el sistema operativo huésped, y creamos una nueva carpeta, con permisos de administrador, en cualquier directorio. Si la carpeta compartida será pública, recomiendo colocarla en el directorio /media, para que esté disponible para todos los usuarios de Ubuntu. Para crear la carpeta se ejecuta el siguiente comando:

sudo mkdir nombre_carpeta_compartida

Y finalmente, para montar la carpeta compartida:

sudo mount -t vboxsf folder_name nombre_carpeta_compartida

Cabe notar que folder_name corresponde al nombre asignado a la carpeta en el paso a), en la sección de Folder Name. Luego de ello, ya tenemos disponible nuestro directorio compartido, en la carpeta elegida de nuestro sistema operativo huésped.

Publicado originalmente el 19/02/2012, en http://itsouvenirs.wordpress.com/2012/02/19/configuraciones-iniciales-de-ubuntu-9-0-4-en-virtualbox-3-0-4/.

lunes, 1 de abril de 2013

WP - Reducir el tamaño de un disco duro virtual VDI de VirtualBox

1. Desfragmentar el disco duro dentro del sistema operativo guest en la máquina virtual.
2. Colocar el programa nullfile-1.02.exe (http://www.feyrer.de/g4u/nullfile-1.02.exe) en la raíz del disco duro dentro del sistema operativo guest, y ejecutarlo. Este programa coloca caracteres nulos en el espacio libre del disco duro.
3. Apagar el sistema operativo guest. Luego ejecutar la operación compact de la herramienta VBoxManage, en la línea de comandos desde la carpeta de instalación de Virtual Box, sobre el disco duro virtual, así:

vboxmanage modifyvdi “C:\Users\Guille\.VirtualBox\HardDisks\discoduro.vdi” compact

Actualización:
El comando modifyhd ya está obsoleto, y ha sido sustituido por el comando modifyhd, por lo que el comando completo del ejemplo anterior sería:

vboxmanage modifyhd “C:\Users\Guille\.VirtualBox\HardDisks\discoduro.vdi” compact

Publicado originalmente el 19/02/2012, en http://itsouvenirs.wordpress.com/2012/02/19/reducir-el-tamano-de-un-disco-duro-virtual-vdi-de-virtualbox/.

WP - Enviar mensajes a sesiones de terminal server desde línea de comandos

Anoche se presentó un problema en mi trabajo. Debido al incremento de trabajo por parte de los usuarios conectados vía Terminal Server a uno de los servidores de la empresa, este se quedó sin recursos suficientes para poder iniciar otra sesión más. Se decidió reiniciar el servidor, pero era necesario informar a los usuarios. ¿Cómo enviar un mensaje directo vía Terminal Server, sin iniciar sesión en el servidor ni entrar al administrador de TS? Una opción sencilla y directa es hacer uso del comando msg desde la línea de comandos en una computadora conectada a dicho servidor:

msg { nombre_usuario | id_sesion_ts | * } [/SERVER:servidor] “mensaje”

El primer parámetro puede ser el nombre del usuario, el ID de la sesión, o asterisco, que indica que el mensaje se enviará a todas las sesiones activas en la computadora. El segundo parámetro, que es el de servidor es opcional, y puede colocarse el nombre del equipo o bien la IP. Si no se especifica, el mensaje se enviará a todas las sesiones activas en la computadora local. El parámetro final es el mensaje, que debe especificarse entre comillas dobles en caso de poseer caracteres de espacio en blanco.

Por ejemplo:

msg juanperez “Hola mundo”
msg DOMINIO\juanperez /SERVER:mi-servidor “Hola mundo”

Cabe mencionar que no he especificado todas las opciones del comando msg. Para consultar todas las opciones que ofrece este comando, basta con digitar msg en la línea de comandos de Windows, y presionar Enter. Si no me equivoco, este es el comando que se recomienda usar en vez de NET SEND a partir de Windows XP y Windows Server 2003 (corríjanme si me equivoco, jejeje).

Publicado originalmente el 19/02/2012, en http://itsouvenirs.wordpress.com/2012/02/19/enviar-mensajes-a-sesiones-de-terminal-server-desde-linea-de-comandos/.

WP - Social Coding

Al ver este título, alguien por allí me dirá que soy un transculturizado. Creo que todos los de informática somos así, y yo me considero de los más conservadores. Bueno, antes de continuar, les comento que iré desarrollando este tema poco a poco, posiblemente en esta misma entrada (o post, como le llamarían los transculturizados, jejeje). Comenzando con el tema, considero apropiado partir de una definición:

Social Coding (Programación Social) se refiere al desarrollo de software por parte de una “comunidad” de personas. Aunque usualmente todo proyecto de software se lleva a cabo por un conjunto de desarrolladors, este término ha sido acuñado a partir del auge de las redes sociales, por lo que ese conjunto se extiende a una comunidad virtual, variada y distribuida de personas.

Otra de las características que diferencia la programación social es que rompe con las barreras de la colaboración, ya que abre la posibilidad a que sea la comunidad quien se autodirija en el desarrollo del proyecto, pues la idea desarrollada por alguien puede ser materializada, mejorada y revisada por toda la comunidad. Ello permite crear productos de software robustos en corto tiempo.

Publicado originalmente el 13/02/2012, en http://itsouvenirs.wordpress.com/2012/02/13/social-coding/.

WP - ¡Renovación del blog!

Después de casi  3 años de inactividad (y luego de un año de haberme convertido en ermitaño aislado de la web, jejeje), he decidido revivir este blog. Más que revivirlo, extenderlo para que pase de un blog dedicado a una de mis materias preferidas en la universidad, que fue Programación Funcional, a un compendio de aquellas cosas que he aprendido y siga aprendiendo a lo largo de mi carrera en el área de informática, que actualmente se orienta mayormente al desarrollo de software.

Básicamente este es el inicio de uno de mis sueños, que es compartir aquellas cosas de mi carrera que me emocionan, y también aquellas cosas que me han sido útiles, principalmente con las nuevas generaciones (no es que esté viejo, aún estoy empezando a explorar estos vastos territorios…). Debo mencionar que esto es algo que he admirado primeramente de mis profesores (desde primaria hasta la universidad), y de todas aquellas personas que se toman un momento de su ajetreado día en compartir su conocimiento a través de la web. Si no fuera por ellos, mi trabajo diario sería inmensurablemente más largo de lo que ya es.

Espero poco a poco ir llenando este blog con información que les sea de mucha utilidad, les ayude en sus estudios y trabajos, y se convierta poco a poco en una de esas bibliotecas en línea de recursos de informática a la que tranquilamente puedan acudir.

Muchas gracias a mis apreciables educadores, y también a todos ustedes que se toman un momento para visitar este blog. Que el Señor Jesús les bendiga mucho y les regale muchos éxitos en su vida.

Atentamente.

Guillermo.

Publicado originalmente el 13/02/2012, en http://itsouvenirs.wordpress.com/2012/02/13/renovacion-del-blog/.

WP - Programación funcional 01-2009 - Práctica No. 3

Tristemente, y como muchos de ustedes, estoy en parciales 😟 Así q no me queda mucho tiempo. De momento sólo les dejo este enlace:

http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2007-2008/tema-07.html

La verdad es que contempla totalmente lo que se pretendía abarcar con la tercera práctica, más un par de cosas extras. El objetivo de la práctica era aprender a construir funciones que permitieran utilizar una cantidad de parámetros variable, por lo que, para efectos del curso, no es necesario leer lo de la introducción, quasiquotation y unquote-splicing, aunque son cosas interesantes que podrían serles útiles en algún futuro (cercano, lejano, o infinitamente lejano, o sea, nunca). También hay algunos ejemplos un poco más elevados, como hacer su propio let o su propio cond.

Hasta dentro de una semana tendré tiempo de continuar con el blog, y de revisar las tareas, asi que les pido las disculpas del caso. Hasta entonces, les debo las explicaciones de estas últimas prácticas.

Publicado originalmente el 25/04/2009, en http://itsouvenirs.wordpress.com/2009/04/25/practica-no-3/.
Con la tecnología de Blogger.