Obtener dinero con AdFly

martes, 29 de mayo de 2012

Dialogs JQuery: Mensajes de Alerta y Confirm


Buenas :). Estuve buscando cómo modificar el estilo de los mensajes alert y confirm, que muestran los navegadores. La única forma que hay de modificarlo es asíncronamente, bloqueando página  con un Modal. Esto significa que el código de JavaScript no se paralizará esperando una respuesta del usuario, sino que abrirá la ventana y el código subsiguiente a la llamada del mensaje de alerta o confirmación, se seguirá ejecutando.

Tanto con JQuery como con MooTools, se puede implementar este Modal.

En la página oficial de MooTools se pueden encontrar gran cantidad de plugins para este tipo de interfaz. Un ejemplo:


Los plugins oficiales para JQuery se pueden encontrar en la página oficial de JQueryUI:


Aquí les mostraré cómo se hace con JQuery, pero la misma secuencia se puede usar con MooTools, lo que cambia es el código a utilizar y, claro está, las llamadas a los JavaScript desde la cabecera de nuestra página.

Para los mensajes de alerta


Este caso es simple, porque sólo muestra el formulario con un mensaje y un botón 'Ok', que puede llevar cualquier texto:



function alerta(mensaje)
{
$( "#div-dialogo" ).dialog( "destroy" );

/* Si tenemos saltos de línea con \n, 
* lo transformamos a <br>, para que lo interprete HTML
*/
var mensaje=mensaje.split('\n').join('<br>');

/*Le damos estilo al mensaje*/
var mostrar = '<p style="font-size: 15px;"><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>' + mensaje + '</p>';

/*Este es un equivalente a innerHTML, pero en JQuery*/
$( "#div-dialogo" ).html(mostrar);

/*Con la opción autoOpen, abrimos automáticamente el diálogo*/
$( "#div-dialogo" ).dialog({
bgiframe: true,
autoOpen: true,
minHeight: 200,
width: 500,
closeOnEscape: false,
draggable: true,
resizable: false,
title: "Mensaje",
modal: true,
buttons: {
Ok: function() {
$( this ).dialog( "destroy" );
}
}
});
}

Para los mensajes de confirmar una respuesta


Para este mensaje necesitamos recibir una respuesta, por si tenemos más de una opción y saber cuál escogimos. Le coloqué un segundo parámetro para valores extra:


function confirmar(mensaje, params)
{
/*Idem alerta*/
var mensaje=mensaje.split('\n').join('<br>');

/*Idem alerta*/
var mostrar = '<p style="font-size: 15px;"><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>' + mensaje + '</p>';

/*Idem alerta*/
$("#div-dialogo").html(mostrar);

/*Enviamos los parámetros a params*/
$( "#div-dialogo" ).data("params", params);

$( "#div-dialogo" ).dialog({
bgiframe: true,
autoOpen: true,
  minHeight: 200,
  width: 500,
  closeOnEscape: false,
  draggable: true,
  resizable: false,
title: "Confirme",
modal: true,
  buttons: {
     'Sí': function(param){
      $(this).dialog('destroy');

      /* Si la respuesta al usuario fue 'Sí', 
       * llamamos a una función que ejecutará lo que
       * queramos como respuesta al usuario.
       * Esta será respuestaConfirmar().
       */
     respuestaConfirmar($(this).data("params"));
  },
   'No': function(param){
    $(this).dialog('destroy');
   }
}

});
}

Por ejemplo, la respuesta podría ser, recargar un div con AJAX:

function respuestaConfirmar(params)
{
abrirAJAX(params.pagina+"?"+params.parametros, params.div, params.tipo_envio);
}

Llamando a la función confirmar, podemos utilizar el siguiente código, desde donde le pasamos los parámetros que usamos en respuestaConfirmar():

function llamadaConfirmar(CI_estudiante, nombre_estudiante, pregunta)
{
var params = {
 "pagina":"mostrar_mensaje",
"parametros":"CI_estudiante="+CI_estudiante+"&nombre_estudiante="+nombre_estudiante,
"div":"div-principal",
"tipo_envio":"post"};

 confirmar(pregunta, params);
}

Código HTML


Para ambos casos, necesitamos un div:


<div id="div-dialogo">
</div>

Y a la final, pueden fusionar ambos mensajes, Alerta y Confirmar, en una misma función con un simple IF :D.

Saludos y espero sus comentarios... xD

sábado, 28 de abril de 2012

Reparar disco con fsck y ntfsfix

Hola!. Ahora vengo a hablar de una herramienta que está diseñada para sacarnos de los apuros más comunes en que nos encontramos cuando nuestro S.O. no quiere arrancar. En muchos casos es cuestión de disco duro y para eso existe GNU/Linux y sus increíbles utilidades. Una de ellas es FSCK, una herramienta para comprobar y reparar discos.

Las opciones que tenemos para usarla son:

-a: Confirmar automáticamente. No recomendado, porque podemos confirmar algo de lo que nos podemos arrepentir luego.
-c: Comprobar bloques en el disco.
-f: Forzar el chequeo aunque todo parezca bien.
-v: (Verbose) Imprime la bitácora de lo que va haciendo.
-r: Modo interactivo. Espera nuestra respuesta.
-y: Asume yes de respuesta a todas las preguntas.

Así por ejemplo, si queremos chequear un disco y repararlo a mano, ejecutamos desde la cónsola:

fsck -v /dev/sdX

Siendo /dev/sdX la unidad de disco a comprobar. Si ejecutamos sólo fsck -v, sin más parámetros, comprobamos todos los discos.

Ejecutándolo desde el arranque


Por defecto, fsck se ejecuta cada 30 montajes del disco. Si queremos que se ejecute cada vez que arranque el sistema, debemos usar la utilidad tune2fs. Para utilizarla, debemos instalar primero el paquete e2fsprogs, que lo contiene:

(En Debian):
aptitude install e2fsprogs

(En Archlinux):
pacman -S e2fsprogs

Ahora, para programar la frecuencia de chequeo del disco ejecutamos:

sudo tune2fs -c 1 /dev/sdX

Donde:

c = Máxima cantidad de veces montado (por defecto es 30, como ya dije arriba).
sdX = Partición a comprobar.

Y eso es todo, ya tenemos el sistema tuneado con los discos reparados :D...

Problema: Tengo una partición NTFS y no puedo iniciar Windows...


Para eso también hay solución pequeño salta ventanas. Primero debemos instalar ntfs-3g (para montar discos ntfs) y ntfsprogs (utilidades para ntfs).

(Desde Debian):
aptitude install ntfsprogs ntfs-3g

(Desde Archlinux):
pacman -S ntfsprogs ntfs-3g

Ejecutamos desde un terminal:

ntfsfix /dev/sdX

Nos reparará la partición. Luego la montamos con:

mount -t ntfs-3g /dev/sdX /media/windows/

Y verificamos si todos los datos están bien. Reinicia la compu y ve si Windows ya funciona bien.


Comentarios :D.

--Editado--

Problema: Pero si tengo una partición FAT32...

Hay un paquete llamado dosfstools. Lo instalas con:

aptitude install dosfstools

Desmonta la partición con:

sudo umount /dev/sdXn

Ejemplo:

sudo umount /dev/sda1

Ahora ejecuta el verificador de la partición FAT32:

sudo dosfsck -t -a /dev/sda1

Leído en:

http://askubuntu.com/questions/147228/how-to-repair-a-corrupted-fat32-file-system

miércoles, 25 de abril de 2012

Habilitar SSH en un servidor ESXi VMWARE

Si necesitamos entrar a un servidor ESXi vía SSH, pero la conexión es rehusada, entonces no tenemos el puerto 22 (SSH) activo. Para activarlo, vamos al servidor, presionamos ALT+F1 y escribimos UNSUPPORTED.

Nos pedirá el usuario y password. Al entrar a la cónsola, editamos el archivo /etc/inetd.conf con vi y buscamos la línea que comience por #ssh, borramos #.

Guardamos con:

:qw!

Ahora podemos reiniciar el servidor completo o sino reiniciamos los servicios con el siguiente comando:

/sbin/services.sh restart


Ahora ya podemos iniciar con algún cliente SSH desde Debian GNU/Linux ó desde PUTTY en Guindous.

