Category Archives: programming

Constructing a software design

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. C. A. R. Hoare

Also posted in savant, science, systems | Tagged , , | Comments closed

Kludge

Según Wikipedia, un “…kludge (or kluge) is a workaround, a quick-and-dirty solution, a clumsy or inelegant, yet effective solution to a problem, typically using parts that are cobbled together.” Esta palabra la encontré por primera vez en un libro de Andrew Tanenbaum, hace ya muchos años. El contexto, no lo recuerdo. En todo caso, la […]

Posted in programming | Tagged , | Comments closed

Resizing multiple image files

For the Ponyo post I had a bunch of PNG 853×480 screenshots. At first, the post used 300×168 images, resized by the blog’s engine, such as the below one: However, the ideal width for images in this blog is about 600 pixels: For resizing multiple files I recurred to ImageMagick command line tools (here are […]

Posted in programming | Tagged , , , | Comments closed

Also posted in savant, science, systems | Tagged , | Comments closed

The Hobgoblin

Without a doubt, performance is a cornerstone of a great user experience. Like security, it is the most misunderstood and oft-used scapegoat of the software developer. It’s not uncommon to hear developers reject ideas with a flippant, “We can’t do that, it will negatively impact performance.” Rarely quantified and frequently cited, performance is the hobgoblin […]

Also posted in systems | Tagged , | Comments closed

Jouer avec le feu

Quelques faits semblent établis. Les auteurs de ce virus ont disposé de temps (environ dix « années-ingénieur » de travail) et de connaissances rares. « L’analyse de son code indique clairement que Stuxnet n’a pas pour but d’envoyer un message ou de démontrer un concept, écrit Langner. Il s’agit de détruire [des] cibles. » Cyber-attaque contre Téhéran (article par Philippe Rivièr, dans Le Monde […]

Also posted in trincheras | Tagged , , | Comments closed

Why adding people to a late software project makes it later?

That statement is known as Brooks’s Law, and it was coined by the renowned computer scientist and software engineer Frederick P. Brooks. Concretely, the original statement found in his 1975 classic The Mythical Man-Month is “adding manpower to a late software project makes it later”. Basically, the idea is that adding more analysts, designers or […]

Posted in programming | Tagged , , , | Comments closed

An E(x)tern Newbie Question

I want to know how to declare a const variable in one file and access it from other files? (C++). It’s a fairly basic question, and reveals that you have to study more C++. What you want is to define a const variable at global scope. Unlike non-const variables (which are extern by default), const […]

Posted in programming | Tagged , , | Comments closed

Reentrant Routine

A routine or procedure P is reentrant (or pure code) if it can be “re-entered” after it is already in execution. Basically, it means that P can be executed two or more times simultaneously, or alternatively, that P can be safely executed concurrently. There are some conditions P must follow in order to be reentrant, […]

Posted in programming | Tagged , | Comments closed

The Nightmare before Christmas

Improbable que unos días antes de Navidad se encuentre usted inmerso en los ajustes finales de un salvapantallas (protector de pantallas/screensaver). Su salvapantallas utiliza OpenGL para el renderizado, y corre en Windows. Flujos lógicos perfectamente sincronizados, compiladores felices, arte gráfico hermoso. Prueba A superada. Prueba B superada. El problema apareció en la prueba N. En […]

Posted in programming | Tagged , , , , , , | Comments closed