Translate

lunes, 3 de abril de 2017

Truco abierto

Naipes españoles usados en el juego de Truco ordenados por valor.
Valor decreciente de izquierda a derecha.
El truco abierto es una variación sobre el juego de Truco clásico, en la que las cartas son visibles para todos los jugadores y no se reparten.

Preparación del juego

Los naipes muestran en la mesa abiertos (el lado de la figura hacia arriba) y se organizan por su valor para el "truco" (2da fase, ver desarrollo del juego) como se muestra en la figra de arriba (perdón por la calidad, mejoraré la figura cuando tenga un tiempito).

El juego puede jugarse con la misma cantidad de jugadores que el truco clásico (2, 4 o 6).

Desarrollo del juego

En el truco abierto los naipes no se reparten, y los jugadores indican que cartas juegan durante el juego.

En el truco abierto siempre se juegan las dos fases siguientes:
  • 1ra: Envido
  • 2da: Truco

Envido

En la primera fase, las cartas no se utilizan y, en algún orden pre-definido, los jugadores declaran el valor de su envido. El resultado se determina como en el juego clásico. 

Truco

Siguiendo el orden de juego, los jugadores toman la carta que desean jugar de la mesa y la ubican delante suyo. El desarrollo de esta fase es igual que en el juego clásico.
Noten que las cartas jugadas debén ser compatibles con los valores declarados durante la fase de Envido. Por supuesto uno puede mentir, poniendo en riesgo el resultado del juego.

Si lo juegan me cuentan que les parece en los comentarios.

sábado, 3 de diciembre de 2016

Compile WRF 3.8.1 in Ubuntu 16.04.1 LTS

WRF, the Weather Research and Forecasting Model, is a mesoscale numerical weather prediction system for meteorological applications across scales from tens of meters to thousands of kilometers.
I am following these instructions and adapting them to my system.
Install dependencies (note you need FORTRAN NetCDF)

sudo apt install csh gfortran m4 mpich libhdf5-mpich-dev libpng-dev libnetcdff-dev netcdf-bin ncl-ncarg

We now identify the path to the include filed and libraries


sudo updatedb
locate netcdf.inc
locate mpich/lib


In my system the two last commands give

/usr/include/netcdf.inc

and

/usr/lib/mpich/lib

Keep these in mind.

OK after downloading and extracting WRF I wanted to do out-of-source compilation (this keeps the source code clean form build symbols), but the Makefile is not well written so it doesn't support this.

Hence I do configure in the source folder


NETCDF=/usr WRFIO_NCD_LARGE_FILE_SUPPORT=1 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/mpich/lib ./configure


This gives me the list of option form which I chose GNU gfortran and the default no nesting option, because I will be running things like the em_hill2d_x example.

checking for perl5... no
checking for perl... found /usr/bin/perl (perl)
Will use NETCDF in dir: /usr
HDF5 not set in environment. Will configure WRF for use without.
PHDF5 not set in environment. Will configure WRF for use without.
Will use 'time' to report timing information
$JASPERLIB or $JASPERINC not found in environment, configuring to build without grib2 I/O...
------------------------------------------------------------------------
Please select from among the following Linux x86_64 options:

  1. (serial)   2. (smpar)   3. (dmpar)   4. (dm+sm)   PGI (pgf90/gcc)
  5. (serial)   6. (smpar)   7. (dmpar)   8. (dm+sm)   PGI (pgf90/pgcc): SGI MPT
  9. (serial)  10. (smpar)  11. (dmpar)  12. (dm+sm)   PGI (pgf90/gcc): PGI accelerator
 13. (serial)  14. (smpar)  15. (dmpar)  16. (dm+sm)   INTEL (ifort/icc)
                                         17. (dm+sm)   INTEL (ifort/icc): Xeon Phi (MIC architecture)
 18. (serial)  19. (smpar)  20. (dmpar)  21. (dm+sm)   INTEL (ifort/icc): Xeon (SNB with AVX mods)
 22. (serial)  23. (smpar)  24. (dmpar)  25. (dm+sm)   INTEL (ifort/icc): SGI MPT
 26. (serial)  27. (smpar)  28. (dmpar)  29. (dm+sm)   INTEL (ifort/icc): IBM POE
 30. (serial)               31. (dmpar)                PATHSCALE (pathf90/pathcc)
 32. (serial)  33. (smpar)  34. (dmpar)  35. (dm+sm)   GNU (gfortran/gcc)
 36. (serial)  37. (smpar)  38. (dmpar)  39. (dm+sm)   IBM (xlf90_r/cc_r)
 40. (serial)  41. (smpar)  42. (dmpar)  43. (dm+sm)   PGI (ftn/gcc): Cray XC CLE
 44. (serial)  45. (smpar)  46. (dmpar)  47. (dm+sm)   CRAY CCE (ftn/cc): Cray XE and XC
 48. (serial)  49. (smpar)  50. (dmpar)  51. (dm+sm)   INTEL (ftn/icc): Cray XC
 52. (serial)  53. (smpar)  54. (dmpar)  55. (dm+sm)   PGI (pgf90/pgcc)
 56. (serial)  57. (smpar)  58. (dmpar)  59. (dm+sm)   PGI (pgf90/gcc): -f90=pgf90
 60. (serial)  61. (smpar)  62. (dmpar)  63. (dm+sm)   PGI (pgf90/pgcc): -f90=pgf90
 64. (serial)  65. (smpar)  66. (dmpar)  67. (dm+sm)   INTEL (ifort/icc): HSW/BDW
 68. (serial)  69. (smpar)  70. (dmpar)  71. (dm+sm)   INTEL (ifort/icc): KNL MIC

