General

You are currently browsing the archive for the General category.

Puede resultar útil integrar ciertos feeds en un wiki, por ejemplo podemos crear una categoría de miniposts llamada “wiki” en el blog e ir anotando allí los cambios y las nuevas referencias que vamos introduciendo en el wiki, tomamos el feed de esa categoría y lo incluimos en la portada del wiki en una sección a modo “cambios recientes”.

Para conseguirlo utilizamos el programa Magpie a través de la extensión Feedimport para Mediawiki, el proceso es muy sencillo:

  1. Descargamos Magpie y lo colocamos por ejemplo en ~/lib/Magpie

  2. Colocamos el fichero feedimport.php en el directorio de extensiones de Mediawiki:
    ~/mediawiki/extensions

  3. Editamos feedimport.php para configurar el directorio en el que se encuentra Magpie:
    # define location of magpie
    define('MAGPIE_DIR', '/home/janzo/lib/magpierss/');

  4. Y editamos el fichero de configuración de Mediawiki (LocalSettings.php) para incluir la extensión, añadiendo la siguiente linea:
    require_once("$IP/extensions/feedimport.php");

  5. Para utilizarlo editamos cualquier página en Mediawiki:
    <rss>http://nonumerable.net/feed|max=5|template=Template:FEED</rss>

  6. Y configuramos la apariencia en una plantilla (en este caso FEED) con el formato:
    : [{{{link}}} {{{title}}}]
    :: {{{description}}}
    :: {{{dc_creator}}} {{{date}}}

Actualización

  • La prueba de funcionamiento en este minipost y en la portada de mi contextopedia.
  • Como Mediawiki hace los enlaces a su forma particular para que un link aparezca en ambos el formato debe ser la combinación siguiente: <a href="http://micontextopedia/articulo">[[articulo]]</a>

Tags: , ,

La meditación como régimen de entrenamiento emocional y de atención es objeto de estudio en este artículo en Trends in Cognitive Sciences.
El potencial regulatorio de esta práctica sobre los procesos de atención y emoción podrían tener un impacto a largo plazo sobre el cerebro y la conducta.

Un estudio muy interesante, que además abstrae las dos principales técnicas de meditación: “focused atention” y “open monitoring” preparando unas bases para la investigación en un campo tan complejo debido sobre todo a las dificultades para realizar experimentos. Para el futuro quedan abiertas las siguientes cuestiones:

  • ¿Cual es el impacto de la meditación en niños y ancianos? ¿Cual es la dosis óptima de meditación segun edades? Más ampliamente ¿Cómo afecta la meditación en el marco del desarrollo en la vida?
  • ¿Qué técnicas se ajustan mejor a cada individuo?
  • ¿Cuales son las consecuencias biológicas periféricas? ¿Podemos utilizar la meditación para examinar los mecanismos de interacción mente-cuerpo?

Referencias:
Resumen y artículo en inglés.
Neurociencia y la meditación de atención. Con-ciencia..
Neuroscience of meditation and attention. Mind Hacks.

Tags: ,

Activar el protocolo ed2k para el navegador firefox y que al pinchar sobre un link a un fichero descargable pase directamente a la lista de descargas de la mula es sencillo.

En mi caso utilizo amule, por lo que primero instalo los útiles de consola amule-utils. Después en firefox abrimos la pestaña de configuración about:config e introducimos dos configuraciones:

network.protocol-handler.external.ed2k boolean true
network.protocol-handler.app.ed2k string /usr/bin/ed2k

Y listo. Si se comete algún error, para borrar una linea de configuración buscaríamos el fichero prefs.js y tras cerrar el navegador haríamos una copia de seguridad y lo editaríamos borrando la entrada erronea.

Tags: , , , ,

Atención al comentario que me acaba de dejar Damián, de lógica y concisión envidiables. Me ha hecho especial ilusión porque el artículo en el que comenta me costó lo suyo escribirlo y ha generado un buen debate en comentarios, me gusta saber que de vez en cuando alguien del nivel intelectual de Pere Quintana o Damián lee las tonterías que escribo.

Tags: , ,

