jueves, 29 de mayo de 2008

SDK Beta 6

Y de nuevo otra misteriosa beta más del SDK (y por ende también de la firmware 2.0). Esta vez la versión sería la 5a308.

A diferencia de otras betas, en esta ocasión Apple no ha dado ningún dato sobre los cambios realizados. Es curioso que aun en estas fechas, teóricamente muy próximas a la supuesta salida del iphone 3G y firmware 2.0 oficial, aun sigan saliendo betas. Da la sensación de que apple retrasará la salida como esto siga así

Aparentemente tan solo han implementado algunas medidas más de seguridad cautelares sobre la instalación de las aplicaciones de los mismos creadores sobre sus mismos dispositivos. Y parece ser tambien que tan solo es posible su instalación en la nueva versión de MAC OS que tambien ha salido hoy.

Bueno, la verdad es que tampoco es que sea uan gran noticia ni mucho menos, pero dado que he ido informando previamente con cada nuva versión, aquí queda esta otra.

Si me entero de algo nuevo ampliaré esta entrada y listo.

Un saludo.

lunes, 26 de mayo de 2008

Artículo: Samba: Además de un baile, una forma de usar el iPod/iPhone casi como un Pen


Una de las mayores faltas que ha tenido siempre la mayoría es el no poder hacer uso del dispositivo como Pendrive para poder facilmente introducir y sacar datos sin problema, ya sea una foto, un documento o demás. La solución evidentemente ha pasado por usar un cliente SFTP tanto para copiar datos como para sacarlos y por supuesto para modificar permisos.


Ahora un poco de historia, como viene siendo normal: (si no te interesa, siempre puedes saltartelo)

Muchas veces se ha criticado a Apple por no implementar esta función, y sin embargo creo siempre que es mejor educarse un poco antes de hacer conjeturas fáciles. Apple no se ha olvidado de nosotros y ha obviado la necesidad de esta función. El problema es que no ha sido posible integrarla por razones técnicas. El sistema de archivos usado por el dispositivo es HFS+, propietario de Apple, y como todas las cosas de Apple, o lo haces a su manera o nada. Un sistema de archivos podríamos definirlo de manera simple como el mecanismo que dicta como estan ordenados esos archivos, como se acceden, que jerarquia tienen, que sistemas de protección... como se gestionan en definitiva. Cada OS tiene su propio sistema de archivos, cada uno con sus pros y sus contras, pero que ahora eso no viene a cuento. En todo caso nombrar los sistemas de archivos de la actualidad y el pasado:

FAT16 - MSDOS, pero aun se encuentra mayoritariamente en todos los pendrives
FAT32 - Win95-98, y esposible y recomendable a veces usar este sistema de archivo para los pendrive
NTFS - XP, Vista.
ExFat - Vista SP1. MS quiere que sea el sistema de archivos futuro para los pendrive y demas memorias flash
HFS/+ - MAC OS
ext2/3 - Linux

Aunque evidentemente hay muchos más.

El caso es que nuestro dispositivo usa HFS, el cual es completamente incompatible con Windows e incluso problemas con linux. Incluso en el caso de poder conectarlo al PC, este nunca nos daría acceso a dichos datos. Se podría crear una capa intermedia de software... pero evidentemente estaríamos en las mismas, ya no sería un "pen". El iPod classic así como otros reproductores usan FAT o FAT32, con lo q el sistema tiene acceso sin problema a los datos. Pero el sistema de archivo HFS es un poco más peculiar, como todas las cosas de Apple. En este caso es comprensible, HFS es más similar a ext3 que a NTFS, desde los descriptores de seguridad como en general. Y dado que a fin de cuentas MAC OS es unix... Apple no podría usar NTFS ni FAT para nuestro dispositivo, sin cambiar el OS claro está. Lo que se traduce en una imposibilidad completa.

Por otro lado el detectar el PC como un pen sería tb una forma directa de realizar JB, lo cual otro punto más para afirmar que esta función jamás estará disponible.

-----------------------
-----------------------

Que es Samba?

Samba es una implementación abierta del protocolo SMB de Microsoft. SMB es el protocolo de MS que se encarga de conectar entre sí los PCs Windows para poder formar con ellos una red en la que poder compartir impresoras, archivos...

En entornos Unix que quieran convivir con Windows, necesitan de Samba para poder comunicarse con los otros equipos Windows.

Vamos a convertir realmente nuestro dispositivo en un Pen? no exactamente, aunque una vez configurado el dispositivo casi sí, y no solo eso, sino que podremos beneficiarnos de algunas características extras.

Para quien nunca haya tratado con redes domesticas en entornos windows, es muy facil. Tan solo yendo a "Redes" nos aparecerá nuestro grupo de trabajo y en él todas las estaciones conectadas. Cualquier equipo de esa red entonces puede si quiere compartir ciertos recursos, ya sean impresoras, carpetas, archivos... y otorgar si quiere o no los permisos pertinentes. Quizás queremos tener una carpeta compartida en la que se pueda escribir o eliminar desde cualquier PC conectado o tener acceso. Esto se traducirá para nosotros a poder meter o sacar cualquier cosa que deseemos del dispositivo con permisos de root, y todo ello desde el mismo explorador de windows como si de un Pen se tratase. La única diferencia es que en vez de conectarlo por USB se conectará por Wifi.

Igual que en un PC, se configurará Samba para dar acceso a unas carpetas u a otras, y adicionalmente especificar si se desea otorgar unos permisos u otros.

-----------
---------------

Visto esto tan solo queda comenzar.

En el repositorio de BigBoss tenemos un Samba reducido en funcionalidades pero para la gran mayoría lo preferirá así, por ser simple y no requerir configuraciones extras si no se desea. Vamos a Installer y lo instalamos.

Creo que por defecto no lo habilita, para ello podemos hacer uso de boospref (Creo q se llama) que permite habilitar o deshabilitar servicios. Si lo hacemos de ese modo será necesario tambien instalar la extensión de Samba para BossPref.

Para quien lo prefiera puede iniciarlo o detener el servicio Samba del dispositivo por SSH o terminal con el comando:

sh /usr/local/samba/smb.sh start

y para detenerlo

sh /usr/local/samba/smb.sh stop

Hasta aquí todo muy simple y sin complicaciones, pero lo normal es que queramos realizar algunso ajustes extras. No pongo imágenes de lo explicado porque creo que es lo más simple y básico que se despacha, no tenemso por ahroa complicación alguna.

Samba es altamente configurable, pero por ello mismo tambien puede ser un buen dolor de cabeza para quien no quiera complicaciones. Por eso la instalación de BigBoss es una muy buena implementación y configuración, de nuevo, para el usuario medio.

Samba quedará configurado por defecto de la siguiente forma:

Un usuario de acceso "root" con su contraseña "alpine" (estos credenciales son independientes a los de acceso por SSH)
El Cliente Samba será llamado (y será como se identifique para windows) como "iphone"
El grupo de trabajo al que se anclará será "WORKGROUP"
Por defecto se comparten las carpetas:

ROMs -> /var/root/Media/ROMs
PDF -> /var/root/Media/PDF
Ringtones -> /Library/Ringtones
Wallpapers -> /Library/Wallpaper
Fotos -> /var/root/Media/DCIM/100APPLE
Raiz -> /usr/local/samba/root
Aplicaciones -> /Applications | Para esta ultima carpeta, se le otorgan permisos 755


Todas las opciones se pueden por supuesto editar a mano. Este método si tiene la ventaja de que la configuración y la instalación se hace sobre nuestro propio dispositivo, y casi al 90% nos será posible acceder a él desde cualquier máquina Windows (o MAC) sin instalación de NADA , ni cable. Tan solo que tengan conexión wifi, puesto que el protocolo SMB está en todos los windows y MAC, con lo que nada más simple y cómodo para la gran mayoría. Tan solo confiurar Samba una vez y listo. Simplemente con la configuración por defecto podremos activar Samba y nos bastará con ir a "Mis sitios de red"en XP o "Red" en vista, y nos aparecerá nuestro dispositivo

