Thursday, November 20, 2008

Search source code

Usually i have to search some of source code,whatever, i saw today this post talking about his top 10 of source code searchers

http://www.cavdar.net/2008/08/01/my-top-10-source-code-search-engines/

writed down!

Code Documentation

It's time to clean up my code, there are some links to guide me to the best practices in the Source Code Documentation


-Oficial javadoc documentation
http://java.sun.com/j2se/javadoc/writingdoccomments/

-Another english javadoc how to.
http://open.ncsu.edu/se/tutorials/javadoc/

-A spanish javadoc documentation
http://www.lab.dit.upm.es/~lprg/material/apuntes/doc/doc.htm

-A spanish programmers tell us how to doc.
http://www.galeon.com/neoprogramadores/howdocod.htm

Sunday, November 16, 2008

Thursday, October 30, 2008

Apps without borders

Una de las politicas de las aplicaciones para aplicaciones en android, para mi muy acertada, es la de traer internet al mundo real. Usar el movil juntando servicios que existen en la red pero dandole un uso fuera de la silla, escritorio y monitor.

Este es un video explicativo de ingenieros de android.

Monday, October 27, 2008

Acabando Implementacion

Hagamos un recuento de cosillas que toca iCua:

- Layout independiente horizontal vertical segun se gire el dispositivo.
- Escaneo de la SDCARD en busca de mp3, donde se registran artistas, albums y canciones
- Portadas y fotos de artisatas.
- poder reporducir playlist aleatoria, por autor, por album o playlist propia.
- MediaPlayer en servicio para poder navegar por el movil
- Streaming de fichero perfecto
- Streaming verdadero implementado, no soportado por android, no se ha podido mejorar con lo que hay disponible. He decidido no tocar codigo nativo. Pega algun salto
- Streaming verdadero con lastfm. Radios
- Radio por artistas similares a...
- Radio por estilos de musica
- Guardar cancion de la Radio y añadirla a la libreria
- Estadisticas de reporduccion sobre LASTFM tanto radio como ficheros de la libreria.

Estos puntos estan implementados, para la release 1.0, algunos falta integrarlos en el programa principal

Tareas que quedan:

- Pulir la integración de los puntos anteriores
- Streaming de dispositivo a dispositivo( una vez conseguido el de radio no esta tan lejos)
- añadir efectos y animaciones a los layouts

Saturday, October 25, 2008

Links para no perder

Uso del Emulador y limitaciones
http://code.google.com/android/reference/emulator.html#connecting

API lastfm
http://www.lastfm.es/user/dahnielson/journal/2007/08/07/8nrm_last.fm_radio_protocol
http://www.lastfm.es/api/mobileauth
http://tutorialninjas.net/2007/01/31/lastfm-audioscrobbler-the-social-music-revolution/
http://swik.net/Last.fm/Plugin+API

Component HorizontalSlider
http://www.helloandroid.com/node/250?page=0%2C1

Thursday, October 23, 2008

Internet access android

Llevaba algun tiempo con fallos en las descargas de las caratulas e imagenes de los artistas, no sabia muy bien por que razón sucedia.

java.net.SocketException: unknown error

Esta era la excepcion que saltaba al lanzar el código del post anterior.

Pues bien, Android a partir de la Beta 0.9, hasta la release 1.0 que es la actual, requiere que le digamos explicitamente que queremos usar internet, medida razonable pero que en la M3 M5 no sucedia.

Esto lo arreglamos con la siguiente linea en el AndroidManifest.xml

< uses-permission android:name="android.permission.INTERNET" / >

Wednesday, October 22, 2008

Android Source Code

Android ya es opensource,

Ayer salió la noticia de la pubicación del codigo fuente de la plataforma.

http://source.android.com/

Precio de la Release 1.0

En la nueva versión de la SDK de android uno se va dando cuenta de cosillas que no se entiende para que las tocam.

Este caso ha sido la descarga de ficheros y streams de entrada y salida. En las anteriores versions de android sin problema, pero ahora mismo cóndigo( el cual corre sobre java normal en un pc) no hay manera de que ande... en fin..

public static void download(String address, String localFileName) {
OutputStream out = null;
URLConnection conn = null;
InputStream in = null;
try {
URL url = new URL(address);
out = new BufferedOutputStream(
new FileOutputStream(localFileName));
conn = url.openConnection();
in = conn.getInputStream();
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
while ((numRead = in.read(buffer)) != -1) {
out.write(buffer, 0, numRead);
numWritten += numRead;
}
System.out.println(localFileName + "\t" + numWritten);
} catch (Exception exception) {
exception.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException ioe) {
}
}

Tuesday, October 21, 2008

Android Servicios Remotos

Cuando definamos servicios remotos, las interfaces que pudes usar para acceder al mismo deben estar incluidas en el androidmanifest, OJO CON LAS MAYUSCULAS!!!! es case sensible y puede provocar muchos dolores de cabeza ya que nunca os hará bind.

Monday, October 20, 2008

Services Android

Llevo días, por no decir semanas con fallos en mi aplicación android y sin ser capaz de saber porqué falla.
Todo el tema de servicios en Android a mi gusto esta muy confuso.

Primero hay que diferenciar Servicios locales o Remotos, locales corren en el mismo proceso y remotos pueden correr en cualquier otro. Yo en iCua empecé con Locales por problemas con los remotos, pero por funcionalidad me he tenido que pasar a los Remotos.

Una vez tenemos eso podemos iniciarlos y detenrlos con mas o menos dificultad, pero hay que definir una interface si queremos poder interactuar con el servicio desde cualquier aplicación. Esto se hace mediante aidl, la verdad que sobre aidl ningun problema, todo parece bastante claro.

El Problema lo he tenido siempre al hacer el "bind" y usarlo mediante la interfaz... siempre me petaba la aplicacion o en su defecto lo hacia algunas veces que es todavia peor.

Al ejecutar un metodo del servicio justo despues de hacer bind, no tenia en cuenta que bind es asincrono, asi que a veces se da el caso que android le da preferencia a la actividad y continua con el flujo en el que estaba y este llama al metodo de la interfaz encontrandose con el servicio no disponible y petando todo. Esto pasa en el emulador, y se puede solucionar con un sleep de al menos 4-5 segundos, pero queda claro que en aplicacion real se va a tener que hacer un bucle de espera, ya que vete a saber que tal se maneja el procesador de los HTC.... es un punto feo por el que puede petar o puede que no.

Wednesday, September 24, 2008

Android 1.0 SDK, Release 1

Ya la Release de la SDK de Android, ya mismo van a empezar a salir los HTC...

http://code.google.com/android/download_list.html

Wednesday, September 10, 2008

Bugs Android

Durante mi implementación de codigo con android me he encontrado alguna que otra excepción que se les escapa, o algunos detalles feos, http://code.google.com/p/android/issues/list esta dirección es la que se pueden reportar todos los bugs y la primera vez que lo usé me sorprendió la celeridad en revisar las tareas...

Apress Android Essentials

Hace una semana llegó a mi un libro(versión eBook), Apress Android Essentials de Chris Haseman, el libro no está mal para tener unas pinceladas sobre la plataforma pero como todo lo que rodea android hasta que saquen su última release(espero que después ya no) queda "deprecated" o sin sentidos al cambiar de versión.

El libro es de Julio'08 y esta basado en la M5, en agosto ha salido la beta y ya hay cosas que son diferentes a como las cuenta, sobretodo el código fuente que incluye que es algo bastante delicado. Igualmente para algunos conceptos básicos de android es muy recomendable.

Saturday, September 6, 2008

Estado de la wifi

Para tener acceso al estado de la wifi, hay que añadir los permisos pertinentes en el AndroidManifest.xml, seria la siguiente linea

< uses-permission xmlns:android="http://schemas.android.com/apk/res/android" android:name="android.permission.ACCESS_WIFI_STATE" >< / uses-permission >


Lamentablemente esto no esta muy claro, y buscando ACCESS_WIFI_STATE en google no sale mucho ahora mismo, solo la enumeracion de permisos de la documentacion oficial de android, así que me pareció interesante postearlo por si acaso, ya que fué una de los problemas que me encontré cuando empecé a tocar la wifi.

Required maximum version of adb: 1.0.18

El primer problema que me encontré es que hay que buscar nuevos plugins en eclipse una vez campias la ruta de la SDK en preferencias, de no ser así al arracanr da un mensaje algo asi como "Required maximum version of adb: 1.0.18" y con la beta viene la 1.0.20, lo pongo como titulo de post por si alguien tiene el mismo problema...

Updating Android SDK

