Introducción a la Organización del Ordenador Usando Ensamblador con un Raspberry Pi

Subsistema del Ordenador Introduction to Computer OrganizationARM Assembly Language Using the Raspberry Pi es un libro electrónico y gratuito que nos enseña cómo funciona el hardware, a bajo nivel, de un ordenador desde el punto de vista del programador. Para ello, se basa en uno de nuestros “juguetes” favoritos: Raspberry Pi, con Raspbian y usando lenguaje ensamblador para la arquitectura de la CPU de dicho dispositivo: ARM. El objetivo del libro es que el lector llegue a entender como funciona un ordenador desde el nivel más bajo.
Leer más

Latch SDK para Go ¡NO OFICIAL!

Latch Hace tiempo que empecé a leer y juguetear con el lenguaje de programación Go, pero por falta de tiempo nunca llegué a programar nada con él, simplemente seguí el tour que tienen online. Ultimamente, quizás por la popularidad que Go está ganando (éste sí que creo que le puede toser a Java en un futuro cercano), tenía ganas de realmente familiarizarme con él, así que la semana pasada me puse manos a la obra y me voví a hacer el tour y leer algo de documentación.
Leer más

Desarrollo de Aplicaciones con Swift

App Development with Swift Apple ha publicado un libro gratuito sobre desarrollo de aplicaciones usando Swift. El libro, App Development with Swift, no sólo se centra en Swift, sino también en principios básicos sobre programación, herramientas usadas para el desarrollo de aplicaciones en iOS y buenas prácticas de programación. El lector irá aprendiendo todos estos conceptos mediante la creación de 5 aplicaciones, desde el desarrollo de una linterna, al desarrollo de una aplicación de compras que se comunica con un servidor web.
Leer más

Tutorial sobre ensamblador para ARM

ARM assembly Mientras la arquitectura x86/x64 es la reina del microprocesador para ordenadores personales, ARM la es para dispositivos móviles y de bajo consumo. El entender el sistema a bajo nivel no es quizás uno de los requisitos para un programador web, pero sí lo es para escritores de exploits, o conducir tareas de ingeniería inversa. En este caso, tener un buen control y entendimiento del lenguaje ensamblador es esencial.
Leer más

FPGAs for Dummies, libro gratuito

FPGAs for Dummies FPGAs for Dummies es un libro en formato PDF gratuito que nos introduce en el fascinante mundo de las FPGAs. Según éste, las FPGAs es la “próxima gran tendencia”, literalmente el libro dice: ”… the next big thing …”. Cómo decía, el libro sólo es una introducción a las FPGAs y por ello sólo consta de 48 páginas. Esta tecnología ha evolucionado mucho en los últimos años y creo que va a dar mucho que hablar en años venideros.
Leer más

Técnicas de inyección de código en Windows

En este repositorio de Github se recogen varias ténicas de inyección de código en entornos Windows. Las técnicas muestran cómo crear un programa que cuando se ejecuta, éste es capaz de infectar e inyectar nuestro código en otro proceso que está corriendo en memoria. Actualmente describe 4 formas de inyección: CreatePatched: esta técnica sobreescribe con nuestro código, el punto de entrada de un proceso que inicialmente es iniciado en modo suspendido.
Leer más

Criptografía, matemáticas y programación

Rotor de papel Enigma Cryptography, Math and Programming es un libro electrónico gratuito que nos enseña los conceptos básicos de matemáticas usados en criptografía. Además de estos, en el libro encontramos ejemplos y ejercicios prácticos con implementación de algunos algoritmos criptográficos, usando Cryptol como herramienta. El libro acaba con dos capítulos dedicados a Enigma, y una implementación de esta máquina usando la herramienta anteriormente mencionada: Cryptol. El libro contiene un total de 77 páginas y es eso, un introducción muy básica a este campo, perfecto para no iniciados.
Leer más

Cómo crear tu propio editor de texto

Si hay una herramienta básica y necesaria en un sistema operativo, además de la shell, ésta es el editor de texto. Estos pueden ser super simples, aún recurdo haber usado cosas como Ed o Edit, o muy potentes, por nombrar alguno: Vi/Vim, Emacs, Sublime Text, VSCode, Atom, etc Aunque el concepto del editor de texto es simple, la implementación o creación de una herramienta de este tipo, se puede convertir en una tarea bastante compleja, dependiendo de cuanta funcionalidad quieras añadir.
Leer más

Retos de algoritmos y estructuras de datos en Python para entrevistas de trabajo

Operaciones con pilas Si estás buscando trabajo como programador o te lo estás pensando, es muy importante que vayas bien preparado a las entrevistas de trabajos, no sólo tendrás más opciones para conseguir que te contraten, sino que además podrás negociar tu sueldo de acuerdo a las habilidades que has demostrado. Interactive Coding Challenges es un proyecto alojado en Github en el que se recogen, hasta la fecha, un total de 120 retos de programación interactivos, sacados de preguntas comunes en entrevistas de trabajo.
Leer más

Cómo crear un sistema operativo desde 0

Una de las asignaturas de las que más disfruté en la universidad fue la de sistemas operativos. Es una de esas clases en la que aprendes, en gran medida, los pilares de los sistemas actuales. Aunque crear un sistema operativo desde cero sea algo intimidante, no quiere decir que tu no puedas o debería intentar crear uno. Operating System: From 0 to 1, es un libro electrónico (PDF) que te ayudará a crear tu propio sistema operativo.
Leer más