Posts Mentioning RSS Toggle Comment Threads | Keyboard Shortcuts

  • Luis Medel 10:21 on 28/11/2008 Permalink | Reply  

    Premios a la Creación de Empresas Virtuales: Openfinz 

    Lo sabía desde hace varias semanas pero no he querido publicar nada antes hasta que se hiciese oficial, se entregasen los premios y se publicase la nota de prensa

    El concurso, cuyo nombre considero que no es el más acertado, tiene como objetivo potenciar la utilización de las TIC y la creación de empresas.

    Se conceden 5 premios de 3000 euros a proyectos presentados de manera individual y otros 15 de la misma cuantía a aquellos que se presenten en grupo. Para la concesión de los premios se tienen en cuenta factores como el carácter innovador, la viabilidad y argumentación, la calidad de la propuesta y su presentación y, finalmente, el grado de utilización de las tecnologías de la información y la comunicación.

    La cuestión es que, como parte de mi despedida del IES Al-Andalus, en el que finalicé el año pasado el ciclo formativo de grado superior de “Desarrollo de Aplicaciones Informáticas” (los motivos por los que decidí matricularme tras 8 años de experiencia profesional os los contaré en otro momento), pues como parte de mi despedida, decidí participar en el Concurso de Creación de Empresas Virtuales que desde hace 6 años viene celebrando la Junta de Andalucía presentando un plan de empresa sobre un proyecto llamado Openfinz.

    Por cierto, el plan de empresa no lo podría haber presentado en la vida sin la ayuda de Cristina, mi mujer. Cristina preparó magistralmente la parte administrativa, la simulación de los primeros años de actividad y me ofreció su punto de vista sobre la viabilidad de la idea desde la perspectiva de alguien que está fuera del bosque de la tecnología.

    Llegado este punto, ya os lo estaréis imaginando. Efectivamente, Openfinz ha sido uno de los 5 ganadores en la categoría individual :)

    El pasado miércoles, día 26 de Noviembre, tuvo lugar en Sevilla el acto de entrega de premios. Lamentablemente, por problemas de agenda me fue imposible asistir. Por fortuna, la que ha sido mi tutora durante el último curso, Marga Nieto, se ofreció muy amablemente a recoger el premio en mi nombre ¡Gracias Marga!

    Actualización: Olvidé mencionar que Isabel Cruz, la jefa de estudios del centro, acompañó a Marga en el acto ¡Muchas gracias a tí también Isabel! :)

    Más de uno se estará preguntando qué es Openfinz. Bueno, es largo de explicar y el resumen que han hecho en la Junta de Andalucía no hace honor a los detalles: “Gestión de la economía personal a través de una página web en la que el usuario tendrá la posibilidad de usar el servicio de forma anónima y de interactuar con otros usuarios a través de una plataforma virtual”

    A grandes rasgos y sin pasar a explicar a fondo el proyecto por falta de tiempo, comentar que se trata de una plataforma (acceso por web, por móvil, SMS…) que permitiría a los usuarios gestionar sus ingresos y sus gastos de manera completamente anónima utilizando sistemas de verificación similares a los que utilizan algunas webs con registros médicos. Al mismo tiempo se permitiría a los usuarios etiquetar (segmentar, al fin y al cabo) dicha información de manera voluntaria para así obtener beneficios como la obtención de estadísticas para dichos segmentos, poder formular consultas al sistema para obtener informes personalizados y consejos sobre tendencias de consumo (por ejemplo, marcas más baratas, lugares de ocio más asequibles, etc.) y un largo etcétera. De manera adicional, toda esa información agregada sería fácilmente explotable para facilitar el acceso a la plataforma a posibles anunciantes.

    Todo eso es, como decía, a grandes rasgos. Tengo otras muchas ideas desarrolladas que giran sobre el mismo eje e incluso ya existe parte de la arquitectura del sistema que he ido gestando en algunos momentos ociosos. Es un proyecto en el que realmente me gustaría trabajar pero mis prioridades actualmente son otras.

    Evidentemente no se trata de la idea más original del mundo. Mientras la desarrollaba, comprobé que servicios como expensr (pronto moneyStrands) hacen cosas muy parecidas enfocadas al público anglosajón. Pero ya sabemos que ser el primero no es la principal ventaja, ¿verdad? :)

    Por cierto, la imagen de la cabecera es el logo que presenté para el proyecto.

     
  • Luis Medel 07:39 on 27/11/2008 Permalink | Reply  

    Utilizar Pownce para gestionar proyectos 

    Quien me conozca, ya sabrá que no soy usuario de ninguna red social (tengo algunos perfiles “perdidos” en alguna que otra, pero inactivos desde el mismo momento de su creación). No es que no les vea utilidad. Es simplemente que me niego en rotundo a dedicar varias horas al día a la tarea de mantener actualizados varios perfiles dispersos en diferentes redes y generar contenido útil.

    Además, lo confieso: debo ser de las pocas personas (cazurras, por qué no decirlo) que no se enteran de nada cada vez que visitan el perfil de Twitter de algún amigo.

    Sin embargo, ayer me animé a crearme un perfil en Pownce con el firme propósito de utilizarlo de verdad. Incluso, había pensado crearme una cuenta Pro si realmente le veía color a la cosa (son sólo 20$ al año).

    Para quien no lo conozca, decirle que Pownce se trata, según lo veo yo, de una evolución del concepto de Twitter que permite publicar notas, enlaces, ficheros y eventos de manera pública o privada (dirigidos sólo a los usuarios o grupos que se escojan). Precisamente eso es lo que me gusta de este servicio.

    Llamadme loco, pero lo veo una forma estupenda de facilitar a los clientes el seguimiento de los proyectos. Es fácil crear un grupo por cada nuevo proyecto, añadir a las personas interesadas (deberán tener cuenta en Pownce, claro) y publicar contenidos de manera privada para ese grupo concreto. Por su parte, los clientes simplemente deben suscribirse al feed correspondiente y tendrán actualizaciones automáticas sobre los proyectos en curso. Además, tienen la posibilidad de dejar comentarios en cada una de las entradas, por lo que el feedback está asegurado.

    Hace tiempo le había echado el ojo a Basecamp para estas lides pero, la verdad, busco algo extremadamente más simple y sencillo.

    ¿Qué os parece? ¿Creéis que puede funcionar?

     
  • Luis Medel 10:02 on 25/11/2008 Permalink | Reply  

    Si eres legal, eres legal 

    Acabo de leer en Barrapunto que el Ministerio de Cultura ha creado una web para concienciar a la población sobre el eterno asunto de las descargas por Internet. La web se llama Si eres legal, eres legal.

    Opiniones aparte, os quería contar algo gracioso que me ha pasado cuando la visitaba por mera curiosidad.

    He votado uno de los testimonios que aparecen en la sección “Testimoniales” (que, dicho sea de paso, yo hubiese nombrado como “Testimonios”). Tras hacer click en una de las estrellitas de votación al azar, ha llegado la gran sorpresa. Al recargar la página, una cantidad ingente de “estrellitas” ha inundado literalmente la pantalla, bloqueando momentáneamente el navegador ¿error de programación? ¿efecto Barrapunto? No lo sé.

    Me he limitado a informarles del error utilizando el formulario de envío de “testimoniales” (no aparece otra forma de contacto) y…bueno, para ayudar he lanzado una votación en negativo que parece que ha funcionado :)

    ¿Iré a la carcel por echar una mano? Si dejo de escribir más de una semana ¡rezad! :D

     
  • Luis Medel 11:41 on 18/11/2008 Permalink | Reply  

    II Jornadas de Iniciativas Profesionales 

    Los amigos del IES Al-Andalus, en Almería, han tenido la gentileza de invitarme este año a las II Jornadas de Iniciativas Profesionales que tendrán lugar el jueves, 20 de Noviembre, a lo largo de todo el día.

    El acto contará con la presencia de trabajadores de diferentes ámbitos (administración pública, proyecto Guadalinfo, emprendedores, etc.) que hablaremos a los alumnos sobre qué nos hemos encontrado “en la calle”, las necesidades de las empresas, qué perfiles se buscan, la necesidad de una buena formación, etc. En definitiva, contar nuestra experiencia. Espero que mi caso concreto pueda “iluminar” a alguien :)

    Es la segunda vez que me invitan a participar en alguno de estos eventos cuyo objetivo es fomentar la cultura emprendedora y el desarrollo de las nuevas tecnologías. La primera vez fue el curso pasado durante las IV Jornadas de Software Libre, Cultura Emprendedora y Nuevas Tecnologías. Allí tuve la oportunidad de dar una charla sobre seguridad en desarrollos web de la que salí con muy buen sabor de boca.

    Por cierto, la charla se grabó en vídeo y estoy a la espera de sacar un poco de tiempo para editarlo y poder colgarlo aquí. Espero no juntarlo con el del año que viene :)

     
  • Luis Medel 10:14 on 14/11/2008 Permalink | Reply  

    Optimización de desarrollos web: Threads 

    No es nada nuevo que la velocidad de una aplicación web es uno de los aspectos principales a tener en cuenta durante el desarrollo y, al contrario de lo que muchos piensan, no todo depende de tener el proyecto alojado en una máquina más potente. Lo que va a marcar la diferencia es la velocidad percibida por el usuario del servicio.

    Como ejemplo ilustrativo, imaginad un aplicación que tras un determinado evento necesita informar del mismo a 200 usuarios vía mail. Como sabemos, el envío de un mail puede ser una tarea cara en términos de tiempo, sobre todo si se realiza a través de un servidor remoto.

    Pues bien, si la aplicación envía esos 200 mails antes de devolver una respuesta al usuario y la espera se hace prolongada (por problemas de red, servidor saturado…), éste puede pensar que ha habido un error e intentará repetir la operación o, en el peor de los casos, abandonará el sitio.

    Un detalle que he observado en muchos desarrollos, y que siempre me sorprende, es lo poco que se aprovechan los threads (hilos) en las aplicaciones web. Su uso es prácticamente nulo. De hecho, muchos programadores piensan que su uso está reservado exclusivamente a los desarrollos clásicos “de escritorio”. Nada más lejos de la realidad.

    Threads en Django

    En Python resulta extremadamente sencillo crear threads, lo cual es extensible a los desarrollos en Django. Así que, ¡vamos a aprovechar un poco esos procesadores! :)

    Con el fin de facilitar el uso de threads aún más, vamos a crear un pequeño módulo para “inyectar” esta posibilidad en las funciones de manera inmediata y transparente.

    
    # ---- threadhelp.py ----
    import threading
    import functools
    def threaded (func):
        def thread_call (*args, **kwargs):
            t = threading.Thread (target=func, args=args, kwargs=kwargs)
            t.setDaemon (True)
            t.start ()
        functools.update_wrapper (thread_call, func)
        return thread_call
    

    Así, aplicando el decorador @threaded sobre una función, puedo hacer que una llamada a la misma se ejecute automáticamente en un nuevo thread que devolverá el control automáticamente y permanecerá ejecutándose en segundo plano (ya que hemos configurado el thread como demonio).

    A modo de ejemplo, aquí os muestro una versión simplificada de la función que utilizo para el envío de las suscripciones a los comentarios del blog.

    
    import threadhelp
    @threaded
    def send_comment_mail (comment):
        ctx = Context ({
            'site': CURRENT_SITE,
            'post': comment.post,
            'comment': comment,
        })
        subject = get_template ('blog/mail/new_comment_subject.txt').render (ctx)
        from_addr = BLOG_FROM_ADDR
        t = get_template ('blog/mail/new_comment_body.txt')
        for s in comment.post.commentsubscription_set.filter (cancelled=False).all ():
            ctx['subscription'] = s
            msg = t.render (ctx)
            send_mail (subject, msg, from_addr, [s.email], fail_silently=True)
    

    Gracas al decorador @threaded, cuando realizo una llamada a la función send_comment_mail(), ésta automáticamente se lanzará en un hilo de ejecución independiente. Es el servidor el que termina el proceso en segundo plano y sin necesidad de que el usuario deba esperar hasta el final, con lo que puedo generar y enviar la página de respuesta de manera inmediata. Ya sabéis: velocidad percibida.

    Además de lo anterior, también podemos obtener versiones “rápidas” de las funciones existentes. Por ejemplo, si queremos tener una versión que se ejecute en segundo plano de la función send_mail() proporcionada por Django, no tenemos más que hacer lo siguiente:

    
    thread_send_mail = threaded (send_mail)
    

    Automáticamente obtendremos una copia de la función que se ejecutará en segundo plano en cada llamada.

    Otro paso más hacia una optimización más “fina” sería agrupar todos los hilos que se vayan creando en una cola administrada con el fin de no lanzar miles de ellos de manera indiscriminada en caso de que el servicio esté muy concurrido. Pero eso lo dejo como ejercicio :)

    En fín. Como suele ocurrir casi siempre, la solución a muchos problemas de rendimiento pasa por aprovechar mejor los recursos que tenemos.

    Ya lo dijo Kristian Pielhoff. Fácil, sencillo y para toda la familia :)

     
  • Luis Medel 10:59 on 12/11/2008 Permalink | Reply  

    30 sitios para buscar inspiración 

    Tenemos que reconocerlo. No siempre la inspiración está de nuestro lado y hay días que es mejor no acercarse al escritorio para trabajar. Hay ocasiones en las que un buen paseo o una tarde de cine pueden ayudarte a salir de un bloqueo pero otras veces incluso eso deja de ser útil.

    Siguendo la línea de mi anterior artículo sobre las herramientas esenciales para el desarrollo web, hoy voy a publicar el listado de sitios que me guardo “en la manga” cada vez que el duende de la inspiración me abandona.

    Se trata de un pequeño listado de sitios dedicados al diseño y galerías CSS que en más de una ocasión agradeceréis tener a mano. Es más, incluso sin necesitar inspiración, navegar por alguno de estos sitios es una auténtica delicia.

    Smashing Magazine

    COLOURloversUna exhuberante galería de tendencias y paletas de colores

    CSS Zen GardenUn excelente sitio para empaparse de la belleza de la maquetación CSS

    Design Melt Down - Artículos sobre elementos de diseño, tendencias y problemas en el diseño web actual

    The Favourite Website AwardsLos mejores desarrollos web

    Logo PongInspiración a través de la identidad corporativa

    Moluv’s PicksAlgunos de los sitios más bonitos del mundo

    N.Design Studio

    ArtzMania

    Web Designer WallArtículos sobre tendencias de diseño y tutoriales

    Además de leer los excelentes artículos proporcionados por los enlaces anteriores, puede ser buena idea pasarse por estos sitios para intentar encender la chispa.

     
  • Luis Medel 11:25 on 11/11/2008 Permalink | Reply  

    Herramientas esenciales para desarrollo web 

    Cada vez que comienzo un proyecto de desarrollo, no importa si es para un cliente o para mí, procuro tener a mano las herramientas necesarias para llevarlo a cabo. Aunque existen miles de ellas, hay algunas que termino utilizando siempre y por eso las considero “esenciales”.

    El editor

    El eterno dilema. Tienes, literalmente, cientos de buenos editores que probablemente alguien te habrá recomendado en algún momento.

    Tras haber utilizado a fondo los “clásicos” (Dreamweaver, UltraEdit, Notepad++, Kate, Gedit…) he terminado decantándome por Komodo IDE.

    Komodo Edit está basado en los componentes de Mozilla y ofrece un excelente soporte para lenguajes dinámicos. Aunque es de pago, puedo asegurar que vale cada euro que cuesta (actualmente anda por los 245 dólares). Además, dispone de una versión libre que sigue muy de cerca los pasos de su hermano mayor.

    Por supuesto, es multiplataforma.

    La pantalla del usuario

    Aunque la tendencia actual es realizar los diseños para que sean independientes de la resolución de pantalla usada, siempre es conveniente prestar atención a las estadísticas que amablemente nos ofrecen en la web de W3Schools. El listado de las resoluciones de pantalla muestra que, en Enero de 2008, el 48% de los usuarios utilizaban una resolución de 1024×768 y un 38% una resolución mayor. Además, otro dato a tener en cuenta es que el 90% de los usuarios utilizan profundidades de color de 24 ó 32 bits.

    Si queremos testear nuestro diseño para diferentes resoluciones, tenemos varias opciones. Por un lado, está el viejo y engorroso método de cambiar la resolución de pantalla para ver qué tal queda (no lo recomiendo).

    Por otro lado, tenemos a nuestra disposición servicios como el ofrecido por Set my browser size en el que podemos redimensionar la ventana del navegador a la resolución que queramos.

    Por último (el método que yo utilizo) es hacer uso de la extensión Web Developer para Firefox que te permite hacer esto mismo.

    Ayudas al desarrollo

    Como he comentado antes, utilizo la extensión Web Developer para Firefox. Junto con FireBug, forman la pareja perfecta a la hora de “meter mano” a un desarrollo.

    Además de lo anterior, también uso la Developer Toolbar para Internet Explorer. Eso sí, sólo en casos de emergencia, ya que mi navegador principal es Firefox.

    Aunque intento evitarlo, a veces es necesario que un desarrollo sea compatible con navegadores viejos (léase Internet Explorer 6 y similares) y no tengo más remedio que echar mano de la lista completa (casi) de fallos de este maldito navegador que publican en Explorer Exposed!.

    Recientemente he descubierto una perla de JavaScript llamada ie7-js que, según aseguran sus creadores, corrige todos los errores de IE6 y hace que se comporte como un navegador que respeta los estándares. Aunque todavía estoy probando si esto es cierto para incluírlo en mis futuros desarrollos, parece que la cosa promete ser lo mejor desde la invención del Post-It.

    Validación

    ¡Oh! ¿Cómo iban a faltar en un artículo sobre “herramientas esenciales”?

    Por cierto, tenemos a puntito de caramelo la especificación HTML5 que recomiendo ir mirando. De momento ya podemos ir practicando y comporbando qué tal lo hacemos gracias al validador (experimental) de HTML5

    Navegadores

    Otro “must have” en cualquier artículo de este tipo. ¿Qué navegador soportar en nuestros desarrollos?

    Volviendo a las estadísticas de navegadores de W3Schools vemos que en Octubre de 2008 los más usados son Firefox (44%), IE7 (26.9%) e IE6 (20.2%). Está claro que el usuario modelo de W3Schools es más técnico y por eso el predominio de Firefox, pero creo que ayuda a tener una idea de la tendencia actual.

    Si quieres dar soporte a la mayoría de navegadores, conviene saber que no necesitas tener todas las versiones de todos los navegadores para echar un vistazo y ver si tu diseño se renderiza bien en cada uno de ellos. Gracias al servicio Browser Shots, indicas la URL de tu página y obtienes imágenes de la misma renderizada en prácticamente todos los navegadores existenes (bajo Windows, Linux, Mac, etc.). Eso sí, según la demanda, deberás esperar algunos minutos antes de obtener el resultado.

    Material extra

    A veces se necesitan buenas imágenes para utilizar en los desarrollos. Aunque en un principio puedas sentirte tentado a utilizar la búsqueda de Flickr, te recomiendo que te rasques un poco el bolsillo (muy poco, de verdad) y adquieras imágenes de buena calidad libres de royalties que puedas utilizar libremente.
    Un sólo proyecto te va a cubrir los gastos de decenas de imágenes y el resultado final se nota bastante.

    Algunos sitios que te recomiendo:

    Hasta aquí

    Hasta aquí mis recomendaciones. Como he dicho al principio, aunque existen cientos de herramientas útiles, éstas son las que suelo utilizar en prácticamente todos mis proyectos.

    Las elecciones son fruto de mi experiencia y gustos personales, por lo que seguramente tú conocerás otras alternativas. ¿Qué me recomiendas?

    Notas

    Imagen de cabecera cortesía de bigarnex.

     
  • Luis Medel 12:53 on 07/11/2008 Permalink | Reply  

    El desarrollo web en Almería ¿realidad o leyenda? 

    Llevo unos cuantos días si publicar. Lo sé. Estoy a tope de trabajo y, como mucho, me detengo a leer el correo y los feeds. Espero quitarme de encima la carga este fin de semana :)

    De todas formas, este post lo escribo porque, en un momento de oxigenación cerebral, me he dado cuenta de un detalle que creo que puede ser significativo.

    Resulta que en el último mes he recibido varias propuestas de proyectos. Hasta ahí perfecto; no me puedo quejar. Lo curioso es que de todas ellas, sólo una propuesta corresponde a Almería. ¿Por qué? No lo sé.

    Se me ocurre que, siendo una ciudad pequeña, el mercado esté un poco saturado. También puede ser que la gente funcione únicamente a base de referencias (lo cual, no siendo yo de aquí y conociendo a poca gente, tenga algo sentido). Por último, sencillamente puede ser que no exista “un mercado” comparable al de otros lugares.

    Bueno, pues ahí os dejo esta mini-reflexión.

    Si alguno sabéis por qué unos sitios (en general, no sólo Almería) son más activos que otros no lo guardéis para vosotros :)

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel