jueves, 27 de octubre de 2011

zXing - Añadirlo a tu proyecto de Android

La base del tutorial la he sacado de aquí, aunque me surgieron algunos problemas más que no están comentados en ese, así que me he animado a hacer este.

Lo que se explica aquí esta probado para la revisión 2099 e inferiores del proyecto zXing, para versiones posteriores desconozco si funciona.

Obtener zXing

Puedes bájarte directamente (password zxing) el proyecto configurado (revisión del repositorio 2099 y el SDK con android 4.0).

Este proyecto tiene las mejoras de cambiar tamaño rectángulo cámara (simular cuadrado para QR), eliminar botón de menús y eliminar texto de estado para modo portrait, no elimina la pregunta de que aplicación usar. Bajalo desde la siguiente dirección, tendrás que importarlo desde eclipse creando un nuevo proyecto android desde un existing source.

http://www.hidelinks.com/?ghvw4k7r2q

Link alternativo

Y ve directamente a la sección de enlazar zXing con tu aplicación.

O sigue las siguientes instrucciones:

Como dice el tutorial anterior, lo primero es obtener el /core y /android del proyecto zXing, que son los que nos harán falta para usarlos en nuestra aplicación, para ello los descargamos desde el repositorio de svn de google code, tal y como explique en el anterior tutorial sobre la configuración de la librería.

Configuración como librería

Ahora bien, la cosa está en que necesitamos meter la parte de /android como un proyecto dentro de nuestro eclipse, y de la manera que explicamos antes no ocurre eso, sino que lo tenemos to ahí apegotonao en un proyecto llamado svn, pero podemos aprovecharlo! ¿Cómo? Muy fácil, copiando el proyecto de /android desde el explorador de Windows a otra carpeta, para tenerlo separado.

Una vez hecho eso, nos vamos al eclipse y elegimos crear un nuevo proyecto de android, escribimos en el nombre zXing por ejemplo, y elegimos la opción de crearlo desde un existing source y finish.
La cruz roja no os debería salir xD
Ahora con el proyecto creado pinchamos con botón derecho y elegimos team>disconnect y yes, para que nos limpie todo el tema de svn, que no nos interesa tenerlo molestando. Si no os da la opción de disconnect mejor, no teneis que hacer este paso xD.

Aparcamos nuestro proyecto eclipse recién creado y nos vamos a compilar el /core, para ello podemos hacer lo mismo que expliqué en el manual anterior de configuración, navegamos hasta la ruta del core y ant clean build-no-debug, o ant build export para versiones recientes y así tendremos nuestro core.jar.

A continuación nos vamos a configurar el build-path (pincha encima del proyecto con botón derecho>build path>configure build path)y le damos a añadir external jars y metemos el core.jar que acabamos de compilar.


Ahora pinchamos con botón derecho en el proyecto>propiedades>android y marcamos el checkbox de abajo que pone Is library. Porque vamos a usar nuestro proyecto como una librería.


Tras este paso, si no os da estos problemas, sois afortunados, porque a mi si que me los dio!

Solución algunos problemas

Primero, una opción en el manifest del proyecto, la de android:xlargeScreens="true", no sé porque me petaba el proyecto (por algo del SDK 2.2), así que coméntala si es necesario para que no de por culo.


Ahí no acaba la cosa, ahora tendrás un error al haber convertido el proyecto en librería, los cases de los switchs te darán error, ¿Por qué? Por esto, para arreglarlo situa el ratón encima de cada switch (thx zoack xd), y pulsa control+1, y elige la opción de convertir los switchs en ifs, y esto estará listo.

Añado un aporte que Juan Carlos hizo en los comentarios, si tras esto algunos @overrides te dan errores, prueba a bajar la versión de JDK a la 1.6.

Si te sigue dando algún error, elige Project>clean para que regenere el R.java y ya debería funcionar!

Enlazar zXing con tu proyecto

Hemos acabado de configurar la librería, ahora nos vamos a configurar nuestro proyecto de aplicación, asi que botón derecho>propiedades>android y abajo del todo elegimos la opción de add y debería aparecer nuestra librería zXing recién creada, la añadimos.

