24Jul/080
TNTNet: Páginas web en C++
Algo interesante que me trajo bastante curiosidad, Tntnet es una aplicación que actua como servidor de aplicaciones web, lo novedoso de esto, es que deja mezclar html con código en C++, este se puede ejecutar abriendo un bloque con <{ }> o un valor al estilo de php con <$var$>, en fin son archivos ecpp que se compilan transforman a cpp y de ahí se compilan con el g++:
ecppc archivo.ecpp
g++ -c -fPIC archivo.cpp
Con esto tenemos un .so que es lo que será ejecutado por el servidor (avisandole por un archivo de configuración).
Ejemplo de código de una calculadora (el original):
<%args>double arg1 = 0; // typed parameter with default valuedouble arg2 = 0; // typed parameter with default valuechar op = ' '; // typed parameter with default valuemethod = "post"; // parameter with default type std::string <{ // <= this starts a c++-processing-block double result = 0.0; bool result_ok = true;switch (op){ case '+': result = arg1 + arg2; break; case '-': result = arg1 - arg2; break; case '*': result = arg1 * arg2; break; case '/': result = arg1 / arg2; break; default: result_ok = false;} }> <# <= this terminates a c++-processing-block (and this is a ecpp-comment) #> <html><head> <title>Calculatortitle> head><body bgcolor=#ffffcc><h1>Tommi's Tnt-Calculatorh1> <form method=<$method$>> <# print value of a c++-variable #> <# you can output other types as well - arg1 and arg2 are of type double. They just need a outputstream-operator #><input type="text" name="arg1" value="<$arg1$>"> <br><input type="text" name="arg2" value="<$arg2$>"> <br><input type="submit" name="op" value="+"><input type="submit" name="op" value="-"><input type="submit" name="op" value="*"><input type="submit" name="op" value="/"> % if (method == "get") { // '%' in the first column makes a c++-one-liner % } form> % if (result_ok) { <hr><$arg1$> <$op$> <$arg2$> = <$result$> % } body>html>
Sin duda bastente copado para ponerse a revisar y sacarle jugo.
La web oficial: http://www.tntnet.org
Oscar J. Gentilezza Arenas (Exos) Programador y curioso en lo relacionado en la informatica, actualmente trabaja de programador web usando PHP y manteniendo servidores en GNU/Linux y FreeBSD
