sep
02

Mis 5 trucos para intentar ser un programador más productivo en mi tiempo libre

Cada vez es más complicado ser productivo, sobretodo porque el tiempo libre comienza a ir a menos y las obligaciones a más. Si tienes un trabajo que no termina de llenarte, aunque cumpla con su principal función que es que te pague las facturas, y tienes inquietudes para no querer quedarte sentado toda la tarde viendo la tele necesitas un poco de disciplina para poder llevar a cabo proyectos fuera de tu trabajo.

A continuación describo 5 trucos que llevo a cabo durante hace mucho tiempo. No es que un día me sentase a crear una lista para seguirla religiosamente, sino que poco a poco los he ido incorporando a mi vida diaria para poder hacer cosas fuera de mi trabajo divirtiéndome y sin tener que llegar a tirarme por la ventana (cosa que no descarto hacer algún día).

Es importante dejar claro que estos no son trucos para que los proyectos te salgan rentables, sino que son trucos que llevo a cabo para poder ser productivo a la hora de realizar proyectos y no agobiarme a las primeras de cambio. Si alguien sabe como hacer rentables los proyectos por favor que me envíe un correo y me lo explique.

1. Tener una idea global de los proyectos y saber dividirlos en tareas

Para que no se queden los proyectos a la mitad y no convertir en realidad una de las verdades de esta vida que es "es fácil empezar los proyectos, lo difícil es terminarlos", es importante antes de empezar a trabajar saber cual es tu objetivo, tener una idea global y saber dividirlo en tareas más simples y ordenadas para poder realizarlo poco a poco.

Esto que parece sencillo no lo es tanto. Empezar un proyecto sin  tener las ideas claras no es buena idea. Es evidente que durante la realización del mismo tu proyecto crecerá y madurará, pero siempre teniendo clara una base.

2. Hacer algo todos los días

Esto es algo que leí hace mucho tiempo a no se quien y que intento cumplir siempre. Uno de los problemas que se tiene cuando estás trabajando en algo en tu tiempo libre es la sensación de abandono que se produce al estar muchos días con el proyecto parado. Después de un par de semanas retomar un trabajo se hace complicado y cada día es peor.

Aunque sólo sean 20 minutos es bueno que te sientes a trabajar en tu proyecto. Muchas veces lo que hago, y eso va relacionado con el primer punto, es que como se el siguiente paso que tengo que dar ya que tengo claro mi objetivo y las tareas a realizar, me siento a buscar información de como hacer algo (buscar código en Internet, algún tutorial de como hacer algo, etc) o simplemente organizo el trabajo para el siguiente día.

Esos 20 minutos hacen que al día siguiente tenga adelantado parte del trabajo y ya me cueste menos afrontarlo y no he terminado el día sin hacer nada.

3. Trabajar en los momentos que sé que puedo dar más de mi

Si llegas cansado del trabajo no te pongas a trabajar. Sé las horas del día en las que soy más productivo y es importante para un programador estar fresco para poder realizar el trabajo. La programación es un trabajo que necesita concentración y si no te encuentras bien mejor no trabajes o realiza cosas de tu proyecto que no necesiten estar tan concentrado.

4. Salir de la rutina del trabajo cada cierto tiempo

Algo importante para cualquier cosa que hagas que necesite concentración es saber parar un rato. Muchos hablan de que cada 50 minutos o una hora deberías de parar la actividad.

Voy a contar un secreto ¡hago las cosas de la casa en esos momentos!. A lo mejor teníais otro concepto de mi, pero soy un hombre del siglo 21 ;-)

Muchas veces dejo cosas por hacer para obligarme a hacer parones durante el trabajo. Fregar, hacer la cama o recoger las ropa son mis favoritas. No tenéis que hacer lo mismo, lo que si aconsejo es hacer algo totalmente distinto, por ejemplo no vale seguir en el ordenador jugando a un juego o leyendo los RSS que tienes pendientes, que os conozco.

5. Usa Twitter para ayudar y que te ayuden

Twitter es un herramienta tan poderosa como lo sean tus seguidores y la gente que sigues. La uso constantemente y cada vez pienso que no ha existido hasta hoy una herramienta tan simple que me haya aportado tanto.

