Sistemas & Desarrollo
11 meneos
222 clics
Cómo hackear la unidad de gestión Bosch lcn2kai que traen algunos vehículos Nissan [ENG]

Cómo hackear la unidad de gestión Bosch lcn2kai que traen algunos vehículos Nissan [ENG]  

Mi Nissan Xterra vino con una unidad de gestión con pantalla táctil, navegación incorporada, pantalla de cámara marcha atrás, funciones multimedia y conectividad para teléfonos inteligentes. Algunas de las funciones más avanzadas solo están disponibles a través de la aplicación NissanConnect, que requiere registro y suscripción. Nunca lo he usado y ni siquiera estoy seguro de si todavía es compatible. ¿No sería estupendo si pudiéramos ejecutar código en el dispositivo e incluso desarrollar nuestras propias extensiones y aplicaciones?
9 meneos
111 clics
Servicios “trampa” para detener la ejecución de ransomware

Servicios “trampa” para detener la ejecución de ransomware

Ollie Whitehouse de NCC Group ha publicado SWOLLENRIVER, una interesante herramienta bajo licencia AGPL que implementa una serie de procesos canarios que se controlan entre sí. Si estos servicios se detienen (a través de net stop o similar) y no durante el cierre del equipo, disparará un token Canary DNS e hibernará el host. Si a algunos no os suenan los Canary Tokens deciros que es un concepto muy interesante en el mundo Deception/honeypots. Es como los clásicos web bugs que se incluían en los correos electrónicos, imágenes transparentes que se cargaban mediante una URL única embebida en una image tag, alertando al “cazador” que está monitorizando.
9 meneos
172 clics
Entender la pila de audio en sistemas Unix [ENG]

Entender la pila de audio en sistemas Unix [ENG]

El audio en Unix es un pequeño zoológico, hay tantas siglas para proyectos y API que es fácil perderse. ¡Abordemos ese problema! La mayoría de los artículos son confusos porque utilizan jerga técnica de audio o porque apenas rascan la superficie y dejan a la gente sin pistas. Poco de conocimiento puede ser peligroso. En este artículo intentaré cerrar la brecha al no requerir ningún conocimiento previo y al mismo tiempo brindar una buena descripción general de todo el panorama de audio de Unix.
10 meneos
145 clics
rwasa: servidor web escrito totalmente en ensamblador (x86_64) para sitios con alto tráfico [ENG]

rwasa: servidor web escrito totalmente en ensamblador (x86_64) para sitios con alto tráfico [ENG]

rwasa es un servidor web escrito a mano en ensamblador (x86_64) sin dependencias externas y centrado en el alto rendimiento, alta escalabilidad y diseñado para entornos con alto volumen de tráfico para competir con servidores del estilo de nginx. Además, es software libre teniendo GPLv3 como licencia.
7 meneos
98 clics
Introducción visual al aprendizaje automático [ENG]

Introducción visual al aprendizaje automático [ENG]  

En el aprendizaje automático los ordenadores aplican técnicas de aprendizaje estadístico para identificar automáticamente patrones en los datos. Estas técnicas se pueden utilizar para hacer predicciones altamente precisas. En esta entrada se hace una introducción visual al aprendizaje automático usando como ejemplo un conjunto de datos sobre las casas de Nueva York y las de San Francisco.
10 meneos
31 clics
Detrás de Plasma Mobile, entrevista a Aleix Pol

Detrás de Plasma Mobile, entrevista a Aleix Pol  

Me complace compartir con todos vosotros uno de los momentos más inesperados y especiales de mi pasada Akademy 2015 de A Coruña, una entrevista con uno de los creadores de Plasma Mobile y presidente de KDE España, Aleix Pol, responsable entre otros desarrolladores de su nacimiento.
8 meneos
187 clics
Consejos para escribir buen código en C++ [ENG]

Consejos para escribir buen código en C++ [ENG]

El equipo de PVS-Studio ha verificado más de 200 proyectos de código abierto escritos en C y C++ y ha creado esta página web para compartir los errores más comunes que han encontrado, su explicación y la forma de resolverlos, además de ofrecer consejos para escribir buen código fuente.
8 meneos
72 clics

Portando Linux a una nueva arquitectura, parte 1: lo básico [ENG]

