Sistemas & Desarrollo
9 meneos
160 clics
Tipografías gratuitas pero con personalidad [ENG]

Tipografías gratuitas pero con personalidad [ENG]  

La tipografía usada en un diseño puede marcar la diferencia. Sin embargo, si tu proyecto tiene que llevarse bien con un presupuesto limitado y tienes que usar tipografías gratuitas, las buenas nunca son fáciles de encontrar. Por suerte, nosotros nos hemos topado con unas cuantas joyas. La siguiente lista de tipografías puede ser descargada de forma gratuita y usada en tu proyecto (ya sea privado o comercial) para darle un toque de distinción.
15 meneos
263 clics
¿Vale la pena PHP 7?

¿Vale la pena PHP 7?

Un análisis rápido de lo nuevo de PHP 7.
11 4 0 K 38
11 4 0 K 38
14 meneos
153 clics
maybe: comprueba qué hace realmente un comando antes de hacerlo

maybe: comprueba qué hace realmente un comando antes de hacerlo  

¿Cuántas veces has ejecutado algún script en Linux confiando ciegamente en que hará su “supuesto” cometido? ¿Y encima como root? No corras más riesgos innecesarios… maybe es una utilidad que permite validar las funciones que realiza un comando antes de llevarlas a cabo. Para ello ejecuta procesos bajo el control de ptrace (con la ayuda de la biblioteca Python-ptrace). Cuando se intercepta una llamada al sistema que está a punto de realizar cambios en el sistema de archivos, registra esa llamada y luego […].
12 2 0 K 40
12 2 0 K 40
6 meneos
134 clics
Hacking de hardware con Javascript y Arduino [ENG]

Hacking de hardware con Javascript y Arduino [ENG]

El IoT (Internet of Things) ha permitido que internet se extienda mas alla del navegador. Dispositivos electronicos manufacturados, estas "cosas" son capaces de interactuar con el mundo fisico a traves de sensores que extraen datos capturados de vuelta a sus ecosistemas.
7 meneos
84 clics
La propiedad de CSS ‘background-clip’ y sus casos de uso [ENG]

La propiedad de CSS ‘background-clip’ y sus casos de uso [ENG]  

‘background-clip’ es una de esas propiedades que se conocen durante años pero que raramente se usan más allá de alguna pregunta en Stack Overflow. Hasta el año pasado, cuando empecé a crear mi gran colección de controles deslizantes (sliders). Algunos de mis diseños eran complejos y sólo disponía de un elemento por control (que solía ser un input) incluso sin poder usar pseudoelementos. Así que comencé a usar fondos, sombras y bordes, lo que hace que la propiedad ‘background-clip’ sea especialmente útil.
10 meneos
151 clics
Let’s Encrypt: Certificados SSL en nginx con renovación automática

Let’s Encrypt: Certificados SSL en nginx con renovación automática

Mediante Let’s Encrypt podemos generar certificados SSL y renovarlos automáticamente. Vamos a ver cómo hacerlo para un nginx.
6 meneos
87 clics
Presentación: HTTP/2 para desarrolladores de PHP [ENG]

Presentación: HTTP/2 para desarrolladores de PHP [ENG]  

La semana pasada tuve el placer de hablar en la conferencia PHP & Friends realizada en el FOSDEM (Bruselas). Las diapositivas para mi charla “HTTP/2 para desarrolladores de PHP” se pueden ver a continuación.
9 meneos
247 clics
No tengo ni idea de qué estoy haciendo (pero) soy programador [ENG]

No tengo ni idea de qué estoy haciendo (pero) soy programador [ENG]

¿Por qué aprender por prueba y error es la mejor forma de tirar tu tiempo y el dinero del cliente? Cuanto más trabajo en diferentes proyectos y más colaboro con otros desarrolladores, más veo el enfoque de desarrollo “no tengo ni idea de qué estoy haciendo, pero lo voy a intentar”, lo que puede producir unos cuantos problemas. De lo que se saca una conclusión sencilla: es muy difícil ser un buen desarrollador.
12 meneos
108 clics
Cómo descargar correctamente un archivo en PHP

Cómo descargar correctamente un archivo en PHP