Voy a poner un ejemplo de configuración personalizada en mi caso, que no quiere decir que sea la mejor. Al igual que he puesto la configuración por defecto que trae Samba, pondré la mía y por ende que archivo editar y como ponerlo.

En mi caso el nombre de usuario será root también. Para quien quiera crear un usuario nuevo es un poco "engorroso" ya q implica jugar con los identificadores de usuarios, puesto que si no no tendremos permisos de root. Daríamos de alta el usuario en el archivo "smbpasswd" que se encuentra en "/usr/local/samba/private", tal como haríamos en unix. Evidentemente el usuario dado de alta tendrá que tener el mismo uid que root para poder tener sus permisos y posiblemente implicaría también dar de alta el nuevo usuario en el archivo "master.passwd" de /private/etc que es donde se almacenan los credenciales del dispositivo. Como esto puede ser un poco feo, no pasa nada por dejar el mismo nombre de sesion

Por otro lado la contraseña. En este caso modificar la contraseña es mucho más simple, lo haremos por SSH con el comando:

"/usr/local/samba/smbpasswd"

Una vez tecleado y enter, nos pedirá la nueva contraseña.
Una vez modificado esto ya tendremos la seguridad necesaria para continuar.

Ahora modificaremos el archivo de configuración de samba para ajustarlo a nuestras necesidades. El archivo en cuestión será "smb.conf" que se encuentra en: /usr/local/samba/lib

En ese archivo estará todo, quitando tan solo contraseña y usuario que ya hemos explicado. Por defecto ese archivo es quien dicta la configuración por defecto (valga la redundancia). En mi caso la configuración será la siguiente:

[global]
workgroup = CASA
netbios name = Theliel
server string = "Theliel"
debug level = 0
interfaces = 192.168.0.4/24

Esa sería mi sección global. Mi grupo de trabajo no es por defecto el que pone MS Grupo_trabajo en su versión española o WORKGROUP en ingés. Así que modifico y pongo el mío.
"Netbios name" es el nombre por el cual Windows referenciará el dispositivo
"server string" es una pequeña descripción de todos los equipos con SMB
debug level 0 no es más que para evitar un exceso de logs
interface hace referencia a la interfaz wifi, ethernet... en el que se habilitará samba. Por defecto pone en0. en0 en teoría es la interfaz wifi, pero en las versiones de firmwares nuevas es posible que no nos sirva tan solo con poner en0. Así que para curarnos en salud ponemos la IP de nuestro dispositivo y la máscara. No voy a explicar mejor porqué la máscara es 24, pero es así. Escribir eso, es lo mismo que decir: IP: 192.1680.4 Máscara: 255.255.255.0m, y se abrevia: 192.168.0.4/24

Con esto tenemos solucionado el tema también de conexión e identificación, tan solo nos quedaría la parte donde especificamos que deseamos compartir:

[Documentos]
path = /var/mobile/Media/Documentos
valid users = root
read only = No

[Fotos]
path = /var/mobile/Media/DCIM/100APPLE
valid users = root
read only = No

[Root]
path = /usr/local/samba/root
valid users = root
read only = No

[Aplicaciones]
path = /Applications
valid users = root
read only = No
create mask = 0775

No creo que haga falta especificar linea a linea que es, puesto que es bastante implicito. Tan solo comentar que como esta versión salio para versiones anteriores a la 1.1.2, la ruta de las fotos es diferente, ahora está en mobile, no root como trae la configuración por defecto. Todas las carpetas tienen permisos de lectura y escritura, y la carpeta compartida Applications además tiene permisos 755, por si deseamos instalar manualmente cualquier app, con tan solo pegarla allí se establecerán los permisos en 755, más facil imposible. Para el resto de las carpetas los permisos serán los asignados normalmente, que si la memoria no me falla es 644

Una vez todos modificados según nuestras preferencías, tan solo tendremos que levantar el servicio como dijimos al comienzo y listo.

Ni que decir tiene que por seguridad cuando no estemos usando el servicio lo podemos deshabilitar:





Para acabar, decir que Samba no es tan solo un servidor, sino tambiíen un cliente. Esto quiere decir que de la misma forma que podemos acceder a los datos de nuestro dispositivo desde nuestra red local, tambien podríamos acceder desde nusetro dispositivo, ya sea desde terminal o SSH a los recursos de nuestra red, pero eso lo dejo para otro día ;)


Un saludo.

Edito: Creía que se encontraba en el repositorio de BigBoss, pero está en el de BigBoss beta:

http://sleepers.net/iphonerepobeta

O si se quiere obtener e instalar manualmente, aunq es un poco coñazo ya que hay que crear algunso enlaces simbolicos y no se instala en Applications... pero de todos modos dejo el paquete para quien quiera experimentar:

http://thebigboss.org/repofiles/bigboss/samba.zip

Y por último, aprovecho para subir la versión completa de Samba:

http://www.wickedpsyched.net/iphone/webfm_send/166

viernes, 23 de mayo de 2008

Tribal: Disparemos a las dianas

La verdad es que este dichoso juegecito es de lo más adictivo.

Es simple, usando los dedos hay que ir disparando a las diferentes dianas que van apareciendo, así como las dianas bonus. Si le disparas a uan bomba, te quitan una vida. Cuanto mayor sea la dificultad mayor rapidez.

Puedes usar hasta cinco dedos a la vez por si tienes que realizar 5 blancos. En el nivel más complicado, algunas fases se hacen demenciales.

La verdad, es bastante gracioso:








Lo podeis encontrar en:

http://repo.ispazio.net


Y como biene siendo normal, manualmente lo podeis descargar manualmente desde:

http://nsolan.free.fr/DOWNLOAD/Tribal.v1.0.iPhone.zip


un saludo

FileBrowser: Sustituto de Finder?

Ayer si no recuerdo mal ha salido un posible sustituto de Finder. Para quien no lo sepa, Finder es un explorador de archivos del iPod Touch/iPhone. Desde él podemos copiar archivos, mover, eliminar, cambiar permisos...

Digamos que Finder es como un pequeño SFTP pero en el mismo dispositivo. En momentos dados puede ser muy util echar mano de él.

FileBrowser es muy similar en muchos aspectos, añade algunas opciones como la posibilidad de comprimir/descomprimir un archivo y una interfaz quizás más cuidada. Aun no lo he ojeado bien, no es que tenga ultimamente mucho tiempo disponible. Sí es verdad que Finder no tiene uan sola actualización desde apenas que salió, y es interesante ver siempre competencia ;)

Os dejo algunas imágenes como es costumbre:



martes, 20 de mayo de 2008

WinPwn 1.0.0.3 RC1 (Actualizado)

Cwn va afinando y ya ha entrado Winpwn en su fase RC (Release Candidate). En este caso, además de corregir fallos se ha reescrito toda la parte del Installer, siendo posible administrar practicamente todas las aplicaciones que puedan ser instaladas por medio de la preinstalación, así como la posibilidad de eliminar paquetes añadidos anteriormente (un problema con las otras versiones)

Por otro lado ha sidpo posible incluir un sistema para poder quitar y poner o cambiar los logos sin necesidad de restaurar

Desde mi punto de vista, es un lujo poder construir tus propias imágenes personalizadas con tus aplicaciones favoritas, y de cuando en cuando incluso revisar si hay actualizaciones nuevas de los programas precargados. Una forma muy rapida de en el caso de tener que restaurar rehacer todo el sistema en minutos. Lo que queda tan solo es crear payload para cargar otro tipo de información, como archivos concretos que no son aplicaciones en sí.

Lo podeis descargar desde aquí:

http://www.winpwn.com/files/winpwn_1.0.0.3_RC1_Setup.zip

