Noticias Weblogs Foros Wiki Código

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

Picando Código

Mantener un plugin de WordPress

Abril 12th, 2011 - [Enlace local]

WordPress

Mantener un plugin de WordPress no es tarea fácil:

>Now wait for people to download your plugin and report about the bugs it
>contains (which arn’t bugs, just the fact it doesnt work the way they want it to :)

One of the truest statements I’ve ever read!

Traducción:

>Ahora espera que la gente descargue tu plugin y reporte sobre los bugs
>que tiene (los cuales no son bugs, solo el hecho de que no funciona como quieren que lo haga :) )
¡Una de las declaraciones más ciertas que he leído!

Visto en wp-hackers.

Comparte: Twitter Identi.ca del.icio.us Google Bookmarks BarraPunto Bitacoras.com Tumblr Print Facebook

» Leer más, comentarios, etc...

Variable not found

ASP.NET MVC 3 Tools update

Abril 12th, 2011 - [Enlace local]

ASP.NET MVCYa me parecía que el equipo de MVC llevaba mucho tiempo en silencio ;-). Acaba de publicarse una actualización para las herramientas de ASP.NET MVC 3 en la que se incluyen algunas novedades interesantes,  y a las que ya he podido echar un vistazo. Os comento lo que he encontrado de momento en ellas.

Novedades a primera vista

El primer pequeño cambio que notamos al instalar esta actualización, es que algunos de los cuadros de diálogo y nombres de plantillas que antes aparecían en español ahora aparecen de nuevo en inglés, como antes de instalar el paquete de idioma correspondiente. La plantilla de aplicaciones MVC 3 vuelve a llamarse “MVC 3 Web Application”, y los cuadros de diálogo vuelven su idioma original. Pero bueno, nada grave.

Nuevo cuadro de diálogo "Crear proyecto"

Justo a continuación, ya creando el primer proyecto MVC 3, vemos que en el cuadro de diálogo inicial ha sido introducida una nueva plantilla llamada “Intranet Application”, y aparece un checkbox “use HTML5 semantic markup”.



El uso de esta nueva plantilla generará un proyecto prácticamente idéntico al habitualmente creado utilizando la plantilla “Aplicación de internet”, pero en lugar de utilizar el sistema de membresía de ASP.NET, utilizará autenticación Windows. Por tanto, ni rastro de controlador Account, ni de su Modelo, ni sus vistas; sólo encontraremos instrucciones para activar en IIS 7 e IIS Express este modelo de seguridad.



Por otra parte, marcando el nuevo checkbox podemos hacer que las vistas sean generadas utilizando marcado semántico HTML5. En la práctica, esto sólo implica que en el marcado del Layout encontraremos tags como HEADER, NAV, SECTION, o FOOTER.

Más scripts, y más actualizados

Si nos quejamos de la velocidad de los chicos de MVC a la hora de sacar releases, los de jQuery no se quedan nada atrás… incluso diría que los superan. Por ejemplo, la plantilla de ASP.NET MVC 3 incluía por defecto jQuery 1.4.4, y recientemente ha aparecido la 1.5.2… en tres meses, han aparecido al menos 4 revisiones.



Actualización de jQuery vía NugetLos nuevos proyectos ASP.NET MVC vienen ya de serie con la versión 1.5.1, pero lo que es más interesante, es que ésta se incorpora en el proyecto como un paquete predescargado de Nuget.  Por tanto, nada más abrir el proyecto recién creado, o en cualquier momento a partir de entonces, podemos utilizar Nuget para obtener las actualizaciones del mismo.



Lo mismo ocurre con jquery.Validation y con jQuery.UI. En ambos casos se ha incluido la versión 1.8, y de la misma forma, pueden ser actualizados a través de Nuget.



Eso sí, un detalle a tener en cuenta es que la inclusión de jquery desde nuestro código (el <script src..> que solemos encontrar en nuestro Layout o en algunas vistas) debemos modificarla de forma manual, puesto que el nombre de archivo incluye la versión específica, y Nuget no lo actualizará por nosotros.



Otra novedad al respecto es que se incluye de serie la biblioteca Modernizr, una interesante herramienta que nos facilita la detección de características de browsers, permitiéndonos el uso de tecnologías modernas como HTML5 o CSS3, mientras mantenemos la compatibilidad con navegadores anteriores.

Más andamiaje

El cuadro de diálogo de añadir controladores ha sido potenciado considerablemente. En este diálogo, hasta ahora sólo indicábamos el nombre del controlador y si queríamos generar código de acciones para las operaciones CRUD.



Ahora, tras instalar esta actualización, tendremos a nuestra disposición una herramienta mucho más potente y compleja, que nos permite crear controladores, vistas, e incluso clases de contexto de datos para Entity Framework 4.1 (que se instala de serie en nuestros proyectos) con métodos básicos de acceso a datos.



Nuevo cuadro de diálogo para añadir controladores

Disponemos de tres opciones para crear un controlador: vacío, con acciones de edición vacías, y con vistas de lectura y edición usando Entity Framework.



Las dos primeras son equivalentes a lo que podíamos conseguir anteriormente, un controlador únicamente con la acción Index(), o con las acciones habituales CRUD, pero sin demasiado código en su interior.



La tercera opción, sin embargo, supone un gran avance respecto a las demás, puesto que permite, de un plumazo, generar todo el código que necesitamos para cubrir los habituales escenarios CRUD (consulta, altas, bajas, modificaciones y eliminación) basándose en el nuevo Entity Framework 4.1, que por cierto también acaba de salir del horno.



Obviamente, como es habitual, tendremos que retocar el código generado, pero como base no está nada mal la cantidad de trabajo que nos ahorra.



Por ejemplo, supongamos que creamos un proyecto MVC 3 vacío y añadimos a la carpeta Models una clase como la siguiente:



    public class Persona
    {
        [Key]
        public int IdPersona { get; set; }
 
        [Required]
        [StringLength(50)]
        public string Nombre { get; set; }
 
        [Required]
        [StringLength(50)]
        public string Apellidos { get; set; }
 
        public DateTime FechaNacimiento { get; set; }
    }


Como siempre, seleccionando la opción “Añadir controlador” sobre la carpeta Controllers del proyecto, podemos generar una clase controlador así:



Añadir controlador



Observad el desplegable donde se nos solicita la clase del contexto de datos. En ella podemos seleccionar el contexto de objetos (si usamos los tradicionales db-first o model-first de EF 4) o contexto de datos (usando code-first), desde donde se obtendrá la información. Además, si no existe, podemos incluso generar esta clase (para code-first) de forma automática desde este mismo punto.



A continuación, pulsando “Add”, se habrán generado automáticamente los siguientes elementos:



De hecho, el código generado es totalmente funcional. Si directamente ejecutamos la solución, gracias a la magia del code-first, tendremos funcionando un mantenimiento completo de la entidad Persona, sin ni siquiera necesidad de crear la base de datos de forma manual:



Mantenimiento generado



Bueno, y esto es todo de momento. Ya conforme vaya descubriendo más novedades o particularidades las iremos viendo por aquí.



