Blog personal de Moisés Gallego

From the Blog

may
28

node y lessHe decidido no instalar con apt, ya que es se trata de una aplicación bastante sencilla de compilar y montar y así tener el beneficio de tener la última versión compilada para nuestra máquina.

Instalando Node.js

Lo primero que tenemos que hacer es bajarnos la última versión del código fuente de la web oficial. Una vez tenemos bajado el fichero tar.gz pasamos a descomprimirlo y desempaquetarlo con la siguiente orden.

tar zxvf node-v0.6.18.tar.gz

Esto nos creará una carpeta llamada  node-v0.6.18

Antes de ponernos con la compilación vamos a instalar dos paquetes que no vienen por defecto, esto si lo haremos con apt

apt-get install g++ libssl-dev

En caso de que hubiese mas dependencias en vuestro caso tan solo tenéis que instalarlas.

Ahora si que comenzamos con la instalación, para ello realizaremos lo siguiente:

cd node-v0.6.18

./configure

Ahora comenzará la compilación en caso de dependencias nos lo hará saber, en caso de que todo esté correcto tardará un buen rato dependiendo de la máquina

make && make install

Y ya tenemos instalado Node.js y su gestor de paquetes npm

 

Instalando Less

Ya que tenemos instalado node.js y su gestor de paquetes lo mas sencillo es que lo usemos, para ello ejecutaremos lo siguiente

npm install less

Y ya tendríamos instalado less, podríamos ejecutar los ejemplos de la web oficial

 

Instalando lessc

Para finalizar os voy a explicar como he instalado lessc para poder tratar ficheros less con un comando.

Para empezar tenemos que bajarnos el código fuente de less desde su repositorio https://github.com/cloudhead/less.js/tarball/master

(Los nombres de ficheros y carpetas puede variar dependiendo de la versón)

Una vez lo tenemos descargado pasamos a descomprimirlo y desempaquetarlo como hicimos con node.js

tar zxvf cloudhead-less.js-v1.0-556-gb235734.tar.gz

Una vez lo tenemos pasamos a meterlo donde corresponda para que el path de nuestro sistema operativo pueda usarlo. Para ello realizamos los siguientes pasos.

  • Cambiamos el nombre de la carpeta que acabamos de crear y la movemos a /usr/local
    • mv cloudhead-less.js-b235734 ./lesscss
    • mv ./lesscss /usr/local
  • Nos movemos a la carpeta /usr/local/bin y creamos un enlace simbólico del ejecutable de lessc
    • cd /usr/local/bin
    • ln -s ../lesscss/bin/lessc 
Y con esto ya tendríamos instalado lessc en nuestro sistema.

Conclusión

Aunque el diseño no es mi fuerte y aún no controlo demasiado CSS creo que no es mala idea trastear algo con este tipo de herramientas.

¿Por que he usado Less y no Sass? por que es el que conocía, quizá con el tiempo pruebe Sass

En breve os explicaré como integrarlo con Django.

Espero que os haya resultado interesante.

 

Referencias

Install lessc on your server (Debian)

may
26
Posted by Moises Gallego at 1:07 am

Django Nginx

Hoy os voy a explicar como arrancar una aplicación Django con un servidor Nginx.

La propia documentación de django lo explica muy bien, así que aquí voy a poner pocas explicaciones, me voy a limitar a contar como se hace, sin entrar en demasiados detalles.

 Instalando

Los paquetes que necesitamos, sin contar el propio django y todas sus dependencias, son los siguientes:

  • Nginx
  • python-flup

En mi caso que instalo desde una máquina Debian lo he realizado tranquilamente con apt.

apt-get install nginx python-flup

 

Arrancando Django como fastcgi

El funcionamiento es nuy sencillo, nosotros corremos la app django a través de fastcgi en un puerto concreto y con nginx capturamos la información de ese puerto y la servimos desde el puerto o ruta que deseemos.

Para lanzar la app django lo hacemos de la siguiente manera

python ./manage.py runfcgi host=127.0.0.1 port=8080

