Algo que nos puede traer de cabeza como administradores de sistemas y, a veces como usuarios es el hecho de que un proceso se coma, devore y trate sin piedad la CPU de nuestro sistema. Ya no solo el hecho de que un programa deje inservible el ordenador, aunque a día de hoy con tantos núcleos de procesador, casi siempre tendremos algo de CPU para enviar una señal de parada a un proceso.… Leer artículo completo
Limitar el uso de CPU de nuestras aplicaciones o procesos en GNU/Linux (señales, nice, cpulimit/cputool, cgroups, systemd slices)
Compilando y subiendo los primeros programas al ESP8266. Usando GPIO y UART-
Me ha gustado mucho la facilidad de uso (y sobre todo el precio) de este dispositivo. El ESP8266 puede dotar a nuestros proyectos de la conectividad que necesitaban y así adentrarnos en el Internet de las cosas o IoT.
Lo primero es sentirnos cómodos con el entorno. Así que voy a proponer dos opciones. La primera, multiplataforma será utilizando el mismo entorno Arduino. En este caso, al final del proceso cuando estemos compilando o subiendo el código a nuestro chip seleccionaremos la placa ESP8266 y compilaremos para ella.… Leer artículo completo
Configuración Nvidia Optimus con driver privativo y Bumblebee.
La semana pasada hablaba sobre el estado del soporte Optimus para gráficos híbridos Intel+Nvidia en GNU/Linux. Aunque tenemos varias formas de implementar ese soporte en nuestro sistema operativo, finalmente me he decantado por instalar Bumblebee que hará que sólo las aplicaciones que utilicen la gráfica discreta (la Nvidia) la activen y la utilicen, para todo lo demás, utilizaré la Intel que, no es mala tarjeta, funciona muy bien, y consume menos energía.… Leer artículo completo
Knock, knock, knockin’ on server’s ports – Port knocking con ejemplos
¡Tenía muchas ganas de escribir este post! De hecho, hay muchas personas a las que les he hablado de la técnica port knocking y me he tenido que poner a buscar un ejemplo que me convenciera por Internet. ¡Ya no tengo excusa! Y, como siempre, intentaré incluir varios ejemplos para copiar y pegar sin miedo explicados para no perder detalle.¿Qué es el port knocking?
Imaginad que en mi servidor tengo activo un servicio privado, al que no quiero que nadie acceda, sólo yo.… Leer artículo completo
7 Servicios online para compilar, ejecutar y ver la salida de pequeños programas
Cuando estamos aprendiendo a programar o, cuando estamos probando algún pequeño código que hemos encontrado en Stack Overflow nos viene muy bien tener a mano un lugar para compilar rápidamente y ver qué sucede. Es más, incluso se nos puede presentar el caso de que una versión específica de un compilador tiene un fallo que nos trae de cabeza y nos vendría bien probar otra versión para salir de dudas.Actualmente hay multitud de páginas que nos dan la posibilidad de compilar pequeños programas online y probar la salida de los mismos sin necesidad de tener que compilarlos nosotros (no imagináis la de pruebaX.c y pruebaX.cc que tengo en mi disco duro para cosas pequeñas de unas pocas líneas).… Leer artículo completo
Balanceo de carga con Amazon Web Services Elastic Load Balancer. Ejemplos, consejos y trucos.
Cuando montamos un servidor web y los servicios que proporcionamos se hacen mayores (mayor cantidad de usuarios accede a ellos), inevitablemente debemos seguir una maniobra de escalado para dichos servicios. Tenemos muchas opciones, podemos tener servidores dedicados, o como primer paso utilizar servidores VPS como pueden ser DigitalOcean o Amazon AWS. En DigitalOcean, como muchos otros, tendrás que montarte tú todo, es decir, montar tu servidor e instalar HAProxy, Nginx, Apache (o el que quieras) en modo balanceador de carga, de modo que cada petición que entre será desviada a algún nodo web que tengamos conectado.… Leer artículo completoFormas de eliminar etiquetas XML/HTML desde MySQL o MariaDb. strip_tags en MySQL
Estamos haciendo una consulta a una tabla, y vemos que la tabla tiene un texto. Pero dicho texto contiene etiquetas HTML que nos molestan o no deberían estar ahí (puede que el valor lo hayamos extraído de un campo WYSIWYG) y cuando vamos a extraer la información nos molesta.Pero tenemos prisa y tendríamos que modificar o crear un programa y no tenemos tiempo. ¿Qué hacemos? Pues nada, implementar strip_tags() dentro de MySQL y luego pegarnos un baile.… Leer artículo completo
¿Cómo crear un chat utilizando WebSockets en C++? Y no morir en el intento
Los WebSockets proporcionan un canal bidireccional entre el servidor y el navegador y nos permiten crear aplicaciones aún más dinámicas y rápidas. Hace unas semanas vimos cómo funcionan los WebSockets por dentro. En este post vamos a ver una implementación de los mismos en C++, en realidad la parte de navegador como habréis imaginado será Javascript, HTML y CSS, como siempre; será la parte de servidor la que programemos en C++.… Leer artículo completoCómo saber si existe una función en Bash, saber qué estamos ejecutando y más
En nuestra historia como programadores, hacemos infinidad de llamadas a funciones propias, de terceros, de biblioteca, a otros programas a un alias, etc Y si queremos que nuestros scripts sean lo más robustos posible, debemos tener claro antes de la ejecución que aquello que llamamos se puede ejecutar o dar opciones si algún comando o función no existe.
Por ejemplo, nuestro script necesita hacer una llamada a wget de este tipo:
wget -O salida http://totaki.com
Pero queremos hacer que sea compatible con otros sistemas, por ejemplo, con cURL, y no podemos cambiar uno por otro, pues con curl sería con o minúscula:
curl -o salida http://totaki.com
Nuestro script podrá ser:
1
2
3
4
5
6
7
8if [ -n "$(which wget)" ]; then
wget -O salida http://totaki.com
elif [ -n "$(which curl)" ]; then
curl -o salida http://totaki.com
else
echo "No puedo descargar el fichero"
exit 1
fiDe modo que probamos la existencia de diferentes programas y utilizamos el que tengamos a disposición.… Leer artículo completo
Últimos comentarios