Native instrument Audio 8 DJ | micro cortes y ruidos raros

Esto va para todos aquellos que sufren problemas con la placa Audio 8 y Traktor.
El problema esta en los drivers que son bastante inestables, probé:

  • 3.0.1
  • 3.0.0
  • 2.9.8 beta (ya no están mas en el sitio de NI)
  • 2.0.15
Y para mi sorpresa los únicos que reproducen sin micro pausas en el audio son casi los mas viejos, la version 2.0.15; pero tampoco son perfectos. En mi caso se escuchan unos pequeños ruidos aleatorios, son ruidos bastante sutiles pero en fin ruidos que no debería hacer por el valor del equipamiento. Hoy encontré ademas algunos tips interesantes en el foro oficial de Native Instrument, que consisten en modificar la prioridad de los IRQ (interrupciones) para dar prioridad al IRQ10 que es la interrupción que maneja la parte de audio. También es conveniente desactivar interfaces Wireless, Ethernet, Bluethoot. Usar la Notebook con el mayor rendimiento posible de energía. (No usar dispositivos USB innecesarios). Etc.
A continuación, editar el registro para Windows 7 o Vista
1. Ir a Inicio -> Ejecutar -> Escribir "Regedit" (sin comillas) -> Press Enter

Esto abrirá el registro

2. Ahora en la izquierda del Regedit muévase hasta: 

HKEY_LOCAL_MACHINE\SYSTEM\Curr entControlSet\Control\Priority Control

Aquí debería ver 2 filas: "Predeterminado" y "Win32PrioritySeparation"

3. Click derecho en el area blanca de la derecha y click en

Nuevo -> Valor de DWORD (32-bit) |  (como podrás ver)

Ahora veras una nueva fila!

4. Click derecho en esta nueva fila y elegir renombrar.

Renombrar como "IRQ10Priority" sin comillas (escribir Exactamente como esta!)

Presionar <Enter>.

5. Ahora que lo has renombrado, hacer doble click en este y veras una área de texto con el valor 0 en su interior.  

Cambiar el 0 por 1, <dejar el resto igual, y click en ACEPTAR>

6. Cierre el registro y reinicie la computadora!
Luego en el administrador de dispositivos, hay que destildar una opcion en los puertos USB, haciendo doble click en cada dispositivo llamado “Controlador raíz USB”.
Nos movemos a la solapa “Administración de Energía” y finalmente destildar la opción ”Permitir que el equipo apague este dispositivo para ahorrar energía“.
Todavía sigo con esos pequeños ruidos. Espero que alguien tenga un tip para eliminarlos o bien salga un driver como la gente. :P . Eso fue todo amigos.
Que tengan una muy Feliz Navidad y prospero año nuevo!!!_____________________
Nicolas tech-nico.com/blog 

Crontab y PHP: Enviar logs, procesos, o backups via mail

Algo que surgió anoche en la clase de Linux (Crontab), fue casualmente “poder hacer un backup automático y que lo envie a nuestro mail”. Todavía no aprendimos Bash Scripting / Pyton / Perl o bien para el que esta mi situación, tenemos la alternativa de ejecutar un script PHP.

Inicialmente este script hacia un dump de la base de datos mysql y enviaba el archivo .sql via mail. Aca lo posteo con algunas modificaciones para que cada uno lo adapte a sus necesidades.
En este ejemplo vamos a imprimir el syslog (tail syslog) y enviarlo via mail como archivo adjunto.
La funcion en PHP para ejecutar un comando Linux es:

system(“tu comando”);            // Ej:  system(“ps -fea”);
*En este ejemplo listamos los procesos.

Sabiendo esto, el código del script PHP podría ser algo asi:

<?php
//// Script: Nicolas Daitsch 24 de noviembre de 2011
//// http://tech-nico.com/blog

////////////// CONFIGURACION //////////////////////////
$sendto = "Webmaster <tuemail@gmail.com>"; // DESTINO
$sendfrom = "Log Diario Servidor <logs@tuempresa.com>"; // ORIGEN
$sendsubject = "Log Diario mi servidor"; // ASUNTO
$bodyofemail = "Aca esta el log que genero el Crontab."; // MENSAJE
$COMANDO_LINUX = "tail /var/log/syslog"; // COMANDO
////////////////////////////////////////////////////////

    $backupfile = "syslog_". date("Y-m-d") . '.txt';
    system($COMANDO_LINUX > $backupfile);
    include('Mail.php');
    include('Mail/mime.php');

    $message = new Mail_mime();
    $text = "$bodyofemail";
    $message->setTXTBody($text);
    $message->AddAttachment($backupfile);
    $body = $message->get();
    $extraheaders = array("From"=>"$sendfrom", "Subject"=>"$sendsubject");
    $headers = $message->headers($extraheaders);
    $mail = Mail::factory("mail");
    $mail->send("$sendto", $headers, $body);

    //unlink($backupfile);