Explicando un poco por encima lo que hacemos con esta orden sería lo siguiente: Lanzamos a través de cgi la app en localhost por el puerto 8080

Bien, con esto ya tendríamos nuestra aplicación corriendo, pero aún no la estamos sirviendo de ninguna manera.

 

Configurando Nginx

Lo primero que debemos hacer, para hacer las cosas correctamente, es crear un archivo de configuración independiente para este proyecto, para eso:

Creamos un fichero nuevo en la ruta de sites-available, en mi caso estaría en /etc/nginx/sites-available.

Lo llamaremos por ejemplo mi-proyecto.conf. Así que tendríamos un fichero /etc/nginx/sistes-available/mi-proyecto.conf

Bien, pues ahora cargaremos ese fichero con la configuración que necesitemos, voy a intentar explicarlo para que se entienda, es bastante sencillo.

server {

# Este sería el puerto en el que serviría Nginx
listen 80;

# El nombre del servidr
server_name miservidor.es;

# La ruta de los logs, el de acceso y el de errores
access_log /var/log/nginx/mi_proyecto.access.log;
error_log /var/log/nginx/mi_proyecto.error.log;

# Esta sería la ruta de estáticos y a través de que ruta la servirá nginx

location /static/ { # STATIC_URL
alias /home/www/rutadelproyecto/static/; # STATIC_ROOT
expires 30d;
}

# Igual que en el caso anterior, pero en este caso de los media

location /media/ { # MEDIA_URL
alias /home/www/rutadelproyecto/media/; # MEDIA_ROOT
expires 30d;
}

# Y aquí estaría lo mas importante, la configuración de cgi que le hemos dado a Django

# Como veis son los datos que le hemos proporcionado al comando

location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8080;
}
}


Hasta aquí sería el fichero de configuración, ahora para que se active dicha configuración debemos crear un enlace simbólico del fichero en la carpeta sites-enabled, para ello:

ln -s /etc/nginx/sistes-available/mi-proyecto.conf /etc/nginx/sites-enabled/mi-proyecto.conf

 

Finalizando

Finalmente reiniciamos nginx ( /etc/init.d/nginx reload ) para que coja los nuevos cambios y si accedemos a la ruta del servidor ya deberíamos poder ver nuestro proyecto.

 

Consideraciones finales

Como veis hemos unido Ngnix y Django, pero por ejemplo Djnago no arranca automáticamente al arranque de la máquina, para ver un ejemplo de como hacerlo podéis consultar las referencias finales del artículo.

Si se diera el caso de que no funcionase, puedes probar a lanzar el siguiente comando, a mi personalmente no me hizo falta

fastcgi_split_path_info ^()(.*)$;

Conclusión

Preparar una máquina para servir una aplicación Django con un server Ngnix nos puede llevar quince minutos, y eso contando el tiempo de instalación, así que no hay excusa para no probarlo.

Para cualquier duda puedes dejar un comentario, intentaré contestar cuando me sea posible.

Espero que os haya sido de utilidad

 

Referencias

Django&Nginx

 

may
25
Posted by Moises Gallego at 7:50 am


¿Que ha sido de mi hasta ahora?

 

Mi vida laboral

Para los que me conocéis ya sabréis que llevaba un tiempo (muchos, muchisimos años ) intentando dar un giro a mi carrera profesional. Llevaba mucho tiempo con una tecnología que sin gustarme demasiado estaba muriendo poco a poco y necesitaba un cambio.

Tras pedir una y otra vez en las diferentes empresas en las que he trabajado un cambio de tecnología y recibir solamente negativas (hay poca gente que trabaje en la tecnología en la que lo hacía yo) y respuestas como “es que tienes poca experiencia en la tecnología X” decidí coger el toro por los cuernos y crear mi propia experiencia.

Comencé a auto-formarme, leyendo todos y cada uno de los manuales que caían en mis manos (el kindle echaba humo) y a crear un pequeño proyecto personal.

También empecé a frecuentar reuniones de programadores (en el último año he conocido mas programadores de verdad que en toda mi vida laboral) donde conocí a grandes profesionales de los que aprendí muchisimo.