Es importante seguir a gente que te puedan ayudar en tus problemas, que te puedas desahogar en esos momentos difíciles con ellos y te comprendan y sobretodo ayudar cuando puedas a los que lo necesitan.

Cada uno tiene que encontrar en Twitter su forma de hacer que sea productivo para él. Compartir con todo el mundo tus avances y envíar aquellos tutoriales que encuentras y que hacen que cada día seas un mejor programador. Twitter puede ser maravilloso.

Estas son algunas de las cosas que suelo hacer para trabajar en el día a día y que me sirven para poder realizar los proyectos que salen de mi cabeza, que sean o no sean buenos proyectos, a mí es lo que más me gusta hacer y es con las cosas que disfruto más cada día.

Categorías Opinión Personal
ago
31

Nueva versión de Android Dataframework, ahora soporte multidioma en la base de datos

Nueva versión, la 1.02, de la librería para trabajar con base de datos Android DataFramework. Aunque estaba hecho desde hace mucho tiempo hasta hoy no me he decidido a publicarla. La nueva versión trae un par de cosas nuevas y creo que interesantes:

  • Soporte multilenguaje en la base de datos (nuevo campo "multilanguage"): Creará un campo en la base de datos con cada uno de los idiomas, se podrá definir el lenguaje a usar y recogerá el dato del campo con el lenguaje que estemos trabajando

Vamos a poner un ejemplo. Lo primero es modificar el "tables.xml". En el nodo "database" ponemos los lenguajes con los que queremos que trabaje nuestra base de datos separados con "|" en el atributo "languages"

<database name="nombre_db" version="1" languages="es|en|de">

En esta caso sería español, inglés y alemán. Luego definimos cada campo que queremos que sea multilenguaje.

<field name="titulo" obligatory="true" type="multilanguage" />

Internamente, y de forma transparente para el programador, creará 3 campos "titulo_es", "titulo_en" y "titulo_de", donde se guardarán los valores en cada uno de los idiomas.

Por defecto cuando intentemos recoger la información del campo título, nos dará el idioma que tengamos definido en nuestro móvil (en los Locale de Android). Para ello es necesario que los idiomas estén en la ISO 639-1 como en el ejemplo que estamos trabajando.

Para recoger la información lo hacemos como siempre getString("titulo"), NO tenemos que poner getString("titulo_es") ya que no funcionaría.

También podemos forzar un idioma con:

DataFramework.getInstance().setForceLanguage("en");

  • Nuevo campo "drawable-identifier": contiene un recurso drawable del proyecto y que se puede obtener directamente de la clase Entity con el método getDrawable("nombre_campo")

Todo esto y alguna información más se irá poniendo en el Wiki de Android DataFramework.

Espero que os guste. 

Categorías Android Proyectos
ago
17

Sacar las imágenes de una base de datos SQLite que están en campos blob

Hace poco tuve que sacar de una base de datos en SQLite las imágenes que estaban puestas como campos blob. En un rato tenía hecho un script en Python que llevaba tiempo pensando en compartir por aquí y hoy me he decidido por fin a publicarlo.

No es nada del otro mundo, como veis en menos de 20 líneas está todo hecho, eso es una de las maravillas que tiene Python, "en pocas líneas hace grandes cosas".

En la base de datos la columna "0" era el identificador y en la columna "3" era el campo blob.

  1. from pysqlite2 import dbapi2 as sqlite
  2.  
  3. try:
  4. from sqlite import encode, decode
  5. except ImportError:
  6. import base64
  7. sqlite.encode = base64.encodestring
  8. sqlite.decode = base64.decodestring
  9. else:
  10. sqlite.encode = encode
  11. sqlite.decode = decode
  12.  
  13. con = sqlite.connect("basededatos.db")
  14. cursor = con.cursor()
  15.  
  16. cursor.execute('SELECT * FROM Tabla')
  17. for row in cursor:
  18. if not row[3] == "":
  19. binfile = open('image'+str(row[0])+'.jpg', 'wb')
  20. binfile.write(row[3])
  21.  
  22. con.close()
  23.  
ago
05

Trabajando en el wiki de Android DataFramework

Después de que muchos usuarios me hayan enviado muchos correos con dudas sobre Android DataFramework he decidido que ya era hora de poner ejemplos del uso de la librería y ampliar la wiki.