Muchas veces nos encontramos con la necesidad de gestionar la descarga de archivos, por ejemplo para securizar la descarga o para obligar que un archivo no se visualice sino que se descargue. En este tutorial veremos como optimizar las descargas para realizarlas de la forma correcta.
7 meneos
155 clics
Análisis de rendimiento de datos: poner /tmp en un sistema de archivos tmpfs [ENG]

Análisis de rendimiento de datos: poner /tmp en un sistema de archivos tmpfs [ENG]

Poner /tmp en un sistema de archivos tmpfs hará que se mejore el rendimiento de la entrada/salida en sistemas Linux, se reduzca su huella ecológica y el uso de energía, se estire la duración de la batería en portátiles, se extienda la vida de los discos SSD y se proporcione mayor seguridad. De hecho, creo que deberíamos hacer esto de forma predeterminada en servidores Ubuntu, incluida la nube. Habiendo hecho tests con 502 servidores, cerca del 99 % podrían poner todos sus datos de /tmp en la memoria sin ningún problema.
7 meneos
114 clics
Un servidor avanzado y seguro con Hiawatha

Un servidor avanzado y seguro con Hiawatha

Servidor web o webserver, en inglés, para sistemas tipo UNIX, que prioriza ante todo la seguridad.
10 meneos
138 clics
Puesta a punto de PHP y MySQL

Puesta a punto de PHP y MySQL

Tuning de MySQL y PHP para mejorar el rendimiento aplicaciones web como puede ser un Wordpress.
13 meneos
120 clics

Todo sobre la programación de señales en Linux [ENG]

El artículo describe cómo funcionan las señales en Linux y cómo se manejan usando el API de POSIX. Se cubrirán las funciones en todos los sistemas modernos de Linux, cosa que también se puede aplicar a la mayoría de los sistemas POSIX (a menos que se indique lo contrario). Para seguir bien el artículo se recomienda tener un conocimiento básico acerca de señales.
10 meneos
163 clics

Siete escándalos respecto al comportamiento del preprocesador de C [ENG]

Un escándalo es cuando se usan principios morales cuestionables que causan daño público. Y escándalo es una palabra perfecta para definir el comportamiento del preprocesador de C. Fui consciente de esto cuando hice mi propio compilador de C, así que he recopilado los siete escándalos más sonados que he descubierto.
10 meneos
199 clics
Expresiones regulares: Rust vs. F# vs. Scala vs. D vs. Elixir vs. Haskell vs. Nemerle [ENG]

Expresiones regulares: Rust vs. F# vs. Scala vs. D vs. Elixir vs. Haskell vs. Nemerle [ENG]

Implementemos la siguiente tarea en diferentes lenguajes de programación: leer los primeros 10 millones de líneas de un archivo de texto con un formato determinado y luego encontrar los espacios de nombres de Microsoft e imprimirlos en la forma más común (es decir, similar a “Microsot.Win32.IAssemblyEnum”). Finalmente, calculemos los tiempos de ejecución en cada lenguaje de programación.
11 meneos
71 clics

Nuevo año, nueva versión de Git [ENG]

Si tu propósito para nuevo año era actualizar Git, tenemos buenas noticias. La comunidad de Git acaba de lanzar Git 2.7.0 y a nosotros nos gustaría compartir algunas de sus novedades contigo.
15 meneos
117 clics
Flujo de trabajo simple con ‘git push’ para desplegar proyectos en tu propio servidor [ENG]

Flujo de trabajo simple con ‘git push’ para desplegar proyectos en tu propio servidor [ENG]

Esta técnica de despliegue de proyectos con Git está lejos de ser nueva (alrededor de 2013), pero desde entonces su uso se ha reducido, lo que es un poco vergonzoso por lo sencilla que es. Resumiendo, la idea es utilizar un hook de Git para desplegar el código en producción. Veamos cómo funciona en detalle.
12 meneos
114 clics
pagemon: utilidad con interfaz con ‘ncurses’ para monitorizar la memoria de los procesos [ENG]

pagemon: utilidad con interfaz con ‘ncurses’ para monitorizar la memoria de los procesos [ENG]  

