En algunas ocasiones nos es necesario saltarnos un firewall para realizar ciertas tareas. Usualmente por habernos dejado trabajo pendiente y pretendamos llegar a casa y seguir con la tarea. Por desgracia a dia de hoy no todas las empresas estan de acuerdo con el teletrabajo, ni tienen preparados sus sistemas para ello, esto implica que tengamos que buscarnos los trucos para poder acceder a nuestra maquina.
Primero se debe de abrir un agujero para establecer las comunicaciones desde un PC de dentro del firewall a otro PC, con un servidor ssh,
~# ssh -R 2222:localhost:22 thempra@servidor.demicasa.com
Esto genera una escucha en el servidor remoto (el de casa) en el puerto 2222 que apunta directamente a el equipo protegido. Por lo tanto solo nos queda llegar a casa y conectar directamente por ssh contra localhost por el puerto 2222. De esta forma el trafico se lanzara de nuevo a la maquina protegida.
~$: ssh -p 2222 root@localhost
Mucho cuidado con la utilizacion de esta tecnica, ya que se abriendo un servidor desde dentro, y si el equipo que tenemos en casa esta comprometido se le esta abriendo una puerta mas a un posible atacante para poder pasearse libremente.
Hamid Shojaee nos presenta un video para aprender Scrum en solo diez minutos:
Mas que un articulo tecnico, quiero comentaros una reflexion. Os voy a presentar el efecto real de una caida de un portal por unos dias.
En la era técnologica, tenemos una gran capacidad de adaptarnos a los cambios, sobre todo si se cae nuestro portal favorito para poder seguir informados. Obviamente, una desconexion de varios dias (aunque pongas un video de David Cervigon), supone un perdida considerable de visitas, tal y como indica la grafica de Google Analitycs que se muestra a continuacion.
(Grafica de visitas de www.labloguera.net )
Pero sin duda, lo mas destacable no es la caida de visitas, algo obvio, si no la lenta recuperacion de las mismas, ha llegado a caer hasta un tercio la media, con esto solo quiero decir, que antes de decidir dejar sin servicio, aunque sea unos pocos dias, cualquier portal no se piense como el adicto que somos, si no como el usuario que esta empezando a engancharse, y al encontrase un 404 varios dias, no llega ni a introducirlo en su seccion de favoritos.
Dependiendo de la topologia de red necesaria en cada situacion, es posible necesitar un proxy o un balanceador de peticiones HTTP, no es necesario que se tengan millones de peticiones para tal necesidad, simplemente puede se por que se disponene de varios servidores web (IIS, Apache, Lighthttpd, ...) y se pretende mostrar ocultar esta topologia al cliente lanzandolo todo por el puerto 80.

Para ello configuraremos un servidor que reciba las peticiones y la redirija al equipo pertienente, Primero desde Apache 2 se ha de habilitar el modulo de proxy, en Debian por ejemplo seria:
a2enmod proxy proxy_http
Y en la configuracion del de los sitios de la primera maquina se habilitara uno nuevo con las siguientes caracteristicas
<VirtualHost *>
ServerName mi.dominio.com
ServerAlias mi.dominio.com
ProxyPreserveHost On
ProxyRequests Off
#Permitimos las conexiones a traves del proxy
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#Direccion IP del servidor destino
ProxyPass / http://172.16.27.209/
ProxyPassReverse / http://172.16.27.209
</VirtualHost>
Ya solo falta reiniciar el Apache y disfrutar de la nueva configuracion.
La primera vez que lo comento mi compañero de trabajo todos nos lanzamos a reir pensado que algo habria liao para llegar a ese punto. Pero como muchas cosas, hasta que no te pasa a ti no lo tomas en serio. Para solventarlo solo se han de seguir los siguientes pasos:
1. Abrir el Editor de registro. (Inicio > Ejecutar ... y escribir "regedit")
2. Dentro del Editor de registro navegar hasta HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Data
3. Relizar clic con el boton secundario de raton en la carpeta "Data" y borrarla
4. Abrimos el Word y solucionado el problema.
Para mas informacion de problemas relacionados con office pasar por este enlace.