Aunque un port simple puede contar con tan sólo 4000 líneas de código —exactamente 3775 son las del procesador Hitachi 8/300 (sin MMU) recientemente introducidas en Linux 4.2-rc1—, conseguir que el kernel de Linux se ejecute en una nueva arquitectura de procesador es un proceso difícil. Peor aún, no hay mucha documentación disponible que describa dicho proceso de portabilidad. El objetivo de esta serie de artículos es proporcionar una visión general del procedimiento de portar el kernel de Linux a una nueva arquitectura de procesador.
9 meneos
226 clics
NodeJS: un consejo sobre optimización [ENG]

NodeJS: un consejo sobre optimización [ENG]

¿Puedes ver la diferencia entre estos dos archivos con código en Javascript? ¿Puedes explicar la diferencia de rendimiento de más del 50 % entre ambos?
9 meneos
182 clics

Ubuntu publica un ebook gratuito sobre Big Data

El manejo e interpretación de grandes volúmenes de datos es uno de los desafíos actuales de la industria informática y una de las habilidades profesionales más demandadas por las empresas. En este libro gratuito, publicado en inglés, Ubuntu responde a las siguientes preguntas: ¿Qué es el Big Data y cuál es su importancia? ¿Se necesita una nube para el Big Data? ¿Cómo puedo diseñar, implementar y empaquetar soluciones Big Data? ¿Tecnologías disponibles para crear almacenes de datos?
7 meneos
92 clics
Reflexión en C++14 [ENG]

Reflexión en C++14 [ENG]

La reflexión es, en algunos lenguajes, una parte del lenguaje que nos da la capacidad de recuperar información de un tipo o de un método de forma dinámica, es decir, en tiempo de ejecución. Por otra parte, la reflexión nos permite crear un objeto a partir de una cadena que contiene el nombre de la clase o llamar a un método de una cadena que contiene su nombre. Sin embargo, no hay reflexión en C++, ni siquiera en la última versión, por lo que tuve que crear mi propio motor de reflexión y en esta entrada es donde explico cómo lo hice.
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.
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.
7 meneos
98 clics
Gestiona contraseñas desde la línea de comandos con “pass” [ENG]

Gestiona contraseñas desde la línea de comandos con “pass” [ENG]  

“pass” es un gestor de contraseñas simple y flexible para la línea de comandos que sigue la filosofía Unix. La aplicación guarda cada contraseña en un archivo GPG cifrado y permite organizarlos en forma de jerarquía.
7 meneos
211 clics
Los mejores frameworks CSS de 2016

Los mejores frameworks CSS de 2016

Hasta hace unos años la tarea de realizar una nueva página web implicaba tener que desarrollar una hoja de estilos CSS completamente nueva o realizar amplias modificaciones en una que ya hubiéramos realizado anteriormente en un sitio web similar. Por suerte empezaron a proliferar los frameworks CSS, que son unas hojas de estilo con unos elementos básicos con los que se puede realizar cualquier página web que se nos pueda ocurrir con el mínimo esfuerzo.
8 meneos
305 clics

Cinco errores que cometen los novatos al trabajar con bases de datos [ENG]

Cuando se empieza como un desarrollador, hay una enorme cantidad de cosas que captar. En primer lugar está el propio lenguaje; después, todas las peculiaridades del marco de trabajo; y después de eso (o tal vez antes) hay que mezclar el desarrollo con las interfaces de usuario. Y es en ese momento donde hay que decidir dónde almacenar todos los datos que se van a usar. Después de tantas cosas, quizás sea a la base de datos a la que menos importancia se le da, de ahí que surjan las malas prácticas.
10 meneos
261 clics
Cómo cambiar los colores del comando ls en Linux

Cómo cambiar los colores del comando ls en Linux  

El comando ls es uno de los más utilizados cuando trabajamos en la consola; observamos que no hemos dedicado ningún artículo a este excelente comando en el blog, por lo que traemos el tutorial de cómo cambiar los colores de la salida del comando ls. De igual manera, vamos a dar una explicación breve de este comando y su uso basándonos en la información oficial y en varios métodos encontrados en la web con la misma finalidad, por lo que esté artículo va a ser una recopilación de varios métodos probados y funcionando.
7 meneos
191 clics

¿Cómo funciona la llamada al sistema ‘open’ en Linux? [ENG]

