|
|
|
|
Technology, Java, thoughts and projects of Coffman, host of wickle dot com. feel free to make comments.
|
|
Muchos de nosotros usamos el ssh para conectarnos a maquinas unix remotas, para realizar tareas de administracion, para entrar en la shell y revisar el correo, para programar, para cientos de cosas. Ya hace algún tiempo vengo usando ssh para encriptar mis conexiones al servidor de correo IMAP/SMTP, pero recientemente en la oficina de un cliente tienen todas las conexiones WEB salientes monitorizadas y a mi no me apetece que espien las webs que visito, con lo que he empleado de nuevo los tuneles ssh.
Por lo tanto estas son las instrucciones para montar un tunel ssh que nos permita navegar a traves de un proxy que tengamos en un ordenador remoto (en el ordenador de casa, mismo).
Instalamos Squid en el ordenador remoto en el puerto 3128.
Instrucciones en entorno de escritorio Linux
En el ordenador local establecemos un tunel ssh que mapea el puerto LOCAL 23128 con el puerto remoto 3128:
coffman@bender$ ssh -N -l username -L 23128:localhost:3128 ip.servidor.casa
Con esto nos pedirá el password del usuario username en el ordenador remoto de casa y quedará establecido el tunel siguiente :
|----------- S S H T U N N E L ---------| host: localhost <-----------------------------------------> ip.servidor.casa tcp port: 23128 3128
Instrucciones de configuracion en Windows
TODO: Pendiente de realizar capturas y conseguir un sistema operativo windows
Instrucciones de configuracion del Navegador (común)
De modo que para conectar con el navegador a internet ya solo tenemos que configurarlo para que use un proxy local (que en realidad está mapeado con el squid remoto):

El proceso para establecer un tunel ssh contra un servidor de correo IMAP/SMTP es similar :
coffman@benderssh−N−lusername−L2143:localhost:143server.imapcoffman@bender ssh -N -l username -L 2125:localhost:25 server.smtp
Enlaces relacionados:
http://www.afp548.com/Articles/security/ssh-tunnels.html
Ya podemos navegar seguros y en modo anonimo ;)
by coffman
|
|
Las extensiones del firefox es sin duda su mejor caracteristica, no tiene sentido usar el navegador sin que estén instaladas ciertas extensiones, yo las clasifico en aquellas que son Imprescindibles , las que en ocasiones uso mucho y las que instalo unicamente porque me parecen interesantes.
Extensiones Imprescindibles
Son aquellas extensiones sin las cuales no me siento a trabajar en un ordenador, siempre que reinstalo un equipo o uso otro nuevo las instalo inmediatamente despues de instalar el firefox.
FireGestures
FireGestures usa la novedosa caracteristica de Gestos del raton, que basicamente indica al navegador que accion realizar con solo un gesto del raton, sin necesidad de usar el menu, especialmente útil para abrir nuevas ventanas, pestañas, ir hacia adelante, hacia atrás, etc ...
Esta extension deberia venir incorporada por defecto (como lo hace el opera).
Download
Google Toolbar
Google Toolbar es la barra que nos permite realizar busquedas en google de manera rapida y sencilla, su unico problema es que ocupa demasiado (el tamaño de la barra de las bookmarks). El principal uso que le doy yo es la traduccion en tiempo real de cualquier palabra contenida en una pagina web con solo dejar el raton encima de la misma durante unos segundos. Download
Gmail Notifier

Gmail sigue siendo beta, pero aun asi lo usa todo el mundo, es por ello que la utilidad de gmail para chequear el correo desde el navegador directamente es imprescindible, ademas de indicar el numero de correos que tienes pendientes de leer y la capacidad total del buzón. Download
Tab Mix Plus