Aquí tenéis el enlace para descargar la actualización de herramientas para MVC 3; en el mismo sitio encontraréis las notas de revisión, que describen los cambios introducidos.



Publicado en: Variable not found.



» Leer más, comentarios, etc...

Buayacorp

Crea prefijos de CSS3 fácilmente con -prefix-my-css

Abril 12th, 2011 - [Enlace local]

Ahora que el CSS3 no está aun soportado por la mayoría de navegadores, muchas veces tenemos que crear prefijos para ciertas reglas de CSS3 en nuestra hoja de estilos.

-prefix-my-css

Esto podría ser un trabajo tedioso, sin embargo –prefix-my-css permite crear los prefijos rápidamente y nos permite elegir como tendremos nuestro producto final.

Por ejemplo, si le damos:

CSS:
 
/* Just a sample code */
#menu{
width:200px;
height:400px;
border-radius:15px;
box-shadow:0 0 5px black;
background:#1D1D1D;
}

nos devuelve:

CSS:
 
/* Just a sample code */
#menu{
width:200px;
height:400px;
/*border-radius*/
-webkit-border-radius:15px;
   -moz-border-radius:15px;
        border-radius:15px;
/*box-shadow*/
-webkit-box-shadow:0 0 5px black;
   -moz-box-shadow:0 0 5px black;
        box-shadow:0 0 5px black;
background:#1D1D1D;
}

Sin duda una gran herramienta

Enlace: prefixMyCSS

» Leer más, comentarios, etc...

Buayacorp

Mozilla publica las extensiones que ponen lento a Firefox

Abril 12th, 2011 - [Enlace local]

Muchos hemos usando Mozilla Firefox, sin embargo en más de una ocasión nos hemos quejado de la falta de rendimiento y la lentitud en abrirse o cerrarse.

extfirefox

Mozilla ha publicado una lista de extensiones que disminuyen considerablemente el rendimiento de Firefox. El que más llama la atención es Firebug, que hace lento a Firefox en un 74% y es una herramienta esencial para el desarrollo web (Google Chrome tiene una herramienta mucho mejor que ya viene heredada).

Si estás pensando en desarrollar una extensión o ya haz desarrollado una, Mozilla también nos da una guía de buenas prácticas a la hora de desarrollar extensiones.  Es hora de quitar algunas extensiones.

Enlace: Complementos con rendimiento lento

Vía: Genbeta

» Leer más, comentarios, etc...

Buayacorp

live.js actualiza páginas mientras las editas

Abril 12th, 2011 - [Enlace local]

Livejs.com

Nuestro flujo de trabajo al hacer una página web, generalmente es es el siguiente:

  1. En el IDE hacemos los cambios necesarios
  2. Nos vamos al navegador
  3. Actualizamos el navegador
  4. Nos gusta / no nos gusta
  5. Volvemos al IDE
  6. Paso 1, y así sucesivamente…

Con live.js nos olvidamos de esto, ya que con sólo insertarlo en el navegador, podemos ver nuestros cambios rápidamente aplicados en el navegador, sin tener que regresar al IDE.

Lo que hace el script es detectar cualquier cambio que se haya hecho en archivos locales enviando peticiones consecutivas HEAD al servidor.

El sitio incluye un demo, del cuál te enamorarás. El script es soportado por la mayoría de los navegadores modernos. ¿Qué esperas para probarlo?.

» Leer más, comentarios, etc...

Variable not found

ASP.NET MVC: Nombres de acciones y controladores más amigables

Abril 12th, 2011 - [Enlace local]

La ruta por defecto de ASP.NET MVC es válida para la gran mayoría de escenarios simples, permitiéndonos acceder a las acciones a través de URLs del tipo

http://{servidor:puerto}/{controlador}/{accion}
Así, dada una clase controlador con acciones como las siguientes:



public class InformacionCorporativaController : Controller
{
    public ActionResult QuienesSomos()
    {
        return View();
    }
    public ActionResult MisionVisionYValores()
    {
        return View();
    }
    public ActionResult UneteANuestroEquipo()
    {
        return View();
    }
}


… podríamos acceder a ellas utilizando direcciones tan naturales como /InformacionCorporativa/QuienesSomos, o /InformacionCorporativa/MisionVisionYValores. Sin duda, un gran avance vistas a ofrecer a nuestros usuarios un esquema de rutas limpio, intuitivo, y de paso, mejorar nuestro posicionamiento.



Sin embargo, ¿no os parece que sería mejor aún poder acceder a acciones y controladores utilizando guiones para separar los distintos términos? Me refiero a poder utilizar, por ejemplo, la URL /Informacion-corporativa/Quienes-Somos, o /Informacion-corporativa/Unete-a-nuestro-equipo.



Obviamente no podemos modificar el nombre de nuestros controladores y acciones, puesto que nuestros lenguajes de programación no permiten el uso de guiones en el nombre de los identificadores.



Ante este escenario, una posibilidad sería asignar mediante el atributo [ActionName] un nombre alternativo a cada una de estas acciones. Sin embargo, además del trabajo que esto implica, no habría una forma sencilla de conseguirlo también para los nombres de las clases controlador. Otra opción sería registrar en la tabla de rutas una entrada específica para cada una de las acciones. Aunque no tiene contraindicaciones y cubriría perfectamente nuestras necesidades, uuffff… sin duda es demasiado trabajo a estas alturas.



Afortunadamente, existen en el framework bastantes puntos de extensión donde podemos “enganchar” nuestra propia lógica al proceso de las peticiones, y emplearlos para conseguir solucionar de forma global problemas como este. Y uno de ellos es el sistema de routing.

1. ¡Convenciones al poder!

A continuación vamos a ver cómo conseguirlo de forma global utilizando el sistema de routing, y basándonos en una convención muy simple que vamos a establecer: los identificadores de controladores y acciones que contengan un guión bajo (“_”) serán convertidos a nivel de rutas en guiones.



Dado que el guión bajo es perfectamente válido en los nombre de clases y métodos, sólo tendremos que introducir en ellos este carácter en el lugar donde queremos que aparezcan los guiones, y dejar que el sistema de rutado se encargue de realizar la transformación de forma automática. Y, por supuesto, realizaremos esta transformación en sentido bidireccional, es decir, tanto cuando se analiza la URL para determinar el controlador y acción a ejecutar, como cuando se genera la dirección a partir de los parámetros de ruta.

2. La clase FriendlyRoute

A continuación, vamos a crear una nueva clase, a la que llamaremos FriendlyRoute, y que dotaremos de la lógica de transformación de guiones medios en guiones bajos, y viceversa. Nada que no podamos resolver en una escasa veintena de líneas de código:

public class FriendlyRoute : Route
{
    public FriendlyRoute(string url, object defaults) :
        base(url, new RouteValueDictionary(defaults), new MvcRouteHandler()) { }
 
    public override RouteData GetRouteData(HttpContextBase httpContext)
    {
        var routeData = base.GetRouteData(httpContext);
        RouteValueDictionary values = routeData.Values;
        values["controller"] = (values["controller"] as string).Replace("-", "_");
        values["action"] = (values["action"] as string).Replace("-", "_");
        return routeData;
    }
 
