Mostrando entradas con la etiqueta Herramientas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Herramientas. Mostrar todas las entradas

2015-05-22

Cambiar el tamaño de los discos virtuales *.vdi de una maquina VirtualBox en minutos y con 2 click, muy simple.

Hola gente hoy le dejo una herramienta que no ayuda a redimencionar de manera simple con dos click un disco virtual con extension *.vdi de la maquina VirtualBox y a redimencionar las partición desde el mismo programa.

El programa se llama CloneVDI Versión 2.05 y solo pesa unos 260Kb.


  1. Los paso a seguir son ejecutar el programa
  2. Buscar el disco virtual *.vdi siempre con las maquina apagada por completo, nunca con el estado de se maquina congelada, o en Pausa. 
  3. Le poner un nombre al archivo de destino, le cambias el tamaño "Increase virtual drive size to" y le tildas la opción reampliar partición "Increase partition size"
  4. Listo le da click en procesar y esperasa.
  5. Después va a tu maquina virtual y le cambiar el disco por el nuevo que se genero y si todo esta ok eliminar el disco viejo.
Print con un ejemplo:
Donde creo un disco de 25Gb a 35Gb y expando la partición



NOTA: Es no es valido para maquinas con "Instancias" o "SnapShot" de la maquina virtual porque lo que haces en es momento es crear varios discos. Para esos caso lo mejor es hacer un clon de la maquina virtual, eliminar todas las instancias para quedarte solo con la que te interesa de esa manera VirtualBox haces un Merge de todos los "SnapShot" y te genera un solo disco virtual (*.vdi) de nuevo. Cuando ya tenes solo ese disco, podes hacer los pasos anteriores con CloneVDI


2013-09-04

Control de versiones con Git Paso a Paso

¿Qué es GIT?

Git nació de la insatisfacción de Linus Torvalds (creador del kernel de Linux) con los programas de control de versiones. En Linux Foundation, utilizaban BitKeeper, pero en cuanto éste modificó su acuerdo de licencia; tuvieron que optar por una alternativa. La comunidad Linux creó dos nuevos proyectos: Git y Mercurial. Ambos tienen sus orígenes en la emergencia y lideran el ranking de software de control de versiones distribuido. Git se hizo más popular y actualmente se utiliza en proyectos como: el kernel de Linux, jQuery, Ruby on Rails, Symfony, CakePHP, Debian, Fedora, entre otros.

Centralizado o Distribuido

Git, al igual que Mercurial, es un software de control de versiones distribuido (DVCS). Sistemas comoSubversion y CVS, en contraste, funcionan como sistemas centralizados (CVCS).
En los sistemas centralizados, sólo existe un repositorio "maestro" (master), a donde cada desarrollador envía sus cambios. Cada acción debe ser sincronizada con el repositorio central, y como en general el sistema reside en un servidor central, cada acción debe pasar a través de la red; por lo que si la red se cae, el desarrollador no puede trabajar.
En los sistemas distribuidos, cada desarrollador tiene su propio repositorio. En la mayoría de las veces, estos repositorios se comunican con un repositorio central el cual permite compartir los cambios con otros desarrolladores; sin embargo, esto no es un requerimiento.

Ventajas de Git

Una de las principales ventajas de Git es su naturaleza distribuida, lo cual permite que sea igual el tener muchos repositorios remotos o sólo uno para compartir código. Los DVCS permiten trabajar desconectado sin ninguna restricción.
Un factor importante de Git es la velocidad. Git destacó sobre otros DVCS como Mercurial, por la rapidez con la que procesa las operaciones. Esto se debe a que Git está escrito en C y fue pensado para trabajar con el kernel de Linux, por lo que el tiempo de respuesta era sumamente importante. Otro punto interesante, es que el repositorio local de Git sirve como backup, porque contiene todo el historial del proyecto y considerando que (casi) cada acción en Git añade datos, perder datos del historial es algo difícil.
Finalmente se encuentra el workflow que utiliza Git, que analizaremos más adelante.

El repositorio local

