sábado, 22 de noviembre de 2008

/pais amateur



...y geronte.
En estos días he notado dos situaciones bien diferenciadas. Me han preguntado sobre el tema de la Ley de Salud Sexual y Reproductiva, y más específicamente acerca del (muy esperable) veto, del FA-EP, la re elección, etc. Y algunos ni siquiera preguntan, ni comentan. Pareciera que lo sucedido les da igual, que no afectara sus vidas, ni parecen advertir todo lo que esto conlleva, siguen en su anestesia o inercia (que tal vez son la misma cosa).
Esta dicotomía explica pienso yo, en gran medida la no sorpresa ante la pasividad con que fue aceptada, y que en otros bandos se discuta más, en relación a lo que se pudo haber hecho para concretar esta ley.

Mi ánimo pasó por dos estados, y con ambos empatizo por igual, el mas colérico como el de daniela, y luego el mas reflexivo, aunque caliente al fin, de benito.





/miscelánea




Sitios que de alguna manera me motivan, me sugieren desde varios aspectos, y por eso quiero compartirlos. Nada más.


Dan Tobin Smith, fotógrafo londinense, en su web, sobria y elegante, muestra todo su talento.



En el estilo minimalista y práctico que me gusta, Christiane Hoegner, arquitecto de interiores y diseñador multidisciplinario, abarcando incluso hasta la gráfica.

(sugerencias navideñas: me urge algo así)



webwithoutwords, pocas palabras para ilustrar cualquier observación.



La mejor web 'under construction'
clarkdols.



El más inutil de todos, la premisa de los futuros dashboards: 'Plug into now', una colección de widge
ts que dan una instantánea de lo que está 'sucediendo' en el planeta.
Me pregunto en base a qué se releva y procesa toda esa información, no creo que les importe. Al fin y al cabo, la web 2.0 parece reducirse al diplay ascéptico de datos por los datos mismos, como si tuvieran existencia propia independientemente del hecho que las genera. Voyeurismo.








/Ingeniería eléctrica- proyectos de fin de carrera 2008



De todo un poco, fue un miércoles.
Pez robótico con movimientos estudiados probabilísticamente, un marca paso externo (para uso temporal), un prototipo de satélite (globo con dispositivo GPS, sensores de temperaturas, altura, etc), lápiz óptico para las notebook del plan Ceibal, aislar sonidos, entre otras cosas.





vía brecha






jueves, 6 de noviembre de 2008

/candombe



Reconozco que en muchos aspectos no me siento montevideana, y que sólo algunas cosas me llegan mas que otras de esta ciudad. Una es haber descubierto el candombe.
Este domingo me dirigía hacia otra parte, y esa tarde tuvo el encanto particular del placer que provoca saltearse itinerarios planeados, y seguir los estímulos del 'sin horarios', para ver qué pasa, o no, que no pase nada. No es la primera vez que los veía, sólo que me detengo para darme el gusto de mi tiempo.

Bajo por la calle Paullier y veo tambores calentan
do sus lonjas, acompañando todo ese ritual previo al golpe.


Vecinos en las veredas, otros sólo curiosos como yo, me acerco al grupo..saco algunas fotos. Al principio quizás por las fotos, me toman por turista, me comentan que tiene un blog www.lapoliecandombe.blogspot.com.


Diría que el registro de sus integrantes era variado, pero mas bien parecen estudiantes universitarios en su mayoría, y alguno del barrio, como siempre.

Aqui dos pianos calentando, piano: tambor mas grande.



Distinguiría dos grupos, los curiosos como yo, y los que participan en alguna medida.
Entre los curiosos hay mas bien timidez, poca conversación, generalmente expectantes con el mate, o algun 'caño' esperando por el toque, sentados en la vereda o parados en la calle. Es mas bien de observación, y las conversaciones de siempre, 'nada mirando, todo bien?', 'qué mal jugó nacional'..'acá andamos aprovechando unos mates'...'un tarado el flaco, decía cualquiera..'
Un chico pensando en mi condición de turista me dice que el sale en la cuerda del Buceo, y me explica los diferentes toques según el tambor. Le
digo que soy de aqui, pero desconozco el tema, y que recién ahora comienzo a distinguir.