    public override VirtualPathData GetVirtualPath(RequestContext ctx, RouteValueDictionary values)
    {
        values["controller"] = (values["controller"] as string).Replace("_", "-").ToLower();
        values["action"] = (values["action"] as string).Replace("_", "-").ToLower();
        return base.GetVirtualPath(ctx, values);
    }
}


Del código anterior, destacar algunos aspectos:

A partir de este momento ya podríamos añadir en la tabla de rutas objetos de esta clase con un código como el siguiente:

routes.Add("default", 
    new FriendlyRoute(
        "{controller}/{action}/{id}", // URL con parámetros
        new { controller = "inicio", action = "portada_principal", id = UrlParameter.Optional }
    )
);


Observad que una de las ventajas de utilizar esta técnica es que a nivel de código utilizaremos siempre el nombre real de los controladores y acciones (con el guión bajo), es el routing el que realizará las transformaciones. Esto, entre otros beneficios, nos permite seguir utilizando el imprescindible T4MVC para evitar las “magic strings” en nuestro código.

3. Pero es queeee… yo estoy acostumbrado a usar routes.MapRoute()… O:-)

No pasa nada, también podemos ponértelo así de fácil. Los métodos MapRoute() que solemos usar en el método RegisterRoutes del global.asax no son más que extensores de la clase RouteCollection, por lo que podemos basarnos en esta misma idea y crear extensiones personalizadas que nos pongan más a mano el mapeo de nuestras amigables rutas:

public static class RouteCollectionExtensions
{
    public static Route MapFriendlyRoute(this RouteCollection routes, string name, string url, object defaults)
    {
        var route = new FriendlyRoute(url, defaults);
        routes.Add(name, route);
        return route;
    }
}


De esta forma, ahora bastaría con referenciar desde el global.asax el espacio de nombres donde hemos definido la clase anterior y ya podemos llenar la tabla de rutas utilizando sentencias como la siguiente:

routes.MapFriendlyRoute(
    "Default",                    // Nombre de ruta
    "{controller}/{action}/{id}", // URL con parámetros
    new { controller = "inicio", action = "portada_principal", id = UrlParameter.Optional } 
);


Así, una vez introducida la ruta anterior en lugar de la que viene por defecto en proyectos ASP.NET MVC, ya nuestro sistema podrá recibir una petición como GET /Nombre-Controlador/Nombre-Accion y mapearla hacia a la acción Nombre_Accion de la clase controlador Nombre_ControladorController.



Por si os interesa, he dejado código y demo en SkyDrive.





Friendly Route Demo





Publicado en: Variable not found.



» Leer más, comentarios, etc...

knocte :: MonoTema

Calling hackers who care about Android+Banshee

Abril 11th, 2011 - [Enlace local]