indianosLa semana pasada me fui de visitas por Madrid. Primero con los amigos de las indias, que me acogieron unos días y de los cuales aprendí un montón de cosas. En esos días hicieron la migración al nuevo servidor y doy fe de que fue un auténtico coñazo mudar bases de datos, blogs y correos. También pude participar de una pequeña conspiración por el cine español… Allí también conocí a Lobo, que me recomendó muy buenos libros y me ilustró un poco sobre los conflictos de Iraq, Iran y Afganistan, de los que ando tan verde…
gitano
marwanEl viernes me despedí de los indianos deseoso de volver a verlos muy pronto y me encontré con mi gran amigo Marwan, perdido por el mundo (Londres, los Atlas, Madrid), y a quién tenía muchas ganas de volver a encontrar. Por cierto, aproveché la visita para echarle una mano instalando su nuevo blog, que va derecho a mi lector y que seguro tiene mucho que aportar a ingenieros y programadores.
Así que he vuelto muy contento de Madrid, y además me he traido muchos deberes en forma de libros e hiperenlaces…

Tags: , ,

Un sencillo generador de grafos aleatorios con sagemath

Se llama matriz de adyacencia de un grafo a una matriz cuadrada para representar relaciones entre pares de vértices. Un 1 en la fila i columna j representa una arista entre los vertices i y j.
Es decir, la matriz de adyacencia:

M=Matrix([[1,0,1,1],[0,1,0,1],[1,1,0,1],[0,1,0,1]])
M

[1 0 1 1]
[0 1 0 1]
[1 1 0 1]
[0 1 0 1]

Ejecutada con este código:
M=Matrix([[1,0,1,1],[0,1,0,1],[1,1,0,1],[0,1,0,1]])
G = Graph(M)
G.plot().show()

Representa el siguiente grafo
sage0.png

Modificando ese código se puede construir un sencillo generador de grafos aleatorio.
Para generar un 1 o un 0 aleatoriamente utilizamos: int(round(random()))
y para crear un vector de 10 componentes [i for i in range(10)]. Combinando ambas [int(round(random())) for i in range(10)] se generan vectores como:
[0, 0, 1, 0, 0, 0, 1, 1, 0, 0]

Así que finalmente el generador de grafos aleatorio quedaría así

print("Generador de grafos aleatorio")
nVect=12
M=Matrix([[int(round(random())) for i in range(nVect)] for i in range(nVect)])
G = Graph(M);
G.plot().show()

sage1.png

Tags: , ,

Con Sagemath podemos mostrar curvas y superficies en un applet interactivo de java. Ha sido una odisea de dos días conseguir empotrar el applet en el blog, pero finalmente aquí está el resultado.

En el tutorial oficial de Sagemath hay unos ejemplos sencillos de algunas parametrizaciones, no teneis más que copiarlas en vuestro sage local o en el notebook público online para ver el estupendo resultado. Utiliza Jmol para su visualización, un applet de java para la representación de moléculas que permite rotar, hacer zoom, y algunas cosas más.

Para emportar el applet con la superficie en nuestro blog primero necesitaremos obtener el fichero con la superficie, en la lista de correo de sage me explican un truco para encontrarlo. Añadimos la sentencia open ('a.txt', 'w') lo cual hará aparecer al evaluar un enlace a la ruta donde se guardan los ficheros de datos de esa evaluación. Debe ser algo como https://localhost:8000/home/admin/73/cells/1/a.txt quitamos el a.txt de la ruta y entonces encontramos varios ficheros. Lo que nos interesa realmente es el fichero zip que dentro tiene un fichero de malla .pmesh. Lo guardamos para utilizarlo posteriormente.

Ahora vamos a instalar Jmol en wordpress. No hay mucho que hacer, descargamos el paquete de binarios de la página oficial y lo descomprimimos por ejemplo en el directorio wp-content/jmol
Necesitamos ahora una molécula para representar, por ejemplo la de cafeína, que colocamos tambien el el directorio wp-content.
En un nuevo post escribimos el código:


<applet name="jmol" code="JmolApplet"
           archive="/wp-content/jmol/JmolApplet.jar"
           width="200" height="200" mayscript="true">
  <param name="progressbar" value="true"/>
  <param name="load" value='/wp-content/caffeine.xyz'/>
</applet>

¡Y listo! Ahora deberías tener una preciosa molécula alcalina como esta girando por tu blog. Por cierto que es la misma molécula que la teína, guaranina y mateína.


width="200" height="200" mayscript="true">

cafeína
(si no la ves prueba recargando el explorador)