Un saludo

Edito: Al parecer al muy poco tiempo ha sacado una nueva revisión de la RC1, muy posible algún fallo en la aplicación que haya requerido una pronta actualización

Installer 3.11

Acaba de salir una nueva versión del Installer, de nuevo "subvencionada" por RiP Team.

Como cambios llamativos? por fin no tendremos más actualizaciones desactualizadas procedentes de otros sources dentro de update (ya era hora). Tambien han arreglado un problemilla que había con los repositorios locales.

Por lo demás no veo cambio alguno, si cualquier de vosotros ve algo que se me ha pasado lo puede decir

Un saludo

miércoles, 14 de mayo de 2008

Artículo: VNC: Controlando el PC desde cualquier punto del mundo (Actualizado)

Desde hace muchos años, con la aparición de las redes aparece también una necesidad básica: El acceso a distancia a un equipo. En entornos unix siempre se ha usado utilidades como ssh, slogin, telnet... que nos permitían acceso remoto. Incluso como dijimos en otro manual, "Jugando con x11", es posible traer entornos gráficos desde la distancia. Esto en el mundo UNIX no es nuevo... y en windows tampoco.

Por supuesto, a veces tan solo es un juego el poder decir: "Mirar, soy capaz de acceder a mi PC desde cualquier parte del mundo". Otras veces en cambio es una necesidad, por ello usamos desde servidores web o FTP para poder acceder a dichos datos. Otras veces en cambio lo que deseamos es acceder a un archivo de texto, alguna imagen concreta, un recordatorio... o sumplemente echar un vistazo a nuestro equipo, y evidentemente por una imposibilidad espacial, necesitamos hacerlo a distancia.

De esta necesidad surgen terminos como "Escritorio Remoto". Ya no nos conformamos con traernos una aplicación a través de X11 ni un simple acceso por FTP o SSH. Necesitamos acceder a nuestro PC, usar nuestras aplicaciones, mirar nuestras cosas... como si delante del PC estuviésemos. Por ello, tanto Microsoft como Apple crearon aplicaciones para hacerlo posible de manera simple. Pero claro... para toda conexión hace falta dos programas. Un programa para quien hará de servidor y otro que hará de cliente. Y aquí está el problema. Al ser programas o sistemas propietarios, hay que ceñirse a lo que ellos te dan. De esta necesidad surgen muchos programas de acceso remoto, seguramente el más famoso de todos será siempre VNC, Virtual Network Computing, un sistema abierto que se ha portado seguramente ya a todas las plataformas, incluido iPhone/iPod, Windows, Unix, Mac...

Bueno, ya sabemos que es VNC y tenemos una idea vaga de para que sirve. Como hemos dicho, hacen falta siempre dos programas, uno que se ejecutará en la máquina servidor que aceptará las conexiones entrantes y uno que se ejecutará en el cliente, que se conectará al servidor. Para nosotros, para esta guía, el servidor será una máquina Windows Vista, mientras que el cliente será un iPod Touch.

Pero como interactuarán el cliente y el servidor VNC? Bueno, como hemos dicho VNC es una plataforma abierta muy extendida. Hay muchos servidores diferentes VNC y muchos clientes VNC, algunos de pagos y otros gratuitos. En teoría casi cualquier cliente VNC debería de funcionar perfectamente con casi cualquier servidor VNC, aunque siempre que se pueda será bueno usar el cliente del servidor asociado. Para nuestro manual he usado como servidor TightVNC, pesa muy poco y no tiene complicación alguna. Quizás no sea el servidor VNC más robusto, pero funciona perfectamente, es gratuito y disponible para varias plataformas. Lo podemos obtener desde su web:

http://www.tightvnc.com/download.html

El paquete completo incluye también el cliente, aunque necesitaremos otro cliente diferente para el iPod Touch (iPhone)


Por el lado del cliente, yo he usado VNsea, completamente gratuito, se puede descargar desde Cydia o desde el Installer. Por ahí hay otro, Touchpad pro 4 que es de pago, aunque se puede conseguir gratuitamente por inet, pero se puede usar perfectamente también. Las diferencias entre unos y otros son minusculas a la hora de manejarse, quizás Touchpad sea más suave al principio a la hora de desplazarnos por nuestro entorno, pero nada que VNsea no haga perfectamente también, y además es gratuito :)

Dicho esto ahora tan solo nos queda configurar los dos programas, el servidor TightVNC y el cliente VNsea. Vamos a comenzar por el más "complicado" El servidor, aunque como veremos apenas tenemos que cambiar nada.


TightVNC (Servidor)

Nada más ejecutar el programa o nos saltará la pequeña ventana de configuración o se irá inmediatamente al reloj de windows en forma de iconito. Si se ha ido al reloj pinchamos una vez para abrirlo:








No voy a explicar opción a opción que es lo que hace cada una, la mayoría son muy faciles de comprender, así que no creo que haya necesidad. Se pueden usar los mismos ajustes que están en esas pantallas. Lo que sí deberemos de modificar y establecer es la contraseña "primary Password" "view-only password". Contraseña para el control completo o contraseña para solo ver. pondremos la contraseña que queramos y listo

En la misma pestaña de server, otra cosa a tener en cuenta que si es recomendable modificar es el puerto. Por defecto el 5900 y el 80 para la interfaz web. Estos puertos son fáciles de escanear, si se quiere una seguridad extra siempre es conveniente modificarlo, aunque si se modifica habrá que recordar que puerto era, y a la hora de configurar el cliente tenerlo en cuenta.

En la pestaña Administración, podemos ver también una opción llamada Enable Built-in HTTP server. Esta opción nos permitirá acceder por cualquier página web a nuestro PC sin necesidad de un cliente, tanto desde un iphone como desde el PC de la universidad o... Así que puede ser también una buena opción el tenerla en cuenta.

El resto de las opciones no son tan interesantes.


VNsea (Cliente)

Al igual que configuramos en servidor deberemos hacer lo mismo con el cliente. Normalmente cualquier cliente VNC tan solo se limita a un nombre de usuario (en caso de existir), una contraseña, la dirección del servidor y el puerto al que conectarse. Y quitando la dirección del servidor, todos los demás datos son los que ya hemos configurado anteriormente en el servidor. Tan solo tendremos que abrir VNsea y configuraremos primero el programa en sí dándole a preferencias:




Y una vez configurado la aplicación en sí, tan solo tenemos que añadir los servidores que queramos. Le damos al botón + y añadimos según las preferencias de nuestro servidor:




Aquí hay que tener en cuenta algo. Es diferente si nos conectamos desde una LAN o desde WAN. Si queremos acceder desde LAN, tan solo deberemos de introducir nuestra IP privada, en el caso del ejemplo (no son datos reales) 192.168.0.2. Normalmente cuando realizamos conexiones mediante LAN tan solo deberemos de permitir nuestro cortafuegos de windows que permita el acceso, y no hay más problema. Como mi puerto de conexión lo dejé por defecto en 5900 no debo de cambiar nada más, pero si mi puerto lo cambié por ejemplo a 5901, a la hora de especificar el host debería de poner algo así: "192.168.0.2:5901" ello especificaría el puerto de conexión.


Pero como accedemos desde WAN?

En realidad se aplica el mismo concepto, pero hay que realizar algunos ajustes más. Por un lado está el problema del router. Al router hay que abrirle un puerto para que sepa que toda las conexiones entrantes desde WAN hacia el puerto 5900 (si está por defecto) debe de dirigirlas hacia el host en el que tenemos instalado el servidor VNC. Cada router es diferente y es imposible hacer una guía para cada router, pero rapidamente mirando la documentación del router no tendremos problema alguno en abrir el puerto necesario. La regla en el router debería de ser algo así:

Para todas las IPs entrantes, redirigir las conexiones al puerto 5900 al puerto 5900 del host 192.168.0.2 (en el caso de que esta sea la IP privada donde se encuentra el servidor VNC). Todos aquellos que alguna vez han abierto un puerto para el Emule o para jugar... esto es igual.

Con esto solucionamos uno de los dos problemas. El segundo problema puede ser desde un verdadero problema a una simple molestia.

La IP privada de una LAN puede ser más o menos conocida o conocida completamente, pero la IP real de uno es más complicado, sobre todo porque por ahora el 90% de todos los ISP de españa asignan IPs dinámicas, lo que quiere decir es que de cuando en cuando o cada vez que se reinicia el router o... la IP cambia. Pero necesitamos esta IP para configurar nuestro cliente VNC. Conocer la IP en un momento dado desde nuesto equipo es muy simple, desde poner en google: "cual es mi ip" a simplemente mirarla en el router o... pero conocer la IP desde fuera, además de ser peligroso en cuanto a seguridad se refiere, no es que sea muy simple. Sin un sistema más cómodo, tendríamos que reconfigurar nuestro cliente cada vez que quisiésemos conectarnos, y claro, esto no es que sea muy eficiente.

Incluso en el caso de tener contratado una IP fija a nuestro ISP, aprendernos algo como 80.212.125.3 tampoco es que sea muy intuitivo, aunque al menos tan solo tendríamos que configurarlo una sola vez.

La solución pasa por usar servicios de DDNS. Un servicio de DDNS lo que hace es asociar a tu IP siempre el mismo NS (nombre del servidor). Da igual la IP que tengamos cada vez, ya que siempre podremos referenciar nuestro PC con un nombre. Ya casi todos los routers implementan estos servicios directamente en ellos, y no hay que hacer otra cosa sino que registrarnos gratuitamente en uno de estos DDNS y rellenar la informacion del router con nuestros datos. El router así lo que hará es que al detectar un cambio de IP, tan solo reenviará la señal al servidor DDNS, este detectará que el usuario Pepito con IP XXX y NS "pepi" está actualizando su IP. Lo vemos mejor así:

Usuario Pepito sin DDNS se quiere conectar a casa por VNC a su PC desde el trabajo, lo intenta pero no puede. No sabe que su ISP le ha cambiado la IP en las ultimas horas y a él se le olvidó mirar la IP en su casa antes de irse

Usuario Pepito se registra en no-ip (un proveedor de DDNS gratuito) y registra una cuenta con el nombre de "Pepito" y registra el DDNS "pepi.no-ip.com"

Usuario Pepito configura su cliente VNC y en direción host pone "pepi.no-ip.com" y configura su router que permite el proveedor no-ip con sus datos de su cuenta.

Usuario Pepito está trabajando y se quiere conectar de nuevo a su PC desde el trabajo, no ha mirado la IP, pero no la necesita. Abre su cliente VNC y este se coneta sin problemas a su PC. ¿PQ? Pepito sabe que su router se reinició por la noche, con lo que la IP ha cambiado, pero para el no es problema, además le da igual que cambie o que no. Este es el proceso:

El router se inicia con la IP XXA
Nada más iniciarse, manda los datos de la cuenta de Pepito al servidor de DNS de no-ip y le dice: "Actualiza el registro DNS de "pepi.no-ip.com" a la IP XXA. Dado que el dominio pepi.no-ip.com pertenece al mismo servidor de ellos, ellos realizan el cambio y en pocos segundos las bases de datos de DNS actualizan sus entradas. Luego pepi.no-ip.com siempre estará apuntando a nuestro router, tengamos la IP que tengamos en cada momento. Ya será el router quien se encargará con el mapeo de puertos (NAT o PAT) a dirigir el tráfico a nuestro PC.

Existen muchos proveedores de DDNS, muchos routers soportan algunos de ellos. Y si nuestro router tampoco soporta ningún DDNS tampoco es un problema, cada proveedor suele tener un mini programa que se ejecuta en el PC que hace exactamente la misma función que el router.

Entre otros proveedores tenemos:

no-ip
dns.ns
...

http://www.technopagan.org/dynamic/

en esa web podemos encontrar un amplio listado de ellos, aunque lo ideal sería siempre usar uno que nuestro router acepte, y así evitamos tener más programitas, y el proceso será completmaente transparente para nosotros.

Una vez aclarado esto, la conexión se debería de establecer perfectamente ya sea a través de LAN o a través de WAN:





Una vez conectados podremos desde usar el ratón, escribir, usar la pantalla tanto en vertical como en horizontal, eliminar, mover, desplazarnos... lo que deseemos.


Hay clientes VNC como touchpad pro que además tienen funciones de control (botones directos) para winamp o itunes, para reproducción de música y demás. Bueno, como idea no está mal, pero sigo pensando que no merece pagar los precios abusivos por aplicaciones que ya existen y que son gratuitas. Y si se quiere ver como funcionan pues bueno, siempre queda el lado "oscuro" de la piratería.

Os dejo algunas imágenes de una conexión realizada por touchpad pro 4, como verenos es practicamente igual:







Como podemos ver en las imágenes, es prácticamente igual, algunos con algunas opciones más otros con menos. Lo único que han hecho los creadores de touchpad ha sido modificar el original VNsea ligeramente.

De todos modos he colgado el TouchPad Pro, a priori de pago, en el repositorio para quien quiera poder usarlo sin problema. Eso sí, para poder usar las funciones de Server es necesario instalar el Media Server en el PC. Para usar el Media server (el control remoto) es necesario además especificar en la configuración de TouchPad Pro el puerto al cual conectarse y del mismo modo evidentemente, si se desea acceder desde el exterior tal y como hemos comentado, habrá que abrir dicho puerto también en nuestro router. La versión en mi repo está desbloqueada, uan vez instalada hay que darle a activar y se activará sin problemas

Para poder usar tanto la función VNC como la función Media server será necesario tener arrancados sendos programas, el Media Server y el servidor VNC

El servidor Media Server de TouchPad Pro se puede descargar desde aquí:

Pulsa Aquí


Bueno, creo que no me he dejado nada.

Un saludo a todos.

IntelliScreen: Nueva pantalla de bloqueo

Aun en fase beta, esta aplicación muestra diversa información en la pantalla de bloqueo, como mensajes, correos, el tiempo... Un buen sustituto para no tener que ir desbloqueando cada dos por tres a lo mejor tan solo para saber si tenemos un mail nuevo o queremos ver el tiempo, leer una noticia...

La aplicación está muy bien. Se puede instalar desde su repositorio:

http://intelliborn.com/repo/

O manualmente descargándola:

http://intelliborn.com/zips/IntelliScreen-0.93.zip



martes, 13 de mayo de 2008

iPlot: Representador de funciones

Otra de esas aplicaciones que se han hecho de esperar.

No se vosotros, pero yo sí que he echado en falta una aplicación para realizar representaciones gráficas de funciones. Es cierto que aun no es posible realizar gráficas en 3 dimensiones, pero supongo que será el siguiente paso lógico si desarrollan la aplicación.

Por ahora es posible manejar unas cuantas funciones, un editor sencillo para introducirlas, es posible derivarlas, integrarlas, calcular su mínimo y su máximo, calcular la raiz, hacer zoom, controlar el grid... como primera aplicación y aun en fase "experiemental" creo que está más que bien y recomendable. Os dejo algunas imágenes. La aplicación está en el repositorio de BigBoss.






miércoles, 7 de mayo de 2008

Jugando con X11

Uno de los grandes potenciales de nuestro dispositivo es que su nucleo está basado en UNIX/Linux. Esto quiere decir que muchísimas de las aplicaciones para UNIX/Linux con pequeñas modificaciones podrían, en teoría, correr bajo iPod Touch/iPhone.