If you care about the neat feature about synchronizing metadata to your device using Banshee, and you have an Android device, you may be interested to hear that I created a patch for it, and it was recently reviewed requesting some changes here.Unfortunately my Android phone broke completely (don't ask me the details...) so I cannot work on the patch anymore. Anyone wants to continue the work?If

» Leer más, comentarios, etc...

MadeInFlex

Nuevas versiones de los productos de Adobe

Abril 11th, 2011 - [Enlace local]

Se han hecho públicas las nuevas versiones de Flash Builder 4.5, Flex SDK 4.5 y CS5.5. Aquí os dejo los links:
link Flash Builder

link CS5.5

» Leer más, comentarios, etc...

xailer.info (esp)

TreeviewColor para Xailer 2.3

Abril 11th, 2011 - [Enlace local]

Esta actualización corrige un bug que impedía el funcionamiento de los eventos y también incluye la integración con el IDE, de modo que ahora es posible alimentar la propiedad aItems visualmente igual que con el control TTreeview nativo.

También se utiliza la propiedad lFullRowSelect para decidir si el color de fondo de cada item rellena únicamente el área del texto o toda su área como puede verse en la imagen:

La actualización ya está disponible en el área de descargas de Xailer:

TreeviewColor

» Leer más, comentarios, etc...

MadeInFlex

El futuro del Flash Runtime

Abril 11th, 2011 - [Enlace local]

La semana pasada tubo lugar el Flash Camp en Brasil. Para los que no pudimos asistir, se ha publicado la presentación que hizo uno de los ingenieros del equipo de desarrollo de Flash Runtime. En esta presentación se nos muestra en que se está trabajando, mejoras ya disponibles y que nos trae el futuro de Flash.
Aquí os dejo este link.

» Leer más, comentarios, etc...

Variable not found

Enlaces interesantes 36

Abril 10th, 2011 - [Enlace local]

Bien, pues tras el parón de la gira Make Web Not War, volvemos a la carga con los enlaces que he ido recopilando durante este tiempo en Variable not found en Facebook y Twitter.

Y no olvides que puedes seguir esta información en vivo y en directo desde Variable not found en Facebook, o a través de Twitter.



Publicado en: Variable not found



» Leer más, comentarios, etc...

knocte :: MonoTema

WTF reduction

Abril 10th, 2011 - [Enlace local]

My first patch to FluentNHibernate was just merged upstream!What it basically does is a bit of what I call WTF reduction: you will no longer get a confusing message like "For property 'Foo' expected 'Bar' of type 'Bar' but got 'Bar' of type 'Bar'" when unit testing your entities' properties.AFAIK the next release will include this, and will be the first one to link to the new version of

» Leer más, comentarios, etc...

Viricmind Labs

Canon, impresoras, Linux y software libre

Abril 10th, 2011 - [Enlace local]

Hoy estoy escribiendo esto debido a mi frustración. Esta tarde me he planteado la necesidad de imprimir ciertos apuntes para poder leer sobre papel. La pantalla de mi portátil cansa mi vista, y mi lector de libros electrónicos no se adapta bien al formato PDF, además, prefiero ver los textos matemáticos sobre un soporte "grande" (A4), y que me permita además hacer anotaciones en el margen.

Bien, una vez planteado el deseo procedo a ejecutar las acciones necesarias para alcanzarlo: conecto mi portátil a mi impresora HP Photosmart C3180 y empiezo a imprimir, como siempre, sin demasiados percances... Sin demasiados percances, claro, a excepción de que a partir de la página 3 ya no se ve nada, la tinta se ha acabado. Es domingo por la tarde y en mi casa no somos previsores, no tenemos cartuchos de tinta de repuesto, ni jeringuillas ni nada que podamos usar para sortear el contratiempo.

Ni corta ni perezosa mi madre me ofrece una solución: coger la impresora de su tienda y traerla a casa, uso ese aparato y todos tan contentos. Pues no. La susodicha impresora es una Canon PIXMA iP2500 y, al menos a priori, no parece querer funcionar sobre Ubuntu 10.10 64 bits. Empiezo a buscar por Internet... vale, lo reconozco, en Google, sólo en Google (los demás buscadores ofrecen resultados tristemente parecidos e igualmente inútiles). ¿Qué encuentro? Pues casi todo son comentarios en foros, escritos la mayoría entre los años 2006 y 2007.  En esos hilos se describen procesos rocambolescos para hacer funcionar la puñetera impresora...

Me adelantaré a vuestras dudas, aunque creo que ya ha quedado claro antes: nada funciona. En la página oficial de Canon solo hay un "driver" para Linux. Se colgó allí en mayo de 2007, ofrece supuesta compatibilidad para Fedora 6. Hoy en día Fedora va por su versión 14. Para los que no intuyan el por qué de mi problema: Los formato de instalador de Fedora y de Ubunru son diferentes, Fedora trabaja con RPM, mientras que ubuntu lo hace con DEB. Para hacer las cosas más difíciles, el driver está pensado para arquitecturas de 32 bits, yo trabajo en un sistema de 64 bits. Y para complicarlo ya del todo, es probable que haya problemas de dependencias por culpa de cambios en las apis de la bibliotecas internas del sistema.

Aun con todo, no me he amedrentado y he estado experimentando... para acabar decidiendo que he perdido el tiempo. Ni tan siquiera puedo transformar el paquete .rpm oficial a un paquete .deb con la conocida herramienta alien. Lo más triste es que la herramiente me dice que ha convertido el fichero, pero sin embargo no ha generado nada.

¿Qué conclusiones podemos sacar de esta anecdota? Si somos serios: pocas. Si somos dados a la especulación y el gatillo intelectual fácil: muchas. Soy de los del segundo tipo, y soy consciente del riesgo que comporta, pero por suerte suelo rectificar cuando queda claro que me he equivocado. Ahí van mis conclusiones fáciles.

  1. No me cae bien la gente de Canon, son unos capullos integrales.
  2. Haré publicidad negativa de esa empresa cada vez que tenga la oportunidad.
  3. Esto es más que dejadez por parte de Canon, tiene mucho que ver con estrategias comerciales sucias de cierta empresa llamada Microsoft.
  4. La herramienta alien (8.81) tiene un bug y no puede tratar bien paquetes .deb antiguos o mal formados.

Bien, ahora vayamos a las conclusiones serias, que también las hay. Hasta hace unas horas vivía en el mundo de Yuppie, creía que cosas como estas ya eran historia, hacía muchísimo tiempo que no me encontraba con problemas de este tipo. Queda mucho camino por recorrer en cuanto a concienciación por parte de las empresas de que los usuarios de Linux también existimos, y sobretodo, de que también somos importantes. Los afectados deberíamos hacer presión, no comprar sus productos, quejarnos cuando nos la juegan de esta manera, enviar emails y publicar acerca de los problemas que nos genera su actitud de plena servidumbre hacia el monopolio de Microsoft.

Que no se hagan drivers para Linux tiene dos vertientes. Una de las caras es la que todos conocemos: la presión por parte de Microsoft para mantener su ventaja por encima de la competencia que Linux les supone. Otra es de cariz más técnico: el diseño del núcleo Linux y su falta de estandarización a nivel de APIs internas provoca que la creación de drivers sea una tarea de verdadera artesanía y maestría. Esto significa que hacer drivers para Linux requiere más tiempo que hacerlos para, por ejemplo, MS Windows, y además probablemente haga falta contratar a un programador mejor dotado, y por tanto, con un mayor sueldo.

Una vez tenemos el driver seguimos teniendo el problema del empaquetamiento. Linux no es un sistema operativo en sí mismo, se trata solo del núcleo, y existen muchísimos sistemas operativos diferentes que funcionan con Linux (las llamadas distribuciones). Resulta que cada distribución funciona con paquetes de software diferentes, tiene configuraciones internas diferentes e incluso su estructura de directorios puede diferir en detalles cruciales de las de otras distribuciones. Esto supone un trabajo añadido, una adaptación para cada una de las distribuciones, o al menos una adaptación para cada una de las distribuciones importantes: Red Hat/Fedora, Debian/Ubuntu, Arch (y alguna más, sin olvidar que por cada distribución tenemos que pensar en versiones para 32 y 64 bits).

Definitivamente hace falta una cierta unificación y estandarización de tecnologías a bajo nivel para el mundo de Linux, en lo tocante a estructuras de directorios, ficheros de configuración y sistemas de instalación. Hasta que no lleguemos a ese punto crucial Linux no tendrá el atractivo necesario para que los fabricantes de hardware dejen de seguir el "mandato" de Microsoft. Más aun, sin convenios y tecnologías comunes en todas las distribuciones seguiremos perdiendo fuerza de trabajo en adaptaciones sin sentido, seguirá habiendo roces en la comunidad y seguiremos sufriendo la desventaja endémica y crónica de la fragmentación en el ecosistema del software libre.

Deberíamos aprender de Apple, y no me refiero a sus prácticas monopolísticas o de censura. Me refiero a su táctica de unificación y simplificación, programar en Mac Os X es facil. Tienen un IDE "canónico" (XCode) muy barato, todas las interfaces se programan con Cocoa, tienen un lenguaje "oficial" (Objective-C) y pasan de Java como de la mierda (es lo que se merece esa plataforma). Todas las demás ventajas se deben a la política del jardín vallado y a trabajar siempre con un conjunto restringido de hardware, cosa que no podemos (ni debemos, ni queremos) copiar. En todo caso creo que la idea es clara: unificación, simplificación.

Volviendo al tema de antes, mi crítica a Canon no acaba aquí. Canon tendría que liberar sus drivers, no tiene excusa, o al menos ninguna que tenga valor. La liberación de los drivers permitiría que la propia comunidad se encargara de empaquetarlos para las diferentes distribuciones, de mejorarlos en caso que hubiera fallos, de adaptarlos para nuevas impresoras de funcionamiento similar. Pero a ellos no les interesa, o eso dicen. ¿La razón? Supuestamente perderían competitividad frente a sus competidores si liberaran sus drivers, se trata de propiedad intelectual que podría ser copiada, ahorrando trabajo a la competencia mientras ellos han destinado dinero y esfuerzo en su desarrollo. Y un cuerno. La impresora PIXMA iP2500 ya existía en el año 2007, eso significa que hace ya más de 4 años que está en el mercado (si es que no se han vendido ya todas las unidades, lo que es casi seguro). ¿Qué tipo de ventaja competitiva perderían liberando drivers de un aparato de hace 4 años? Ninguna. Por otro lado, incluso si lo hicieran en el momento de lanzar el producto al mercado, hay que tener muy en cuenta que esos drivers sirven para sus impresoras, no para las de la competencia, el esfuerzo de adaptación seguramente no valdría la pena, es preferible desarrollar drivers propios para los dispositivos propios.

¿Y qué pasa con la adaptación a las diferentes distribuciones de Linux? Pues que tampoco supone un coste tan alto, tendrían que contratar entre 1 y 2 trabajadores para el empaquetamiento (más probablemente 1 que 2), un coste muy bajo teniendo en cuenta los ingresos esperados. Y aun que doliera el coste (que no duele) ¿nadie se ha planteado que tal vez venderían más impresoras a gente que usa Linux? ¿nadie se ha planteado que su imagen empresarial mejoraría?

Lo dicho, estoy cabreado y pienso ponerlos a parir en cuanto surja la situación.

» Leer más, comentarios, etc...

CapelBlog!!

Final del trayecto

Abril 8th, 2011 - [Enlace local]

El mes de Mayo de 2011 desaparecerá definitivamente este sitio.

» Leer más, comentarios, etc...

xperiments.es

dropbox-as3. Creating new accounts

Abril 7th, 2011 - [Enlace local]

He realizado una pequeña adaptacion para que la fantástica libreria dropbox-as3 permita crear nuevas cuentas desde su api.

El proceso para crear una nueva cuenta en dropboox seria el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// create dropbox instance
var config:DropboxConfig = new DropboxConfig( "ConsumerKey","ConsumerSecret");
var dropAPI:DropboxClient = new DropboxClient(config);

// assign createAccount events
dropAPI.addEventListener(DropboxEvent.ACCOUNT_CREATE_RESULT, onCreationResult );
dropAPI.addEventListener(DropboxEvent.ACCOUNT_CREATE_FAULT, onCreationFault );

// call createAccount and pass ( email, password --&gt; min 8 chars, first name, last name )
dropAPI.createAccount('email@example.com','12345678','first_name','last_name');

// Event fired on success
public function onCreationResult( e:DropboxEvent ):void
{
trace( 'ACCOUNT_CREATE_RESULT '+e.resultObject.status );
}

// Event fired on error
public function onCreationFault( e:DropboxEvent ):void
{
trace( 'ACCOUNT_CREATE_FAULT '+(e.resultObject as AccountCreationError).toString() );
}

Descarga del codigo fuente: dropbox-as3-create-account

UPDATE: Las mejoras del codigo han sido incluidas en el repositorio original en google code. http://code.google.com/p/dropbox-as3

» Leer más, comentarios, etc...

Joan Llenas at garnet.io :: Thoughts on software development

Sticky Selection DataGrid (múltiple sin CTRL)

Abril 6th, 2011 - [Enlace local]

Tener que selecciona múltiples filas en un DatGrid presionando CTRL es algo que muchos usuarios pueden encontrar complicado. En estos casos una solución es habilitar un tipo de interacción en el que usuario solo tenga que clicar a las filas como si de ComboBox se trataran: un click selecciono, otro click deselecciono. Fácil y usable.
Para Flex4 es realmente sencillo conseguir este efecto, solo se tiene que sobreescribir un método.

PLAIN TEXT
Actionscript:
  1. package io.garnet.joan.controls.datagrid
  2. {
  3.     import mx.controls.DataGrid;
  4.     import mx.controls.listClasses.IListItemRenderer;
  5.  
  6.     public class DataGridStickySelection extends DataGrid
  7.     {
  8.         override protected function selectItem(item:IListItemRenderer, shiftKey:Boolean,
  9.                                                ctrlKey:Boolean, transition:Boolean = true):Boolean
  10.         {
  11.             return super.selectItem(item, false, true, transition);
  12.         }
  13.     }
  14. }

Luego no podemos olvidar setear el valor allowMultipleSeleciont a true en la declaración:

PLAIN TEXT
Actionscript:
  1. width="100%" height="100%"
  2.     allowMultipleSelection="true"
  3.     dataProvider="{ model.dataProvider }">
  4.    

Un ejemplo (click derecho: view source)

» Leer más, comentarios, etc...

xperiments.es

StageWebViewBridge. Updated. Automatic cache creation.

Abril 6th, 2011 - [Enlace local]

He actualizado la clase StageWebViewBridge con nuevas funcionalidades para el manejo de los ficheros de la cache.

Con el nuevo sistema es posible olvidarnos de la actualizaciones de los ficheros cacheados, el sistema lo hace todo por nosotros y al final nos deja 2 directorios que son los que deberemos adjuntar cuando empaquetemos nuestro proyecto.

Los nuevos metodos y propiedades que presenta la clase son:

1
2
// sets Debug mode on/off
StageWebViewBridge.DEBUGMODE = true/false;
1
2
3
4
5
6
// sets the default dir to 'htmlFiles'
StageWebViewBridge.setRootFolder('htmlFiles');

// this will create 2 new dirs
app:/htmlFilesCache
app:/htmlFilesSource
1
2
3
4
5
// Change the extensions of the files to parse.
// Default extensions are ["html","htm","css","js"]

// now limit the files to be html or js, and left intact the css and htm files
StageWebViewBridge.setSourceFileExtensions(['html','js']);

Teneis mas info en la pagina oficial del proyecto: stagewebviewbridge

» Leer más, comentarios, etc...

Picando Código

Flisol 2011

Abril 5th, 2011 - [Enlace local]

Otro año, ¡otro FLISoL!

FLISOL 2011

FLISOL 2011

El Festival Latinoamericano de Instalación de Software Libre (FLISoL) es el evento de difusión de Software Libre más grande en Latinoamérica. Se realiza desde el año 2005 y desde el 2008 se adoptó su realización el 4to Sábado de abril de cada año. En 2011 por única vez será el día 9 de Abril.

Su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo.

A tal fin, las diversas comunidades locales de software libre (en cada país/ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.

¿Cómo me entero si se hace en mi ciudad?

Puedes revisar en Ciudades, allí podrás encontrar todas las ciudades sedes donde se realiza el evento, o puedes seguir los enlaces por países que aparecen en el menú a tu izquierda. Podrás encontrar información sobre el lugar de realización del evento y los contactos respectivos de las personas, grupos y entidades a cargo.

FLISOL Montevideo

Este año voy a asistir nuevamente a la instancia de FLISOL Montevideo. En Montevideo se realiza en:

Escuela Universitaria Centro de Diseño – EUCD
Dirección: Miguelete 1825 esq. Arenal Grande
Horario: 10:00 a 19:00 horas
Geolocation: Latitud: 34º 53′ 40 (S) Longitud: 56º 10′ 48 (O)
Web: http://www.cdi.edu.uy/ – http://www.eucd.edu.uy/

Antes llamada Centro de Diseño Industrial (CDI), perteneciente al MEC, ahora ha pasado a ser parte de la Facultad de Arquitectura, de Universidad de la República. Está ubicada en la que era la Cárcel de Miguelete que fue refaccionada para albergar este instituto de diseño. Fundada en el año 1988 es la primera institución de carácter terciario dedicada a esta disciplina en nuestro país y surge como parte de un convenio de cooperación con el gobierno de Italia.

Además de Montevideo, este año Uruguay organiza FLISOL en:

Por más información, visiten el sitio oficial.

Comparte: Twitter Identi.ca del.icio.us Google Bookmarks BarraPunto Bitacoras.com Tumblr Print Facebook

» Leer más, comentarios, etc...

Arragonán

Primera versión de Grails Localizable Plugin

Abril 5th, 2011 - [Enlace local]

Hacía un par de meses que tenía medio terminado un plugin de grails llamado localizable, y al fin he limpiado un poco las dependencias para que cumpla unos mínimos antes de hacerlo público.

Es una pequeña utilidad para facilitar la integración con el API del servicio de Geocoding de Google Maps para los proyectos desarrollados con grails.

Se puede obtener la latitud y longitud a raíz de una dirección, o las direcciones a partir de la latitud y longitud.

Para instalarlo:
grails install-plugin localizable

Tras haberlo instalado, tendremos a nuestra disposición un servicio que nos facilitará el trabajo de geolocalización a partir de 4 métodos:

findLatLngsByAddress(dirección) //Devuelve un array con las posiciones encontradas a partir de una posición

findLatLngByAddress(dirección) //Devuelve sólo la primera posición encontrada a raíz de una posición

findAddressesByLatLng(lat, lng) //Devuelve un array con las diferentes direcciones coincidentes con una latitud y longitud.

findAddressByLatLng(lat, lng) //Devuelve la dirección más completa que coincida con la latitud y longitud

findPointsByAddress(address) //Devuelve un array de JSONObject que representan las coincidencias con la dirección

findPointsByLatLng(lat, lng) //Devuelve un array de JSONObject que representan las coincidencias con la latitud y longitud

Podéis ver un pequeño ejemplo de uso en el código que utilizamos para un taller de hace unas semanas con primerviernes

Próximos pasos: Preparar la documentación de uso del plugin en inglés, espero que me cueste menos tiempo :P .

No entra en mis planes añadirle más funcionalidades, pero por supuesto que estoy abierto a sugerencias y/o contribuciones :)

» Leer más, comentarios, etc...

Picando Código

StackOverflow Meetup Montevideo #SOMeetup

Abril 4th, 2011 - [Enlace local]

Stackoverflow Meetups 2011

Stackoverflow Meetups 2011

Joel Spolsky y Jeff Atwood junto a la comunidad de Stack Overflow presentan los Stackoverflow Meetups 2011. La idea es juntar los distintos grupos de usuarios de StackOverflow en el mundo, al mismo tiempo. Usando la plataforma Meetups.com, se están coordinando distintos eventos en el mundo para “celebrar” el uso de Stack Overflow.

Es la oportunidad de conocer a otros usuarios de Stack Overflow, comer algo, tomar una cerveza, hablar de trabajo, código, programación y generar flamewars de Java vs. .Net, Ruby vs. PHP, Java vs. Scala, etc. Siempre es interesante conversar con otros programadores y hacer un poco de “networking” entre pares, y cualquier excusa es válida para hacerlo :)