?>

Editamos la sección que dice //// CONFIGURACION y escribimos nuestros valores.
Luego instalamos el modulo PEAR para envio de mails con PHP:

#  apt-get  install  php-mail   php-mail-mime   php-mail-mimedecode

Editamos el Crontab:

# crontab -e

Agregamos esta linea al final, guardamos y salimos:

08 12 * * * /usr/bin/php -f /var/www/backup.php > /root/cronerrors.txt 2>&1

Explicamos lo que hace esta linea:

  1. (08 12 * * *) Todos los dias a las 12:08 PM
  2. (/usr/bin/php -f) Ruta del interprete PHP en Debian/Ubuntu. Flag “-f” Ejecutar un archivo PHP.
  3. (/var/www/log_script/log_send.php) Ruta del Script
  4. (> /root/cronerrors.txt 2>&1) Redirecciono la salida de error hacia un archivo de texto en /root. Esto también puede ser /home/usuario/errores.log
Descargamos los archivos necesarios para el funcionamiento. Y los ubicamos en la ruta /var/www/.
___________________

Configurar OpenVPN Roadwarrior en Debian 6 y Windows

Vamos a configurar OpenVPN del modo RoadWarrior con PKI (Public Key Infraestructure)
Un claro ejemplo para explicar el modo RoadWarrior: Son 1 o mas clientes que se conectan (autenticándose) de manera remota desde una PC hacia nuestro “linux OpenVPN Server”, y utilizando internet como medio de acceso para ingresar de manera segura a los recursos de la empresa, como serian, un servidor de aplicaciones, mail, recursos compartidos, etc.

Comenzamos con la instalacion:

1) Instalamos OpenVPN

# apt-get install openvpn

2)  comenzamos generando los certificados:

01. #  cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/
02. #  cd /etc/openvpn/easy-rsa/2.0/
03. #  . ./vars
04. #  ./clean-all
05. #  ./build-ca
06. #  ./build-key-server servidor
07. #  ./build-key cliente1
08. #  ./build-dh
09. #  cd keys
10. #  cp ca.crt ca.key servidor.crt servidor.key dh1024.pem  /etc/openvpn/

Explicación paso a paso:
01: Copiamos los scripts con el comando “cp”
02: Nos posicionamos sobre el directorio de scripts
03: Inicializamos variables “. ./vars”
04: blanqueamos el directorio de claves “./clean-all”
05: generamos certificado CA  ”./build-ca”

Aquí nos nos preguntara un montón de datos sobre la empresa que utiliza el certificado. Sugiero llenarlo con datos reales. NOTA: Debemos prestar mucha atención en el “Common Name”.  Si en Common Name completamos con “TECHNICO” Lo anotamos o recordamos para no repetirlo en los proximos pasos; ya que en las 3 veces que lo generaremos, necesitamos nombres que no se repitan.

06: Creamos las credenciales para el servidor. “ ./build-key-server servidor”.

Completamos con los datos anteriores, sin repetir “common name” (como mencionamos anteriormente).

07: Creamos las credenciales para el cliente. “ ./build-key cliente1″. Esto va a generar “cliente1.key” y “cliente1.crt”
08: Creamos los parámetros con el comando”./build-dh”.  *dh: Diffie Hellman (Protocolo Criptografico).
09: nos posicionamos en el directorio donde se generaron los certificados “cd keys”.
10: copiamos los certificados a /etc/openvpn/

3) Continuamos con la configuración:
Instalamos el editor VI y luego entramos a editar server.conf

# apt-get install vim
# vi /etc/openvpn/server.conf

USO DEL VI Editor
a) Para editar presionan la letra “i” o la tecla <insert>. Luego para finalizar de editar <esc>
b) para guardar y salir del vi: escriben ‘ : ‘ (dos puntos); aparecera un path para escribir.
c) Escriben ‘wq’ y presionan <Enter> (w de write y q de quit). Con esto ya deberian estar nuevamente en el path de linux.
Archivo server.conf:

port 1194
proto udp
dev tun
persist-tun
ca ca.crt
cert servidor.crt
key servidor.key
dh dh1024.pem

#Direcciones que se asignaran a los clientes, el server es .1
server 10.1.1.0 255.255.255.0

ifconfig-pool-persist ipp.txt

#Routeo para que los clientes alcancen la red local del server (1.0/24)
push .route 192.168.1.0 255.255.255.0.

#Para que los clientes se visualicen entre ellos
#Debe ir junto con la opción routeback en el shorewall
client-to-client

keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 4

4) Configuración de cliente OpenVPN en Windows XP, Vista o Seven.

a) Descargar: openvpn-2.0.9-gui-1.0.3-install.exe y luego instalarlo.
b) Copiar a la carpeta “C:\Program Files\OpenVPN\config” con WinSCP o desde un Sftp los archivos:

  • /etc/openvpn/easy-rsa/2.0/keys/ca.crt
  • /etc/openvpn/easy-rsa/2.0/keys/cliente1.crt
  • /etc/openvpn/easy-rsa/2.0/keys/cliente1.key

c) Creamos un archivo TXT y lo guardamos como cliente1.ovpn en ”C:\Program Files\OpenVPN\config”. Luego le pegamos lo siguiente:

tls-client
client
dev tun
proto udp
remote 192.168.1.135   # IP o dominio del servidor OpenVPN
float #debido a que la IP de arriba es dinamica
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"  #revisar las comillas luego de copy/paste
cert "C:\\Program Files\\OpenVPN\\config\\cliente1.crt"
key "C:\\Program Files\\OpenVPN\\config\\cliente1.key"
comp-lzo
verb 4

5) Reiniciamos openvpn en Debian

#  /etc/init.d/openvpn restart

Stopping virtual private network daemon: server.
Starting virtual private network daemon: server.

6) Iniciamos OpenVpn en windows. Ver Imagen

Click con boton derecho en el iconito señalado, y luego click en Connect. Si no nos arroja ningún error significa que todo es un éxito.

______________
Nicolas Tech-Nico.com

Ejercicios de expresiones regulares

Dado el siguiente archivo:  ”expr_reg_1.txt”

a
aba
aabb
aabbb
aaabbb
aa
baa
abab
ababa
bababa
ab
bbb
baaa
abbba
bbaabb
ba
aaaa
baba
bbaab
bbabaa
aaa
aaba
bbbb
bbbaa
bbbabb

1.no tenga más de tres “a” o tres “b” seguidas
root@debian:~# cat expr_reg_1.txt | grep -E ‘^[^aaaa]|[^bbbb]$^[^bbbb]|[^aaaa]$’
a   <  falta (por error no lo trae)
ab
ba
baa
bbb
aabb
abab
baaa
baba
bbbb
aabbb
bbaab
bbbaa
aaabbb
bababa
bbaabb
bbabaa
bbbabb

2.vayan alternando las “a” y las “b” sin repetirse
root@debian:~# cat expr_reg_1.txt | grep -E ‘^(ab)+$|^(ba)+$’
ab
ba
abab
baba
bababa

3.sólo tenga parejas de “a” y de “b”
root@debian:~# cat expr_reg_1.txt | grep -E ‘[a]{2}[b]{2}’
aabb
aabbb
aaabbb  < este se filtro :p
bbaabb

4.tengan sólo “a” o sólo “b”
root@debian:~# cat expr_reg_1.txt | grep -E ‘^[a]+$|^[b]+$\b’
a
aa
aaa
bbb
aaaa
bbbb

5.haya unas cuantas “a” y luego unas cuantas “b” o al revés
root@debian:~# cat expr_reg_1.txt | grep -E ‘^[a]{2,}[b]{2,}$|^[b]{2,}[a]{2,}$’
aabb
aabbb
bbbaa
aaabbb

6.contengan la cadena “aba” o la cadena “bab”
root@debian:~# cat expr_reg_1.txt | grep -E ‘(aba|bab)’
aba
aaba
abab
baba
ababa
bababa
bbabaa
bbbabb

7.contengan la cadena “ba” dos veces
root@debian:~# cat expr_reg_1.txt | grep -E ‘(ba){2}’
baba
ababa
bababa  < este se filtro :p
bbabaa