Los que participan o afines.
Mientras calientan lonjas, los conversaciones que se suceden, o pasan, no difieren de las tantas que escucho por ahí, en la cantina de facultad, en alguna feria, o en la rambla. Pruebas de facultad, el 'laburo', la destrucción del sábado a la noche, algunos toman cerveza, otros comparten maconha.
Cada tanto algún repique para tantear los tonos de las lonjas, instantes que se prolongan hasta que comienzan agruparse para salir.


Terminó el ritual y poco a poco se afina el ritmo de los tambores hasta alcanzar una identidad rítmica. Salen Paullier abajo, hacia el parque...la gente del barrio solo camina atrás en silencio, pocos se agitan o hacen palmas, sólo algunos padres con sus chiquitos se mueven, el resto parece disfrutar mas de la implosión. Pensaba en Brasil, todo da em samba, y aqui en la timidez montevideana.
Intento algunos pasos, o hacer ritmo con las palmas..me sentí ridícula al principio, después no, era mi tiempo, mis ganas, lo disfrutaba.

Concluyo que me interesa mas el ritmo casi catártico y visceral que el ritual previo.






/declaración de variables en Firebird



Estoy usando Firebird como motor de base de datos (open source, liviana, rápida, y considerablemente completa).

Situación: estaba creando procedimientos almacenados y disparadores, en ellos necesitaba declarar variables locales.
Cuando compilo el script, me sale error en la declaración de la variable. Leo la documentación que provee el sitio, y para mi sorpresa estaba respetando la sintaxis.
Para aislar el error, comenté el resto, y en efecto, la parte conflictiva estaba en la declaración de variables.

La documentación consultada fue: Developers Guide, Embedded SQL, Language Reference.

En un foro me dan la respuesta, la documentación tiene impresiciones, la declaración de la variable debe ir antes del cuerpo del procedimiento/disparador, o sea antes del BEGIN:

Este es un ejemplo del código correcto y que funciona:


CREATE OR ALTER trigger pacientes_bi0 for pacientes
active before insert position 0
AS
DECLARE VARIABLE clave_pac INTEGER; /* Aqui debe ir antes del BEGIN*/
begin
if (new.cod_pac is Null) then
begin
EXECUTE PROCEDURE getcodpac 'Pacientes' RETURNING_VALUES :clave_pac;
new.cod_pac = clave_pac + 1;
end
/* Trigger text */
end



NOTA: No solo ya viene con Ubuntu, es además sumamente popular en Brasil, Italia y y otros países europeos, especialmente entre los desarrolladores Delphi, permite embeber la base de datos en un sólo archivo .DLL junto con su aplicación.





/utilitarios varios



pdfgrabber: software que permite exportar los documentos en formato PDF a otros formatos de edición de textos : DOC, BMP, EXCEL, JPG, TIFF, PPT, XML, XLS y RTDF. Entre lo mas destacable es que respeta el formato y ubicación de los componentes de un documento.
Permite la conversión de páginas específicas en lugar de todo el documento.
Se puede trabajar con la versión de prueba, pero marca una X en el documento.
Versión: Windows 2000 en adelante.

vía mastermagazine



shrink2one.com es un servicio algo curioso pero tal vez útil, convierte varios enlaces a sitios webs en uno solo. Ventajas: usarlo cuando la cantidad de enlaces salientes es limitada, o para agruparlos y compartirlos vía mail o cualquier servicio de mensajería instantánea.

vía KnxDT



