SISTEMAS & DESARROLLO
3 meneos
54 clics

Cómo una empresa de ingeniería eligió migrar a D [ENG]

Imagine que existe ese lenguaje de programación poco conocido con el que se disfruta de la programación en el tiempo libre. Sabes que está listo para el horario de máxima audiencia y sueñas con usarlo a diario en el trabajo. Esta es la historia sobre cómo hice realidad un sueño así al conseguir migrar una aplicación escrita en Pascal a D.
2 meneos
9 clics

Arduino con Haiku Os  

Hoy les mostrare algunas screenshots que obtuve del grupo de telegram para haiku, donde Gerasim Troeglazov nos muestra como trabaja Arduino con Haiku y Fritzing.
3 meneos
57 clics

Colección de ‘trucos’ para sistemas de archivos NTFS en Windows [ENG]

Colección de ‘trucos’ en sistemas de archivos NTFS en Windows, entre los que se incluyen el poder crear un directorio en otro directorio cuyos permisos no lo permitan, o crear archivos cuyos nombres sean sólo puntos.
5 meneos
42 clics

C no es un lenguaje de bajo nivel [ENG]

A raíz de las recientes vulnerabilidades de Meltdown y Spectre, vale la pena pasar algún tiempo mirando su causa principal. Ambas vulnerabilidades involucraban a los procesadores ejecutando instrucciones especulativamente sin ningún tipo de control de acceso permitiendo al atacante observar los resultados a través de un canal lateral. Las características que llevaron a estas vulnerabilidades se añadieron para permitir que los programadores de C continúen creyendo que están programando en un lenguaje de bajo nivel.
3 meneos
39 clics

Validando cadenas UTF-8 usando tan poco como 0,7 ciclos por byte [ENG]

La mayoría de las cadenas que se encuentran en Internet están codificadas usando un formato unicode particular llamado UTF-8. Sin embargo, no todas las cadenas de bytes son UTF-8 válidas. Las reglas sobre lo que constituye una cadena UTF-8 válida son un tanto arcanas. Sin embargo, parece importante validar rápidamente estas cadenas antes de consumirlas.
2 meneos
17 clics

menesteroso ruso invento el whatsapp y regreso a donde le daban de comer gratis a hacer un donativo

Un ruso llega USA a vivir de la asistencia publica y hoy se retira de la presidecia del invento que lo saco de la pobreza Whatsapp
3 meneos
29 clics

Todo lo genial que tiene D se puede ver en ‘std.variant’ [ENG]

Hace poco leí un excelente artículo de Matt Kline sobre todo lo malo de std::visit de C++. Mis habilidades en C++ están oxidadas (hace tiempo que me fui para los pastos más verdes de D), pero tenía curiosidad sobre cómo habían cambiado las cosas en mi ausencia y cómo se podría implementar lo mismo en D. Aunque mi intuición me decía que el artículo exageraba, al final esta estaba completa y absolutamente equivocada.
3 meneos
56 clics

Una nueva era en la arquitectura de gráficos de bajo nivel en Linux (parte 1) [ENG]

Las últimas mejoras en el subsistema DRM han hecho que el la línea principal de desarrollo de Linux sea mucho más atractiva haciendo que los controladores sean más fáciles de escribir, las aplicaciones sean portables, y una comunidad mucho más amigable y colaborativa que nunca.
3 meneos
58 clics

Cómo (y por qué) hemos migrado el solitario Shenzhen a MS-DOS [ENG]  

¿Pueden dos programadores que están acostumbrados a hacer juegos para ordenadores modernos con gigabytes de RAM y pantallas de alta definición migrar uno de sus juegos a MS-DOS? Ninguno de nosotros tenía experiencia en el desarrollo en hardware tan antiguo, pero como trabajar en sistemas con limitaciones artificiales es algo así como una especialidad en el diseño de juegos dentro de Zachtronics, nos sentimos obligados a probar.
3 meneos
20 clics

El gestor de contraseñas bitwarden ya tiene aplicación de escritorio  

