Friday, 27 January 2023

A proposal to improve C++ safety

A serious proposal to improve C++ safety

The C++ of old times

When I began my voyage in the land of programming, my teacher taught my classmates and me C++. It was a really good way to start programming, since it gave me a deep undestanding of how a program is written and how computers work (thank you, Renato Conte!).
C++ at the end of the '90s was almost a C with classes. Sure, we had streams, but it lacked lists, vectors and even strings where still C's characters arrays. Without Boost libraries, programming in C++ gave little more than plain C.

Thursday, 17 November 2022

Hands up! Measure! And keep it simple!

At the end of this post I will expose an example of a speedup of 8000x. This means that a program that at first took almost five hours to complete, ended up in two second.
A ratio of 8000:1.
Pretty impressive!

Wait! What?!

Monday, 24 October 2022

Why C++ is difficult

C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.

Source is here. Many of you will recognize these words: it's a piece of Linus Torvalds' rant aganist C++, when some developers asked him to move Git from C to C++.

Monday, 26 April 2021

Between the product and the prototype


So, it seems lead isn't a good material for wings
(Australian War Memorial collection, No restrictions, via Wikimedia Commons)

These days I had a conversation with my colleagues about Python. One of them supported strongly the argument that Python is a good language for prototyping, but not for a final product. As stylists prepare prototypes for their new dresses with cheap fabric and then made the final product with the costly silk they designed from the very beginning.
To better support the paragon, they asked me: would you make the software control of a robot in Javascript or PHP?
Strong opinion, indeed. My answer was "no, because they are languages with big ambiguities".
But Python?

Monday, 4 January 2021

Makefiles Returns

Doing stuff: the good old way

I often write Makefile(s) for my projects, even when they’re in some scripting language. This because the good old, humble make is installed almost everywhere and its simple syntax does one thing and does it well: doing tasks according to dependencies.

Wednesday, 22 February 2017

Some reflections about In Defense of the "Not Invented Here" Syndrome


Just invented here!
Image curtesy of Wikimedia

Some months ago I read an interesting article by Joel Spolsky, written back in the neolithic epoch (2001).

Wednesday, 18 November 2015

A Way to Deploy Python Programs

[...]we will use Java, because a jar file is easier to deploy.
This sentence occurs sometimes where I work. In this multi-environment place, a easy way to deploy your software is a fundamental requirement.

Wednesday, 3 December 2014

Why a Build System in IDEs Era?

Some friends of mine criticized my old post «Build your C/C++ programs everywhere with SCons», arguing a build system is useless in modern world.


Tuesday, 17 June 2014

What I miss in Python Game Development


As I said before (and I repeated), if I start a new project, I prefer to work with Python, 'cause I like its huge standard library, its portability and its syntax and this is true for every new project I do for work: such as "building netcdf files", "analize meteorological datas", "manage databases". But I had a big problem for a personal project, a long dreamed chimera never really realized: a videogame. I thought to build a simple shooter, something like the old "galaga" or "space impact", using hardware accelerated graphics for great effects, such as particles and flashes. There are many schools of thought on game development under Python: there's PyGame ones, Pyglet, Pandas, ecc. I would like to talk with you about actual game development in python and reflect about my needs

Thursday, 17 October 2013

Mac OS X, Python, PySide and Matplotlib

In these days I'm working on Python application for manage some metereological datas. It uses PySide for the GUI and Matplotlib to plot some useful charts. Unluckily, I had some troubles to add this last library. After some work, I found a solution. This post is a brief guide to my little oddity on using PySide and Matplotlib on a Mac OS X environment.

Wednesday, 6 March 2013

Miguel de Icaza moves to Mac

This is a fresh news: Miguel de Icaza, founder of Gnome and Mono projects, declares in this post he moved from GNU/Linux to Mac OS X.

Wednesday, 27 February 2013

Tecnonaty

QTEN9DCZ9AD2

New Aqueduct Release


Aqueduct development continues and now it supports HTML throught a new AqueductDriver. So you can export your Fountain files as HTML+CSS files.
Try it and report bugs.
You can obtain Aqueduct at


http://www.github.com/jacopoprendin/aqueduct


Monday, 18 February 2013

Aqueduct on GitHub

If you're a writer and you like to write screenplays for theatre or movies (as me), maybe you know Fountain, a markup language realized to give you a simple, easy and elegant way to manage your scripts.

Thursday, 7 February 2013

Why I Will Not Use Java


This post is quite old. I wrote it back in 2010, when I realized Java's main drawback is its verbosity. I didn't expand my thoughts, 'cause I was too engaged at work with C, Objective-C and Python. But in these days I read some articles about Java 8 and I felt very disappointed, 'cause it lacks some features, some snippets and doesn't resolve Java's main drawbacks.

Java Language is Verbose

Java Language is verbose, in the worst way you can say it, mainly for two reasons.

Sunday, 6 January 2013

Lua vs Python or Embedding vs Extending


Another (in)famous comparison!
At least once in your programmer career, you will face the need to add a scripting language to your program. Many famous programs use a scripting language: Unreal, Quake, Emacs, Blender 3D and many games. But, when you decide it and when you start to project your implementation, you face a terrible dilemma: should you make a program with a interpreter or functions for a interpreter? This crossroad is the "embed vs extend". I'll talk about my personal opinion and how this dilemma is equal by Lua vs Python comparison.

Monday, 17 September 2012

Welcome on Aquamacs Emacs!

First post of 2012. I'm sorry for this, but I have really a lot of work to do!
Emacs is one of most famous Free-Software project. It's the first brick posed by Stallman for the GNU project and the most favourite editor for real programmers. Ok... VIM is equally famous, but I choosed Emacs for my jobs! Aquamacs Emacs is a Emacs implementation designed to run on Mac OS X systems. Maybe Mr. Stallman could hate me to advertising this program, but I hope he forgive me, because I think this "trojan horse strategy" could be successful. Anyway, let's talk about this good piece of software.

Wednesday, 30 November 2011

The End of Multi Threaded Programming

I warn you: this is a provocation. I really want to have replies to this post. Because I'm talking about one of most famous themes for computer-science students: threads and multithreading programming.
A special thanks to Andrea "MEgrez" Talon whom solved some doubts I had about Node.js

Wednesday, 23 November 2011

Build your C/C++ programs everywhere with SCons



Maximum Power!

In these days I'm trying to realize a small and portable game engine using SDL+OpenGL, fascinated by their power. I begun writing some C files and a simple Makefile.
Portability is a fundamental requisite, so I decided to move to a portable building system. I thought CMake could be a good choice, mainly because it's used by several open-source project: KDE, Inkscape, OGRE, MySQL use CMake. So, I decided to write my platform-indipendent CMakefile. It was one of most boring and error-prone task I've ever saw. After some days, I still can't have a functionally CMake file: I've got less problems writing then a python script for compiling it. Frustrating.

Monday, 14 November 2011

Homebrew, everything you need






I am a Mac OS X user. I like my OS and I love how I can install/remove applications just with a drag'n drop. But some useful programs can't be find and this could be very annoying. Command-line programs like netcat or sdl-config or chocolate-doom still haven't a Mac OS X package.