Me gustaría que todo aquel que use la librería me dijese que quiere que explique mejor o si quiere que ponga algún trozo de código con algún ejemplo de uso concreto.

Ya sabéis que para cualquier duda podéis contactar conmigo.

Aprovecho para comentar que espero actualizar la librería este mes con soporte multiidioma.

Categorías Android Proyectos
ago
04

Como descargar la base de datos de tu aplicación Android

Esto sólo funciona en el caso que estemos trabajando en el emulador y supongo que en los teléfonos Android que tengan acceso a root también.

La idea es poder descargarnos la base de datos SQLite de nuestra aplicación para hacer un backup o comprobar que se están guardando los datos correctamente. Una vez descargada os recomiendo usar SQLiteBrowser para ver los datos.

Simplemente una vez lanzado el emulador desde Eclipse nos vamos a la perspectiva DMMS de Android y seleccionamos la pestaña "File Explorer". Allí podremos acceder a la estructura de directorios de nuestro teléfono (emulador en nuestro caso) y navegamos al directorio "/data/data" (no me he equivocado es el directorio "data" que se encuentra en "data" ;-)).

Al abrir ese directorio veremos muchas carpetas con el nombre de los paquetes de los programas que tenemos instalados en nuestro emulador, abrimos el de nuestro programa (por ejemplo en el caso de AndAndo es "com.javielinux.andando") y si nuestra aplicación usa alguna base de datos deberá tener un directorio llamado "databases". Ábrelo y verás la base datos (si usas Android DataFramework será el nombre que le pusiste en el tables.xml).

Para descargarlo lo seleccionas y pulsas en el botón que hay arriba a la derecha que se llama "Pull a file from the device". Ya puedes ver tus datos en SQLiteBrowser.

ago
02

Yo no pirateo software

Uso del término "pirateo" ya que está muy extendido, aunque si digo la verdad no me gusta. Hay conclusiones que llevan tiempo llegar a ellas, y esta quizás haya sido una de esas.

Cuando hablo de software, hablo en todos los sentidos. Desde hace muchos años uso software libre siempre que puedo, y no sólo en casa, en mi trabajo donde uso Windows Vista actualmente el 95% del software es software libre y el que no es libre tiene licencia. Cuando hablo de software, es cualquier tipo, videojuegos en las dos consolas que tengo, PlayStation y Nintendo Wii, o en el móvil, actualmente un Nexus One.

Me parece bien que la gente piratee, y este post no es ni mucho menos para quitarle las ganas a nadie, en España es totalmente legal mientras no se gane dinero con ello o eso creo, además es algo bastante aceptado socialmente.

Personalmente tengo mis razones para no hacerlo.

Usar Software Libre siempre que puedo

Debería ser algo lógico. El software libre en su gran mayoría es gratuito. ¿Por que pagar piratear algo si tienes una versión gratuita y libre de un programa? Un ejemplo es Photoshop. Muchos de los que usan este programa, la gran mayoría, les sobraría con Gimp, pero tienen que tener la última versión instalada en su equipo para redimensionar las fotos de las vacaciones. Si hablamos de "profesionales" me parece muy triste el profesional (o que pretende serlo) que piratea software. Son ellos quienes deberían de entender mejor que nadie los beneficios de tener el software con una licencia. Otros ejemplos serían OpenOffice, Inkscape o Eclipse, y podríamos poner muchos más.

El problema es que todavía los usuarios no ven los beneficios del Software Libre. Si el valor añadido que tiene el software libre es su libertad y en gran medida su precio ¿Como luchar contra algo si los usuarios no valoran eso?

Hace mucho tiempo leí a alguien que tenía una empresa donde ofertaban cursos. Los cursos eran de herramientas libres, y ponía el ejemplo de OpenOffice. En la acera de enfrente había otra academia donde ofertaban cursos de Microsoft Office y se quejaba ya que aquella tenía los equipos llenos de software pirata y tenían más clientes que ellos.

Decía que ellos eligieron dar cursos de software libre conociendo los bueno y lo malo de este, pero que contra eso no podían luchar ya que era competencia desleal. El software propietario también tiene sus problemas, y uno de ellos es el precio.