En SVN, a cada carpeta que se encuentre asignada al controlador de versiones, se le agrega una carpeta oculta que guarda toda la metadata relevante de dicho directorio. Git por el contrario sólo tiene una de estas carpetas ocultas. Esto significa que se pueden copiar, mover, borrar archivos y carpetas, sin dolores de cabeza. Esta carpeta (.git) se genera en la raíz del proyecto y genera el repositorio local. Los archivos en los que diariamente se trabaja, conforman el "directorio de trabajo" (working directory).
Además del repositorio y el directorio de trabajo, existe el "área de puesta en escena" (staging area), que permite definir qué cambios serán aplicados en el próximo commit. Commit es la acción de consignar un grupo de cambios.
Vamos a visualizar todo con un ejemplo. Hicimos modificaciones a 8 archivos y nos damos cuenta que deberíamos separar estos cambios en dos commits (cada commit debe incluir sólo cambios relacionados). Utilizando el staging area, se puede definir exactamente, sobre qué cambios debe hacerse commit, y cuales deben esperar al siguiente.
Técnicamente, el staging area, no es más que un archivo (llamado index) que se encuentra en el repositorio .git local.

Estados de los archivos

Existen varios estados en los que puede encontrarse un archivo en el working directory. La distinción básica es "tracked" (con seguimiento) y "untracked" (sin seguimiento). Un archivo está en estado tracked, cuando se encuentra dentro del sistema de control de versiones, o sea, Git observa todos los cambios a dicho archivo. En el caso que el archivo no haya sido agregado a Git, el mismo es tratado como untracked.
Los archivos que están en estado tracked, pueden encontrarse a su vez en tres estados:
  • unmodified (sin modificar) o committed (con commit): el archivo se encuentra en su último estado, por lo cual no tiene modificaciones locales.
  • modified: el archivo ha sido modificado desde la última vez que se incluyó en un commit.
  • staged: el archivo fue modificado y agregado al staging area, lo que significa que será incluido en el próximo commit.

Hashes


Git no entiende de números de revisión. En los sistemas CVCS, cada commit tiene asociado un número de revisión consecutivo. En los DVCS como los commits son creados localmente, el sistema no puede asignar números consecutivos. Por este motivo Git utiliza hashes SHA-1.
Un hash es un algoritmo que mediante una entrada (texto, contraseña, archivo, etc.) genera una salida alfanumérica de longitud normalmente fija, que representa un resumen de toda la información que se le ha dado.
SHA-1 es una función de hash creada por los Estados Unidos, que significa Secure Hash Algorithm (Algoritmo de Hash Seguro). Existen varias implementaciones, siendo la 1 la más utilizada.
Entonces Git utiliza estos hashes como si fueran los números de revisión, ya que estos son compatibles con el modelo DVCS.

Git desde la linea de comando

Existen varios programas de terceros como Netbeans, Eclipse, etc; que le dan una interfaz gráfica a Git, pero para comprender en profundidad a Git, lo mejor es observar el workflow de trabajo desde la consola. Si instalás uno de esos programas, varios de los pasos que siguen no tendrás que hacerlos.
Si todavía no lo hiciste, es necesario que descargues e instales la última versión de Git. Esto lo podés hacer desde la página oficial: http://git-scm.com. Una vez instalado, hay que configurarlo. Para eso, hay que abrir el programa Git Bash y veremos lo siguiente.
Git Bash
Ahora es momento de configurar tu usuario. Primero hay que indicarle tu nombre a Git, para que pueda utilizarlo en los commits. Para eso es necesario ejecutar la siguiente línea:
git config --global user.name "Tu nombre"
Luego tenés que indicar tu email.
git config --global user.email "tu@email.com"
Con eso, ya está todo listo para empezar a utilizar Git. En caso que necesites ayuda, siempre podés ejecutar el siguiente comando:
git help git

Forma de trabajo

Repositorios

Un repositorio es el requerimiento básico para trabajar con Git. Vamos a suponer que no tenemos ningún repositorio, por lo cual necesitamos crear uno. Ejecutando el siguiente comando, Git nos creará una carpeta con el nombre del repositorio y dentro una carpeta llamada ".git" la cual contiene toda la información del repositorio.
git init repositorioDePrueba
Para acceder a nuestro repositorio desde Bash, una vez creado el mismo, utilizaremos el siguiente comando:
cd repositorioDePrueba
En el caso que necesites obtener un repositorio remoto, en vez de crear uno local, deberías utilizar el comando clone, en lugar de init.

Commit

