Alters

Mostrando entradas con la etiqueta varios. Mostrar todas las entradas
Mostrando entradas con la etiqueta varios. Mostrar todas las entradas

Especial 100 entradas

Hola a todos y hola a todas.
   
Estimados y queridos lectores míos, ha llegado la entrada número 100.

A la vez, se cumplen dos años desde que empecé a escribir el blog.

Esto nos deja un balance de 50 entradas por año de blog, y 5660 visitas por año (calculado a fecha de 15.08.2014), lo cual para mí es algo muy positivo...

¿Qué han pasado en estos dos años?

Pues bastantes cosas... logré sacarme el ISPA, empecé mates en la UNED (ya os contaré ya...), y he logrado estabilizar bastante las cosas, lo cual es bueno.

¿Y qué espera el futuro?

De momento tenemos nuestro nuevo gadget, que da un toque personal al blog.

Tenemos varias sagas prometedoras, sagas concluídas... y sagas futuras.

También traigo novedades para todos (incluso algunas para mi):


  • Facilidades para crear los cuadros de código

De momento para crear los cuadros oscuros de código he creado una clase CSS en el diseño del blog. Esto de cara al público no cambia nada, pero es más fácil para mi... Más adelante haré y os enseñaré (de una manera u otra) alguna función que deje las cosas más bonitas (como por ejemplo en esta entrada), pero incluso mejor que en la entrada que os pongo de ejemplo. Y además, sin tener que "matarme" yo a hacerlo manualmente (motivo por el que dejé de hacerlo).

Esta parte sí afectará (positivamente) en lo que veréis vosotros ya que será todo más colorido y fácil de ver.



  • Nuevas sagas

Como siempre, innovación. De este punto os quiero explicar lo mínimo para mantener el factor sorpresa ;-)



  • Glosario

No se si recordáis lo que decía en las primeras entradas, pero si no os acordáis os lo recuerdo :^P

En este blog, por norma general, no trataremos cosas "simples". Es decir, no veréis una entrada que sea "como abrir un fichero en JAVA".

No obstante, hay cosas que por "X" o por "B" necesitan una explicación, o bien se puede dar una explicación básica de un concepto avanzado y que alguien quiera saber más.

Para ello crearé un glosario en el que iré metiendo conceptos (de momento conceptos de seguridad y explicaciones extendidas de ciertos conceptos relacionados).

Con ello, podré enlazar (quizás con un "onmouseover") los conceptos para que las entradas sean más concisas y claras; todo un avance...

Además, sería útil combinado con el buscador ;-)



  • Publicaciones escritas

¿Qué?

Estuve mirando una cosa llamada KDP, que viene a ser básicamente que publicas lo que quieres en Amazon, tipo e-book, y pensé... ¿por qué no?

Vale que el propósito inicial era publicar otro tipo de cosas (mis libros, un fanzine, etc), pero por extensión puedo aprovechar y brinaros otro formato.

De momento (como inicio) cogería las sagas y las publicaría gratis (obviamente) para hacer pruebas y demás; más adelante podría publicar micro-publicaciones de todo tipo: extensiones del glosario, proyectos pequeños, etc. y todo por el precio mínimo / gratis.



  • Una tonelada de documentación

Seguramente saldrá con el formato de KDP, pero os lo adelanto: voy a publicar el 100% de mis apuntes de informática. Desde 0, pasando por todos los cursos que he pasado, los apuntes que he tomado por mi cuenta... no se cuántos fascículos/libros/lo-que-sea ocupará, pero desde luego será útil.

También actualizaré la documentación de matemáticas (acabar el "curso" actual, y añadir un montón más de cosas nuevas).



  • Plantear nuevos horizontes

¿Porqué un blog "estático"? Se me ocurren 1.000 cosas que hacer con él: e-learning, propuesta de problemas, consejos...

Y bueno, gente, desde aquí me gustaría feliciar a todos por seguir mi blog durante estos dos años (aunque no dejéis comentarios se que algunos me leeis ;-) )