La comunidad linux se ha basado en gram mededida en utilidades y programas por linea de comandos, pero evidentemente ha sido necesario siempre, en un punto u otro, una interfaz gráfica. Estamos de acuerdo de que muchas aplicaciones nos puede valer una linea de comando: Escuchar música, un cortafuegos, un conversor... pero hay aplicaciones que evidentemente es necesario casi al 100% una representación gráfica de estos datos, imaginemos sin ir mas lejos un simple diagrama, un editor de texto decente... hoy en día cualquier aplicación para el usuario final generalmente requerirá de un GUI.

Bueno pues por ello se creó X Windows (X11), para poder dotar de una interfaz gráfica a los sistemas UNIX. A raiz de X Windows se crearon con el tiempo los diferentes entornos que podemos encotrar hoy en día como KDE o GNOME, pero todos ellos funcionan sobre X11.

Por desgracia Apple no usó X11 para su MAC OS. Apple creó una capa gráfica diferente llamada Quartz. Luego nuestro dispositivo muy posiblemente use Quartz igualmente para todo el sistema gráfico. Si nuestro dispositivo corriese por ejemplo X11 posiblemente podríamos ejecutar no solo aplicaciones unix/linux de linea de comandos, sino también aplicaciones gráficas. Esto no quiere decir que nuestro dispositivo no sea capaz de ejecutarlas, tan solo que no es capaz de visualizarlas. Aun así no descarto a ningún genio que sea capaz de traernos alguna app que sea capaz de visualizar entornos x11.

Sin embargo, una de las mejores funciones que podemos encontrar en X11 es la posibilidad de "llevarnos la pantalla" a donde queramos. Dado que se trata de un sistema cliente-servidor, podemos hacer que la aplicación GUI ya se ejecute de forma remota por ejemplo a través de SSH o localmente, sea llevada a cualquier monitor del mundo. Es decir, sabemos que a través de SSH podemos ejecutar aplicaciones de forma remota, ¿verdad? pues igualmente podenos traernos su entorno. Es como un escritorio remoto pero tan solo aplicado a una aplicación, valga la redundancia.

La idea me vino pensando en como podría ser capaz de realizar una conexión de Escritorio Remoto a mi PC que ejecuta Windows Vista desde mi iPod Touch. Lo primero fue encontrar la aplicación rdesktop portada para iPhone, pero por suerte ya se había hecho. Aun así el segundo problema es de cajón. Vale, ya tenemos la aplicación y sabemos que funciona pero... está claro que necesitaríamos una interfaz gráfica para poder usar un escritorio remoto, función que por ahora no es posible. La solución pasó por usar X11 y sus propiedades para exportar la pantalla. Esto seguramente se vería mejor con un esquema del proceso:

1º. Instalación de rdesktop en el iPhone/iPod, que hará de cliente
2º. Un PC servidor con Windows preparado para permitir conexiones de Escritorio Remoto
3º. Un PC cliente que "recivirá" la pantalla a través de X11, evidentemente necesita para ello correr un servidor X11, por ejemplo una máquina Windows con Xming o MAC OS, o Unix/Linux...

Luego la aplicación se ejecutaría en nuestro dispositivo portatil, se conectaría a nuestro servidor y dado que no podemos visualizarlo en nuestro ipod por la falta de soporte, mandaríamos el visinado a un segundo PC que aceptara conexiónes X11.

No solo se puede hacer esto con escritorio remoto, sino cualquier aplicación. Está claro que la utilidad de este sistema es por ahora limitada, y tan solo se me ocurren algunos ejemplos donde podría ser útil:

Estamos en la universidad, trabajo... y usan máquinas que corren bajo MAC OS o unix o linux. De forma simple podríamos ejecutar aplicaciones que no tendríamos en la máquina de delante, o de la cual no nos fiamos. La aplicación en realidad se estaría ejecutando en nuestro dispositivo portatil, lo único que realiza el segundo PC es el visionado, usarlo a modo de terminal básicamente.

Pero bueno como digo por ahora es tan solo a modo de curiosidad. Esperemos que en un futuro podamos mejorar esta falta de soporte y se pueda usar el miso iPod/iPhone como cliente para visionar aplicaciones.

Os un ejemplo de la aplicación xeyes ejecutandose en un iPod Touch mientras que se visualiza en una máquina Windows Vista. Iba a poner unas imágenes de escritorio remoto, pero para ello necesito un segundo PC y no tengo ganas ahora de encender otro:



SDK Beta 5

Aunque puse en otra entrada que el SDK Beta 4 posiblemente sería la última beta antes del lanzamiento oficial, esto no ha sido así.

Ha sido lanzada de forma inesperada una quita beta, tanto de SDK como por supuesto de firmware. En el momento de escribir esta noticia, no se sabe nada de los cambios, y el comunicado oficial de apple tan solo hace mención acerca de actualización de la documentación y poco más. Habrá que esperar si ha habido algún otro cambio significativo de manera interna como sucedió en la beta 4, pero personalmente no creo esto. Posiblemente sea para pulir los cambios introducidos en la beta 4, pero ya veremos.

Ya queda menos para el lanzamiento oficial.

lunes, 5 de mayo de 2008

Installer 3.1

Sin demasiado bombo ni platillo han sacado una actualización nueva del Installer, 3.1




A destacar tres cosas:

1º. Como vemos en el "Acerca de..." pro una extraña razón aparece RIP Dev, recordemos que son los creadores de caterpillar, esa aplicación que cuesta un ojo de la cara... alianzas peligrosas... el dinero por el dinero. Espero que tan solo sea un patrocinador más, y veremos hasta que punto patrocina.

2º. Han añadido una opción buscar. Bueno, algo que se esperaba de mucho tiempo, tan solo tenemos que pensar en Cydia.

3º. La posibilidad de añadir un repositorio local. Esto último es una función que se ha pedido hace mucho tiempo. Nos podemos ahorrar muchisimo tiempo en subir aplicaciones a un serviodor web.

Quitando estos tres cambios más importantes, el resto es un poco ajustes: Mayor velocidad en el refresco, mejor iteracciónes y esas cosillas.

Lo que queda por ver como digo, y lo único que me inquieta es el papel de RiP Dev aquí.

Artículo: Subtlitulos: Jaque Mate (Actualizado)

Para quien haya leido la entrada sobre codificación de videos, comprendería que existen dos tipos de subtítulos. Los subtítulos llamados hardcoded y los llamados softcoded. Son muy diferentes.

Los subtítulos hardcoded se codifican en la misma pista de video. Si un video está compuesto por frames (imágenes), los subtítulos hardcoded forman parte de la misma imagen. Por lo tando este tipo de susbtítulos no se pueden habilitar o deshabilitar, y mucho menos cambiar entre diferentes pistas de subtítulos.

Los subtítulos softcoded en oposición, no forman parte de la imagen en sí del video. Son pistas diferentes a la pista de video, como lo puedan ser las pistas de audio o las pistas de capítulos. Estas se sincronizan con el video y se superponen sobre este. El resultado son subtítulos que podemos habilitar o deshabilitar a voluntad, con una apariencia mucho más suave y agradable, y además podremos alternar entre unos u otros.

Como dije en su entonces en la entrada de codificación de video, la culpa es tan solo de Apple y su manía de no hacer las cosas de forma NORMAL. MPEG-4 tiene un estandar completamente funcional para subtítulos, capítulos o pistas de audio múltiples. Pero Apple se empeña en hacer todo como a ellos les gusta. El resultado es que tenemos que llevarnos horas y horas pensando como podemos hacer cosas que a priori son más que simples. Si Apple hiciese las cosas de forma normal, tan solo sería necesario un paso. Como esto no es así, tenemos que jugar con QuickTime, editores hexadecimales...