Luego de un tiempo trabajando, tendremos algunos archivos que querremos guardar en nuestro repositorio como commits. Para empezar vamos a ejecutar el comando git status para ver qué cambios hay en nuestro directorio de trabajo. En este caso, Git nos informará:
  • que estamos en la rama master
  • que es el commit inicial
  • que hay archivos sin seguimiento
  • que no hay nada para hacer commit
Recordemos que necesitamos hacer que los archivos tengan seguimiento y agregarlos al staging area para poder hacer commit. Para indicarle a Git qué archivos queremos que formen parte del próximo commit, tenemos que utilizar el comando add (supongamos que estuvimos trabajando en un archivo llamado prueba.php).
git add prueba.php
Si volvemos a ejecutar el comando status, veremos que ahora hay cambios para hacer commit.
Para guardar el commit dentro de nuestro repositorio local, debemos utilizar el comando commit.
git commit -m "Mensaje para indicar qué incluye este commit"
El comentario que ponemos al final, nos permite tener una historia de los commits para poder saber qué fue lo que motivó el commit. Para ver la historia de los commits, hay que ejecutar el comandolog; el cual se puede modificar para mostrar lo que necesitemos.
git log // muestra todos los datos
git log --oneline // muestra sólo los mensajes de los commits 
git log -p //muestra los cambios hechos sobre los archivos

Ramificaciones (Branch y Merge)

Gracias a la ramificación, podemos (para explicarlo de forma simple) hacer una especie de copia total del repositorio. De esta forma podremos trabajar en cada rama en una funcionalidad diferente sin que una afecte a la otra. Una vez que estemos contentos con los cambios, podemos fusionar ambas ramas para que ambas tengan los cambios y seguir como al principio.
Ramificación en Git
Para crear una rama, se utiliza el comando branch:
git branch funcionalidad1
Si ejecutamos el comando branch sin indicar un nombre para la nueva rama, Git nos muestra una lista de todas las ramas activas. Hay que tener en cuenta que la rama principal se denomina "master" y que Git nos indica con un asterisco cuál es la rama en la que estamos posicionados (a la cual se la denomina HEAD). Podemos ver que a pesar de haber creado una rama, no nos movimos a ella. Para saltar de rama en rama utilizamos el comando checkout.
git checkout funcionalidad1
Todos los commits que realicemos estando en la rama "funcionalidad1" no serán vistos por la rama "master".
Una vez que hayamos terminado con los cambios en nuestra funcionalidad nueva, y queramos enviar los mismos a la rama master, tendremos que usar el comando merge (estando posicionados en la rama master).
git checkout master
git merge funcionalidad1
Finalmente, como ya fue implementada la funcionalidad, la rama "funcionalidad1" ya no nos sirve más; por lo cual la eliminamos.
git branch -d funcionalidad1

Trabajando con repositorios remotos

Los repositorios remotos nos permiten tener nuestro código disponible para nuestros compañeros de trabajo, así como también integrar el código de ellos a nuestro repositorio local. Para añadir un repositorio remoto debemos ejecutar el siguiente comando:
git remote add reporemoto https://direccionremota.com
Una vez que tenemos configurado un repositorio remoto podemos obtener todos los datos del mismo utilizando dos comandos: fetch o pull. Fetch obtiene todos los datos sin hacer cambios sobre las ramas locales (por lo cual después habrá que hacer un merge), mientras que Pull obtiene los datos y hace merge con las ramas locales.
git fetch reporemoto
o
git pull reporemoto master
Para enviar nuestros datos al repositorio remoto utilizaremos el comando push:
git push reporemoto master
Para ilustrar mejor el flujo de trabajo con los repositorios remotos, te dejo esta imagen.
Trabajar con repositorios remotos en Git

Información recopilada de nebaris.com

2011-10-29

Alternativa Open Source para documentar y compartir pantallas "PrintScreen"




Obtener imágenes de lo que estamos viendo en el ordenador es una función básica que nos ha acompañado durante años. La magia de la tecla “Print Screen” es muy poderosa, pero no tan flexible como nos gustaría que fuera. Existen utilidades que agregan otras funciones además de la simple captura, y Snagit es ciertamente una de las más populares, sin mencionar comercial y de código propietario. En esta nueva entrega, presentamos cuatro alternativas open source a Snagit para capturar imágenes al vuelo de nuestra pantalla.