Tras todo eso al final lo conseguí, una empresa, Dext.es, por fin me dio la oportunidad de trabajar en su equipo con PHP (symfony2) y demostrar que valgo para algo mas que para crear procesos de base de datos. Les estaré eternamente agradecido por la oportunidad que me han dado y por todo lo que estoy aprendiendo con ellos.

Y a eso es a lo que me dedico profesionalmente, a lo que realmente me gusta, a programar.

Mi vida personal

Esto ha cambiado poco últimamente, mi peque ha cumplido ya el año y medio (la semana pasada) y está mas trasto que nunca. Me tiene loco.

 

Mis proyectos personales

Debido a los dos puntos anteriores están un poco parados últimamente, el primer punto me quita la mayoría del día y el poco tiempo que me queda no estoy dispuesto a quitárselo al punto dos.

Lancé el proyecto que he comentado anteriormente,  Picmnt, aunque no tiene demasiado movimiento para mi ya ha sido un triunfo por dos motivos. El primero que me ha enseñado a programar como nunca lo había hecho (bien) y el segundo por que ha conseguido motivarme y ayudarme a dar el gran salto profesional que llevaba tanto tiempo esperando.

Tengo otros proyectos mas pequeños parados, pero son menos importantes.

¿Que va a pasar con estos proyectos? Pues para eso he escrito este post (lo siento si te has aburrido leyendo lo de arriba, por que la chicha empieza ahora)

 

Nuevas metas

 

¿Que pretendo hacer ahora?

Pues lo que llevo haciendo todo este tiempo, seguir aprendiendo e intentando mejorar.

Para eso no hay nada como un cambio drástico. Voy a comenzar Picmnt de nuevo.

Pienso rediseñarlo completamente, desde 0, volviendo a la primera funcionalidad que se me ocurrió y cambiando todas las tecnologías que usa.

 

¿Que nuevas tecnologías voy a usar?

Sobre todo dos: Django (Backend) y Javascript (Frontend)

Ya que se trata de un proyecto personal y que siempre ha estado mas enfocado al aprendizaje que al negocio he pensado en ir utilizando todas las tecnologías nuevas o punteras, que ahora están tan de moda. Bueno Django la usaré por que me encanta Python, estoy enamorado de este lenguaje desde que lo descubrí hace ya algún tiempo.

Estas son algunas de las tecnologías, lenguajes o framewoks en los que he pensado.

Django, Jquery, Nginx, Redis, MySql, Debian, Backbone.js, Jquery/JqueryUI/JqueryMobile, Node.js, Less, HTML5, RabbitMQ, WebSockets… y todo lo que se me ocurra o me apetezca.

Aunque tengo que decir que si veo que no es viable no usaré las que no me apetezca.

 

¿Cuando acabaré?

Desde el día que comencé a crear la aplicación ya sabía que nunca acabaría. No tengo intención de acabar nunca, siempre habrá algo nuevo que hacer y si me quedo sin ideas empezaré alguna en paralelo o comenzaré de nuevo

 

¿Y como coño #!$% voy a hacerlo sin tiempo?

Pues muy fácil, sacándolo de alguna parte.

Llevo unas semanas poniendo al día (cogiendo ideas, leyendo manuales, tutoriales, etc) y todo ello en dos sitios: en el metro antes y después de trabajar y en casa, a las 5:30 de la mañana.

Estoy acostumbrando a mi cuerpo a dormir un poco menos (6 horas de media) y ya se me hace mas llevadero el madrugón diario, eso si, siempre que la peque me deje dormir bien por las noches.

 

¿Y Symfony2?

He aprendido mucho gracias a Symfony2 y ya que trabajo con él todos los días y que cada día que pasa aprendo algo nuevo no dejaré de trabajar con él.

Podréis seguirme viendo en symfony-madrid e incluso la semana que viene en desymfony.

 

¿Y todo esto por que?

Por que me apetece.

