La historia de mis desventuras

Palabras más, palabras menos sobre desarrollo de software.

Google Buzz

Posted by Jhonny López Ramírez en 11 febrero 2010

Vuelve al ataque el gigante de la publicidad en internet (que tiene un buscador) lanza en ristre contra la privacidad de los usuarios. Con su nueva y poco flamante herramienta, Buzz, Google se sumerge en las redes sociales con un, poco práctico, término medio entre la mensajería y el chat: lo cierto es que los buzzes son más ligeros que un mensaje de correo y más pesados que un simple chat (aunque muy rápidos y sincronizados, valga decirlo).

En términos de desarrollo sí que es interesante. Google vuelve a poner lo mejor de sí en un producto bastante eficiente, sencillo y de gran factura. Mis respetos en ese sentido.

Pero el bache principal que le encuentro es el de siempre cuando se trata de la empresa con el slogan más hipócrita a estas alturas (don’t be evil): la privacidad de los usuarios. En Google Buzz no es opcional ingresar (entrando a tu cuenta Gmail pasas por ahí) aunque sí lo sea retirarse; claro que cuando te retiras ya has sufrido un daño irreversible: se ha publicado información con respecto a quiénes son tus contactos y cuáles son aquellos con los que más conversas. Esta información, que debería ser privada es expuesta de inmediato sin que medie intervención del usuario. Supongo que eso también estará en la letra menuda de la Ley Patriótica.

Luego se pueden personalizar los niveles de seguridad y eso pero en mi caso particular (por pánico o no, eso a nadie le interesa) he decidido apagarlo. Lo correcto debía ser que hubiera podido decidir prenderlo.

Finalmente, en los términos de privacidad del mentado Buzz reza que aún el perfil que configuremos allí no es susceptible de ser incluido en los resultados de las búsquedas. ¿Acaso eso es siquiera discutible?

Anuncios

Posted in Tecnología | Etiquetado: | Leave a Comment »

Visual Studio 2010 Release Candidate

Posted by Jhonny López Ramírez en 10 febrero 2010

Disponible desde hoy para descarga la versión candidata a comercial del Visual Studio 2010, como lo anuncia Soma en su blog en español.

Posted in Desarrollo de software | Etiquetado: | Leave a Comment »

El bueno, el malo y el feo

Posted by Jhonny López Ramírez en 3 febrero 2010

Quiero sentar mi posición frente a la eterna batalla entre sistemas operativos del mercado. Puntualmente a la batalla entre Windows y Linux como sistemas operativos cliente.

Entre quienes me conocen es sabido que soy más adepto a las tecnologías Microsoft que a otras en diversos niveles: el sistema operativo que uso, las herramientas con las que trabajo, y, en algunos casos, los elementos con los que me entretengo. Y aunque esto puede hacer parecer mi posición parcializada es precisamente por eso por lo que el concepto de “libertad del usuario” debería propender. No voy a llevar esta opinión al plano de lo privativo versus lo libre porque en ese sentido pienso que no debe esperarse que todo el software del mundo sea libre. Yo creo que es de los pocos rubros (comerciales) en los que esperar tal cosa es siquiera pensable. Y es pensable gracias a las iniciativas Open Source y no voy a quejarme por eso: voy a disfrutarlo.

No, mi opinión va en otro sentido. Yo considero que a lo que se debe llegar en términos de sistemas operativos y software en general es a que el usuario pueda elegir entre un grupo de opciones. Como ocurre con todos los demás productos y servicios. Podés decantarte por tal o cual marca de electrodomésticos, por este u otro proveedor de telefonía, la tienda de ropa de aquí o la de allá. Esa es la verdadera libertad del usuario. Es cierto que en algunos aspectos el consumidor puede hacer por sí mismo las adecuaciones necesarias en el producto que adquiere: podés meterle mano al motor de tu carro; habrá quienes no tengan idea al respecto y lo lleven a su mecánico de confianza. Así las cosas, en el software habrá quienes quieran tocar la espina dorsal del sistema y habrá quienes ni lo pensarían y cada quien debería elegir de acuerdo a ese criterio. Pero si una empresa productora de software decide que sus productos son cerrados y que no debe aplicárseles, por ejemplo, ingeniería de reversa están en todo su derecho porque se trata de su creación. Y si como usuario quiero tener la libertad de mover “tornillos” aquí o allá pues simplemente actúo en consecuencia no usando lo que me venden. Y actuar en consecuencia también involucra el hecho de que yo no satanizo lo que decide llevar una filosofía contraria a la mía: simplemente no me gusta o no me conviene.

Dicho lo anterior me pronuncio sobre Windows y Linux:

Es cierto que Windows aún debe mejorar muchísimo en términos de seguridad (está más expuesto que el resto) y debe solucionar muchos fallos. Pero no es cierto que sea un mal producto (Vista es desafortunado pero no del todo malo). Es amigable, bonito, funcional, práctico y sumamente productivo. Está bien desarrollado (o desarrollalo vos si creés que lo hacés mejor) y su implementación es sencilla. A ese punto quiero llegar cuando produzco software. Me inspira. Y no tolero esa campaña sucia de desprestigio a todo lo que venga de Microsoft porque mucho de eso es falso y mal intencionado.

Linux es grande, encomiable, esperanzador, respetable y me tomaría un café encantado con quienes lo crean, lo mejoran, lo distribuyen. Ha avanzado cantidades en los últimos años y espero que llegue muy lejos (para que finalmente todos podamos elegir). Es cierto que me quejo de ese concepto medio torpe de dejar el grueso de las funcionalidades para su uso a través de la consola y sentirse satisfechos por ello (concepto que entiendo porque yo también tuve 20 años y quise ser un geek) porque eso los distancia del usuario del día a día; en todo caso allí reconozco y valoro iniciativas tan importantes como Ubuntu y todo lo que se ha incorporado en términos de interfaz de usuario amigable.

Finalmente: considero razonable que un vendedor me diga que su producto es el mejor. Y que luego venga su competencia y me diga que en su caso sí es cierto ser el mejor. Pero pienso que los usuarios, en el caso del software, deberíamos distanciarnos de posiciones en las que se predica que tal producto no sólo es el mejor sino que además el de la competencia es pésimo. No encuentro, en el caso de Linux (habrá distros, supongo), Windows (hay versiones) o Mac, un solo motivo para tildarlos de malos. Son simplemente diferentes. Hechos a la medida de su público.

Posted in Tecnología | Etiquetado: | 4 Comments »

Firefox 3.6 y la barra de tareas de Windows 7

Posted by Jhonny López Ramírez en 31 enero 2010

image

Este será mi primer post del año. La verdad es que he retomado el blog un poco tarde: han sido días de trabajo arduo. Finalmente, vengo con un tip sencillo: la activación de la vista previa de las pestañas en la barra de tareas de Windows 7; ocurre que por defecto esta característica aparece desactivada en la versión definitiva del popular navegador de Mozilla. Para activarla haremos lo siguiente:

En la barra de direcciones de Firefox escribiremos about:config

image

Haremos clic en el botón en el que prometemos tener cuidado y se nos mostrará una página como la siguiente:

image

En esta página buscaremos la opción browser.taskbar.preview.enable. Su valor por defecto será false y con un doble clic la pondremos en true. Una vez hacemos esto podremos comprobar en nuestra barra de tareas que se previsualizan las pestañas abiertas al mejor estilo de IE8.

image

Posted in Tecnología | Etiquetado: , | 2 Comments »

Microsoft Virtual Academy

Posted by Jhonny López Ramírez en 29 diciembre 2009

logo_mva

Frente al pedido de un amigo sobre material de formación básico para .Net recordé a MVA (Microsoft Virtual Academy) y decidí darle de nuevo un vistazo. La verdad es que la página ha mejorado mucho en su diseño e interactividad y ahora los contenidos ofrecidos son de diversa índole. Se pueden encontrar vídeos, presentaciones en Power Point, demostraciones, etc.

Recomiendo a MVA como un excelente punto de partida para la formación en desarrollo con .Net, sobre todo porque agrupa los dispersos contenidos del MSDN. Adicionalmente resalto el hecho de que la formación en este portal está planteada en tres escenarios principales: carreras, cursos y especializaciones. Debo aclarar que no se trata exclusivamente de la plataforma .Net para el desarrollador, también tiene gran cantidad de contenido para profesionales TI que se desenvuelven en el ecosistema de desarrollo Microsoft. Sólo me queda un reparo: mucho del contenido se encuentra aún en inglés.

Dejo aquí el enlace para los interesados:

http://tinyurl.com/mvamicrosoft

Por cierto, con este post despido el 2009. Deseo a todos los lectores (!) de este blog un 2010 cargado de todo aquello que les haga sentir vivos.

Posted in Formación Profesional | Etiquetado: , | Leave a Comment »

Autorización configurable en ASP.NET MVC

Posted by Jhonny López Ramírez en 26 diciembre 2009

En esta entrada construiremos un prototipo de configuración de autorización para ASP.NET MVC. En el Web.config de la aplicación asociaremos las acciones del controlador con los roles que estarían autorizados. Para este caso tendremos una aplicación con tres roles: Administrator, Advanced, Limited.