Digital Recovery Photo programa gratuito en su versión 3, que no hace milagros, para Windows (95 hasta Vista), pero que ayuda a recuperar las imágenes borradas o corruptas de la tarjeta de memoria de las cámara digitales mas conocidas (eso dicen), aun cuando han sido formateadas.
Extensiones soportadas:
JPG, TIF, DNG, Canon CR2, Konica-Minolta MRW, Nikon NEF, Olympus ORF, Pentax PEF, Sony ARW, SRF y SR2





sábado, 1 de noviembre de 2008

/sobre dramaturgia mendocina



No es la primera vez que comento sobre los talleres de dramaturgia de Mendoza, ya lo había hecho aqui y aqui también. Son esos movimientos sociales que valen la pena apoyar, porque que sobreviven a pesar del ninguneo gracias a la fuerza y las ganas de quienes valoran y sienten lo que hacen.
Detrás de estas iniciativas está Pablo Longo, un egresado de la Facultad de Artes y un estudioso del movimiento teatral y todo lo afín.

Dejo un link a la revista sobre la dramaturgia mendocina, y todo lo que anda sucediendo relativo al tema (opiniones, artistas, agenda de talleres y obras,etc).

Otro aspecto interesante, es que están buscando info sobre los procesos de creación de la murga uruguaya. Algo que curiosamente atrae mucho en Mendoza (son recurrentes las visitas de Agarrate Catalina), recorriendo he visto lugares donde enseñan esas modalidades: 'murga uruguaya' y candombe.

Vale aclarar que no solo se edita en formato digital, pero el blog cubre aspectos que la revista no puede. Podés
escuchar y leer parte del contenido, entrevistas a realizadores y actores, artículos, así como las vivencias y opiniones de Pablo Longo sobre el teatro mendocino.
http://dramaburdos.blogspot.com/





/mucho de face poco de book



A decir verdad creé mi perfil en Facebook porque era la única manera de estar en contacto con una amiga porteña que descubría internet, y tiene aversión "a esto de las computadoras".

Es una herramienta de doble filo, podes encontrarte con quienes te interesan pero estás expuesto a que te encuentren aquellos de quienes no te interese un pomo su vida, ex compañeros de liceo, facultad, etc.

No le veo la gracia, porque no funciona como comunidad, es un egotrip, una forma demasiado díscola del peor instinto gregario, esto a pesar de los esfuerzos de algunos grupos mas inquietos. Que por suerte la gran mayoría, tienen sus web. Otro motivo para no estar.

Prefiero pertenecer a foros, googlegropus, etc, antes que a este invento que parece no despegar nunca, y que no me ofrece lo que me interesa y puedo obtener por otras vías en la web. Uno espera que suceda algo que nunca sucede, es como quedar en la previa.

También me molesta soberanamente que se use tan trivialmente la palabra amigo, es como si forzaran a crear una hermandad inexistente.
Funciona como una sublimación del chisme a escala global, para saber de los otros doy algo de mi a cambio, alguna foto, escribiendo algo de lo que hago. Juego tonto.

Estoy paspada que me avisen que juan se fue a dormir, que sarita actualizó fotos del bar mitvah de su sobrino, que me agreguen como amiga personas que apenas conozco, que me lleguen avisos de encuentros, etc. No me interesa, es poco en relación al volumen de data.

Sumado a que ando paranoica en eso de dejar mis datos por ahí, asi sean pocos.
Y los artículos de rebelion.org y The Guardian contribuyeron a desalentar los vestigios de mi tolerancia hacia este tema.









/el super no tenía ravioles



Situación: voy al super un domingo a buscar ravioles, me había levantado muy tarde. A decir verdad quería otra marca que no había, al que madruga....y yo no, pero tenía antojo de ravioles. Decido comprar la única marca que parecía quedar, el Disco de Obligado y Carlos Berg no es precisamente un dechado de surtidos, en todas sus variantes.


Confíen en lo que dice la caja, no son ravioles, nunca estuve mas arrepentida de satisfacer un antojo.









/resolviendo problemas en delphi



Expongo aqui algunos problemas a los que me enfenté desarrollando en Delphi 7, movida principalmente porque la información en español es prácticamente nula.

