Cómo mostrar los comentarios numerados en Blogger

 
1. Ir a diseño de la plantilla, luego a Edición de HTML y clic en Expandir plantilla de artilugios, agregar el siguiente código entre <b:skin><![CDATA[ y ]]></b:skin>. Preferible que lo pegues al final (antes de ]]></b:skin>), porque puede ser que en algún momento, no quieras esto y se te va hacer más fácil poder ubicarlo para eliminarlo.

.CommentIndex{
float:right;
position:relative;top:25px;left:3px;
margin-left:-200px;
font: italic bold 30pt 'Century Gothic','Trebuchet MS';
color:red;
opacity:0.3;
-moz-opacity:0.3;
filter:alpha(Opacity=30);
}

.CommentIndex:hover{
font-size:80px;
}

Explicación:
- En float, puedes cambiarlo de posición, sea left (izquierda) o right (derecha).
- En margin, ver aquí.
- En font y color, si deseas le cambias.
- En opacity, el número aparecerá opaco o transparente (sobre puesto), si deseas lo eliminas y desaparecerá lo transparente.

2. Buscar lo siguiente:

<dl id='comments-block'>
<b:loop values='data:post.comments' var='comment'>

3. Agregar lo siguiente (lo que está con color azul) después de:

<dl id='comments-block'>

<script type='text/javascript'>Index = 1;</script>

<b:loop values='data:post.comments' var='comment'>

4. Debajo de: <b:loop values='data:post.comments' var='comment'> pegar lo siguiente:

<span class='CommentIndex' title='solo comentario enumerado'><script type='text/javascript'>document.write(Index); Index= Index+1 ;</script></span>

5. Finalmente, guardamos los cambios.

Como Incluir Ubuntu o Debian en un dominio Windows (Active directory)

Tras dar unas cuantas vueltas y probar distintas posibilidades (editando ficheros a mano, empleando sadms,...) para integrar un equipo cliente con Ubuntu en un dominio basado en Active Directory ( Directorio Activo) de Windows finalmente he encontrado un manual genial -resolvía incluso los problemas derivados del uso de servidores dhcp- de la universidad Politécnica de Valencia que es el que a continuación copio, casi integramente:

Tabla de Contenidos
Estas instrucciones han sido probadas en ubuntu 7.10/8.04. La instalación en otras distribuciones puede variar. En la página web de likewise pueden comprobarse todas las versiones de Linux/UNIX y otros sistemas operativos soportadas.


Los DNS de la máquina deben ser los del directorio activo (172.16.10.1, 172.16.10.2)
Editar el fichero /etc/resolv.conf y pegar este código:
domain acarballeira
search acarballeira
nameserver 172.16.10.1
nameserver 172.16.10.2
nameserver 172.16.10.100

Si utilizamos dhclient para configurar la interfaz por DHCP, hemos de añadir estas líneas en el fichero /etc/dhcp3/dhclient.conf para que no nos machaque la configuración:
prepend domain-name "acarballeira ";
supersede domain-name-servers 172.16.10.1,172.16.10.2,172.16.10.100;
En algunos equipos me daba problemas al hacer ping al servidor (con el servidor de dns), quizás debido a VMware Player, para solucionarlo, editar el fichero /etc/hosts e incluir las ips de vuestro servidor:

172.16.10.1 servidor.acarballeira servidor
172.16.10.1 SERVIDOR.ACARBALLEIRA SERVIDOR

Instalación y configuración el software

Es posible que algunas distribuciones incluyan el software en sus repositorios oficiales (p.e. Ubuntu 8.04 y posteriores desde el Administrador de paquetes synaptic) aunque es preferible descargarlo de la web para tener instalada la última versión disponible:

Descargar e instalar el software (instalador y utilidad gráfica para unirse a un dominio):

Ejecutar la aplicación para unirnos al dominio: /usr/centeris/bin/domainjoin-gui (puede estar en otra ruta o más sencillo desde Sistema--Administración--Likewise). (También puede usarse la herramienta de línea de comandos domainjoin-cli).

En la pantalla que aparece debemos introducir el nombre de la máquina y el dominio (ACARBALLEIRA). También podemos indicar la OU en la que queremos que la máquina se cree. Si no indicamos nada se creará en la OU por defecto (Computers).
En caso de qué no actualice el nombre de nuestro sistema podemos hacerlo desde la interfaz gráfica de modo sencillo: vamos a Sistema--Administración --Red; pulsamos desbloquear y tras introducir la contraseña, nos vamos a la pestaña General dónde le asignaremos a nuestro equipo el nombre que queramos tenga en el dominio.


A continuación introducimos un usuario y contraseña con permisos para añadir máquinas al dominio.


Una vez finalizado el asistente, ya tenemos la máquina en el dominio y lista para utilizar los servicios.

Para iniciar sesión en el dominio utilizamos nuestro usuario (acarballeira\login, login@acarballeira, ) y password de ACARBALLEIRA/ALUMNO
Es posible restringir el inicio de sesión en la máquina a ciertos usuarios indicándolo en el fichero (/etc/likewise/lsassd.conf). Ej:
restrict-login-to-group = ACARBALLEIRA\usuarios^del^dominio
También es posible en ese fichero configurar otros parámetros como los tiempos de cachés, el shell por defecto, la ubicación de los directorios HOME, etc.

Configurar ssh para que utilice kerberos

Esto nos permitirá autenticar clientes que se conecten a esta máquina mediante kerberos, así como conectar a servidores ssh que soporten kerberos de forma transparente.

Configuración en el cliente (/etc/ssh/ssh_config):
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes

Configuración en el servidor (/etc/ssh/sshd_config):
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes


Es posible hacerlo en el inicio de sesión con los modulos pam_script y pam_mount. Más información, en las webs de los modulos o en la web de soporte de la distribución.(en cuanto lo tenga listo lo pondré aquí mismo.

Resolución de problemas

Para activar el debug podemos editar el fichero /etc/likewise/lsassd.conf y modificar el parámetro log-level. De este modo obtendremos más información en el fichero donde se guarden los logs de autenticación (/var/log/auth.log en ubuntu).

Error al iniciar sesión: ”Failed to establish your Kerberos Ticket cache due time differences with the domain controller. Please verify the system time.“
La hora del sistema es diferente a la de los servidores de UPVNET. Modificar la hora del sistema local o configurar su actualización automática mediante el protocolo NTP contra el servidor de tiempo de acarballeira.

Al introducir el usuario y la contraseña aparece un mensaje que pone: ”Error”. Antes de reiniciar el equipo si que funcionaba: Arrancar el servicio likewise (generalmente /etc/init.d/likewise-open start) y configurar el sistema para que lo inicie automáticamente (en ubuntu: update-rc.d likewise-open defaults).

”Server not found in kerberos database:“
Si al conectar a un servidor nos da este error, es porque no existe un SPN para el nombre indicado. Suele ocurrir cuando utilizamos alias como *.cc.upv.es en lugar de *.upvnet.upv.es. Si el servidor es windows, hay que añadir el SPN con la utilidad setspn.exe. Si es linux, hay que añadir el spn con sudo lwinet ads keytab add /@UPVNET.UPV.ES

CopyPasteandoLink

Cómo crear una máquina virtual para Vmware Player

Uno de los problemas a los que se enfrentan los usuarios de Vmware que no disponen de licencias para workstation es cómo instalar nuevas máquinas virtuales de manera gratuita y sin quebrantar ninguna licencia.

La mayoría de usuarios se decantan por descargar e instalar la versión Vmware Server que también es gratuita. Otros se descargan el Vmware Player gratuito y ejecutan las máquinas virtuales previamente creadas. El problema es, precisamente, cómo crear dichas máquinas virtuales.

Una manera sencillísima para resolver este inconveniente es la página www.easyvmx.com que en apenas un par de pasos os permitirá definir las características principales de una máquina virtual (sistema operativo, memoria, disco duro, tarjetas de red), con la única limitación de un máximo de dos tarjetas de red; generando un fichero comprimido de apenas 6 kb, a partir del cual podrás abrir con Vmware y crear la máquina virtual instalando el sistema operativo que desees.

CopyPasteandoLink

Como Instalar y configurar VirtualBox II: Tarjeta de red anfitrión, compartir carpetas,...

Para acabar con el tema de configuración e instalación de VirtualBox iniciado en un artículo anterior copio a continuación, tan sólo con un par de modificaciones, el artículo creado por Samuel Calleros en el que explica, entre otras cosas, cómo añadir un interfaz anfitrión, es decir una tarjeta de red propia, a la máquina virtual empleando Virtual box.

Eso sí, como sólo ha sido probada en máquinas virtuales, a la espera de probar del todo las configuraciones en máquinas reales porque este año cualquier prueba fuera de entorno real de trabajo, lo más probable es que no funcione.
Además decir que este artículo está sujeto como el resto de los incluidos en este blog a la licencia creative commons cuyas normas podéis leer pulsando en el icono situado al final de la columna izquierda tras enlaces, blogs,...



Configurar la maquina virtual como Host Interface Networking (Interface Anfitrión)
A grandes rasgos lo que se tiene que hacer para configurar interfaces permanentes en el Host anfitrión con GNU/Linux es:
1.- Crear un puente a la interfaz real. Esto permite compartir la interfaz física entre la interfaz real y la virtual
2.- Por cada tarjeta de red virtual (invitada) usada, debe ser creado un nueva interfaz virtual en el Host padre (llamada tap0 o vbox0 o similar) y agregada esta interfaz al puente.
3.- Finalmente especificar la nueva interfaz en las configuraciones de la tarjeta de red virtual de la maquina virtual.
Ahora presentamos detalladamente los pasos para configurar interfaces permanentes en el Host Anfitrión con Debian y derivadas:
1.- Instalar el paquete "uml-utilities" en el Anfitrión, que contienen herramientas para crear tarjetas de red virtuales y el paquete de utilerías bridge "bridge-utils". Generalmente se instalan con el sistema base.
# apt-get install uml-utilities
# apt-get install bridge-utils
Para que el usuario que ejecutará la maquina virtual tenga acceso a la interfaz, el usuario tendrá que pertenecer al grupo "uml-net" por lo que hay que agregarlo:
# gpasswd -a usuario uml-net
Esto modificara el archivo "/etc/group/" quedando la linea del grupo uml-net así:
uml-net:x:NNN:usuario
2.- Editar el archivo "/etc/network/interfaces" para declarar la interfaz de red virtual a utilizar por el Host Invitado espeficando la interfaz a utilizar (tap0) y usuario que la usara, para ello agregamos las siguientes lineas:
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario

Modifique usuario por el usuario que ejecutará la maquina virtual.
Es importante que nuestra interfaz real (ejemplo eth0) este comentada o que no tenga asignada una IP del mismo rango, de lo contrario el Host Anfitrión no saldrá a Internet.
3.- La primera vez que se use, se debe activar el el bridge y la interfaz creada con los siguientes comandos:
# /sbin/ifup tap0
# /sbin/ifup br0

Esto solo es necesario la primera vez, las siguientes veces se activaran automáticamente.
4.- En el archivo "/etc/network/interfaces" hay que declarar el bridge (llamado br0) y agregar la interfaz creada al mismo:
auto br0
iface br0 inet dhcp
bridge_ports all tap0

También, se puede asignar una IP estática dependiendo de las necesidades.
Si hemos seguido correctamente los pasos del 2 al 4, en "/etc/network/interfaces" y deseamos unir a la red dos maquinas virtuales deberíamos tener el siguiente contenido (sino funciona ir al paso nueve y volver después aquí):
auto lo
iface lo inet loopback

#iface eth0 inet dhcp
#auto eth0

auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario

auto tap1
iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario

auto br0
iface br0 inet dhcp
bridge_ports all tap0 tap1

NOTA: las interfaces virtuales declaradas y que formen parte de un bridge no deben tener ninguna dirección IP asignada, por ello se pone "0.0.0.0" en vez de una IP real.
5.- Reiniciamos el servicio networking:
# /etc/init.d/networking restart
6.- Modifique la configuración de la maquina virtual. Esto se hace desde la aplicación VirtualBox, en "Configuraciones", "Red", “Attached to”, modificando un adaptador de red y especificando "Host Interface Networking"/"Interface Anfitrion" y en el campo “Interface name" tecleamos "tap0" o "tap1" dependiendo del nombre de interfaz virtual configurada en "/etc/network/interfaces".
7.- Finalmente vaya al Host Virtual (Invitado) y configure los paramentros de red apropiadamente.
8.- En caso de error en el dispositivo tun deberemos teclear
# chmod 0666 /dev/net/tun
9.- si no funciona la salida a internet en el equipo anfitrión prueba con la siguiente configuración "/etc/network/interfaces":
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down

auto tap0
iface tap0 inet manual

up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user profe

auto tap1

iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user profe


auto br0
iface br0 inet dhcp
bridge_ports all tap0

Clonar una maquina virtual.


- Nos ubicamos donde estan guardados los vdi (/home/usuario/.VirtualBox/VDI) y clonamos el vdi con un UUID diferente:

$ cd /home/usuario/.VirtualBox/VDI
$ VBoxManage clonevdi NombreOriginal.vdi NuevoNombre.vdi

- Desde el administrador de VirtualBox creamos una nueva maquina; elegimos el mismo sistema operativo y otro nombre para la nueva maquina, asignamos memoria. En disco duro elegimos existente y elegimos el creado en el paso anterior (NuevoNombre.vdi) y listo ya tenemos una nueva maquina virtual identica.

Configuración
Para poder usar VirtualBox hay que darle permisos al usuario de que lo utilice, para ello editamos "/etc/group" y agregamos nuestro usuario al grupo vboxusers, quedando así:
vboxusers:x:xxxx:nuestro_usuario
A veces esto no es suficiente, por lo que al correr VirtualBox puede marcar un error de escritura en "/dev/vboxdrv". Esto se soluciona nombrando como propietario de "/dev/vboxdrv" a nuestro usuario:
# chown nuestro_usuario:nuestro_usuario /dev/vboxdrv
Reiniciamos el servicio:
# /etc/init.d/vboxdrv restart
Agregar maquinas virtuales
Desde consola, iniciamos VirtualBox con el comando VirtualBox y damos clic en el botón Nueva(new) para agregar una nueva maquina virtual:
- Especificamos el nombre de nuestra maquina virtual y el sistema operativo a instalar.
- Posteriormente seleccionamos la cantidad de memoria RAM a asignar.
- Luego le asignamos el disco duro virtual, como no tenemos ninguno creamos uno; damos clic en el botón Nuevo(new), seleccionamos "Imagen de expansión dinámica", luego el tamaño del disco duro virtual.
- Finalizamos el asistente y listo. Ya tenemos la maquina virtual creada
Ahora solo falta instalar el sistema operativo que deseen. Para ello inserte el CD en el CD-ROM, inicie la maquina creada y siga las instrucciones de instalación presentadas.
Compartir carpetas
Para poder compartir archivos entre el Host Virtual (Invitado) y el Anfitrión es necesario instalar en el Host Invitado la aplicación "virtual box Guest Additions".
Pasos a seguir:
- Instalar "virtual box Guest Additions". Cuando la maquina virtual se este ejecutando, hacer clic en el menú "Dispositivos" y luego en "instalar Guest Additions". Guest Additions es un conjunto de utilidades que mejoran las capacidades del sistema virtualizado, entre ellas el compartir carpetas.
- Apagar la maquina virtual
- Compartir la carpeta en el Host Anfitrión con el comando:
VBoxManage sharedfolder add "Nombre_Maquina_Virtual" -name "nombre_a_mostrar" -hostpath "/ruta/carpeta/compartida"
También se puede compartir desde La configuración de la maquina en La opción "Directorios compartidos"
- Iniciar la maquina virtual.
Para acceder a la carpeta compartida:
- En Windows ejecutar: vboxsvrcarpeta_compartida y luego vaya a "Mi PC" y ahí estará montada el directorio compartido.
También puede mapear la unidad de red con: net use z: vboxsrvNombre_Carpeta_compartida
- En Linux se monta la unidad con:
mount -t vboxsf [-o OPTIONS] Nombre_carpeta_Compartida /ruta/donde/se/desea/montar
Para ver las carpetas que tiene compartidas desde el Host Anfitrión se hace con: VBoxManage list vms o desde las configuraciones de la maquina en la Opción "Directorios compartidos"
Podrá leer y escribir en la carpeta compartida desde la maquina virtual.
Habilitar el Copy-Paste entre el Host Anfitrión y el Invitado
Para poder utilizar esta función es necesario instalar en el Host Invitado la aplicación "virtual box Guest Additions".
En un Host Invitado con Windows cuando la maquina virtual se este ejecutando, haga clic en el menú "Dispositivos" y luego en "instalar Guest Additions".
En un Host Invitado con GNU/Linux se requiere instalar los headers del kernel que se este usando. Para saber el kernel que usamos tecleamos "uname -r". Ejemplo: si tenemos el kernel "2.6.18-5-486" instalamos el paquete "linux-headers-2.6.18-5-486":
# aptitude install linux-headers-2.6.18-5-486
Ahora hacemos clic en el menú "Dispositivos" y luego en "instalar Guest Additions". Esto nos montara un CD-ROM virtual. Nos vamos a /media/cdrom/ e instalamos el paquete VBoxLinuxAdditions.run y luego reiniciamos o apagamos la maquina virtual:
# cd /media/cdrom
# sh VBoxLinuxAdditions.run
# poweroff
Ya que instalamos "virtual box Guest Additions" ahora nos vamos en el administrador de VirtualBox, entramos a la configuración de la maquina virtual, en la opción "General", en la pestaña "Avanzado" en la opción "Portapapeles Compartidos" seleccionamos: "Anfitrión a Huesped", "Huesped a Anfitrión" o "Bidireccional" según lo deseado.
Crear Imágenes de nuestra maquina virtual
Las instantáneas (snapshots) sirven para crear imágenes de la partición del disco duro virtual, la cual puede restaurarse en cualquier momento y regresar la partición y los datos como estaban cuando fue creada la imagen. Para crear una imagen vaya al Menú de la maquina virtual y elija "Maquina" y luego "Tomar instantánea".
Configurar la maquina virtual para que forme parte de la red local.
Para entender mejor como configurar la red es necesario una breve explicación de las posibles configuraciones de la red. Al configurar la red de la maquina virtual se pueden elegir entre las siguientes opciones:
- Not attached (No conectado).- Sirve para desactivar la tarjeta de red virtual, por lo que no tendrá acceso a ninguna red
- NAT .- Sirve básicamente para acceder a Internet, descargar archivos y enviar correos, pero las funciones avanzadas de red no están habilitadas. La maquina virtual obtiene una IP de un router que viene siendo VirtualBox y que funciona como DHCP asignando una IP 10.0.2.0 a la primera interface y 10.0.3.0 a la segunda interface, el trafico de la maquina virtual es transparente.
- Host Interface Networking (Interface Anfitrion) .- Simulación de una red real, el Host puede enviar datos al invitado y viceversa, se puede conectar a la red. Se tiene que crear una interface de red virtual en el Host anfitrión por cada tarjeta (interface) de red que use(n) la(s) maquina(s) virtual(es)
- Internal Networking (Red Interna) .- Similar a "Host Interface Networking", sin embargo el acceso a Internet es limitado, de esta manera se mejora la seguridad y velocidad.
La que nos interesa es "Host Interface Networking (Interface Anfitrion)". Esta configuración sirve para configurar la maquina virtual para forme parte de la red.

CopyPasteandoLink

Crear un IP Alias en Ubuntu



A veces necesitamos asignar más de una dirección IP a nuestra tarjeta de red, para ello podemos emplear lo que se conoce como alias de ip, es decir, asignamos varios nombres e ip a una única tarjeta de red. Para hacerlo podemos emplear dos métodos editando los siguientes archivos:

1. /etc/rc.local

En el archivo rc.local colocas la linea con la que configuras la interfaz virtual
ifconfig eth0:0 192.168.1.1
Por ejemplo, asi, cada que se inicie el sistema, esta linea se va a ejecutar (para eso es el rc.local)

2. /etc/network/interfaces
En este archivo podrias tener la siguiente configuración:
auto lo
iface lo inet loopback
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
auto eth1


iface eth1:0 inet static
address 192.168.2.1
netmask 255.255.255.0
auto eth1:0


iface eth1:1 inet static

address 192.168.3.1
netmask 255.255.255.0
auto eth1:1
Asi automaticamente al inicio (o cuando se reinicie el servicio de network tecleando: /etc/init.d/networking restart) se configurarán las tarjetas con las ip asignadas

CopyPasteandoLink

Como Instalar Vmware Player en Ubuntu o en Debian

Escribiendo el artículo anterior me he encontrado con que la gente encuentra alguna dificultad a la hora de Instalar VMware Player en Ubuntu cuando es bastante sencillo. Para ello, lo único que tenemos que hacer es :
1.- Descargamos el paquete VMware Player (cuando pulsemos en el enlace nos pedirá nuestros datos para acceder a la descarga gratuita) que se ajuste a la versión de nuestro sistema operativo, ya sea la de 32 o la de 64 bits, pero de extensión bundle:

2.- Abrimos una consola y nos situamos en el directorio en el que hemos descargado el fichero y tecleamos:

sudo sh Nombre_del_fichero.bundle

o bien

sudo ./Nombre_del_fichero.bundle

e iniciará el proceso de instalación.

Para crear una máquina virtual usando VMware Player puedes ver el siguiente artículos sobre VMware Player, dónde explico cómo hacerlo de modo sencillo y gratuito, para permitir la instalación de distintos sistemas operativos desde este programa.

CopyPasteandoLink

Como Instalar VirtualBox en Ubuntu o debian y configurar USB y resolución de pantalla




Uno de los medios cada día más extendidos para realizar pruebas de instalación, permitir la coexistencia de varios servidores en una única máquina física ,con el consiguiente ahorro de costes, o como es mi caso para posibilitar la docencia de distintos equipos y sistemas sobre un único equipo ordenador, es la virtualización -léase uso de máquinas virtuales-.

Existe diverso software para permitir dichas tareas en sistemas Windows y Linux, que sean compatibles con ambos sistemas y con ciertas garantías básicamente VirtualBox (de Sun), Vmware y Parallels. La última, hasta ahora, es el único que permite compartir la tarjeta gráfica con el equipo, de modo que nos permite emplear la aceleración 3d que ésta aporta. Por lo demás, están disponibles en versiones para Windows y Linux.

Las razones por las que hemos escogido VirtualBox -pese a ser anteriormente usuarios de Vmware- son básicamente que es software libre y totalmente gratis. Es cierto que VMware dispone también de dos programas gratuitos: Vmware Server y Vmware Player - este último, permite la ejecución de máquinas virtuales, previamente creadas- pero el equivalente a VirtualBox que, sería la versión Workstation y que permite la creación de distintas máquinas y su uso, require el pago de licencia de uso.

Así las cosas nos hemos decantado por VirtualBox, es por ello por lo que después de detectar y creo que resolver los problemas que hemos tenido en dicha tarea me he decidido a crear este manual (es más que probable que el año que viene tenga que tirar nuevamente de él si siguen sin resolverse un par de problemillas).

Este manual cubre la instalación y configuración de un equipo "virtual" con ubuntu en otro "anfitrión" (el sistema operativo de la máquina física) también basado en Ubuntu o Debian. Para la realización de este manual he empleado Ubuntu 8.04 y la versión 2.0.2 de Virtual Box.

Requisitos:
-Un equipo con Ubuntu 8.04 instalado
- Un fichero con la imagen iso de Ubuntu 8.04 o posterior

INSTALACIÓN DE VIRTUALBOX.

El proceso de instalación es bastante sencillo:

  1. Descargamos el paquete de instalación de VirtualBox de la página del proyecto, seleccionando la versión de 32 o 64 bits, según el sistema operativo que tengamos instalado en nuestro equipo.
  2. Abrimos el paquete previamente descargado y hacemos doble click sobre él, o abrimos GDebi e instalamos el paquete.
INSTALACIÓN DE UBUNTU EN VIRTUALBOX
  1. Le damos un nombre a la máquina para que cuando tengamos varios sistemas instalados, podamos diferenciarlos. En mi caso ubuntu y seleccionamos el tipo de sistema operativo que vamos a instalar: Ubuntu.
  2. Seleccionamos la cantidad de Ram de nuestro equipo que vamos a reservar para la máquina virtual. 512 MB en mi caso.
  3. Vamos a crear un Nuevo Disco duro "virtual" (si no disponemos de una instalación previa), para ello pulsamos en "Nuevo". Y pulsamos siguiente cuando nos aparece el cuadro de diálogo indicando que va a iniciarse el asistente de instalación de disco duro.
  4. Seleccionamos el tipo de disco duro "Imagen de Expansión Dinámica", de modo que cuando instalamos el sistema virtual se creará un fichero que va aumentando de tamaño según le sistema que estamos instalando vaya necesitando más espacio en su disco duro, hasta ocupar como máximo el tamaño que asignaremos en la siguiente ventana. Si escogiéramos la opción "Imagen de Tamaño Fijo", se reservaría ya en ese momento todo el tamaño mediante la creación de un fichero que ocupe dicho espacio, proceso que además es más lento.
  5. Seleccionamos la ubicación del fichero y el tamaño máximo que podrá tener (sería el equivalente al tamaño de disco en una máquina "física").
  6. Pulsamos Finalizar y siguiente en los dos cuadros que nos aparecen a continuación.
  7. Pulsamos Finalizar en el Cuadro diálogo Resumen.
  8. En la ventana de la aplicación pulsamos en el enlace CD/DVD ya que aquí deberemos indicarle dónde hemos guardado el fichero ISO, a partir del cuál vamos a instalar el sistema operativo de la máquina virtual -también podemos decidir instalarlo desde nuestro soporte de CD/DVD real.
  9. En el cuadro que aparece seleccionamos "Montar la unidad de CD/DVD" y -si queremos realizar la instalación desde el fichero ISO- "Archivo de imagen ISO"; pulsamos en el icono con forma de carpeta y buscamos la ubicación dónde hemos guardado el fichero. Cuando arranquemos intentará instalarlo desde este fichero como si de un CD real se tratase -sólo que mucho más rápido.
  10. Pulsamos en el botón con forma de flecha verde "iniciar" con lo que se iniciará el proceso de instalación normal de Ubuntu, que deberemos concluir.
  11. Una vez finalizado nos pedirá que retiremos el CD y pulsemos Intro, para ello pulsamos con el botón derecho del ratón en el icono con forma de CD situado en la esquina inferior derecha de la ventana y seleccionamos desmontar CD/DVD Rom.
CONFIGURACIÓN DE LA RESOLUCIÓN DE PANTALLA
  1. La resolución por defecto será de 800x600 en la máquina virtual, para modificarlo pulsamos en la opción Dispositivos -- "Instalar Guest Additions (Aplicaciones del Huesped).
  2. Cuando lo hagamos se montará un CD con varios ficheros para windows y para linux. Abrimos una consola y ejecutamos:
  • $ su
  • # cd /media/cdrom
  • # sh VirtualBox__fichero de 36 o 64 bits_dependiendo denuestrosistema.run
3. Nos pedirá que reiniciemos el equipo virtual. A partir de ahora, cuando pulsemos sobre la máquina virtual el ratón no quedará capturado (se liberará simplemente moviéndolo fuera de la ventana), y la resolución del sistema virtual se ajustará de modo automático al tamaño de la ventana que lo contenga, cada vez que la variemos. Si deseamos verlo a pantalla completa pulsaremos ctrl dcho + F - y lo mismo para revertir su estado.

CONFIGURACIÓN DE USB EN VIRTUALBOX Y UBUNTU O DEBIAN.

Es bastante probable que cuando intentes usar tu dispositivo USB en la máquina virtual te de un error "USB Host Proxy Server ..." (o algo parecido) y no te detecte los dispositivos USB (p.e. los pendrives) para solucionarlo sigue los siguientes pasos:

Ahora añadimos nuestro usuario al grubo “vboxusers”: $ sudo adduser $USER vboxusers
Adding user `jose’ to group `vboxusers’ …
Adding user jose to group vboxusers
Done.

- Ahora habilitamos el soporte USB para VirtualBox.
Por defecto USB esta deshabilitado. Seguramente quieras habilitarlo y evitar
un error que aparece al entrar en la Configuracion de nuestra maquina virtual.
Para habilitar USB edita el archivo mountdevsubfs.sh:
$ sudo gedit /etc/init.d/mountdevsubfs.sh

Veras un bloque de codigo con un aspecto similar a este:
#
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount –rbind /dev/bus/usb /proc/bus/usb

Ahora descomenta las 4 ultimas lineas, debe quedar como:
#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount –rbind /dev/bus/usb /proc/bus/usb

Ahora debemos reiniciar el equipo. y volvemos a iniciar una sesión
para que los cambios que hemos hecho sobre nuestro usuario añadiendolo al
grupo vboxusers se hagan efectivos.
Si de todas formas los pasos anteriores no funcionan, y el usb no se
habilita, puedes intentar lo siguiente.
- obten el identificador el grupo vboxusers
$ grep vbox /etc/group
vboxusers:x:124:jose

Aqui en nuestro caso seria el valor 124.

Ahora editamos el fichero fstab y añadimos el valor de ese id.
sudo gedit /etc/fstab
## usbfs is the USB group in fstab file:
none /proc/bus/usb usbfs devgid=124,devmode=664 0 0




Hacemos lo mismo con el fichero mountdevsubfs.sh
$ sudo gedit /etc/init.d/mountdevsubfs.sh

## Mount the usbfs for use with Virtual Box
domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=124,devmode=664

Lo dejamos:
#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
#domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644

## Mount the usbfs for use with Virtual Box
domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=124,devmode=664

ln -s .usbfs/devices /dev/bus/usb/devices
mount –rbind /dev/bus/usb /proc/bus/usb

Ahora reiniciamos, y virtualbox deberia detectar nuestros dispositivos usb.

CopyPasteandoLink

Títulos de todas o ultimas entradas del blog (widget)

Me preguntaban en un comentario si conocía alguna forma de mostrar todas las entradas del blog por su título, pero además quería disponer de una barra de scroll (scrollbar) en el mismo widget, para evitar que este se alargara en exceso.
Me he acordado que tenía una entrada en borradores sobre un widget de Hoctro´s que precisamente muestra los títulos de todas las entradas de nuestro blog o un número menor de nuestras últimas entradas, y he incluido una leve modificación en su código para añadirle una barra de scroll.

[1] En primer lugar necesitaremos acceder dentro de nuestro panel de Blogger a la pestaña "Configuración" -> "Feed del sitio" y en el desplegable de "Permitir Feeds del blog" seleccionar el modo "Completo".
Tendremos que ir después, también desde "Configuración" a la pestaña "Archivo" y seleccionar "Si" en la opción "Habilitar páginas de entrada".

[2] Una vez hecho esto, tendremos que añadir este código en nuestra plantilla justo antes de </head> (no hará falta expandir la plantilla de artilugios):



<script type='text/javascript'>

// Developed by Hoctro - All rights reserved 2007

// This credit must be included in all your derived usages.

// &quot;cb&quot; is intended to be a common library, where different widgets would

// utitlize the shared operations such as getTitle, getLink, etc. from a json object.

var cb = {

// search function requires these parameters:

// 1. query: a blogger address, such as &quot;hoctro.blogspot.com&quot;,

// 2. type: type of return data, either &quot;comments&quot; or &quot;posts&quot;,

// 3. start: the start-index parameter (where to start extracting data)

// 4. increment: the number of elements the json will get back. (the smaller value, the faster time to travel back)

// 5. func: the returned function the json object will feed.

search: function(query, type, start, increment, func) {

var script = document.createElement(&#39;script&#39;);

script.setAttribute(&#39;src&#39;, &#39;http://&#39; + query + &#39;/feeds/&#39; + type + &#39;/default?alt=json-in-script&amp;start-index=&#39;

+ start + &#39;&amp;max-results=&#39; + increment + &#39;&amp;callback=&#39; + func + &#39;&amp;orderby=published&#39;);

script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);

document.documentElement.firstChild.appendChild(script);

},

// searchLabel function return a result of posts w/ a label query

// it requires these parameters:

// 1. query: a blogger address, such as &quot;hoctro.blogspot.com&quot;,

// 2. an array of labels

// 3. func: the returned function the json object will feed.

searchLabel: function(query, label, func) {

var script = document.createElement(&#39;script&#39;);

script.setAttribute(&#39;src&#39;, &#39;http://&#39; + query + &#39;/feeds/posts/default/-/&#39; + encodeURIComponent(label) +

&#39;?alt=json-in-script&amp;callback=&#39; + func + &#39;&amp;orderby=published&#39;);

script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);

document.documentElement.firstChild.appendChild(script);

},

// getTotalResults needs the json object, and it&#39;ll return the total number of comments (or posts) of the blog.

getTotalResults: function(json) {

return json.feed.openSearch$totalResults.$t;

},

// getStartIndex gets the start index of a search inside an json object.

getStartIndex: function(json) {

return json.feed.openSearch$startIndex.$t;

},

// getLink return a href link if &quot;name&quot; matches the content inside &quot;a&quot; tags) of the link

getLink: function(entry, name) {

var alturl;

for (var k = 0; k &lt; entry.link.length; k++) {

if (entry.link[k].rel == name)

alturl = entry.link[k].href;

}

return alturl;

},

// getTitle gets the title of the title of an entry of a json object.

getTitle: function(entry) {

return entry.title.$t;

},

// getContent gets the content inside an entry of a json object.

getContent: function(entry) {

return entry.content.$t;

},

// getCommentAuthor: gets the commenter name inside an entry of a json object.

getCommentAuthor: function(entry) {

return entry.author[0].name.$t;

},

// Given a json label search, this function return the decoded label.

getLabelFromURL: function(json) {

for (var l = 0; l &lt; json.feed.link.length; l++) {

if (json.feed.link[l].rel == &#39;alternate&#39;) {

var raw = json.feed.link[l].href;

// The next two lines are borrowed from Ramani&#39;s Neo Template

// code. Thanks Ramani!

var label = raw.substr(raw.lastIndexOf(&#39;/&#39;)+1);

return decodeURIComponent(label);

}

}

},

txt : function (s) {

return s + &quot; Widget by &lt;a href=&#39;http://hoctro.blogspot.com&quot; + &quot;&#39;&gt;Hoctro&lt;/a&gt;&quot;;

}

};

</script>

[3] Localizamos ahora la línea más abajo dentro del código de nuestra plantilla, que es la que marca el comienzo de la sidebar:

<b:section class='sidebar' id='sidebar' preferred='yes'>

Justo debajo de esa línea añadiremos el código necesario para mostrar el widget que, en un principio, se verá el primero de los añadidos a nuestra sidebar, pero que más tarde podremos mover al lugar que queramos:


<b:widget id='HTML50' locked='false' title='TODAS LAS ENTRADAS' type='HTML'>

<b:includable id='main'>

<!-- only display title if it's non-empty -->

<b:if cond='data:title != &quot;&quot;'>

<h2 class='title'><data:title/></h2>

</b:if>

<div class='widget-content'>

<data:content/>

<ul><div id='dataPost' style='height:400px; overflow:auto;'/></ul>

</div>

<script type='text/javascript'>

// Developed by Hoctro - All rights reserved 2007

// This credit must be included in all your derived usages.

// This widget lists the available posts based on the uP.nPost value below

// Use -1 if you want them all.

var uP = {

nPost : -1

};

var cP = {

// private variable to store the total results

totCount : 0,

// the number of elements for each json call

increment : 10,

// this is the place to define the blog name for subsequent retrieval data

web : &quot;elescaparatederosa.blogspot.com&quot;,

listPosts: function(json, tag) {

var text=&quot;&quot;;

for (var i = 0; i &lt; json.feed.entry.length; i++) {

var entry = json.feed.entry[i];

text += &quot;<li>&quot; + &quot;&lt;a href=&#39;&quot; + cb.getLink(entry, &quot;alternate&quot;)

+ &quot;&#39;&gt;&quot; + cb.getTitle(entry) + &quot;</li>&quot;;

}

var p = document.createElement(&#39;span&#39;);

document.getElementById(tag).appendChild(p);

p.innerHTML = text;

},

callPostJson: function(json) {

this.listPosts(json, &quot;dataPost&quot;);

},

getCo : function(json) {

this.totCount = cb.getTotalResults(json);

var count = (uP.nPost &lt; 0) ? this.totCount : uP.nPost;

var i=1;

while(i&lt;=count) {

var incr = (count-i &lt; this.increment) ? count-i+1 : this.increment;

cb.search( cP.web, &quot;posts&quot;, i, incr, &#39;cP.callPostJson&#39;);

if (incr==0) incr=incr+1;

i = i+incr;

}

}

};

cb.search( cP.web, &quot;posts&quot;, 1, 2, &#39;cP.getCo&#39;);


</script>

</b:includable>

</b:widget>




[4] Cambiamos donde dice: elescaparatederosa.blogspot.com por la url de nuestro blog sin el http://

Donde dice:  nPost : -1  es donde haremos los cambios para mostrar un número de títulos de entrada ilimitado, es decir, todas las entradas del blog actuales y las que vayamos publicando o para mostrar solo el número de títulos que nos interese de las últimas entradas publicadas.

Si vamos a mostrar todas las entradas dejaremos este valor tal cúal está en -1, en cambio,  si solo queremos mostrar las veinte últimas entradas por ejemplo, cambiaremos ese valor a 20.
Si vamos a usarlo para las últimas entradas, recordaremos cambiar el título del widget por algo más apropiado.





Esta parte del código:  style='height:400px; overflow:auto; es la que he añadido para que aparezca de forma automática la scrollbar, cuando el alto del widget sobrepase los 400px, podéis reducir o ampliar su altura cambiando el valor en height.


Compartir Enlace

Editar imagen online: Comparativa Pixlr y Photoshop Express

Interfaz de Pixlr editando una imagen del castro celta de San Cibrao de Las en Orense

Por increíble que parezca la imagen anterior se corresponde con un programa de edición de imágenes albergado en un servidor y totalmente gratuito llamado pixlr. Se suma de este modo a la lista de aplicaciones que podemos ejecutar simplemente teniendo conexión a Internet y sin necesidad de instalar ningún software en el equipo en el que trabajemos ni emplear recursos de nuestra máquina, salvo un sencillo navegador web. Viene a ser a la edición de imágenes lo que Google con su Google docs (editor de textos, hoja de cálculo y presentaciones) a la edición de textos, complementando así lo que podría ser una "suite ofimática online".

Lo que sorprende a primera vista del pixlr es que no se diferencia demasiado de las aplicaciones de edición de imágenes habituales con las que estamos acostumbrados a trabajar, léase Gimp, Paint, Adobe Photoshop,... guardando, además, un sospechoso parecido con la interfaz de esta última. Lo que os sorprenderá más, sin duda, es la rapidez con la que se cargará una vez tecleéis la dirección web en vuestro navegador http://www.pixlr.com/app/ ; o bien www.pixlr.com y pulsando el botón "jump in".

La interfaz como comentaba es muy parecida y funciona de un modo similar a la del citado editor. Resumiendo, desde mi punto de vista es una genial aplicación que nos puede sacar de más de un apuro y que ejecuta, por ejemplo, las operaciones, filtros,... a toda velocidad. Podemos subir imágenes, modificarlas, incluso cargarlas desde una url, hacer las modificaciones que deseemos y cuando finalicemos, al pulsar en guardar, nos mostrará el típico cuadro de diálogo preguntándonos en qué lugar de nuestro equipo la queremos guardar, ya que hasta ese momento sólo estará en el servidor que alberga la aplicación.

Por otro lado -pero que muy al otro lado- y en lo que se supone debería ser la competencia, está el Photoshop Express, que bajo mi punto de vista es una pésima imitación, a mitad de camino entre el picassa y el programa de edición que encontraremos en cualquier cámara digital.

Para que veáis las diferencias entre ambas en cuanto a opciones, apariencia, etc , os dejo aquí debajo una imagen de esta aplicación - que podéis encontrar en: https://www.photoshop.com/express/landing.html -; para "facilitar" todavía mas las cosas tenéis dos opciones de uso ,una de prueba y otra en la cual es necesario registrarse.


Direcciones de las aplicaciones:
CopyPasteandoLink

Esteganografía con HIP (Hide In Picture)

| 0 comentarios

En este artículo intento explicar cómo emplear el programa hip (hide in picture) que emplea técnicas de esteganografía para ocultar ficheros dentro de imágenes.
Básicamente y acudiendo a la wikipedia podemos ver que:
La esteganografía es la disciplina en la que se estudian y aplican técnicas que permiten el ocultamiento de mensajes u objetos, dentro de otros, llamados portadores, de modo que no se perciba su existencia.
Esta tarea se realiza de manera muy sencilla con el programa hip, que como veremos a continuación, nos permite abrir una imagen y añadirle cualquier fichero ya sea texto o imagen, sin modificar el fichero original o portador, de modo que, aparentemente, no sea visible la modificación.
Buscando por internet software que nos permita emplear técnicas esteganográficas con imágenes me he encontrado con dos programas gratuitos para windows. El hip además de sencillo, no require instalación (ocupa sólo unos 400kb), lo he probado añadiendo un fichero de texto y aumentaba el peso del fichero en sólo 2kb, si añades una imagen lógicamente, lo que pese la imagen.

El segundo me lo he bajado, lo he ejecutado y no me funcionaba (no sé si sería una cuestión de permisos), pero ha pasado al cajón de los descartados.

En cualquier caso hay dos malas noticias, para los que lo quieran emplear:

a.- He leído algún articulo (http://www.inforactiva.net/index.php?option=com_content&view=article&catid=3:seguridad&id=192:contra-esteganografia-doble-esteganografia) en el que comentan que si pasas el programa dos veces, una para ocultar el fichero y después un "aguililla" se lo vuelve a pasar, destroza lo que habías ocultado; lo he probado y es cierto: ocultas un fichero "a" en "imagen1", a continuación ocultas "imagen2" en el fichero resultante del proceso anterior y sólo podrás recuperar imagen2, nunca "a".

b.-Existen programas para detectar ficheros ocultos dentro de otros (http://www.sarc-wv.com/stegalyzeras.aspx), segun he leído, algunos servidores lo pasan de modo automático para detectar marcas de los ficheros ocultos en las imágenes, ya que en otro caso se podrían saltar los controles de seguridad, por ejemplo, enviando correos electrónicos con imágenes adjuntas, que en realidad ocultan ficheros de texto.



GUÍA - TUTORIAL DE HIP (Hide In Picture)


Tras bajar y descomprimir la última versión (en mi caso 2.1) del fichero en castellano:

1.- Ejecutamos el fichero winhip_es.exe, con lo que iniciará la aplicación:

2.- Pulsamos Archivo - Abrir, o directamente en el icono con forma de carpeta y seleccionamos la imagen "portadora", o sea, el fichero de imagen dentro del que vamos a esconder otro fichero (que no será visible). Nos aparecerá la siguiente ventana:
En ésta tenemos cuatro botones: si pulsamos
a.- el primero nos aparecerá el siguiente cuadro de diálogo:



en el mismo, seleccionamos el nombre del archivo que queremos ocultar ( en mi caso, he decidido ocultar el fichero de nombre dellhybrid.jpg en la imagen\viñeta del carrabouxo. Además podemos/debemos introducir una contraseña para que al intentar extraer el fichero oculto en la imagen sea necesario introducirla.
b.- El segundo botón me permite extraer un fichero oculto del fichero de imagen -aparentemente normal-. Si tuviera alguna contraseña, aparecería un cuadro de diálogo que me solicitaría que la introdujese.
c.- Para guardar el fichero.
d.- El cuarto y último botón es "guardar como", igual que el anterior me permite grabar la imagen con el fichero oculto, sólo que en este caso modificando el nombre.

CopyPasteandoLink