EDITO: Si no quieres importar la librería de esta manera, puedes hacer uso del archivo zxing.jar que te crea eclipse al compilarla, e importarlo como hacemos con el core.jar, con la opción de add externals jars, el zxing.jar lo encontraras en la carpeta /bin del proyecto zXing de eclipse.
Además también tenemos que añadir el core.jar al build-path, como hicimos con el proyecto de la librería zXing.

(Si has saltado a este paso directamente y estas usando mi proyecto subido, asegúrate de que en el proyecto de la librería zXing está el core.jar en el build-path y que en la sección de android esta marcado como Is Library )

Ahora en tu aplicación, que tu botón lance esto:

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);

Y el siguiente método para obtener los resultados desde la misma activity:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
   if (requestCode == 0) {
      if (resultCode == RESULT_OK) {
         String contents = intent.getStringExtra("SCAN_RESULT");
         String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
         // Handle successful scan
      } else if (resultCode == RESULT_CANCELED) {
         // Handle cancel
      }
   }
}

Por ultimo tenemos que añadir en el manifest de tu aplicación la información sobre el SCAN de zXing, asi que pega esto:

<activity
            android:clearTaskOnLaunch="true"
            android:stateNotNeeded="true"
            android:configChanges="orientation|keyboardHidden"
            android:name="com.google.zxing.client.android.CaptureActivity"
            android:screenOrientation="landscape"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter >
                <action android:name="com.google.zxing.client.android.SCAN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
</activity>

Por último dale permisos a tu aplicación para usar la cámara con esto:
<uses-permission android:name="android.permission.CAMERA"></uses-permission>

Prueba a añadir también lo siguiente si la cámara te da problemas, no se abre, se cierra con error, etc, las primeras veces que lo use no me resulto necesario, pero la última vez que lo probé, con esto se me arreglaron los problemas.

<uses-feature android:name="android.hardware.camera" />
    <uses-feature
        android:name="android.hardware.camera.autofocus"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="8" />

Bien, con esto ya lo tendrás funcionando pero hay 3 cosas que aún se pueden mejorar.

Mejoras extra

Primero, cuando pulses el botón de menú dentro del scanner, te aparece un menú de opciones, el cual si pulsas alguna opción petará, además el nombre de la aplicación del scanner sobreescribirá el tuyo, y por último cada vez que pulses el botón se te dará la opción de que aplicación usar para escanear el código, resultando un tanto molesto ¿Como arreglar estos problemas?

Para lo del menú, tan fácil como irnos al CaptureActivity.java del paquete com.google.zxing.cient.android y comentar 3 métodos, el onCreateOptionsMenu(Menu menu), el onPrepareOptionsMenu(Menu menu) y el onOptionsItemSelected(MenuItem item), con eso eliminaremos la función de menú.

Para lo del nombre, nos vamos a res/values/ y para los strings.xml cambiamos el string app_name por el de nuestra aplicación, eso deberíamos hacerlo para todas las carpetas values-xx, o borralas todas y dejar solo la de values..., según la gana que tengas xD.

Edito:

En principio la idea de tener varias values-xx, es para personalizar los distintos strings.xml en función del idioma del dispositivo, pero si solo quieres el nombre de tu aplicación o no te interesa traducir los textos a distintos idiomas, basta con tener tu values/strings.xml.

En la librería zXing sí usan este sistema de traducción, así que si quieres mantener tu nombre de aplicación para un dispositivo en español por ejemplo, tendrías que modificar el strings.xml de la values por defecto, y la de la values-es, pero si el dispositivo esta en inglés te seguiría saliendo lo de Barcode Scanner, por que pillaría el values-en/strings.xml.

Conclusión, si quieres que se mantenga para todas tienes 2 opciones, o borras todas las values-xx, como mencionó arriba, o modificas individualmente cada app_name de cada xml.

La ventaja de la primera, más rapidez, pero si usas algo más de librería zXing que pille un string del strings.xml, solo saldrá el que tengas (que por defecto es inglés), así que tu decides.