Capturar y editar imágenes es algo que hacemos con una frecuencia que puede variar mucho. En lo personal, estoy en el rango de “varias veces por día”. Aunque para esto utilizo una solución freeware, he escuchado mencionar a Snagit en múltiples ocasiones, pero más allá de sus interesantes funciones (en adición a la captura, claro), el precio de su licencia es en verdad excesivo (34€). Si la idea es capturar imágenes sin incendiar el bolsillo, y necesitas más de lo que el sistema operativo entrega por defecto, existen algunasalternativas open source para tener en cuenta:
  • ZScreen no solamente permite capturar imágenes, sino que ofrece varias formas de subirlas a la Web, utilizando diferentes servicios de “hosting” al estilo de ImageShack, Minus.com, Paste2.org, goo.gl, muy útil para unos de los mejor.
  • PicPick es otro estupenda alternativa también te permite subir imagens a internte directamente para compartí los print de pantalla, es compatible con Windows 7 y es muy competo y cuanta con una versión portable en el USB
  • Greenshot se enfoca principalemente en la productividad, y entre sus funciones encontrarás opciones para enviar rápidamente las imágenes por e-mail, o agregar anotaciones.
  • Lightscreen no ha sido actualizado en más de un año, pero su funcionamiento es muy bueno. Se sale del camino del usuario aguardando en la bandeja de sistema, y puedes utilizar varios atajos de teclado para alterar las propiedades de la captura.
  • VVCap se lleva muy bien con la mensajería instantánea y las redes sociales. Apenas realices una captura, la imagen será subida a la Web y obtendrás una dirección URL para compartirla con quien lo desees.

2010-07-25

Piwik – Sistema de estadísticas de sitios web open source ahora con nueva interfaz

Piwik - sistema de estadisticas de sitios web open source ahora con nueva interfaz

Piwik es una aplicación web open source disponible para descargar e instalar en un servidor web, que permite registrar el tráfico de un sitio web. Recientemente han liberado una nueva versión con interesantes mejoras, la más importa de ellas, es el nuevo aspecto de la interfaz que luce más estilizada y configurable.

Características principales de Piwik:

  • Reportes en tiempo real.
  • Ofrece a los desarrolladores/webmasters un sistema de plugins y API.
  • Se trata de un desarrollo open source.

Piwik es una muy buena alternativa (no la única) a Google Analytics. Para montarlo en un servidor web sólo requiere de MySQL y PHP.

Mi experiencia personal con Piwik es muy buena; llevo usándolo en algunos proyectos algo más de una año. Todas las personas que consultan sus reportes están muy contentas, ya que les agrada que los datos sean en tiempo real, la simpleza de su interfaz y la forma sencilla de mostrar los datos.

Piwik

Sitio: piwik.org

Fuente: pixelcoblog.com

2009-11-23

Opciones en la web para hacer llamadas internacionales gratis

En la categoría de VoIP siempre he intentando comentar las últimas aplicaciones web que aparecen relacionadas con la transmisión de voz por Internet. Aquí os dejo una pequeña lista de programas que podéis usar para hacer llamadas a otros países, muchas veces de forma gratuita.

1 – Skype: Aunque no necesite presentación es importante empezar la lista con el rey. Skype nos permite realizar llamadas de forma gratuita entre PCs y con tarifas excelentes entre PC y teléfonos de muchos países del mundo.

2 – Messenger y Gtalk: Los populares sistemas de chat tienen la opción de transmitir voz, pero no consiguen llamar a teléfonos, por lo que es necesario que el destino tenga conexión a Internet y esté conectado en el momento de la llamada.

3 – voipstunt.com y lowratevoip.com: Programas gratuitos con los que podemos llamar a teléfonos fijos en varios países de forma gratuita o llamar a tarifas increíblemente bajas a cualquier teléfono en el planeta. También nos permite establecer una llamada entre dos teléfonos de diferentes países, haciendo prescindible el uso de ordenador.
voip

4 – PeopleCall: El sistema que usé durante muchos años antes de ser un fan de Skype. Hoy en día permite realizar llamadas internacionales desde el PC o usando un 902 para las que se generen en España. También ofrece la posibilidad de montar un CallShop con su programa basado en VoIP.