PD: El buscador tardará un tiempo en estar colocado (dificultades técnicas) :(

Y como siempre digo...

¡Hasta la próxima!

Break tecnológico

Buenas,

Algunos no lo sabéis, pero el día 25 de Noviembre es mi cumpleaños...

¡Y me han hecho muchos regalos!


Interludio

Buenas!

Como es costumbre ya, sigo saturado y hasta arriba de cosas...

No obstante, sigo acordándome del blog, jejeje.

Durante la semana que viene espero poder tener la próxima entrada (Repaso de FTP con VB.net). Así, faltaría una última entrada (todo el tema de nMap), y volveríamos a las matemáticas...

Aunque no avanza todo al ritmo que me gustaría, me alegra ver cómo los proyectos poco a poco van avanzando...

A parte de esto, comunicar dos cosas:

a) ¡Estrenamos canal de Youtube!

Eso es, estamos en pleno proceso de creación de material... nuestro canal se dedicará (principalmente) a hacer gameplays de juegos que nos gustan (somo tres integrantes en el canal). Esto quiere decir que es muy probable que no sean juegos mainstream, o simplemente modernos.

b) Seré desarrollador de Google

La semana que viene me apunto al plan de desarrolladores de Google, y en breve (eso espero, ya que le dedico mucho tiempo) lanzaré mi primera app, basada en una web que estoy desarrollando (la inauguración oficial es el 1 de agosto de 2013).

En fin, esto es todo... espero poder escribir más a menudo.

Como siempre,
¡Hasta la próxima!

Interludio

Buenas!

De nuevo por aquí...

Acabada está ya la primera parte de nuestro remote tools... la próxima será, por tanto, matemáticas (tema II, ya).

Pero antes, hay varias cosas que anunciar.

a) Se ve a la vista un nuevo blog personal
b) Surgieron varios temas durante la pasada sección que dejo en cola. A saber:
  b1) Criptología
  b2) Hacking wifi
  b3) Obtención de datos
c) He desarrollado una pequeña función JS/HTML para blogger (lo veremos más abajo)
d) Tengo un nuevo "juguete" del que escribir
e) Hay un pequeño cambio (¡por fin!)

Así que vamos por partes.

Blog personal:

Pues eso... estoy pensando en hacer un pequeño blog donde meter todos mis pensamientos y textos... a ver si podemos fomentar la escritura y el pensamiento (al menos lo intentaré). Os mantendré informados, y, como siempre, si me decido, lo encontraréis más allá de los confines de mi blog.

Temas:

Éstos - y otros que quizás salen durante este tiempo - los guardo en mi pila de ToDo's de mi despacho (tengo un corcho bien grande lleno de papelitos con ideas...)

Función JS/HTML:

Bien, he creado una pequeña galería fotográfica (pensada para el blog de cosplay). Es una de las cosas que blogger no acaba de hacer: al subir varias fotos cuesta cuadrarlas (salen casi siempre una abajo de otra, y cosas así), así que cuando tengo que poner varias queda bastante "cutre".

Así que me estrujé el cerebro, y como soy tan y tan escéptico, no quise coger galerías de terceras personas, sino más bien hacerme una para mi (que de eso va este blog, ¿no?, ¡DIY!).

Y me gustaría compartir con vosotros mi aporte. Por tanto, vamos a ir paso a paso para ver cómo funciona la pequeña galería.

Para empezar, dejo un esquema general de cómo está estructurada la galería:


Para la notación usaré la siguiente convención (ejemplos):

elemento.clase

elemento#id

elemento.clase subelemento#id:estado

El elemento "global" es "div.blogMarquee". Dentro tenemos tres elementos: "div.blogMarqueePhoto", "marquee#bm" y "div.blogMarqueeScroll".

Dentro del primero hay un elemento: "img#cp".

Dentro del segundo están las imágenes, es decir, un conjunto de "marquee#bm img".

Dentro del tercer elemento hay dos "div": "div#bMSL" y "div#bMSR"

El contenido de "marquee#bm" lo tendremos que introducir de manera manual, y será lo único que varíe de una entrada a otra (es decir, la estructura es siempre la misma, solo cambiaremos las imágenes).

Igual os preguntáis que es eso de "marquee". Para los que no hayan usado nunca este elemento NO ESTÁNDAR de HTML decir que es, de manera general, un div cuyo contenido se mueve. De este movimiento podemos definir:

  • Velocidad
  • Frecuencia de movimiento
  • Dirección de movimiento
  • Modo de movimiento
  • Cantidad de ciclos de movimiento
Cuando veamos el código explicaré un poco más cómo funciona.

Entonces, el funcionamiento es el siguente:

 - Las imágenes pasan por "marquee#bm".

 - Al pasar por encima de "marquee#bm", el movimiento cesa, y se muestran flechas de dirección ("div#bMSL" y "div#bMSR").

 - Al pulsar sobre una imagen, ésta se "colocará" en "div.blogMarqueePhoto img#cp".
 - Al pulsar sobre las flechas, podremos navegar por las imágenes (mientras se mantenga el ratón pulsado)

 - Al pulsar sobre "div.blogMarqueePhoto img#cp", la imagen se abrirá a tamaño real en una ventana nueva.

Aquí vemos dos cosas a destacar:

a) Hay un solapamiento de eventos javascript.
b) Tenemos que controlar cuándo el ratón está pulsado sobre "div#bMSL" y "div#bMSR".


Teniendo estas dos cosas en cuenta, vamos a pasar a ver la estructura HTML de nuestra galería:


<div class="blogMarquee">
<div class="blogMarqueePhoto">
                <img src="" alt="" width="400" height="300" id="cp" onclick="external(this);">
         </div>
<marquee id="bM" onmouseout="setAmount(this,5);" onmouseover="setAmount(this,0);" srcollamount="5">
<!-- imágenes aquí, en formato: width=320 height=240 -->
</marquee>
<div class="blogMarqueeScroll" onmouseover="setAmount(ge('bM'),0);">
<div id="bMSL" class="binv" onmousedown="action([ge('bM'),10,false],true);" onmouseup="action([ge('bM'),0,false],true);"> < </div>
<div id="bMSR" class="binv" onmousedown="action([ge('bM'),10,true],true);" onmouseup="action([ge('bM'),0,true],true);"> > </div>
</div>
<script type="text/javascript">addId(ge('bM'));</script>
</div>

(No me gusta que desfase el ancho del blog... pero así se ve mejor)

Como vemos, al final hay una llamada JavaScript. Ésta sirve para dar "id" a cada imagen dentro de marquee (ya veremos cómo, en un momento).

Antes de entrar en JS, vamos a estudiar un poco el HTML.

Como vemos, tenemos la estructura comentada, así que no pararemos ahí, sino que veremos el el elemento "marquee#bm".

Vemos que tiene "scrollamount=5". Esto indica la velocidad (5, en este caso) a la que se mueven los elementos. La dirección la veremos más adelante.

Ahora, vamos a por el JS (explicado con comentarios):


/**
 * variable global para el solapamiento
 */
var b_max=2;

/**
 * función action. 
 * Actúa como manejador de solapamiento de eventos entre "marquee#bm img:click" (a) y ("div#bMSL" | "div#bMSR") (b).
 * (a) lanza cphoto
 * (b) lanza move
 * Recibe dos parámetros:
 * @param v: array de parámetros de subllamada
 * @param f: valor de flag 
 */
function action(v,f){
b_max--;

if(f&&b_max>0){
move(v[0],v[1],v[2])
}else{
if(!f){
cphoto(v[0])
}
}

if(b_max==0||f){
b_max=2
}
}

/**
 * función ge.
 * Sinónimo de función "document.getElementById".
 * Recibe un parámetro y retorna un elemento:
 * @param e: id del elemento a retornar
 * @return: elemento cuyo id corresponde a "e"
 */
function ge(e){
return document.getElementById(e)
}

/**
 * función setAmount.
 * Ajusta la velocidad (scrollAmount) del elemento "e" a la velocidad "a".
 * Si la velocidad es 0, se muestran las flechas; en caso contrario se ocultan.
 * Recibe dos parámetros:
 * @param e: elemento a ajustar
 * @param a: velocidad
 */
function setAmount(e,a){
e.direction='left';
e.scrollAmount=a;

if(a==0){
ge('bMSL').className='bMSL';
ge('bMSR').className='bMSR'
}else{
ge('bMSL').className='binv';
ge('bMSR').className='binv'
}
}

/**
 * función addId.
 * Itera sobre el elemento con id "e", y sobre sus hijos, asigna id's de forma secuencial.
 * Del mismo modo, asigna un handler "click" a cada elemento.
 * Recibe un parámetro:
 * @param e: id del elemento a iterar
 */
function addId(e){
am=0;

for(i=0;i<e.childNodes.length;i++){
try{
e.childNodes[i].setAttribute('id','el'+am);
e.childNodes[i].setAttribute('onclick','action([this],false)');
am++
}catch(err){
}
}
}

