15 oct 2016

Como cambiar la extensión de archivos de forma masiva (usando windows)

Yo se que este articulo molestara a muchos, no tanto por lo que explica, que espero sea de utilidad para los necesitados, sino porque muestra la cantidad de tiempo que podemos perder (yo así lo perdí) si en vez de hacer las cosas con el ordenador las hacemos con el ordenador. Puede parecer lo mismo pero no es igual. Y es que el que sabe, sabe. Y el que no, que aprenda.

Me explicó: Imagina que tenemos una carpeta con n fotos. n es un número indeterminado, pero finito. Pongamos que son muchas imágenes, todas ellas archivos con formato .png . Resulta que tu jefe te solicita, si te es posible, cambiarlas todas a un formato .tiff . Sí, como lo oyes. De png a tiff ¿pero para qué? -No preguntes. Tu renombra las imágenes y punto...

Bien. Podemos hacerlo usando el ordenador. Puedo situarme en la carpeta, abrir todos y cada uno de los archivos con mi programa de edición de imágenes favorito y exportar todas y cada una de las imágenes en dicho formato (¿Para que diantres puede uno querer un formato .tiff?). Eso podría significar unos 30 segundos por imagen, para n imágenes 30 x n segundos. Si 3600 segundos son una hora, en una hora podremos transformar 120 imágenes. Fantástico. Eso es hacer las cosas con el ordenador. 1 hora = 120 imágenes, en este hipotético ejemplo.

Temblad becarios. (no te preocupes. Tu jefe no lee este blog). Este es el comando que puede barrernos de la faz del horizonte laboral, si algún día el vsùñño de tu jefe se entera. (perdonadme aquí por revelar semejante información). Como decía:

Bien. Podemos hacerlo usando el ordenador. Puedo ir a Inicio, Ejecutar y escribir cmd para poder acceder a una consola, terminal o shell. Una vez ahí dentro (letras blancas, fondo negro...), ubicarme en la carpeta usando cd nombreCarpeta y cd .. para ir "atras", y luego teclear

rename *.png *.tiff

Una pasada. Lo hace "solito". Menudo genio. No sé cuanto tarda en cambiar la extensión de 120 archivos este comando... ¿se medira en milisegundos?... en fin. Te puedes tomar el resto de la hora libre. Hoy ya cumplíste, listillo.

¿se puede medir el amor al arte?

21 sept 2016

Como guardar un archivo .xml "solo por un espacio de tiempo limitado" usando windows (¡y/o GNU/Linux!)

Hace poco me encontré en la tesitura de necesitar repetir un determinado comando -para el caso consistente en descargar y copiar un archivo de mi red local LAN, usando el siguiente archivo que pude masacrar de no recuerdo bien quién o qué fuentes en una de esas derivas existenciales que realizo en cada búsqueda abstracta de soluciones realistas por el internet.

En este caso mi difusa idea era guardar la emisión de un archivo llamado data.xml (que emite un dispositivo de esos que llaman IoT (o internet de las cosas)) pero solo por un rato (un log tan grande petaría mi sistema sin dudas, como bien me indicó un experto amigo). En resumen: Obtener el archivo (que en el mismo aparato se refresca cada segundo) cada cierto tiempo, y guardarlo ese mismo cierto tiempo y no mas. 

El archivo que realiza la primera función se llama getData.vbs (lo puedes repicar en el bloc de notas y guardar con dicha extensión) y es un equivalente al famoso comando get para linux. VBScript es un lenguaje para máquinas que corren windows.

' Set your settings
    strFileURL = "http://ipDeRedLocal/data.xml"
    strHDLocation = "C:\lugarDondeguardarArchivo\data.xml"

' Fetch the file
    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

    objXMLHTTP.open "GET", strFileURL, false
    objXMLHTTP.send()

If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary

objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0    'Set the stream position to the start

Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO = Nothing

objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if

Set objXMLHTTP = Nothing

Así pues con este archivo creado y asimismo creando otro de nombre watch.bat (que emula el también famoso comando watch de linux) que diga:

@ECHO OFF
:loop
  cls
  %*
  timeout /t 30

goto loop
Ahora tenemos todo listo para el happening. 30 es el tiempo del loop en segundos. Una vez hecho todo esto, abrimos la consola en Inicio -> Ejecutar -> cmd y nos ubicamos en la carpeta donde creamos estos dos archivos, tecleando: 

cd C:\lugarDondeguardarArchivo\

Posteriormente lo ponemos a funcionar mediante las palabras mágicas:

watch getData.vbs

Si todo va bien el proceso se iniciará ad infinitum. ¿Y todo esto para qué? Se preguntarán algunos... Pues la verdad no sé exactamente que utilidad tiene. Eso si, el archivo, que en este caso concreto se sobreescribe una y otra vez en el tiempo, está disponible para que terceros (personas, máquinas,programas) extraigan información, la procesen y la analicen, incluso quizás creen un log con los datos que prefieran, dejando el resto de información perderse en la noche de los tiempos

