Sistemas & Desarrollo

encontrados: 11, tiempo total: 0.125 segundos rss2
209 meneos
3805 clics
Arrancar un 486 desde un disquete con el kernel Linux más reciente y estable hasta a la fecha [ENG]

Arrancar un 486 desde un disquete con el kernel Linux más reciente y estable hasta a la fecha [ENG]  

En agosto de 2019 participé en un concurso cuyo desafío era sincronizar un archivo MIDI con un sintetizador de voz cantando la letra. En el concurso de esta semana la idea era encontrar un ordenador con un 486 como procesador (pizza box form factor) y hacerlo funcionar, así que me puse a buscar uno por Internet. Después de encontrarlo, el reto era iniciar una versión reciente de Linux, cosa que no fue trivial. Finalmente, después de configurar el kernel de forma mínima y generar un pequeño initramfs, conseguí meterlo en un disquete e iniciar el equipo.
112 97 3 K 52
112 97 3 K 52
2 meneos
10 clics

El C++ moderno no nos salvará de la inseguridad en el uso de la memoria [ENG]

Critico frencuentemente los lenguajes inseguros respecto a la memoria, principalmente C y C++, especialmente cómo inducen un número excepcional de vulnerabilidades de seguridad. Mi conclusión, basada en la revisión de la evidencia de numerosos proyectos de software grandes que utilizan C y C++, es que debemos migrar nuestra industria a lenguajes seguros respecto al uso de la memoria (como Rust y Swift). Una de las respuestas que recibo con frecuencia es que el problema no son C y C++ en sí mismos, sino que los desarrolladores se equivocan. Desafortunadamente mi experiencia en grandes proyectos me indica que hay mucho C++ totalmente moderno que introduce vulnerabilidades.
10 meneos
161 clics
Cómo evitar errores usando C++ moderno [ENG]

Cómo evitar errores usando C++ moderno [ENG]

Uno de los mayores problemas de C++ es tener un gran número de constructores cuyo comportamiento no está definido o simplemente es inesperado para el desarrollador. Estos problemas se identifican generalmente cuando se pasa el analizador estático que es, hasta donde sabemos, la parte donde mejor se detectan dichos errores, en la fase de compilación. Veamos qué técnicas de C++ moderno nos ayudan a escribir código simple y limpio para evitar este tipo de errores.
4 meneos
13 clics

PHP moderno [ENG]

La última vez que usé PHP fue probablemente alrededor de 2017, aunque fue solo en el contexto de admitir algunos sitios de WordPress. Para ese momento ya se había lanzado la 7.2, pero no tenía ni idea. Quería evitar trabajar con PHP a toda costa. Este mes me tomé un tiempo para verificar qué cosas buenas que desconocía se han agregado al lenguaje. Y, para ser honesto, las cosas se ven muy bien.
5 meneos
172 clics
¿Por qué procesar un array ordenado es más rápido que procesar uno desordenado? [ENG]

¿Por qué procesar un array ordenado es más rápido que procesar uno desordenado? [ENG]  

He aquí un fragmento de código en C++ que parece muy peculiar. Por alguna extraña razón, el procesado de los datos ordenados hace que, milagrosamente, la ejecución del código sea casi seis veces más rápida que con los datos desordenados. ¿Qué está pasando? ¿Por qué procesar un array ordenado es más rápido que procesarlo desordenado?
9 meneos
211 clics
Conquista la terminal con “El arte de la linea de comandos”

Conquista la terminal con “El arte de la linea de comandos”  

The art of command line es un proyecto colaborativo disponible en GitHub que nos ofrece una guía para dominar los comandos más útiles que nos podemos encontrar en sistemas GNU/Linux, Unix y Mac OS X. Existen varios libros que tratan profundamente este tema, en el caso de The art of command line lo que ofrece es un punto de partida para los se inician en Linux y la opción de descubrir algún que otro truco sobre el lenguaje Bash –la guía esta enfocada claramente hacia ese interprete– por parte de los más usuarios más experimentados.
46 meneos
1243 clics
Catorce de los proyectos de código abierto más activos en GitHub

Catorce de los proyectos de código abierto más activos en GitHub  

En GitHub hay miles, incluso decenas de miles de proyectos de software open source (y otras muchas cosas, que abogados, periodistas o escritores están apuntándose cada vez más al versionado). Tantos que uno puede no saber por donde empezar. Una manera muy interesante es el propio ranking de tendencias de GitHub, una especie de Los 40 Principales del software libre, ideal para encontrar proyectos en los que colaborar, forkearlos o simplemente inspirarse. Estos son actualmente los más calientes a fecha de noviembre de 2017.
35 11 1 K 49
35 11 1 K 49
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.
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.
20 meneos
317 clics

La E/S es más rápida que la CPU: separemos conceptos y quitemos la mayoría de abstracciones del SO [ENG|PDF 444 Kb]

La E/S es cada vez más rápida en servidores que tienen NIC programables rápidos y memoria principal no volátil funcionando a cerca de la velocidad de DRAM, pero la velocidad de los procesadores monohilo se ha estancado. Las aplicaciones no pueden aprovechar las capacidades del hardware moderno cuando usan interfaces creadas alrededor de abstracciones que asumen que la E/S es lenta. Por lo tanto proponemos una estructura para un sistema operativo llamada parakernel que elimina la mayoría de las abstracciones del sistema operativo proporcionando interfaces que aprovechen el máximo potencial del hardware. El parakernel facilita la paralelización particionando los recursos de forma segura.
16 4 0 K 45
16 4 0 K 45
9 meneos
339 clics

Herramientas de línea de comandos más rápidas usando el lenguaje de programación D [ENG]

Esta entrada muestra cómo unas simples construcciones en el lenguaje de programación D pueden hacer que una ya rápida herramienta de línea de comandos se convierta en una especialmente rápida sin perder la simplicidad inherente del programa original. La solución es aplicable a muchos problemas de programación, no sólo a herramientas en línea de comandos. Esta entrada muestra cómo funcionan estas técnicas y por qué son efectivas.

menéame