Ya hay más de 250 eventos planeados, y entre los eventos organizados hay al menos uno en los siguientes países: Argentina, Brasil, Chile, Colombia, España, México, Nicaragua, Paraguay y Perú. En varios lugares están organizando charlas al estilo conferencia con oradores y todo.

En Uruguay somos unas 12 personas interesadas en hacer una reunión en Montevideo. No tenemos local, ni tampoco oradores, pero las ganas están. Por más que seamos 12, creo que va a ser una buena oportunidad de juntarse.

Propongo a aquellos que estén interesados en juntarse estén pendientes a la página en meetup.com.

En un principio, necesitamos un lugar. En el peor de los casos propongo juntarnos a tomar algo en algún bar económico y accesible para todos como sugirió ign en Twitter. Ahí, sacaremos fotos, twittearemos, repartiremos direcciones de correo electrónico, conversaremos, comeremos, tomaremos, y más.

Si conocen un lugar donde se pueda realizar la juntada, o tienen alguna charla preparada que puedan dar, o quieren aportar su presencia, experiencia, frustraciones, en esta reunión relacionada al mundo del desarrollo, ¡están invitados a participar!
http://www.meetup.com/stackoverflow/Montevideo-UY

Comparte: Twitter Identi.ca del.icio.us Google Bookmarks BarraPunto Bitacoras.com Tumblr Print Facebook