Durante el desarrollo de stress-ng quería ser capaz de ver si los diversos factores de estrés de memoria modificaban dicha memoria en la forma en que había anticipado. Buceando en la documentación de Linux descubrí que se podía consultar un bit en la tabla de páginas de memoria (PTE en inglés) para ver si una página había sido escrita o no, así que desarrollé pagemon, una utilidad con ‘ncurses’ para esta actividad en tiempo real.
7 meneos
121 clics
Como cifrar imágenes en base64 en Linux para insertarlas en CSS

Como cifrar imágenes en base64 en Linux para insertarlas en CSS

Para insertar imágenes codificadas en base64 en el propio CSS el primer paso es realizar una optimización de dicha imagen. Para ello podemos usar cualquier herramienta de edición gráfica, como por ejemplo GIMP. El siguiente paso es obtener la codificación en base64 de nuestra imagen, para lo que usaremos el comando base64 que viene instalado en la mayoría de distribuciones de Linux. El paso final es insertar el texto obtenido en el CSS usando la función url() de la forma: url("data:image/png;base64,XXXXXXXX").
5 meneos
163 clics
Aprendiendo a programar en el lenguaje de programación D [ENG]

Aprendiendo a programar en el lenguaje de programación D [ENG]

«Learning D» es la página web que acompaña al libro del mismo nombre escrito por Michael Parker. Esta página se ha creado para ir un poco más allá del libro y aprender más acerca del lenguaje de programación D.
5 meneos
118 clics
La técnica de «blur up» para cargar imágenes de fondo con CSS [ENG]

La técnica de «blur up» para cargar imágenes de fondo con CSS [ENG]  

Los filtros de imágenes en CSS han estado ahí durante un tiempo y, junto a otras técnicas como los diferentes modos de mezcla, nos traen nuevas posibilidades para la recreación y manipulación de elementos en el navegador que antes teníamos que hacer en editores gráficos. En esta entrada se explora una técnica usando uno de los más olvidados efectos de filtro —la función filter— así como a recrearla usando imágenes SVG.
8 meneos
140 clics
Mi primer debug. Primeros pasos con gdb, Valgrind y strace

Mi primer debug. Primeros pasos con gdb, Valgrind y strace  

¿A quién no le ha pasado? Estas programando en C++ y de repente, cuando antes todo iba bien, ahora el programa se cierra inesperadamente (un crash) y no sabes el motivo. En algunos lenguajes como Rust, el propio compilador y el lenguaje evitan estas situaciones, pero en C++ la situación es mucho más estimulante. Recientemente, trabajando en Kovel, tuve uno de estos incidentes inesperados. Pero más inesperada fue su aparición, pues en Debian, donde programo actualmente, el programa se ejecutaba normalmente. Sin embargo en Windows el […].
3 meneos
93 clics
Cómo hacer un indicador de fortaleza de las contraseñas [ENG]

Cómo hacer un indicador de fortaleza de las contraseñas [ENG]

Muchos sitios web importantes como Dropbox, Gmail o eBay, tienen algún tipo de indicador para indicar la fuerza de la contraseña que introduce el usuario durante el registro. Este indicador sirve como buen recordatorio para el usuario para mostrarle el nivel de dificultad para romper su clave. Aunque esta práctica no es nueva, la mayoría usan <div> y <span> para mostrar dicho indicador pero, con la llegada de HTML5, podemos usar la etiqueta <meter> que es semánticamente más precisa.
5 meneos
113 clics
Técnicas de antidesensamblado usadas por malware [ENG]

Técnicas de antidesensamblado usadas por malware [ENG]

Es probable que los autores de malware implementen algún tipo de método para que a los analistas de este tipo de software malicioso les resulte difícil averiguar el código fuente durante el análisis estático. La implementación de estas instrucciones en ensamblador no causa ningún problema en la ejecución del programa, pero confundirá herramientas de análisis estático como IDA Pro a la hora de interpretar el código correctamente.
5 meneos
97 clics
Cómo lambdas y streams en Java 8 pueden hacer que tu código se ejecute 5 veces más lento [ENG]

Cómo lambdas y streams en Java 8 pueden hacer que tu código se ejecute 5 veces más lento [ENG]

Se ha hablado mucho de la velocidad de los streams en Java 8, pero como muestra Alex Zhitnitsky usando un estilo más tradicional de programación Java empleando iteradores y bucles, estos superan significativamente en rendimiento a las nuevas implementaciones que usan lambdas y streams en Java 8.

menéame