Enter selection [1-71] : 32
------------------------------------------------------------------------
Compile for nesting? (0=no nesting, 1=basic, 2=preset moves, 3=vortex following) [default 0]: 

Configuration successful! 
------------------------------------------------------------------------
testing for fseeko and fseeko64
fseeko64 is supported
------------------------------------------------------------------------

# Settings for    Linux x86_64 ppc64le, gfortran compiler with gcc   (serial)
#
...

After this we need to fix the configure.wrf file to link against netcdf. This is done via the LIB_EXTERNAL variable:

 LIB_EXTERNAL    = \
    -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/usr/lib -lnetcdff -lnetcdf


Now I can compile, I first tried compiling WRF (using 7 of my cores for compilation)


./compile -j 7 wrf

This took about 4 minutes. Then I compiled the em_hill2d_x example (Makefile agian is not correct so you can't use multiple cores here)


./compile em_hill2d_x

This took about 10 seconds to finish. I moved to the folder where the test is stored and run it:

cd tests/em_hill2d_x
./ideal.exe
./wrf.exe


To make plots of the results I had to modify this script (here my version): the NCARG_ROOT trick mentioned in the tutorial doesn't work (I explicitly used the folder where those scripts are in my system, use locate to find them in yours) and they should use loadscript instead of load. But I got it



lunes, 10 de octubre de 2016

Update all your mercurial repos at once

The following is a bash command to update repositories located in subdirectories from the current directory.

for hg_dir in $(find -maxdepth 2 -type d -name ".hg")
do
folder="$(dirname "$hg_dir")";
cd $folder && \
echo "Updating ${folder} ..." &&\
hg pull -u && \
cd -;
done

The use of  && makes sure that updates will be run only if the directory change takes place.
The same works with git. Just change ".hg" with ".git" and hg pull -u with git pull

lunes, 19 de septiembre de 2016

Inter-, extra- and intra- polation

Interpolation: the mathematical problem of interpolation is to find a function that goes exactly through the training points. It doesn't say anything on the inputs on which this function will be later evaluated. Of course, the solution provides a way of evaluating the function in unseen inputs, but it really is not about that, it is about "going through the given points".

Extrapolation: is about the relation between the new inputs where the function will be evaluated and the inputs used for training. It doesn't say anything about the relation between the function and the training inputs, as interpolation does: you can extrapolate using an interpolating function (i.e. that goes exactly through the training inputs) or an smoothing/approximating function (i.e. that goes close to the training inputs). Extrapolation means that the new inputs are "outside the region delimited by the examples we used for training (the observation range)", for example one could say that extrapolation is evaluating a learned function outside the convex-hull of the inputs used for training (this example applies only if the input set has a notion of "inside" and "outside", which is the case in many many situations). In many dimensions it could be difficult to define what is inside the observed region, and surely there are may ways fo doing it.

Intrapolation: is a term I coined (I am sure I am not the first! do you know if anybody used it first? or maybe another clever word to express the same idea?). As in extrapolation it is about the relation the new inputs have with the inputs used for training. It doesn't say anything about the function we are using, as interpolation does. You can either intrapolate with an interpolating function or with an smoothing/approximating function. Intrapolation means that the new inputs on which the function will be evaluated are within the observation range, following the previous example, they would be inside the convex-hull of the inputs used for training.



Hence, the complement of extrapolation would be intrapolation, whether we are using an interpolant or not. I think this makes the jargon cleaner!



Summary:
interpolation ≠ smoothing/approximation
intrapolation ≠ extrapolation

miércoles, 19 de agosto de 2015

Kivy - variable Label

Lately I have been working with Kivy to produce some simple Apps. One of the things I needed was a Label which text could be changed by double clicking on it. I came up with this derived class that merges Label, TextInput and Popup.

from kivy.app import App

from kivy.uix.label import Label
from kivy.uix.popup import Popup
from kivy.uix.textinput import TextInput

class variableLabel (Label):

    def __init__(self, text):
        super(variableLabel, self).__init__()
        self.text  = text

    def on_touch_down(self, touch):
        if touch.is_double_tap and self.collide_point(*touch.pos):
          _input = TextInput(text=self.text, multiline=False, auto_dismiss=False)
          popup = Popup(title='Editing Label text', content=_input)
          _input.bind (text=self.on_text)
          _input.bind (on_text_validate=popup.dismiss)
          popup.open()

    def on_text (self, instance, value):
        self.text = value

class MyApp(App):

    def build(self):
        return variableLabel("New")

if __name__ == '__main__':
    MyApp().run()

Do you have suggestions for improvement?

viernes, 16 de enero de 2015

BIN2FRAC

Binary numbers to fractions

The mapping from binary numbers to fractions described in this article can be written in GNU Octave as the function

bin2q = @(x) arrayfun (@str2num,x) * (2.^-[1:length(x)].')

Giving the results that .0100... and .001111... map to 1/4

octave> bin2q ('0100000000000000000')
ans =  0.25000
octave> bin2q ('0011111111111111111')
ans =  0.25000

Números binarios a fracciones

El mapeo de números binario a fracciones, descriptoi en este artículo se puede definir como la siguiente función en GNU Octave

bin2q = @(x) arrayfun (@str2num,x) * (2.^-[1:length(x)].')

Dando el resultado que .0100... y .001111... se mapean en 1/4

octave> bin2q ('0100000000000000000')
ans =  0.25000
octave> bin2q ('0011111111111111111')
ans =  0.25000

domingo, 14 de septiembre de 2014

Salteños visitarán Bélgica

Este post es derivado de este otro.



Muchas cosas han sucedido desde la última visita de Dwengo a Salta. Si están siguiendo la página de CErrobotics ya saben de los robots fabricados en Campo Quijano y las placas Dwengo fabricadas en la escuela técnica Albert Einstein de Salta. Quizas algunos también se hayan enterado de las actividades de Fundasoft en Córdoba, que ahora comineza con sus cursos en programación y lanza su propia versión de la placa Dwengo (hace un tiempo publiqué una reseña de la historía de Dwengo).

Los que nos mantiene ocupados el día de hoy es la organización de la semana Internacional de Robótica en Gante, Belgica (del 22 al 27 de Octubre, 2014). Con el dinero que logramos juntar con nuestra campaña en IndieGoGo (dato curioso: las únicas contribuciones argentinas son de gente que vive en el exterior ¿crisis económica o poca cultura de la internet?) solventaremos los gastos de traslado de 4 jóvenes Salteños. Estos son los seleccionados:

  • Matias Fajardo (17): habitante de Orán, desde niño fascinado por los robots. Ha construído sus propios aparatos gracias a instruccions que obtuvo de revistas y de la internet.
  • Marcos Emanuel Sosa (15): nacido en J.V. Gonzales, es un hacker del radio-control desde pequeño. Un visionario que se preocupa por el mañan de la humanidad. Esperamos oir sus ideas!
  • Florencia Antonella Correa (17): viene de Moldes y confiesa no saber mucho de robótica. Sin embargo muestra un sorprendente compromiso con la divulgación de la ciencia y la tecnología en su entorno. Vamos!
  • Lourdes Guyot (18): es de Salta capital y participó en el proyecto CErrobotics, ahora busca consolidar su experiencia en robótica.

Serán acompañados por Carlos Alberto Ríos quién ha mantenido una actividad constante en su escuela, integrando cada vez mas jovenés a su clase de robótica de los días Sábados.

Este evento será el último de mi estadía en Bélgica, puesto que mi postdoctorado en la universidad de Gante llega a su final. Mi próximo destino es incierto, pero seguramente, por cuestiones personales, estaré cerca de Suiza. El plan es continuar con este tipo de actividades desde mi nuevo lugar.

sábado, 13 de septiembre de 2014

Best practices in Science [coming from Cybernetics] by N. Wiener, 1947

The following text is extracted from the introduction to the first edition of "Cybernetics, or Control and Communication in the Animal and the Machine". I put it here because Norbert Wiener not only gave his opinion about good and evil in science but he also recommended an attitude and the expected behavior of the ethical scientist. I have highlighted phrases that for me are most important and provided some links.

On ethical science...
"
Those of us who have contributed to the new science of cybernetics thus stand in a moral position which is, to say the least, not very comfortable. We have contributed to the initiation of  new science, which, as I have said, embraces technical developments with great possibilities for good and for evil. We can only hand it over into the world that exists about us, and this is the world of Belsen and Hiroshima. We do not even have the choice of suppressing these new technological developments. They belong to the age, and the most any of us can do by suppression is to put the development of the subject into the hands of the most irresponsible and most venal of out engineers. The best we can do is to see that a large public understands the trend and the bearing of the present work, and to confine our personal efforts to those fields, such as physiology and psychology, most remote from war and exploitation. As we have seen, there are those who hope that the good of a better understanding of man and society which is offered by this new field of work may anticipate and outweigh the incidental contribution we are making to the concentration of power (which is always concentrated, by its very conditions of existence, in the hands of the most unscrupulous). I write in 1947, and I am compelled to say that it is a very slight hope.
"

On values...
"
... I say that the first industrial revolution, the revolution of the "dark satanic mills", was the devaluation of the human arm by the competition of machinery. There is no rate of pay at which a United States pick-and-shovel laborer can live which is low enough to compete with the work of a steam shovel and an excavator. The modern industrial revolution is similarly bound to devalue the human brain, at least in its simpler and more routine decisions. Of course, just as the skilled carpenter, the skilled mechanic, the skilled dressmaker have in some degree survived the first industrial revolution, so the skilled scientist and the skilled administrator may survive the second. However, taking the second revolution as accomplished, the average human being of mediocre attainments or less has nothing to sell that is worth anyone's money to buy.
The answer, of course, is to have a society based on human values other than buying and selling. To arrive at this society, we need a good deal of planning and a good deal of struggle, which, if the best comes to the best, may be on the plane of ideas, and otherwise--who knows?
"

 On slavery...
"
I have said that this new development [cybernetics] has unbounded possibilities for good and for evil... It gives the human race a new and most effective collection of mechanical slaves to perform its labor. Such mechanical labor has most of the economic properties of slave labor, although, unlike slave labor, it does not involve the direct demoralizing effects of human cruelty. However, any labor that accepts the condition of competition with slave labor accepts the condition of slave labor, and is essentially slave labor. The key word is of this statement is competition. It may very well be a good thing for humanity to have the machine remove from it the need of menial and disagreeable tasks, or it may not. I do not know. It cannot be good for these new potentialities to be assessed in terms of the market, of the money they save...
"

martes, 17 de diciembre de 2013

Windows 8 bothers me again

So it happens... I boot my computer on Windows 8 to try a software that I couldn't manage to run under Debian Jessie, to check whether it is worth all the pain. While testing this software in Windows 8, this OS was updating, though I was completely unaware of this (It is my fault to not deactivate automatics update from the very first day?). When I decided I want to go back to Debian and restarted the machine, I got this friendly screen saying that I should not turn off my computer becuause W8 was configuring the updates. "Ok!", I thought, "I did not know it, but that's ok.". 
The process took hours and when it was finally finished and the pc restarted , it booted directly into W8 without passing through GRUB, "UhOh..." 
I immediately went to the internet and found that that GRUB is easy to re-install. I grabbed a copy of live Debian, and made a bootable USB. I could boot from the USB and followed the instructions from the dpkg bot at irc channel #debian-next:

To reinstall boot to your Debian install disk/live CD, switch to the other console (Alt-F2), then mount your root filesystem (mount -t "fs type" /dev/"partition" /target ; mount --bind /dev /target/dev ; mount -t proc none /target/proc ; mount -t sysfs none /target/sys), then chroot into it (chroot /target) and run update-grub && grub-install /dev/"device".  Also works for EFI.

I did this and rebooted. Sadly it did not work and I got:


Reboot and Select Proper Boot Device

Since then (it has been 3 days! I wish I could sue MS for all the time wasted!) I am trying all suggestions I get that do not look too dangerous. I am about to re-install my Debian, but I am not sure this will solve the problem.

Technical data
Machine: ASUS K55V
It is a UEFI machine but I have

Fast boot [disable]
Secure boot [disable]
Launch in CSM [enable]
      PXE OpRom [disable]

As far as I understand this means that I am in BIOS compatible mode.

My Disk was partitioned in the following way (it has a protective MBR strcuture)

EFI partition
Windows partition
Some KiB not allocated
Root partition
Swap
Home partition

This worked fine until the update in question. Following a suggestion from user amphi in #debian-next I added a 1 MiB BIOS Boot partition (shrank the EFI partition by 1 MiB). I thought this did not make sense, cause the system worked for 1 year and half without this partition, but when everything fails, you do what is left. The disk now looks like

EFI partition
BIOS Boot parition
Windows partition
Some KiB not allocated
Root partition
Swap
Home partition

The only effect of this is that my BIOS/EFI now detects 2 windows bootable sectors instead of just one.

Ideas?
Will re-installing Debian solve the problem?
What should I do with the EFI partition? Back it up (it has the bootloaders) and then remove it completely?

lunes, 9 de diciembre de 2013

Install Citrix receiver 13 on Debian Jessie

To install it successfully I followed the instructions on this blog post:
Citrix Receiver 12.1 on Debian unstable
but I fixed the package using the instructions here:
Fix the broken .deb package (Ubuntu)
but when editing the file I removed completely ia32-libs, lib32asound2 and nspluginwrapper
Make sure to update the certificates as explained in the ubuntu help.

This got it running, but not always directly form the browser. If the broswer downlads the .ica fiel instad of launching the citrix client, just run


/opt/Citrix/ICAClient/wfica launch.ica

in a terminal (assuming the file downloaded was launch.ica and is in the current directory)

miércoles, 17 de julio de 2013

Vientos de cambio: Huayra Linux



Hoy estuve probando el Huayra Linux que esta basado en Debian Wheezy.
La verdad que me gustó mucho.

Tiene una clara orientación educativa, con muy buena selección de aplicaciones. Es evidente que el plan de armado del sistema fue bien dirigido y el diseño es consistente.

Lo probé en mi laptop que es bastante nueva y no pudo reconocer todo el hardware, pero es compresible dado que Debian tiene el mismo problema con mi hardware.

Voy a ver si estos días convenzo a uno de los alumnos para probarlo en su netbook.
Por lo pronto lo vamos a usar como OS para los talleres de robótica de Dwnego 2013.

El sistema viene con un tutorial muy sencillo que ayuda con los primeros pasos a los recién llegados. El tutorial viene de la mano de una vaquita bien simpática :D.

Me parece genial, mi madre (la use de tester) lo encontró muy útil.

Otra cosas super positiva es que el chat-room #huayragnulinux en irc.freenode.net es activo y la gente responde. Fundamental para mantener viva la comunidad.

Lo único que me decpcionó un poco (claro estoy "biased") es que GNU Octave no viene instalada por defecto. Pero bueno, el paquete "octave" de Debian Wheezy está ahi con una linda version 3.6.2.

+1 a la iniciativa, genial!

miércoles, 29 de mayo de 2013

Economía de la sábiduria de las multitudes: Las malas noticias

Traducción libre para los que no leen Inglés
Artículo original : http://www.santafe.edu/news/item/american-econ-review-bowles-crowd-wisdom-bad-news/ 
Economía de la sábiduria de las multitudes: Las malas noticias
 28 de mayo 2013
 American Economic Review

 Volkswagen es simplemente una mejor una empresa de automóviles que Fiat. Las ganacias son más altas, y también lo son los salarios. ¿Por qué no Fiat no es como VW? ¿Por qué Italia no emula a Alemania?

 ¿Acaso son élites las que perpetúan instituciones económicas mediocres y las normas sociales inútiles? ¿O es el peso de la tradición? O tal vez la gente es simplemente tonta. Tal vez ninguna de las anteriores: Incluso las personas más racionales a menudo persisten en perpetuar un status quo que nos deja a todos en peor situación. Ese es el mensaje de un nuevo estudio publicado en el American Economic Review por Marianna Belloc (Universidad Sapienza, Roma) y SFI profesor Samuel Bowles.

 Los investigadores muestran que grupos de personas pueden quedar atrapados en una mala situación porque nadie tiene el incentivo para hacer un cambio a menos que la mayoría de los otros también hagan el movimiento. En Volkswagen, los directivos comparten la toma de decisiones con los trabajadores y los trabajadores trabajan en cooperación, en beneficio de todos. En Fiat, los gerentes toman todas las decisiones, y los trabajadores tienen una actitud agresiva hacia sus gestores. "Mientras los directivos de Fiat actúen como fanáticos del control, los trabajadores no tienen incentivos para cooperar", explica Bowles, "y mientras los trabajadores armen barricadas ante la primera indicación de conflicto, los gerentes tienen pocos incentivos para darles un asiento en la mesa directiva."

Belloc y Bowles proporcionan un modelo matemático de cómo instituciones y culturas disfuncionales pueden persistir indefinidamente en estos círculos viciosos. Su obra forma parte de la investigación en curso del SFI en la co-evolución de las instituciones y comportamientos, el tema de una serie regular de grupos de trabajo de SFI.

Los investigadores muestran que cambiar para mejor puede suceder  cuando suficientes personas simplemente se niegan a seguir con el statu quo. Pero los que hacen esto pierden económicamente por quedar afuera. Piense: Rosa Parks. Y a menos que los desafiantes se junten, puede ser una larga espera hasta que el cambio suceda, y más aún si la gente continua con sus intenciones de maximizar sus propias ganancias.

 Y hay noticias para aquellos que creen que una marea creciente levanta todos los barcos: la liberalización del comercio retrazará la transición a una mejor situación. Belloc explica: "Incluso en un status quo pésimo, los beneficios económicos de la liberalización del comercio impican que tiene menos sentido arriesgarse a perder por nadar contra la corriente."

domingo, 24 de febrero de 2013

Breve reseña de CErrobotics - Google RISE 2013


Investigadores de una universidad belga y de la U.N.Sa. ganan una convocatoria mundial de subsidios de la multinacional Google --estan entre los 30 trabajos seleccionados de los 800 presentados en todo el mundo.








miércoles, 20 de febrero de 2013

Otorgan premio Google RISE a investigadores de Belgica y Argentina

Otorgan premio Google RISE a investigadores de Belgica y Argentina


El día 18 de Febrero Google anunció que la ONL Dwengo (Bélgica), junto
a investigadores de la Universidad Nacional de Salta (Argentina),
serán socios de Google RISE durante el 2013. De esta manera, Google
busca estimular la educación en Ciencia, Tecnología, Ingeniería y
Matemática (en Inglés: STEM).

En el año 2009, seis ingenieros del departamento de electrónica y
sistemas de la información de la Universidad de Gante (Bélgica)
fundaron la organización no lucrativa (ONL) Dwengo. La organización
nació como una extensión a las competencias de robots que estos
ingenieros organizan todos los años en la universidad. Objetivo:
promover en los adolescentes la electrónica y la programación.

Años más tarde se inicia el proyecto bilateral CErrobotics en
colaboración con investigadores argentinos de la Universidad Nacional
de Salta (UNSa). El proyecto tiene como objetivo proveer el
conocimiento y las herramientas necesarias para la enseñanza de la
robótica en colegios secundarios en situación de desventaja social y
económica. Se espera que con el apoyo de Google el impacto del
proyecto sea de amplio alcance, facilitando la participación de muchos
adolescentes salteños.

"Gracias al premio RISE, podré viajar a Argentina y organizar, junto
al Dr. Juan Pablo Carbajal, talleres de robótica para estudiantes y
tutores. Los apoyaremos en sus primeros pasos en la construcción de
robots.", dijo el Ing. Francis wyffels, "Una de las consecuencias
esperadas del proyecto es que los estudiantes de Argentina puedan
organizar sus propios eventos de robótica!"

El equipo CErrobotics esta compuesto por un equipo en Gante, Bélgica
(Ing. Francis wyffels, Dr. Juan Pablo Carbajal) y un equipo en Salta,
Argentina (Ing. Rubén D. Maza, Ing. Daniel Hoyos, Prof. Daniel
Córdoba, Dr. Victor Passamay). El grupo cuenta con el apoyo y la
colaboracińo de la secretaria de Ciencia y Tecnología de la provincia
de Salta, en particular Prof. María Soledad Vicente y el Lic. Sergio
Arcienaga.


Más información:
Francis wyffels (0473/300.729) y Juan Pablo Carbajal
Francis@dwengo.org
juanpablo.carbajal@ugent.be

miércoles, 13 de febrero de 2013

Find text inside huge collection of pdf files

So you have a bug collection of pdf files (like papers) and you are looking for a phrase. How to search from the GNU/Linux command line?
I found this method (sure is not optimal, better ideas?)

First create a file where results will be stored
$ touch /tmp/hits

Then list the files in your folder send the to pdftotext and grep the result. After each grep we print the name of the file (so the name is AFTER the results). In this case I was searching for papers mentioning "Tensegrity"
ls -1 | parallel 'pdftotext {1} - | echo {1}: $(grep -i tensegrity) >> /tmp/hits'
Finally you can explore the results in the /tmp/hits file. Note that this uses the GNU parallel command.
A useful command to explore the results is
 cat /tmp/hits | sed -n -e '/:$/!p'
This will show only the files indeed contain the string we searched for.
Useful?

sábado, 27 de octubre de 2012

Inkscape: Ripped paper tutorial / Tutorial, haciendo un trozo de papel



En este tutorial explico brevemente como hacer un efecto de trozo de papel en Inkscape. El tutorial se basa en este otro tutorial que anda en la web,
Heathenx: Episode 083 – Torn Paper Effect
Al final del tutorial describo alguna observaciones sobre trozos de papel de la vida real.
Ver en Español


UNDER CONSTRUCTION - Return soon!

In this post I explain how to create a ripped piece of paper in Inkscape. This tutorial is based on this video tutorial that you can find in the web,
Heathenx: Episode 083 – Torn Paper Effect

At the end of the post I comment on some observations about real life ripped paper.
Read in English

viernes, 4 de noviembre de 2011

ZVV Werbung


Español
Una propaganda en el transporte público de Zürich, Suiza.
"Querido automobilista: Qué más tenemos que hacer para que comience a transbordar?"

English
Publicity shown in the public transport of the city of Zürich, Switzerland.
"Dear car driver: How far do we have to go, before you decide to change?"

domingo, 14 de agosto de 2011

Tales of Wesnoth [4]: Listra River / Cuentos de Wesnoth [4]: Río Listra

EN ESPAÑOL
Continuando con los bocetos para el comic Cuentos de Wesnoth. Luego de dejar a su madre preocupada, los chicos se van a nadar al río Listra. Lo que les espera....

ENGLISH
Yet another sketch for my comic Tales of Wesnoth. After leaving their mother worried at home, the kids go to swim to the Listra river. They don't know what awaits them....



domingo, 17 de julio de 2011

Bike tour July 2011 / Bicicleteada Julio 2011



A 120 km bike tour from Zürich to Wolfhalden in Appenzell. Amazing weather, amazing road. Took us 11 hours including stops.

Un paseo de 120 km desde Zürich hasta wolfhalden en Appenzell. El camino espectacular, el clima mejor impossible. Nos llevó 11 horas incluyendo las paradas.

jueves, 14 de julio de 2011

Saturady Morning Physics Workshop / Taller de Física al alcance de todos

I am proud to share with you this video (alas in Spanish) about the "Free willing Saturday Morning Physics Workshop". If you understand Spanish, please take a look,it is inspiring.

Watch video

Read more

-------------------------------------------


Con orgullo comparto con uds. este video sobre el "Taller de Física" que se dicta Sábados por la mañana en la Universidad nacional de Salta.

Ver video

Leer más