Sistemas & Desarrollo

encontrados: 82, tiempo total: 0.009 segundos rss2
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.
15 meneos
588 clics
¿Crees que sabes mucho de C? [ENG]

¿Crees que sabes mucho de C? [ENG]

Muchos programadores dicen que saben C. Tiene la sintaxis más famosa, tiene más de 44 años de historia y no tiene características oscuras. ¡Es fácil! Bueno, muchos programadores dicen que saben C. Lo más probable es que lo hayan aprendido en la universidad y que tengan algún tipo de experiencia en ello, porque en realidad no hay mucho más que saber. Pero en realidad C no es tan simple. Pero si piensas que sí lo es, prueba a hacer este test.
13 2 0 K 37
13 2 0 K 37
3 meneos
44 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.
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.
2 meneos
44 clics

La asombrosa plantilla que no hace nada [ENG]

Recientemente empecé a usar una nueva plantilla con más frecuencia en el nuevo código D: el uso de la plantilla de identidad. La plantilla de identidad (disponible en std.traits aunque no documentada), se declara así: alias Identity (alias X) = X;. Esta es una forma abreviada de una declaración de plantilla, sinónimo de la forma explícita: template Identity (alias X) { alias Identity = X; }. Se trata de una plantilla epónima, por lo que la instanciación se reemplaza con X (el único parámetro de la plantilla). En consecuencia, Identity!(anything) es asignado a anything. Entonces, ¿de qué sirve una plantilla que no hace nada?
2 meneos
45 clics

D como reemplazo de C [ENG]

Mi historia es como muchas historias de programadores de sistemas: usaba C para la mayoría de mis programas, pero un día me di cuenta de que la mayoría de mi código en C reimplementaba cosas de C++: arrays dinámicos, mejores cadenas, clases polimórficas, etc. Así que intenté usar C++; y me gustó en un primer momento. Pero cuanto más aprendía peor se hacía mi código. Asumámoslo: C puede ser difícil de usar, pero tiene una “elegancia” que nunca se ve en C++, por lo que muchos programadores de C++ vuelven a C. Pero en mi caso descubrí D.
3 meneos
71 clics

Cómo escribí un compilador de C que se compila a sí mismo en 40 días [ENG]

He escrito un compilador de C que se compila a sí mismo al que llamé 8cc. Y lo he escrito en 40 días. Esta entrada es un registro de todos los pasos que he dado para escribir el compilador. El código fuente y su historial están disponibles en GitHub.
3 meneos
21 clics

bic: intérprete de C y explorador de API [ENG]  

bic es un proyecto que permite a los desarrolladores explorar y probar API usando un bucle de lectura, evaluación e impresión (REPL, Read, Eval and Print Loop en inglés) similar al que tiene Python o al propio BASH.
3 meneos
87 clics

Ahorrando dinero cambiando de PHP a D [ENG]

2night nació en 2000 como una revista en línea centrada en la vida nocturna y restaurantes en Italia. Con los años, nos hemos convertido en una agencia de marketing experimental en toda regla. Empezamos a usar D en 2night en 2012 cuando desarrollamos un servicio web utilizado por nuestras aplicaciones de Android e iOS. Ha funcionado bien desde entonces, pero fue solo un pequeño experimento. En 2019, después de muchos otros experimentos, decidimos dar el gran paso: cambiamos el sitio web completo de PHP a D.
3 meneos
33 clics

Usar mónadas es mucho más fácil de lo que crees, empezando con la programación funcional

Seguramente todos tenemos formada una buena idea sobre lo que es una “propiedad”, un “método estático”, un “singleton” u otros términos. Nos resultan algo más exóticos términos como “clase abstracta” o “función virtual pura”. Todos éstos son términos habituales en la programación orientada a objetos. Lo que seguramente ya no tengamos tan claras son todas las ramificaciones, implicaciones, interacciones que estos conceptos poseen y, sin embargo, los usamos. Usar una mónada es tanto o más fácil de usar que, por ejemplo, un objeto. Pero una […].
2 meneos
86 clics

La estética del código fuente: a la búsqueda del arte en la programación  

Un lenguaje informático no es más que un conjunto de instrucciones que introducimos en una máquina para que esta opere permitiéndonos así desarrollar programas. De este modo, las distintas formas en que combinamos dichas instrucciones dan lugar a los diferentes estilos y escuelas responsables de lo que podemos denominar ‘la estética de la programación’. Esa estética, según las reglas a las que responda, se puede clasificar a su vez en cuatro grandes grupos que tradicionalmente, como muchas corrientes artísticas, han coexistido.
4 meneos
200 clics
Por qué abandoné la programación en Julia [ENG]

