IPython: diferencias entre %paste y %cpaste

Estoy trabajando en un proyecto via remota en el que utilizo mayoritariamente Python (y uno que otro lenguaje más). Tenía un código en mi máquina local que quería testear en el intérprete de la máquina remota, por lo que decidí pegarlo utilizando el conocido comando %paste, pero obtuve el siguiente error:

/usr/lib/python2.7/lib-tk/Tkinter.pyc in __init__(self, screenName, baseName, className, useTk, sync, use)
1686 baseName = baseName + ext
1687 interactive = 0
-> 1688 self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
1689 if useTk:
1690 self._loadtk()

TclError: no display name and no $DISPLAY environment variable

¿Cuál es el problema en este caso? Según la información que encontré en el siguiente post de PythonAnywhere.com, el comando %paste toma la información directamente desde tu portapapeles, siendo así mucho más cómodo para nosotros, los que programamos. Sin embargo, el problema aquí es que por razones de seguridad, la sesión IPython no puede acceder al portapapeles de mi máquina local, dado que está siendo ejecutado a través de una sesión ssh. La solución en este caso es utilizar una variante: el comando %cpaste, que a diferencia del anterior, este solicita a través de consola pegar directamente el trozo de código que queremos ejecutar. De este modo, IPython recibe la información de manera explícita porque nosotros manualmente la pegamos. No olvides poner los dos guiones al final 🙂

In [3]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:

Fuente:
%paste magic fucntion in ipython? | siguiente post de PythonAnywhere

[Guía] Instalación de GADGET2 en Ubuntu/LinuxMint

GADGET2 (GAlaxies with Dark matter and Gas intEracT) es un código que nos permite realizar simulaciones cosmológicas sin colisiones entre partículas y con interacción de gases. Resulta ser un programa interesantísimo si quieres hacer algo de ciencia de verdad en tu computador. Esta guía considera que tienes instalado en tu máquina alguna versión actual (al 2012/2013) de Ubuntu o LinuxMint (éste último es el que estoy utilizando actualmente).

Más información después del salto:

Leer Más…

[SPLASH] Solución a problema de linkeado/compilación por “falta” de librería libX11.so

Cuando se trata de trabajar con un computador en pos de la ciencia, puede pasar que no todo resulte hermoso al primer intento. Sucedió al intentar compilar SPLASH con el comando make SYSTEM=gfortran que éste me lanzaba el siguiente error:

...

/usr/bin/ld: ../giza/lib/libgiza.a(giza-driver-xw.o): undefined reference to symbol 'XFlush'

/usr/bin/ld: note: 'XFlush' is defined in DSO /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libX11.so so try adding it to the linker command line

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libX11.so: could not read symbols: Invalid operation

collect2: error: ld returned 1 exit status

make[1]: *** [ascii] Error 1

make[1]: Leaving directory `/home/saogalde/Descargas/splash/build'

make: *** [splash] Error 2

Un error extraño. Revisé que las librerías estuvieran en algún archivo de /etc/ld.so.conf.d, agregué el directorio manualmente a la variable de entorno LD_LIBRARY_PATH, pero nada. El error seguía apareciendo.

La solución es muy simple. Debes abrir el Makefile que está en /directorio/de/splash/build (no el que está en el directorio raíz de SPLASH), agregar la línea en negrita, y comentar (agregar un símbolo #) las otras que digan X11LIBS.

#

# change the line below if SPLASH does not find the X11 libraries

# (some settings of the SYSTEM variable for specific machines overwrite this)

#

#X11LIBS= -L/usr/X11R6/lib64 -lX11

#X11LIBS= -L/usr/X11R6/lib -lX11

X11LIBS= -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libX11.so

Después, hacer un make clean y recompilar:

usuario@linux ~/splash $ make clean

usuario@linux ~/splash $ make SYSTEM=gfortran

Fuente | Pregunta en GoogleGroups

Miniguía Instalación SPLASH | Deltalinuxer

Instalación del Visualizador SPLASH en Linux

GalaxyEstos últimos días he estado explorando el programa de simulaciones GADGET2. Debo decir que no ha sido fácil, pero después de dedicarle un buen tiempo nada es imposible. Profundizaré en la instalación (y uso) de GADGET en otro post, ahora me centraré en la instalación de una herramienta muy útil para la visualización de “snapshots” que GADGET entrega al hacer simulaciones. En palabras simples, un snapshot es un archivo que contiene toda la información de cada una de las partículas que forman tu simulación.

En primer lugar, si estamos utilizando Ubuntu/Linux Mint/similar, debemos instalar los paquetes libcairo2-dev y gfortran, que son necesarios para compilar sin problemas. Gfortran es un compilador de fortran. Si quieres utilizar otro, échale una mirada al README que viene en el archivo que vamos a descargar en un momento.

usuario@linux ~ $ sudo apt-get install libcairo2-dev

Para instalar esta utilidad, primero descargamos el código fuente desde la página oficial SPLASH. Luego, vamos al lugar donde descargamos el archivo y descomprimimos:

usuario@linux ~ $ cd ~/Descargas
usuario@linux ~/Descargas $ tar xvzf splash-2.2.0.tar.gz
usuario@linux ~/Descargas $ cd splash
usuario@linux ~/Descargas/splash $ make SYSTEM=gfortran
usuario@linux ~/Descargas/splash $ sudo make install

Luego de esto, debieras ser capaz de utilizar los comandos asociados al programa. En el caso de GADGET, se usa el comando gplash, seguido del nombre del snapshot generado por la simulación.

Espero les haya sido de utilidad.

Página oficial de SPLASH | SPLASH
Página oficial de Gadget2 | GADGET

Add your thoughts here… (optional)

Espacio de Cesar

 

(Espero que mis vecinos no lean este título, ya veo que me echan del barrio.)

Desde hace ya bastante tiempo tengo en mente encarar este proyecto que es algo complejo porque requiere de experiencia en varios campos, manejo de técnicas de alto vacío, altísimas tensiones y electrónicas varias y un poco de habilidad mecánica.

A lo largo de varios años he venido preparando el terreno para esto y he acumulado casi todo lo necesario.

En estos días he realizado algunas pruebas como para ir probando los sistemas y si mi laboratorio-taller soporta llegar hasta estos límites de complejidad.

La idea es armar un fusor demostrativo de Farnsworth como para probar todo y de ahí comenzar la experimentación con un fusor de diseño propio buscando la utópica idea de inventar un equipo para generar energía.

Como para entrar en tema les diré que las reacciones nucleares, son las que se…

Ver la entrada original 811 palabras más

[Programación] Uso de punteros en C

Representando sólo una dirección de memoria, los punteros en C constituyen su mejor arma, permitiéndote hace TODO lo que se ocurra en el dispositivo en donde esté corriendo el programa (o casi todo, si el sistema es muy robusto jaja). Más después del salto 🙂

Leer Más…

[Programación] Crear arrays de dos dimensiones en C usando malloc()

Suele ocurrir que quieres crear arrays multidimensionales dentro de tu programa, pero en algunas ocasiones es muchísimo más conveniente crearlas dinámicamente utilizando malloc().

Las instrucciones después del salto! 🙂

Leer Más…