» Leer más, comentarios, etc...

Cerebro en la Sombra » Técnico

Nokia me regala un E7 en su nueva estrategia con los desarrolladores

Abril 4th, 2011 - [Enlace local]

Nokia ha cumplido la promesa que hizo justo después de anunciar que usará Windows Phone 7 en sus teléfonos de gama Alta, regalar un flamante Nokia E7 a todos los miembros del foro de desarrolladores, yo entre ellos icon smile Nokia me regala un E7 en su nueva estrategia con los desarrolladores . El mío me llegó hace unos días directamente desde Finlandia. Justo cuando ya tenía mi Nexus S. Y es que no quieren que dejemos apartada la plataforma Symbian desde ya mismo icon razz Nokia me regala un E7 en su nueva estrategia con los desarrolladores .IMG 3369 300x250 Nokia me regala un E7 en su nueva estrategia con los desarrolladoresEl teléfono me ha sorprendido gratamente, tanto la enorme pantalla como el acabado son excepcionales, todo metálico. Eso sí, lo hace pesar un poco, pero la primera impresión es genial.

Como ya comenté anteriormente (y aquí me llamareis friki), soy un Nokia-Fan desde hace mucho tiempo. El Nexus ha reforzado mi idea de que los teléfonos Nokia son mucho más sencillos de utilizar para el público general sin mermar en prestaciones, a mis hermanas les costaría muchísimo adaptarse a un Android, mientras que Symbian mantiene la esencia de un teléfono normal pero con con más cosas y táctil.

IMG 3372 300x199 Nokia me regala un E7 en su nueva estrategia con los desarrolladoresAquí lo tenéis comparado con el Nexus S, como veis no tiene nada que envidiarle, todo lo contrario. La única pega es que la pantalla no es tan sensible como la del Nexus, pero eso sí, tengo que decir que el E7 aun tiene el plástico protector original, con lo que aún así el funcionamiento es adecuado incluso para jugar al Angry Birds.

IMG 3380 300x241 Nokia me regala un E7 en su nueva estrategia con los desarrolladoresPero no todo iban a ser maravillas. En los pocos días que lo tenemos en casa lo hemos utilizado para cacharrear un poco y para jugar y se nos ha colgado y reiniciado varias veces. Ya veremos cuando mi pareja lo utilice habitualmente, miedo me da. Espero que lancen alguna actualización pronto ya que el teléfono me parece sencillamente genial.

A la interfaz le han dado un lavado de cara interesante, han mejorado el sistema de widgets y su gestión en el escritorio, han añadido escritorios virtuales que se desplazan lateralmente (a lo Android), en definitiva, un híbrido entre lo que era Nokia y esas cosas modernas icon razz Nokia me regala un E7 en su nueva estrategia con los desarrolladores .

Si a todo ello le sumamos el sistema de mapas Ovi, simplemente excepcional y el comedido consumo de batería tenemos un dispositivo a tener muy en cuenta, y es que aquí radica para mi una de las grandes ventajas de Symbian, con Bluetooth, gps y datos activados tienes teléfono para varios días. En Android, para unas horas. Esa es la gran diferencia.

» Leer más, comentarios, etc...