Para lo tercero tenemos que modificar 3 archivos, primero el Intents.java de com.google.zxing.client.android, cambiando el String ACTION de Scan com.google.zxing.client.android.SCAN a la de tu proyecto, por ejemplo, si tu proyecto esta en com.pepino.prueba, tendrás que ponerlo como com.pepino.prueba.SCAN, este mismo cambio hay que hacerlo en el nombre del intent-filter ACTION del manifest.xml de la librería de zXing y también en el de tu proyecto, NO CAMBIAR el nombre de la actividad asociada en el android:name. Y por supuesto ahora cuando llames al Intent de scaneo debes hacerlo con tu nuevo ACTION, es decir, com.pepino.prueba.SCAN.

Por cierto, si vais a leer códigos qr, quizás os interese modificar en com.google.zxing.client.android.camera la actividad CameraManager.java, el método getFramingRect(), la línea de:

int width = screenResolution.x * 3 / 4;

cambiando el 3 por un 2, así conseguiremos que el rectángulo que se forma para reconocer los códigos parezca más un cuadrado xD, un tanto cutre pero funciona.

Otra mejora interesante para los QRadictos, por defecto el layout de la cámara del zXing está hecho para que se use en modo landscape, pero si queremos por ejemplo leer solo códigos QR (como es mi caso), puede que nos interese ponerlo en modo portrait.

Tras investigar por la librería no encontré una manera rápida de hacer esto (por lo que tuve viendo requeriría bastante curro, si alguien encuentra una forma fácil que lo comente!), así que se me ocurrió a probar a leer un código directamente poniendo el móvil en forma portrait, aunque el layout sigue siendo landscape y... funciona igual!

Así que el único problema que tenía era el texto de estado que aparece a la izquierda, pero por suerte android tiene un setVisibility(), así que tan fácil como irnos al CaptureActivity.java, al método onCreate(Bundle icicle) y añadir justo debajo de la línea:

statusView = (TextView) findViewById(R.id.status_view);

la siguiente:

statusView.setVisibility(View.INVISIBLE);

Para la revisión 2099 y probablemente posteriores, esta línea hay que añadirla modificando el método resetStatusView(), donde pone a Visible el statusView, ponerlo a INVISIBLE, y listo.

En el método onCreate comenta la línea siguiente para evitar que lance la ayuda.

showHelpOnFirstLaunch();

Si queréis cambiarle el sonido al "obturador" de la cámara, para ello nos vamos al BeepManager.java al método buildMediaPlayer(Context activity) a la línea de :

AssetFileDescriptor file = activity.getResources().openRawResourceFd(R.raw.beep);//beep original 

Y cambiamos el R.raw.beep por nuestro sonido, que tenemos que haber puesto previamente en el directorio raw, y accedemos a él con R.raw.nombre, así de fácil tendremos nuestro sonido custom!

Errores Comunes

E/AndroidRuntime(848): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.google.zxing.client.android.SCAN

Estas lanzando el Intent del scanner con un nombre de ACTION incorrecto, que no se corresponde con el que aparece en el manifest de tu proyecto, en el de la librería zXing o en el de la clase Intents.java . Dicho ACTION debe ser igual en todos los sitios. Por defecto es "com.google.zxing.client.android.SCAN"

E/AndroidRuntime(946): java.lang.VerifyError: com.google.zxing.client.android.CaptureActivity

El core.jar que has importado al proyecto de tu aplicación no se corresponde con la versión de la librería zXing.

E/AndroidRuntime(1214): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.android.prueba/LINEAMODIFICADA.CaptureActivity}: java.lang.ClassNotFoundException: LINEAMODIFACADA.CaptureActivity in loader dalvik.system.PathClassLoader[/data/app/com.android.prueba-1.apk]

La línea del manifest de tu proyecto que indica que clase esta asociada al intent action que lanzas no esta bien configurada, debe ser esta: android:name="com.google.zxing.client.android.CaptureActivity". En el ejemplo de arriba el error sería LINEAMODIFICADA.

class-not-found-when-using-zxingz

Usando la tercera solución de este link, el compañero Rafa consiguió arreglarlo:
http://stackoverflow.com/questions/11959091/class-not-found-when-using-zxing
Explicación en ingles:
Your jar is not in the /libs folder. This happens when you have added the jar to the build path, but newer versions of ADT need it to be in /libs. Put it there and re-add it to the build path.

