miércoles, 27 de diciembre de 2017

Ejemplo de reglas udev

Estas son las reglas que uso con mis dispositivos:

# USB-RS485
SUBSYSTEM=="tty",ENV{ID_REVISION}=="0254",  ATTRS{idProduct}=="7523",ATTRS{idVendor}=="1a86",SYMLINK+="tty_RS485"

# USB-FTDI rs232 (BLACK)
SUBSYSTEM=="tty",ENV{ID_REVISION}=="0262",  ATTRS{idProduct}=="7523",ATTRS{idVendor}=="1a86",  SYMLINK+="tty_FTDI_BLACK"

# USB-FTDI rs232 (RED)
SUBSYSTEM=="tty", ENV{ID_REVISION}=="0600", ATTRS{serial}=="00000000",  ATTRS{idProduct}=="6001",ATTRS{idVendor}=="0403", SYMLINK+="tty_FTDI_RED"

# Arduino UNO (Black-SaintSmart)
SUBSYSTEM=="tty", ATTRS{serial}=="75439333535351710251",  ATTRS{idProduct}=="0043",ATTRS{idVendor}=="2341", SYMLINK+="tty_UNO"

# Arduino MEGA2560 R3
SUBSYSTEM=="tty", ATTRS{serial}=="85334343738351508160",  ATTRS{idProduct}=="0042",ATTRS{idVendor}=="2341", SYMLINK+="tty_MEGA"

lunes, 11 de diciembre de 2017

Crear instalador para ElectronJS

En este vídeo se puede ver todos los pasos a seguir parar realizar un instalador de una aplicación realizada en el framework ElectronJS.

https://www.youtube.com/watch?v=IuYFDwPKE3c

Adicionalmente está guía, que corresponde a los pasos del vídeo anteriormente linkeado.

https://ourcodeworld.com/articles/read/365/how-to-create-a-windows-installer-for-an-application-built-with-electron-framework

sábado, 9 de diciembre de 2017

miércoles, 6 de diciembre de 2017

Microsoft lifecam hd-3000 in ubuntu 17.04

Para que funcione la cámara Microsoft lifecam hd-3000 en ubuntu 17.04 debes instalar lo siguiente:

apt install uvccapture uvcdynctrl

Luego desconectas y conectas la cámara y listo:


jueves, 30 de noviembre de 2017

viernes, 24 de noviembre de 2017

AT mode HC-05 / HC-06 using FTDI USB

Conexiones:
HC-05 | FTDI
RX    -> TX
TX    -> RX
GND -> GND
5V     -> VCC
EN / KEY -> 3.3V Jumper PIN


Pasos:
1- Presionar el botón con VCC desconectado
2- Conectar el cable VCC
3- Abrir algún monitor serial

jueves, 9 de noviembre de 2017

Delete all keys from namespace Redis

node_keys = RedisClient.db.keys('node:{}:*'.format(node_id))
for key_ in node_keys:
    RedisClient.db.delete(key_)

lunes, 16 de octubre de 2017

Install PyQt4 Centos 7

yum install qt

# Install sip
Download: http://www.riverbankcomputing.com/software/sip/download
cd sip-4.19.3
python3 configure.py
make -j12
make install
cd ..

# Download PyQt4: http://www.riverbankcomputing.com/software/pyqt/download
cd PyQt4_gpl_x11-4.12.1
python3 configure-ng.py --qmake /usr/lib64/qt4/bin/qmake
make -j12
make install

Fix: gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory

Non-zero exit code (1):
gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
error: command 'gcc' failed with exit status 1



FIX:

dnf install redhat-rpm-config

jueves, 12 de octubre de 2017

Install Python from sources (Fedora 26)

Primero descarga el XS tarball de aqui:

Luego intentando instalar python desde los sources me dió este error:
"Solve: zipimport.ZipImportError: can't decompress data; zlib not available"

Para solucionarlo:



