En float.h tienes FLT_MAX que indica el máximo valor que puede tomar un float
En limits.h tienes INT_MAX que indica el máximo valor que puede tomar un int
Mostrando entradas con la etiqueta de. Mostrar todas las entradas
Mostrando entradas con la etiqueta de. Mostrar todas las entradas
jueves, 4 de enero de 2018
lunes, 4 de diciembre de 2017
domingo, 24 de septiembre de 2017
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
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
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
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
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
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
martes, 7 de febrero de 2017
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
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
sábado, 4 de febrero de 2017
Manejo de imágenes API con Laravel 5.3
Me surgió hacer un api en donde el cliente debía subir imágenes:
Para hacerlo es muy sencillo. Primero creas la ruta:
Route::post('/add', 'ApiAuthController@add');
Luego creas el controlador
public function add(Request $request) {
$v = Validator::make($request->all(), [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
if ($v->fails()){
return response()->json(["success"=>"False", "Error"=>$v], 422);
}
$image = $request->file('image');
$input['imagename'] = time().'.'.$image->getClientOriginalExtension();
$destinationPath = public_path('/images');
$image->move($destinationPath, $input['imagename']);
// $this->postImage->add($input);
return back()->with('success','Image Upload successful');
}
Luego lo pruebas con Postman
y Listo. Se guarda en public/images
Para hacerlo es muy sencillo. Primero creas la ruta:
Route::post('/add', 'ApiAuthController@add');
Luego creas el controlador
public function add(Request $request) {
$v = Validator::make($request->all(), [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
if ($v->fails()){
return response()->json(["success"=>"False", "Error"=>$v], 422);
}
$image = $request->file('image');
$input['imagename'] = time().'.'.$image->getClientOriginalExtension();
$destinationPath = public_path('/images');
$image->move($destinationPath, $input['imagename']);
// $this->postImage->add($input);
return back()->with('success','Image Upload successful');
}
Luego lo pruebas con Postman
y Listo. Se guarda en public/images
jueves, 2 de febrero de 2017
Instalar módulo de python en formato tar.gz
miércoles, 28 de diciembre de 2016
¿Cual es la verdadera versión de popcorntime?
Buscando popcorntime para ver unas pelis me encontré que casi todas las pags son fakes.
Este diagrama explica cuales son peligrosas y cuales son verdaderamente las oficiales
En definitiva, si quieres descargar Popcorn Time descargalo desde
https://get.popcorntime.sh
Esta es la pag oficial
jueves, 8 de diciembre de 2016
Descargar videos de Miriadax
Si deseas descargar los videos de Miriadax debes darle botón secundario al video y luego a la opción "Ver código fuente del marco"
Luego buscar ".mp4" en ese código (CTRL+F) y verás los distintos links para las distintas resoluciones.
Si pasamos un JSON por un formateador podemos ver lo siguiente:
En mi caso el link para descargar el video en 1080p es el siguiente:
https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/1656/7/183281459/612228881.mp4?token=5849fc3a_0x6234d8b1c13aebec004f6b8e84fa43c8a839ab94
Una vez abierto el link le damos botón secundario y descargamos el archivo de video
Luego buscar ".mp4" en ese código (CTRL+F) y verás los distintos links para las distintas resoluciones.
Si pasamos un JSON por un formateador podemos ver lo siguiente:
En mi caso el link para descargar el video en 1080p es el siguiente:
https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/1656/7/183281459/612228881.mp4?token=5849fc3a_0x6234d8b1c13aebec004f6b8e84fa43c8a839ab94
Una vez abierto el link le damos botón secundario y descargamos el archivo de video
martes, 8 de noviembre de 2016
Hacer backup de una base de datos CouchDB
¿Que quiero hacer?
Un backup de una base de datos en CouchDB para moverla de una maquina (en forma de fichero).
En Centos 7 las bases de datos de couchdb se guardan como ficheros que tienen el mismo nombre de la bd pero con la extensión .couch. La ruta es /usr/local/var/lib/couchdb/.
En fedora 24 la ruta es /var/lib/couchdb
Basta con copiar el fichero de ese directorio y pegarlo en el mismo en la otra maquina
En este caso vamos a copiar una bd llamada "books" en nuestra maquina
Un backup de una base de datos en CouchDB para moverla de una maquina (en forma de fichero).
En Centos 7 las bases de datos de couchdb se guardan como ficheros que tienen el mismo nombre de la bd pero con la extensión .couch. La ruta es /usr/local/var/lib/couchdb/.
En fedora 24 la ruta es /var/lib/couchdb
Basta con copiar el fichero de ese directorio y pegarlo en el mismo en la otra maquina
En este caso vamos a copiar una bd llamada "books" en nuestra maquina
Primero le damos permiso al directorio
chmod 777 /usr/local/var/lib/couchdb
Luego pegamos el fichero
y por último arreglamos el tema de los permisos (si couchdb no es el dueño del directorio entonces no arrancará)
chown -R couchdb:couchdb /usr/local/{lib,etc}/couchdb /usr/local/var/{lib,log,run}/couchdb
y listo *.* así de fácil
martes, 1 de noviembre de 2016
Recuperar entrada de Windows 10 en el grub luego de instalar Centos 7
Luego de instalar centos no pude arrancar windows 10 porque no salía la opción el el grub al reiniciar.
Esto ocurre porque centos no tiene soporte ntfs por defecto y por lo tanto no consigue la partición de w10 al momento de crear el grub. Para solucionarlo haremos lo siguiente:
Primero instalamos el repo epel
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
yum install ./epel-release-7-8.noarch.rpm
luego instalamos el soporte ntfs (centos 7 no tiene soporte para este tipo de fs por defecto)
yum --enablerepo epel install ntfs-3g
por último actualizamos el grub
grub2-mkconfig -o /boot/grub2/grub.cfg
Debe salir una que dice "Windows recovery bla bla blabla...." Reiniciamos y lesto
Esto ocurre porque centos no tiene soporte ntfs por defecto y por lo tanto no consigue la partición de w10 al momento de crear el grub. Para solucionarlo haremos lo siguiente:
Primero instalamos el repo epel
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
yum install ./epel-release-7-8.noarch.rpm
luego instalamos el soporte ntfs (centos 7 no tiene soporte para este tipo de fs por defecto)
yum --enablerepo epel install ntfs-3g
por último actualizamos el grub
grub2-mkconfig -o /boot/grub2/grub.cfg
Debe salir una que dice "Windows recovery bla bla blabla...." Reiniciamos y lesto
lunes, 31 de octubre de 2016
Crear pendrive booteable de GParted desde linux (Fedora)
miércoles, 12 de octubre de 2016
domingo, 25 de septiembre de 2016
Crear banner para canal de Youtube
Intentando cuadrar el banner para un canal de Youtube me encontré con el problema de que la imagen se mostraba incompleta como se muestra en la siguiente imagen
Para solucionarlo te puedes guiar de los "Channel Art Template" que proporciona youtube y te lo puedes descargar por aquí
Colocando tu logo en el área donde indica "TEXT AND LOGO SAFE AREA" lograrás que este se vea en todos los distintos dispositivos.
Yo tengo mi propio template que consiste en un rectángulo rojo donde voy a pegar el logo. Luego que inserto el logo cambio color rojo del cuadrado a alpha y listo.
Lo puedes descargar de aqui
Como resultado final se puede ver que el logo queda bien posicionado
jueves, 8 de septiembre de 2016
Descargando los sources de la versión de IDEA Community asociada a una versión de Android Studio
Descargando los sources de IDEA Community
Hay que descargar los códigos fuentes de IDEA Community. Pero primero debemos conocer que versión del branch de git se basa la última versión estable de Android Studio (Es muy importante por razones de vida útil del plugin que uses la última versión). Para conocerlo nos vamos a la siguiente página:
Ahí vemos que, al momento de escribir este tutorial, la ultima versión estable de Android Studio es la 2.1.3 que se basa en el branch 143 de IntelliJ IDEA (15.0.x).
Ya una vez que conocemos el branch de IDEA en la que se basa la última versión de Android Studio, ahora debes descargar los sources de IDEA. Para ello entramos en el siguiente link:
Note que debe cambiar el número final del link para adaptarlo al número del branch anteriormente conseguido (en mi caso es 143).
Luego debe descomprimirlo en un directorio. En mi caso /home/hector/Desarrollo/Android/Plugins/DomainTools/intellij-community-143
Cerrar todas las instancias de un programa en Linux
Cuando escribo entradas para el blog, fecuentemente requiero usar captures de pantalla, lo cual hace que cada vez que tome uno, se abra el programa ksnapshot. A veces son decenas de programas de estos abiertos y cerrarlos uno a uno es una ladilla. Para cerrar todas las ventanas de un programa que estén abiertas podemos usar el comando killall. En mi caso sería:
killall ksnapshot
miércoles, 7 de septiembre de 2016
Descargar código fuente de Android Studio
Este mini tutorial explica como descargar el código fuente de Android Studio, en caso de requerirlo (por ejemplo si deseas desarrollar un plugin que dependa del Android Support Plugin.
Explicación:
Google creó una herramienta llamada "repo" para facilitar el trabajo con Git en el contexto de Android. Para instalarla debes ejecutar lo siguiente:
Una vez instalada la herramienta repo podemos bajar los sources de Android Studio ejecutando desde la terminal lo siguiente :
Explicación:
Google creó una herramienta llamada "repo" para facilitar el trabajo con Git en el contexto de Android. Para instalarla debes ejecutar lo siguiente:
# curl https://storage.googleapis.com/git-repo-downloads/repo > /bin/repo
# chmod a+x /bin/repo
Una vez instalada la herramienta repo podemos bajar los sources de Android Studio ejecutando desde la terminal lo siguiente :
$ mkdir studio-master-dev
$ cd studio-master-dev
$ repo init -u https://android.googlesource.com/platform/manifest -b studio-master-dev
$ repo sync
El código anterior bajará la main branch del repositorio de Android Studio (en mi caso la 1.4 rev 3 al 07-09-16).
En total pesa 9.4 GB
viernes, 2 de septiembre de 2016
Ejemplo dirección de Ipostel para tarjeta Payoneer
Cuando rellenes la información para tu tarjeta Payoneer en venezuela, es recomendable colocar una dirección de Ipostel, puesto por experiencia propia he visto que los paquetes nunca llegan.
Dos ejemplo de formatos de direcciones usadas y que llegaron fueron las siguientes:
Suscribirse a:
Entradas (Atom)




