Después de mucho esfuerzo creo que me merezco una recompensa, y esa recompensa es hacer un proyecto en las tecnologías que me apetece y no en las que debería aprender para cambiar, como había hecho hasta ahora.

 

Resumiendo

Mi intención es desarrollar de nuevo Picmnt aprendiendo todo lo que quiera y pueda, sin plazos, sin restricciones y así, poco a poco, poder compartir todo lo que vaya aprendiendo con quien le interese.

Así que no me alargo mas. Nos vemos por aquí

feb
02
Posted by Moises Gallego at 11:50 am

PicmntAprende. Enseña. Comenta
La nueva forma de disfrutar la fotografía

Hace ya un tiempo que ni escribo por aquí ni por twitter ni facebook ni nada, y aquí viene  la explicación.

Hace unos meses que os contaba por twitter que estaba migrando de servidor, los que seáis asiduos sabréis que hace un tiempo era normal que el servidor se cayese casi todos los días, eso ya parece estar solucionado, pero van apareciendo otros errores que poco a poco, según voy teniendo tiempo, voy arreglando.

A parte de eso también me encuentro en una etapa profesional en la que me empiezo a plantear cambios y eso no es nada fácil, me paso mas tiempo estudiando, asistiendo a conferencias y cursos que en casa disfrutando de mi familia.

Debido a ese cambio profesional que me estoy planteando he decidido comenzar con algunos proyectos personales, y hoy os quería presentar a la joya de la corona, Picmnt, un nuevo sitio de fotografía que ya os iré descubriendo en que consiste.

Os adelanto de que no se va a tratar de un blog, ni de un foro, ni de una red social, aunque espero que englobe parte de todo eso. Por ahora estoy con el desarrollo de la versión 1, aunque estoy a poco de terminarla y poder lanzarla, así que si estáis interesados pasaos por la web http://picmnt.com y registraos para estar informados, y así poder disfrutar de esta nueva experiencia desde el comienzo.

En breve os iré contanto mas detalles sobre el proyecto.

Como estoy intentando aprender todo lo que se puede sobre el mundo del desarrollo ágil, Symfony etc, pues creo que debería aprovechar para devolver a la comunidad todo lo que estoy aprendiendo gracias a ponencias, tutoriales, blogs… que mucha gente comparte por el mero hecho de ayudar. Así que aquí está mi primera pequeña aportación, que espero que no sea la última, un vídeo donde monto Capifony para desplegar aplicaciones Symfony2. El vídeo no es gran cosa, a mi se me oye regulero :) , se oye mas a la niña de fondo llorar, y encima he cortado el último minuto de vídeo, la despedida, pero por el lado bueno, es un minuto menos que tenéis que aguantarme :) Aquí tenéis el vídeo y la presentación que he usado como guión. Espero que os sea de utilidad, para cualquier cosa ya sabéis como contactar conmigo.

Vídeo

Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git from moises gallego on Vimeo.

Presentación

sep
02
Posted by Moises Gallego at 9:58 pm
symfony madrid

Symfony Madrid - Code Kata 2ª Reunión

El pasado miércoles día 31 de Agosto tuvo lugar la tercera reunión del grupo Symfony Madrid y esto es de lo que hablamos y las impresiones que me llevé de dicho encuentro.

He de contar que aunque sea la tercera reunión el grupo aún no había acabado de arrancar completamente, ya que la segunda reunión no tuvo que ver nada con la primera y se retomó la lista de correo para comenzar de nuevo con este grupo, por eso quizás esta reunión debería ser la segunda y no la tercera.

Como ya he dicho llevábamos desde la anterior reunión reviviendo la lista de correo y a través de esta estuvimos tratando los temas que íbamos a tocar en la reunión.

El tema mas importante era “que temas íbamos a tratar” :) y como pensábamos llevar el grupo, a parte de dar algún tipo de charla.

 

Presentación

Empezamos como debe ser, conociéndonos todos, Symfony_Madrid pretende ser un grupo abierto lo mas horizontal posible y para eso nada mejor que sentarnos todos en circulo, hacer una pequeña presentación de nosotros y tratar los puntos que habíamos discutido por la lista de correo.