...no se, voladas de la mente, supongo. Por si a alguno le sirve de algo, a mi me recuerda que una vez precisé estas lineas de código. ¡Saludos!

Update: Para hacer esto usando la terminal de tu máquina GNU/Linux tan solo teclea como usuario administrador(root):

watch -n 3 wget http://ipDeRedLocal/data.xml -O data.xml  
 

estando en la carpeta /lugarDondeguardarArchivo/ , o especificandolo tras la opción -O del comando wget



6 jul 2016

Reflexiones sobre Minecraft (y más allá)...

Yo lo de los juegos de computadora lo tenía bastante abandonado. Nunca fui muy bueno en ninguno de ellos, y solía cansarme rápido por una falta de constancia endémica en mi ser, o bien quedarme atascado en alguna fase cuyo truquito no alcanzaba a descubrir... Pero bueno, como buen amante de la máquina nunca dejé de sorprenderme y lo cierto es que un buen consejo, nada mas adquirir tu nuevo pepino (entiéndase una máquina con alta capacidad de procesado), era el de instalar un juego “de última generación” y comprobar si y cuanto rascaba, por ejemplo, la tarjeta gráfica en los momentos de máxima acción, el procesador a la hora de calcular los movimientos, o cosas así. Imagino que aún lo sigue siendo pues las máquinas de los gamers están diseñados para tal efecto, aunque puedan desempeñar muchas otras tareas.
 
Al principio importé la negrita en obsidiana, y era tan grande que si la ponía de pie no cabía... Al importarla bajo el nivel del mar se comio parte del mismo...
Mis vagos recuerdos del GTA (en su versión del cretásico) eran los de simplemente disfrutar conduciendo por los escenarios renderizados en lo que, tras unas cuantas vueltas te acababas conociendo “como la palma de la mano”... Gracias a mi amigo, que compartía la sesión y que sí cumplía las misiones, podía ir disfrutando cada vez de mas vehículos: motos, falúas, helicópteros… Cuando querías un modelo concreto de coche, lo que tenías que hacer era mirar, quitar la mirada y volver a mirar el cruce, y así hasta que aparecía o que querías. El juego no tenía continuidad en la acción, eso ya vendría mas adelante,  y para cada percepción del jugador, o a donde miraba, se generaba una situación nueva, una historia diferente.

Este es el interfaz de MCEdit. Un programa que para mi simple fin -importar y escalar un objeto tridimensional para posteriormente jugar sobre el- fue perfecto. Un poco sobrecagado, pero es lo que tiene estar en el límite del delicado equilibrio entre software y hardware.
No jugaba mucho, pero no me dejaba de fascinar. Imaginaba lo imaginable. Second Life ya me había permitido comprender como el espacio real, es decir, máquinas encendidas funcionando como servidores, era equivalente al espacio virtual, entendiendo éste como un lugar donde “construir tu casa”, tal y como se ofrecía y se ofrece comercialmente el asunto, y mucho mucho mas…también fue -creo- la primera vez que oí hablar de dinero digital o electrónico, los famosos linedns o algo así… Nunca profundicé mucho en mis investigaciones personales la verdad.

Al final, la negrita a una escala menor y en piedra, volando sobre el océano de un Mundo Nuevo. Quedé tan contento con el resultado.

En fin, ahora, por circunstancias que me son del todo ajenas, me veo en la tesitura de disponer de un perfil para jugar a Minecraftpor mí pago”. Porque sí, este juego sabe lo que se juega e identifica a cada usuario con un correo electrónico y alguna forma de pago, como 20 euros por barba, al menos por el momento en el cual yo me “subscribí al servicio” (¿será esto acaso Software as Service o el famoso SaS?...). Por otro lado la cantidad de servidores y mods (parece ser pues yo no he estudiado estos menesteres) conforman per-se una inmensidad donde una verdadera matriz (o matríx) de posibilidades nos muestra la pequeñez de nuestras acciones en el universo digital.
Que elegancia, que porte... aún en cuadraditos pixelados...
Feliz y contento me puse a jugar en lo que era para mi la primera experiencia de “juego abierto” o sandbox que con tal nombre alguna vez participé. Al principio no comprendía nada. Ahora tampoco, pero algo mas voy viendo… Veo que en este juego puedes “hacer lo que quieras”, en el sentido de jugarlo como una aventura de supervivencia, o como una de exploración, o como un lugar para construir, o todo a la vez… Veo también que lo de usar la “estética de cubitos” sirve para poder procesarlo todo, simplificando los cálculos de esta realidad virtual… ¿no es así? Pasto de psicoanalista...

