Windows PowerShell 1.0

Windows PowerShell 1.0 es, según Microsoft, una nueva interfaz de línea de órdenes y lenguaje de scripting diseñada para la administración y automatización. Cuando esta mañana he buscado actualizaciones automáticas me ha aparecido como instalación opcional y he decidido darle una oportunidad.

PowerShell

Windows PowerShell 1.0

Primero he trasteado un poco y he visto pequeños detalles como que existe la órden man para pedir ayuda, el ls muestra un listado de ficheros con sus atributos y todo, las variables de entorno se definen con $… ¿os suena?

Viendo que era algo diferente a la típica ventana de MS-DOS he decidido echar un vistado rápido al manual para ver las novedades que tiene o qué se puede hacer con él, y probando el primer ejemplo esto es lo que he encontrado:

ipconfig

ipconfig | findstr "Address"

Probando lo mismo que viene en el documento, el cual está en español, no aparece nada como se aprecia en la imagen. Me he dado cuenta de que la salida de ipconfig no está en inglés por lo que no se puede encontrar «Address». Entonces al probar con «Dirección» tampoco ha aparecido la línea con la dirección IP. Finalmente probando con la parte sin acento he encontrado el problema: Ni siquiera han tenido en cuenta que funcione bien el tema de la codificación de caracteres.

Señores de Microsoft, ¿les parece esto serio? Después de tantísimos años intentan reemplazar su shell con una que imita a las que existen desde hace más años aún y para colmo lo hacen mal. Si es que cuando les critico es con motivos.

Etiquetas: , , :: Archivado en Windows Vista, Windows XP

Detectar código de teclado con Javascript

Me ha hecho falta conocer el código de teclado de la tecla de imprimir pantalla, que por cierto es el 44, y esta es la manera más rápida que se me ha ocurrido para encontrarlo:

1
2
<body onload="document.getElementById('input').addEventListener('keyup', function(e) {alert(e.keyCode);}, false); "> 
<input id="input" type="text" />

Aunque hay cientos de ejemplos en internet, aquí dejo el mio que para eso me lo he currado en el menor número de líneas que he podido.

Para probarlo tan solo hay que guardarlo en un fichero y abrirlo con un navegador web.

Etiquetas: , :: Archivado en HTML, JavaScript

Fotos más completas con Google

Según la noticia de 20 minutos el HTC Dream de Telefónica que vendrá con Android «dará fotos de Google Maps a 365 grados».

Giros de 365 grados

Giros de 365 grados

Y es que lo que no inventen estos de Google que venga otro detrás inventándolo.

Lo cazó Skaidan dando un repaso a las noticias del día. Gracias por el aviso.

Etiquetas: , , :: Archivado en Multimedia

Obras en el CPD

Debido a cuestiones de mantenimiento del CPD en estos días el servidor estará parado aproximadamente entre las 23:30 y las 6:30h.

Este hecho afectará al menos a los siguientes servicios:

Disculpen las molestias.

Etiquetas: , , :: Archivado en hardware

Larga vida a IPv4

En el último episodio de Knight Rider 2008, no les bastó con sacar una triste copia del iPhone, si no que además se saltan los límites del direccionamiento IPv4 encontrando la solución al agotamiento de direcciones. En la captura de pantalla se puede ver que la dirección IP de la Xbox donde KITT decide esconderse es 555.55.55.22. Eso sí, para entrar por ftp hay que acceder a la 258.133.64.83:

KITT se descarga en una Xbox 360

KITT se descarga en una Xbox 360

¿Por qué quedarse en 250 cuando los números pueden seguir aumentando hasta el infinito y más allá?

Nota al pie: este artículo contiene altas dosis de ironía y tecnicismos varios.

Etiquetas: , :: Archivado en Video

Compilar un programa para el iPhone

En estas navidades compré en Amazon el libro The iPhone Developer’s Cookbook. En él viene cómo crear programas con el SDK oficial del iPhone pero tiene un problema.