Lo primero que crearemos será la sección de configuración que nos permitirá especificar la autorización a los distinos roles de la aplicación. Para ello, en el apartado <configsections> de nuestro web.config crearemos una sección de configuración:

<configSections>
 <section name="MyMvcAuthorization"
  type="System.Configuration.NameValueSectionHandler,System,Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>
A continuación y para simular el comportamiento de una aplicación crearemos un Controller, una clase de modelo y unos métodos de acción. A continuación cada uno:

El modelo

En la carpeta models de nuestro proyecto agregaré un archivo Model.cs y escribiré el siguiente código:

namespace MVCAuthorization
{    
     public class Person    
    {        
          public string Name { get; set; }
          public int Id { get; set; }    
     }
}

Como ven, se trata de un POCO bastante sencillo. Vamos con el controller:

El controller

Una clase controladora sencilla:

namespace MVCAuthorization.Controllers

{

    public class PersonsController : MyBaseController

    {

        List<Person> persons = new List<Person>();

        //

        // GET: /Persons/

        [Authorize()]

        public ActionResult Index()

        {



            Person firstPerson = new Person

            {

                Id = 1,

                Name = "Fulano de Tal"

            };


            Person secondPerson = new Person

            {

                Id = 2,

                Name = "Sutano de Tal"

            };


            persons.Add(firstPerson);

            persons.Add(secondPerson);


            return View();

        }


        //

        // GET: /Persons/Details/5

        [Authorize()]

        public ActionResult Details(int id)

        {

            Person person = persons

                .FirstOrDefault(it => it.Id == id);


            return View(person);

        }


        //

        // GET: /Persons/Create

        [Authorize()]

        public ActionResult Create()

        {

            return View();

        }


        //

        // POST: /Persons/Create


        [AcceptVerbs(HttpVerbs.Post)]

        public ActionResult Create(Person person)

        {

            try

            {

                // TODO: Add insert logic here

                persons.Add(person);

                return RedirectToAction("Index");

            }

            catch

            {

                return View();

            }

        }


        //

        // GET: /Persons/Edit/5

        [Authorize()]

        public ActionResult Edit(int id)

        {

            return View();

        }


        //

        // POST: /Persons/Edit/5


        [AcceptVerbs(HttpVerbs.Post)]

        public ActionResult Edit(int id, FormCollection collection)

        {

            try

            {

                // TODO: Add update logic here


                return RedirectToAction("Index");

            }

            catch

            {

                return View();

            }

        }

    }

}

De esta clase controladora quiero que notemos dos cosas interesantes: en primer lugar, que la clase hereda de MyBaseController. La implementación de esa clase base la pondré aquí más adelante, dado que es esta clase la que se encargará de verificar si una acción está autorizada a un usuario en un rol determinado. En segundo lugar, que cada método (puntualmente cada GET) está decorado con el atributo [Authorize()]. Esto obligará a los usuarios no autenticados a loguearse. Y obligará, también, a que la clase base, como lo veremos más adelante, verifique para dichos métodos la autorización.

Lo que se hará a continuación es establecer, de esta clase controladora, los permisos de los roles frente a los métodos de acción. Para ello volvemos al web.config y agregamos la sección MyMvcAuthorization, que hemos definido anteriormente y que es un Dictionary tradicional:

Lee el resto de esta entrada »

Posted in Desarrollo de software | Etiquetado: | 10 Comments »

ADSI de carácter industrial

Posted by Jhonny López Ramírez en 22 diciembre 2009

Esta ha sido una idea que ha rondado a la coordinación y subdirección del centro y no es, para nada, descabellada entendiendo que se correspondería con las tecnologías medulares del CEAI.

Quiero esbozar aquí algunas implicaciones de ello. Lo considero positivo, en primer lugar por lo ya dicho: que se integraría un poco más este programa con lo que son los lineamientos tecnológicos del centro y dejaría de ser un programa que se entiende aislado de lo es el saber-hacer del CEAI. En segundo lugar, porque formaríamos personal capacitado para atender un sector de la industria del software algo desatendido en una región en la que, dicho esto a ojo de buen cubero, sería sumamente relevante. Adicionalmente, virar en ese sentido descongestionaría en alguna medida la presión laboral que ejerce el hecho de que varias universidades e instituciones tecnológicas estén produciendo tecnólogos en sistemas con énfasis en el desarrollo de software comercial. A todo lo anterior deben sumársele otras cosas positivas, como la oportunidad que representa para nosotros, los instructores del área, en términos formativos, desarrollar proyectos de esas características. Y para los aprendices especializarse: en esta área les traerá, antes que nada, grandes beneficios.