Picando Código

Películas para ver en 2011

Abril 2nd, 2011 - [Enlace local]

Este año trae unas cuantas películas interesantes para ver en el cine. Verán que cito muchos hilos de conversación de Multiverseros. Esto se debe a que he estado pasando bastante tiempo por ahí. Casualmente en ese foro se conversa mucho de películas, y el perfil de las personas participantes es bastante parecido al de los lectores de este blog en cuanto a gusto cinematográfico. Así que si les interesa, dénse una vuelta por el foro, regístrense, y pasen a saludar :)

Películas de cómics

En particular es un buen año para los adeptos a los cómics, específicamente del universo Marvel. Se estrenan dos esperadas películas, como parte de un proyecto bastante ambicioso que puede terminar en desgracia o en una de las mejores películas de superhéroes de todos los tiempos: The Avengers.

En 2008 hice una reseña sobre Iron Man – La película, y especulaba:

¿Estará Marvel preparándonos para la saga de super héroes más espectacular de todos los tiempos llevada al cine? ¿Sería ésto posible?

Más adelante lo confirmé con The Incredible Hulk, y tres años después podemos afirmar que sí, éste era el objetivo de Marvel, y ya se están poniendo las fichas en su lugar para la esperada película de The Avengers.

The Avengers sería lanzada en 2012, seguida por Iron Man 3 en 2013. Futuros proyectos podrían incluir películas de Ant-Man, otra de Hulk, película de Nick Fury protagonizada por Samuel L. Jackson, Punisher (los derechos volvieron a Marvel por lo que se trataría de un reboot), película de Black Widow protagonizada por Scarlett Johansson, Black Panther y War Machine. Por ahora todo esto son posibles proyectos que dependerán en el éxito de estas películas de Marvel Studios.

Algunos otros nombres se han discutido para proyectos de pequeña escala y estos incluyen a: Cable, Iron Fist, Nighthawk, Vision, Dr. Strange, Ka-Zar, Luke Cage, Dazzler, y Power Pack. Pero dejando de lado los futuros posibles proyectos, veamos qué tenemos para ver en 2011:

Thor

Thor

Thor

La película del Dios del Trueno, uno de los Avengers originales, proyecto que estuvo en el limbo por años. Será lanzada el 21 de Abril en Austrailia y 6 de mayo en Estados Unidos. Chris Hemsworth protagonizará a Thor, Tom Hiddleston a Loki (quien volvería para Avengers en 2012) y Anthony Hopkins como Odin, dirigidos por Kenneth Branagh.

Les dejo los dos trailers oficiales para que se vayan haciendo una idea:

Captain America: The First Avenger

Captain America

Captain America

Vimos el escudo en Iron Man, y apareció su cuerpo congelado en un final alternativo de The Incredible Hulk. A estrenarse el 22 de julio, protagonizada por Chris Evans como Steve Rogers y dirigida por Joe Johnston. Creo que es un proyecto bastante complicado por lo que el Capitán América representa, y cómo es visto Estados Unidos por el resto del mundo. Pero en esto del cine basado en cómics, nos olvidamos de esas cosas por un rato, y disfrutamos de la función…

Otro tema que se ha comentado es cómo Chris Evans, habiendo hecho el papel de Johny Storm, ahora interpreta al Capitán América. Los derechos de Los Cuatro Fantásticos en cine no pertenecen a Marvel, sino a Fox, por lo que se trataría de un universo – si bien basado en personajes de los Marvel Cómics – totalmente distinto. En el foro de Multiverseros se dió una discusión interesante sobre esta película: Captain America en Multiverseros.

X-Men First Class

La quinta película de la saga de los X-Men se trata de una precuela, sobre los inicios de Charles Xavier (Profesor X) y Erik Lehnsherr (Magneto) y el origen de Los Hombres X y La Hermandad de los Mutantes.

La verdad no sé qué esperar. Los X-Men, si bien leí algunos de sus cómics, no son una saga que haya seguido demasiado. Creo que vi todas las películas (incluida la de Wolverine) en el cine, y bueno, no son algo que me haya volado la cabeza.

Me parece que es un cómic bastante complicado de adaptar al cine, pero de todas formas el trailer muestra que la película será al menos interesante. Estreno 3 de junio:

Green Lantern

Del (casi) desconocido (para mí) mundo de DC Comics, viene la película de Linterna Verde. Cuando empecé a escribir esta entrada puse:

No estoy muy familiarizado con el personaje, y no sé si me termina de convencer la interpretación del héroe en la pantalla, pero probablemente termine viéndola cuando salga el DVD. Se estrena el 17 de junio.

Casualmente hoy me enteré a través de @ignacioalcuri y el foro de Multiverseros de un nuevo trailer que hizo cambiar rotundamente mi opinión. El primer trailer no decía mucho, y resultaba bastante desalentador. Pero miren el nuevo trailer, recién salido, que hizo que me den ganas de ir a verla al cine (posiblemente tras una inducción previa en el personaje a través de los cómics):

Ya que estamos en el tema, se esperan a futuro otras películas del universo DC: reboots de Batman y Superman y una película de La Liga de la Justicia.

The Adventures of Tintin: Secret of the Unicorn

Esto será una película de animación en 3D del conocido personaje de cómics belga: Tintin. Leí algunas historias de Tintin hace muchos años, y miré algunos capítulos de la serie animada. Creo que esta película puede ser bastante buena. Será dirigida por Steven Spielberg y producida por Peter Jackson, y la música estará a cargo de John Williams. Esto asegura un proyecto ambicioso y de alto presupuesto.

Por ahora no he visto más que un par de fotos que comparto a continuación:

The Adventures of Tintin: Secret of the Unicorn

The Adventures of Tintin: Secret of the Unicorn

The Adventures of Tintin: Secret of the Unicorn

The Adventures of Tintin: Secret of the Unicorn

También mencionar Cowboys & Aliens. Esta película está basada en una novela gráfica, dirigida por Jon Favreau (Iron Man y Iron Man 2) y es interpretada por Olivia Wilde (Quorra en Tron Legacy), Daniel Craig (James Bond) y Harrison Ford (Han Solo, Rick Deckard, Indiana Jones). No conozco mucho, y el trailer no vende demasiado, veremos más adelante qué tan buena resulta.

Bien, hasta acá algunas pelis basadas en cómics. Veamos qué más ofrece Hollywood este año que pueda llegar a ser interesante:

Sucker Punch

Película escrita por Steve Shibuya y Zack Snyder (300, Watchmen), quien también la dirigió. Fue estrenada recientemente y cuenta la histora de una joven internada en un asilo psiquiátrico que intenta escapar a través de un mundo creado en su imaginación, o algo así.

El primer trailer que vi me hizo pensar: dragones, samurais, mechas, ¿qué mas se puede pedir en una película? Hay todo un hilo de conversación en Multiverseros al respecto, lo que hizo abrir otro hilo: Componentes de una película ideal. Se incluyen: zombies, piratas, dinosaurios, Bruce Willis, robots, jetpacks, el cadaver de Jar Jar (oh siiii…), Chris Hemsworth sin remera,y otros elementos más.