Por qué abandoné la programación en Julia [ENG]

La primera vez que oí hablar de lenguaje de programación Julia me quedé entusiasmado con sus características: tipado dinámico, buen rendimiento, gestor de paquetes integrado, macro al estilo de Lisp, posibilidad de llamar funciones de Python y C, etc. Sin embargo, cada vez que leo más sobre el lenguaje y, sobre todo, cada vez que experimento más con él, más desencantado me vuelvo.
13 meneos
595 clics
Aplicando el requerimiento del “buen gusto” en la programación de Linus Torvalds [ENG]

Aplicando el requerimiento del “buen gusto” en la programación de Linus Torvalds [ENG]  

En una reciente entrevista a Linus Torvalds, el creador de Linux, este hizo un apunte sobre programar con “buen gusto”. ¿Buen gusto? El entrevistador le pidió algunos detalles al respecto y Linus presentó un trozo de código. Código que era un ejemplo de programación de “mal gusto” para poder hacer un contraste inicial. Entonces, ¿qué es programar con “buen gusto”?
99 meneos
1655 clics
Envío erróneo o controvertido, por favor lee los comentarios.

Programación en ensamblador de x86-64 desde Ubuntu [PDF|2,5 MB] [ENG]

El propósito de este texto es proporcionar una referencia para el lenguaje ensamblador de nivel universitario y los cursos de programación de sistemas. Este texto aborda el conjunto de instrucciones x86-64 para la popular clase de procesadores x86-64 que utilizan el sistema operativo Ubuntu de 64 bits. Si bien el código proporcionado y varios ejemplos deberían funcionar bajo cualquier sistema operativo de 64 bits basado en Linux, solo se han probado bajo Ubuntu 14/16/18 LTS (64 bits).
64 35 16 K 49
64 35 16 K 49
28 meneos
859 clics

Tipografías para programación menos conocidas [ENG]  

En los últimos meses me han interesado, incluso fascinado, las fuentes de programación. Como programadores, miramos texto todo el día: código, registros, salidas de comandos, herramientas de monitoreo, etc. Si vamos a ver texto todo el día, también podríamos hacer que sea fácil y agradable para nuestros ojos leer ese texto.
19 9 0 K 47
19 9 0 K 47
21 meneos
269 clics

Guía de programacion de módulos del kernel Linux [ENG]

Este libro es una guía de programación de módulos del kernel Linux que se puede distribuir libremente. Inicialmente se centró en la versión 2.2 del kernel hasta que su autor principal, Ori Pomerantz, dejó de tener tiempo para mantenerlo actualizado, con lo que sus mantenedores han cambiado a lo largo de los años hasta que, finalmente, Jim Huang se hizo cargo de su actualización para cubrir hasta las versiones 5.x del kernel Linux.
17 4 0 K 26
17 4 0 K 26
5 meneos
54 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.
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.
5 meneos
283 clics

Python no es C [ENG]

He estado usando Python mucho últimamente en diversos proyectos de tratamiento de datos. Python es conocido por su facilidad de uso, por lo que alguien con experiencia en programación podría usarlo de manera eficaz en pocos días. Esto suena bien, pero puede ser un problema si se programa en Python como si se programase en otro lenguaje. Déjenme darles un ejemplo basado en mi propia experiencia. He escrito código en varios lenguajes por lo que Python no debería ser un problema, ¿no? Pues caí en la trampa. Usé Python como si fuera C.
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.
14 meneos
526 clics
Una mirada constructiva a TempleOS [EN]

Una mirada constructiva a TempleOS [EN]

TempleOS es de alguna manera una leyenda dentro de la comunidad de los sistemas operativos. Su único autor, Terry A. Davis, ha gastado los últimos 12 años creándolo desde 0. Por desgracia, Terry sufre de esquizofrenia y tiene tendencia a aparecer en diferentes foros de programación con extraños y paranoicos comentarios, a menudo racistas. Quizás se puede ver templeOS como un sistema operativo de investigación: qué se puede conseguir cuando no se está bloqueado por el pensamiento establecido, la compatibilidad y la demanda del mercado.
13 1 0 K 39
13 1 0 K 39
1 meneos
29 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...
2 meneos
20 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...
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.
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

menéame