El problema es que una vez que tienes tu juego o programa terminado y probado en el emulador es hora de compilarlo para el iPhone. Y para compilarlo para  tu iPhone hay que pagar a Apple. Cuando les pagas te dan un certificado para firmar digitalmente el programa entre otras cosas.

Como no me parece lógico estuve buscando otro modo de conseguir lo que buscaba y así es como di con una web donde explicaban cómo hacerlo con un Makefile.

Hola Mundo en el simulador del iPhone

Hola Mundo en el simulador del iPhone

Es así de sencillo:

Una vez probado en el simulador hay que copiar el ejecutable ldid_intel y el archivo Makefile en la carpeta del proyecto. Editar el Makefile con los parámetros necesarios y usar:

1
2
$ make
$ make install

El ejecutable se copiará en el iPhone en la carpeta /Applications al hacer el make install.

Etiquetas: , , :: Archivado en iPhone OS, Programación

Usar Javascript desde Python

Python

Python

Desde la web de Caja GRANADA se pueden enviar 30 SMS al mes si se tiene acceso a la caja electrónica.

Cuando estoy en casa y envío un SMS desde el iPhone usando la conexión wifi es realmente incómodo. La web de Caja GRANADA es… increíble. Y lo digo en el más irónico de los sentidos, o no. Es frame sobre frame, tabla sobre tabla, una encrucijada de código que al iPhone se le atraganta un poco.

Se puede llegar a usar pero para colmo tiene un contador de caracteres mientras se escribe el mensaje para el SMS que quita el foco al campo de entrada. Como consecuencia el teclado virtual se esconde con cada letra y no hay manera de escribir unas palabras sin desesperarse.

Por otro lado hay algo en esta web que hacen bien en mi opinión, y es cuidar la seguridad. Sin entrar en detalles diré que la clave que escribes para entrar no es enviada, sino que se envía el resultado de un cifrado triple des de la misma. Hace unos meses usaban tan solo des y gracias a una librería en python conseguí el mismo resultado. Esta vez no sé por qué por más parámetros que probé no conseguía el mismo resultado así que tenía básicamente dos opciones:

Implementar el código javascript de caja granada en python

Me daba mucha pereza y quise buscar algo más antes de ponerme manos a la obra.

Ejecutar javascript desde python

Aquí es donde entra en juego python-spidermonkey. La instalación consiste en seguir los pasos indicados en la web para ello, bajando la versión de SVN. Su uso es muy sencillo de modo que esto es básicamente lo que hice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from spidermonkey import Runtime
def js_des(clave, pin):
    runtime = Runtime()
    context = runtime.new_context()
 
    context.eval_script("var mod3 = function() {}")
    context.eval_script("""
        mod3.prototype.des = function(hexKey, message, encrypt, mode, iv, padding) {
            // código de la función pegado literalmente del js de cajagranada
            // ...
    """)
    context.eval_script("""
        mod3.prototype.des_createKeys = function(key) {
            // blah blah blah...
    """)
    # ...
    return context.eval_script("m = new mod3(); m.des('%s', '%s');" % (clave, pin))

Y finalmente para usarlo tan solo habrá que hacer algo similar a lo siguiente:

1
2
3
4
import md3
 
# [...]
pin_cifrado = mod3.js_des(clave, credenciales.PIN)

Y de este modo la variable pin_cifrado tomará el valor devuelto por la función en javascript.

Etiquetas: , :: Archivado en JavaScript, Programación, Python

Sony Ericsson apuesta por Android

El 9 de diciembre de 2008 Sony Ericsson anunció su adhesión a la Open Handset Alliance, la unión de empresas que ha permido el desarrollo de Android.

Se trata de una excelente noticia teniendo en cuenta que Sony Ericsson siempre ha sido mi marca de móviles preferida por prestaciones y calidad tanto de teléfono como de cámara de fotos.

La noticia original en inglés se puede leer aquí.

Etiquetas: , , , :: Archivado en hardware