Hace mas o menos tres semanas apareció otra SDK de Android, esta vez es la beta, se presupone bastante cercano a la versión que debe ser definitiva.

El mismo día 18 de agosto que salió dicha beta me la instalé en el pc, pues si quiero evaluar las posiblidades de la plataforma no tiene sentido que me quede en una versión que no se parece a la final sobre la que deberían desarrollar aplicaciones la gente que se decida por la plataforma de google.

Podría resumir diciendo que todavía la aplicación iCua no funciona sobre la beta... parece bastante malo a primera vista, y lo es en segunda tercera y se mire como se mire... Google se ha caracterizado en estas SDKs por cambiar, a mi parecer, demasiado los parámetros y retornos de las funciones y cargándose clases básicas como relacionadas con servicios o media... ellos tienen escusa, no era ni beta y todo eso...

Hay nuevos cambios, mejoraron el tema WIFI, que decir queda que para el streaming de iCua en la version M5 de la SDK era bastante desesperante, a ver ahora... Hay un player de Musica, justo como el Modulo 1 de iCua, sabe un poco mal por todo lo que me he tenido que pelear para tenerlo yo pero era de esperar y mi finalidad tiene que ser ver las possiblidades mas que cualquier otra cosa.

El resto de funcionalidades de la sdk las aseguraré una vez consiga migrar del todo iCua, y entonces quedará menos para poder acabar teniendo iCua en release...

Wednesday, September 3, 2008

Android 0.9 SDK Beta (r1)

Nueva versión de la SDK de android, esta vez ya es una beta!!

Como anteriormente hay cambios, y algunos afectan al desarrollo de iCua, después de un tiempo para amoldar los servicios dentro de las aplicaciones de android habrá que hacer algun pequeño cambio, igualmente lo dejaré para cuando tenga listo el streaming a ver si da tiempo, pues es la primera beta... a ver como va la cosa

13 de Octubre es la fecha marcada para el final de la implementacion de iCua, a partir de ahi solo será trabajo de documentacion y algun retoque si es necesario.

Tuesday, May 20, 2008

Funcionalidades Mayo

Hasta el momento tengo asumidas las distintas funcionalidades:

Módulo 1

-Reproduccion de MP3 como Activity
-Captura de tags ID3 del MP3
-Almacenamiento del fichero de MP3 en el sistema
-Conexion con LastFM y obtención de Caratula del disco y foto del artista (Interacción con otras APIs sin nada que ver con android) /lectura XML+interaccionWEB
-Abstracción del UI haciendolo independiente de resoluciones... HVGA, QVGA, etc, etc
- Gestion de la persistencia sobre sqlLite de manera transparente

Existen algunas básicas del proyecto y otras especificas del modulo 1, pendientes para acabar hay:

- Funcionamento del la reproduccion como servicio ( casi finalizado)
- Area de notificacion de las canciones reproduciendo
- Interfaz de usuario ( quedan algunas pantallas por hacer y enlazar todo y mejorar detalles )

Monday, May 19, 2008

TabActivity en Android M5

En la API de Android en la version M5 hay la opción de usar TabActivity, para poder cambiar de activities de manera sencilla.

Todo parece muy bonito pero hay que tener unos detalles en cuenta que no están explicados en ningun lugar de la documentación y a mi me ha llevado 2 días de dedicación exclusiva provocando el no poder hacer funcionar la UI de mi aplicación y un sin parar de NullPointerException U_U', sin duda es uno de los problemas de Android, la cantidad de excepciones que llega a lanzar que uno no puede saber bien de donde le vienen los tiros, siempre tienes que estar mirando el LOG y a ver que pescas... queda mucho por mejorar todavía a la API.

El código en onCreate de nuestra TabActivity es el siguiente

setContentView(R.layout.main);
setDefaultTab(0);
TabHost tabs = getTabHost();
TabHost.TabSpec tab;
tab = tabs.newTabSpec("Artists");
tab.setContent(new Intent().setClass(this, One.class));
tab.setIndicator(new MyTextIndicator(this, "Artists"));
tabs.addTab(tab); //añadir todos los tabs que se kieran




A parte de este código es esencial declarar las activities en el AndroidManifest.xml sinó saltará la excepcion ya comentada, solo hace falta poner el atributo name

activity name="One"

Sunday, May 18, 2008

Estructura de la BBDD

Para que no me quede en el olvido esta es la estructura:

CREATE TABLE songs(
_id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
filename TEXT,
album INTEGER,
artist INTEGER
);
CREATE TABLE artists(
_id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
full_name TEXT,
photo TEXT
);
CREATE TABLE albums(
_id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
artist INTEGER,
photo TEXT
);

pueden haber albums con canciones de varios artistas, pero como queremos indexar primeramente por artistas creamos un registro por cada par artist-title

Sunday, May 11, 2008

Controlador Capa de Datos

Android da la posibilidad de usar SQLite para la persistencia, SQLite es una bd relacional que puede resultar muy útil para simplificar la complejidad del dominio pero tiene algunas deficiencias, como las claves foraneas que a diferencia de MySQL y otros debido al intento de simplificar el SGBD no se encarga.

Se tendrá que delegar las resposabilidades de estas restriciones a otros elementos de la aplicación, o arreglarlo con triggers.


http://www.sqlite.org/omitted.html

Sunday, May 4, 2008

Links Streamin


Llevo un par de días peleandome con la lectura de tags de mp3, su inserción en la base de datos y mostrarlo por pantalla sobre android.



Ya casi lo conseguí pero de momento encontré un blog donde conseguieron hacer un poco de streamin sobre android que me será muy útil para la segunda fase del proyecto

http://blog.pocketjourney.com/

Monday, April 28, 2008

Problemas Diseño

En el diseño de la capa de dominio me he encotrado con un problema grave, es un problema de android pero quizas bastante general en el entorno "mobile".

En caso de usar Domain Model resulta preocupante el rendimiento del terminal y su uso de memoria, debido a la escasez de recursos y la poca potencia del micro, deberiamos liberar al terminal de toda la faena posible.

Un reproductor de música, pese a almacenar los titulos, autores, estadisticas... no llega a ser un verdadero sistema de información, por lo que la aplicación de patrones mas estandards de TI y los principios de diseño para esos casos debemos adaptarlos un poco. Además teniendo un sistema de base de datos relacional como SQLite se hace imperdonable no usarlo para realizar las consultas a las canciones para mostrar los datos y listas por pantalla.

Sunday, April 27, 2008

Bibliografia para Diseño

Para apoyo en los patrones de diseño y el mismo diseño he conseguido estos dos libros :

Applying UML Patterns - Introduction Object Oriented de Craig Larman

Patterns of Enterprise Application Architecture de Martin Fowler

También encotré una fuente de patrones de diseño para movil patterns.littlespringsdesign.com

Thursday, April 17, 2008

Diseño Capa de Presentación

Para la capa de presentación, se aplicará el patrón Abstract Factory para crear todos sus componentes, pues así podemos definir elementos visuales abstractos con los que trabajará nuestra capa de presentación, que se encargará de crear nuestras factorias abstractas podiendo extenderlas tanto como necesitemos por diferentes interficies fisicas posibles que vaya soportando como son ahora :

* HVGA (480x320) Landscape
* HVGA (320x480) Portrait
* QVGA (320x240) Landscape
* QVGA (240x320) Portrait

Esto sin contar que la pantalla puede ser táctil o no y necesitar una interficie con botones mas separados y accesibles o mas juntos.

El abstract factory en lo referente a la creación, en el propio diseño de la capa de presentación no entraré mucho ahora pero intentaré seguir los patrones que mejor se adapten a la solución deseada, no es algo que aporte nada nuevo o sirva para analizar las capacidades de la plataforma Android.

No obstante existe difrerentes webs de referencia y un libro bastante interesantes con este tema:

http://ui-patterns.com/
Designing Interfaces - Jenifer Tidwell
http://www.dofactory.com

Monday, April 14, 2008

Carga aplicaciones android

Una vez hemos compilado la aplicación de android y tenemos el ficher *.apk estamos en disposición de instalar dicha aplicacion en nuestro emulador.

Para ello necesitamos haber descargado e instalado de la web, en caso de no tener java instalado deberíamos bajar una de las últimas versiones.

Una vez descargado el fichero anterior, lo descomprimimos y dentro de la carpeta tools encontramos lo que nos interesa,

emulator - emulador de android propio.

adb - aplicacion para traspasar ficheros e instalar(desplegando) los ficheros .apk de nuestras aplicaciones(ejemplo).

Sobre estas tools y otras se pueden ver ejemplos en la web de referencia propia del emulador de Android

Sunday, April 13, 2008

