wrapping c plus plus classes in Python

This is a quick and dirty way to interface C++ code with Python, translating one or more C++ classes in Python objects. First, we need some c++ sample code: //myclass.h #ifndef MYCLASS_H #define MYCLASS_H #include <string> using namespace std; namespace pets { class Dog { public: Dog(string name, int age); virtual ~Dog(); string talk(); protected: string m_name; int m_age; }; } //myclass.cpp #include "myclass.h" #include <string> namespace pets { Dog::Dog(std::string name, int age): m_name(name),m_age(age) { } Dog::~Dog() { } std::string Dog::talk() { return "BARK! I am a DOG and my name is "+m_name; } } now, we can try a little test program just to exercise our class: ...

August 8, 2016 · Andrea Manzini

il linguaggio Lua: parte 2

segue dalla prima parte Moonwalking: Tipi di dato Nello scorsa puntata abbiamo utilizzato due degli otto tipi disponibili: i numeri e le stringhe. Per semplicita’, Lua non distingue tra interi e floating point: tutti i valori numerici sono conservati come double, cioe’ in virgola mobile a doppia precisione. Nel caso la CPU non disponesse di unita’ FPU, è possibile cambiare una riga nel sorgente (per l’esattezza, #define LUA_NUMBER in lua.h) e ricompilare; questo si fa tipicamente nei sistemi embedded con processori a basse prestazioni. Le stringhe posso essere delimitate da apici singoli o doppi, nel qual caso vengono espanse le usuali sequenze di escape come \b e \n; usando invece i delimitatori [[ ]], possiamo scrivere stringhe su piu’ righe e disattivare l’interpolazione. Vediamo un paio di esempi, sfruttando l’opzione -e per eseguire codice da riga di comando: ...

May 24, 2016 · Andrea Manzini

how to automatically expire mysql records after a fixed amount of time

the issue we have a database table containing usernames and passwords, but we want to make them temporary like expiring after a fixed number of days from the creation. This is typical usage for a wi-fi captive portal with RADIUS authentication backed on mysql. the idea we store a new field in the table with the timestamp, and run a periodic “cleaner” job that deletes record older than X days. ...

May 5, 2016 · Andrea Manzini

il linguaggio Lua: prima parte

introduzione Ho sempre avuto un debole per il software leggero e snello: sara’ un retaggio di quando la memoria si misurava in Kb e lo storage era basato su… audiocassette! Lua e’ un linguaggio che incarna questa filosofia: occupa circa un centinaio di kbyte (meno di molte pagine web), ha una stupefacente rapidita’ di esecuzione, una sintassi chiara e, come bonus, gira su qualsiasi CPU per cui sia disponibile un compilatore C. ...

April 13, 2016 · Andrea Manzini