Los puntos que se trataron, si no se me olvida ninguno fueron:

  • Portal a desarrollar
  • Fechas y lugares de reuniones (aunque esto ya estaba decidido)
  • Cuentas de difusión (Twitter, Lista de Correo, Facebook, Google+)
  • Método de trabajo para el proyecto del grupo a través de GitHub
Después de discutir un poco los puntos y de un problema con el portátil de @Osukaru pasamos a presentar lo que había hasta la fecha del proyecto

El Proyecto

Como no siempre hay un tema del que hablar o alguien dispuesto a dar el tipo y salir a la palestra a contarnos algo decidimos crear un proyecto colaborativo que fuésemos desarrollando entre toda la comunidad y del que pudiésemos hablar en las siguientes reuniones. Así aprenderíamos con la experiencia, ya no solamente Symfony que era nuestro cometido, si no aprender a desenvolvernos en este tipo de proyectos.

El proyecto, para que no fuese el típico “Pet Project” y nos sirviese de utilidad decidimos que no habría nada mejor que crear el portal de la propia comunidad, así que eso es lo que estamos haciendo, crear www.symfony-madrid.es.

En principio a fecha de hoy la aplicación tiene poca funcionalidad, pero mas o menos se puede ver en que estamos trabajando y esperemos que con el tiempo se convierta en un punto de referencia para la gente que quiere comenzar a desarrollar con SF2.

 

El “otro” proyecto

Después de la charla inicial de Oscar y de discutir las funcionalidades que mas prisa corrían (aunque se desarrollará dependiendo de quien pueda o quiera y del tiempo que pueda disponer) Carlos Benitez (@EtnasSoft) nos contó en primicia el proyecto que al día siguiente pretendía presentar a través de Twitter.

El proyecto en cuestión, aunque se trata de un proyecto suyo (enfocado a la comunidad open source), estaba muy enfocado a nuestro grupo, ya que pretende construir la nueva versión (v3) de Openlibra en una plataforma SF2 y a través de GitHub, así que nada mejor que nuestra comunidad para dar a conocer el proyecto y quizás así sacar alguna buena aportación, que seguro que la sacará viendo la gran idea del proyecto y el nivel técnico que se ve en el grupo.

Aquí tenéis toda la información sobre el proyecto, que aunque no estéis interesados en colaborar os recomiendo estar al tanto del desarrollo y sobre todo de cuando lo lancen

Resumiendo

En esta reunión fijamos las bases de lo que será tanto esta comunidad, como el proyecto que acabamos de comenzar. En la reunión se vio muy buen rollo, mucho nivel y sobre todo muchas ganas de aprender y colaborar, que es lo que hace que este tipo de iniciativas salga adelante.
Desde aquí os animo a que os paséis por el portal que estamos montando (Symfony-madrid) que aunque apenas cuenta con funcionalidad si que podéis encontrar enlaces en la cabecera, como por ejemplo, la cuenta de Twitter oficial y el grupo de trabajo en GitHub donde se encuentra el proyecto. Y sobre todo no dejéis de pasaros por la lista de correo donde podemos tratar todo lo que queráis.

 

Nos vemos en el próximo Symfony_Madrid ;)

 

Como ya os he explicado anteriormente el motivo por el que estoy escribiendo este blog es por el hecho de compartir las cosas que voy aprendiendo o uso a diario y creo que pueden llegar a interesar a otras personas.

Con este post en especial me gustaría empezar una serie de artículos en los que ir montando un entorno de desarrollo lo mas productivo posible y con un coste 0, si, a través de software libre o en su defecto gratuito. Como por ejemplo, control de versiones, integración continua, test unitarios, etc.

Para los ejemplos y herramientas que voy a explicar usaré un ejemplo de desarrollo en Symfony2 que es lo que estoy desarrollando a título personal en estos momentos, pero muchos de los ejemplos servirán para varios lenguajes o entornos de desarrollo.

¿Que es un máquina vitual?

