Archive for the ‘Ideas en el software’ Category

Codeigniter y ActiveRecord para Oracle

viernes, julio 15th, 2011

codeigniter logoCodeigniter es un framework PHP ligero que permite de forma muy rápida tener una aplicación en funcionamiento y sin necesidad de una codificación muy extensiva. Adicionalmente hace uso de activerecords para facilitar la interoperabilidad con bases de datos, así pues podemos facilmente tener la aplicación funcionando sobre una base de datos MySQL y con solo un cambio del driver esta misma estaría funcionando sobre PostGresql.

Sin embargo el driver de Oracle aun presenta algunos inconvenientes, específicamente no forza el uso de la codificación UTF-8 por lo que puedes tener un líos con caracteres  y ademas -lo mas grave de todo – no escapa las cadenas haciendo que sea totalmente vulnerable a un ataque de -sql injection-

(más…)

Expire headers sobre lighttpd

martes, octubre 5th, 2010

yslow screenUna de las principales recomendaciones ofrecidas por Yslow, que afectan directamente le rendimiento en al carga de las paginas es el uso de los -Expire headers- o cabeceras de expiración para marcar el contenido que servimos desde el servidor. Esto es relativamente fácil, cuando tienes Apache, basta con cambiar unas lineas sobre el .htaccess indicando que archivos deseas marcar. Sin embargo en Lighttpd no es tán facil, o por lo menos la documentación no es lo suficientemente claro.

(más…)

Seabird, el movil concepto de Mozilla

viernes, septiembre 24th, 2010

No hay mucho que se pueda decir acerca del teléfono concepto de Mozilla sin antes ver el video, entonces podemos empezar por ello…

Entre lo que me pareció más destacable son sus proyectores dobles, tecnología que no tenemos tan distante pues Samsung ya ha demostrado sus teléfonos con proyector incluido, sin embargo el concepto lo lleva aun más allá permitiendo que estos proyectores se conviertas en cierta forma en una nueva interface para la interacción con el usuario.

Gracias a Fvioz por el link al video

Auditoría a proyectos de software

jueves, abril 29th, 2010

image Cuando el éxito de la empresa depende de las tecnologías de la información, tanto si desarrolla proyectos de software internos, externos, contratados o como si gestiona el servicio TI, es necesario auditar el funcionamiento de estos y detectar oportunidades de mejora. Allí es donde principalmente entra el proceso de auditoría encargándose de evaluar las prácticas y procedimientos implementados en los desarrollos.

(más…)

El problema del ascensor

jueves, febrero 18th, 2010

 Ascensor hecho en Illustrator Judavi.com

Se trata de diseñar un controlador para un ascensor que atienda a las llamadas desde los pisos o la cabina, haciendo que el ascensor suba o baje en función de las mismas, y ocupándose también de que el ascensor se detenga en los pisos en que se haya solicitado parada y se abran y cierren las puertas. El dispositivo físico que el controlador debe manejar es el motor que mueve el ascensor.

(más…)

Si estás empezando en la programación

sábado, octubre 10th, 2009

Tú puedes pensar que los grandes programadores pueden escribir miles de palabras en un segundo, tienen un cerebro súper desarrollado y tienen adaptado un vinculo que les permite conectarse directamente a una computadora. Especialmente con lo del vínculo. En mi experiencia los mejores programadores son los que más se divierten haciéndolo, son los cuales con los que disfrutas hablando, son los que no se enojan contigo cuando encuentras un error en sus programas y quienes en algunas ocasiones aceptan que tu solución es mejor que la que ellos inventaron.

A mi me gusta mucho más trabajar con alguien así que con alguien que escribe miles de líneas de código en un minuto pero se reúsa a hablar conmigo, si yo le sugiero que alguna de esas líneas está equivocada.

Los grandes programadores se preocupan en encontrar si lo que están haciendo es el camino correcto. Si ellos trabajan para un cliente, ellos aseguran en dar al cliente lo que el cliente quiere. Ellos no sumen que conocen el mejor camino para hacerlo y que es el único, ellos se aseguran que lo que producen está probado y viene con documentación que sirva de ayuda. Ellos trabajan en equipo, hacen café cuando es su turno y hacen lo necesario para asegurarse que los proyectos lleguen a un final feliz. Po su puesto, ellos también pueden llenar tu oficina con pelotas de playa, pegar tu teclado a la mesa con pegante instantáneo, o cubrir tu silla con papel de aluminio ,pero todo lo hacen con espíritu amigable.