Recrear una cabecera de un disco virtual (VMDK) perdido en VMWARE

Esta es una guía de cómo recuperar una cabecera VMDK a partir de un disco *-flat.vmdk.

La situación es la siguiente:

Supongamos que tenemos una máquina virtual corriendo en un VMWARE ESXi 5.0 ó menor... de repente se va la luz y cuando vuelve, la máquina virtual no arranca!. Cuando revisamos los archivos de configuración nos damos cuenta de que el disco virtual *-flat.vmdk está, pero la cabecera del mismo, un archivo *.vmdk ya no está!. Pero no se preocupen (demasiado), hay forma de regenerarlo:

1- Mediante un cliente SSH, como PuTTY, nos conectamos al servidor ESXi y autenticamos con el usuario y contraseña del root. Si no podemos entrar por SSH, sigue estas instrucciones para habilitarlo.

Ya estando adentro, cambiamos de directorio hasta donde está la máquina virtual en cuestión:

cd /vmfs/volumes/poolData/Servidor1/

poolData es el contenedor donde están las máquinas virtuales, ustedes deben haberle dado otro nombre. Y Servidor1, es el nombre de la máquina virtual.

2- Entonces, listamos los archivos con las extensión *.vmdk:

ls -ltr *.vmdk

La salida será el archivo Servidor1-flat.vmdk, pero Servidor1.vmdk no existe y por eso es que lo vamos a recuperar.

3- Identificamos el controlador SCSI con el comando:

less *.vmdk | grep -i virtualdev

Lo cual nos arrojará algo como lo que sigue:

scsi0.virtualDev = "lsilogic"

4- La próxima información que necesitamos es el tamaño exacto del disco virtual *-flat.vmdk. Y lo obtenemos con el siguiente comando:

ls -l *-flat.vmdk

La salida será parecida a esta:

-rw------- 1 root root 6563673896 feb 10 05:18 Servidor1-flat.vmdk

5- Ahora usamos el comando vmkfstools para crear un disco temporal (flat .vmdk) y su respectiva cabecera asociada .vmdk, con el siguiente formato:

vmkfstools -c tamañoArchivo -a tipoSCSI -d thin nombreArchivo.vmdk

Lo cual quedará así:

vmkfstools -c 6563673896 -a lsilogic -d thin temp.vmdk 

6- Ya creado, cambiamos el nombre del archivo temporal por el nombre del archivo perdido .vmdk:

mv temp.vmdk Servidor1.vmdk

7- Ahora edita el archivo de cabecera Servidor1.vmdk con vi y cambias temp-flat.vmdk por Servidor1.vmdk, cambiando esta línea:

RW 6563673896 VMFS "temp-flat.vmdk"

Por esta:

RW 6563673896 VMFS "Servidor1-flat.vmdk"

El archivo de cabecera original, que se perdió, no era un "thin provisioned", por eso también borra la línea:

ddb.thinProvisioned = "1"

8- Ahora el siguiente paso es iniciar la máquina virtual y voila!.

BASADO EN HECHO REALES! xD

EDITADO:

En el siguiente video podemos ver paso por paso como hacerlo:

sábado, 21 de abril de 2012

KaMule

Ahora hay un nuevo cliente de protocolo P2P, para aMule, pero ahora en KDE, con el nombre de KaMule. Con ambiente QT. Aunque a mi en lo particular me gusta más GTK, este cliente pinta bien, ya que es lo mismo de si primo de Gnome.

Entre otras cosas puede:

Gestionar servidores P2P.
Buscar archivos en servidores globales.
Gestionar descargas.
Mostrar clientes y archivos compartidos.
Configurar preferencias de aMule.

Algunas screeshots:




Descargar código fuente:
http://kde-apps.org/CONTENT/content-files/150270-kamule-0.3.tar.bz2


Blog del autor:
http://shuizhuyuanluo.blog.163.com/


Fuente:
http://kde-apps.org/content/show.php/KaMule?content=150270

Google Officially Drop Picasa For Linux