Esta extension es la ultima que he descubierto, no recuerdo la pagina pero es de las que he incluido en la lista de imprescindibles mas rapidamente. Sirve sobre todo para añadir funcionalidad extra a las pestañas del firefox, estilos para cada pestaña, barras de progreso, etc ... pero sin duda la funcionalidad mas util es el guardado de sesiones, de modo que cuando vuelves a iniciar el firefox te permite recomponer el estado del navegador (con las mismas pestañas que tenias abiertas) antes de cerrarlo. Download
Extensiones Utiles
La mayoria de veces que uso el ordenador para trabajar, necesito de estas extensiones, sin embargo no son tan importantes como las imprescindibles y puedo pasar perfectamente sin ellas.
Web developer Extension
Si eres diseñador, si tienes pagina web o si haces paginas por cualquier motivo, esta extension es imprescindible, te permite alterar el tamaño de tu navegador para una u otra resolucion, localizar divs, modificar el estilo de la pagina on-line, y muchas otras cosas que si haces o retocas paginas web necesitarás. Download
Adblock
Para evitar los odiosos banners publicitarios, esta extension te permite añadir filtros y reglas para denegar determinados dominios que solo sacan banners. Si en una pagina ves un banner que quieres eliminar, tambien lo puedes hacer mediante el menu de la extensión. Download
Extensiones Interesantes
De vez en cuando me paso por la pagina de extensiones de mozilla, siempre encuentro alguna extension interesante para probar, a veces se convierte en util y las menos en imprescindible.
Screengrab
Screengrab te permite relizar capturas de paginas web enteras, muy chulas cuando quieres presentar la pagina web de arriba a abajo. Ademas te evita el tener que abrir un programa de captura para sacar una instantanea de la web que estás viendo. Requiere java , pero ... quien no tiene java instalado ?? ;) UPDATED 23-abr-07: La nueva version de ScreenGrab ya no es necesario tener Java instalado, y es recomendable bajarlo de la pagina del autor: Download
Nota (25/07/2008): Se ha sustituido el Mouse Gestures por el FireGestures, pues este primero se ha quedado obsoleto con la versión 3 de Firefox.
by coffman
|
|
Bueno, haciendo referencia a una de las necesidades que tenia yo basicas para linux y encontrandolo sin querer (como suele pasar), he encontrado un pequeño manual de como hacer screencasts en linux, quedan bastante bien y son muy faciles de hacer, pongo aqui un pequeño manual.
Introducción
Necesitaremos vnc , pues este metodo usa vnc4server, OJO la version anterior a esta es vncserver y tiene los archivos de configuracion cambiados de sitio.
Instalamos y configuramos
#apt-get install vnc4server xvncviewer
Bajamos pyvnc2swf de aqui , lo destarreamos y en ese directorio ya lo ejecutaremos luego. para el vnc4server necesitamos crear un archivo de ejecucion inicial (ejecuta un gestor de ventanas y esas cosas) el archivos es ~/.vnc/xstartup, el mio tiene esto (pero es muy facil de hacerlo al gusto de cada uno)
#!/bin/sh
# Uncomment the following two lines for normal desktop: unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r HOME/.Xresources \] && xrdb HOME/.Xresources xsetroot -solid grey vncconfig -iconic & xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & startx &
Este archivo lo hacemos ejecutable : vic@whitewidow:.vnc$ chmod 755 ~/.vnc/xstartup, y tambien /etc/X11/xinit/xinitrc whitewidow:/home/vic/pyvnc2swf-0.8.2# chmod 755 /etc/X11/xinit/xinitrc
Al grano
Lo primero es ejecutar el vnc4server y proporcionarle una contraseña para conectarnos a el :
vic@whitewidow:pyvnc2swf-0.8.2$ vnc4server -geometry 800x600 :4
New 'whitewidow:4 (vic)' desktop is whitewidow:4
Starting applications specified in /home/vic/.vnc/xstartup Log file is /home/vic/.vnc/whitewidow:4.log
Ejecutamos el servidor a 800x600 en la pantalla virtual numero 4 si es la primera vez nos pregunta la password que va a tener el servidor.
Ejecutamos el visor de este escritorio:
vic@whitewidow:pyvnc2swf-0.8.2$ vncviewer whitewidow:4 VNC viewer version 3.3.7 - built Apr 27 2006 07:09:29 Copyright (C) 2002-2003 RealVNC Ltd. Copyright (C) 1994-2000 AT&T Laboratories Cambridge. See http://www.realvnc.com for information on VNC. VNC server supports protocol version 3.8 (viewer 3.3) Password:
En otra consola o poniendo en segundo plano la ejecucion de esta misma, ejecutaremos OTRO visor del vncserver en el que vamos a grabar lo que vayamos haciendo en la ventana recien surgida: Pulsamos ctrl-z (pausamos la ejecucion del vncviewer):
[1]+ Stopped vncviewer whitewidow:4 vic@whitewidow:pyvnc2swf-0.8.2 bg \[1\]+ vncviewer whitewidow:4 & vic@whitewidow:pyvnc2swf-0.8.2
Ahora ejecutamos el vnc2swf que se conecta al servidor y solo mira (graba) todo lo que hagamos:
vic@whitewidow:pyvnc2swf-0.8.2$ ./vnc2swf.py -n -o salida.swf whitewidow:4 Using pygame 1.7.1release open /dev/sequencer: No such device Connected: whitewidow:5904, protocol_version=3.8, preferred_encoding=(0, -232, -239) Password for whitewidow:5904: VNC Screen: size=800x600, name='whitewidow:4 (vic)' Output movie size: 800x600 Creating movie: 'salida.swf': version=5, size=800x600, framerate=12.0, compression=None
Con esto todo lo que hagamos en la ventana del vncviewer de la sesion 4 estará grabado en un archivo llamado salida.swf y lo podremos ver poniendo en el navegador la pagina slida.html.
Links
Pues al final es bien facil hacer screencasts desde linux ;)
by coffman
|
|
Interesantísimos son los últimos documentos que estoy leyendo sobre AOP, una metodología de trabajo que nos ayuda en un montón de tareas de las que ahora nos ocupábamos usando ñapas o malos hábitos de programación.
Problema
El problema es que la programación orientada a objetos no escala con facilidad en cuanto se aumentan funcionalidades trasversales o requerimientos al desarrollo del programa. Me refiero a funcionalidades trasversales, funcionalidades que no son intrínsecas al modelo de nuestro desarrollo y que pueden ser externalizadas y aplicadas a múltiples desarrollos, como por ejemplo los logs, la seguridad, la persistencia, ... Una clase desarrollada por nosotros a priori no tiene porqué saber como implementar la seguridad, como persistirse a si misma o como logear sus propias acciones.
Solución
La solución viene de la mano de AOP. Nos permite establecer "puntos de ruptura" en los cuales "salta" la ejecución de otras clases, realizan tareas y devuelven el control al punto de ruptura. Mediante la definicion en un archivo xml del punto de ruptura (que puede ser un patron en el nombre del metodo por ejemplo), le indicamos a nuestro "cargador de clases" ( tomcat, spring, ...) que ejecute otra clase y luego devuelva el control, todo ello sin necesidad de modificar la clase original por supuesto.
Implementaciones de AOP
Algunas implementaciones de AOP son AspectJ, Aspectwerkz, Jboss AOP, Spring AOP, ... . Aunque probablemente el mas potente (y el que yo uso) sea Spring AOP, quizás no sea el mas adecuado para aprender el funcionamiento de la Programacion Orientada a Aspectos. Yo creo que el mas adecuado para aprender es Aspectwerkz debido a la sencillez de su sintaxis y a que se centra exclusivamente en la AOP.
Conceptos Clave
Cross-cutting concerns: Un problema cruzado es aquella funcionalidad que es trasversal a nuestra clase, de modo que se pueda implementar a varias clases o incluso programas, por ejemplo Logging Advice: Del inglés consejo, es el codigo adicional que queremos añadir a nuestro modelo, que puede ser codigo especifico de log, de persistencia, ... Point-cut : El punto de corte, es el punto determinado en la ejecucion de nuestro programa donde queremos aplicar el consejo o codigo adicional.
Articulos y Links Relacionados
http://www.programacion.com/java/articulo/jap_aop/ http://en.wikipedia.org/wiki/Aspect-oriented_programming http://www.onjava.com/pub/a/onjava/2004/07/14/springaop.html
by coffman
|
|
 Llevo usando linux desde hace practicamente 10 años, unicamente lo uso para trabajar en la oficina y en casa, para mis momentos de ocio uso Windows XP , pues por desgracia es demasiado complicado instalar juegos nuevos en Linux y unicamente el Quake 3 es tremendamente sencillo de instalar y jugar; Y desde mi punto de vista jugar debe ser tan facil de hacer como en la PS2 o en la PSP, enchufar y jugar , no quiero tirarme una hora preparando el wine para poder jugar o bajandome un nuevo emulador (se me suelen quitar las ganas y tengo poco tiempo para el ocio). En mis linux tengo instalado Debian, Ubuntu, Redhat y Slackware, aunque he ido sustituyendo practicamente todos ellos por Debian (incluso en el portatil). Con esto quiero decir que de las 10 horas que me paso cada dia delante de un ordenador, aproximadamente 9 son usando linux. Y por mucho que busco hecho de menos algunas herramientas que veo en los Mac o en los Windows :