Luego haces:
dnf install zlib-devel python-gzipstream.noarch openssl-devel
./configure
make -j12
make install


Probado en Fedora 26


Ref:
https://askubuntu.com/questions/661039/trouble-with-zip-support-in-custom-python-build-zipimport-zipimporterror-cant

sábado, 7 de octubre de 2017

Mount raspbian in SD

Descargar la img
https://www.raspberrypi.org/downloads/raspbian/

Luego ejecutas (cambiar sdd por el disco):

sudo dd bs=4M if=.
/2017-09-07-raspbian-stretch.img of=/dev/sdd conv=fsync status=progress


jueves, 28 de septiembre de 2017

domingo, 24 de septiembre de 2017

Notas: instalar portal cautivo con Facebook Login en una raspberry

Al parecer RADIUSdesk es el indicado

Al final de la página escribe algo explicando:
https://sourceforge.net/p/radiusdesk/discussion/help/thread/760e9829/

Tutorial de RADIUSdesk:
https://archive.is/g6GgC

Configurar coovachilli
http://www.radiusdesk.com/getting_started/install_ubuntu_coovachilli

Personalizar las páginas
http://www.radiusdesk.com/docuwiki/getting_started/install_ubuntu_dynamic_login

Instalar SO de una Raspberry a partir de una imagen .img

Debes usar el comando dd.

Por ejemplo si la sd está en sdd: y la imagen se llama RP.img:

sudo dd bs=4M if=RP.img of=/dev/sdd conv=fsync

miércoles, 20 de septiembre de 2017

Instalar Spotipo en Raspberry Pi 3

Procedimiento para instalar Spotipo en una Raspberry Pi 3 model B.

Datos:
Raspberry PI 3 B:
Raspberry PI IP: 192.168.3.242
SO: Raspbian GNU/Linux 8. Kernel 4.9.50-v7+
Spotipo versión: 2.0.6
Unifi:  5.5.20-9565

Install Unifi (Comentar la parte que instala snappy)
https://gist.github.com/bwbaugh/de575219fecf48e859a48eebe16539c6

Abre un navegador:
https://192.168.3.242:8443/manage/wizard/
Debes ver algo así:


Install dependencies

aptitude install libxslt1-dev mysql-server nginx python-dev libmysqlclient-dev libffi-dev liblcms2-dev libwebp-dev libffi-dev libxml2-dev supervisor

systemctl enable supervisor

Download spotipo (spotipo_2.0.6_armhf.deb)
https://www.spotipo.com/download/

Para evitar que falle la instalación debes ejecutar:
systemctl stop supervisor

Install spotipo
https://spotipo.com/help/install-in-ubuntu/


domingo, 17 de septiembre de 2017

Fix Job for supervisor.service failed when install spotipo

Instalando spotipo en una raspberry pi con raspbian jessi me lanzó el siguiente error:


-----------Running celery_get_notification-----------------------
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): spotipo.com
Starting new HTTP connection (1): spotipo.com
DEBUG:requests.packages.urllib3.connectionpool:"GET /notifications/7fbe9ef3-b0dc-4df0-9e6f-29497c05442c HTTP/1.1" 301 None
"GET /notifications/7fbe9ef3-b0dc-4df0-9e6f-29497c05442c HTTP/1.1" 301 None
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): spotipo.com
Starting new HTTPS connection (1): spotipo.com
DEBUG:requests.packages.urllib3.connectionpool:"GET /notifications/7fbe9ef3-b0dc-4df0-9e6f-29497c05442c HTTP/1.1" 200 26
"GET /notifications/7fbe9ef3-b0dc-4df0-9e6f-29497c05442c HTTP/1.1" 200 26
Job for supervisor.service failed. See 'systemctl status supervisor.service' and 'journalctl -xn' for details.
dpkg: error processing package spotipo (--install):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 spotipo


FIX
El error ocurre porque el serivicio supervisor estaba levantado al arrancar la instalación.
Solo debes ejecutar lo siguiente antes de instalar
systemctl stop supervisor