No debería de ser complicado codificar una aplicación relativamente simple para implementar todo esto. Una aplicación que fuese: Abrir video, seleccionar pistas de audio, subtítulos, capítulos... seleccionar idimas, procesar y listo. Pero sinceramente después de las horas investigando y peleándome con QT tengo de todo menos ganas de escribir código. Quizás sea posible en cambio modificcar el código fuente de mp4box.exe y hacer una implementación rudimentaria para dar soporte. Al acabar de escribir esta entrada me pondré en contacto con Kurtnoise por si nos hace el favor a todos de implementarlo en mp4box o en Yamb.

Para quien quiera probar que todo funciona perfectamente puede ver mi viejo y querido "fragmento prueba" de todo este tiempo. Y lo advierto de nuevo, son los últimos 4 minutos del último episodio de la última temporada de Friends, luego no me lloreis si os estropeo el final:

http://rapidshare.com/files/112596021/Fin.mov.html

Sí, son archivos Mov. Es una tontería sobre extensiones. Si le ponemos extension mp4 QT no lo reconoce, si ponemos MOV lo reconoce... Apple...

Sincronizar y listo:





Antes de comenzar, será bueno tener un indice de todo el proceso. Puede que en algún momento nos liemos, pero si comprendemos el proceso, no tiene por qué ser complicado:

1º. Partir de la base de tener ya codificadas las diferentes pistas de nuestro archivo (video, audio, capítulos). Este paso se puede obtener del manual de codificación de video que se encuentra en este mismo blog. Aunque en dicho manual no estaban aun los subtítulos, con lo que algunos pasos que se dan alli se pueden saltar. Siguiendo aquel manual, lo mejor sería después de la codificación del video y del audio no mezclar ambos, y dejar ello para más adelante, cuando tengamos todos los elementos a mezclar.

2º. Obtener el archivo de subtítulos .ttxt

3º. Crearemos un archivo .MP4 para cada uno de los subtítulos, al igual que tenemos una pista de video en un archivo mp4 o dos pistas de audio en otros dos .mp4 diferentes y también haremos trampa para que QT los reconozca como pistas de texto al menos

4.º. Editaremos los archivos .mov de los subtítulos para que QT interprete las pistas de texto ttxt como pistas de subtítulos.

5º. Una vez tengamos todas las pistas elementales en .mp4 y .mov (menos los capítulos) iremos añadiendo una pista a una pista en un contenedor mov nuevo.

6º. Una vez tengamos en el contenedor .MOV todas las pistas elementales, tan solo tendremos que indicar idiomas, capítulos y demás.

Dado que apple no proporciona ninguna herramienta para incorporar subtítulos, el proceso puede ser un poco... complicado, por decirlo de alguna manera. El problema es que ni siquiera QT es capaz de marcar una pista de texto como subtítulos, por lo que debemos de hacerlo nosotros mismos. Tampoco conozco ahora mismo ningún programa que pueda hacerlo ni tengo tiempo ni motivación para crear una aplicación yo mismo.

Voy a decir paso a paso como lo tengo hecho yo, no quiere decir que no sea posible hacerlo de otra forma. En todo momento usando Windows, y aunq me odien los amantes de MAC siento decir que la versatilidad de windows frente a MAC no tiene palangón.


2º. Extracción y obtención de los subtítulos:

Antes que nada evidentemente necesitamos los subtítulos. Yo he partido de subtítulos tipo ttxt por ser el estandar, pero supongo que partiendo de subtítulos .srt tampoco habría ningún problema. Como obtenemos estos archivos de subtítulos?

Todos los DVDs. al ripearlos podemos también extraer los subtítulos. Una vez la película ha sido ripeada (y usamos ripear como acción de volcar el contenido de un DVD al PC) podríamos usar cualquier programa de extracción de subtítulos. En mi caso he seleccionado SubRip, maravillosa aplicación donde las halla para este trabajo.

Hay que comprender que los subtítulos en los DVD no son lineas de texto, sino imágenes superpuestas en el video. Por lo tando, para convertir los subtítulos de un DVD a ttxt por ejemplo es necesario un programa que sea capaz de:

1º. Extraer las imágenes de los subtítulos
2º. Realizar un OCR por la ímagen e ir interpretando caracter a caracter
3º. Convetir los datos extraidos en el archivo deseado con el formato deseado.

Como es común, lo voy a realizar con imágenes en un ejemplo real, puesto que será mucho más intuitivo a la hora de querer seguir los pasos. Como hemos dicho, partimos de que ya tenemos el DVD ripeado en el PC.

SubRip -> http://zuggy.wz.cz/redir.php?co=21

Lo primero será descomprimir/instalar el programa y abrirlo, evidentemente. El proceso será simple. Primero abriremos el encabezado de un DVD, su archivo IFO. Una vez este archivo abierto, el programa nos dirá las pistas de subtítulos encontradas, seleccionaremos la deseada y empezaremos con la extracción. Tenemos varias opciones de extracción, nosotros nos centraremos en OCR. OCR es una técnica de reconocimiento de texto a partir de imágenes.









Llegado a este punto, en cuanto le demos a "Start" comenzará el proceso OCR. Es muy simple, rápido y eficaz. Nos saldrá una ventana preguntándonos por cada caracter. Nosotros tendremos que ir escribiendo el caracter al que corresponde. Así, si nos muetra la imagen la letra B mayúscula, tendremos que introducir la letra 'B' pro el teclado. De este modo, el programa sabrá ya siempre que ese caracter será la B. Este proceso se repetirá tantas veces como caracteres diferentes haya. Es decir, una vez la letra B pro ejempplo esté procesada no nos volverá a preguntar por la misma. Esto significa que los primeros 5 minutos prácticamente los pasaremos "traduciendo" letra a letra, pero evidentemente en cuanto tengamos cada vez más caracteres identificados, el proceso se acortará enormemente. Cuando acabemos además podremos guardar el diccionario generado para ser reutilizado en otra ocasión. Esto es util por ejemplo en series en las que todos los episodios tienen la misma tipografía de subtítulos, luego los diccionarios se pueden reutilizar:




Podemos ver como el OCR nos pide que introduzcamos el caracter al que se refiere la imagen. Que evidentemente sabemos que es una B. OCR no es capaz de identificarla hasta que al menos la hayamos nosotros identificado antes una vez. Así mismo, como vemos en la imagen, las siguientes letras a ser procesasdas serán la 'u' la 't'... el programa también nos deja indicar si la letra se encuentra en negrita (bold) cursiva (italic) o subrallada (underline). Es decir, si esta B fuera en realidad una B tendríamos que marcar la casilla Italic:



Después de procesar algunas letras más, vemos que la letra 'm' (en mi ejemplo) no nos la pide más. Por qué? porque anteriormente la hemos añadido cuando nos apareción en la palabra 'more'. Es decir, cada letra la pondremos tan solo una vez, luego en el peor de los casos tendremos que hacer este proceso unas 50 veces mas o menos, 25 por cada letra minúscula y 25 por cada maýuscula, y también si hay números u otros caracteres, no solo letras.

Después de un ratito, no más de 5 minutos se puede tardar, acabaremos con toda la película:



Ahora tan solo nos quedará seleccionar el formato de salida deseado, el juego de caracteres y ajustar el tiempo, tanto de sincronización como su FPS

El formato de archivo deseado es importante, aunque hemos dicho que usaremos TTXT. El framerate permitirá una correcta sincronización, en mi ejemplo el FPS es de 25, por ello está 25 marcado. Por último normalmente no habría que realizar más ajustes, pero en mi ejemplo no es una película completa, sino son los 3 ultimos minutos de 'Friends'. Esto se debe de especificar, dado que los subtítulos tienen marcadores de tiempo estos indican que pertenecen a los minutos 42 y en adelante, sin embargo para mi deben de comenzar desde 0. Como comenzé el ripeo en el minuto 42, tan solo tengo que restarle 42 minutos a la escala de tiempo, aunque como digo esto tan solo es necesario para mi, dado que es una extracción particular, no completa:



Y es lo que hago. Primero le doy al icono del reloj, segundo marco la casilla minus y lo establezco a 42 mnutos, para que me reste ese tiempo a mis marcadores de tiempo en los subtítulos. Si vemos en la imagen anterior p incluso abajo del todo, el último marcador de tiempo, antes de realizar los ajustes pone que la última frase de los subtítulos aparecería en el minuto 45:35... sin embargo el video no tiene ni 4 minutos de longitud. De ahí la necesidad a ajustar el tiempo. Como digo esto es necesario para mi ejemplo, aunq puede ser necesario en otros proyectos.

En cuanto le demos a Corrected Time, todos los marcadores de tiempo se ajustarán perfectamente al nuevo tiempo.

Ahora podemos ver aquí los diferentes formatos de salida. Como hemos dicho vamos a usar ttxt. Podemos seleccionar tambíen el tipo de fuente e incluso el tamaño de esta. Yo lo suelo dejar por defecto, pero quien quiera puede jugar con los valores:



Al seleccionar un tipo de subtítulos u otro, veremos como nuestra ventana cambia y se adapta al nuevo formato sin problema alguno. Una vez terminemos los ajustes, tan solo tendremos que darle a salvar (el icono del disco). La ventana que se nos mostrará será mu similar, solo que nos pedirá por última vez la letra, el tamaño y la codificación. Por defecto podemos usar Latin I ANSI, que es un juego de caracteres muy usado. Pero tener en cuenta que dependiendo del pais, del idioma... puede ser necesario usar otros sistemas de codificación. Por ejemplo con este juego de caracteres sería imposible tener subtítulos en Japones. Para ello sería necesario usar a lo mejor UNICODE. Cuando acabemos guardaremos el archivo .ttxt donde deseemos. Al cerrar la aplicación nos permitirá si queremos tambien guardar el diccionario generado por OCR como hemos dicho anteriormente.

Ya tenemos generado nuestro archivo de subtítulos. Esta parte en realidad no pertenece a un manual de iPhone o iPod, sino más bien a edición de video. Pero como creo que la mayoría no lo sabía espero que les haya servido. Los problemas en realidad comienzan ahora.


3º. Creación de archivos .MP4 a partir de las pistas .ttxt

Dado que QT a priori no reconoce las pistas ttxt ni siquiera como pistas de texto nos tendremos que apañar con alguna utilidad para hacerlo. Yo soy fan de mp4box.exe Para quienes no les guste la linea de comando que use Yamb.

Ahora bien, la teoría dice que usando yamb por ejemplo, bastaría con crear un archivo mp4 nuevo que incluyese las 6 pistas. Eso sería suficiente para tener un archivo mP4 completamente funcional para el estandar MPEG4. Pero como hemos dicho Apple no hace las cosas tan así. Apple es bastante más estricto, y haciendo eso podemos encontrarnos con algunos problemas. Así que podemos hacer algo similar pero con QT, aunque la mayoría del trabajo podemos hacerlo como he dicho con yamb. (exceptuando la pista de subtítulos). Apple además de modificar ligeramente el formato del contenedor, también tiene una denominación diferente para los identificadores de idiomas, por eso para lo que QT dice que es español, para cualquier otro reproductor dice que es algun idima raro. Pero no nos liemos y continuemos.

Dado que QT no es capaz a priori de leer un archivo .ttxt, la forma más facil es partir de un archivo MP4 que tan solo contenga una pista .ttxt, y esto si es muy facil hacerlo. Desde Yamb o incluso megui podemos hacerlo.

Desde Yamb:


Seleccionamos Creation, Click to create... añadimos tan solo la pista ttxt a la lista, le damos a next y listo. Haciendo esto tendremos ya la pista .ttxt como .mp4 en realidad, de este modo QT sí que la reconocerá (aunque por ahora tan solo como pista de texto y no como pista de subtítulo)




Al darle a Next tendremos creado nuestro archivo VTS_01_0_spanish.mp4 que contendrá tan solo nuestra pista de subtítulos.

Realizaremos el proceso de nuevo si tenemos más de una pista de subtítulos.

Paradógicamente si abriésemos estos archivos desde QT, este nos diría que están vacios, que no tienen ninguna pista de ningún tipo dentro. Pero lo más gracioso aun, es que si renombramos estos archivos .mp4 recien creados a .m4v QT inmediatamente nos reconocerá los archivos y es más, es capaz de reproducirnos la pista de subtítulos, aunque no la reconocerá como tal.

Pues dicho y hecho, lo hacemos. Renombramos los dos archivos de subtítulos (en mi caso son dos) a .m4v. Abrimos el primero con QT, y veremos un recuadro blanco. Tal y como está todo, tan solo le damos a "Guardar como..." archivo nuevo .MOV. Esto hará que nuestro archivo .mp4 (m4v) se guarde con las etiquetas correctas de apple.

Luego con yamb obtenemos los archivos .mp4, los renombramos a .m4v para que los reconozca QT y a continuación los guardamos con QT en formato .mov.

Llegados a este punto ya tendremos preparadas las pistas de subtítulos al menos como pistas de texto. Esto lo podemos comprobar si desde QT hacemos clic en "Mostrar propiedades de la película", nos aparecerá nuestra pista de texto.


4º. Modificación de los archivos .mov para que QT reconozca las pistas de texto como pistas de subtítulos.

Otra cosa absurda de QT o de Apple, según se mire, es que no es posible marcar una pista como pista de subtítulos. No sé sinceramente si Apple venderá algun programa caro de autoría de DVDs, pero desde luego no pone las cosas muy fáciles que digamos. Más absuro aun es el identificador que hace que la pista sea reconocida como subtítulo en vez de como pista de datos.

Los archivos .MP4 o .MOV Que a fin de cuentas son casi iguales, están estructurados en identificadores llamados ATOMS. Estas partículas o átomos señalan y separan cada bloque de estos archivos, identificando si son pistas de audio, de video, subtítulos, que idiomas, donde empieza una y donde acaban... pues todo el problema de los subtítulos se basa básicamente en un ATOM.

QT es capaz de reconocer un ATOM de subtítulo estandar y lo reproduce, pero internamente no lo marca como subtítulo. Como explicarlo... es capaz de reconocerlo y reproducirlo en pantalla, pero no lo asimila como tal. Para que QT reconozca como legítima una pista de subtítulos, esta tiene que estar precedida por el ATOM 'sbtl'. Este ATOM no es que sea nuevo, también existe en el estandar, pero no se usa de la misma forma.

Así pues, QT reconocerá a este punto las pistas como pistas de texto. Ellas tienen un ATOM de 'text' (los atoms tienen 4 letras). Si editamos bien sea con un editor hexadecimal o un editor de atoms esto, de forma mágica QT reconocerá en vez de la pista de texto, una pista de subtítulos. Yo soy fan de los editores hexadecimales, son la herramienta imprescindible ;), así que lo muestro con ello. Ya sé que para la mayoría no será práctico realizar todo esto, aunque supongo que para otros muchos sí. Pero como he dicho, hasta la fecha no hay ningún programa que lo haga de forma automatizada, y como he dicho no tengo ni ganas ni motivación para ponerme ahora a escribir código. Si alguien se anima que lo haga, no es complicado.

Abrimos en un editor hexadecimal el 1º archivo .mov. Con cualquier editor hexadecimal podemos buscar una cadena de texto, así pues buscamos por "text". Es la primera que nos encontramos:



Si modificamos ese 'text' como hemos dicho por 'sbtl':



tendremos suficiente.

Creo que apple tiene por ahí un programa llamado Dumper o algo así que permite la edición de atoms, se puede hacer perfectamente desde él también.

Una vez modificado, guardamos el archivo y listo. Haremos lo mismo para cada archivo de subtítulo que tengamos.

Llegados a este punto, si abrimos el archivo .mov modificado co QT, por arte de magia la pista ya no es una pista de texto, sino de subtítulo. Si le damos igualmente a play, veremos como el texto aparece perfectamente.