Zack Snyder hizo un buen trabajo con 300 y Watchmen, y los elementos de esta película la hacen bastante interesante. Veremos qué tal resulta después de verla. El trailer hace acordar a la presentación de un videojuego, siguiendo mi criterio, creo que esto es algo a favor de la película:

Your Highness

Película del director David Gordon Greeman también responsable por Pineapple Express. Your Highness es una comedia fantástica con Danny McBride, James Franco, Zooey Deschanel y Natalie Portman.

El trailer es bastante gracioso, aunque puede ser considerado un poco NSFW. Cuenta con música de la excelente banda Dropkick Murphys, y vemos más actuación de Natalie Portman en estos 3 minutos y medio que en las 3 precuelas de Star Wars juntas:

Red State

De Kevin Smith, creador de Jay & Silent Bob y el universo View Askew, llega esta película de terror políticamente incorrecta. El trailer no dice mucho, pero los personajes están inspirados en fanáticos religiosos. Probablemente no llegue a los cines de Montevideo, pero de alguna forma la “conseguiremos” ver:

Otras películas

Otras de las películas interesantes que esperar este año:

Estas son algunas de las películas que despertaron mi interés para este año. Espero tener el tiempo de escribir una reseña de algunas de ellas una vez que las haya visto. Posiblemente agregue alguna otra a medida que vaya pasando el año. ¿Hay alguna película imprescindible que no esté en la lista?

 

Comparte: Twitter Identi.ca del.icio.us Google Bookmarks BarraPunto Bitacoras.com Tumblr Print Facebook

» Leer más, comentarios, etc...

Bitácora de Javier Gutiérrez Chamorro (Guti) » Programación

Lo que no me gusta de WordPress

Abril 2nd, 2011 - [Enlace local]

Tras mi migración de Simple PHP Blog a WordPress, he familiarizándome con el funcionamiento interno de este CMS, encontrando por desgracia bastantes aspectos que no son de mi agrado. WordPress es magnífico en mucho sentidos, tiene una herramienta de administración sencillo y cómodo; la cantidad de plugins y temas disponibles nos permiten personalizarlo a nuestro [...]

Artículos relacionados:
Mi configuración de WordPress
Potenciado por WordPress
¿Por qué me gusta el 7-Zip?

» Leer más, comentarios, etc...

MadeInFlex

Oferta laboral: Agile Contents

Abril 1st, 2011 - [Enlace local]

Descripción de la empresa

Agile Contents es líder en soluciones tecnológicas para el consumo digital de contenidos y servicios. Nuestras soluciones son el epicentro de la arquitectura de contenidos. Potenciamos la capacidad de la distribución multicanal, gestión integrada y la productividad gracias a la automatización de procesos.

Gestionamos contenidos digitales para grandes clientes en sectores como media, publishing y banking.

Descripción y experiencia requerida de las plazas

Flex Developer senior para participar en el análisis y desarrollo de aplicaciones de software

Flash/Flex Developer para participar en el análisis y desarrollo de aplicaciones de software

Habilidades

Descripción del puesto

Se ofrece

Interesados enviar Curriculum Vitae a info@agilecontents.com, incluyendo fotografía e indicando la referencia del mismo “FLEX Developer y AS3 Developer”.

» Leer más, comentarios, etc...

Picando Código

Evita los obstáculos de la trampa JavaScript en GMail

Abril 1st, 2011 - [Enlace local]

Mensaje de la Free Software Foundation:

Free Software Foundation

Free Software Foundation

Hoy estamos lanzando el primero de una serie de artículos sobre cómo usar los sitios web comunes sin utilizar JavaScript privativo.

Puedes no estar al tanto de los peligros del software privativo JavaScript – un problema que hemos considerado en The JavaScript Trap – ejecutándose en tu computadora, dentro de tu navegador web.

El enfoque en nuestro primer artículo es el servicio Gmail de Google.

La trampa JavaScript

Cuando visitas un sitio web como Gmail, tu navegador descargará y ejecutará varias miles de líneas de código JavaScript. El código JavaScript no es diferente a lenguajes como Python, C++ o Ruby – aplicaciones escritas en esos lenguajes ejecutándose en tu computadora deberían ser software libre, para que podamos ejecutarlas, modificarlas y compartirlas si lo deseamos. JavaScript hoy no es el JavaScript del pasado – es ahora usado para escribir poderosas aplicaciones del lado del servidor gracias a software libre como Node.js y el motor JavaScript V8.

Yendo más lejos, recientemente hemos visto compañías como Research in Motion (creadores del Blackberry) aconsejando a sus clientes que deshabiliten completamente JavaScript en el navegador WebKit de sus dispositivos por un problema de seguridad que fue descubierto. Mientras que el software libre JavaScript puede tener problemas de seguridad también, este ejemplo ilustra que tenemos una necesidad real de poder ver lo que hace el código que estamos ejecutando en nuestras computadoras, y cambiarlo.

Qué podría estar haciendo JavaScript

Es claro que JavaScript es una tecnología muy poderosa y útil en las manos correctas. Muchos desarrolladores de software libre han escrito extensiones y mejoras a sitios populares gracias a herramientas como Greasemonkey. Hay un montón de scripts fantásticos software libre Gresamonkey para Gmail. La existencia de scripts como este muestran tanto que el JavaScript de Gmail no es trivial, y que hay usuarios que podrían hacer contribuciones útiles, interesantes si el JavaScript fuera publicado como software libre para que pudieran modificarlo.

Al mismo tiempo, sitios como Gmail, Twitter y Facebook confían demasiado en JavaScript para hacer gran parte de su trabajo. Prueban esto particularmente con sus versiones móviles, las cuales entregan mucha de la misma funcionalidad sin JavaScript. Donde hay una necesidad útila para JavaScript, puede ser publicado como software libre, y donde JavaScript provee una mejora opcional, se puede proveer una versión básica del sitio que no dependa de JavaScript.

Google ha dado un paso adelante hacia esta meta desarrollando una versión ‘HTML básico’ del sitio de Gmail, el cual no depende en un pesado JavaScript para construir la interfaz de usuario. También proveen interfaces IMAP y POP para que los usuarios accedan a sus cuentas Gmail sin usar el sitio web en absoluto. Ambos son pasos hacia una meta mayor, positiva.

Un pedido a Google: toma el siguiente paso

Si usas Gmail, por favor pídele a Google que tome el siguiente paso hacia hacer Gmail amigable al software libre publicando el JavaScript de Gmail bajo una licencia libre. Haciéndolo, Google permitirá a los usuarios que valoran la libertad del software usar Gmail en su forma mejorada, y hacer contribuciones y modificaciones útiles a sus comunidades.

Artículo Original:
Avoid the pitfalls of the JavaScript Trap on Gmail
Escrito por Mat Lee

Comparte: Twitter Identi.ca del.icio.us Google Bookmarks BarraPunto Bitacoras.com Tumblr Print Facebook

» Leer más, comentarios, etc...

Información legal y técnica