/**
 * función move.
 * Mueve el elemento "e", en la dirección indicada por "t" a una velocidad "a".
 * Recibe tres parámetros:
 * @param e: elemento a mover
 * @param a: velocidad a fijar
 * @param t: dirección (true para derecha, false para izquierda)
 */
function move(e,a,t){
if(t){
e.direction='right'
}else{
e.direction='left'
}

e.scrollAmount=a
}

/**
 * función cphoto.
 * Muestra el elemento "e" sobre el elemento "#cp"
 * Recibe un parámetro:
 * @param e: elemento a mostrar sobre "#cp"
 */
function cphoto(e){
ge('cp').setAttribute('src',e.getAttribute('src'))
}

/**
 * función external.
 * Abre, en una ventana nueva, el elemento "e".
 * Recibe un parámetro:
 * @param e: elemento a abrir
 */
function external(e){
if(e.getAttribute('src')!=null){
window.open(e.getAttribute('src'))
}
}


Ahora, trataremos los dos asuntos:

a) Solapamiento: usamos este sistema para evitarlo.
b) Se generan dos eventos: onmousedown (cuando la tecla está pulsada) y onmouseup (cuando se suelta la tecla). En el primero, indicamos que se mueva hacia la dirección indicada; en el segundo, indicamos que pare.

Por último, falta indicar el estilo de nuestra nueva función:


img{
border:0;
}

.blogMarqueePhoto{
height:300px;
width:400px;
margin-left:auto;
margin-right:auto;
padding:10px;
}

.blogMarqueePhoto img{
width:400px;
height:300px;
border:1px solid #CCC;
 padding:0px
}

.blogMarqueePhoto img:hover{
cursor:pointer;
border-color:#FFF;
}

#bM{
height:245px;
}

.blogMarqueeScroll div{
top:-245px;
width:100px;
height:240px;
position:relative;
font-familt:arial;
font-size:180px;
color:#FFF;
line-height:240px;
opacity:.5;
-moz-opacity:.5;
filter:alpha(opacity=50);
background:#000;
}

.bMSL{
float:left;
}

.bMSR{
float:right;
}

.binv{
display:none;
}

#bM img{
 padding:0px;
}

#bM img:hover,.bMSR:hover,.bMSL:hover{
cursor:pointer;
}

Y ya solo falta rellenar con imágenes y colocarlo en una entrada.

Aquí podéis ver un ejemplo en funcionamiento. Un consejo: usad el ingenio para "importar" fotos desde facebook ;-)

"Juguete":


























Aquí está. Es una lámpara-tecla que compré en la feria del cómic de Barcelona. Mide unos 15cm de largo y se queda en mi despacho.

Ahora ya puedo decir que tengo la luz bajo control ;-)


Cambios:

Hace tiempo que voy detrás de graduarme en la universidad, pero lo que quería hacer estaba fuera de presupuesto (aunque tengo que admitir que de hacer algo relacionado 100% con la informática me gustaría hacerlo); un Bachelor en un centro adscrito a la universidad de Gales. Son tres años de carrera repleta de asignaturas con muy buena pinta...

Pero se va de presupuesto, así que vivía resignado.

Hasta que repasando los apuntes de mates me picó el gusanillo otra vez... así que ahí lo dejo:

¡Me voy a graduar en matemáticas!

Ya me he visto la carrera que voy a hacer y es buena, barata y a distancia. ¡Ale! así, entre curso y curso, podré hacer cursillos de informática (nunca hay que dejar de estudiar)... con este paso estoy más cerca de ser doctor... :-)

Desde luego no es un cambio que haya estado "esperando", más bien vino así de golpe... pero ya está bien.

Break tecnológico

Buenas!

Como comenté en la anterior entrada, en esta vamos a hacer un break tecnológico.

Por otra parte, los cambios importantes se demoran, pero nuevas señales se acercan; no se cómo acabará esta aventura!

Y es que he conseguido otro gadget para mi colección. En este caso, un móvil nuevo.

Nada más que el Samsung Galaxy Ace II NFC. Este modelo salió en mayo de 2012 (hace 9 meses), y puedo bien decir que el cambio ha sido espectacular como mínimo.

Pasar de una BlackBerry Bold 8520 a mi actual smartphone ha sido un paso (llevaba con la BlackBerry 3 años largos)...

No digo que sea mal terminal la 8520; es más, me ha dado un resultado brutal, de esos que esperas de lo mejor del mercado. Y es que ha aguantado 3 añazos como el que más.