________________
Nicolas tech-nico.com

Resolver “Zone expired | unexpected rcode (SERVFAIL)” en Bind9

Hoy me ocurrió que luego de un mal apagado del servidor, había dejado de resolver mis zonas DNS. Mirando el SYSLOG note el error: “zone tech-nico.com.ar/IN: expired“.

Oct 16 16:12:47 www named[11730]: zone tech-nico.com.ar/IN: expired
Oct 16 16:12:47 www named[11730]: zone 114.58.200.in-addr.arpa/IN: expired
Oct 16 16:12:48 www named[11730]: zone tech-nico.com.ar/IN: refresh: unexpected rcode (SERVFAIL) from master 200.58.114.78#53 (source 0.0.0.0#0)
Oct 16 16:12:48 www named[11730]: zone 114.58.200.in-addr.arpa/IN: refresh: unexpected rcode (SERVFAIL) from master 200.58.114.78#53 (source 0.0.0.0#0)
Oct 16 16:13:36 www named[11730]: zone 114.58.200.in-addr.arpa/IN: refresh: unexpected rcode (SERVFAIL) from master 200.58.114.78#53 (source 0.0.0.0#0)
Oct 16 16:13:38 www named[11730]: zone tech-nico.com.ar/IN: refresh: unexpected rcode (SERVFAIL) from master 200.58.114.78#53 (source 0.0.0.0#0)

Lo resolvi cambiando el serial code en todas las zonas; Ejemplo: /etc/bind/tech-nico.com.ar

$TTL 3600
tech-nico.com.ar.     IN      SOA     dns1.tech-nico.com.ar. root.tech-nico.com.ar.       (
                        2011101610  ;  serial number

Donde “2011101610″ es formato YYYYMMDDXX. YYYY= año MM=mes DD=dia y XX=Numero de revisión.

_____________________
tech-nico.com 

Servidor de archivos en Debian 6 (Samba)

Algo que siempre nos va a venir al pelo es la configuración del Samba para compartir archivos en un Grupo de Trabajo. Lo publicamos como ayuda de memoria.

Tarea: compartir 2 carpetas en el grupo TECHNICO. Cada carpeta pertenece a un usuario distinto.

1) Vamos a instalar los paquetes del Samba:

# apt-get install samba samba-common smbclient samba-doc smbfs

2) hacemos un backup del archivo de configuracion.

# cp  /etc/samba/smb.conf   /etc/samba/smb.conf.original

3) Instalamos el editor VI y luego entramos a editar smb.conf

#  apt-get install vim
# vi /etc/samba/smb.conf

 #========= Global Settings ==============
[global]
workgroup = TECHNICO 

##### Authentication ######
## descomentar la siguiente linea.
##(Es para poder loguearnos con las cuentas de linux)
security = user 

 #### al final del archivo agregamos ###

[cattaneo]
 comment = bienvenido
 path = /home/samba/cattaneo
 browseable = yes
 read only = no
 valid users = cattaneo

[deepdish]
 comment = hola
 path = /home/samba/deepdish
 browseable = yes
 read only = no
 valid users = deepdish 

USO DEL VI Editor
a) Para editar presionan la letra “i” o la tecla <insert>. Luego para finalizar de editar <esc>
b) para guardar y salir del vi:  escriben ‘ : ‘  (dos puntos); aparecera un path para escribir.
c) Escriben ‘wq’  y presionan <Enter> (w de write y q de quit). Con esto ya deberian estar nuevamente en el path de linux.

4) Creamos usuarios de sistema (sin shell ni directorio personal) y de samba. (va a pedir las contraseñas usar la misma en adduser que en smbpasswd).

# adduser –shell /bin/false –no-create-home cattaneo
# adduser –shell /bin/false –no-create-home deepdish
# smbpasswd -a cattaneo
# smbpasswd -a deepdish

5) Creamos carpetas y permisos (en este caso le doy permisos totales 777)

# cd /home
# mkdir samba
# chmod 777 samba
# cd samba
# mkdir cattaneo
# mkdir deepdish
# chmod 777 cattaneo/   &&  chmod 777 deepdish/
# chown cattaneo:cattaneo cattaneo/
# chown deepdish:deepdish deepdish/

6) reiniciamos el servicio Samba con:

# /etc/init.d/samba restart

Fuente: Curso de Linux Clase 14 Parte II

_______________
tech-nico.com/blog
nicolas daitsch