jueves, 11 de abril de 2013

Accediendo a los números de versión ClickOnce desde C#

Más que una entrada de blog, es una nota para mi mismo. Para acceder a los números de versión ClickOnce :

a- Añadir una referencia a System.Deployment en el proyecto.

b- Añadir directiva

using System.Deployment.Application;

c- Antes de acceder a los números de versión, debemos comprobar si la aplicación está corriendo en una instalación, o si estamos dentro de Visual Studio. Si queremos mostrar la información en la barra del título de nuestro formulario:

 if (ApplicationDeployment.IsNetworkDeployed)
                this.Title += " v. " + ApplicationDeployment.CurrentDeployment.CurrentVersion.Major + "." + ApplicationDeployment.CurrentDeployment.CurrentVersion.Minor;
else
                this.Title += " (entorno desarrollo) ";


Instalar Debian desde USB

Bueno, antes que nada, quiero aclarar que este método está basado en un artículo de http://www.esdebian.org , en un artículo escrito en 2008 por Membris Khan. Éste es el enlace al mensaje original:

http://www.esdebian.org/foro/26476/howto-instalar-debian-usb

Yo lo único que he hecho es actualizar un poco los enlaces, pero es que es un método tan sencillo y tan rápido, que pocas mejoras se pueden hacer.

1- Descargar una imagen .iso del instalador. Las imágenes están disponibles en:

http://www.debian.org/devel/debian-installer/

Probablemente, estés buscando la imagen para PC de 64 bits:

http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso

2- Coge un cliente de ftp (lftp, por ejemplo), y entra en cualquier mirror de Debian

ftp://ftp.debian.org

Una vez dentro, navega hasta la carpeta :

/debian/dists/wheezy/main/installer-amd64/current/images/hd-media

Debes cambiar "wheezy" por el nombre de la distribución que quieres instalar, e installer-amd64 por el de la arquitectura que uses. Una vez dentro, bájate el archivo boot.img.gz

3- Vale, ya tenemos todo lo necesario. Inserta la memoria USB en el ordenador, y SIN MONTAR el dispositivo, copia la imagen de arranque en la memoria:

zcat boot.img.gz >/dev/sdb

La orden destruirá todo el contenido y las particiones de la memoria USB. Para volver a usar la memoria más adelante, tendrás que volver a particionarla. Fíjate que debes indicar el nombre del dispositivo (sdb) , no de la partición (sdb1)

4- Copia el fichero del instalador a la raiz del nuevo dispositivo. Para eso, debes montar la memoria (lo más sencillo es sacarla y volverla a meter para que se monte sola), y copiar el fichero:

cp debian-testing-amd64-netinst.iso /media/DEBIAN\ INST

Ya está. Ahora sólo tienes que desmontar la memoria USB y usarla para arrancar el ordenador donde quieras instalar el nuevo Debian.

viernes, 1 de febrero de 2013

Cómo llevar el IVA en GnuCash

- Introducción.

Esto es un pequeño tutorial explicando cómo calcular el IVA con GnuCash, un programa gratuito de contabilidad. Voy a dar por supuesto que tienes una idea del manejo general del programa, yo me voy a centrar en el IVA.

No soy contable, sólo un autónomo intentando llevar bien sus cuentas. Desconozco si es el método más correcto, lo único que sé es que no he encontrado ningún tutorial más claro que éste, y que los números salen bien.


- Preparación del programa.

La preparación es un poco farragosa, pero sólo hay que hacerla una vez.

Para este tutorial he creado un conjunto de cuentas de prueba, con un saldo de partida de 2000€


El primer paso consiste en crear las cuentas de IVA. Las vamos a meter todas en el Pasivo.

Pasivo : IVA - Tipo de cuenta: Pasivo. Cuenta padre : pasivo. Esta será la cuenta padre de las otras cuentas.

Pasivo : IVA : IVA Repercutido -  Tipo de cuenta: Pasivo. Cuenta padre : IVA. Aquí aparecerá el IVA que estamos cargando en nuestras facturas.

Pasivo : IVA : IVA Soportado -  Tipo de cuenta: C/ Pagos pendientes . Cuenta padre : IVA. Aquí aparecerá el IVA que nos cobran a nosotros. Se cambia el tipo de cuenta para que aparezca en negativo (luego verás por qué).

Pasivo  : IVA : IVA Pagado -    Tipo de cuenta: C/ Pagos pendientes . Cuenta padre : IVA. Aquí anotaremos los pagos que hacemos.

Al final, las cuentas deben quedar así:


Ahora hay que definir las tablas de impuestos. Vete al menú principal,  Negocios, Impuestos de Ventas. Crea un nuevo impuesto, IVA, indica el tipo actual (21%)  y asocialo a la cuenta Pasivo:IVA:IVA Repercutido. Quedará así:


Si necesitas emitir facturas con tipos de IVA distintos, necesitarás crear varias tablas.

Si emites facturas que no cobras en el momento, deberías crear una cuenta Activo:Pendiente de cobro del tipo C/Cobros pendientes.

Dependiendo de la actividad de la empresa, deberías crear una cuenta de ingresos. Por ejemplo, si te dedicas a instalar redes locales (por decir algo), crea una cuenta Ingresos:Instalación de redes locales.

Con esto hemos terminado la preparación. Vamos a ver los procedimientos a seguir cada vez que se introduce una factura.

- Cuando EMITIMOS una factura.

Yo llevo el control de las facturas que emito a través del menú de negocios. Vamos a suponer que necesitamos emitir una factura de 100 € más IVA, y vamos a suponer que nos la pagan 30 días más tarde mediante una transferencia bancaria.

El primer paso es dar de alta el cliente. Nos vamos al menú de Negocios -> Cliente -> Nuevo cliente.

Ahora, vamos a crear una factura nueva. Vuelve al menú de Negocios -> Cliente -> Nueva Factura. En el primer formulario, escribe el número de factura, selecciona al cliente que creaste en el paso anterior, y dale a Aceptar.

Aparecerás en la ventana de edición de la factura:


Bien, ahora puedes empezar a meter conceptos. En la cuenta de ingresos deberías especificar la actividad que está generando el ingreso (igual tienes que crear la cuenta antes). En el precio unitario debes especificar el precio sin IVA. En la tabla de impuestos, debes seleccionar IVA. Si todo está bien, verás que te calcula los impuestos en la última columna.

Una vez hayas terminado de introducir los datos, dale a Guardar y fíjate en el grupo de tres iconos que aparecen en último lugar  en la barra de herramientas. Debes darle a "Contabilizar esta factura en su cuadro de cuentas.". Cuando te salga la ventana, aprovecha para crear una nueva cuenta de Activo: Pendiente de cobro (si no lo has hecho todavía), y dale a aceptar. Vete a la solapa general, y vamos a ver cómo han quedado las cuentas porque han pasado varias cosas interesantes:


En primer lugar, como la factura está emitida pero no cobrada, en nuestra cuenta de Activo:Pendiente de cobro nos aparecen los 121 euros. En nuestro Pasivo:IVA:IVA Repercutido aparecen los 21 euros de la factura emitida y en nuestros ingresos aparecerán los 100 euros de la base imponible.

Finalmente, suponemos que han pasado 30 días y nos pagan la factura. Tenemos que volver a nuestra factura (Negocios -> Cliente -> Buscar Factura), visualizarla y seleccionar "Introducir un pago para el dueño de nuestra factura" (en la barra de herramientas, el último icono). En la pantalla que nos sale tenemos que seleccionar Contabilizar en : Activo:Pendiente de pago y cuenta de transferencia Activo:Activo Circulante:Cuenta Corriente.

Si vuelves a la pantalla general, verás que  el dinero de la cuenta Activo:Pendiente de cobro se ha transferido a la cuenta corriente.

- Cuando PAGAMOS una factura de la que nos podemos deducir el IVA.

Vamos a suponer que hemos hecho una compra de material de informática de 50 euros + IVA = 60.5€ en total , y que hemos pagado con una transferencia bancaria desde nuestra cuenta corriente.

Para las facturas pagadas prefiero no usar el menú de negocios, y meter las transacciones en su cuenta directamente. Para este caso, iría a a Activo:Activo Circulante:Cuenta Corriente , haría doble click para que se abra una cuenta, y empezaría a meter una nueva transacción.

Introduce la fecha y el concepto, sáltate la columna de transferir y mete el total en la columna Total Salida.... ¡pero no le des a intro todavía! Necesitamos desglosar la entrada, así que dale al botón desglosar (en la barra de herramientas), e introduce la base imponible y el IVA por separado:


Fíjate cómo queda el asiento. De tu cuenta corriente sale un total de 60.5€ . 50€ van a la cuenta de gastos de informática, mientras que 10.5 van a tu IVA soportado. Si revisas la solapa de cuentas:

En la cuenta de IVA aparece nuestro IVA soportado como una cantidad negativa, y nuestra cuenta de IVA refleja la cantidad que le debemos a Hacienda (en nuestro caso, 21 - 10.50 = 10.50 €) .

- Cuando pagamos el IVA.

Supongamos que nuestra empresa no ha tenido más actividad, y que ha llegado el feliz día de rendir cuentas.