Hace algo más de un año que os presentamos el gestor de contraseñas bitwarden, una alternativa de código abierto a servicios como LastPass que no ha dejado de madurar desde entonces. Su última gran novedad es el lanzamiento de una aplicación de escritorio multiplataforma, disponible para Linux, Windows y macOS. Resumiendo: Bitwarden es básicamente un clon de LastPass, un servicio en la nube para gestionar contraseñas con extensiones para los principales navegadores, Android e iOS e, imprescindible, cifrado en el lado del cliente, cuya virtud más destacada es que todos sus componentes son software libre. // Relacionada: Cómo gestionar contraseñas con Bitwarden.
3 meneos
30 clics

Cómo gestionar tus contraseñas con Bitwarden, una alternativa a LastPass [ENG]  

¿No has sentido alguna vez que tienes más contraseñas de las que puedes gestionar? Es probable que sea algo más que un sentimiento y, al igual que muchos, probablemente gastes bastante tiempo recordando contraseñas independientemente de lo difíciles que sean. Es por esto que mucha gente usa servicios como LastPass o 1Password que, aunque son servicios sólidos, no dejan de ser propietarios y con código fuente cerrado. ¿Existe alternativa código abierto? Bitwarden es una alternativa de código abierto para gestionar contraseñas en la web.
3 meneos
31 clics

Google lanza la biblioteca ‘cpu_features’ para identificar las características de la CPU [ENG]

Imagina que estás desarrollando una aplicación donde la velocidad es esencial y donde ciertas instrucciones del procesador la incrementan exponencialmente. Y aparece el problema: no es posible conocer a priori qué instrucciones soporta el procesador (identificar el fabricante no es suficiente). Se pueden crear mapas estáticas con modelos y características, pero es tedioso de mantener. Aquí es donde entra cpu_features, una librería pequeña, rápida y de código abierto para obtener las características de la CPU en tiempo de ejecución.
3 meneos
5 clics

Puedes resucitar cualquier cuenta borrada de GitHub; y ello crea un problema de confianza para la plataforma

La repentina partida de un desarrollador de GitHub, junto con los paquetes que mantuvo, supuso un problema para los desarrolladores que utilizaban su código en sus proyectos. Uno de ellos resucitó la cuenta y repobló los paquetes perdidos; hecho que ha puesto en evidencia un posible problema de seguridad y de confianza en la plataforma… [via] maslinux.es/problema-de-confianza-con-github
3 meneos
17 clics

Manage Remote MySQL Servers with Local phpMyAdmin throug a SSH Tunnel [eng]

Have you ever needed to manage your remote MySQL databases, and ended up settling on the less-than-ideal setup of having an instance of phpMyAdmin on the same server as the MySQL server? Well, I am about to make your day. I am going to show you how to manage any number of remote MySQL databases from your local instance of phpMyAdmin; without compromising on security.
3 meneos
35 clics

Hershell, una shell reversa escrita en Go

Hershell, de Ronan Kervella, es una sencilla shell reversa TCP escrita en Go que utiliza TLS para proteger las comunicaciones y certificate pinning para evitar la interceptación de tráfico. Se presenta como una interesante alternativa a los payloads de meterpreter que muchas veces son detectados por los AV y, al estar escrito en Go, puede compilarse para la arquitectura deseada. Soporta Windows, Linux, Mac OS, FreeBSD y derivados.
2 meneos
14 clics

Terraformando tu infraestructura en el Cloud

Terraform nos permite describir, evaluar y aplicar cambios en nuestra infraestructura mantenida como código (infrastructure as code). Creado por Hashicorp y liberado como open source, Terraform se une a productazos de esta misma compañía como Vagrant, Vault, Nomad o Consul, los cuales destacan historicamente por su calidad y flexibilidad...
3 meneos
6 clics

Swift Package Manager – Paquetes y Dependencias

En esta ocasión aprenderemos sobre Swift Package Manager, el gestor de paquetes de Swift, una herramienta con la cual podremos crear paquetes / proyectos ya sean librerías o ejecutables, gestionar las dependencias de estos y en general administrar de una manera más fácil y consensuada la distribución de nuestro código Swift...
5 meneos
67 clics

VisUAL: un emulador de la arquitectura ARM altamente visual [ENG]  