lunes, 4 de septiembre de 2017

check if server port is open

Esta funcion de bash permite saber si un puerto está abierto en un server

is_active_port() { curl "$1" > /dev/null && echo Connected || echo Fail; }

Luego

is_active_port 192.168.3.2:5982


miércoles, 23 de agosto de 2017

Solución Problema Asterisk Now Firewall

Después de instalar y configurar Asterisk Now, es posible que te encuentres con un problema de Rechazo de Petición, esto es porque el Firewall no te permite conectarte correctamente.

Para resolver esto, ejecuta en modo root:

service iptables stop

domingo, 13 de agosto de 2017

Solucion "invalid dimen" Android Studio 3


FIX:

Abrir el fichero /etc/profile
nano /etc/profile

Añadir lo siguiente
export LC_NUMERIC="en_US.UTF-8"


Reiniciar

viernes, 11 de agosto de 2017

Set Static IP raspberry PI

edita
 sudo nano /etc/dhcpcd.conf

y ahí configuras. Ejemplo:

interface eth0

static ip_address=192.168.3.242/24
static routers=192.168.3.10
static domain_name_servers=8.8.8.8

interface wlan0

static ip_address=192.168.1.142/24
static routers=192.168.1.2
static domain_name_servers=192.168.1.2

Luego guardas y renicias

domingo, 6 de agosto de 2017

Python Scaffolding

Primero instala pyscaffold, que es el programa que permite hacer Scaffolding.
pip install --upgrade pyscaffold

Comando corto:
putup NOMBRE -l mit -d "DESCRIPCION" --with-tox --with-travis

Para más info:
http://pyscaffold.readthedocs.io/en/v2.5.7/examples.html

domingo, 30 de julio de 2017

Fixear "Method d in android.util.Log not mocked"

Testeando una app me apareció el siguiente error:

java.lang.RuntimeException: Method d in android.util.Log not mocked. See http://g.co/androidstudio/not-mocked for details.



Para solucionarlo se debe agregar lo siguiente al fichero gradle  
android{
.....
testOptions {
        unitTests.returnDefaultValues = true
}
}

martes, 25 de julio de 2017

lunes, 24 de julio de 2017

Purge database in couchdb

Resumen:
Primero crea el filtro en la db origen
{
   "_id": "_design/filters",
   "filters": {
       "deletedfilter": "function(doc, req) { return !doc._deleted; };"
   }
}
Luego crea un nuevo doc en la bd _replicator:

{
   "_id": "replicateCleanup",
   "source": "original_database",
   "target": "http://admin:password@localhost:5984/original_database_replica",
   "create_target": true,
   "filter": "filters/deletedfilter",
   "owner": "admin",
   "continuous": true
}

Para más info:
https://eclipsesource.com/blogs/2015/04/20/how-to-finally-delete-documents-in-couchdb/

viernes, 21 de julio de 2017

Conexión remota en Redis


Si intentas conectarte con un servidor redis pero este rechaza la conexión es muy probable que debas modificar el fichero /etc/redis.conf de la siguiente forma para permitir conexiones remotas:


Luego reinicias el servicio de redis:

service redis restart

Si no consigues el fichero redis.conf puedes usar locate. Ejemplo

locate redis.conf

En algunas distros se encuenta en: /etc/redis/redis.conf



Git autocomplete in Centos 7

Debes agregar lo siguiente al fichero .bashrc que está en el home

