lunes, 18 de agosto de 2014

Instalación de ArchLinux en Macbook Pro Retina (dual boot)

En el wiki de ArchLinux tienes una guía detallada (y aquí otra específica para el modelo 13" Late 2013) que te explica cómo instalar ArchLinux en tu Mac. Lamentablemente está muy enrevesada, y algunas cosas no están actualizadas. Por lo que aquí resumo los pasos que he seguido para instalar ArchLinux en mi Macbook Pro Retina 13" Late 2013:
  1. Entra en OSX de forma normal
  2. Descarga el último Archboot y crea un instalador USB
  3. Utilizando "Utilidad de Discos" reduce el tamaño de la partición que contiene OSX
  4. Descarga rEFInd y extrae los ficheros
  5. Instala rEFInd usando install.sh --alldrivers . Es curioso que en el wiki de archlinux indique que instales rEFInd usando --nodrivers, porque si haces esto rEFInd no podrá leer tu partición de Linux, ya que no tiene los drivers correspondientes.
  6. Reinicia con el USB insertado, pulsa ALT durante el inicio para poder arrancar desde el USB
  7. Cuando aparezca el instalador, pulsa Fn+Alt+F2 para acceder a un terminal. Ejecuta cgdisk /dev/sda. Si al redimensionar la partición de OSX habías creado otra, bórrala. Crea una nueva partición de tipo "Linux filesystem" dejando un hueco de 128MB (escribiendo +128M cuando te pregunte "First sector")
  8. Guarda los cambios (seleccionando la opción Write) y sal de cgdisk
  9. Vuelve al instalador pulsando Fn+Alt+F1
  10. Instala ArchLinux de forma normal, pero sin instalar ningún bootloader
  11. Accede a un terminal (Fn+Alt+F2) y crea, en la partición en la que acabas de instalar Arch, el fichero /boot/refind_linux.conf añadiendo esta línea:
    "Default" "rw root=UUID=<UUID> rootflags=data=writeback libata.force=noncq"
    Tienes que reemplazar <UUID> por el valor correspondiente. Puedes obtener este valor ejecutando blkid /dev/sda4 (sustituyendo sda4 por la partición donde estás instalando Arch). Rootflags y libdata.force sirven para optimizar el rendimiento del disco duro SSD.
  12. Apaga el mac y quita el USB
  13. Al arrancar rEFInd detectará tu instalación de Arch y te permitirá seleccionar con qué SO arrancar
  14. Configura la red y conecta a una red usando wifi-menu
Si quieres redimensionar la partición de OSX, hazlo con la "Utilidad de Discos" desde OSX. Si quieres redimensionar la partición de Linux, hazlo desde GParted.

Si quieres eliminar rEFInd, basta con eliminar el directorio /EFI/refind.

martes, 29 de julio de 2014

Scripts para Linux para crear y subir backups de tu servidor a Google Drive

Para poder subir archivos a Google Drive mediante su API hay que acceder a la consola de desarrollador de Google (https://console.developers.google.com/project), crear un nuevo proyecto, activar Drive API, y en el apartado "Credentials" crear un nuevo Client Id.

En este enlace podemos encontrar un buen script PHP para subir ficheros a Google Drive: http://ben.akrin.com/?p=2080. Al probarlo con mi cuenta de Drive, me surgieron dos fallos. Así que lo he modificado para corregirlos (He reducido el "chunk size" y he modificado la función parse_response para obtener el último HTTP header en caso de recibir varios, ya que Google me estaba enviado dos códigos HTTP (100 y 308) en la misma cabecera). Lo puedes conseguir aquí: https://github.com/sjvc/backup-linux-to-google-drive/blob/master/google_drive_uploader.php. Hay que configurar el Client ID, y el Client Secret que encontrarás en tu consola de desarrollador de Google (apartado "Credentials" de tu proyecto). También necesitarás el "refresh token", esto lo puedes obtener usando este script https://github.com/soulseekah/bash-utils/blob/master/google-oauth2/google-oauth2.sh obtenido de aquí: http://codeseekah.com/2013/12/21/headless-google-drive-uploads (esta web explica otra forma de subir los ficheros, pero tiene el problema de que usa el "auth token" y este caduca después de una hora tras haberlo creado. Sin embargo, nos sirve su forma de obtener el refresh token).

Puedes usar el siguiente script para comprimir y subir directorios: https://github.com/sjvc/backup-linux-to-google-drive/blob/master/backup-dirs.sh


Y este otro para crear, comprimir y subir bases de datos mysql: https://github.com/sjvc/backup-linux-to-google-drive/blob/master/backup-dbs.sh

miércoles, 23 de julio de 2014

Cómo configurar tu propio VPS desde cero

Este post describe los pasos sencillos para tener funcionando un servidor privado virtual completo (ssh, web, ftp, base de datos, email...) que posteriormente podremos gestionar usando ispconfig. Lo primero que hay que hacer es elegir un proveedor para el servidor vps. Hay muchos para elegir, entre los cuales, destaco los siguientes:
En mi caso, he escogido digitalocean.com. Si quieres ver más alternativas, aquí tienes un buen listado: http://www.comparevps.com

Para saber si has hecho una buena elección, una vez tengas tu servidor, siguiendo este tutorial podrás ejecutar un benchmark para comprobar el rendimiento del mismo: http://blog.diacode.com/testeando-el-rendimiento-de-tu-aplicacion-con-apache-bench. Si buscas en internet podrás encontrar benchmarks de distintos proveedores realizados por los usuarios.

A parte del servidor, necesitarás al menos un dominio. También hay muchos proveedores. Yo he elegido http://www.dondominio.com porque ofrece whois privado de forma gratuita.

A la hora de crear el vps, es recomendable asignar un FQDN como hostname (por ej: si tu dominio es midominio.com, puedes usar como hostname server1.midominio.com). Una vez contratado el servidor vps, nos habrán proporcionado la contraseña del usuario root para acceder por ssh. Así que empezamos:
  1. Lo primero que haremos será aplicar distintas medidas de seguridad, como cambiar el password de root, restringir su acceso por ssh, crear un usuario en el sistema y cambiar el puerto de ssh para evitar ataques: https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-12-04
  2. Ahora instalaremos ISPConfig (junto con el servidor web, base de datos, ftp, correo, etc...) siguiendo el tutorial indicado (según nuestra distribución): http://www.ispconfig.org/page/en/documentation.html
  3. Si tu servidor tiene poca memoria RAM (1GB o menos) podría interesarte desactivar ClamAV (aunque esto no es aconsejable, es preferible que aumentes la RAM): http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-disable-spamfilter-and-antivirus-functions-in-ispconfig-3. Cada vez que actualices ISPConfig tendrás que volver a hacerlo, ya que la actualización re-configura los servicios.
  4. Como medida de seguridad, vamos a proteger el directorio de phpmyadmin contra posibles ataques: http://www.howtoforge.com/protect-phpmyadmin-on-an-ispconfig-3-server-debian
  5. Otra medida de seguridad es desactivar el listado de directorios en apache. En Debian, basta con ejecutar como root: a2dismod autoindex y reiniciar apache.
  6. Ahora entramos a ispconfig, y accedemos al apartado System -> Interface -> Main Config. Modificamos la dirección de phpmyadmin con la nueva (si la hemos cambiado). En este apartado podemos ver los prefijos que se añadirán a cuentas FTP, bases de datos, etc...
  7. Accedemos a "clientes" y creamos uno nuevo (al menos uno para nosotros mismos). Ha de haber al menos uno para que al añadir, por ejemplo, cuentas FTP, no nos añada "default" como prefijo, sino que añada el nombre de usuario del cliente. Si no vamos a tener diferentes clientes podemos vaciar los campos "prefix" de la sección System -> Interface -> Main Config para que no nos añada prefijos según el cliente. Pero usando prefijos, y un cliente, estará todo más organizado y preparado para si tenemos clientes en un futuro.
  8. Seguidamente vamos a configurar las DNS para que nuestro dominio "apunte" a nuestro servidor vps (Si necesitas aprender conceptos básicos sobre DNS, este es un buen tutorial: https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts, y aquí otro https://support.google.com/a/answer/48090?hl=es). Aquí, entre otras cosas, podemos encontrar otro buen tutorial sobre DNS: http://www.cymru1.net/linux-vps/vps-hints-and-tips.php. Y aquí puedes comprobar tu configuración: http://www.intodns.com. Aquí tienes más formas de comprobar tus DNS: https://www.digitalocean.com/community/tutorials/dns-tips-and-tricks.

    Tenemos dos opciones:

    1. Si queremos usar DigitalOcean como nameserver:
    En este caso tenemos que entrar a dondominio.com y añadir como nameservers de nuestro dominio ns1.digitalocean.com, ns2.digitalocean.com y ns3.digitalocean.com. Así que ahora DigitalOcean será el encargado de resolver las DNS. Así que ahora tenemos que acceder a nuestro panel de digitalocean.com y añadir el dominio y los registros correspondientes en la configuración DNS. Más info en: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean.

    2. Si queremos usar ISPConfig:
    Tenemos que entrar a dondominio.com y añadir nuestro servidor vps como nameserver. Sería algo como ns1.midominio.com y ns2.midominio.com. Si el mismo dominio del nameserver es el que estamos registrando (midominio.com) entonces tenemos que crear "glue records" para asociar ns1.midominio.com y ns2.midominio.com a nuestro servidor.
    Una vez introducidos los nameservers, el servidor DNS de nuestro VPS (BIND) será el encargado de resolver las DNS, y podemos gestionar la configuración desde ISPConfig. Más info en: http://www.howtoforge.com/how-to-run-your-own-name-server-with-ispconfig-3-and-fast-hosts.
  9. Puedes usar estos scripts para hacer copias de seguridad de directorios y bases de datos MySQL: http://sviudes.blogspot.com.es/2014/07/scripts-para-crear-y-subir-backups-de.html. Y luego puedes usar Cron para programar la ejecución automática de dichos scripts (https://help.ubuntu.com/community/CronHowto). Cron nos enviará un correo con el resultado del script. Si queremos que el correo nos llegue a nuestro e-mail en lugar de a /var/mail: http://blog.bobbyallen.me/2013/02/03/how-to-redirect-local-root-mail-to-an-external-email-address-on-linux/
  10. Si necesitas un servidor VPN, PPTPD es muy sencillo de configurar y consume pocos recursos: https://www.digitalocean.com/community/tutorials/how-to-setup-your-own-vpn-with-pptp. Una vez conectado a tu servidor por VPN, puedes, por ejemplo, conectar a tu servidor SQL usando MySQL Workbench. Antes debes haber asignado permisos de acceso para tu ip ejecutando estas SQL:
    CREATE USER 'root'@'10.0.0.0/255.255.255.0' IDENTIFIED BY 'TU_PASSWORD';
    GRANT ALL ON *.* TO 'root'@'10.0.0.0/255.255.255.0';
    
Cuando creas un nuevo sitio web con ISPConfig, verás que crea varias carpetas para dicho sitio. Aquí puedes encontrar una breve descripción de para qué deberías usarlas: http://www.lapsum.com/hosting/dudas/donde-debo-subir-mis-archivos

miércoles, 28 de mayo de 2014

Cambiador de voz con efectos para Android

¡Cambia tu voz y diviértete escuchando como suena tu voz modificada!.
Graba tu voz, aplícale los efectos que desees, y compártelos con tus amigos.
Además, ¡puedes enviar tu voz cambiada directamente desde Whatsapp!



Incluye los siguientes efectos:
• Helio
• Robot
• Robot grande
• Ardilla
• Borracho
• Hacia atrás
• Monstruo
• Nervioso
• Gigante
• Teléfono
• Cueva
• Catedral
• Darth Vader

Lo que puedes hacer con las voces modificadas:
• Compartir (whatsapp, e-mail, dropbox, etc...)
• Guardar a la memoria interna / tarjeta SD
• Establecer como tono de llamada
• Establecer como sonido de notificación

jueves, 10 de abril de 2014

Pep! Mp3 Downloader para Android

Nota importante: "Pep! MP3 Downloader" está disponible únicamente para Android y para Symbian. Algunos programadores sin escrúpulos se aprovechan del nombre de esta app para crear imitaciones y engañar a los usuarios. Si encuentras en otra web, "Pep! MP3" para cualquier otra plataforma (PC o Mac por ejemplo), has de saber que seguramente se tratará de un virus, o software malintencionado.

Sólo aquí encontrarás la última versión de "Pep! MP3 Downloader", libre de virus.
Al descargarlo de otra web te arriesgas a infectar tu móvil
de virus y/o perder datos confidenciales.




Actualmente no funciona. La nueva versión estará disponible en unas horas.
-----
Now is not working. New version will be available in a few hours.

Este post es la página oficial de Pep! Mp3 Downloader. Sólo aquí podrás encontrar siempre la última versión de este programa para tu Android.

Pep! Mp3 Downloader para Android te permite buscar y descargar música en formato mp3 directamente a tu móvil. Es la evolución de la aplicación original para Symbian que nació en 2009, pero con más funcionalidades. La aplicación está en constante desarrollo e irá recibiendo nuevas actualizaciones.

Características:

  • Completamente en castellano (también en inglés)
  • Interfaz Holo para una completa integración con Android 4
  • Dos temas disponibles: claro y oscuro
  • Funciona en versiones de Android igual o superior a la 2.2
  • Interfaz adaptable a la orientación de la pantalla
  • Presentación de resultados de búsqueda en modo "lista infinita"
  • Reproducción en streaming (preescucha de la canción)
  • Muestra la calidad (bitrate) y el tamaño de cada mp3
  • Descarga de varias canciones en segundo plano
  • Sistema de notificaciones para seguir el estado de cada descarga
  • Histórico de descargas para que tengas control total sobre tus canciones descargadas
  • Organización de música (descargada o no) mediante creación de listas
  • Posibilidad de establecer cualquier descarga como tono de llamada de forma sencilla
  • Posibilidad de compartir tus canciones descargadas vía bluetooth, e-mail, whatsapp, etc...
  • Sistema de aviso de nuevas actualizaciones de la aplicación
  • Posibilidad de cambiar el directorio donde se descargan las canciones (incluso la SD externa)
  • Integración con Shazam, SoundHound y TrackID (mediante la opción de "compartir")
  • Creación de listas de reproducción

Capturas de pantalla:





Requisitos:

  • Mínimo Android 2.2

martes, 8 de octubre de 2013

Touchpad en Archlinux con Gnome

Tras instalar archlinux, y gnome 3 en mi portátil, veo que el touchpad no funciona como me gustaría. La configuración de gnome ofrece pocas posibilidades, así que lo configuro editando el fichero de configuración de synaptics.

Pero antes hay que indicarle a Gnome Settings Daemon que no sobreescriba la configuración la configuración de synaptics. Para ello hay que ejecutar dconf-editor, y desmarcar la casilla "activo" en la opción /org/gnome/settings-daemon/plugin/mouse.

Si synaptics no está instalado en el sistema, hay que instalar el paquete xf86-input-synaptics. Ahora ya se puede editar el fichero /etc/X11/xorg.conf.d/50-synaptics.conf. Estas son las opciones que tengo añadidas para obtener la configuración que considero óptima:

        Option          "MinSpeed"              "0.5"
        Option          "MaxSpeed"              "1.0"
        Option          "AccelFactor"           "0.075"
        Option          "TapButton1"            "1"
        Option          "TapButton2"            "2"     # multitouch
        Option          "TapButton3"            "3"     # multitouch
        Option          "VertTwoFingerScroll"   "1"     # multitouch
        Option          "HorizTwoFingerScroll"  "0"     # multitouch
        Option          "MaxTapTime"            "70"
        Option          "SingleTapTimeout"      "0"

Bueno, casí óptima. Para obtener una respuesta inmediata a los "taps", antes usaba la opción "FastTaps" que ha sido eliminada. Ahora uso la opción "SingleTapTimeout" y consigo una respuesta inmediata, pero me es imposible arrastrar y soltar elementos usando el touchpad (tengo que usar el botón). Si encuentro una solución a esto, lo postearé aquí, y si tú la sabes, te agradecería que nos la cuentes dejando un comentario.

Puedes probar a alterar los valores y comprobar su funcionamiento usando sysclient. Por ejemplo: sysclient SingleTapTimeout=300