VisUAL es una herramienta multiplataforma para facilitar el aprendizaje del lenguaje ensamblador de la arquitectura ARM. Además de emular un subconjunto del conjunto de instrucciones ARM UAL, proporciona visualizaciones de conceptos clave exclusivos de la programación del lenguaje ensamblador y, por lo tanto, ayuda a que la programación del ensamblaje ARM sea más accesible. Ha sido diseñado específicamente para usarse como una herramienta de enseñanza para el curso de Introducción a la Arquitectura Computacional en el Imperial College London.
2 meneos
46 clics

Reemplazando el firmware de los procesadores x86 con Linux y Go [ENG]  

El Intel Management Engine (ME), que es un procesador y sistema operativo independiente que se ejecuta fuera del control del usuario en la mayoría de los sistemas x86, ha sido motivo de gran preocupación para los usuarios que son conscientes de la seguridad y la privacidad. Google y otros han estado trabajando en formas de eliminar la mayor parte posible de esa funcionalidad (al mismo tiempo que se puede iniciar y ejecutar el sistema). Ronald Minnich de Google vino a Praga para hablar acerca de esos esfuerzos en 2017 Embedded Linux Conference.
3 meneos
60 clics

La latencia de composición del escritorio es real y me molesta [ENG]

Borré mi instalación de Windows 10 hoy. No fue por la intromisión de la telemetría o los anuncios en el menú de inicio, sino por la composición del escritorio. Agrega una latencia leve pero notable que hace que escribir me resulte incómodo. En Windows 7 al menos puedes apagarlo. En la siguiente figura se puede ver que la latencia mínima que puede alcanzar en Windows 10 es de aproximadamente 8 milisegundos, mientras que en Windows 7 las cosas son algo más rápidas.
2 meneos
21 clics

Cabeceras extra de microcódigo de Intel no documentadas [ENG]

Empezando en 2006, Intel añadió una cabecera extra al microcódigo de sus procesadores que, hasta hoy, está no documentada. Esta página está destinada a aquellos que quieren entender cómo estas cabeceras están estructuradas. Gracias a la base de datos de MCE (MC Extractor, Microcode Extraction Tool), ahora ya sabemos el propósito de casi todas las cabeceras extra. Esta información deriva de las observaciones de los 990 microcódigos que incorporan estas cabeceras desde marzo de 2006 hasta noviembre de 2017.
1 meneos
28 clics

Cli.Fyi, información rápida sobre direcciones IP, correos electrónicos y más  

cli.fyi es una herramienta de consulta de línea de comando para buscar información sobre direcciones IP, correos electrónicos, dominios, criptomonedas, medios, fechas, países, lenguajes de programación, etc. Lo mejor de ella es que solo tendremos que tener curl en nuestro sistema y una conexión a Internet para poder hacer uso de esta herramienta, aunque también es posible obtener la información proporcionada a través de un navegador web.
1 meneos
18 clics

Estructuras de Datos - Lista Enlazada

Hoy abordaremos un nuevo algoritmo, aprenderemos a implementar una Lista Enlazada, una estructura de datos bien importante y de las más usadas. Pudiéramos clasificarla como clásica ya que forma parte de esas estructuras de datos que todo programador debe conocer, de hecho, con esta podemos implementar otras estructuras de datos...
1 meneos
23 clics

Por qué, para qué, cuándo y cómo migrar al Cloud computing

Tanto entre mis alumnos, como en las conversaciones con otros compañeros del sector, percibo siempre la duda de la necesidad o conveniencia de migrar al Cloud. Y, ciertamente, no es algo sencillo de explicar. Muchas veces se generan intensos debates sobre si es una moda, una técnica comercial de las multinacionales para “sacarnos los cuartos” o un camino irresistible al que mejor no presentar una excesiva resistencia...
1 meneos
54 clics

Cómo el motor Unreal dibuja un fotograma [ENG]  

Desde que se tiene acceso al código fuente de Unreal Engine, es posible estudiar cómo este motor gráfico dibuja (render) un fotograma (frame). Aunque las rutas de dibujado son una bestia, es sencillo seguir las llamadas al API de bajo nivel. Para este estudio se ha utilizado una escena simple con varias propiedades, tanto estáticas como dinámicas. Entre ellas están la luz, niebla volumétrica, objetos transparentes y efectos de partículas para cubrir gran variedad de materiales y métodos de dibujado.
1 meneos
15 clics