- Herramienta de Diagramas como el Visio de Microsoft (que nadie me comente el dia o el xfig, por favor)
- Herramienta de prototipado de aplicaciones WEB (creo que con el visio se puede hacer tambien), sin embargo en linux no encuentro nada.
- Herramienta pesada de publicacion en BLOGs (del estilo del w.bloggar) incluso me he puesto a hacer una yo mismo en java de lo desesperado que estaba (Jdiary).
- Utilidad de Captura de Pantalla (simples screenshots pero de areas de pantalla pudiendo añadir imagenes, marcos, etc ...), una que me parece buena es SnagIt.
Utilidad para hacer screencasts bajo linux, para Mac y Windows hay bastantes, pero para linux no he encontrado ninguna. UPDATED (26-jul-06) Ya he encontrado varios modos, está posteando en esta entrada de mi blog.
- Los juegos ?¿ Bueno puedo pasar sin ellos ... pero me fastidia tener un windows solo para jugar al WoW
No, se .. para mi uso habitual no necesito mucho mas ... las herramientas que mas usi habitualmente son :
- Eclipse
- Vim (solo le falta auto-completar y quito el eclipse)
- OpenOffice (una maravilla, especialmente el OOCalc)
- Firefox (en Windows o en Mac tambien lo usaria)
- Thunderbird (lector de correo muy decente)
Si alguien tiene una sugerencia me encantaria conocerla.
by coffman
|
|
 Ya hace tiempo que tenia ganas de una moto, pero como valen una pasta y ya tengo coche, es cuestion de plantearselo bien, por lo que me acaba de llegar casi de regalito una Suzuki Address (scooter de 49c.c.) que no pasa de los 60 Km/h. y que voy a probar muy a fondo ;) Me servirá como primera experiencia para comprarme mas adelante una moto de verdad.