Desde mi punto de vista uno de los mayores avances que se han dado en los últimos años en este mundo ha sido la virtualización de equipos, tanto en nuestros propios PCs como en la nube, término que está actualmente en boca de todos.

Creo que la wikipedia deja muy claro lo que es en su definición En informática una máquina virtual es un software que emula a una computadora y puede ejecutar programas como si fuese una computadora real. Aún así me voy a tirar a la piscina y os voy a explicar yo mismo en que consiste la virtualización.

¿un ejemplo?

Imaginemos que tenemos un equipo de desarrollo Windows , todo muy bonito, un 7,  muy potente, 8 núcleos y 16Gb de RAM, pero por desgracia nuestro entorno de producción no va a ser así de bonito. Se tratará de una máquina con un solo núcleo, y 512Mb de RAM. pero eso sí, con un sistema operativo de los buenos, con un GNU/Linux.

Hasta aquí bien, ahora tenenos dos opciones.

  1.  Podemos desarrollar nuestra aplicación web,  subirla al servidor de producción y rezar al FSM para que todo salga bien y no tengamos que restaurar todo.
  2. Podemos montar un servidor de testing o preproducción igual al de producción y probar todo lo que hagamos antes de subirlo al servidor de producción.

Creo que queda clara cual es la opción correcta, a no ser que tengamos mucha fe en el FSM. Y aquí entran en juego las máquinas virtuales.

¿Por que una máquina virtual?

Si estamos desarrollando en la nube ya de por si lo haremos con máquinas virtuales, pero imaginemos por un momento que desarrollamos en máquinas propias, para poder realizar el ejemplo anterior deberíamos comprar dos máquinas iguales para que los entornos sean iguales y no haya problemas, pero y si os dijera que podemos crear una máquina igual que la que tenemos dentro de otra máquina, independientemente de arquitetectura, SO, etc. Pues para eso usaremos una máquina virtual.

Dentro un equipo cualquiera, incluso dentro de nuestro flamante equipo de desarrollo del que ya hemos hablado anteriormente, podremos montar el equipo que queramos, con las especificaciones de hardware que deseemos, y así ahorrarnos bastantes quebraderos de cabeza y sobre todo dinero.

VirtualBox

Virtualbox es un software de virtualización disponible para varías plataformas, existen varios pero para el caso que vamos  a tratar creo que este software nos da todas las prestaciones que necesitamos.

Yo, aunque os haya puesto el ejemplo del entorno Windows he de reconocer que no lo uso, soy usuario de GNU/Linux desde hace muchisimos años y solo uso Windows por que por desgracia me obligan en el trabajo, así que todo el ejemplo que váis a ver a continuación está realizado en una distribución Ubuntu.

(más…)

 

No se si os sobrará el tiempo, a mi personalmente no, por este motivo he decidido compartir mis trucos, técnicas, consejos, como queráis llamarlo con todos vosotros, para hacer que el día nos cunda un poco mas, que a mi personalmente siempre me faltan algunas horas.

Hay días en los que estamos mas ociosos, cansados, desmotivados y por que no reconocerlo, nos gusta procastinar de vez en cuando. En esos momentos abrimos nuestro agregador de RSS o nuestras redes sociales y empezamos a buscar información, a veces leyendo por leer y desaprovechando totalmente el tiempo, con lo cual lo único que conseguimos es tener aún menos ganas de hacer lo que realmente deberíamos estar haciendo, sea lo que sea.

Para esos momentos os voy a hablar de una herramienta, Instapaper.

¿Que es Instapaper?

Instapaper es un sencillo servicio online totalmente gratuito que sirve para almacenar enlaces a páginas web que queremos leer en otro momento.

Cuando estamos buscando información o sencillamente encontramos algo pero no es el momento de leerlo recurrimos a acciones como guardarlo en favoritos, usar servicios como evernote e incluso apuntarlo en un post-it y para evitar todo eso es por lo que vamos a usar Instapaper.

El uso de instapaper es tan sencillo como pulsar un enlace, ese enlace que nos lo suministran en la misma web en forma de botón se agrega a favoritos, cuando queramos almacenar la dirección de la web que estamos visitando pulsamos sobre dicho enlace y ya está, así de sencillo, ya tenemos guardado el enlace para cuando queramos consultarlo.