Un saludo!

domingo, 23 de octubre de 2011

zXing - Librería Java para procesado de códigos 1D/2D

Si queréis trastear con códigos de este tipo, por lo que llevo visto esta librería esta bastante bien.

zXing - Zebra Crossing
Obtener librería zXing

Para bajarse el código de la librería, lo mejor es hacerlo a través del repositorio svn de google code del proyecto, usando un cliente como Subversive desde Eclipse, si no sabéis lo que es y demás, consultad este tutorial que hice para instalarlo y configurarlo.

Hay que crear un nuevo repositorio a través de la vista de repositorios pinchando en el cilindro con el + verde y añadir de URL la siguiente dirección http://zxing.googlecode.com/svn/.

Si no tienes activa la vista de repositorios, Window>Show View>Other>Svn>SVN Repositories.

Arriba a la derecha el botón de añadir repositorio

Ahora nos saldrá el repositorio en la vista de repositorios y tenemos que pinchar con el botón derecho en él y hacer un check out, así nos bajará todo el código en un nuevo proyecto que se llamará svn.




EDITO src=Zoack xD: Con esta forma te bajas todo el proyecto completo, si quieres uno concreto, puedes acceder al trunk desde la vista de repositorios y bajarte de ahí el proyecto que quieras, en plan individual, o usando el asistente del eclipse con la opción de import>SVN>Project from SVN y eligiendo el repositorio y proyecto que te interese.

Obtener Proguard y Ant

Para compilar el código en android, hace falta bajarse 2 cosas: proguard y ant, ambas se usan desde la linea de comandos. La primera sirve para hacer más eficiente el código y la segunda para compilar proyectos java. La ventaja de usar ant como herramienta para scripts de compilación es que es multiplataforma, con lo que no tenemos que tener distintos archivos de compilación segun el SO en el que estemos.

Antes de nada, ant lo lleva el eclipse como plugin, el problema es que mi versión de eclipse usa la version 1.7.1 de ant, y para compilar lo de android se necesita la 1.8.0 o superior, por eso tuve que bajarmelo aparte.

Vista de Ant desde eclipse
Fallo de compilación por la versión 1.7.1
Descomprimis ambos programas y para usarlos hay que modificar algunas variables de entorno y archivos de la librería.

Configuración

En el proyecto svn del eclipse, en la carpeta trunk, buscad un archivo que se llama build.properties, ahí dentro hay que decirle donde tenemos instalado el proguard (la ruta del proguard.jar, que estará en la carpeta lib) y el SDK de android.

build.properties configurado
Las variables de entorno que hay que modificar/crear son, JAVA_HOME, ANT_HOME, CLASSPATH y el path.

Desde la configuración avanzada del equipo en windows 7, pinchando en variables de entorno y luego en el cuadro de abajo de Variables del sistema podremos hacerlo.

En la primera se pone la ruta del directorio donde este instalado el jdk, por ejemplo C:\JAVA\JDKS\jdk1.6.0_21.

La segunda igual pero donde se haya descomprimido el ant, por ejemplo: C:\JAVA\JDKS\apache-ant-1.8.2

En la tercera hay que dejarla vacia, poner solamente un ;  y listo.

Editando variables de entorno
Y en el path hay que añadir las 2 rutas de las carpetas bin (se ponen separado por un ; cada una), que serán algo asi:

C:\JAVA\JDKS\jdk1.6.0_21\bin

C:\JAVA\JDKS\apache-ant-1.8.2\bin

Con eso ya deberíamos poder compilar el código del proyecto que queramos.

Compilando y probando código

La librería zXing esta para muchos lenguajes, que si ActionScript, c++, ruby, etc... Nosotros vamos a probar la aplicación de línea de comandos CommandLineRunner, para equipos de sobremesa, que acepta una imagen/url y te la decodifica.