Incluso se le ha caído uno de los botones de silicona del costado (de tanto usarlo), tiene innumerables golpes involuntarios, y otros muchos golpes de descarga de ira (pobrecito, pagaba todos mis cabreos).

Y puedo corroborar que la BlackBerry 8520 aguanta:

 - Puñetazos en la pantalla
 - Lanzamientos contra la pared
 - Lanzamientos contra el suelo
 - Puñetazos en el teclado
 - Golpes tales que desmonten el teléfono

Y nada... a día de hoy sigue funcional.

Pero, volviendo al nuevo smartphone... ¿Qué decir?

 - El wifi funciona tan bien que asusta (usando los 30mb de ONO se nota...); con la BB apenas se notaba la velocidad wifi.

 - Pantalla mucho más grande
 - Cámara de 5mp con flash
 - Mogollón de apps buenas, por obra y gracia de San Google ( :-P )
 - Video en HD

Y un montón de pequeñas cosas que lo hacen muy atractivo, como el tema del estilo interno de los menús, el que puedas "swippear" en el teclado, el que tenga NFC, gestionar todas las conexiones con una pulsación...

Lo que más me gustó de conseguirlo es que obtuve un buen descuento...

Y aquí una imagen de mi nuevo terminal:




Y esto es todo por ahora.

En la próxima entrada volvemos a las matemáticas, penúltima parte antes del break de tema. Tengo un par de cosas pensadas para hacer, pero falta que las desarrolle...

Saludos, y...

¡Hasta la próxima!

Interludio

Buenas!

Tenía la parte III escrita, y estaba maquetando cuando he apretado "ctrl-z" en el editor de elementos de Chrome y me ha desaparecido todo, y encima me ha guardado la entrada como vacía...

Pena penita... en fin, este fin de semana la haré de nuevo (y con más tiempo, la verdad... que la que tenía redactada era como "express"...)

Aprovecho para contaros que ayer conseguí una nueva pieza para mi PC. En concreto es la tarjeta de sonido Hercules GameSurronund Muse XL Poket LT3. Si bien no es algo "profesional", si me sirve para disfrutar como nunca de mi home cinema Trust SoundForce Presto 5.1 (que ya tiene sus casi 3 años).

Con esto queda completado mi PC, a la espera de una próxima renovación (toca gráfica, HDD o RAM)...

Como dato curioso os dejo las specs de mi PC:
  • Caja: Marca Acer (antiguamente tenía una OKI de diseño bastante guay - con silueta de deportivo)
  • PSU: Tacens Radix IV-600
  • MotherBoard: Asus P5KPL - AM EPU
  • Chipset: Intel Core2Quad Q8400 (@2.66GHz, 4M cache)
  • HDD:
    • Samsung (P)ATA 233GB
    • Seagate (S)ATA 466GB
    • Maxtor (S)ATA 190GB
  • Gráfica: nVidia GeForce 8600 GT Super+ 1GB
  • Output:
    • Teclado: Razer BlackWidow Ultimate
    • Pantalla:
      • Acer X203W
      • OKI (??)
    • Sonido:
      • Tarjeta de sonido: Hercules GameSurronund Muse XL Poket LT3
      • Speakers: Trust SoundForce Presto 5.1
    • LAN:
      • ONO @30mbps (~3.8MB/S)
Pasad buen fin de semana y...

¡Hasta la próxima!

Varios - Misc

Buenas!

Hacía tiempo que no escribí nada en el blog... llevo severos retrasos con todos mis proyectos... así que, para no estar demasiado sin hacer una entrada "con chicha", vamos a ver varios temas rápidos.

AJAX Cross-Domain (ACD)

Muchas veces habréis oído aquello de "usar API's", si bien no las habéis usado alguna vez (google maps, google calendar...)

Para aquellos que no sepan qué es una API, decir que es una capa de abstracción creada por programadores para facilitar el uso de herramientas web.

Un ejemplo: quiero poner en un mapa dónde vivo (en mi web). Hace tiempo, yo lo hubiera hecho así:

 - Entro en google
 - Busco google maps
 - Busco mi calle
 - Hago un print de pantalla
 - Coloco la imagen en mi web