Grandes científicos como Isaac Newton y Benjamin Franklin desarrollaron experimentos para descubrir con funciona el mundo, entonces personas como Thomas Edisson vinieron y experimentaron de nuevo con la ciencia y la ingeniería haciendo cosas que todo el mundo quería. Tú vas a entrar a un experimento similar aprendiendo acerca de la programación. Jugando con los distintos lenguajes y escribiendo pequeñas líneas de código, investigaras como funciona una computadora y cómo inventar programas los juegos o programas que todos quieren

No sientas miedo de experimentar y probar cosas tu mismo.

Recuerda que los grandes científicos no siempre encontraban de forma fácil entender que estaba sucediendo con sus experimentos, y esto es igualmente verdad en la programación. Algunas de las cosas que tú haces cuando escribes programas puede que no tengan mucho sentido al principio, por lo tanto debes prepararte para trabajar y entender que está sucediendo adentro del programa

Innovación en el software, unas cuantas lineas

martes, septiembre 22nd, 2009

Haciendo una de mis labores para Gerencia Institucional llegue a un punto del taller donde decia:

¿Que es innovación en el software?

… Pregunta dificil… entonces a continuación lo que respondí.

Innovación.
(Del lat. innovatĭo, -ōnis).
1. f. Acción y efecto de innovar.
2. f. Creación o modificación de un producto, y su introducción en un mercado.

Diccionario de la real academia española de la lengua. Innovación.

Innovar.
(Del lat. innovāre).
1. tr. Mudar o alterar algo, introduciendo novedades.

Diccionario de la real academia española de la lengua. Innovar

Según esta definición de innovación es realmente sencillo definir que es la innovación en el software pues no hay dos productos de software iguales, como tampoco hay dos proyectos y equipos iguales. Cada construcción de un nuevo programa que cambie en alguna manera los productos ya existentes se convierte en una innovación.

Buscando un poco entre blogs y páginas sobre arquitecturas de desarrollo hay una marcada tendencia a pensar que el software libre es innovador. Esto porque “busca” hacer lo que ya está realizado de otras formas y se nutre principalmente de ese colectivo de programadores y comunidades que le dan continúo crecimiento a estos proyectos. Pero también gran parte de ese software libre se ha dedicado replicar lo que ya existe, haciendo que el usuario corriente piense que Linux es un Windows en sus inicios.
Las líneas se llenan entonces de pasión mostrando que algunas de las principales innovaciones parten del campo de la libertad del código. Se menciona a Wikipedia, DNS (Domain Name System), Internet y el correo electrónico. Olvidando que muchas de estas ideas parten de ideas privativas desarrolladas originalmente por empresas como IBM o Sun Microsystem en su momento. Solo por mencionar un ejemplo se dice que Linux es innovador pero que diferencia sustancia habría para el usuario final entre Linux y Unix sin su consola grafica, y con su consola grafica ¿de donde se ha basado si no ha sido de Windows?

Esto solo lleva a una primera conclusión, el software sea innovador o no, no depende de si su código esta liberado al mundo para que millones de personas impriman sus propias ideas sobre él o si este posee un núcleo secreto que solo los elegidos pueden tocar.

Luego de esto parto entonces de mi propia visión de innovación. ¿Cuando las personas andaban sobre carretas, pasar a poder desplazarse sobre una estructura metálica a mayores velocidades fue innovador? Aun más, ¿llegar a cruzar los cielos fue algo innovador? La respuesta es indiscutiblemente que sí. Por lo tanto podría aventurar a pensar que innovar tiene más relación con cambiar la vida de las personas o su relación con el mundo a través del objeto creado. Es decir, si la creación permite nuevas formas de interacción, sensaciones o resultados para las personas esa creación es innovadora.

Volviendo al campo del software definitivamente Internet cambio la forma de comunicarnos, como también Microsoft o Apple cambio nuestra visión sobre las computadoras, haciéndolas un poco más amigables y no esas extrañas maquinas llenas de caracteres verdes. La animación digital creo mundos que antes solo podían verse en nuestras mentes o en los libros de Verne y las descargas de música nuestro aprecio por cada canción.
El software es entonces innovador si entrega al usuario ese –plus-, la poca o mucha funcionalidad que no tienen los programas que hay en el momento. Si cambia su forma de pensar e interactuar con el mundo.

Y termino con una frase que me llamo bastante la atención. Tomada del blog de pctux respecto al tema de innovación.

Como dijo Tolkien una vez: “No sigas el ca mino marcado que sólo te lleva a donde otros ya han ido”