Para hacerlo, primero necesitamos compilar el core, así que nos vamos al cmd de windows y navegamos hasta la ruta del proyecto svn de eclipse y accedemos a la carpeta core, donde aparezca el archivo build.xml (usad el comando dir para verlo), este archivo lo usa ant para compilar, aseguraos que estáis en la ruta correcta porque sino compilareis otra cosa, ya que cada carpetilla tie su build.xml de compilación.

Para compilar ejecuta en la consola:

ant clean build-no-debug

Edito: Para compilar el core a fecha 30/12/2011 rev2098  hay que hacer un:
ant build export


Así compilarás sin información de debug para que no existan problemas de incompatibilidad con android, aunque ahora mismo para la aplicación de línea de comandos no es necesario, con lo que bastaría un simple ant en consola, pero así no tienes que compilarlo luego otra vez si quieres hacer algo con android.

A continuación nos vamos a la carpeta javase y hacemos lo mismo pero solo escribimos ant, sin parámetros. Y finalmente subimos de directorio para estar en el trunk y ejecutamos la aplicación:

cd ..
java -cp javase\javase.jar;core\core.jar com.google.zxing.client.j2se.CommandLineRunner  http://upload.wikimedia.org/wikipedia/commons/3/3d/QRc%C3%B3digo_portada_wikipedia_espa%C3%B1ol_.png


Deberíamos obtener un resultado similar a este:


Otra de las opciones de la librería es una aplicación de ejemplo de android para desarrolladores, la podemos compilar tambien usando ant la encontrareis en la carpeta androidtest. Así obtendreis el .apk para instalar en el emulador/móvil, aunque también la podeis bajar directamente desde aquí, llamada ZXingTest1.12.apk. Próximamente explicaré como es para instalar en tu móvil un .apk.

También en la carpeta android-integration, tenemos unas clases para usar la librería desde una aplicación externa, sin más que implementar un botón en nuestra aplicación, que llama a la aplicación de zXing, pero ello hace que se necesite tener instalada dicha aplicación en el dispositivo, lo que la hace una solución fácil pero cutre xD.

Por ahora esto es todo, próximamente más información sobre esta librería y algún ejemplo en android (cuando sepa usarla xD).

Un saludo!

jueves, 20 de octubre de 2011

Instalar y configurar cliente Subversive en Eclipse con Google Code

Antes que nada, estos pasos sirven tambien para la version Indigo de Eclipse, tan solo cambiar donde se vea helios por Indigo y listo xD.

Para instalar este útil plugin para Eclipse Helios de Subversion sigue los siguientes pasos.

Instalar Plugin Subversive

En el menu principal de eclipse elige Help>Install New Software y aparecerá el cuadro de dialogo para instalar nuevo software.


En el cuadro que pone Work with elige Helios - http://download.eclipse.org/releases/helios. Una lista de paquetes de software aparecerá.


Expande el nodo de Collaboration.


Busca y marca la casilla de Subversive Team Provider (incubation) y dale a siguiente.


Click next otra vez, acepta la licencia y click Finish. Subversive se descargará y se instalará.


Ahora reinicia el eclipse pa asegurar que to rule bien.

Instalar Subversive SVN Connectors

Con esto tenemos instalado el cliente de subversive, pero aparte necesitamos los SVN Connectors, así que copia y pega este enlace en el cuadro de Work with: http://community.polarion.com/projects/subversive/download/eclipse/2.0/helios-site/


Expande los Subversive SVN Connectors, elige la casilla de Subversive SVN Connectors y además alguno de los que estan marcados como opcional. ¿Y cual elijo?


Las diferencia entre los que aparecen, SVNKit y JavaHL las podeis ver aquí. Basicamente SVNKit está hecho puramente en Java y los JavaHL son nativos de cada SO, prueba a elegir los de Win32 si es tu SO, sino con los de SVNKit debería funcionar.

Y haz igual que antes, next, next, acepta la licencia y reinicia el Eclipse.

Con esto ya tendrías instalado lo que necesitas para poder usar repositorios SVN, (como el de la librería zXing, neuroph, etc) o porque no... el tuyo propio!!!

La siguiente parte muestra como crear un repositorio propio usando Google Code y configurar subversive para usarlo, ésto solo necesitas hacerlo si estas interesado en publicar tu código o simplemente disfrutar de las ventajas de programar teniendo por debajo SVN! xD