Raft: consenso hecho simple [ENG]  

El consenso es uno de los problemas fundamentales a la hora de programar sistemas distribuidos. Queremos que los clientes perciban el sistema como una unidad coherente, pero no queremos que haya un sólo punto de fallo, con lo que se necesitan varias máquinas colaborando de un modo en que se pongan de acuerdo en el estado del mundo, aunque fallen cosas. Raft es un algoritmo de consenso creado con para ser entendible. Es una respuesta directa a Paxos, que resuelve el mismo tipo de problemas pero que es un algoritmo bastante complicado.
8 meneos
38 clics

Referendum 1-O: ¿Dónde votar? | Entre Dev Y Ops

No, no nos hemos vuelto locos, en Edyo seguimos hablando de tecnología. Sabemos también que últimamente no publicamos más que podcasts; a pesar de ello, mantenemos el blog para cosas que se cuentan mejor escritas que narradas. Hoy os traemos un análisis técnico que no puede ser más de actualidad: la web de consulta del censo para el referendum del 1-O. Os prometo que vale la pena.
2 meneos
49 clics

Microsoft no crea una sandbox para Windows Defender, así que lo hice yo [ENG]

Microsoft expuso a sus usuarios a muchos riesgos cuando lanzó Windows Defender sin ejecutarse en una sandbox, algo que me sorprendió. Sandboxing es una de las más efectivas formas de tener seguridad en las aplicaciones. ¿Por qué Microsoft usa sandboxes en aplicaciones como Edge pero por qué deja Windows Defender desprotegido?
4 meneos
51 clics

Jugando con co-rutinas en C++ [ENG]

Presentación del uso de co-rutinas (coroutines) en C++ basada en el uso de programación asíncrona (blogs.rti.com/2015/12/08/modern-asynchronous-requestreply-with-dds-rpc).
3 meneos
25 clics

Construir libros electrónicos en formato ePub escritos en Markdown usando Pandoc [ENG]

Construir un libro electrónico en ePub usando Pandoc es muy sencillo. Pandoc se llama a sí mismo el conversor universal de documentos. Y tiene sentido. En este tutorial vamos a convertir documentos escritos en Markdown a formato ePub, aunque si usas Pandoc se puede convertir a muchos otros formatos.
1 meneos
38 clics

mkosi: utilidad para generar imágenes de sistemas operativos [ENG]

mkosi (make operating system image) es una herramienta para generar imágenes de sistemas operativos que pueden ser arrancadas (booted). Hay más herramientas de este tipo, pero mkosi tiene una serie de características que pueden ser interesantes para ciertos casos de uso que no están cubiertos por el resto de herramientas de este tipo.
3 meneos
28 clics

casync: herramienta para distribuir imágenes de sistemas de archivos [ENG]

casync se inspira en rsync, la popular herramienta de sincronización de archivos, y en git, el probablemente todavía más popular sistema de control de versiones, para combinar la sincronización de rsync y la forma de acceso al contenido de git creando un sistema para almacenar y enviar de forma eficiente imágenes de sistemas de archivos con optimización para ciclos de actualizaciones de alta frecuencia a través de Internet.
4 meneos
56 clics

¿Qué hace la palabra reservada ‘new’ en Javascript a bajo nivel? [ENG]

Descripción de cómo funciona la palabra reservada ‘new’ en Javascript junto a la función de construcción de objetos y a la palabra reservada ‘class’, seguido de un ejemplo de reimplementación de la palabra reservada ‘new’ en Javascript.
5 meneos
36 clics

Google-Fuchsia, nuevo sistema operativo

Google lleva tiempo, desde agosto de 2016, trabajando en Fuchsia, un nuevo sistema operativo para sustituir ChromeOS y parece que también Android. El sistema tiene un nuevo interfaz de usuario llamado 'armadillo'. Y no solo funcionará para Fuchsia, sino se podrá añadir como una capa sobre Android e IOS. Además, es un sistema RTOS, un sistema operativo en tiempo en tiempo real. Tiene un entorno de desarrollo llamado "Flutter", aun en alpha, capaz de generar programas para Fuchsia, Android y IOS.
3 meneos
16 clics