Una vez almaceno tenemos la opción de leerlo (para eso está diseñado), almacenarlo y alguna cosa mas.

 

Integración con Twitter

¿Quien de los aquí presentes usuarios de Twitter no ha marcado como favorito nunca un Twit por que contiene un enlace que queremos leer en otro momento? Yo personalmente lo he hecho muchas veces hasta que encontré herramientas como Instapaper o ReadItLater.

Estas herramientas se integran perfectamente con la mayoría de aplicaciones móvil, no de solo de twitter, también otras como la applicación de IOS de reddit o muchas mas.

Y esto es lo mas sencillo, una vez tenemos un twit con enlace y no queremos leerlo en ese momento, bien por que no podamos, no queramos o la conexión no sea muy buena, pulsamos en “leer despues” y automáticamente se almacena en nuestra lista.

 

Integración con Kindle

Como ya he dicho existen mas servicios de este tipo, pero aquí viene el porque he decidido usar y hablar de Instapaper, por su integración con Kindle.

A parte de la opción que vemos en la pantalla principal de exportar a varios formatos, instapaper cuenta con la opción de enviarnos las webs en formato mobi a nuestro Kindle, simplemente tenemos que configurarlo tal y como nos explican en la web.

Podemos seleccionar que nos los envía una vez al día o cada dos días, y nos enviará un archivo con todos los artículos preparados para el Kindle, entre los cuales podremos saltar con las teclas de cursor.

Así que así de sencillo, yo por ejemplo, que cuento con Wifi en el trabajo, antes de irme a casa sincronizo el Kindle y así puedo leer todo lo que no he podido en el trabajo durante mi trayecto en el metro, aprovechando mas las horas de trabajo y siendo mas productivo.

Espero que os haya servido de ayuda, como podéis ver estas herramientas tan sencillas se pueden exprimir hasta límites insospechados, espero poder explicaros mas cosillas, que aún siendo tan sencillas pueden llegar a ser muy útiles.

jul
11

El pasado día 1 de Julio tuve el placer de estar en Castellón en  las Jornadas Desymfony y os voy  a contar un poco la impresión que me ha quedado.

Mis primeras jornadas

He de ser sincero y decir que #desynfony fueron las primeras jornadas, talleres, ponencias o como queráis llamarlo a las que he asistido, bueno una vez estuve en una conferencia de RMS pero no es lo mismo.

Al principio estaba un poco nervioso, solo conocía a una persona de todas las jornadas y encima los dos íbamos, a parte de a aprender,  a hacer algo de networking ya que estamos replanteándonos un cambio en nuestra trayectoria profesional.

Llegamos a Castellón el jueves por la tarde y aprovechamos para ir a tomarnos unas cañas por el pueblo, eso sí, sin pasarnos, que al día siguiente sería un gran día.

 

El primer día

Estaba un poco perdido, no sabía si me iba a enterar de que es lo que se hablaba allí y de si yo estaría a la altura. Portátil en mano, arranqué Ubuntu y abrí mi flamante Emacs, dispuesto a comenzar a tocar código.

Al principio intenté revisar el código a la vez que lo explicaban en las diferentes ponencias, pero al final me di cuenta de que no era capaz de estar a las dos cosas a la vez, cerré el portatil, me acomodé en la silla y a disfrutar de las ponencias. Fue lo mejor que pude hacer,  parando de vez en cuando para tomar algún que otro apunte, pero sobre todo prestando atención en intentando enfocar lo explicado con el proyecto que tengo entre manos.

Llegó la hora de la comida.

Nos metimos una paellita muy rica, y unas cervecitas. Conocí a unos chicos muy majos de Ofertix y comencé a obsesionarme un poco menos con las ponencias, comprendí que despues de casi 5 meses que llevo trasteando con Symfony2 hay pocas cosas que me den miedo.

Después de la comida todo fue coser y cantar, unas cuantas ponencias, muy interesantes y útiles todas y a cenar.