Unas de las utilidades más interesantes de Google, Picassa, ha dejado de tener soporte para Linux, http://goo.gl/7jvUj. Pero no hay problemas para los usuarios de Linux, porque tenemos herramientas de sobra para utilizar, con igual o mayor calidad de las que prestan las empresas de desarrollo. Estoy hablando de Shotwell (para Gnome) y DigiKam (para KDE), dos herramientas libres que son capaces de gestionar y editar imágenes.
Ambas podemos descargarla de los repositorios de la distribución que estemos usando. Por ejemplo, en Debian y Ubuntu, sólo tienen que escribir en el terminal:
aptitude install shotwell
Ó
aptitude install digikam
Web del proyecto Shotwell: http://yorba.org/shotwell/
Web del proyecto DigiKam: http://www.digikam.org/
Use Shotwell or DigiKam... ¿Problem Google?

Boot-Repair, in just one click

El título lo dice todo, Boot-Repair es una herramienta que te permite reparar el grub de un sistema con un sólo click. Por ahora está en los repositorios de Ubuntu, pero pronto estará en Debian (wishlist).

Instrucciones de uso e instalación en Ubuntu: https://help.ubuntu.com/community/Boot-Repair

Fuentes para cualquier otra distro: https://launchpad.net/boot-repair

NOT BAD!

martes, 3 de abril de 2012

Recuperando particiones perdidas con TestDisk

He tenido algunos problemas con discos duros que se les ha dañado la tabla de particiones, no tengo acceso a los datos, borré algo "sin querer" y no encuentro como recuperarlo. Existe una solución en Software Libre para esto y se llama TestDisk.

Se puede instalar en Linux, Windows, Mac, DOS, y se utiliza con líneas de comando. En el caso de Debian GNU/Linux, la instalación es vía los repositorios, y es con esta distribución que vamos a trabajar.

La cosa va así, descargamos e instalamos la aplicación:

aptitude install testdisk


Para utilizarlo tenemos varias opciones:

/log          : Utiliza un archivo testdisk.log para guardar la bitácora de acciones
/debug      : Muestra los mensajes de depuración mientras se utiliza
/list           : Muestra las particiones existentes

Abrimos TestDisk con el comando:

testdisk




Seleccionamos la opción Create a new log file.

Aparecen todas las particiones detectadas:


Seleccionamos la partición en que tenemos problemas para ver los datos o donde hemos perdido alguna información y sobre Proceed le damos a ENTER.

Ahora aparece la selección del tipo de partición que estamos usando:


En mi caso Intel. Si no tienen la tabla de particiones creada en el disco, seleccionen None:

La siguiente pantalla es para seleccionar la acción a realizar:


 Seleccionamos Analyse, para buscar las particiones del disco.

Aparecen las particiones encontradas:


Seleccionamos Quick Search.


En la siguiente pantalla nos pregunta si queremos buscar particiones creadas en Vista:


Si queremos buscar particiones creadas con Windows Vista, tecleamos que Y (Sí).

La tabla de particiones encontrada ha sido la siguiente:


Seleccionamos entre las particiones encontradas, la que se adapte a las características de la que estamos buscando y tecleamos ENTER.


Si aparecen la tabla de particiones con todas las particiones completas, seleccionamos Write y tecleamos ENTER, como aparece en la siguiente pantalla.


Lo que sigue es confirmar y listo, las particiones han sido salvadas!!.


Ahora, en el caso de que no se hayan encontrado la tabla de particiones, en vez de escoger Write, escogemos Deeper Search, con lo que buscará a fondo todas la particiones perdidas.

CONTINUARÁ...

Visor de PDF con HTML5 y JS

Hola a mis lectores (sonido de grillo)... xD, desde que no escribo. He encontrado, buscando en la Web, un visor de PDF que es independiente del plugin que esté configurado en el navegador para ver este tipo de documento, como por ejemplo, Adobe Reader ó Evince. Es OpenSource y está en fase de desarrollo todavía, pero es una buena idea, hasta que saquen un navegador que no soporte alguna función de JavaScript que utilice este visor xD.

En Google Chrome no me funciona, pero en Firefox 11, va bien. Prueben y dan sus opiniones.

Lo publicaron aquí:
http://andreasgal.com/2011/06/15/pdf-js/

Y lo pueden descargar aquí:
https://github.com/mozilla/pdf.js