Especificación y Diseño

Durante toda la semana he estado empezando a especificar y disseñar sobre papel las diferentes capas del proyecto.

Me ha llevado mucho más tiempo de lo esperado, pues por las diferentes posibilidades de los dispositivos que llevan android y algunas limitaciones de la plataforma no es del todo sencillo encontrar un punto de abstracción en el que el rendimiento no se vea demasiado afectado y sea abierto a la extensión pero cerrado a la modificación.

Dicho esto, lo primero que me dispuse esta semana es a encontrar un editor de UML con licencia libre (Las preferencias sobre software en este proyecto siempre que sea posible se usará software bajo licencia GPL, o lo más "libre" posible).

Buscando por comunidades y el gran google encontré la siguiente comparativa , y me acabé decidioendo por AgroUML.

Tuesday, April 8, 2008

Comunidad hispana Android

Hace tiempo que visito una comunidad de habla española sobre Android, con el tiempo han conseguido tener bastante actividad y un buen foro de dudas a parte de tutoriales / manuales.

Android-Spa

Sunday, April 6, 2008

User Interface Design

Aplicación para la ayuda en el diseño de la interfaz de usuario en android

http://www.droiddraw.org/

Wednesday, April 2, 2008

Android SDK M5 Release

La nueva versión de la SDK de android Android SDK M5 Release trae nuevas funcionalidades necesarias para le proyecto y otras reparadas.

El primero es la clase MediaPlayer que se le ha añadido ogg entre otros y supuesto streaming en mp4, a parte de alguna excepcion para algun invariante de sistema que antes no se tenía en cuenta.

MediaPlayer:

  • MediaPlayer:
    • Added support for OGG Vorbis (.ogg) and MIDI (.mid, .smf), XMF (.xmf, .mxmf), iMelody (.imy), RTTTL/RTX (.rtttl, .rtx) and OTA (.ota) audio file formats.
    • Added convenience methods for creating a android.media.MediaPlayer object from a Uri. See MediaPlayer.create(Context, Uri) and MediaPlayer.create(Context, Uri, Surface) for more details.
    • Added method for grabbing a frame from a video clip to use a thumbnail.
    • Added method to set power management behavior.
    • Added method to determine whether media is currently playing.
    • Added support for http streaming of MP4 media.
    • MediaPlayer.prepare() is now called from MediaPlayer.create() and you will get an exception if you call MediaPlayer.prepare() after using create().
  • MidiFile has been deleted in favor of android.media.MediaPlayer which offers improved functionality and a unified API for all multimedia files and streams.
  • There are numerous bugfixes in the media framework.
SQLite es el sistema de ficheros en el que se guardará toda la información que se necesite hacer persistente.

SQLite/Content Provider

  • The QueryBuilder class has been moved to the android.database.sqlite package and renamed SQLiteQueryBuilder as it now is responsible for building the SQL that is passed to android.database.sqlite.SQLiteDatabase.
  • The android.net.ContentURI class has be replaced with the new android.net.Uri class. This is not a 1:1 replacement and engenders a number of necessary changes in the way you use and manipulate URIs in Android applications. android.content.ContentUris provides some static helper methods for appending and parsing IDs. android.net.Uri.Builder is a builder class to help with creating new Uris (from existing ones if necessary). Take a look at the Notepad sample from the SDK to see how to use these classes to replace the ContentURI usage.

    Some suggested replacements:
    OldNew
    new ContentURI(String) Uri.parse(String)
    ContentURI.create(String) Uri.parse(String)
    ContentUri.countPathSegments() Uri.getPathSegments().size()
    ContentUri.getPathSegment() Uri.getPathSegments().get()
    or
    Uri.getLastPathSegment()
    ContentURI.addPath() Uri.Builder.appendPath()
    ContentURI.addId(id) uri = Uri.withAppendedPath(SOME_URI, id);
    or
    uri = ContentUris.appendId(uri.buildUpon(), id).build();
  • The previously unused groupBy and having parameters have been removed from ContentProvider.query().
  • ContentProvider has a new method, openFile() that takes a URI and returns a file descriptor to the opened file. The ContentProvider.openFileHelper() method covers the common case, override openFile and call it if you don't need anything fancy. It is now the responsibility of the ContentProvider to open the file, it no longer needs to have a special column with the file name, can open any file it wants, and also no longer needs to make the files world-readable. A file descriptor is returned to the client.
  • android.content.ContentURIParser has been removed, use android.content.UriMatcher instead.
  • ContentProvider.onSyncStart() and ContentProvider.onSyncStop() now each take an account parameter.
  • SQLiteCursor.supportsUpdates() could have returned true when updates were not supported, this is fixed.
  • SQLiteCursor.commitUpdates() now returns true when there are no updates to commit.
  • SQLiteCursor has a new method, hasUpdates() which returns true if any updates were made to the cursor.
  • The custom Android SQLite functions are now available in the sqlite3 shell tool.
  • SQLiteDatabase.query() may also take a SQLiteDatabase.CursorFactory now as well as the constructor.
  • android.database.Cursor has the new method getWantsAllOnMoveCalls() which tells the client side to send move notifications to the content provider for all moves, not just ones that cross window boundaries.
  • Cursor has the new method getExtras() which lets the cursor provide out of band data to the users.
  • Cursor has the new method respond() which lets the user send out of band data back to the Cursor implementation.
  • android.database.ArrayCursor has been replaced by android.database.ArrayListCursor.
  • Reading floating point and long values from android.database.sqlite.SQLiteCursor now works correctly.

