Ubuntu 12.04 – ¿Qué hacer después de haberlo instalado? (Developer)

Instalar Cairo Dock

Instalar Gnome-Do

En las preferencias puedes seleccionar que tecla o combinación de teclas lanza el gnome-do. Yo tengo configurada la tecla especial «Menú». Esa tecla que hace la función del clic derecho pero que rara vez utilizamos. 

Ocultar la barra del dash

Da clic derecho en el escritorio y selecciona «Change Desktop Background». Luego ve a la pestaña «Behavior» y activa la opción «Auto-hide the Launcher». Yo también selecciono la opción «Top left corner» en «Reveal Location» para que de plano ni por error me aparezca el Launcher…. 😛

Habilitar el scroll con 2 dedos

Ve a la configuración del sistema (da clic en el ícono que parece un engrane en la parte superior derecha de la pantalla y selecciona 2System Settings»). Luego abre la configuración del Mouse & Touchpad y ve a la pestaña de Touchpad, ahí activa el «Two-finger scrolling».

Mostrar el día y mes en el reloj de la barra del sistema

Da clic en el reloj y luego en «Time & Date Settings», abre la pestaña «Clock» y activa la opción «Date and month»

Instalar Google Chrome

Descarga el instalador para tu sistema desde la página de Google y abrelo con el Software Manager.

Instalar Gimp

Este grandioso editor de imágenes ya no viene instalado por defecto. Puedes instalarlo desde el Software Center.

Instalar Inkscape

Otro excelente editor de imágenes, pero en este caso imágenes vectoriales.

Instalar Bluefish

Excelente editor Web (HTML, CSS, etc.)

Instalar Compiz Config Settings Manager

Una vez instalado puedes ajustar tus preferencias para los efectos de compiz, incluso activar otros plugins que no están activados por default. Por ejemplo, a mi me gusta activar el plugin Scale llevando el cursor a la esquina superior derecha de la pantalla.

Instalar el JDK

Si no lo puedes ver al buscar «jdk» en el Sfotware Manager, asegúrate de dar clic en el enlace que esta en la parte inferior izquierda con l aleyenda «Show Technical Items»

Instalar dropbox

Instalar git

Instalar Meld (comparación de archivos y carpetas)

Instalar Maven

Datanucleus – JDO valores nulos depués de la primer consulta

Recientemente empecé a utilizar Datanucleus para simplificar la persistencia y consulta de datos. Uno de los primeros problemas que tuve fue que al realizar una consulta por segunda vez, las propiedades del objeto eran nulas. Esto se debe al ciclo de vida de los objetos en Datanucleus, el cuál aparece en el log de la siguiente manera

13:07:41,197 DEBUG [DataNucleus.Lifecycle] – Object «mx.com.apestudio.videohaus.server.model.Video@6eb5ec12» (id=»mx.com.apestudio.videohaus.server.model.Video:bb56da010129448ab28f4486d32036b9    «) has a lifecycle change : «P_CLEAN»->»HOLLOW»

al cambiar del estado P_CLEAN a HOLLOW todas las propiedades, excepto la llave primaria, son reestablecidas a un valor nulo. Para evitar que esto suceda, podemos establecer la propiedad RetainValues a true en el archivo de configuración datanucleus.properties

datanucleus.RetainValues=true

al hacer esto, el log muestra lo siguiente

14:05:37,400 DEBUG [DataNucleus.Lifecycle] – Object «mx.com.apestudio.videohaus.server.model.Video@795cd696» (id=»mx.com.apestudio.videohaus.server.model.Video:bb56da010129448ab28f4486d32036b9    «) has a lifecycle change : «P_CLEAN»->»P_NONTRANS»

ahora el objeto pasó de un estado P_CLEAN a P_NONTRANS y conservó todas las propiedades con los valores obtenidos al realizar la primer consulta. Este modo es conveniente si sólo vas a realizar operaciones de lectura.

La otra opción es establecer la propiedad DetachAllOnCommit que, aunque es un poco mas costosa en cuanto a rendimiento, hace un ‘detach’ y ‘re-attach’ automático de los objetos. Esto es especialmente útil si vamos a actualizar alguna propiedad del objeto y queremos persistir los cambios.

datanucleus.DetachAllOnCommit=true

estas propiedades también podemos establecerlas mediante los métodos correspondientes del objeto PersistenceManager.

Cabe destacar que el problema de los valores nulos se presenta sólo cuando queremos leer propiedades del objeto fuera del contexto de una transacción.

Fuentes:
http://stackoverflow.com/questions/4630142/datanucleus-jdo-setting-fields-to-null
http://www.datanucleus.org/products/datanucleus/jdo/object_lifecycle.html
http://www.datanucleus.org/products/datanucleus/persistence_properties.html#RetainValues  
http://www.datanucleus.org/products/accessplatform_3_1/jdo/performance_tuning.html#Reading_persistent_objects_outside_a_transaction_and_PersistenceManager