Entiendo perfectamente que uno pueda pensar que le viene mejor Microsoft Office o Photoshop, eso no lo critico, pero las reglas del juego deberían ser las que están sobre la mesa y si no quieres gastarte el dinero... usa otras opciones.

Respeto a los trabajadores del gremio y valorar su trabajo

El respeto entre los compañeros es importante. Me gano la vida creando software y aunque nunca lo he vendido, algo que no descarto, si lo hago me gustaría ser respetado también por los que trabajan en lo mismo que yo. Estoy seguro que no me preocuparía que la gente piratease lo que hipotéticamente haga un día, pero no me siento bien cuando yo lo hago, por lo cual mejor no hacerlo.

Desprestigia el trabajo de Informático

Quizás una de las razones más importantes. Es vergonzoso ver a compañeros de trabajo que tienen un sueldo bastante digno (hasta 1.600 euros al mes) se prostituyen (informáticamente hablando) instalando durante una tarde Windows, Office, Photoshop y muchos programas más por unos míseros 70 euros. Algunos te miran por encima del hombro por ser licenciados en la carrera de Informática, otros simplemente son proyectos de ingenieros.

Me parece muy bien que la gente cobre por el tiempo que gaste al servicio de otros usuarios que no quieren gastar el suyo en instalar 3 programas, lo que me parece penoso es que lo hagan instalando cracks y pirateando licencias de Windows. ¿Para eso has estudiado una carrera?

Después nos quejamos de que el trabajo del informático no está valorado, y es normal, como va a estar valorado si somos nosotros los primeros que no lo hacemos.

Es más sencillo ser legal, sobretodo en la Scene Wii

Confieso que a la Wii le puse el chip. La verdad que bastante mal aprovechado, pero lo tuvo. Hace un tiempo decidí actualizar el firmware pudiendo quedarme sin consola por la desesperación que me suponía el tener que actualizarla.

Sin duda es lo peor. No me considero torpe en estas cosas, pero tener que leer tutoriales de algunos usuarios para tener la consola a punto puede llegar a ser una auténtica pesadilla.

Actualmente mi Wii está perfecta y he comprado los dos últimos juegos de Marios Bross (uno regalado por mi cumpleaños) y soy el hombre más feliz del mundo.

Total, para 1 juego o 2 que me compro al año no merece la pena.

No me gustan los que presumen de gadget y usan software pirata

Me pasa mucho con el iPhone... y no critico el dispositivo en sí, sino la forma de actuar de mucha gente. También me pasa con los amantes de Photoshop o el que crea un vídeo de sus vacaciones en base a un programa pirateado que hace mil cortinillas y efectos mientras que sus amigos cuando lo ven piensan que esa persona no trabaja en Pixar porque no quiere.

Es curioso como funciona el ser humano. Alguien te enseña la última aplicación que ha metido en su teléfono u ordenador de sobremesa y mientras te la enseña tiene una sonrisilla en sus labios como diciendo "Que bueno soy" y la cara de la persona que lo ve es de "Que bueno eres".

Parece que él ha hecho el programa. Luego el amigo sorprendido comenta con otros lo bueno que es el primero, ya es oficial "Él ha hecho el programa".

Nos gusta enseñar nuestros gadgets, eso es así, nos gusta que otros nos vean como un geek aunque realmente piensen que somos unos frikis, nos da igual gastarnos 500 euros en un teléfono de última generación (eso nos hace mejores ante los demás) y luego demostrar que no somos capaces de gasta 1 euro en una aplicación (eso nos hace aún mejores). Pasa lo mismo al comprar un ordenador, está muy aceptado que se pague por el hardware pero no pasa lo mismo con el software.

Hace poco tuve que leer como alguien decía que Windows era gratis, cuando otro le dijo que eso no era así comentó que para él si es gratis.

Personalmente no puedo disfrutar de un software y menos mostrar a todos lo bueno que es siendo pirata.

Conclusión

Son muchas las razones, pero quizás lo peor es como desprestigiamos nuestro trabajo, a lo que nos dedicamos, de lo que comemos. Si no me dedicara a esto quizás pensaría de otra forma, pero como me dedico a ello no puedo ser un hipócrita.

Categorías Opinión