Victor Castell
Posts
-
August 31, 10:58 AM
Autoupdate en Git usando hooks
Dejo aquí una pequeña receta para configurar un repositorio Git para que se actualize automaticamente al recibir un push. Esto es útil para seguir un pequeño workflow de deployment en la fase de desarrollo. De esta forma simplemente seguiremos los siguientes pasos:1. Creamos un repositorio nuevo en el servidor de destino:mkdir proyecto cd proyecto git initCon esto tendremos un repositorio nuevo con su copia de trabajo (working copy) listo para recibir los datos que queremos enviarle.2. Seguidamente ejecutamos el siguiente código que nos prepara el repositorio para realizar el update automaticamente mediante el hook post-receive.1 2 3 4 5 6 7 8
cat >> .git/hooks/post-receive <<-EOA#!/bin/shcd ..env -i git reset --hardEOAchmod +x .git/hooks/post-receive && git config receive.denyCurrentBranch ignoreEn la carpeta hooks que encontramos en el directorio .git de cualquiera de nuestros repositorios tenemos una serie de scripts que podemos habilitar para realizar tareas de cualquier tipo sobre nuestro sistema o sobre el repositorio cuando ocurren diferentes sucesos en el proceso de versionado.3. En nuestra maquina local, añadimos un nuevo destino remoto que apuntará a nuestro servidor remoto:git remote add devel root@servidor.com:/home/usuario/public_htmlY listo. Solo a partir de ahora para publicar el proyecto en el servidor web solo hace falta realizar un push sobre el nuevo destino que hemos configurado:git push devel masterBasado en el post de: -
July 21, 01:26 PM
Ubercart 2.3
Ha sido liberada la versión 2.3 de Ubercart, que entre las novedades importantes implementa las plantillas de factura con el sistema de plantillas interno de Drupal. Un gran update!
-
July 20, 01:44 PM
Redmine 1.0 Released
Redmine llega a la versión 1.0http://redmineblog.com/articles/redmine-1.0.0-released/En season trabajamos con Redmine desde hace años y nos funciona perfecto. -
January 13, 05:48 PM
Objetivos 2010
Update: Parece que puedo ir tachando algunas cosas de la lista. Esto parece ir por buen camino... aún queda un poco de año
Como lista de buenos propósitos para el 2010 voy a hacer una recopilación de lo que creo que sería ideal para este nuevo año.
- Cambiar mi blog de diseño... :)
- Retornar mas a la comunidad, participando en mas proyectos Opensource y mantener vivos en los que ya participo.
- Ir a mas eventos de Networking, conocer a mas gente y presentar lo que hacemos en Season.
- Seguir reciclandome y aprendiendo nuevas cosas.
- Programar mi primera aplicación para iPhone y Android
- Trabajar mas con Ruby on Rails.
- Mejorar mis conocimientos del entorno de Flash i AS3.0
- Asistir a, por lo menos una conferéncia de Data Visualization, Arte Digital o Interactividad.
Veremos que nos depara este próximo año y deseo que sea el año de Season, tenemos muchos y buenos proyectos horneandose.
-
January 11, 08:46 PM
Pasar parametros a bloques de vista en Drupal
En ocasiones nos encontramos con la necesidad de que el bloque que hemos generado con Views 2 modifique su contenido basandose en los parametros que obtenemos de la URL de un sitio elaborado con Drupal. El problema que encontramos es que no podemos pasar parámetros a los bloques desde Views 2. Simplemente no funciona. Pero vamos a ver como podemos solucionarlo. El workaround consiste en forzar el envío del parámetro al bloque mediante una configuración determinada del parámetro requerido. Los pasos que hay que seguir son: Agregamos el parámetro requerido a la configuración de parametros de la View y lo configuramos como muestra la siguiente imágen: Como se puede ver en el argumento PHP se retorna un valor constante a modo de ejemplo. El bloque recibe como parámetro el valor que retornemos en este fragmento de PHP y a nosotros nos interesa retornar un valor basado en la URL que el usuario está visitando. Para ello vamos a escribir como valor de retorno un código parecido al siguiente:
$path = drupal_get_path_alias($_GET[‘q’]); //get URL alias $path = explode(‘/’, $path); //break path into an array if ($path[0] == ‘projects’ && $path[1] != ”) { return $path[1]; }Con esta operación podremos enviar al bloque casi cualquier parámetro que nos interesa y configurarlo para actuar según nos interese. Espero que sea de ayuda. Referencias: http://www.ridgesolutions.ie/index.php/2009/01/19/passing-an-argument-to-a-block-view-in-drupal-6/ -
December 07, 03:34 PM
Manifiesto en defensa de los derechos fundamentales en internet
Hace tiempo que no publicaba un post, creo que la ocasión se lo merece. Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que... 1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión. 2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web. 3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional. 4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes. 5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo. 6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir. 7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre. 8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro. 9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras. 10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.
-
July 15, 11:35 AM
RubyAMF
Despues de mucho tiempo sin escribir... :P diré lo siguiente: Hace un tiempo que estoy trabajando en RubyAMF. Este plugin para Ruby on Rails permite la comunicación entre Actionscript y Rails usando el protocolo AMF. La comunidad de usuarios no es muy grande pero es bastante compacta. Entre ellos Tony Hillerson co-autor del libro Flex on Rails y hasta hace poco, miembro de EffectiveUI así como Aaron Smith, programador interactivo y primer creador de RubyAMF. Ahora tomo el relevo y paso a coordinar el proyecto en google code http://code.google.com/p/rubyamf/ y a administrar el blog donde podras conocer todas las novedades del proyecto en http://blog.rubyamf.org/
-
March 23, 12:09 AM
Como usar una BD existente en Rails y usar migraciones
Primero deberemos configurar la BD en el archivo database.yml Después podemos ejecutar rake db:schema:dump para generar el archivo db/shema.rb que contendra la estructura de la base de datos. Renombramos esa migración como schema_base.rb Creamos una primera migración usando ese esquema:
class CreateTables < ActiveRecord::Migration def self.up `cp #{RAILS_ROOT}/db/schema_base.rb #{RAILS_ROOT}/db/schema.rb` Rake::Task['db:schema:load'].invoke end def self.down end endEntonces se puede empezar a escribir migraciones cuidando que siempre sea esta la primera. Es ideal hacer modificaciones a la BD para que sea mas adecuada para trabajar con Rails. -
March 15, 02:24 PM
Flex on Rails
Hace un tiempo que estoy profundizando en el lenguaje Ruby y en Ruby on Rails, framework ampliamente conocido y reconocido. Una de los puntos fuertes de Rails es su ORM, basado en el patrón Active Record. Estoy viendo que es muy sencillo utilizar esta característica de RoR para desarollar web services basados en RoR para que sirvan datos a aplicaciones externas. Si hablamos de Flex o de Flash, vemos que podemos realizar una comunicación mediante diversos formatos de datos, entre ellos AMF, este formato es el mas óptimo para la transferencia de datos entre Servidor - Flash. Leyendo este post sobre ActiveRecord y Flex me entero que existe una extensión de Ruby para transmitir datos AMF, llamada RubyAMF, y que ahora incluye un plugin de Rails que permite la integración total de una aplicación Rails con el formato AMF. Hay mas información en la web de RubyAMF Una combinación que va a dar que hablar sin duda, a mi por lo menos :)
-
March 15, 02:07 PM
Cambio de aires
Pues hay cambios en mi vida, después de una temporada colaborando con mis ex-compañeros en Widgadget, he decidido liarme la manta a la cabeza y empezar una aventura nueva como "emprendedor". De ahora en adelante paso a formar parte del equipo de Season Advertising un estudio de producción interactiva donde tiene cabida todo lo que está relacionado con la creatividad i el mundo web. En Season estamos al día en técnologias web, programación, y usamos cada día herramientas que nos permiten ofrecer la mejor solución a los retos que plantean nuestros clientes. Espero aprender mucho en esta nueva etapa y potenciar mis conocimientos en buenas practicas y tecnologías creativas.
-
February 09, 12:29 AM
Problema con Glassfish server adapter en Eclipse Ganymede
He estado configurando el server adapter para Glassfish en Eclipse Ganymede tal y como indican las instrucciones que hay en la página de descarga del plugin de Sun https://glassfishplugins.dev.java.net/ pero después de seleccionar el adaptador en "Aditional Server Adapters" y realizar la instalación correctamente, no aparece en la lista de servidores. Buscando en google me he topado con este blog en el que se explica la instalación manual http://kaypress.kayrin.com/?p=220 Esto resuelve el problema, pero lo curioso es que me he dado cuenta que el adaptador sugerido por Eclipse es la versión 1.0.17 que no es compatible con Ganymede, y la versión de descarga en el blog es la 1.0.2 que soluciona el problema y se instala correctamente en Ganymede.
-
January 08, 12:25 PM
Nueva area de proyectos
Estas vacaciones he tenido un poco de tiempo para poder instalar un software para gestionar mis proyectos personales. El gestor en cuestión es Redmine, un gran software parecido a Trac, pero programado en Ruby On Rails y que a mi personalmente me parece muy superior a este último y no tiene nada que envidiar a programas comerciales del mismo tipo. Además es Opensource y se distribuye libremente. En resumen, para acceder a las descargas de mi software a partir de ahora se puede hacer en esta dirección: http://redmine.victorcoder.com También hay un enlace en la columna de la derecha, en la sección de links "Personal"
-
November 13, 08:11 PM
Widgadget en Open Web Awards
Widgadget forma parte del listado de participantes internacionales de los Mashable Open Web Awards 2008. Es un premio internacional en el que participan cientos de personas de toda la red. A través de las votaciones se evalúa la popularidad de cientos de sitios web.
-
November 01, 02:18 PM
Zend Framework y el API de Twitter
Hoy he necesitado realizar un post a twitter desde el API de Widgadget, y buscando he encontrado una clase de ZF que implementa el API de Twitter. Zend_Twitter es una propuesta y todavía no está disponible en el core de ZF. Pese a que hay gente que la está usando con éxito, otros prefieren usar el Zend_Http_Client El caso es que no me convencen ninguna de las dos, la primera por no estar en el core y la segunda porque podemos usar la clase Zend_Rest_Client para realizar lo mismo con muchas menos lineas de código. Mi solución:
$twitter = new Zend_Rest_Client('http://twitter.com/statuses/update.xml'); $twitter->getHttpClient()->setAuth($user, $password); $result = $twitter->status('status message')->post();Algunos piensan que los frameworks no son necesarios para crear aplicaciones PHP, pero no están en lo cierto. Son absolutamente necesarios para crear aplicaciones. El problema es que están reinventando la rueda y ademas haciendolo sin la metodologia que pueden proporcionar algunos de los frameworks existente. -
September 28, 08:37 PM
Segunda PHP Conference 2008
Ayer asistí a la segunda PHP Conference que se organiza en Barcelona por el grupo de PHP Barcelona. Esta vez la entrada costaba 20€, pero la verdad es que valía la pena ya que la organización fue genial. Nada mas llegar esperaba un catering de desayuno todo muy bueno y a las 10.00h empezaron las ponencias. Primero estuve en la conferencia de Jordi Roura que nos explico una serie de métodos y pautas para realizar un seguimiento detallado de los contenidos que funcionan o no funcionan en nuestra página web. Muy bien explicado y muy amena. La segunda conferencia realizada por Arno Schneider de bermilabs, intentaba evangelizar el uso de los Frameworks para la programación de sitios web en PHP, también muy bien realizada y con un debate final acalorado entre los promotores y detractores de uno u otro framework. Después de una pausa pude asistir parcialmente a la conferencia de Zoë Slattery sobre PHP Search engine libraries, que no me acabó de gustar ya que yo esperaba encontrar una comparativa entre diferentes librerías pero nos encontramos con un análisis exhaustivo sobre el rendimiento de Zend Lucene que es la implementación del motor Lucene para Java del Zend Framework. Finalmente pude asistir un momento a la conferencia de EyeOS pero como fue poco rato no puedo opinar mucho. Pausa para comer y después la tarde seguiría con otras conferencias.
-
August 14, 10:12 PM
Estic a Irlanda
Estoy en irlanda, hemos llegado a belfast y solo salir del avión, nos helábamos de frío. Estamos en una bonita casa en west belfast y se respira un bien ambiente revolucionario en este barrio. Hay unos murales muy chulos y algunos hacen referencia a Catalunya y a Esuskadi. Nos quedan 13 días por aquí y creo que nos esperan cosas muy chulas.
-
May 23, 09:29 PM
widgadget.com Gana un premio en bDigital
widgadget.com gana el primer premio en el reciente bDigital Global Congres, celebrado en Barcelona, en la categoría de "Petites empreses i emprenedors" Hace unos meses que me incorporé a Iris Experience con la meta de relizar un proyecto nuevo bastante interesante, nuestro trabajo ha dado como resultado el portal widgadget.com del que estoy muy orgulloso, todavía estamos en fase de beta privada por lo que es posible solicitar el registro pero no usar todas las funcionalidades. Este portal ofrece las herramientas para crear widgets de forma sencilla y de publicar un canal de noticias en diversos formatos para incorporarlo a un directorio categorizado. Ademas permite realizar un seguimiento detallado, en tiempo real, de como se distribuyen estos widgets sobre las diferentes opciones de sindicación existentes. Cito la descripción del proyecto: "Aquesta solució permet transformar els continguts d'un portal en widgets, "mini webs", que l'usuari pot visualitzar a l'escriptori del seu ordinador, terminal mòbil, bloc o xarxa social favorita. La solució vol convertir-se en un referent europeu al sector dels widgets i ajudar les agències, empreses o bloggers a distribuir de forma eficient els seus continguts i monetitzar-los." De momento no puedo contar nada mas, pero esperamos que pronto todo el mundo pueda usar la plataforma.
- January 24, 12:16 PM
-
January 17, 07:19 PM
CakePHP Un rico pastel :P, cuidado con la configuración y el RSS
Hace algunas semanas que he empezado a fondo a usar CakePHP y debo decir que estoy encantado. Al empezar a usar la versión 1.1 la impresión fue muy buena, pero desde que han publicado la versión 1.2 el trabajo con Cake es mucho mas eficiente si cabe y aunque no es una versión estable 100% es perfectamente factible para utilizar en ciertos programas donde la fiabilidad 100% no sea imprescindible. A la aplicación que estoy desarrollando en estos momentos le estoy dando una arquitectura orientada a servicios de modo que es capaz de administrar una serie de datos con algunas relaciones 1:n, o como se expresa en Cake HABTM, definidas en los modelos y para la obtención de los datos y realización de consultas expone una serie de webservices, consultables mediante REST, que según los parámetros proporcionados a la url devuelven los datos. Aquí es donde entra el problema mas importante que he encontrado, los resultados de estos servicios son devueltos en formato RSS. Si bien, la documentación de Cake 1.2 está todavía en borrador, hay alguna información en diversos blogs que indican como sacar paratido del RSS Helper que proporciona Cake 1.2 por defecto, por ejemplo Feed them para Cake 1.1, y esta introducción al uso de webservices con cake 1.2 Pero vuelvo al problema que he encontrado, al generar un feed Rss o una respuesta XML genérica, usando el Xml/RssHelper de Cake, hay que establecer debug a 0 en la configuración, esto es MUY IMPORTANTE, ya que sino Cake realiza un output extra de debug en HTML y no habrá forma de parsearlo correctamente con SimplePie por ejemplo (otro día hablaré de el). Esto lo podéis hacer, o bien en el fichero de config o bien al principio del método encargado de realizar el output del feed. Ejemplo: function feed() { Configure::write('debug', 0);
-
November 01, 02:37 AM
Publicado Aptana Studio 1.0
Acaba de ser publicado Aptana Studio 1.0 (antes conocido como Aptana IDE), el entorno de desarrollo web basado en Eclipse que incorpora editor HTML, CSS, JavaScript. Este entorno está fuertemente enfocado a la programación AJAX y incorpora de série soporte para las librerías JS mas conocidas para el desarrollo de aplicaciones de este tipo. Yo esperaba con ganas la mejora de este magnifico entorno de programación, las ultimas versiones beta que he usado últimamente ya incorporaban todo lo necesario para el desarrollo web a nivel profesional y con todo tipo de ayudas y ventajas para el programador. Finalmente han dividido la aplicación en dos versiones, un gratuita y open source, "Community Edition" y "Professional Edition" de pago con algunas características extra y soporte preferente. Personalmente no me extraña esta decisión de ofrecer una versión de pago ya que han dedicado dos años de desarrollo intenso a mejorar un producto realmente bueno, y ofrecer la posibilidad de dar un soporte avanzado a cambio de una compensación es totalmente razonable teniendo en cuenta que el "recorte" de funcionalidades en la versión para la comunidad ha sido mínimo. Descarga Aptana Studio 1.0 Community Edition
Updates
-
@bebanjo @cavalle que dilema tengo un colega trabajando en flumotion y la verdad que no tengo ni idea de las diferencias16 hours ago from TweetDeck
-
RT @cavalle:Shameful! RT @happywebcoder:Dissapointing offer @11870:18-21k€/year for an iOS dev in infojobs… Then startups can't find talent.17 hours ago from TweetDeck
-
@ibelmonte tienes un DM19 hours ago from TweetDeck
-
me pone 4 kilos por favor? http://bit.ly/1IWkNi19 hours ago from TweetDeck
-
@ibelmonte que quiere postear y cuanto paga? :)19 hours ago from TweetDeck
-
cada vez que hago git push estoy mas lejos de @cdmon35 hours ago from TweetDeck
-
RT Pull Requests 2.0 http://bit.ly/ctsHEl coding redefined via @github43 hours ago from TweetDeck
-
RT pues a mi me encanta http://bit.ly/cRV3WQ2 days ago from TweetDeck
-
Autoupdate en Git usando hooks http://post.ly/unlk2 days ago from Posterous
-
@tammamkbeili not at the moment, we are working on it but don't wait for it any time soon2 days ago from TweetDeck
-
@zareone cae la cabecita y todo que lujo de detalle xD6 days ago from TweetDeck
-
@zareone bob esponjajajajaj6 days ago from TweetDeck
-
flash sirve para hacer estas cosas http://bit.ly/di8YEh6 days ago from TweetDeck
-
RT hay que verla @oskitar: Pero que bonita es la película the secret of Kells http://bit.ly/cgeoZP6 days ago from TweetDeck
Profile
Experience
-
Feb 2009 - Present
Technical Solutions Engineer / Season
-
Feb 2008 - Feb 2009
Senior Developer / Iris Experience
-
Jun 2001 - Oct 2007
Senior Developer / International Venture Consultants
Education
-
2003 - 2009
Universitat Oberta de Catalunya
Computer Science
Posts
- September 01, 11:48 AM
- September 01, 11:46 AM
- September 01, 11:19 AM
- August 31, 10:37 AM
- August 31, 10:37 AM
- August 31, 08:11 AM
- August 31, 08:11 AM
- August 31, 08:10 AM
- August 31, 08:01 AM
- August 31, 07:59 AM
- August 29, 03:09 PM
- August 12, 01:42 PM
- August 12, 01:42 PM
- July 22, 05:13 AM
- July 22, 05:11 AM
- July 21, 06:02 AM
- July 21, 05:58 AM
- July 21, 05:58 AM
- July 21, 05:58 AM
- July 21, 05:58 AM
- July 21, 05:58 AM
- July 21, 05:58 AM
- July 19, 01:01 PM
- July 16, 07:46 AM
- July 16, 07:02 AM
- July 15, 10:58 AM
- July 12, 11:51 AM
- July 12, 11:47 AM
-
July 12, 11:45 AM
victorcoder pushed to master at jrd/bcnonrails
-
victorcoder
committed
e1d5cd8 -
victorcoder
committed
fc76723
-
victorcoder
committed
- July 11, 06:45 AM