for file in /etc/bash_completion.d/* ; do
    source "$file"
done

Me quedó así:



Luego reinicias y listo

miércoles, 19 de julio de 2017

Jenkins Docker con Persistencia

Jenkins es una herramienta muy potente para hacer integración continua, pero tiene un problema, esta basado en el lenguaje Java, y instalarlo implica instalar todas sus dependencias. Por esa razón, quizás la forma más fácil de implementarlo sea utilizando la tecnología de contenedores que nos provee Docker.

Para hacer esto, tienes que tener previamente instalado Docker (https://ubunlog.com/instalar-usar-docker-ubuntu).

Los comandos a correr son: (preferiblemente en modo root)

docker pull jenkins
mkdir /root/jenkins
chmod 777 /root/jenkins
docker run -p 8080:8080 -v /root/jenkins:/var/jenkins_home jenkins

Nota: La carpeta es para que se guarde la configuración de la instalación, ya que sin esto cada vez que se inicie la imagen de Docker, van a tener que configurar todo de nuevo.

Si quieres además configurar la zona horaria, ejecútalo de la siguiente manera:
docker run -p 8080:8080 -v /root/jenkins:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=America/Santiago jenkins

sábado, 24 de junio de 2017

Instalar Redis Desktop Manager en Centos 7

Primero necesitas descargar el SDK de Qt:

http://download.qt.io/official_releases/qt/5.8/5.8.0/qt-opensource-linux-x64-android-5.8.0.run
Debes instalarlo en /opt/Qt5.8.0
Luego debes pegar las librerías del sdk a /lib64. (Esto puede ser peligroso)

sudo cp -f /opt/Qt5.8.0/5.8/gcc_64/lib/* /lib64/

Clonas el proyecto en su versión 0.9 (Las anteriores dan fallas)

git clone --recursive https://github.com/uglide/RedisDesktopManager.git -b 0.9 rdm2 && cd ./rdm2

cd src/ ./configure

Si intentas ejecutar "qmake-qt5" te dará el siguiente error:

Project ERROR: Unknown module(s) in QT: charts


Por lo que debes ejecutar el qmake del sdk de Qt que instalaste:
/opt/Qt5.8.0/5.8/gcc_64/bin/qmake

Luego ejecutas "make" si quieres que compile más rápido pásale el parámetro -j ajustado
a los cores que tenga tu procesador. Ej el mio tiene 12 entonces coloco -j12
make -j12

Para finalizar: cd /usr/share/redis-desktop-manager/bin sudo mv qt.conf qt.backup

para correrlo ejecuta:
/usr/share/redis-desktop-manager/bin/rdm

Capture de mi maquina: Centos 7.3 


git checkout remote branch

Sin mucha palabrería. Si quieres hacer checkout

                         [Branch local]   [Branch remoto]
git checkout  -b sprint_17          origin/spring_17

viernes, 16 de junio de 2017

comandos utiles udev

udevadm info --query=all --query=all --name  /dev/ttyS0

# Reinicia el servicio udev para los dispositivos tty
sudo udevadm control --reload-rules && sudo udevadm trigger --subsystem-match=tty

jueves, 15 de junio de 2017

Mango Query CouchDB

https://github.com/cloudant/mango
https://str3.me/post/couchdb/mango/databases/2016/12/30/couchdb-mango/

miércoles, 31 de mayo de 2017

Serial Centos

Una alternativa a la porqueria de minicom es miniterm.py
Primero debes instalar pyserial:
yum install pyserial

Luego puedes ejecutar:





Otra alternativa es uucp
yum install uucp
https://www.jann.cc/2013/02/10/the_cu_command.html

lunes, 24 de abril de 2017

Activar IDES de Jetbrains 2018.1

https://github.com/rodrigogs/ilsap


Si vives en africa subsahariana o venezuela y no tienes dinero para pagar licencias, puedes activar los ides de jetbrains (Pycharm, WebStorm, etc) puedes seguir los siguientes pasos:

Hay dos métodos. Uno con un .jar que sea javaagent y otro con un servidor de claves.

Método 1:

Descargate el siguiente JAR:
https://drive.google.com/open?id=1ydcKRMv1_eEs-dyJceWQMz32yE140q_R

y lo pegas en el directorio bin de tu ide (Ej pycharm-2017.1/bin)


Luego editas el fichero "pycharm64.vmoptions" y le agregas la siguiente linea:

-javaagent:RUTADEINSTALACIONDELIDE/bin/JetbrainsCrack-2.7-release-str.jar

en mi caso

-javaagent:/opt/pycharm/pycharm-2017.1/bin/JetbrainsCrack-2.7-release-str.jar

Luego introduces cualquier serial









Y listo, queda activado hasta el 2099






Método 2:

Se trata de colocar esta dirección en el 'License server  address':
http://www.aku.vn/idea

Y podemos ver que se activa pero no indica fecha de terminación de la licencia




sábado, 15 de abril de 2017

Solve '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

For this problem:
python3 -m venv djangular
Error: Command '['/home/hector/Desarrollo/Test/django/djangular/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1


Solution

https://hnakamur.github.io/blog/2017/02/26/workaround-for-epel-python3.4-venv-on-centos7/

sábado, 8 de abril de 2017

Get CPU/GPU Temp in linux

Create and ejecute this bash

#!/bin/bash
cpu=$(</sys/class/thermal/thermal_zone0/temp)
echo "$(date) @ $(hostname)"
echo "-------------------------------------------"
echo "GPU => $(/opt/vc/bin/vcgencmd measure_temp)"
echo "CPU => $((cpu/1000))'C"

viernes, 17 de marzo de 2017

miércoles, 15 de marzo de 2017

¿Como aprender CouchDB rápidamente?

Aquí adjunto el mejor material que he conseguí cuando estaba aprendiendo CouchDB. Te recomiendo que sigas el orden indicado

Doc oficial:
http://guide.couchdb.org/editions/1/es/

Charla. Te ayudará a entrar en el entorno y ver de que se trata
https://www.youtube.com/watch?v=XeceLYuQED8&t=1298s

Te enseña a instalarlo y haces unas pequeñas practicas
https://www.youtube.com/watch?v=_F-bt79QBSc&t=75s

Curso En Udemy 100% Gratuito (Si sigues el link)
https://www.udemy.com/learn-nosql-database-design-with-couchdb/?couponCode=BBHF50FREE


Curso en Pluralsight
 (Gratis si sigues estos pasos para obtener tu cuenta: https://absolute-sharepoint.com/2015/12/free-pluralsight-6-month-subscription.html)
https://www.pluralsight.com/courses/practical-couchdb-developers

Libro: (La guia definitiva de CouchDB)
https://mega.nz/#!44dGBaoY!8r5VDXmuKGmrQE_car-qdJRzIffy7XLc-ATML6HfeQs

Libro: OReilly Writing And Querying MapReduce Views In CouchDB
https://mega.nz/#!R5swmCYS!ZET_kyUw12ZclKV18_NmoZubE_n_g-g9xnsJwJJxeh4


lunes, 6 de marzo de 2017

Get gateway linux

Se busca con route -n

Mas info aqui:
https://www.cyberciti.biz/faq/how-to-find-gateway-ip-address/

Sudo sin pedir password en Centos - Fedora - Red Hat

Agregas al usuario al grupo wheel 
# gpasswd -a john wheel
Luego editas el fichero sudoers
nano /etc/sudoers
y comentas la linea que dice 
%wheel ALL=(ALL) ALL

y agregas esta

%wheel  ALL=(ALL) NOPASSWD: ALL



Y listo. Cuando llames a sudo no te pedirá password 

miércoles, 1 de marzo de 2017

Clone DB in CouchDB

A veces la replicación/clonación por Futon falla y hay que hacerlo via consola:
Ej:

curl -H 'Content-Type: application/json' -X POST http://admin:pass@192.168.1.44:5984/_replicate -d ' {"source": "http://admin:pass@192.168.1.44:5984/base_de_datos", "target": "http://admin:pass@192.168.1.44:5984/base_de_datos_clon", "create_target": true, "continuous": false} '

lunes, 27 de febrero de 2017

Ejemplo rapido de cron en linux

Debes editar el fichero /etc/crontab y añadir los tabs

Ejemplo:
20 8 27 2 * hector echo "esto es una prueba" | tee /tmp/prueba

Indica que quiere correr todos los años el comando "echo "esto es una prueba" | tee /tmp/prueba" con el usuario hector el 27 de febrero a las 8 y 20 AM


miércoles, 22 de febrero de 2017

Test WAVECOM M1306B en Linux




Primero debes agregar al usuario dialout para que tenga permisos para usar el puerto serial.

Para probar se utilizó Moserial con las siguientes configuraciones:


Luego se conectó y se envió el comando "AT" y se recibió respuesta "OK". Lo que indica que está bien conectado:


Probando el envío de mensajes:

Se prueba con el comando
at+cmgs="NUMERO DE TELEFONO"
Ej:
at+cmgs="041485548412"

Luego de enviarlo te saldrá un prompt y debes enviar el siguiente carácter hexadecimal para simular que presionaste CTRL+Z
                   ASCII          OCT         HEX
Control-Z =    26      = '\032' = '\x1A'

Para mas detalles de configuración:
http://www.puntoflotante.net/CONFIGURACION%20INICIAL%20Y%20PRUEBAS%20DE%20MODEM%20WAVECOM%20M1306B.pdf

lunes, 20 de febrero de 2017

Borrar conexión en el Network Manager

Jugando con el Network Manager buscando la forma de crear un NIC teaming cree por error una interfaz llamada "bridge0" la cual, aunque la eliminé por el gui seguia apareciendo con el comando ifconfig.


Para eliminarla basta con escribir:

nmcli connection delete bridge0

sábado, 18 de febrero de 2017

El mejor editor de Bash para linux

La mejor forma de escribir código bash es usando el plugin BashSupport para los ides de IntelliJ.

En mi caso lo instalé en PyCharm y va excelente:

Entras en Settings -> Plugins -> Browse Repositories y lo buscas:



Una vez instalado renicias PyCharm y ya te debería salir la opción de crear un nuevo bash file:



Seteas el intérprete y listo

sábado, 11 de febrero de 2017

Corregir: file_exists(): open_basedir restriction in effect. File(/var/www/html/

Cuando desplegué un api que estoy desarrollando a mi hosting me saltó el siguiente error:


ErrorException
 in Filesystem.php line 23:
file_exists(): open_basedir restriction in effect. File(/var/www/html/API/storage/framework/cache/2c/60) is not within the allowed path(s): (/home/u776079664:/tmp:/var/tmp:/opt/php-5.6/pear:/usr/local/bin:/etc/pki/tls/certs)



En esta imag se ve mejor


Esta mierda ocurre porque se subió el fichero de bootstrap/cache/config.php que se crea cuando se ejecuta el comando

php artisan config:make

Para solucionar el error basta con borrar este fichero en el servidor o lo que es lo mismo, ejecutar :

php artisan config:clear

jueves, 9 de febrero de 2017

Unban ip baneado por ssh

Cuando se excede el número de intentos fallidos al intentar acceso a un terminal ssh el servidor bloquea el acceso a la maquina.
Para solventarlo se hace lo siguiente:
fail2ban-client set sshd unbanip IP_A_UNBANEAR

ej:

fail2ban-client set sshd unbanip 192.168.1.123

martes, 7 de febrero de 2017

Enviar correos desde Laravel usando cuenta Gmail

Intentando enviar un correo desde láravel usando mi cuenta gmail encontré que cuando se intentaba enviar me salía el siguiente error: 

Swift_TransportException in AbstractSmtpTransport.php line 383:
Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials p62sm3200250ywb.2 - gsmtp
"


Esto ocurre porque gmail detecta el server como una aplicación no segura. 
Para solucionarlo debes ir a la cuenta de gmail e entrar en: 



Ya con esto debería funcionar.
Mis valores del .env me quedaron así:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=micorreo@gmail.com
MAIL_PASSWORD=claveloca
MAIL_ENCRYPTION=tls

Si todavía con eso no te funciona intenta entrar en el siguiente link y darle aceptar:


ABA CANTV se pone lento con aumento de plan (Explicación del porque)

Es probable que al subir el plan de internet tu velocidad de conexión haya bajado. En mi caso me ocurrió que tenía 4 Megas y me funcionaba bien. Luego coloqué el de 10 Megas y la velocidad de descarga bajó drásticamente a 1 Mega

Esto suena contradictorio pero tiene explicación:

Explicación corta:

La linea que tienes no "soporta" el plan que colocaste porque tienes mucha atenuación o ruido, por lo que el modem reduce la velocidad de transferencia a una que permita la comunicación con menos tasa de errores.

OJO: También es posible que tu baja de velocidad sea también por saturación en el servicio de CANTV

Explicación larga:

Hay dos variables que definen la velocidad máxima que se puede transmitir por una línea antes que se pierda la sincronización. Estas son el ruido y la atenuación.
Estas variables las puedes ver en el panel de tu modem:

En este caso el modem indica un SNR Margin de 13.3 dB y una atenuación de 32 dB.


Ruido:

Cada linea telefónica tiene un ruido  asociado. Este es llamado SNR.
Cada velocidad de conexión tiene un ruido máximo al que se puede transmitir llamado SNR to sync.
La diferencia entre el SNR y SNR to sync es el SNR Margin, que se puede interpretar como la holgura que se tiene para transmitir a esa velocidad con ese ruido SNR.
El valor del SNR to sync viene seteado en el modem y depende de cada fabricante
Ejemplo
SNR = 44dB
SNR to sync at 8Mb = 35dB       <--- Plan CANTV 8 Megas
SNR MARGIN = 44-35 = 9dB <---- Mientras mayor sea el número mejor es la conexión

¿Como sé si mi plan es adecuado según el ruido que tengo?
Por lo anteriormente expuesto, el SNR Margin aumenta cuando cambiamos de plan.

Puedes guiarte con los siguientes valores para saber si tienes un SNR Margin adecuado:

6dB O menos deriva en una muy mala navegación con muchos errores.
7dB-10dB Conexión con mala calidad
11dB-20dB Es un buen valor. Con pocos problemas sincronización
20dB-28dB  Es excelente. 
29dB o más: Es un sueño (El ruido ideal)

Atenuación:

Es la reducción de la "fuerza" de la señal en la linea. Está relacionado con la distancia al nodo, pero también hay otros factores como la calidad del cable, la frecuencia de transmisión, los empalmes, etc.

Generalmente se asume que hay una perdida de 13.81 db por cada km que separe el cliente del nodo (Por supuesto en la vida real nunca es exacto y depende del tipo de infraestructura de transmisión).

20dB o menos es ideal
20dB-30dB es excelente
30dB-40dB es muy bueno
40dB-50dB es aceptable
50dB-60dB es una conexión pobre y muy posiblemente tengas problemas
60dB o menos es muy mala atenuación. Tendrás problemas importantes en la navegación


Con un ruido ideal, estas son las siguientes velocidades de navegación máximas que se pueden lograr. Note la relación entre distancia y atenuación:
1km = 24Mbit
1.0km = 13.81dB = 23Mbit
1.5km = 20.7dB = 21Mbit
2.0km = 27.6dB = 18Mbit
2.5km = 34.5dB = 13Mbit
3.0km = 41.4dB = 8Mbit
3.5km = 48.3dB = 6Mbit
4.0km = 56dB = 4Mbit
4.5km = 62.1dB = 3Mbit
5.0km = 69dB = 2Mbit

En la siguiente table lo podemos ver mejor




Mi experiencia:
Mi ejemplo: Con el plan de 8 Megas en las mañanas el SNR Margin sube a 22.3 dB y puedo navegar con total normalidad a 8 Megas. En la tarde el SNR Margin baja y se sitúa en 13 por lo que la velocidad baja y no paso de 2 Megas.

Para ver estos valores entra en el panel de tu modem y busca las opciones DSL







Hosting