Crear repositorio en Google Code

Ahora para usarlo, necesitas un servidor de subversion, como no, google tiene uno, el proyecto google code te da soporte para control de versiones, y para usarlo tan solo necesitas una cuenta de google, para ello vete a la página de google code, logueate con tu cuenta de gmail y usa el siguiente enlace para crear el proyecto. Lo importante es que elijas subversion como tipo de control de versiones.


Una vez creado nos vamos al proyecto, elegimos la pestaña source y debajo de Command Line-Acces le damos al enlace de When prompted, enter your generated googlecode.com password, la contraseña que aparecerá en negrita será la que hay que utilizar para poder trabajar con el proyecto.


Configurar Subversive para usar el repositorio creado

Una vez que tenemos ya el repositorio, tenemos que acceder a él desde eclipse usando Subversive, y meter algún proyecto de eclipse, para ello creamos uno y cuando este creado, pinchamos con botón derecho encima de él en el explorador de paquetes, y Team>share project>SVN .


Nos saldrá una lista de repositorios (si ya tenemos alguno) sino, tendremos que configurar una nuevo (el de google code que acabamos de crear).


En la ventana que aparecerá rellenamos como se ve en la imagen, teniendo en cuenta que nuestro proyecto se llame pericoproject y la cuenta sea perico@gmail.com, (la password es la que hemos comentado anteriormente), estos datos son simplemente los que aparecen en la imagen anterior de Command Line-Acces.

Ahora pulsa next y aparecerá la siguiente ventana, donde configurar el layout del repositorio, si tienes pensado usar un solo proyecto de eclipse elige Use single project layout , si piensas crear varios déjalo tal cual aparece.

Además, te creará la estructura típica de Subversion, trunk, branches y tags. La idea de estas 3 carpetas es dividir cada desarrollo del proyecto, en trunk esta la principal, en branches las posibles "desviaciones", versiones alternativas del proyecto, y en tags las versiones "finales" que se vayan sacando.


Para acabar pulsa finish y se configurará automáticamente, subiendo el proyecto al repositorio, apareciendo en el logo del projecto una especie de cilindro y un número (la versión actual de desarrollo), y cuando pulses sobre él con el botón derecho>team, te aparecerán una pexa de opciones.


Las principales son las de commit y update, con commit subes tu versión al servidor y con update te bajas del servidor lo nuevo que exista.

Bueno esto es todo por ahora, si quereis más info sobre Subversion y como trabajar con él... google tiene la respuesta!

Un saludo.

miércoles, 19 de octubre de 2011

Qué IDE usar para trabajar con Prolog

Prolog, ese gran enemigo! La programación declarativa puede ser muy puñetera... tendremos que hacerla más amena, y que mejor que mediante un IDE con sesera! (Rima?¿? wtf)

Un poco feo el logo :O
Después de investigar un tiempo por fin encontré el que usé hace unos años, SWI-Prolog-Editor, si bien no es tan completo como otros que he visto, en mi caso es suficiente para hacer cuatro perrerías.

¿Cómo conseguirlo? Mu fácil, tenemos que bajarnos el SWI-Prolog en sí, y lego el editor, usad estos 2 enlaces y listo:

SWI-Prolog - Elegid vuestra versión y donwload.

Editor - Extraes e instalas.

Con esas 2 cosas ya podréis empezar a poner predicados, hechos y to la pesca de la programación lógica.

Por cierto, también hay un plugin para Eclipse, este no lo he probado aunque parece que tiene buena pinta.

Además también hay un visual prolog! Podéis echarle un vistazo por aquí, lo tengo instalao pero no creo que dure mucho xD.

En un futuro corto/medio quizás complete esto con algo de programación lógica, que aunque es puñetera , también es bastante interesante.

Na más, Un saludo!

jueves, 13 de octubre de 2011

Adiós C - Adiós Dennis Ritchie

Parece mentira como funciona la información en estos días, como dependemos de lo que nos ofrecen los medios, teniendo actualmente cientos de maneras de acceder a ella, pero aún así solo nos enteremos de lo que les interesa.