Para reflejar el pago creamos una transacción desde Activo:Activo Circulante:Cuenta Corriente a Pasivo:IVA:Iva Pagado. La cantidad se descontará del total de IVA que seguirá reflejando nuestra deuda con Hacienda (21 euros IVA repercutido - 10.5 IVA soportado - 10.5 IVA Pagado = 0 €, en el caso de nuestra empresa. Si hubiéramos seguido facturando, aparecería el IVA del trimestre actual)

Nuestras cuentas quedarán así:


lunes, 22 de octubre de 2012

¡Coño! ¡Diez mil visitas! :D

Bueno, antes que nada decir que soy consciente que diez mil visitas no es mucho para un blog que lleva activo desde 2010. Otros blogs tienen ese volumen de tráfico por día.

Por otro lado, mi intención nunca fue tener el blog más popular de Internet. Desde siempre me ha gustado escribir pequeños artículos sobre temas técnicos. Esos artículos siempre acababan perdidos por mi disco duro o desperdigados por distintos foros. Así que un día me dije: "Para acabar perdiéndolos, mejor creo un blog y los dejo ahí. Así los tengo todos localizados, y a lo mejor hasta le resultan útiles a alguien".

Unos cuantos años más tarde, parece que el blog sí le ha resultado útil a alguien. Además, para mantener el blog activo tanto tiempo hace falta ser constante, y esa es una virtud que no me sobra. Razón de más para tomarme una buena cerveza alemana a mi salud. ¡Prosit!


Linux: cómo encriptar una partición de disco.

- Introducción.

El uso de datos o particiones encriptadas en Linux es un tema bastante amplio. Este artículo no pretende ser una descripción exhaustiva, me voy a centrar en un caso muy simple. Los mismos principios que aprenderás aquí podrás usarlos para encriptar particiones de sistema, de usuario, etc. Solo necesitarás automatizar todo un poco.

Mi caso es el siguiente. Uso un disco duro externo con interfaz eSATA para mis copias de seguridad. Como considero que parte de la información que almaceno ahí es sensible, quiero encriptar la partición para que, en caso de pérdida, no sea accesible.  Tan sencillo como eso.

Actualmente estoy usando una distribución Debian Wheezy con un kernel 3.2.0-3-amd64 Las instrucciones deberían valer para cualquier distribución de Linux moderna.

- Copia de seguridad

Que yo sepa no hay forma de convertir una partición no encriptada en una encriptada. Para crear la partición encriptada es necesario borrar todos los datos que hay en ella, así que, si tienes datos que quieras conservar, tendrás que hacer una copia externa y luego restaurarla.

Por otro lado, es evidente que si pierdes la contraseña de la partición encriptada, pierdes los datos. Actúa en consecuencia.

- Preparando la partición

En primer lugar, necesitas instalar cryptsetup. En Debian:

apt-get install cryptsetup

Ahora vamos a crear el dispositivo. Suponiendo que queremos encriptar la partición /dev/sdb2

root@jose:~# cryptsetup luksFormat /dev/sdb2
WARNING!
========
This will overwrite data on /dev/sdb2 irrevocably.
Are you sure? (Type uppercase yes):
YES
Enter LUKS passphrase:
Verify passphrase:

Bien, ya hemos creado nuestra partición y le hemos dado una clave. Ahora tenemos que abrirla :

root@jose:~# cryptsetup luksOpen /dev/sdb2 vol-backup
Enter passphrase for /dev/sdb2:

IMPORTANTE: a partir de ahora, sólo nos referiremos al dispositivo como /dev/mapper/vol-backup (o cualquier otro nombre que quieras darle en la orden luksOpen), no como /dev/sdb2.

Una vez abierta, creamos nuestro sistema de ficheros encima. Yo uso ext4, puedes usar el que quieras.

root@jose:~# mkfs.ext4 /dev/mapper/vol-backup 


Nuestro sistema ya está listo para ser utilizado. Vamos a cerrarlo para enlazar con la siguiente sección:

cryptsetup luksClose  vol-backup

- Usando la partición.

Cuando quieras usar la partición encriptada, primero tienes que abrirla (dando la contraseña), y luego montarla. Recuerda que, una vez la has abierto, tienes que acceder a la partición a través de /dev/mapper/ :


root@jose:~# cryptsetup luksOpen /dev/sdb2 vol-backup
Enter passphrase for /dev/sdb2: 
root@jose:~# mount /dev/mapper/vol-backup /mnt/backup

Cuando hayas terminado, la desmontas y la cierras:


umount /mnt/backup/
cryptsetup luksClose  vol-backup