Friday, March 28, 2008

PLANIFICACION - Estudio SDK

Una vez vista la versión actual de la SDK he decidido ira estudiando mucho más detalladamente a medida que avanza el proyecto, esta decisión la he tomado al ver que en las primeras versiones de SDK no había soporte para Bluetooth/Wifi y que poco a poco y con la ayuda de la comunidad se van añadiendo cosas y mejorando otras que no estan bien.

Por este motivo podía ahora renunciar a partes de streamin que estan muy difíciles de implementar con la actual SDK, pero que puede ser que mejore en alguna release de aquí un par de semanas.

Dicho esto la planificacion y estudio de las posibilidades va a ser sequencial, por las etapas marcadas en las primeras ideas de Planificación.

Saturday, March 22, 2008

I3 - Eclipse

Eclipse es el IDE escogido para desarrollar la aplicación en Android.

En un principio todo parecia que iba a ser sencillo, pero la instalación y ensamblado de cada una de las partes acabó por no ser trivial y se alargó a 2 días.


Para empezar debido a los problemas que dió el paquete de eclipse para mi ubuntu, decidí directamente bajarme los binatios comprimidos directamente de la pagina de eclipse ya que con la version instalada con apt-get no estaba completa, esta vez escogí la versión mas completa y especializada en java que vi en la web.



Una vez tenemos eclipse hay que descargar la última versión de la SDK de Android desde su website, seguramente habrá que bajar versiones mas recientes mas adelante a medida que vayan arreglando algunos fallos o cosas que se han dejado como el soporte para bluetooth y/o wifi.

Para finalizar necesitaremos el plugin para Eclipse de Android, que se puede instalar facilmente desde el mismo eclipse indicandole el origen:

https://dl-ssl.google.com/android/eclipse/

Dentro de la SDK hay nos encontramos a parte de las propias librerias, ejemplos y utilidades como el emulador de dispositivo con android para probar y debugar las aplicaciones.



TotalTime 24h
DOC:1.75 IMP:0 CON:12.25 INF:5.25 PLA:4.75
TaskTime 12.5h
DOC:0.5 IMP:0 CON:9
INF:3 PLA:0

I2 - Sourceforge

SourceForge es un portal / comunidad donde se albergan gran cantidad de proyectos "opensource", entre ellos algunos famosos como filezilla (Que es precisamente el cliente de sFTP que usaré para conectarme al servidor de Sourceforge), en ellos permite la descarga del codigo dependiendo de la licencia, descargar la última version estable o la de testing del software y se usa tambien como herramienta de desarrollo para multiples desarroladores.



El primer paso fué registrar el proyecto con su descripción correspondiente, una vez lo aceptaron, he activado la cuenta de subversion, que es la herramienta con la que se realizarán todos los controles de versiones y el código permanecerá en el servidor de sourceforge estando a salvo de fallos en el pc de desarrollo.



Para acceder al servidor de Sourceforge todo se realiza mediante SSH(SecureShell), para eso hemos de generar un par de claves publicas y subirlas al mismo para que se pueda identificar el servidor ante nosotros.

SourceForge también sirve espacio web para el proyecto, con soporte para PHP y MySQL, así que instalé y configuré el gestor de contenidos Joomla

