Variables Application de ASP en PHP



En ASP existen las variables “Application”, parecidas en funcionamiento a las sesiones, pero que son compartidas por todos los usuarios. Es decir, como variables de sesión pero visibles en todas las sesiones del servidor.

Este tipo de variables tiene algunos usos interesantes, siendo el ejemplo clásico el del contador de usuarios. Como la variable es compartida por todos los scripts, es muy fácil registrar la cantidad de hits de un sitio, o las sesiones creadas para intentar contabilizar los usuarios distintos.

En fin, hace unos días estoy desarrollando una extensión para PHP 5, justamente para tener este tipo de variables Application. Se trata de un módulo de PHP como cualquier otro. La magia de las variables compartidas se realiza con shared memory de la biblioteca libmm.

Actualmente tengo funcionando una versión prototipo en Debian Lenny, Apache 2.2.12 y PHP 5.3.0. Por funcionar con shared memory se precisa tener PHP como módulo de Apache (no CGI)  y a éste funcionando en modo worker (no prefork). Además, PHP debe haber sido compilado con –with-mm, lo que hace que no funcione en entornos thread safe si usamos además el módulo session…

En realidad este es un llamado a la solidaridad, para quienes estén más familiarizados con las distintas variedades MPM de Apache y también para realizar algo de testing en alguna plataforma Windows. ¿Interesados?

He llamado al módulo “appvar” y las funciones que provee esta ínfima versión 0.1 son:

  • appvar_set(“mi_variable”,”mi_valor”);
  • appvar_get(“otra_variable”); //se conserva en memoria, y visible por todos los scripts!
  • appvar_unset(“cual_variable”);

Además cuenta con lock y unlock, todavía no implementado.

→ Sin comentarios

Experimento lingüístico con Clarín



Hace unas semanas se me ocurrió hacer un experimento. Durante 15 días recolecté las palabras más usadas en el feed RSS del diario Clarín. Las palabras relevadas corresponden a los títulos y bajadas de las noticias en Clarín Digital.

Si les interesa, estos son los números que muestran las palabras más utilizadas por este diario:

[gobierno] => 73
[gripe] => 53
[presidente] => 34
[policia] => 33
[ministro] => 29
[dialogo] => 29
[jefe] => 24
[clarin] => 21
[moreno] => 20
[cristina] => 19
[oposicion] => 19
[ciudad] => 18
[muertos] => 18
[indec] => 17
[honduras] => 17
[moyano] => 16

La cifra que se muestra es la cantidad de veces que se utilizó la palabra en los últimos 15 días, contando desde hoy. Se eliminaron las palabras comunes de nuestro idioma.

→ 2 comentarios

PHP 5.3



Esta nueva entrega de mi lenguaje de scripting favorito tiene un soporte rudimentario de “goto”.

No quiero imaginarme las malas ideas que mucha gente va a tener con esto.

En la otra hand, llegaron los namespaces prometidos para la versión 6. ¡Enhorabuena!

→ Sin comentarios

Sigamos enseñando C



Hace mucho tiempo que trabajo en web y un poco más que mi vida tiene que ver con la programación. Los últimos años han sido los años de popularización de WAMP, a tal nivel que está casi estandarizada la forma de aprender a programar para web. Esto es por el paso del tiempo y porque cierta arquitectura de aplicaciones se afirmó como la más confiable, esto es, PHP y MySQL.

Me da la sensación, hace un tiempo más bien corto, de que mucha gente está volviendo a preguntarse las cuestiones iniciales y estamos repensando las cosas que dábamos por absolutamente definidas. Adobe Air le dio un interesante empuje a SQLite, librería que existe hace bastante tiempo, pero que es más bien desconocida. Lo mismo con YAML, una interesantísimo formato como alternativa a XML.

Tenemos que volver a las bases, agarrar la navaja de Occam y replantearnos el diseño de las aplicaciones. De aquí el título de este artículo. Me parece importantísimo que en las facultades, donde se enseña a producir software, se sigan tocando los temas esenciales a la computación: los bytes y los ciclos de máquina.

Incluso desde el punto de vista del ahorro de energía: tenemos miles, sino millones, de sitios web trabajando con motores de bases de datos preparados para soportar cantidades inimaginables de información, cuando una pequeñísima librería como SQLite  sería más que suficiente. Estamos desperdiciando CPU y complicándola innecesariamente.

La popularización del desarrollo agile, en detrimento del RUP, está abriendo paso a una nueva forma de pensar.

→ Sin comentarios

Codenamed Mauro © 2007