Lo primero que he descubierto es lo diferente que se ve la carretera desde e punto de vista de un conductor de coches y uno de motos. Nunca me habia fijado en la cantidad de baches que hay en la carretera, y lo mal asfaltada que está !!! Otra es que los conductores de coche ven como un estorbo a los motociclistas, con lo que te pasan rozando a toda velocidad sin ningun reparo. Y lo poco que puedes despistarte ahora !!! a la minima que te despistas no puedes reaccionar, y que te la metas contra el de delante en coche , no pasa nada ... pero en moto es otra historia ;) . Otra cosa de la que me doy cuenta es que hay que llevar la boca bien cerradita sino quieres tragar mosquitos, por las mañanas es complicado entre bostezo y bostezo, pero mejor eso que tragarse algun insecto. Hablando de que en boca cerrada no entran moscas, tampoco es recomendable escupir sin quitarte el casco o pringarás todo el cristalito, ya en coche es poco recomendable sin bajar el cristal, pero en moto es aun peor ...
Aunque no todo son cosas malas ... En los semaforos te sueles colocar el primero, y en los atascos es un lujo adelantar a todo el mundo. La sensación de velocidad es mucho mayor y parece que vas más rápido de lo que en realidad vas, pero supongo que cuando te metes la primera galleta ya lo ves de otra manera ;)
by coffman
|
|
La encriptacion de sistemas de archivos, directorios y archivos es algo que siempre ha estado ahí, pero con la inclusion en el nucleo 2.6 de la api de encriptacion CryptoAPI han aparecido nuevas aplicaciones, aunque la que aquí voy a usar es sencilla de instalar, de usar y no requiere un nucleo 2.6 Sobre todo está enfocado a :
- Administradores de Sistemas que quieren guardar cuidadosamente sus scripts
- Simples usuarios quue quieren guardar su informacion sensible
- Trabajadores que no desean que los administradores de la empresa vean sus archivos
- .... seguro que un monton de usos mas ...
Vamos a suponer que estamos usando una Debian, de lo contrario adapta los comandos como creas conveniente. Lo primero es bajarse encfs (#apt-get install encfs deberia servir). esto nos baja e instala encfs y fuse si no lo tuvieramos instalado. FUSE es acronimo de filesystem Userspace, y nos permite montar y desmontar sistema de archivos con un usuario normal. FUSE debe ser introducido en el kernel de linux, o bien como modulo o bien en el propio kernel. Para meterlo como modulo tenemos estas opciones:
- Instalamos fuse-source
- (#apt-get install fuse-source) y nos vamos al directorio del mismo y lo descomprimimos
-
- cd /usr/src ; bunzip2 fuse-src.tar.bzip2 ; tar zvf fuse-src.tar
- Ahora compilamos e instalamos : cd /usr/src/modules/fuse/kernel/ ; ./configure ; make ; make install
- el modulo deberia estar listo y lo cargamos con modprobe fuse
- Existe un paquete llamado fuse-modules que seguramente lo instale automaticamente pero no lo probé aun
- desde el menu de compilacion del nucleo seleccion en Filesystems->fuse añadir como Modulo y listo
Ahora creamos un directorio para meter todos los datos privados como un usuario normal si lo preferimos: **mkdir ~/.privado/ ~/privado/ (necesitaremos los 2 directorios)** Nos aseguramos que el module fuse está cargado: #**modprobe fuse** Añadimos a nuestro usuario al grupo fuse #**usermod -Gfuse coffman** (para que linux coja este cambio puede ser necesario que reinicies la sesión) Creamos el sistema de archivos: encfs ~/.privado/ ~/privado/ Creando nuevo volumen cifrado. Por favor, seleccione una de las siguientes opciones: introduzca "x" para modo de configuración para expertos, introduzca "p" para el modo preconfigurado paranoico, cualquier otra cosa o una línea vacía seleccionarán el modo estándar. ?>p
Configuración paranoica seleccionada.
Configuración finalizada. El sistema de ficheros que se va a crear tendrá las siguientes propiedades: Cifrado del sistema de ficheros: "ssl/aes", versión 2:1:1 Codificación de nombres de ficheros: "nameio/block", versión 3:0:1 Tamaño de clave: 256 bits Block Size: 512 bytes, including 8 byte MAC header Cada fichero contiene una cabecera de 8 bytes con datos únicos del IV. Los nombres de ficheros se codificarán usando el modo de encadenamiento de IV. El IV de los datos del fichero está encadenado al IV del nombre del fichero.
A continuación se le pedirá una contraseña para el sistema de ficheros. Debe recordar esta contraseña, ya que no existe absolutamente ningún mecanismo de recuperación. No obstante, la contraseña puede cambiarse después con encfsctl. Nueva contraseña Encfs: ******* Verifique la contraseña Encfs: *******
Con esto ya deberiamos tener el directorio ~/privado/ protegido perfectamente ... Para desmontar el directorio : $ fusermount -u ~/privado/
Listo... nuestros datos ya estan a salvo, siempre que los metamos en el directorio ~/privado , claro está ;)
by macame
|
|
Esto no pretende ser un tutorial ni mucho menos, mas bien una pequeñas prueba de concepto para la tecnologia RMI.
Recientemente me ha tocado colaborar en un proyecto con una parte cliente y una parte servidor , ambas en entornos unix y separadas fisicamente por firewalls. De modo que para comunicar las 2 partes del software estoy evaluando varias posibilidades, y para cada una de ellas tendre un ejemplo basico de funcionamiento.
En esta primera parte la evaluacion será de RMI Para la prueba construiremos el "Hola Mundo" en version cliente/servidor Los archivos necesarios serán:
- Hello.java (Una interface con lo basico)
- HelloImpl.java (El Objeto servidor en si mismo, con metodo main para poder ejecutarse)
- HelloClient.java (El cliente java)
Estos 3 archivos componen la parte servidora (objetos en el lado del servidor) Hello.java
import java.rmi.Remote; import java.rmi.RemoteException; public interface Hello extends Remote { String sayHello() throws RemoteException; }
HelloImpl.java
import java.rmi.Naming; import java.rmi.RemoteException; import java.rmi.RMISecurityManager; import java.rmi.server.UnicastRemoteObject;
public class HelloImpl extends UnicastRemoteObject implements Hello {
public HelloImpl() throws RemoteException { super(); }
public String sayHello() { return "Hola, holita..."; }
public static void main(String args[]) {
// Create and install a security manager if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); }
try { HelloImpl obj = new HelloImpl();
// Bind this object instance to the name "HelloServer" Naming.rebind("//192.168.0.18/HelloServer", obj);
System.out.println("HelloServer bound in registry"); } catch (Exception e) { System.out.println("HelloImpl err: " + e.getMessage()); e.printStackTrace(); } } }
policy
grant { // Allow everything for now permission java.security.AllPermission; };
Este es para la parte cliente HelloClient.java
import java.rmi.Naming; import java.rmi.RemoteException; public class HelloClient { static String message = "blank"; static Hello obj = null; public static void main(String args[]) { try { obj = (Hello)Naming.lookup("//192.168.0.18" + "/HelloServer"); message = obj.sayHello(); } catch (Exception e) { System.out.println("HelloApplet exception: " + e.getMessage()); e.printStackTrace(); } System.out.println("MENSAJE:"+message); }
}
Una vez que tenemos y revisamos estos archivos, compilamos y generamos los proxys para que el cliente** ** remoto pueda acceder al objeto servidor (que simplemente devuelve un mensaje)
javac Hello.java HelloImpl.java rmic HelloImpl
Lo cual nos genera los .class de Hello.java y HelloImpl.java . Ademas de esto, el comando rmic, genera unos proxys para copiar en el lado cliente son: HelloImpl_Stub.class y HelloImpl_Skel.class
El archivo policy lo necesitamos en el lado del servidor para dar seguridad al acceso a nuestro objeto, el ejemplo es INSEGURO para un entorno de producción. Ahora que tenemos toda la parte del servidor lista, ejecutamos el rmiregistry que levanta un servidor escuchando en el puerto 1099, Este programa se encarga de recibir peticiones de Clientes que intentan localizar objetos servidores y les indica donde se encuentran fisicamente.
Una vez que tenemos levantado el rmiregisty , Levantamos nuestro objeto de lado del servidor:
java -Djava.security.policy=$HOME/Programacion/java/rmi/policy HelloImpl
haciendo referencia al archivo policy antes creado.
En el lado cliente compilamos HelloClient.java y copiamos el Stub y el Skel generados en el servidor, de modo que tengamos:
HelloClient.class HelloImpl_Skel.class HelloImpl_Stub.class
y ejecutamos : java HelloClient , que como resultado deberia dar : vic@coffdeb:rmi$ java HelloClient MENSAJE:Hola, holita...
by coffman
|
|
El topic suena interesante , eh ?? pues aun encima es mas fácil de lo que parece, empecemos con los pasos a seguir ...
Debemos tener un nucleo que tenga compilado ó en forma de modulo lo siguiente :
hci_usb (seguramente ya lo tengamos metido)
rfcomm (para las comunicaciones)
l2cap (idem)
bluetooth (logico, no ?)
No pienso explicar como recompilar el nucleo , hay cientos de páginas que dicen como hacerlo ...
Instalamos tambien los paquetes relacionados con bluetooth, pongo el caso de la debian, si usais otra distribución ejecutar el comando equivalente.
apt-get install bluez-utils bluez-pin bluez-firmware bluez-hcidump bluetooth
La transferencia de archivos la vamos a hacer "a mano" pues la interface grafica a mi aun no me funciona ...
Antes de empezar metemos el bluetooth en una ranura USB y vemos los LOGS que deberia aparecer algo como esto :
Jun 1 18:57:48 localhost kernel: usb 4-2: new full speed USB device using uhci_hcd and address 3 Jun 1 18:57:48 localhost kernel: Bluetooth: HCI USB driver ver 2.9 Jun 1 18:57:48 localhost kernel: usbcore: registered new driver hci_usb Jun 1 18:57:48 localhost usb.agent[22990]: hci_usb: loaded successfully Jun 1 18:57:48 localhost usb.agent[22989]: hci_usb: loaded successfully
Con lo que
1.- Descubrimos la ID de nuestro teléfono movil (es único para cada telefono y este es un ejemplo)
zoidberg:~# hcitool scan Scanning ... 00:16:4E:0C:2B:91 O jato
2.- Ponemos una password (p.ej. 1111) al bluetooth del PC:
# echo "1111" > /etc/bluetooth/pin
3.- Vemos el canal que usa nuestro móvil para el envio y recepción de archivos (que es el de Nombre OBEX File Transfer) :
vic@zoidberg:Elephant$ sdptool browse 00:16:4E:0C:2B:91 Browsing 00:16:4E:0C:2B:91 ... Service Name: Hands-Free Audio Gateway Service RecHandle: 0x10000 Service Class ID List: "Handfree Audio Gateway" (0x111f) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Language Base Attr List: code_ISO639: 0x454e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Handfree Audio Gateway" (0x111f) Version: 0x0101 Service Name: OBEX File Transfer Service RecHandle: 0x1000a Service Class ID List: "OBEX File Transfer" (0x1106) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 10 "OBEX" (0x0008) Language Base Attr List: code_ISO639: 0x454e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "OBEX File Transfer" (0x1106) Version: 0x0100 ...
En mi caso el número de Canal para la transferencia de archivos es el 10 (OBEX File Transfer).
Ponemos al bluethooth del ordenador en espera de conexiones en ese canal ...
sdptooladd−−channel=10OPUSH obexserver
Vinculamos desde el telefono movil ... dandole en Bluetooth->buscar dispositivos-> ... -> Asociar
y a enviar archivos ...
Cada vez que queramos enviar un archivo tenemos que volver a ejecutar el obexserver****Links:http://www.e-oss.net/wordpress/?p=12http://usefulinc.com/software/gnome-bluetoothhttp://es.wikibooks.org/wiki/Hacks_para_sistemas_operativos_Unix-like/Redes/Bluetooth/Linux
by coffman
|
|
Pues nada nada ... que parece que sino salimos en el maps de google es como que no existimos ... y por fin las zonas de galicia que antes no aparecian (que eran casi todas) ahora ya estan disponibles. En lo que al MAPA se refiere , pues la vista via satelite siempre estuvo mas o menos ahí (mas menos que mas) Un ejemplo de mapa que no salía hasta hace 2 dias lo tenemos en la web de Queres, en la seccion dónde estamos .
Me alegro de que por fin aparezcamos en el mapa ;) Os recomiendo visitar la pagina de google map pues es muy interesante poder incrustar un mapa navegable en vuestra pagina web.
A esto se suma que el 3 de abril google sacó a la luz la version 2 de la API de google maps que trae un monton de mejoras.
Espero poder sacarle utilidad a todas las rutas de escalada que tengo guardadas del antiguo GPS, pues aqui en galicia encontrar las vias es una odisea. Lo tengo anotado en tareas pendientes ;), justo despues de "comprar PSP con firmware 1.5".
UPDATED (26-abr-2006): Parece un poco egocentrica la noticia, pues resulta que no solo han actualizado Galicia, tambien han actualizado el resto de Europa !!! .
by coffman
|
CoffMan Site
|
|
|