Me acabo de dar cuenta de que no he enlazado antes mi otro blog sobre investigación y demás cosas. El tema principal de mi investigación es privacidad en la interacción entre máquina y humano. Sobre todo relacionada con las interfaces de usuario tangibles.
Mi otro blog
June 24th, 2016Desactualizado y caído
May 21st, 2016Este blog se la pasa más tiempo caído y desactualizado de lo que debería. Acabo de terminar de moderar los últimos 60 comentarios de 2014 :∫
Voy a empezar a ponerle un poco mas de “onda” al blog, espero que San Google me perdone y vuelva a recuperar la confianza puesta en mi.
En otro orden de cosas, estoy desarrollando un proyecto nuevo, pemark. La idea es que sea simple, rápido y multiplataforma. Un benchmark que te permite saber la velocidad de tu dispositivo comparada con la velocidad de otros dispositivos del mismo tipo. La version en javascript ya mas o menos funciona y la version en android esta en progreso.
Tareas de Mantenimiento
October 28th, 2014Oso32 publicado como código abierto
August 6th, 2014Después de tanto tiempo me he decidido a publicar las prácticas de DEISO (Desarrollo y Estructura Interna de Sistemas Operativos) como código abierto. Las prácticas consistían en portar a modo protegido el sistema operativo OSO (Otro Sistema Operativo) desarrollado por Dr. Juan Piernas Cánovas. El resultado es el Oso32.
El Oso32 tiene algunas mejoras con respecto al OSO original: puede ser depurado utilizando gdb/bochs y el acceso a punteros de memoria ya no require (SEGMENTO):(DESPLAZAMIENTO).
Por supuesto tiene dos desventajas importantes: el modo protegido del i386 es más complicado de entender y manejar que el modo real y además las funciones principales que proporciona la BIOS ya no están disponibles.
Espero que este proyecto pueda ser de utilidad a la comunidad
Nueva página para el projecto UTnP
July 17th, 2014El proyecto “Universal Touch and Play” inaugura nueva pagina web:
Proyecto UTnP
Aparcamiento para perros visto en Noruega
July 10th, 2014
Visto a la entrada de un supermercado en Noruega.
El texto dice:
Aparcamiento para perros
Estimado dueño
La tarjeta para el aparcamiento para perros está disponible en parte trasera junto a la puerta.
Que tenga un buen día.
Video:
Colisiones en OpenFL
April 6th, 2014Para detectar si hay alguna colisión entre dos sprites se puede usar el método hitTestObject( DisplayObject ) de la siguiente manera:
if ( moving_left ) {
direction = DIRECTION_LEFT;
x = x - 1;
}
for (child in 1...parent.numChildren ) {
if ( Std.is(parent.getChildAt(child), Wall) ) {
if ( parent.getChildAt(child).hitTestObject (this) ) {
x = x + 1;
}
}
}
Lime.onKeyChange error en la version 1.2.2 de openfl-native
April 4th, 2014Parece que hay un bug en la version 1.2.2 de openfl-native que causa un error de compilación al compilar en linux para la plataforma Android.
El error es el siguiente.
-compile:
[javac] Compiling 6 source files to /[PATH]/Export/android/bin/bin/classes
[javac] /[PATH]/Export/android/bin/src/org/haxe/lime/MainView.java:381: error: method onKeyChange in class Lime cannot be applied to given types;
[javac] me.HandleResult (Lime.onKeyChange (keyCode, true));
[javac] ^
[javac] required: int,int,boolean
[javac] found: int,boolean
[javac] reason: actual and formal argument lists differ in length
[javac] /[PATH]/Export/android/bin/src/org/haxe/lime/MainView.java:430: error: method onKeyChange in class Lime cannot be applied to given types;
[javac] me.HandleResult (Lime.onKeyChange (keyCode, false));
[javac] ^
[javac] required: int,int,boolean
[javac] found: int,boolean
[javac] reason: actual and formal argument lists differ in length
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] 2 errors
La solución ha consistido en actualizar la libreria openfl-native a la version 1.3.0
haxelib update openfl-native
Animaciones en OpenFL
March 15th, 2014Click en la imagen y controla al personaje con las teclas de dirección.
Fallback or ‘alternate’ content goes here.
This content will only be visible if the SWF fails to load.
Estoy haciendo algunos experimentos con OpenFL. Muy rápido y potente a la hora de desarrollar aplicaciones Flash.
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.events.Event;
import openfl.Assets;
class Player extends Sprite {
var bitmapArray : Array
var i : Int= 0;
var moving_up : Bool = false;
var moving_down : Bool = false;
var moving_left : Bool = false;
var moving_right : Bool = false;
public function new () {
super ();
initialize();
}
public function initialize() {
bitmapArray = new Array();
var bitmap : Bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player00.png");
bitmapArray.push(bitmap);
bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player10.png");
bitmapArray.push(bitmap);
bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player11.png");
bitmapArray.push(bitmap);
bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player12.png");
bitmapArray.push(bitmap);
bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player13.png");
bitmapArray.push(bitmap);
bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player14.png");
bitmapArray.push(bitmap);
bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player15.png");
bitmapArray.push(bitmap);
bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player16.png");
bitmapArray.push(bitmap);
bitmap = new Bitmap();
bitmap.bitmapData = Assets.getBitmapData ("assets/images/player17.png");
bitmapArray.push(bitmap);
addChild(bitmapArray[i]);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(evt:Event) {
if ( moving() ) {
removeChild(bitmapArray[i]);
i = (i + 1) % 9;
addChild(bitmapArray[i]);
}
if ( moving_up ) {
y = y - 1;
}
if ( moving_down ) {
y = y + 1;
}
if ( moving_left ) {
x = x - 1;
}
if ( moving_right ) {
x = x + 1;
}
}
public function moving() : Bool {
return (moving_up || moving_down || moving_left || moving_right);
}
public function up() {
moving_up = true;
}
public function down() {
moving_down = true;
}
public function left() {
moving_left = true;
}
public function right() {
moving_right = true;
}
public function stop() {
moving_up = false;
moving_down = false;
moving_left = false;
moving_right = false;
}
}
Google ha actualizado el pagerank
December 8th, 2013Parece que al final Google ha efectuado una actualización del pagerank a lo largo de esta semana.