Después de esto ya disponemos de:

-Espacio para el código fuente del proyecto con control de versiones
-Formar parte de "la comunidad opensource" y poner un poco a disposicion el proyecto
-Disponer de Web del proyecto visible para más adelante, de buen aspecto y facil de mantener el contenido.
-Acceso al servidor por ssh y sftp


Web de Versiones y otros de iCua en Sourceforge - http://sourceforge.net/projects/icua

Web en Joomla de iCua en Sourceforge - http://icua.sourceforge.net/

TotalTime 11.5h
DOC:1.25 IMP:0 CON:3.25 INF:2.25 PLA:4.75
TaskTime 2.5h
DOC:0.5IMP:0 CON:1.5
INF:0.5 PLA:0

I1 - Instalación Ubuntu


El primer paso en el proyecto era escoger el sistema operativo sobre el que trabajar, siempre bajo linux, quedaba la duda si tirar hacia ubuntu o debian.
Finalmente tiré para ubuntu con el ligero escritorio xfce( Perimite que corra mejor sobre mi equipo viejo sobre el que voy a desarrollar el proyecto).



La instalación es muy sencilla y en casi 2 horas ya tengo listo el sistema base mas o menos a mi gusto.

TotalTime 9h
DOC:0.75 IMP:0 CON:1.75 INF:1.75 PLA:4.75
TaskTime 2h
DOC:0.25 IMP:0 CON:
1.75 INF:0 PLA:0

Friday, March 7, 2008

Icua - Pre-Introducció

Icua es el nóm del meu Projecte Final de Carrera.
És una aplicació feta per el sistema operatiu de Google per movils Android, amb la finalitat de poder fer una valoració de les possibilitats de la plataforma.

El projecte es tutoritzat per Antoni Soto Riera, professor de la Escola Tècnica Superior d'Enginyeria Industrial de Barcelona.

L'aplicació esta enfocada per poder testejar les seguents funcionalitats de la plataforma :

  • Reproduir MP3
  • Emissió / Recepció per Streaming per WiFi o Bluetooth
  • Transferencia de Fitxers
  • Enviament de Missatges entre dispositius
  • Interacció amb un portal Web
  • altres
Per assolir aquests requisits i degut a la impossiblitat de poder fer una predicció correcte dels temps estimats per cada cosa, s'ha decidit dividir-ho per etapes i fer fins on dongui temps. Les etapes son les seguents:

  • Etapa1 : Reproductor MODUL1
  • Etapa2 : Emissor / Receptor MODUL1
  • Etapa3 : Transferencia de fitxers MODUL2
  • Etapa4 : Missatges MODUL3
  • Etapa5 : Estadístiques MODUL3
  • Etapa6 : Portal Web MODUL3
TotalTime 7h
DOC:0.5 IMP:0 CON:0 INF:1.75 PLA:4.75
TaskTime 5h
DOC:0.25 IMP:0 CON:0 INF:0 PLA:4.75

Thursday, March 6, 2008

Posada a punt

1. Ubuntu 7.10 - Sistema operativo sobre el que trabajar, preferiria debian pero para temas de bluetooth y historias de esas me da que será mejor ubuntu y además es donde está probada la plataforma android… aunque no descarto acabar en Debian
2. Android SDK - Sofware Development Kit de la plataforma para móviles de Google que incluye S.O. y middleware sobre el que habrá que desarrollar la aplicación y valorar sus posibilidades
3. JDK 6 - Kit de desarrollo de java
4. Eclipse - IDE de desarrollo para facilitar el picado de codigo :P ( Mejor no tirar de Vi en este caso xD) a parte hay plugins para el desarrollo de android sobre eclipse.
5. LaTeX - un infierno xDDD digoo el sistema de estructuracion del documento que voy a presentar como memoria, chulo y vacilon para un post o como mucho un par de paginas pero para 500… :S
6. iCua Blog - Blog donde poner todo lo que vaya encontrando para después hacer mejor la memoria :P, consejo de Ludo (Marc Alier, profesor de la FIB que me dio GSI el cuatri pasado, merece ser mencionado ya que sinó no llega a decirlo no lo habría hecho)

TotalTime 2h
DOC:0.25 IMP:0 CON:0 INF:1.75 PLA:0
TaskTime 2h
DOC:0.25 IMP:0 CON:0 INF:
1.75PLA:0