Empiezo así porque de no ser por un compañero que me ha recordado a este hombre, probablemente no me habría enterado por ningún sitio de su muerte, Dennis Ritchie, creador ni más ni menos que del lenguaje C, y co-creador del SO UNIX, este fin de semana paso a mejor vida, y nosotros solo acordándonos de Steve Jobs.

Por supuesto no es una crítica al pobre de Steve, que en paz descanse, sino a como los medios dan cabida a lo que interesa a la masa, sin tener en cuenta la importancia de hombres no tan famosos pero que han cambiado el mundo, porque me gustaría ver el iPhone con su Objetive-C, sin C, o el aclamado Linux, sin Unix...

Pero bueno, aquí queda mi pequeño homenaje a este hombre, os dejo con una imagen que me ha pasao el hatake al más puro estilo Bruce Lee xD, si has programado alguna vez, aunque no sea en C, la disfrutarás.


Un saludo!

sábado, 8 de octubre de 2011

Como hacer screenshots en iPhone

Tan fácil como pulsar a la vez el botón home y el de encendido un momento, con ello conseguiremos la screenshot que nos aparecerá en el camera roll directamente, la pantalla hará un pequeño destello en el momento de hacer la ss.

La entrada más corta de la historia xD, pero no por ello la menos útil!!

Un saludo!

Configurar WIFI UCM Eduroam en iPhone

Aunque el manual que han hecho los de la UCM esta bastante claro, solo explica una de las formas de hacerlo, asi que me animao a explicar los dos sistemas que conozco para configurar la WIFI.


La primera es la que se comenta en el manual y que en principio es bastante fácil, tan solo abrir el siguiente enlace desde el safari del iphone:

http://ssii.ucm.es/wifi/eduroam/software/iphone-eduroam.mobileconfig

Pero... ¿Cómo accedo a Internet desde el móvil si precisamente estoy configurando eso?

Pues conectándote a la red antigua, con la típica conexión UCM,abriéndose la ventanilla esa to fea y escribes tu dir estumail/pass y abres la url que he puesto antes.

El certificao le das a instalar y escribes tu dir estumail, pass y finalizar.


Una vez que has hecho eso, te vas a la gestión de redes y eliges la eduroam, te saldrá el certificado de nuevo lo aceptas y voila, por fin una conexión del siglo 21 pa la ucm xd.

Ahora la segunda forma de hacerlo, quizás más "larga" pero es interesante conocerla, nos bajamos esto desde el PC:

http://ssii.ucm.es/wifi/eduroam/software/iphone-eduroam.mobileconfig

Y ahora la Utilidad de Configuración de Iphone de apple que usaremos:
Instalamos el programa y ejecutamos el archivo que nos hemos bajao anteriormente.


Ahora conectamos nuestro iphone con el usb y aparecerá a la izquierda en dispositivos:


Lo elegimos y nos vamos a la pestaña de perfiles de configuración y elegimos instalar el certificado UCM-eduroam.
Sale eliminar porque ya lo tengo instalado, pero a vosotros os saldrá instalar
Y ahora en el iphone tendrás que hacer lo mismo que en los otros 3 pasos que vimos en la otra forma, instalar-estumaildir-pass. Cuando te conectes a la eduroam tendrás que identificarte de nuevo con tu estumail y tu pass, y listo.

Quizás esta manera es algo más larga pero bueno, así te permite ver el certificado desde el PC xD.

Pues estas son las 2 formas de configurar la nueva Eduroam, espero que os sea de utilidad.

Un saludo!!!

Fuentes: ucmual

jueves, 6 de octubre de 2011

Think Different - Steve Job

Se va un visionario, se va un grande que ha cambiado en los últimos años nuestra manera de VIVIR, asi en grande, que se vea, porque las tecnologías tal y como han ido evolucionando nos han cambiado a todos, y una gran parte ha sido por él.


Os dejo con este video, recordaba haberlo visto de pequeño, pero mi compañero Luis me lo ha recordado y resume bastante bien lo que ha sido Steve Jobs para Apple y para el mundo.


Un saludo!