How Thou Canst Maketh a Fine Program in Fortran [ENG]

In troth, the Fortran programming language is well suited for those persons who are scientific and who engineer. Named so for the phrase “Formula Translation,” it is a language exquisite for programming machines. Avail thyself of this guide to establish Fortran within your machine and maketh a well-appointed program out of it.
3 meneos
34 clics

Cómo funciona el algoritmo de ordenación “insertion sort” [ENG]

Muchos de los algoritmos con los que trabajamos han sido lentos y parecen ineficientes. Sin embargo, estos tienden a llegar a muchos estudiantes porque suelen ser una buena aproximación teórica para el aprendizaje. Con los algoritmos de ordenador no es diferente, por lo que hoy vamos a echar un vistazo al algoritmo de ordenación “insertion sort”. Lo interesante del mismo es que, aunque no es el más eficiente, siempre se enseña en los libros de texto y otras lecturas.
3 meneos
41 clics

En crudo y sin censura: raw sockets II (en C)

¡Qué tal! Ya estoy aquí con la segunda entrada de esta serie, que me da a mi que va a ser larga ;D Bueno, como prometí en la entrada anterior, vamos a ver el ejemplo que os dejé, vamos a ver las partes importantes de sockets raw y añadiremos o modificaremos el código para conseguir un ejemplo más versátil. Al lector: si incurro en cualquier error a lo largo de estas entradas, agradecería vuestras correcciones. Como primer ejercicio quiero que le echéis un vistazo más a fondo al código que está debajo de este párrafo y leáis los […].
3 meneos
49 clics

Resumen del protocolo MQTT [ENG]

Hay varias formas que podemos utilizar para conectar dispositivos IoT (Internet of Things) a una red. Previamente se ha comentado cómo conectar una placa de desarrollo NodeMCU a una red Wifi; conectar dispositivos IoT a una red con protocolos en toda regla como puede ser HTTP puede ser un poquito duro. Por eso, una solución popular, sencilla y ligera puede ser usar el protocolo MQTT.
4 meneos
25 clics

Cómo ejecutar Wine usando aceleración gráfica en un contenedor LXD en Ubuntu [ENG]  

Wine permite ejecutar programas de Windows en un entorno Linux. Cuando se instala Wine, este añade muchos paquetes, incluyendo paquetes para arquitecturas de 32 bits, lo que se puede considerar como algo desordenado. ¿Habría alguna forma de instalar todos estos paquetes en un contenedor para para que quede todo más limpio? Gracias a los contenedores LXD, podemos hacerlo.
1 meneos
26 clics

Construyendo un entorno de escritorio para Blackberry QNX 7 [ENG]  

QNX es un sistema operativo embebido para automoción, sistemas embebidos en general y mercados médicos. Sin embargo, QNX no es un sistema embebido típico, sino que es un sistema operativo de tipo UNIX y totalmente compatible con POSIX con todas las características esperables de cualquiera sistema operativo de escritorio o de servidor. Esto significa que portar aplicaciones libres debería ser una tarea relativamente sencilla. Con esto en mente, me puse a desarrollar un entorno de escritorio completo para Blackberry QNX 7.
2 meneos
28 clics

La importancia de escribir código limpio [ENG]

Si hablas bien, a la gente le encantará escucharte. La comunicación es un arte que puede enamorar a quien te escuche o puede hacer que te lluevan críticas. Esto pasa de forma similar en el mundo de la programación. Como dice Donald Knuth, “programar es el arte de decirle a otro ser humano lo que uno quiere que hagan los ordenadores”. Si escribes código horrible, no serás capaz de decirle a otra persona qué es lo que has escrito ni lo que quieres que haga el ordenador.
1 meneos
3 clics

Lo nuevo de Cdecl 3.0 [ENG]

Cdecl (pronunciado en inglés como see-deh-kull) es una herramienta para componer y descifrar declaraciones en C y C++., también conocido en inglés como “gibberish”. En general esta herramienta no se necesita demasiado, pero es muy útil en ciertas ocasiones. Puede ser usada de forma interactiva o puede aceptar entrada de otros programas. Como ejemplo de funcionamiento podríamos indicarle la entrada “explain int *const (*p)[4]” y su salida sería “declare p as pointer to array 4 of const pointer to int”.
3 meneos
36 clics