Sin embargo, debemos cuestionarnos al respecto de lo siguiente: ¿el énfasis industrial será sólo formativo o deberá convertirse también en nominal? Quiero decir, ¿el título de estos grupos dará cuenta de que su orientación es a la informática industrial? Digamos que es claro que el programa de análisis y desarrollo de sistemas de información se corresponde con un programa formal de tecnología en sistemas. Digamos además que en términos de las bases de conocimiento necesarios para el desarrollo de proyectos de software, sean industriales o del sector comercial y de servicios, es similar. Pero reconozcamos que el tiempo que se dedicaría a los componentes adicionales para dar un matiz industrial al programa reduciría el tiempo en lo que son componentes comunes del desarrollo de software dedicado al comercio y a los servicios – tanto más cuando ya vienen de nuevo reducidos los tiempos de las nuevas versiones del programa –, y que, siendo así, lo más justo es que este énfasis derive en que se profiera un título que le corresponda. Porque de lo contrario, ¿qué le dirá al sector industrial que el egresado de este programa tiene ése enfoque? ¿Y qué hará que el egresado, en vista de que está preparado mas no titulado de manera acorde, se inserte en el sector laboral por la parte del desarrollo de software comercial, perdiendo así algunas de las ventajas que he señalado antes?

No sé en qué medida la autonomía de los centros permita que se agregue el apéndice necesario al título que profiere el CEAI para los adsi, ya de por sí largo, logrando así que quede evidencia del proceso, o si la mención de los proyectos desarrollados durante la fase lectiva sirva como referente en el mercado laboral o si sea necesario llegar al nivel de una mesa sectorial que revise el programa y que lo ajuste a dichas necesidades, pero lo que sí es cierto es que además de lograr dar un viraje tan interesante al saber-hacer del egresado de esta especialidad se debe lograr articular esto con un título que le sea equivalente. Al pan por su nombre. Lo mismo que al vino.

Posted in Formación Profesional | Etiquetado: , , | Leave a Comment »

Aplazado lanzamiento de Visual Studio 2010

Posted by Jhonny López Ramírez en 22 diciembre 2009

Microsoft ha decidido aplazar el lanzamiento de Visual Studio 2010® y su correspondiente framework (.Net Framework 4.0). Esto se debe a que se han tomado muy en serio los cuestionamientos sobre rendimiento, sobre todo en la gestión de memoria virtual,  que se han encontrado en las sucesivas betas lanzadas. En ese sentido se habían recibido comentarios por parte de los usuarios de la primer beta y se realizaron mejoras importantes en la segunda, pero han decidido que tienen que mejorar aún más y lanzarán en febrero de 2010 una versión candidata final con dichas mejoras. Tomarán el feedback de dicha versión y reaccionarán para completar la versión definitiva, que aún no tiene fecha. De hecho, en el blog de Soma se ha retirado el conteo regresivo que apuntaba a la fecha de lanzamiento inicial (22 de marzo de 2010).

Tengo reacciones encontradas al respecto. Tenía muy presente el lanzamiento puesto que pensaba iniciar algunos proyectos en esta nueva versión y tendré que retrasarlos o bien iniciarlos y luego migrarlos; ninguna de las dos ideas termina de gustarme. Pero por otro lado, supongo que el producto lanzado tendrá mayor calidad y no tendremos que esperar a un Service Pack que solucione estos inconvenientes.

Posted in Desarrollo de software | Etiquetado: , | Leave a Comment »

Google y la privacidad

Posted by Jhonny López Ramírez en 11 diciembre 2009

En una reciente entrevista de la CNBC a Eric Schmidt, CEO de Google, se le preguntó sobre las políticas de privacidad del motor y el uso de toda la información que recopila el mismo y esto fue lo que respondió:

“Si usted tiene algo que no quiere que nadie sepa, quizás usted no debería estar haciéndolo. Si usted realmente necesita ese nivel de privacidad, la realidad es que los motores de búsqueda, Google incluido, retienen esta información durante algún tiempo y es importante, por ejemplo, ya que todos estamos sometidos en los Estados Unidos a la Ley Patriótica y es posible que toda esa información podría ponerse a disposición de las autoridades.”

Creo que es bastante clara la posición de Google frente a los datos que recopila de sus usuarios. Y bastante escandalosa. Al punto que, por ejemplo, desde Mozilla empiezan ciertas voces a sugerir optar por otros motores de búsqueda (sorpréndanse, sugieren a Bing, ya que tiene una mejor política de privacidad que Google).

Sugiero usar Ecosia.

Posted in Otras categorías | Etiquetado: | 2 Comments »

Ecosia, el buscador ecológico

Posted by Jhonny López Ramírez en 5 diciembre 2009

Posted in Otras categorías | Etiquetado: | Leave a Comment »