Sin embargo, las API permiten que mi web conecte con google, y le puedo especificar dónde vivo (en latitud y longitud) y él se encarga de todo (es decir, delegamos el funcionamiento a google). Yo solo me tengo que preocupar de poner una capa (div) para recibir el mapa y llamar al método correspondiente.

Pues bien, uno de los principales problemas que entraña el uso de una API es el ACD (AJAX Cross-Domain).

¿Qué es el ACD? es un impedimento (una medida de seguridad, más bien propia de IE) que impide que una web cargue datos de un servidor externo, tal como indica la imágen "img1" (en rojo marcada la comunicación interrumpida).

img1
Esto frustra todo amago de comunicación con servidores externos. Sin embargo, las API se usan. ¿Cómo?
Pues hay varios métodos:


  • Proxie transparente: esta medida se basa en modificar el archivo .htaccess, con una regla de reescritura, de manera que podemos convertir algo como "http://miweb.com/api" en "http://apiweb.com". Con esto conseguimos establecer un puente, mediante el cual nosotros llamaremos a "miweb.com/api", y mediante el archivo htaccess, estaremos realmente accediendo a "apiweb.com".
    • Ventajas: funciona bien, y de manera simple
    • Inconvenientes: cada cliente de la API tiene que configurar su htaccess (algunos hostings no dejan).
  • Página ACD: es una web (http://www.ajax-cross-domain.com/) en la que te puedes descargar un src (código fuente) de un programa cgi. Mediante htaccess hacemos que lo interprete como un js, y éste hace de puente para solventar el problema de ACD.
    • Ventajas: configurable, seguro
    • Inconvenientes: necesita aceso a ACD, y no todos los hostings permiten interpretar cgi como js.
  • Envoltura: es el método más usable de todos, ya que no necesita de nada por parte del cliente (eso sí, la API tiene que estar preparada para usar envoltura). El método de la envoltura consiste en incluir la llamada a la API dentro de un elemento <script> en nuestra web. De esta manera, nuestra web hará una llamada a la API, para incluír el contenido al script. El contenido que "se crea" es, ni más ni menos que el resultado de llamar a la API deseada.
    • Ventajas: siempre podremos usarla
    • Inconvenientes: el programador de la API tiene que prepararla, y (que yo sepa) solo se puede mandar datos vía GET.
Y, ¿porqué os comento el problema del ACD? pues porque estuve varias semanas luchando con este problema con una API que me tocó programar en mi trabajo, y finalmente lo conseguí solucionar usando el método de la envoltura (y la consecuente remodelación de la API...).

En la próxima entrada (a no ser que sea sobre M!nas), trataré de solucionar el tema del diseño web, para hacer lo máximo compatible con IE, Firefox, chrome, opera y safari.

Para poder seguir entregando material en abundancia, lo haré tipo "serie", como he estado haciendo estas entradas.



Varios

Buenas de nuevo!

Sigo trabajando en la entrada de las M!nas, aunque llevo algunos retrasos...

La semana pasada estuvo muy movida también... espero que esta semana vuelva todo a la normaildad...

Y bueno, este fin de semana estuve en el salón del manga. Como era de esperar nadie llevaba el mismo cosplay que yo :-p (Prince of persia: Warrior Within, con la Water Sword).

Allí conseguí ponerme en contacto con un novato (y con esto no quiero decir que sea malo) desarrollador de videojuegos, así que quizás en un tiempo me meto en ese mundillo. También cogí información de un centro que forma en 3D (y lo hace muy bien, al parecer); si bien los precios son elevado (9.900€ un máster de 9 meses, 19.800 una carrera de 2 cursos), incluye mucho material (incluyen hasta un ordenador), así como también prácticas en empresa.

También conseguí contactos con editoriales varias... resulta que tengo un relato corto escrito y registrado, pero no consigo que salga a la luz... a ver si con estos nuevos contactos consigo algo.

En cuanto al merch que compramos (mi novia, mi buen amigo James y yo) fue variado, aunque este año no hemos encontrado ninguna ganga (el año pasado conseguimos una figura de Bobobo por 20€ - en los otros stands las vendían por 80€).

En cuanto a últimas novedades, estoy metido en un concurso de InfoJobs, que consiste en desarrollar una App para la misma compañía, usando su API. El premio al ganador oscila entre los 10.000 y 12.000€ (así que si - ojalá - ganara sería una buena alegría). Pienso que mi idea es buena; y esto es un buen comienzo, ya que hace falta mucha motivación para hacer algo bueno y decente, y sin una buena autoestima es imposible!

Antes de cerrar esta entrada, decir que me guardo las fotos del Salón del Manga (así como las del anterior) para una posible futura entrada no relacionada con  la informática (como esta, jejeje).

Saludos y...

¡Hasta la próxima!

Varios

Buenas a todos de nuevo!

Esta entrada será un poco de "bypass". Os haré un poco de resumen de las próximas entradas y os comentaré algunas cosas de más.

Primero las novedades; hoy me han comprado el teclado de mis sueños:

Razer Black Widow Elite

Os dejo aquí una imagen de la maravilla.

Mi nuevo teclado
Un teclado como cualquier otro, podéis pensar... la cosa es que quizás lo parece, pero no.

¿Qué tiene de bueno?

 - Sistema de tecleo mecánico: nunca me lo había pasado tan bien tecleando... es totalmente diferente a los teclados convencionales

 - Las teclas reaccionan a una fuerza de 50g: solo hace falta eso, un pequeño empujón de 50g para pulsar una tecla. Ahora escribo a la velocidad de la luz (jejeje)

 - Teclas iluminadas: ya no tendré que encender la luz para ver las teclas

 - Captura macros "On-the-fly": le puedes dar a "grabar", ejecutar un comando de teclas y asignarlo a una tecla. Y ya está!!

 - 5 Teclas de función adicional: cuenta con 5 teclas en el lateral. Son 100% configurables (en realidad TODAS las teclas son configurables)

 - Acceso a multimedia: puedes poner pause, play, subir y bajar el volumen... desde el teclado.

 - Modo gamer: con esta función puedes desactivar la tecla de inicio (a quién no le ha pasado...)

 - Plugs de audio, micro y USB en el lateral: pues eso... me he quedado a cuadros!

El único "inconveniente" es que el layer es el estándar de USA, por lo que no tengo el carácter ">", pero lo he asignado a una tecla de función :-P.

En fin... desde aquí darle las gracias a mi chica ( <3) por regalármelo.

Más novedades: he visto (por mediafire y google analytics) que la gente empieza a seguir mi blog, incluso se descarga los archivos que subo... ha sido una MUY MUY GRATA sorpresa verlo.

Desde este rincón de mi casa (de donde os escribo siempre) me gustaría agradeceros a todos los que habéis visto alguna entrada de mi blog, o lo seguís.

Bien bien bien... y ahora a por el tema de las próximas entradas. El tema está animado. Tuve una pequeña idea, así que os comento:

Por ahora tenemos visto el tema de crear el juego de las M!nas con VB.net. ¿Qué será lo siguiente? Os dejo una lista de "mini-proyectos" que se verán en próximas entradas para mejorar el juego.

 - MSAcces: crearemos una pequeña base de datos con Access para nuestro juego. La idea es poder almacenar usuarios (es decir, emular que hay usuarios "registrados" que juegan y puntúan).

Sobre estos usuarios guardaremos muy poca información personal: un email, nombre, nick y password.

El tema está en que haremos estadísticas globales sobre el juego (mejores jugadores, tiempos por nivel, porcentaje de aciertos/fallos...) y también haremos una utilidad que permita seleccionar imágenes personales para cada usuario.

 - COBOL: le sacaremos jugo al mini-curso de COBOL, y trasladaremos la base de datos a ficheros COBOL. Esto le dará mucho más rendimiento al juego a la hora de tratar datos, y servirá de refuerzo para nuestras lecciones de COBOL.

 - PHP: intentaré coger un pequeño hosting (de esos gratuitos) y haré un pequeño portal web. Ahí subiré el ejecutable completo, para que lo descarguéis. También tendrá un portal de acceso para usuarios registrados (ya no estarán en la base de datos de manera local) con sus típicas opciones; modificar datos, conectar con FB, ver los mejores jugones, galería de imágenes...

Como veis, es un proyecto ambicioso, ya que no se basa solo en el típico "vamos a hacer un programa", sino que lo haremos evolucionar.

Cómo se distribuirá cada apartado es algo que todavía no he terminado. Desde luego, antes de cada lote de entradas haré una entrada de "bypass" (como esta) para introducir a la siguiente fase.

Espero que el planning sea de vuestro agrado. Recordad que siempre podéis dejar comentarios para cualquier duda o sugerencia.

Y, una vez más, y como digo siempre...

¡Hasta la próxima!