5 – Jajah: Una de las opciones que más está creciendo en los últimos años. Nos permite hacer llamadas de teléfono a teléfono estableciendo la comunicación con un PC, de forma que sólo es necesaria la conexión a Internet para empezar la comunicación. En algunos casos la llamada puede salir gratis.

6 – EvaPhone: Permite realizar llamadas gratis desde PC a teléfonos de varios países del mundo, aunque la duración de la llamada es limitada.

7 – YoLLamogratis: Se trata de una aplicación en la que podréis llamar gratis desde cualquier teléfono del mundo a cualquier otro. Basta incluir el país origen y destino con sus números de teléfono, los aparatos empezarán a sonar y podréis comenzar la charla. Este servicio tiene un limite de 5 minutos por llamada, y un limite de 3 llamadas por usuario, solo a telefonos fijos.

8 – iCall: Sin límite de cantidad de llamadas de 5 minutos, todas gratuitas a USA y Canadá

Seguramente me dejo varias opciones interesantes, espero que me ayudéis a ampliar la lista en los comentarios.

2009-11-20

11 aplicaciones web de código abierto para gestión de proyectos

De esta forma os dejo una lista de 11 aplicaciones open source (10 de ellas destacadas en cyberciti) y muchas ya comentadas en la categoría de aplicaciones de código libre.

1 – Codendi

Codendi es una plataforma colaborativa creada por Xerox. Especialmente pensada para equipos de desarrollo de software, contiene control de versiones de código, gestión de errores y documentación, tests y control de todo el proceso desde que nace la idea hasta que se lanza el programa.

2 – Redmine

Redmine es un proyecto bastante flexible escrito en Ruby on Rails. Incluye calendario y herramienta para crear diagramas de Gantt, mostrando las metas de cada fase del proyecto.

3 – ProjectPier

Realizado en PHP para gestionar tareas, proyectos y equipos en un entorno bastante intuitivo. Facilita la comunicación entre los miembros del proyecto y está programado para facilitar la creación de nuevos módulos.

4 – Trac

Trac permite gestionar proyectos y relatar errores. Con control de revisiones y contenido colaborativo en forma de Wiki, también sirve como interficie web para sistemas de control de versiones como Subversion, Git, Mercurial, Bazaar y Darcs.

5 – Project HQ

Project HQ es muy parecido a los famosos Basecamp y activeCollab. Construido con Python, Pylons y SQLAlchemy es un proyecto con base de datos independiente, permitiendo gestionar diagramas de flujo para controlar las diferentes fases del proyecto

6 – Collabtive MUY BUENO PARA INSTALAR ESTA EN PHP

Collabtive comenzó en noviembre de 2007 como una alternativa open-source a Basecamp y ActiveCollab. La última versión fue lanzada hace menos de un mes.

7 – eGroupWare

eGroupWare está pensado para empresas de cualquier tamaño. Su principal función es permitir a los usuarios gestionar contactos, citas, proyectos y listas de tareas.

8 – KForge

KForge permite la gestión de diferentes versiones del código de las aplicaciones desarrolladas, de documentación y de gestión del conocimiento. Podéis ver una demostración de su funcionamiento en demo.kforgeproject.com.

9 – OpenGoo

Solución completa para mejorar la productividad, colaboración y comunicación entre equipos de trabajo. Permite la gestión de documentación, emails, tareas de proyectos y gestión del tiempo. Podéis subir y editar documentos online, facilitando el trabajo en grupo.

10 – ClockingIT MUY BUENO

CClockingIT es una herramienta de Gestión de Proyectos de uso gratuíto, que ayudará a tu equipo en centrar sus esfuerzos en las cosas importantes. Creado por Erlend y Ellen Simonsen, como forma de aprender nuevas tecnologías y relajarse con algo divertido para programar, a la vez que creaban algo útil.

11 – Mantis

Mi preferida. Disponible en varios idiomas y con una tremenda capacidad para configurarse sin necesidad de tener conocimientos de programación. Permite la gestión de tareas de proyectos, aunque inicialmente está pensado como bug tracking (gestión y documentación de errores).

Actualización:

Aquí os dejo otra opción que olvidé en la lista anterior y que usé mucho durante varios años: dotproject.net, con una estética algo pobre pero muy eficaz a la hora de mostrar gráficos de Gantt con las tareas de cada proyecto.