5º. Creación de un .MOV con todas las pistas juntas.

Bueno, ya lo que queda es tan solo ensamblar. Llegados a este punto tendremos (en mi ejemplo)

1 pista de video .mp4
2 pistas de audio .mp4
2 pistas de subtítulos .mov
1 pista de capítulos .txt

Abrimos en primer lugar la pista de video en un QT y las dos pistas de audio en otros dos QT, un total de 3 QT abiertos de manera simultanea. El proceso ahora será el mismo para todo:

Vamos a la ventana de QT con la pista de audio en español (por ejemplo). Editar, seleccionar todo, copiar. Vamos a la ventana de QT co la pista de Video. Editar, seleccionar todo, añadir a la película y escalar. Esto nos añadira la pista de audio español a nuestra pista de video. Si reproducimos escucharemos el audio perfectamente.

Vamos a la ventana de QT de la pista de audio en ingles y repetimos el proceso. Vamos a la ventana de QT con la pista de Video y Audio español, seleccionar todo, añadir y escalar. Esto nos añadirá la segunda pista de audio.

Como tan solo hemos añadido, si reproducimos ahora se solaparán ambas pistas. Podemos ir haciendolo poco a poco y entrar en "mostrar propiedades de la película" y poner los idiomas y ajustar estas cosillas o hacerlo todo después una vez tengamos todas las pistas añadidas. Para no repetirlo todo, yo opto por esta segunda opción.

Cerramos las dos ventanas de QT con las pistas de audio y abrimos otras dos ventanas con las pistas de subtítulos.

Igual que hemos realizado antes. Vamos a la ventana de QT con la pista de subtítulo en ingles, seleccionar todo, copiar. Vamos a la vetana de QT con nusetra pista de video + 2 de audio, seleccionar todo, añadir y escalar. Realizamos el mismo proceso con la otra ventana de QT con los subtítulos en español.

Llegados a este punto, en la ventana de QT principal tendremos ya añadido la pista de video, 2 de audio y 2 de subtítulos.

Para acabar añadimos de la misma forma la pista de capítulos.


6º. Ajustanto las diferentes pistas

Una vez tengamos todas las pistas en la misma ventana de QT, ahora lo único que queda es ajustar las propiedades. Vamos a "mostrar propiedades de la película"

Aquí podremos ver cada una de las pistas añadidas, en total 6 en mi caso. Ahora queda ajustar algunas cosas.

Seleccionamos la primera pista de audio, que será la pista de audio en español. Vamos a otros Ajustes y establecemos el idioma. En alternativo pondremos la segunda pista de audio, de este modo cuando seleccionemos una se deseleccionará la otra.

Seleccionamos la segunda pista de audio, que será la pista de audio en inglés. Otros ajustes, y establecemos de nuevo el idioma. Veremos que en alternativa ya está seleccionada la pista de audio primera. Al establecerlo esto en la 1º pista, se establece en la alternativa tb.

A continuación hacemos exactamente lo mismo para las pistas de subtítulos.

Por último queda la pista de capítulos. Esta se trata de manera u pelin diferente. En esta ocasión marcamos la pista de video, Otros Ajustes, y en capítulos marcamos la pista de texto que resta. Hay que acordarse de desactivar la pista capítulos, para que no nos muetre constantemente el capítulo en el que estamos al reproducir el video:

Y se acabó. Cerramos, Guardar Como... Película MOV independiente. Cerramos el video, lo abrimos y listo. tendremos un bonito MOV creado con diferentes pistas de subtítulos, de audio y con capítulos.




----------------------------------------------------------------
----------------------------------------------------------------

Zibri se aburre

El creador de Ziphone, la primera utilidad que tuvimos la mayoría de nosotros para poder realizar JB y desbloquear los iphone, está aburrido, así ha señalado en su blog.

Esta vez ha costado un poco más (una semana) en salir soporte para la beta 4 de la firmware. Por cierto, la beta 4 será la última beta, la próxima versión será la oficial. Dado que la fecha de caducidad de la beta 4 está establecido para el día 4 de Junio, fecha que casualmente coincide con el lanzamiento del iPhone 3G, es más que probable que esta sea la fecha de salida de la firmware 2.0.

Esto es bueno y malo. Es bueno porque de cumplirse los tiempos, tendremos la versión 2.0 lista antes de lo que se esperaba. Por otro lado es malo, puesto que si la beta 4 será la última versión beta es casi seguro que no aparezcan más aplicaciones ni funciones añadidas a lo que ya tenemos en la beta 4. Es decir, no copy/paste, no MMS para iphone etc.

La actualización 2.0 más que nada tiene dos objetivos. El primero es acercarse al mundo empresarial, con soporte para WPA enterprise y Exchange. El segundo es intentar asegurar el iPhone para evitar el pirateo y esas cosillas...

Como ya dijimos la firmware 2.0 beta 4 ya viene con un nuevo algoritmo de encriptación y medidas de seguridad. Aun así, zibri ha confirmado que ya ha rebentado todo el sistema. Así mismo dice de todos modos que la salida de la firmware 2.0 vendrá acompañada de una obligada actualización de iTunes, las bibliotecas encargadas en el reconocimiento del dispositivo, de la carga de firmware y demás es completamente diferente, luego ziphone se debe de reescribir para ser compatible con la versión de iTunes que presumiblemente saldrá también para esas fechas. Así el futuro Ziphone 4.0 ó 3.5 ó... tardará un poco en salir, no lo tendremos al día siguiente, pero supongo que podremos esperar.

Es una suerte tener dos sistemas completamente diferentes y a dos grupos completamente independientes trabajando duro.

Sobre la posible liberación de los iphone 3G no se puede decir aun nada. Dado que el 90% será todo igual, es de suponer que el JB será el mismo y que el desbloqueo sea muy similar sino igual. Recordemos que seguramente lo único diferente es el chip que gestiona el teléfono. Pero para ello habrá que esperar aun al lanzamiento del iPhone 3G.

Un saludo.

WinPwn 0.99.2.8 Beta

La segunda beta de Winpwn ha sido liberada hace un ratito.

Son muchos los cambios que se han realizado. Por fin se ha abandonado el uso del emulador QEMU, luego la creación de imágenes será muchisimo más rapida. Por otro lado se han quitado muchas de las limitaciones que teniía la primera beta, así como soporte para las versiones firmwares betas. Es posible también usar payload personalizados, es decir, crear firmwares personalizables que contengan las aplicaciones por defectos que deseamos. En realidad es mucho tiempo el que uno puede ahorrarse al crearse imágenes de este tipo. Podemos preparar nuestra imagen con Cydia preinstalado, OpenSSH o muchas otras cosillas básicas.

Está muy bien la nueva interfaz, y de una manera simple y sin saber mucho rapidamente construimos la firmware que deseemos. Podemos así mismo añadir repositorios a Winpwn y desde él seleccionar las aplicaciones que deseamos instalar. Muy completo. Además nos detectará automáticamente que firware estamos cargando, así sea de iPod Touch o de iPhone, una versión 2.0 beta o la oficial 1.1.4

Lo bueno de este sistema es que es complicado por parte de Apple tirarlo abajo. Con el bootloader parcheado, una vez se obtengan las key de las imágenes de disco y RAM Disk versión nueva JB. Otra cosa será más adelante el tema del firmado de aplicaciones. Por ejemplo, ahora mismo el Installer no funciona en la versión beta 4, así como la gran mayoría de todas las aplicaciones, puesto que el toolchain ha sido completamente rediseñado para trabajar tan solo con el SDK.

Todo esto es teórico por supuesto, y en la práctica seguramente (y con suerte) en cuanto se libere de forma oficial la version 2.0 tengamos acceso igual de rápido a ella y tendremos nuestro querido Installer dentro también:





 
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.