La cena fue para mi uno de los puntos mas interesantes del día, yo, no familiarizado con este tipo de eventos no me podía imaginar la cercanía con la que me llegaría a encontrar con los ponentes durante la cena, charlando distendidamente sobre todo tipo de temas, sobre todo técnicos, claro.

 

Segundo día.

Mucho mas relajado, aunque no habiendo dormido mucho, comenzamos con muchas ganas nuestro segundo día de ponencias. A cada cual mas interesante y esta vez no todas trataban directamente con Symfony2, algunas trataban de rendimiento o herramientas en concreto y otras sobre Symfony1.

De comer Fideuá (no se si se escribe así, no aparece en rojo en el corrector así que será así :) )

La tarde, he de reconocer se me hizo un poco mas pesada que la anterior, pero no por las ponencias, ni mucho menos, la verdad es que ya se empezaba a notar un poco el cansancio, y he de reconocer que al no conocer Symfony1 (he comenzado directamente en 2) quizás presté un poco menos de atención que en las anteriores.

Segundo día cenando y una maravilla, tuve la ocasión de aburrir a los ponentes que cenaron conmigo sobre temas como tests unitarios, funcionales, de integración e incluso con el interminable flame de Vim vs Emacs :) . Unas copas  y una de las mejores charlas que mantuve durante todo el fin de semana, muy motivadora.

 

Tercer día – Día de talleres

La verdad sea dicha estaba reventado :) menuda nochecita.

Este día pintaba mas relajado, por desgracia ya había menos gente que los días anteriores. Tuve el placer de realizar una Kata, lo cual me hacía muchísima ilusión y lo disfruté bastante y volver a recordar todas las grandes virtudes de GIT.

Después de los talleres comenzamos a charlar sobre la comunidad hispana de Symfony y sobre trabajo, lo cual me entusiasmo mucho y me motivó mas de lo que nada me había motivado antes (de ahí que haya comenzado este blog) y descubrí que fuera de las cárnicas hay incluso gente que es feliz programando (todo una utopía para mi que espero alcanzar algún día)

Después lo mas duro, volver a casa tras un fin de semana inmejorable.

 

Conclusión

Que voy a contaros que no sepáis los que estuvieseis allí, que fue de un nivel y una calidad increíble, tanto la organización como los ponentes. Que conocí a grandes profesionales y a grandes personas y que espero algún día poder trabajar con alguno de ellos.

No ganñe ningún iPad, ni camiseta, pero si es posible el año que viene estaré allí el primero.

 

Para acabar me gustaría agradecer a toda la organización lo que habéis montado, y pedir perdón por no nombraros uno a uno, he conocido a tanta gente que ocuparía un solo post agradeceroslo a todos.

Nos vemos en #desymfony.

 

He tenido que mover los datafiles de la base de datos del curro a otro disco duro por que los teníamos bastante petado.

Para renombrar o mover un datafile de un tablespace debemos seguir los siguientes pasos.

Primero ponemos el tablespace en modo solo lectura para asegurarnos de que no hay ninguna transacción en curso.

ALTER TABLESPACE <nombre del tablespace> READ ONLY;

Una vez lo tenemos en solo lectura (podemos comprarlo intentando realizar algún cambio en los datos) lo ponemos en modo offline.

ALTER TABLESPACE <nombre del tablespace> OFFLINE;

En este punto accedemos al equipo y movemos o renombramos los datafiles como deseemos.

Y ahora asignamos el nuevo datafile al tablespace

ALTER TABLESPACE <nombre del tablespace> rename datafile ‘<ruta antigua>’ TO <nueva ruta>’;

Una vez hecho esto volvemos a dejar el tablespace como estaba.

ALTER TABLESPACE <nombre del tablespace> ONLINE;

ALTER TABLESPACE <nombre del tablespace> READ WRITE;

Enlaces relacionados:

http://www.adp-gmbh.ch/ora/admin/move_datafiles.html

http://www.programacion.com/articulo/estructuras_de_oracle_89/3