Hoy me he encontrado con la grata sopresa, por fin SJJ ha sacado la actualizacion del sus EDK con una gran novedad ....... Soporte ethernet !!! para ello tendremos que actualizar la imagen que lleva interna. Muy bien preparado nos presenta un fichero llamado "EDK_Firmware Update.pdf" en el propio fichero la actualizacion.
Descargar
Para tener un MAC se ha de enviar un mail a support@sjjmicro.com con el numero de serie que esta escrito en la parte inferior de la placa, en pocas horas te enviaran el paquete de actualizacion con tu MAC personalizada.
Aqui os dejo con todo lo que se puede jugar:
2 RS-232 serial ports |
COM1 only for Development |
Internal Real time clock/calendar (no battery backup) |
Supported |
16 processor GPIO lines |
Supported |
16 PLD output lines - 8 lines are for high drive output lines |
Supported |
16 PLD 5 volt tolerant input lines |
Supported |
SPI/I2S |
SPI-only |
Green status LED |
Supported |
Internal flash data storage |
Supported |
Battery backed RTC |
N/A |
1 + 2 PWM I/O lines |
Available in v2.5 Update |
5 channels of 12 bit A/D (0 to 3.3V) |
Available in v2.5 Update |
1 10/100 BaseT Ethernet port |
Available in V2.5_Eth Update |
MMC/SD hot-swap socket |
Support available from DotVision.com |
2 USB 2.0 host ports |
|
Aunque parezca molesto el tener que introducir una licencia, Microsoft se ha vuelvo algo mas permisivo ultimamente. Como todos sabemos se permite la instalacion del Sistema Operativo completamente funcional sin tener el numero de licencia a mano, dejandonos un periodo de 30/60 dias para introducirlo.
Siempre puede darnos el caso que por excesiva carga de trabajo, o para maquinas virtuales, no podamos o no nos interese introducir una licencia y simplemente evaluarlo durante un tiempo limitado. Por lo que la permisividad ha sido mayor dandonos la posibilidad de ampliar este periodo con un comando para gestionar las licencias.
En linea de comando podremos ver la cantidad de dias que nos quedan para que cumpla la licencia lanzando desde linea de comando:
slmgr.vbs -dli
Si queremos ampliar este perido simplemente debemos de lanzar el comando:
slmgr.vbs -rearm
Con esto conseguiremo un perido extra para poder ir a comprar el producto o bien rescatar los datos que dejar en ese sistema.
Tambien es factible automatizar este proceso, simplemente teneis que seguir las instrucciones de la knowledge database.
Ya podemos descargar para empezar a realizar las primeras
pruebas de desarrollo con el nuevo MicroFramework, que cada vez mas le
vamos a tener que cambiar el nombre de micro a macro, por la cantidad
de implementaciones que esta teniendo, :) . Las principales novedades son:
- Interop con codigo nativo.
- Touch Screen.
- Inking.
- Soporte para USB.
- Sistema de ficheros.
Para descargarlo primero tendreis que registraros en http://connect.microsoft.com/netmf
y contestar a una pequeña encuesta. Asi entrareis a la comunidad de
desarrolladores y poder participar activamente en este testeo.
Uno de los grandes problemas que tenemos en lo referente a seguridad web,
son los temido ataques "cross-site scripting". Algo que navegadores como
IE (Internet Explorer) solventa con la negacion por defecto de acceso a scripts
que estan hospedados en dominios distintos a los de nuestras aplicacion. Algo
que otros navegadores no han optado por llevarlo desde un inicio.
Esto nos lleva a que si tenemos que empotrar nuestro desarrollo dentro de
un iframe de terceros, hospedados ambos en servidores distintos nuestra
aplicacion funcionara perfectamete en Firefox, Safari, ..... pero no en IE,
dandonos el error de "Access is denied" a ese script.
La solucion es bastante mas sencilla de lo que hayamos podidos leer en
otros sitios (1
y 2),
simplemente tendremos que agregar a nuestra pagina o master page (dependiendo de
donde nos convenga) el siguiente script:
<script type=
"text/javascript">
if (Sys.Browser.agent == Sys.Browser.InternetExplorer){
Sys.UI.DomElement.getLocation=function(a){
if(a.self||a.nodeType===9)
return new Sys.UI.Point(0,0);
var b=a.getBoundingClientRect();
if(!b)
return new Sys.UI.Point(0,0);
var c=a.document.documentElement,d=b.left-2+c.scrollLeft,e=b.top-2+c.scrollTop;
try{
var g=a.ownerDocument.parentWindow.frameElement||null;
if(g){
var f=2-(g.frameBorder||1)*2;
d+=f;e+=f
}
}catch(h){}
return new Sys.UI.Point(d,e)}};
</script>
Espero que os sea util, y no os saque de vuestras casillas las distintas
politicas e interpretaciones de cada navegador.
Para que podamos genera documentos PDF con la facilidad que nos da C# tanto para nuestras aplicaciones de escritorio como para las Web.Con caracteristicas tan interesantes como:
- Crear documentos PDF en tiempo de ejecucion con .NET
- Facil compresion del modelo de objetos para la composicion de documentos
- Posibilidad de dibujar en un pagina PDF, una ventana o una impresora
- Modificar, fusionar o dividir fichero PDF
- Imágenes con transparencia (máscara de color, monocromo máscara, la máscara alfa)
- Nueva concepción, partiendo de cero y escrito enteramente en C #
- Compatibilidad con las clases graficar de .NET
- Incluye MigraDoc Lite de alto nivel con capas de texto (se puede usar tanto PDFsharp y MigraDoc Lite en un solo documento)
Y gran cantidad de ejemplos desde aqui.Como este "Hello World":
// Create a new PDF document
PdfDocument document = new PdfDocument();
// Create an empty page
PdfPage page = document.AddPage();
// Get an XGraphics object for drawing
XGraphics gfx = XGraphics.FromPdfPage(page);
// Create a font
XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
// Draw the text
gfx.DrawString("Hello, World!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormat.Center);
// Save the document...
string filename = "HelloWorld.pdf";
document.Save(filename);
// ...and start a viewer.
Process.Start(filename);
Desde aqui lo podeis descargar.
Ultimamente me esta dando por experimentar con mi s200, hasta que por fin lo he conseguido. Bueno mas bien lo han conseguido los crack que trabajan en el proyecto linwizard, dadas las similitudes de la HTC Wizard con la Prophet podemos correr perfectamente el kernel montado de una para la otra.
Desde hace tiempo podiamos correr la linea de comandos, pero ya estan empezando a moverse los primeros entronos graficos como GPE, Opie, OpenMoko e incluso Android.
Hoy vamos a correr el primero GPE, aunque es si, recordad que esto es una BETA !!, todo lo que hagais corre a cargo y riesgo vuestro. Pues bien, empezemos a definir los pasos:
- Descargar la distro desde aqui.
- Descomprimir el directorio GWIZARD en la PDA o en una tarjeta SD/MMC
- Simplemente ejecutar "Haret" y clickar en "Run"
- Cuando nos salga "linwizard login:" podremos arrancar la interfaz de red (tenemos que tener conectada la PDA por USB)
- ifconfig usb0 10.100.0.2 up
- telnet 10.100.0.1
- login: root / pass: (en blanco, darle a enter)
- Ya solo nos falta arrancar GPE:
Ya podemos empezar a jugar con este entorno:

Montar tarjeta MMC/SD
Si necesitamos mas espacio de almacenamiento para seguir haciendo pruebas solo tenemos que haber preparado nuestro tarjetero antes de arrancar la distro. Gracias a la iniciativa SD-Workaround podemos hacerlo. Solo tenemos que seguir los siguientes pasos:
- Descargar el zip y descomprimirlo en la PDA (Muy importante que sea en la PDA y no en la tarjeta)
- Arrancar el "ns.exe"
- Cargar "install.ns" : File / Open / install.ns. Obtendras el mensaje "Installation OK"
- Cargar "hideSD.ns" : File / Open / hideSD.ns
- Ahora tienes que sacar y volver a meter la tarjeta.
La siguiente vez que arranques linwizard ya podras detectar la tarjeta en /dev/mmcblk0. En las ultimas versiones la dectecta automaticamente, pero en la 0.2.0 y anteriores tienes que forzarlo para que funcione:
# cat /proc/partitions
major minor #blocks name
1 0 20504 ram0
179 0 1990656 mmcblk0
179 1 78136 mmcblk0p1
179 2 1912512 mmcblk0p2
# cd /dev
# mknod mmcblk0 b 179 0
# mknod mmcblk0p1 b 179 1
# mknod mmcblk0p2 b 179 2
# mkdir /mnt
# mkdir /mnt/sda2
# mount /dev/mmcblk0p2 /mnt/sda2
Montar el rootfs desde una tarjeta MMC/SD
En el primer apartado hemos lanzado el Sistema Operativo desde el initrd, pero ahora vamos a probar a cargar el kernel, pero lanzar el rootfs que este copiado en una tarjeta SD o MMC. En este caso vamos a ver como lanzarlo con el OpenMoko.
Primero preparamos nuestra tarjeta con dos particiones, la primera (mmcblk0p1) un sistema de ficheros FAT y en la segunda particion (mmcblk0p2) ha de ser EXT2. (Dado que existen mil tutoriales de como hacerlo me abstengo de detallarlo)
- En la primera copiaremos el Haret.exe, zImage y default.txt. Desde aqui podremos arrancar nuestro GNU/Linux. El archivo que lleva la configuracion para que arranque el Haret es default.txt por lo que cambiaremos el actual:
set MTYPE 1229
set KERNEL "zImage"
set INITRD "initrd"
set CMDLINE "root=/dev/ram0 ramdisk_size=20504 init=/linuxrc panic=30 video=omapfb:accel console=tty0"
bootlinux
Por el siguiente:
set MTYPE 1229
set KERNEL "zImage"
set CMDLINE "root=/dev/mmcblk0p2 ramdisk_size=20504 init=/linuxrc panic=30 video=omapfb:accel console=tty0"
bootlinux
- En la segunda particion debemos de copiar descomprimido el sistema de ficheros a pelo, como por ejemplo este, (aunque es para el Motorola A780 arranca).

De la misma forma podremos hacerlo con Android en breve.
Mas info:
irc://irc.freenode.org/#linwizard
irc://irc.freenode.org/#htc-linux
Aunque todos virtualizamos, siempre oigo las mismas quejas sobre la interfaz de administracion de Virtual Server R2, dado que la interfaz administrativa es via web perdemos algo de la velocidad que tenemos con los clicks en las aplicaciones de escritorio (bien sea real o bien nos da la sensacion).
Pues bien, tenemos una alternativa poco conocida, incluso con esta herramienta podremos instalar algunas Additions.
Descargar
Muchas veces hemos necesitado obtener la posicion GPS de un punto sin estar alli. para metersela al TomTom, para hacer algun estudio, por curiosidad, ... Pues bien, simplemente siguiendo los cuatro pasos que se muestras a continuacion los tendreis
- Busca el punto que quieres localizar
- Centralo todo lo que puedas
- Pon en la barra de tu navegador (sin espacios entre javascript y void, solo los dos puntos):
javascript : void(prompt('',gApplication.getMap().getCenter()));
- Y ya lo tienes !!! Posicion GPS de SymbiaIT:
![]()
![]()

PD. Muy recomendable tambien pasarse por
http://www.gmap-pedometer.com/ si lo que queremos es medir distancias.
Tiembla IIS !! je ,je , interesante articulo de Oren Eini, en el que nos muestra como programar un servidor web en pocas lineas de codigo en Boo, un leguaje que empezo como experimento inspirado en Python, pero que cada vez coje mas fuerza, dada la comunidad que le acompaña.
import System.Net
import System.IO
if argv.Length != 2:
print "You must pass [prefix] [path] as parameters"
return
prefix = argv[0]
path = argv[1]
if not Directory.Exists(path):
print "Could not find ${path}"
return
listener = HttpListener()
listener.Prefixes.Add(prefix)
listener.Start()
while true:
context = listener.GetContext()
file = Path.GetFileName(context.Request.RawUrl)
fullPath = Path.Combine(path, file)
if File.Exists(fullPath):
context.Response.AddHeader("Content-Disposition","attachment; filename=${file}")
bytes = File.ReadAllBytes(fullPath)
context.Response.OutputStream.Write(bytes, 0, bytes.Length)
context.Response.OutputStream.Flush()
context.Response.Close()
else:
context.Response.StatusCode = 404
context.Response.Close()
Para compilarlo solo
# booi prueba.boo http://localhost:8085/ ~/Desktop/