Como supongo que sabrás, nuestros programas interaccionan con el kernel mediante un mecanismo especial conocido como llamadas al sistema (system calls o syscalls). Si has escrito al menos un programa en C, sabrás que antes de hacer cualquier lectura y/o escritura a un archivo es necesario abrirlo. Para ello se utiliza la función ‘open’. En este caso es una función de la librería estándar (libc) y es ella la que se encarga de realizar la llamada al sistema por nosotros.
9 meneos
299 clics
Cómo desarrollar tu propio cargador de arranque (boot loader) [ENG]

Cómo desarrollar tu propio cargador de arranque (boot loader) [ENG]

Este artículo está escrito para aquellos interesados en programación en lenguajes de alto nivel (C++, C#, Java) que a veces necesitan programar a bajo nivel en Windows. En nuestro ejemplo se tratará la programación a bajo nivel del cargador de arranque (boot loader). Además, se dedicará parte del tiempo a describir qué ocurre cuando un ordenador se enciende y se carga el sistema. Después de esto, se mostrará el proceso de escribir el código fuente de nuestro propio cargador de arranque.
11 meneos
225 clics
Shell mediante un documento .odt malicioso (Squiblydoo)

Shell mediante un documento .odt malicioso (Squiblydoo)  

El correo corporativo sigue siendo un vector de entrada interesante para realizar una intrusión. Con el paso de los años se ha ido mejorado la seguridad de las pasarelas de mensajería y de los endpoints, pero hoy en día siguen surgiendo nuevas técnicas capaces de evadir muchas de estas protecciones. En esta entrada vamos a ver un par de claros ejemplos que os harán pensar en la (todavía) peligrosidad de abrir un fichero adjunto, sobretodo si se trata de un remitente desconocido.
11 meneos
339 clics

D as BetterC: reescribiendo `make.c` en D [ENG]

D como un mejor C (también conocido como DasBetterC, en inglés) es una forma de actualizar proyectos existentes programados en C reprogramándolos en D de forma incremental. En este artículo se muestra paso a paso el proceso de reescribir en D un proyecto no trivial escrito en C, además de algunos de los problemas comunes que pueden surgir.
9 meneos
233 clics

Explorando la implementación de ‘std::string’ [ENG]

Todo desarrollador de C++ sabe que std::string representa una secuencia de caracteres en memoria. Esta clase administra su propia memoria y su uso es muy intuitivo. Hoy exploraremos cómo define std::string el estándar de C++ y también observaremos cómo lo implementan los 4 compiladores principales (Visual Studio 14, GCC versión anterior a 5, GCC versión 5 o mayor y Clang [LLVM]).
12 meneos
417 clics
Guía para evitar ataques DDoS usando IPTables en Linux [ENG]

Guía para evitar ataques DDoS usando IPTables en Linux [ENG]

Hay diferentes formas de crear reglas propias para evitar ataques DDoS usando IPTables. En este artículo se verán varios métodos de protección contra ataques DDoS usando IPTables, entre ellos: seleccionar la mejor tabla y cadena de IPTables para detener los ataques DDoS; modificar las configuraciones del kernel para mitigar los efectos de los ataques DDoS; usar IPTables para bloquear la mayoría de los ataques DDoS basados en TCP; y usar la propiedad SYNPROXY de IPTables para bloquear inundaciones SYN.
11 meneos
310 clics
Anatomía de un teclado mecánico [ENG]

Anatomía de un teclado mecánico [ENG]  

Los teclados normales generalmente se llaman teclados de 'membrana' porque tienen una capa de goma que se encuentra entre la tecla que presiona y el circuito del teclado. Esta capa tiene una cúpula de goma con un contacto metálico que se encuentra debajo de cada tecla. En lugar de goma, los interruptores de los teclados mecánicos están hechos de partes mecánicas móviles. Estos interruptores se sueldan directamente a la placa de circuito en lugar de pasar por encima de dicha placa como el contacto metálico en la cúpula de goma.
9 meneos
479 clics
Peculiaridades de TypeScript: cómo sus inconsistencias hacen que el lenguaje sea más complejo [ENG]

Peculiaridades de TypeScript: cómo sus inconsistencias hacen que el lenguaje sea más complejo [ENG]

TypeScript tiene un gran número de casos especiales y sorpresas en el compilador que dejan a los ingenieros rascándose la cabeza desconcertados. Mientras que estos comportamientos de forma individual no son muy perjudiciales, como un todo pueden hacer que sea más difícil para nuevos ingenieros formar un modelo mental en torno a este lenguaje. Aquí están tres de mis peculiaridades favoritas de TypeScript que hacen que los nuevos ingenieros se frustren continuamente.

menéame