Ahora puedes probar el zoom con la rueda del ratón; pinchar y rotarla; pulsar Shift, pinchar y desplazar en horizontal el ratón; pulsar Alt Gr y pinchar para desplazarla.

Con Jmol funcionando vamos a representar ahora la superficie que hemos obtenido en sage, bastaría con subir el fichero .pmesh y sustituir en el script la linea que representa una molécula:

<param name="load" value='/wp-content/caffeine.xyz'/>

Por esta otra que representa la superficie (sf.pmesh):

<param name="script" value='pmesh "/wp-content/sf.pmesh"'/>

Quedando así:


<applet name="jmol" code="JmolApplet"
           archive="/wp-content/jmol/JmolApplet.jar"
           width="200" height="200" mayscript="true">
  <param name="progressbar" value="true"/>
  <param name="script" value='pmesh "/wp-content/sf.pmesh"'/>
</applet>

Por supuesto se puede cambiar el path del .pmesh para utilizar ficheros subidos con el interfaz de carga de wordpress en el directorio /wp-content/uploads.

Otra forma alternativa de hacerlo, pero que requiere editar el fichero de cabecera del blog es la siguiente:
En header.php colocamos:


<script type="text/javascript">
<!--
function insertJmol(me,width,height,myPmesh) {
   document.getElementById(me).innerHTML =
   '<applet width="'+width+'" height="'+height+
   '" code="JmolApplet" archive="/wp-content/jmol/JmolApplet.jar">'
   +'<param name="progressbar" value="true">'
   +'<param name="script" value='+"'pmesh"+'"'+myPmesh+'"'+"'"+'>';
 }
//-->
</script>

Y en los post llamamos al applet con:


<div class="jmol" id="caffeine_applet">
<img src="/wp-content/logo.png" onLoad="insertJmol('caffeine_applet',400,400,'/wp-content/file.pmesh')" alt="caffeine screenshot"/>
</div>

(No hay que olvidar subir la imagen de precarga logo.png).
No sé muy bien cual es la ventaja de esto, pero en las páginas de Jmol recomiendan hacerlo así. La verdad a mi este método me da problemas cuando coloco en un post más de un applet, pero lo pongo para que quede la referencia.

Con cualquiera de las dos formas obtendremos el applet Jmol con nuestra superficie empotrado en el blog ¿no es estupendo? :-)


width="400" height="400" mayscript="true">

twistedTorus

¿No se visualiza? | Controles

Si las superficies generadas con sagemath os saben a poco y quereis explorar las posibilidades de la herramienta aquí teneis una batería de enlaces:

Y para acabar agradecer a todos aquellos que han aguantado mi inglés de todo a cien en las listas de correo:

Actualización: Hay un pequeño problema con las url, tengo que ponerlas absolutas si no quiero que nada más se vea en la página principal del blog y no en las páginas individuales de los post. Seguro que se soluciona con algún atributo de path de wordpress… investigaré.
¡Solucionado!
Cambiamos la ruta wp-content/ por /wp-content.

Tags: , , , ,

Una de las peores cosas que tiene la inserción de fórmulas con LaTex en mediawiki es la arbitraria etiquetación con <math>formula</math> en vez de la habitual $fórmula$. Pero se puede crear una macro para emacs que facilite el trabajo.

Con C-x ( empezamos la definición de la macro, entonces escribimos <math></math> y al acabar situamos el cursor en medio de ambas etiquetas. Finalizamos la definición de macro con C-x )
Si ahora pulsamos C-x e se ejecutará la macro que acabamos de definir, pero se perderá si salimos del programa.

Para guardarla primero le ponemos un nombre con M-x name-last-kbd-macro después abrimos el fichero de configuración de emacs ~/.emacs y copiamos la macro recién nombrada con M-x insert-kbd-macro aparecerá algo como esto:

(fset 'macromath
[?< ?m ?t backspace ?a ?t ?h ?< backspace ?> ?m backspace ?< ?m ?a ?t backspace backspace backspace ?/ ?m ?a ?t ?h ?> left left left left left left left])

Al añadir la siguiente linea estamos asignando la combinación de teclas shift+up (por ejemplo) a la macro ‘macromath
(global-set-key [(shift up)] 'macromath)

Nada más tenemos que presionar shift+up para que nos aparezcan las etiquetas con el cursor en la posición listo para editar.

Tags: , ,

« Older entries