Atardecer junto a la gran esfinge africana
Ni corto ni perezoso instale el servidor disponible como binario en GNU-Linux, encontré un truquito que ni me molestaré en explicar pues al poco de usarlo “lo corrigieron”, un truco que me permitía jugar con varios usuarios “a mi cuenta”, cambiando el display name y “engañando a la máquina”… not any more. “Rispónsibol disclousur”, dicen... Aquí el que no corre, vuela. Me gusta el juego. No me gusta pagar por usar un programa. Sí me gustan los usuarios genéricos y compartidos. Yo solo quería hacer mis pruebas, y me gustaría poder jugar con varios perfiles a la vez, yo y mi hijo, sin tener que pagar dos veces. Pero eso, parece ser, es demasiado pedir en este mundo que vivimos.

Luna llena y cielo estrellado en el horizonte

Tonterías aparte, me pregunté: ¿Podría importar un modelo de los que tengo escaneados en 3D y ubicarlos en un mundo mindcraftero?. Pues sí, Así fue. Tras una breve búsqueda en la red, comprobé que alguien publicó el programa que tal tarea puede hacer. Y sin dudarlo un instante importe el archivo en tresdé escaneado de una pequeña estatua africana de oscura madera (llamada coloquialmente "la negrita") que acompaña a mi familia en forma de gigantesca escultura en el escenario del juego. Los programas empleados fueron, por un lado obj2mc, es decir “Object to Minecraft” (No tan solo importa archivos con extensión .OBJ, también .PLY) para mineraftizar tu malla de polígonos, lo que luego es posible importar usando MCEdit, un editor de mundos de Minecraft, así como suena. ¿chachi no?

Este (y configurar tu servidor de forma poco segura...) era el truquito que -o casualidad justo hasta hoy mismo- funcionaba y ya no. ¡Que nos quiten lo bailao!
Así pues aquí dejo el archivo con el nuevo mundo al que me refiero, y que puedes ver en las capturas de pantalla que acompañan este texto, como obra de arte conceptual, y consciente que no debe ser ni la primera ni la última vez que algo así sucede, algo así como que un objeto de la realidad real pase a formar parte de la realidad virtual, en este caso dentro del famoso juego, intentando así poner en evidencia como la máquina, que cada vez dispone de mas recursos a su alcance para capturar, leer e interpretar la realidad, un buen día va a decidir replicar la realidad tan bien que ni nos vamos a dar cuenta.

8 may 2016

Simple Automated Light Control Arduino Implementation - SALCAI_0.2.1


// Simple Automated Light Control Arduino Implementation 
// SALCAI_0.2.1 


int lightSensor = A2;
int lightLevel;
int led = 13;
int rele = 12;

void setup() {
  pinMode(rele, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(lightSensor, INPUT);
  Serial.begin(9600);
}

void loop(){

  lightLevel=analogRead(lightSensor);
  Serial.println(lightLevel);
  {
    if(lightLevel > 560)
    {digitalWrite(led, HIGH);
   digitalWrite(rele, HIGH);
  
    delay(24560);
    }
   

    if(lightLevel <= 560)
   
  
    {digitalWrite(led, LOW);
    digitalWrite(rele,LOW);
    }
  }
 
  delay(120);
 
}


// Creative Commons Licence
// Luis Rodriguez

3 abr 2016

3D, Money and Power - Independent Research Regarding Computer and Human Interaction


Dear Sirs,

It was about two years ago that I decided to re conciliate with what I usually call mekhane, or machine, starting to approach and study once again in my life the state of the art regarding computer networks, human and machine interactuation and related aspects in present running days.

My first inscription quote was acquiring an AMD desktop unit pret-a-porter, machine I got to buy in a mainstream electro domestics company -with windows preinstalled also thus prepaid-, from where I am typing these actual lines and that has accomplished wonderfull tasks during my study development.

Second investment on my personal education was another improved middle class gaming machine, also from AMD manufacturer, this time delivered from Madrid from a well unowned internet computer online store, with a really nice Free and Open-source -up to my scarce understanding- Debian desktop GNU/Linux distribution that I personally installed.

Both really smooth, and for my expectations at this time -I maintain as a hobby some cryptocoin mining activity- it is doing an amazing work. I am very happy with its performance and under some requirements both can be used for different tasks for common goals. I have also invested in Arduino boards multiple sensors and actuators, relays and also a raspberry pi, all of which of most value in the so called Internet of Things experimentation field.

As you may understand I am a self-made studier, that is I did not have a teacher but many during my life, all people whom I respect and that formed part of my life experience for long and short periods of time. I also or neither never had a very much defined study object -a program I could say-, but the will to learn new things and feel alive, the enthusiasm for learning.

I feel now as if the initial work is done, but when I interact with one, many or some of the aspects I once hand-printed in paper so to make up my mind, the whole puzzle changes and it makes me feel I get a small clue of what one is all and all is one means. This is unfinished work, and it is and will be licenced with Creative Commons v 4.0 International Atribution. So I just decided to publish this paper, in case anybody would like to have a say regarding this interesting fields, please feel free to contact me in most suitable way.

Sincerely yours,

Luis Rodriguez