Desconozco si estos problemas fueron solucionados en las versiones posteriores.


Herencia visual

Haciendo un framework para una aplicación, estoy en la siguiente situación. El Form padre tiene un dbgrid (grilla orientada a datos provenientes de alguna sentencia SQL).
Este form es una clase base, prácticamente una clase abstracta donde se definen sus controles y eventos de manera virtual.
La grilla no tiene definido los campos porque no sabe qué tabla será mostrada, éstos campos se definirán en el formulario hijo que es donde se ejecuta la sentencia SQL.

En el formulario hijo conecto el dbgrid con la fuente de datos usando ClientDataSets. Decido borrar uno de los campos, no me interesa que se vea. Lo hago desde el visor de propiedades del objeto dbgrid de la clase heredada:

y me sale el siguiente error:

"Selection contains a component introduced in an ancestro form which cannot be deleted"



Lo raro es que los campos no estaban definidos en el Form padre, pertenecen al form heredado, tendría que poder borrarlos. El lío parece estar por lo que pude ver en cómo maneja Delphi la clase TCollection (en este caso la de los campos), por lo menos hasta esa versión.

La solución la encontré modificando a mano, el archivo .dfm. Es un archivo de texto, fácilmente editable, donde Delphi guarda el código de las clases de los componentes visuales que hay en un form.
Lo que está marcado en azul, es lo que borré, luego grabé los cambios y voilá.


Puede pasar que deban reiniciar Delphi, quizás porque en mi caso no me di cuenta que estaba conectada a la base de datos, entonces al ejecutarlo sin salir aparecía otro error. Reiniciando se soluciona.


ClientDatasets

El dataSetprovider del clientDataSet estaba unido a una ibquery, componente que tiene la consulta con parámetros. Base de datos: Firebird.
De todos modos no importa el motor de base de datos, lo que importa es como deben estar ligados los parámetros de ClientDataSet y el ibquery que realiza la consulta.

ibquery.Sql :=
'Select campo1, campo 2 From Tabla where campo1 = :campo1 or campo2 = :campo2'

Mi idea inicial era cambiar el SQL asignando diferentes valores a los parámetros segun un criterio de búsqueda (por un parámetro u otro).
Los parámetros de ambos componentes se definieron en tiempo de diseño.

Cambiaba la sentencia SQL, pero no la cantidad de parámetros definidos (dos), ya que estos no cambiaban, solo variaba los que se usaban en la sentencia SQL:
Podría ser:
'Select campo1, campo 2 From Tabla where campo1 = :campo1'
o
'Select campo1, campo 2 From Tabla where campo2 = :campo2'

Cuando cambiaba el valor de los parámetros en tiempo de ejecución salía el siguiente error : "XSQLDA index out of range"

El código problemático era:

//asigno nuevo parámetro
cdsPacientes.params.ParamByName('CI').AsString := ci_pas;

//reabro para que realice la búsqueda con el
ibquery.sql := texto_sql;
cdsPacientes.Close;
cdsPacientes.Open;


Harta de buscar en internet, y como siempre en sitios en inglés, polacos o alemanes, que no se adaptaban a la situación que desencadenó mi problema, me avive siguiendo las sábanas de código que tiene Delphi.

El error estaba en que el ClientDataSet (que es 'alimentado' por los datos de la consulta ibquery), tenía mayor cantidad de parámetros definidos que los usados en la consulta SQL del ibquery. Deben tener la misma cantidad de parámetros. Si no hay concordancia entre los que usa el SQL y los definidos en el ClientDataSet, sale error.

Para mantener los parámetros, intenté poniendo valores inexistentes en los parámetros por los cuales no deseaba buscar. Pero no entiendo porqué ofrece problemas de filtrado. Decidí sencillamente omitir los parámetros, una pena porque pierdo cierto nivel de abstracción. La idea era modificar los parámetros sin tocar la sentencia SQL.