Los buenos comentarios en el código explican “por qué”, no “qué” (y 3 reglas más para escribir buenos comentarios) [ENG]

Los comentarios en el código fuente no son algo adicional al los proyectos, son parte de dichos proyectos. En esta entrada se muestran una serie de consejos para mejorar dichos comentarios.
4 meneos
46 clics

Estilo de código en el kernel Linux [ENG]

En este pequeño documento se describe el estilo de código preferido para desarrollar el kernel Linux. El estilo de código es muy personal y no se va a forzar ningún estilo en este documento, pero escribir siguiendo determinada forma hace que el código sea mucho más mantenible. Pero, antes de nada, sugiero descargar e imprimir una copia del estilo de código GNU para NO leerla nunca. Quémala. Es un gran gesto simbólico. Y a continuación, las normas del estilo de codificación del kernel Linux.
3 meneos
30 clics

Guía ilustrada del recolector de basura del motor de Javascript V8 [ENG]

Esta guía pretende mostrar, de una forma amigable, aspectos internos del recolector de basura de V8, el motor de Javascript desarrollador por Google.
2 meneos
26 clics

Por qué C++ es divertido: metaprogramación con plantillas [ENG]

Después de haber programado en una amplia variedad de lenguajes de programación, puedo decir que C++ es el lenguaje que más me impresiona. Este texto trata acerca de uno de mis ejemplos favoritos sobre la usabilidad de la metaprogramación con plantillas. El problema: imagina que eres el desarrollador de una aplicación de servidor que puede ser personalizada por scripts de usuario. Después de elegir el lenguaje de script, hay que exponer una serie de funciones para que dicho script pueda trabajar con tu aplicación y permitir a los usuarios […].
2 meneos
7 clics

La paridad en el sector tecnológico

En un sector donde la presencia de las mujeres es menor al 20% puede parecer sobredimensionado hacer un evento paritario y sin duda lo es. Lo es porque el objetivo que queríamos conseguir es crear un espacio inclusivo con ellas donde se encuentren a gusto y para eso, aplicar el porcentaje estrictamente o incluso ser la única mujer o no ayuda a crear un entorno donde más mujeres se animen a participar en eventos.
1 meneos
13 clics

Guía de ensamblador de x86 para principiantes (parte 2 de 2) [ENG]

En la parte anterior de esta serie de sobre ensamblador x86 (www.meneame.net/m/SysDevs/guia-ensamblador-x86-principiantes-parte-1-2) vimos la información básica del ensamblador de x86, como la convención de llamadas a funciones de esta arquitectura. En esta parte usaremos lo aprendido en la parte anterior para construir una calculadora RPN (Reverse Polish Notation) escrita enteramente en ensamblador de x86.
2 meneos
28 clics

Guía de ensamblador de x86 para principiantes (parte 1 de 2) [ENG]

Escribir código ensamblador estos días es prácticamente innecesario, aunque es recomendable que cualquiera interesado en la programación sepa cómo funciona. No sólo ofrece otra perspectiva comparado con lenguajes de alto nivel, también es muy útil a la hora de depurar código en otros lenguajes. En esta serie de dos entradas veremos cómo implementar una calculadora en notación polaca inversa (RPN: Reverse Polish Notation) en ensamblador desde cero.
2 meneos
21 clics

Postmortem del borrado de base de datos en Gitlab del 31 de enero

1.¿Por qué no funcionaba Gitlab? Porque se borró la base de datos principal en vez de la secundaria. 2.¿Por qué se eliminó la base de datos? Porque al fallar la replicación requería borrar el directorio para volver a empezar. 1.¿Por qué la restauración tardó tanto? Porque se restauró la copia de stagging que estaba en una VM Azure en otra región. 2.¿Por qué se restauró la copia de stagging? Porque las bases de datos de azure no permiten hacer copia del disco. 4.¿Por qué no usar el procedimiento standar? Porque falló y no alertó
« anterior1234

menéame